vendor: 4,711 bytes, lines 1-7
1/* @license GPL-2.0-or-later https://git.drupalcode.org/project/once/-/raw/v1.0.1/LICENSE.md */ 2/*! @drupal/once - v1.0.1 - 2021-06-12 */ 3var once=function(){"use strict";var n=/[\11\12\14\15\40]+/,e="data-once",t=document;function r(n,t,r){return n[t+"Attribute"](e,r)}function o(e){if("string"!=typeof e)throw new TypeError("once ID must be a string");if(""===e||n.test(e))throw new RangeError("once ID must not be empty or contain spaces");return'[data-once~="'+e+'"]'}function u(n){if(!(n instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function i(n,e){void 0===e&&(e=t);var r=n;if(null===n)r=[];else{if(!n)throw new TypeError("Selector must not be empty");"string"!=typeof n||e!==t&&!u(e)?n instanceof Element&&(r=[n]):r=e.querySelectorAll(n)}return Array.prototype.slice.call(r)}function c(n,e,t){return e.filter((function(e){var r=u(e)&&e.matches(n);return r&&t&&t(e),r}))}function f(e,t){var o=t.add,u=t.remove,i=[];r(e,"has")&&r(e,"get").trim().split(n).forEach((function(n){i.indexOf(n)<0&&n!==u&&i.push(n)})),o&&i.push(o);var c=i.join(" ");r(e,""===c?"remove":"set",c)}function a(n,e,t){return c(":not("+o(n)+")",i(e,t),(function(e){return f(e,{add:n})}))}return a.remove=function(n,e,t){return c(o(n),i(e,t),(function(e){return f(e,{remove:n})}))},a.filter=function(n,e,t){return c(o(n),i(e,t))},a.find=function(n,e){return i(n?o(n):"[data-once]",e)},a}(); 4 5; 6/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 7window.drupalTranslations={"strings":{"":{"An AJAX HTTP error occurred.":"Une erreur HTTP AJAX s\u0027est produite.","HTTP Result Code: !status":"Code de statut HTTP : !status","An AJAX HTTP request terminated abnormally.":"Une requ\u00eate HTTP AJAX s\u0027est termin\u00e9e anormalement.","Debugging information follows.":"Informations de d\u00e9bogage ci-dessous.","Path: !uri":"Chemin : !uri","StatusText: !statusText":"StatusText: !statusText","ResponseText: !responseText":"ResponseText : !responseText","ReadyState: !readyState":"ReadyState : !readyState","CustomMessage: !customMessage":"Message personnalis\u00e9 : !customMessage","Please wait...":"Veuillez patienter...","The response failed verification so will not be processed.":"La v\u00e9rification de la r\u00e9ponse \u00e0 \u00e9chou\u00e9e, elle ne sera pas trait\u00e9e.","The callback URL is not local and not trusted: !url":"L\u0027URL de retour n\u0027est pas locale et n\u0027est pas de confiance : !url","Changed":"Modifi\u00e9","Processing...":"En cours de traitement...","An error occurred during the execution of the Ajax response: !error":"Une erreur est survenue durant l\u0027ex\u00e9cution la r\u00e9ponse Ajax: !error","Hide":"Masquer","Show":"Afficher","List additional actions":"Lister les actions suppl\u00e9mentaires","New revision":"Nouvelle version","No revision":"Aucune version","Needs to be updated":"N\u00e9cessite une mise \u00e0 jour","Does not need to be updated":"Ne n\u00e9cessite aucune mise \u00e0 jour","Flag other translations as outdated":"Marquer les autres traductions comme p\u00e9rim\u00e9es","Do not flag other translations as outdated":"Ne pas marquer les autres traductions comme p\u00e9rim\u00e9es","Edit":"Modifier","Edit machine name":"Modifier le nom machine","Status message":"Message d\u0027\u00e9tat","Error message":"Message d\u0027erreur","Warning message":"Message d\u0027avertissement","Re-order rows by numerical weight instead of dragging.":"R\u00e9-ordonner les lignes avec des poids num\u00e9riques plut\u00f4t qu\u0027en les d\u00e9pla\u00e7ant.","Show row weights":"Afficher le poids des lignes","Hide row weights":"Cacher le poids des lignes","Drag to re-order":"Cliquer-d\u00e9poser pour r\u00e9-organiser","You have unsaved changes.":"Vous avez des changements non enregistr\u00e9s.","Show all columns":"Montrer toutes les colonnes","Hide lower priority columns":"Cacher les colonnes de plus faible priorit\u00e9","Show table cells that were hidden to make the table fit within a small screen.":"Montrer les cellules de tableau qui ont \u00e9t\u00e9 cach\u00e9es pour que le tableau rentre dans un petit \u00e9cran.","Select all rows in this table":"S\u00e9lectionner toutes les lignes du tableau","Deselect all rows in this table":"D\u00e9s\u00e9lectionner toutes les lignes du tableau","(active tab)":"(onglet actif)","Not restricted":"Non restreint","Restricted to certain pages":"R\u00e9serv\u00e9 \u00e0 certaines pages","The block cannot be placed in this region.":"Le bloc ne peut pas \u00eatre plac\u00e9 dans cette r\u00e9gion.","Open":"Ouvert","Close":"Fermer","@action @title configuration options":"options de configuration @action @title","Tabbing is no longer constrained by the C
7ontextual module.":"La tabulation n\u0027est plus contrainte par le module Contextual.","Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.":"La tabulation est contrainte par un ensemble de @contextualsCount et l\u0027activation\/d\u00e9saction du mode d\u0027\u00e9dition.","Press the esc key to exit.":"Pressez la touche Echap pour quitter.","@count contextual link\u0003@count contextual links":"@count lien contextuel\u0003@count liens contextuels","Changing the text format to %text_format will permanently remove content that is not allowed in that text format.\u003Cbr\u003E\u003Cbr\u003ESave your changes before switching the text format to avoid losing data.":"Basculer le format de texte en %text_format retirera d\u00e9finitivement le contenu qui n\u0027est pas autoris\u00e9 dans ce format de texte.\u003Cbr\u003E\u003Cbr\u003EPour \u00e9viter de perdre des donn\u00e9es, enregistrez vos changements avant de basculer le format de texte.","Change text format?":"Changer le format de texte ?","Continue":"Continuer","Cancel":"Annuler","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Le fichier s\u00e9lectionn\u00e9 %filename ne peut pas \u00eatre transf\u00e9r\u00e9. Seuls les fichiers avec les extensions suivantes sont autoris\u00e9s : %extensions.","Enabled":"Activ\u00e9","Disabled":"D\u00e9sactiv\u00e9","Based on the text editor configuration, these tags have automatically been added: \u003Cstrong\u003E@tag-list\u003C\/strong\u003E.":"Bas\u00e9 sur la configuration de l\u0027\u00e9diteur de texte, ces balises ont automatiquement \u00e9t\u00e9 ajout\u00e9es : \u003Cstrong\u003E@tag-list\u003C\/strong\u003E.","Hide description":"Masquer la description","Show description":"Afficher la description","Changes made in this table will not be saved until the form is submitted.":"Les changements effectu\u00e9s dans ce tableau ne seront pris en compte que lorsque la configuration aura \u00e9t\u00e9 enregistr\u00e9e.","Done":"Termin\u00e9","Prev":"Pr\u00e9c.","Next":"Suivant","Today":"Aujourd\u0027hui","Jan":"jan","Feb":"f\u00e9v","Mar":"Mar","Apr":"avr","May":"mai","Jun":"juin","Jul":"Juil","Aug":"Ao\u00fb","Sep":"Sep","Oct":"oct","Nov":"nov","Dec":"d\u00e9c","Sunday":"Dimanche","Monday":"Lundi","Tuesday":"Mardi","Wednesday":"Mercredi","Thursday":"Jeudi","Friday":"Vendredi","Saturday":"Samedi","Sun":"dim","Mon":"lun","Tue":"mar","Wed":"mer","Thu":"jeu","Fri":"ven","Sat":"sam","Su":"Di","Mo":"Lu","Tu":"Ma","We":"Me","Th":"Je","Fr":"Ve","Sa":"Sa","mm\/dd\/yy":"dd\/mm\/yy","By @name on @date":"Par @name le @date","By @name":"Par @name","Authored on @date":"R\u00e9dig\u00e9 le @date","Not published":"Non publi\u00e9","Not in menu":"Pas dans le menu","Requires a title":"Titre obligatoire","Don\u0027t display post information":"Ne pas afficher les informations de la contribution","Not promoted":"Non promu","Leave preview?":"Quitter l\u0027aper\u00e7u ?","Leave preview":"Quitter l\u0027aper\u00e7u","CTRL+Left click will prevent this dialog from showing and proceed to the clicked link.":"CTRL + clic gauche emp\u00eachera cette fen\u00eatre de dialogue de s\u0027ouvrir et ouvrira le lien cliqu\u00e9.","Alias: @alias":"Alias : @alias","No alias":"Aucun alias","!modules modules are available in the modified list.":"Les modules !modules sont disponibles dans la liste modifi\u00e9e.","Hide summary":"Masquer le r\u00e9sum\u00e9","Edit summary":"Modifier le r\u00e9sum\u00e9","Home":"Accueil","The toolbar cannot be set to a horizontal orientation when it is locked.":"La barre d\u0027outils ne peut \u00eatre orient\u00e9e horizontalement lorsqu\u0027elle est verrouill\u00e9e.","Horizontal orientation":"Orientation horizontale","Vertical orientation":"Orientation verticale","Extend":"Extension","Collapse":"Replier","@label":"@label","Tray orientation changed to @orientation.":"L\u0027orientation du sous-menu est maintenant @orientation.","closed":"ferm\u00e9","opened":"ouvert","Tray \u0022@tray\u0022 @action.":"Sous-menu \u0022@tray\u0022 @action.","Tray @action.":"Sous-menu @action.","This permission is inherited from the authenticated user role."
7:"Ce droit est h\u00e9rit\u00e9e du r\u00f4le de l\u0027utilisateur authentifi\u00e9.","Add":"Ajouter","Remove group":"Supprimer le groupe","Apply (all displays)":"Appliquer (tous les affichages)","Revert to default":"R\u00e9tablir par d\u00e9faut","Apply (this display)":"Appliquer (cet affichage)","Change order":"Changer l\u0027ordre","Move in any direction":"D\u00e9placer dans n\u0027importe quelle direction","No items selected":"Aucun \u00e9l\u00e9ment s\u00e9lectionn\u00e9","Hide selected":"Masquer la s\u00e9lection","All pages with exceptions":"Toutes les pages avec exceptions","Excepted: @roles":"Except\u00e9 : @roles","Not customizable":"Non personnalisable","On by default with opt out":"Activ\u00e9 par d\u00e9faut avec le refus du suivi","Off by default with opt in":"D\u00e9sactiv\u00e9 par d\u00e9faut avec l\u0027acceptation du suivi","Outbound links":"Liens sortants","Mailto links":"Liens mailto","Downloads":"T\u00e9l\u00e9chargements","Colorbox":"Colorbox","URL fragments":"Fragments d\u0027URL","Not tracked":"Non suivi","@items enabled":"@items activ\u00e9(s)","Site search":"Recherche du site","AdSe
7nse ads":"Annonces AdSense","Display features":"Fonctions d\u0027affichage","A single domain":"Un seul domaine","One domain with multiple subdomains":"Un domaine avec plusieurs sous-domaines","Multiple top-level domains":"Plusieurs domaines de premier niveau","Anonymize IP":"Rendre l\u0027IP anonyme","No privacy":"Pas de confidentialit\u00e9","Content limited to @limit characters, remaining: \u003Cstrong\u003E@remaining\u003C\/strong\u003E":"Contenu limit\u00e9 \u00e0 @limit caract\u00e8res, restant : \u003Cstrong\u003E@remaining\u003C\/strong\u003E","Automatic alias":"Alias automatique","Priority":"Priorit\u00e9","Change frequency":"Fr\u00e9quence de changement","Include images":"Inclure les images","Insert this token into your form":"Ins\u00e9rer ce jeton (\u003Cem\u003Etoken\u003C\/em\u003E) dans votre formulaire","First click a text field to insert your tokens into.":"Cliquez d\u0027abord sur un champ de texte pour ins\u00e9rer vos jetons (\u003Cem\u003Etokens\u003C\/em\u003E) dans celui -ci.","Collapse all":"Tout replier","Expand all":"Tout d\u00e9plier","All details have been expanded.":"Tous les d\u00e9tails ont \u00e9t\u00e9 d\u00e9pli\u00e9s.","All details have been collapsed.":"Tous les d\u00e9tails ont \u00e9t\u00e9 repli\u00e9s.","File upload in progress. Uploaded file may be lost.":"Transfert de fichier en cours. Le fichier transf\u00e9r\u00e9 peut \u00eatre perdu.","item":"\u00e9l\u00e9ment","items":"\u00e9l\u00e9ments","Please avoid using the reserved word \u0027@key\u0027 as the element\u0027s key.":"Veuillez \u00e9viter d\u0027utiliser le mot r\u00e9serv\u00e9 \u0022@key\u0022 comme cl\u00e9 de l\u0027\u00e9l\u00e9ment."},"Long month name":{"January":"janvier","February":"f\u00e9vrier","March":"mars","April":"avril","May":"mai","June":"juin","July":"juillet","August":"ao\u00fbt","September":"septembre","October":"octobre","November":"novembre","December":"d\u00e9cembre"}},"pluralFormula":{"0":0,"1":0,"default":1}};; 8(function(){const settingsElement=document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]');window.drupalSettings={};if(settingsElement!==null)window.drupalSettings=JSON.parse(settingsElement.textContent);})();; 9window.Drupal={behaviors:{},locale:{}};(function(Drupal,drupalSettings,drupalTranslations,console,Proxy,Reflect){Drupal.throwError=function(error){setTimeout(()=>{throw error;},0);};Drupal.attachBehaviors=function(context,settings){context=context||document;settings=settings||drupalSettings;const behaviors=Drupal.behaviors;Object.keys(behaviors||{}).forEach((i)=>{if(typeof behaviors[i].attach==='function')try{behaviors[i].attach(context,settings);}catch(e){Drupal.throwError(e);}});};Drupal.detachBehaviors=function(context,settings,trigger){context=context||document;settings=settings||drupalSettings;trigger=trigger||'unload';const behaviors=Drupal.behaviors;Object.keys(behaviors||{}).forEach((i)=>{if(typeof behaviors[i].detach==='function')try{behaviors[i].detach(context,settings,trigger);}catch(e){Drupal.throwError(e);}});};Drupal.checkPlain=function(str){str=str.toString().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');return str;};Drupal.formatString=function(str,args){const processedArgs={};Object.keys(args||{}).forEach((key)=>{switch(key.charAt(0)){case '@':processedArgs[key]=Drupal.checkPlain(args[key]);break;case '!':processedArgs[key]=args[key];break;default:processedArgs[key]=Drupal.theme('placeholder',args[key]);break;}});return Drupal.stringReplace(str,processedArgs,null);};Drupal.stringReplace=function(str,args,keys){if(str.length===0)return str;if(!Array.isArray(keys)){keys=Object.keys(args||{});keys.sort((a,b)=>a.length-b.length);}if(keys.length===0)return str;const key=keys.pop();const fragments=str.split(key);if(keys.length){for(let i=0;i<fragments.length;i++)fragments[i]=Drupal.stringReplace(fragments[i],args,keys.slice(0));}return fragments.join(args[key]);};Drupal.t=function(str,args,options){options=options||{};options.context=options.context||'';if(drupalTranslations?.strings?.[options.context]?.[str])str=drupalTranslations.strings[options.context][str];if(args)str=Drupal.formatString(str,args);return str;};Drupal.url=function(path){return drupalSettings.path.baseUrl+drupalSettings.path.pathPrefix+path;};Drupal.url.toAbsolute=function(url){const urlParsingNode=document.createElement('a');urlParsingNode.setAttribute('href',url);return urlParsingNode.href;};Drupal.url.isLocal=function(url){let absoluteUrl=Drupal.url.toAbsolute(url);let {protocol}=window.location;if(protocol==='http:'&&absoluteUrl.startsWith('https:'))protocol='https:';let baseUrl=`${protocol}//${window.location.host}${drupalSettings.path.baseUrl.slice(0,-1)}`;try{absoluteUrl=decodeURIComponent(absoluteUrl);}catch(e){}try{baseUrl=decodeURIComponent(baseUrl);}catch(e){}return absoluteUrl===baseUrl||absoluteUrl.startsWith(`${baseUrl}/`);};Drupal.formatPlural=function(count,singular,plural,args,options){args=args||{};args['@count']=count;const pluralDelimiter=drupalSettings.pluralDelimiter;const translations=Drupal.t(singular+pluralDelimiter+plural,args,options).split(pluralDelimiter);let index=0;
9if(drupalTranslations?.pluralFormula)index=count in drupalTranslations.pluralFormula?drupalTranslations.pluralFormula[count]:drupalTranslations.pluralFormula.default;else{if(args['@count']!==1)index=1;}return translations[index];};Drupal.encodePath=function(item){return window.encodeURIComponent(item).replace(/%2F/g,'/');};Drupal.deprecationError=({message})=>{if(drupalSettings.suppressDeprecationErrors===false&&console?.warn)console.warn(`[Deprecation] ${message}`);};Drupal.deprecatedProperty=({target,deprecatedProperty,message})=>{if(!Proxy||!Reflect)return target;return new Proxy(target,{get:(target,key,...rest)=>{if(key===deprecatedProperty)Drupal.deprecationError({message});return Reflect.get(target,key,...rest);}});};Drupal.theme=function(func,...args){if(typeof Drupal.theme?.[func]==='function')return Drupal.theme[func](...args);Drupal.throwError(new TypeError(`Drupal.theme.${func} must be function type.`));};Drupal.theme.placeholder=function(str){return `<em class="placeholder">${Drupal.checkPlain(str)}</em>`;};Drupal.elementIsVisible=function(elem){return !!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};Drupal.elementIsHidden=function(elem){return !Drupal.elementIsVisible(elem);};})(Drupal,window.drupalSettings,window.drupalTranslations,window.console,window.Proxy,window.Reflect);; 10if(window.jQuery)jQuery.noConflict();document.documentElement.className+=' js';(function(Drupal,drupalSettings){const domReady=(callback)=>{const listener=()=>{callback();document.removeEventListener('DOMContentLoaded',listener);};if(document.readyState!=='loading')setTimeout(callback,0);else document.addEventListener('DOMContentLoaded',listener);};domReady(()=>{Drupal.attachBehaviors(document,drupalSettings);});})(Drupal,window.drupalSettings);; 11/* @license MIT https://raw.githubusercontent.com/focus-trap/tabbable/v6.3.0/LICENSE */ 12/*! 13* tabbable 6.3.0 14* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE 15*/ 16!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):(t="undefined"!=typeof globalThis?globalThis:t||self,function(){var n=t.tabbable,o=t.tabbable={};e(o),o.noConflict=function(){return t.tabbable=n,o}}())}(this,(function(t){"use strict";var e=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],n=e.join(","),o="undefined"==typeof Element,r=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,i=!o&&Element.prototype.getRootNode?function(t){var e;return null==t||null===(e=t.getRootNode)||void 0===e?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},a=function(t,e){var n;void 0===e&&(e=!0);var o=null==t||null===(n=t.getAttribute)||void 0===n?void 0:n.call(t,"inert");return""===o||"true"===o||e&&t&&a(t.parentNode)},l=function(t,e,o){if(a(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(n));return e&&r.call(t,n)&&i.unshift(t),i=i.filter(o)},u=function(t,e,o){for(var i=[],l=Array.from(t);l.length;){var c=l.shift();if(!a(c,!1))if("SLOT"===c.tagName){var d=c.assignedElements(),f=d.length?d:c.children,s=u(f,!0,o);o.flatten?i.push.apply(i,s):i.push({scopeParent:c,candidates:s})}else{r.call(c,n)&&o.filter(c)&&(e||!t.includes(c))&&i.push(c);var p=c.shadowRoot||"function"==typeof o.getShadowRoot&&o.getShadowRoot(c),h=!a(p,!1)&&(!o.shadowRootFilter||o.shadowRootFilter(c));if(p&&h){var v=u(!0===p?c.children:p.children,!0,o);o.flatten?i.push.apply(i,v):i.push({scopeParent:c,candidates:v})}else l.unshift.apply(l,c.children)}}return i},c=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},d=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||function(t){var e,n=null==t||null===(e=t.getAttribute)||void 0===e?void 0:e.call(t,"contenteditable");return""===n||"true"===n}(t))&&!c(t)?0:t.tabIndex},f=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},s=function(t){return"INPUT"===t.tagName},p=function(t){return function(t){return s(t)&&"radio"===t.type}(t)&&!function(t){if(!t.name)return!0;var e,n=t.form||i(t),o=function(t){return n.querySelectorAll('input[type="radio"][name="'+t+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)e=o(window.CSS.escape(t.name));else try{e=o(t.name)}catch(t){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",t.message),!1}var r=function(t,e){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===e)return t[n]}(e,t.form);return!r||r===t}(t)},h=function(t){var e=t.getBoundingClientRect(),n=e.width,o=e.height;return 0===n&&0===o},v=function(t,e){var n=e.displayCheck,o=e.getShadowRoot;if("full-native"===n&&"checkVisibility"in t)return!t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if("hidden"===getComputedStyle(t).visibility)return!0;var a=r.call(t,"details>summary:first-of-type")?t.parentElement:t;if(r.call(a,"details:not([open]) *"))return!0;
16if(n&&"full"!==n&&"full-native"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return h(t)}else{if("function"==typeof o){for(var l=t;t;){var u=t.parentElement,c=i(t);if(u&&!u.shadowRoot&&!0===o(u))return h(t);t=t.assignedSlot?t.assignedSlot:u||c===t.ownerDocument?u:c.host}t=l}if(function(t){var e,n,o,r,a=t&&i(t),l=null===(e=a)||void 0===e?void 0:e.host,u=!1;if(a&&a!==t)for(u=!!(null!==(n=l)&&void 0!==n&&null!==(o=n.ownerDocument)&&void 0!==o&&o.contains(l)||null!=t&&null!==(r=t.ownerDocument)&&void 0!==r&&r.contains(t));!u&&l;){var c,d,f;u=!(null===(d=l=null===(c=a=i(l))||void 0===c?void 0:c.host)||void 0===d||null===(f=d.ownerDocument)||void 0===f||!f.contains(l))}return u}(t))return!t.getClientRects().length;if("legacy-full"!==n)return!0}return!1},b=function(t,e){return!(e.disabled||a(e)||function(t){return s(t)&&"hidden"===t.type}(e)||v(e,t)||function(t){return"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some((function(t){return"SUMMARY"===t.tagName}))}(e)||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var n=0;n<e.children.length;n++){var o=e.children.item(n);if("LEGEND"===o.tagName)return!!r.call(e,"fieldset[disabled] *")||!o.contains(t)}return!0}e=e.parentElement}return!1}(e))},y=function(t,e){return!(p(e)||d(e)<0||!b(t,e))},m=function(t){var e=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(e)||e>=0)},g=function(t){var e=[],n=[];return t.forEach((function(t,o){var r=!!t.scopeParent,i=r?t.scopeParent:t,a=function(t,e){var n=d(t);return n<0&&e&&!c(t)?0:n}(i,r),l=r?g(t.candidates):i;0===a?r?e.push.apply(e,l):e.push(i):n.push({documentOrder:o,tabIndex:a,item:t,isScope:r,content:l})})),n.sort(f).reduce((function(t,e){return e.isScope?t.push.apply(t,e.content):t.push(e.content),t}),[]).concat(e)},w=e.concat("iframe").join(",");t.focusable=function(t,e){return(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:b.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):l(t,e.includeContainer,b.bind(null,e))},t.getTabIndex=d,t.isFocusable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,w)&&b(e,t)},t.isTabbable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,n)&&y(e,t)},t.tabbable=function(t,e){var n;return n=(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:y.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:m}):l(t,e.includeContainer,y.bind(null,e)),g(n)}})); 17 18; 19/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 20var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e,t){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.LazyLoad=t()}(this,function(){"use strict";var e={elements_selector:"img",container:document,threshold:300,data_src:"src",data_srcset:"srcset",class_loading:"loading",class_loaded:"loaded",class_error:"error",callback_load:null,callback_error:null,callback_set:null},t=function(e,t){return e.getAttribute("data-"+t)},n=function(e,t,n){return e.setAttribute("data-"+t,n)},r=function(e){return e.filter(function(e){return!t(e,"was-processed")})},s=function(e,t){var n=new e(t),r=new CustomEvent("LazyLoad::Initialized",{detail:{instance:n}});window.dispatchEvent(r)},o=function(e,n){var r=n.data_srcset,s=e.parentElement;if("PICTURE"===s.tagName)for(var o,a=0;o=s.children[a];a+=1)if("SOURCE"===o.tagName){var i=t(o,r);i&&o.setAttribute("srcset",i)}},a=function(e,n){var r=n.data_src,s=n.data_srcset,a=e.tagName,i=t(e,r);if("IMG"===a){o(e,n);var c=t(e,s);return c&&e.setAttribute("srcset",c),void(i&&e.setAttribute("src",i))}"IFRAME"!==a?i&&(e.style.backgroundImage='url("'+i+'")'):i&&e.setAttribute("src",i)},i=!!document.body.classList,c=function(e,t){i?e.classList.add(t):e.className+=(e.className?" ":"")+t},l=function(e,t){i?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},u=function(e,t){e&&e(t)}
20,f=function(e,t,n){e.removeEventListener("load",t),e.removeEventListener("error",n)},d=function(e,t){var n=function n(s){_(s,!0,t),f(e,n,r)},r=function r(s){_(s,!1,t),f(e,n,r)};e.addEventListener("load",n),e.addEventListener("error",r)},_=function(e,t,n){var r=e.target;l(r,n.class_loading),c(r,t?n.class_loaded:n.class_error),u(t?n.callback_load:n.callback_error,r)},v=function(e,t){["IMG","IFRAME"].indexOf(e.tagName)>-1&&(d(e,t),c(e,t.class_loading)),a(e,t),n(e,"was-processed",!0),u(t.callback_set,e)},m=function(t,n){this._settings=_extends({},e,t),this._setObserver(),this.update(n)};m.prototype={_setObserver:function(){var e=this;if("IntersectionObserver"in window){var t=this._settings;this._observer=new IntersectionObserver(function(n){n.forEach(function(n){if(n.intersectionRatio>0){var r=n.target;v(r,t),e._observer.unobserve(r)}}),e._elements=r(e._elements)},{root:t.container===document?null:t.container,rootMargin:t.threshold+"px"})}},update:function(e){var t=this,n=this._settings,s=e||n.container.querySelectorAll(n.elements_selector);this._elements=r(Array.prototype.slice.call(s)),this._observer?this._elements.forEach(function(e){t._observer.observe(e)}):(this._elements.forEach(function(e){v(e,n)}),this._elements=r(this._elements))},destroy:function(){var e=this;this._observer&&(r(this._elements).forEach(function(t){e._observer.unobserve(t)}),this._observer=null),this._elements=null,this._settings=null}};var b=window.lazyLoadOptions;return b&&function(e,t){if(t.length)for(var n,r=0;n=t[r];r+=1)s(e,n);else s(e,t)}(m,b),m});; 21Drupal.behaviors.capcom_lazy_load={attach:function(context,settings){var myLazyLoad=new LazyLoad();}};; 22Drupal.behaviors.capcomHeaderModal={attach:function(context,settings){var modal_config={wprOpenClass:'is-open',modalOpenClass:'is-visible',bodyClass:'has-modal-opened'};function openModal(modal,contentId,contentUrl){modal.classList.add(modal_config.wprOpenClass);modal.querySelector('.cpcModal').classList.add(modal_config.modalOpenClass);var modalOpen=new Event('modal-open');document.getElementsByTagName('body')[0].dispatchEvent(modalOpen);var animationEnd=new Event('modal-anim-end');animationEnd.contentUrl=contentUrl;animationEnd.contentId=contentId;window.setTimeout(function(){document.getElementsByTagName('body')[0].dispatchEvent(animationEnd);},300);}function closeModal(modal){if(modal){modal.classList.remove(modal_config.wprOpenClass);modal.querySelector('.cpcModal').classList.remove(modal_config.modalOpenClass);}document.getElementsByTagName('body')[0].classList.remove(modal_config.bodyClass);var content=body.querySelectorAll('[data-modal-content]');content.forEach(function(element){element.classList.remove('is-visible');});}var body=document.getElementsByTagName('body')[0];body.addEventListener("modal-anim-end",function(e){this.classList.add(modal_config.bodyClass);},false);body.addEventListener("modal-anim-end",function(e){if(null!==e.contentUrl&&null!==e.contentId){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function(e){if(xhr.readyState===4&&xhr.status===200)body.querySelector('[data-modal-content='+e.contentId+']').innerHTML=xhr.responseText;};xhr.open('GET',e.contentUrl,true);xhr.setRequestHeader('Content-type','text/html');xhr.send();}if(null!==e.contentId){var content=body.querySelector('[data-modal-content='+e.contentId+']');content.classList.add('is-visible');}},false);function registerModal(){var modalLinks=document.querySelectorAll('[data-modal-link]');modalLinks.forEach(function(element){element.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();var contentUrl=this.getAttribute('data-modal-content-url');var contentId=this.getAttribute('data-modal-content-id');var relatedModalAttr=this.getAttribute('data-modal-link');var relatedModal=document.querySelector('[data-modal="'+relatedModalAttr+'"]');if(relatedModal.classList.contains(modal_config.wprOpenClass))closeModal(relatedModal);else openModal(relatedModal,contentId,contentUrl);});});}document.addEventListener('keyup',function(e){if(27===e.keyCode)closeModal(document.querySelector('[data-modal]'));});document.addEventListener('capcomTunnelLoaded',function(e){registerModal();});registerModal();}};; 23/*! smooth-scroll v12.1.5 | (c) 2017 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */ 24!(function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(e){"use strict";var t="querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype,n={ignore:"[data-scroll-ignore]",header:null,speed:500,offset:0,easing:"easeInOutCubic",customEasing:null,before:function(){},after:function(){}},o=function(){for(var e={},t=0,n=arguments.length;t<n;t++){var o=arguments[t];!(function(t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(o)}return e},a=function(t){return parseInt(e.getComputedStyle(t).height,10)},r=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r="",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");t>=1&&t<=31||127==t||0===a&&t>=48&&t<=57||1===a&&t>=48&&t<=57&&45===i?r+="\\"+t.toString(16)+" ":r+=t>=128||45===t||95===t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?n.charAt(a):"\\"+n.charAt(a)}return"#"+r},i=function(e,t){var n;return"easeInQuad"===e.easing&&(n=t*t),"easeOutQuad"===e.easing&&(n=t*(2-t)),"easeInOutQuad"===e.easing&&(n=t<.5?2*t*t:(4-2*t)*t-1),"easeInCubic"===e.easing&&(n=t*t*t),"easeOutCubic"===e.easing&&(n=--t*t*t+1),"easeInOutCubic"===e.easing&&(n=t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1),"easeInQuart"===e.easing&&(n=t*t*t*t),"easeOutQuart"===e.easing&&(n=1- --t*t*t*t),"easeInOutQuart"===e.easing&&(n=t<.5?8*t*t*t*t:1-8*--t*t*t*t),"easeInQuint"===e.easing&&(n=t*t*t*t*t),"easeOutQuint"===e.easing&&(n=1+--t*t*t*t*t),"easeInOutQuint"===e.easing&&(n=t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t),e.customEasing&&(n=e.customEasing(t)),n||t},u=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},c=function(e,t,n){var o=0;if(e.offsetParent)do{o+=e.offsetTop,e=e.offsetParent}while(e);return o=Math.max(o-t-n,0)},s=function(e){return e?a(e)+e.offsetTop:0},l=function(t,n,o){o||(t.focus(),document.activeElement.id!==t.id&&(t.setAttribute("tabindex","-1"),t.focu
24s(),t.style.outline="none"),e.scrollTo(0,n))},f=function(t){return!!("matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches)};return function(a,d){var m,h,g,p,v,b,y,S={};S.cancelScroll=function(){cancelAnimationFrame(y)},S.animateScroll=function(t,a,r){var f=o(m||n,r||{}),d="[object Number]"===Object.prototype.toString.call(t),h=d||!t.tagName?null:t;if(d||h){var g=e.pageYOffset;f.header&&!p&&(p=document.querySelector(f.header)),v||(v=s(p));var b,y,E,I=d?t:c(h,v,parseInt("function"==typeof f.offset?f.offset():f.offset,10)),O=I-g,A=u(),C=0,w=function(n,o){var r=e.pageYOffset;if(n==o||r==o||(g<o&&e.innerHeight+r)>=A)return S.cancelScroll(),l(t,o,d),f.after(t,a),b=null,!0},Q=function(t){b||(b=t),C+=t-b,y=C/parseInt(f.speed,10),y=y>1?1:y,E=g+O*i(f,y),e.scrollTo(0,Math.floor(E)),w(E,I)||(e.requestAnimationFrame(Q),b=t)};0===e.pageYOffset&&e.scrollTo(0,0),f.before(t,a),S.cancelScroll(),e.requestAnimationFrame(Q)}};var E=function(e){h&&(h.id=h.getAttribute("data-scroll-id"),S.animateScroll(h,g),h=null,g=null)},I=function(t){if(!f()&&0===t.button&&!t.metaKey&&!t.ctrlKey&&(g=t.target.closest(a))&&"a"===g.tagName.toLowerCase()&&!t.target.closest(m.ignore)&&g.hostname===e.location.hostname&&g.pathname===e.location.pathname&&/#/.test(g.href)){var n;try{n=r(decodeURIComponent(g.hash))}catch(e){n=r(g.hash)}if("#"===n){t.preventDefault(),h=document.body;var o=h.id?h.id:"smooth-scroll-top";return h.setAttribute("data-scroll-id",o),h.id="",void(e.location.hash.substring(1)===o?E():e.location.hash=o)}h=document.querySelector(n),h&&(h.setAttribute("data-scroll-id",h.id),h.id="",g.hash===e.location.hash&&(t.preventDefault(),E()))}},O=function(e){b||(b=setTimeout((function(){b=null,v=s(p)}),66))};return S.destroy=function(){m&&(document.removeEventListener("click",I,!1),e.removeEventListener("resize",O,!1),S.cancelScroll(),m=null,h=null,g=null,p=null,v=null,b=null,y=null)},S.init=function(a){t&&(S.destroy(),m=o(n,a||{}),p=m.header?document.querySelector(m.header):null,v=s(p),document.addEventListener("click",I,!1),e.addEventListener("hashchange",E,!1),p&&e.addEventListener("resize",O,!1))},S.init(d),S}}));; 25Drupal.behaviors.capcom_smooth_scroll={attach:function(context,settings){var scroll=new SmoothScroll('a[href*="#"]');document.addEventListener('newStateLoad',function(e){var tunnelScroll=new SmoothScroll();var selector=e.detail.destination;tunnelScroll.animateScroll(document.querySelector(selector));});}};; 26!function(){"use strict";function a(a){var c=l(b,a||{});this.create(c),this.add()}var b={ellipsis:"â¦",debounce:0,responsive:!0,className:".clamp",lines:2,portrait:null,break_word:!0},c=0,d=window.innerWidth,e=!!window.requestAnimationFrame,f=function(){return c+=1},g=function(a,b){a.setAttribute("data-ellipsis-id",b)},h=function(a){return a.getAttribute("data-ellipsis-id")},i=function(a,b){var c=f();g(b,c),a[c]=a[c]||{},a[c].element=b,a[c].innerHTML=b.innerHTML},j=function(a,b){return a?a[h(b)]:null},k=function(a){return Object.keys(a).map(function(b,c){return a[b].element})},l=function(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c};a.prototype={conf:{},prop:{},lines:{},temp:null,listener:null,create:function(a){if(this.conf=a,this.lines={get current(){return a.portrait&&window.innerHeight>window.innerWidth?a.portrait:a.lines}},this.conf.responsive){this.temp={};var b,c=this.conf.debounce;if(e&&!c){this._isScheduled=!1;var f=this;b=function(a){window.innerWidth!=d&&(d=window.innerWidth,f._isScheduled||(f._isScheduled=!0,window.requestAnimationFrame(function(){f._isScheduled=!1,f.add(k(f.temp))})))}}else{c=c||16;var g;b=function(a){window.innerWidth!=d&&(d=window.innerWidth,clearTimeout(g),g=setTimeout(function(){this.add(k(this.temp))}.bind(this),c))}}this.listener=b.bind(this),window.addEventListener("resize",this.listener,!1),window.removeEventListener("beforeunload",this.listener,!1)}},destroy:function(){this.listener&&window.removeEventListener("resize",this.listener,!1)},createProp:function(a){this.prop={get height(){var b=a.getBoundingClientRect();return parseInt(b.bottom-b.top,10)},get lineheight(){var b=getComputedStyle(a).getPropertyValue("line-height");return String("normal|initial|inherit").indexOf(b)>-1&&(b=parseInt(getComputedStyle(a).getPropertyValue("font-size"),10)+2),parseInt(b,10)}}}
26,add:function(a){if(!a&&this.conf.className&&(a=document.querySelectorAll(this.conf.className)),a)if(a.length)for(var b=0;b<a.length;b++)this.addElement(a[b]);else void 0===a.length&&this.addElement(a)},addElement:function(a){if(this.conf.responsive){var b=j(this.temp,a);b?a.innerHTML!==b.innerHTML&&(a.innerHTML=b.innerHTML):i(this.temp,a)}this.createProp(a),this.isNotCorrect()&&(a.childNodes.length&&a.childNodes.length>1?this.handleChildren(a):a.childNodes.length&&1===a.childNodes.length&&3===a.childNodes[0].nodeType&&this.simpleText(a))},breakWord:function(a,b,c){var d=a.split(" ");if(d.pop(),c&&d.pop(),!b)return d[d.length-1]&&(d[d.length-1]=d[d.length-1].replace(/(,$)/g,"").replace(/(\.$)/g,"")),d.push(this.conf.ellipsis),d.join(" ");if(d[d.length-1])return d[d.length-1]=d[d.length-1].replace(/(,$)/g,"").replace(/(\.$)/g,""),d.push(this.conf.ellipsis),[d.join(" "),b];if(!d[d.length-1]&&b){var e=" "+b.trim().replace(/(,$)/g,"").replace(/(\.$)/g,"")+" ";return d.push(this.conf.ellipsis),[d.join(" "),e]}},simpleText:function(a){for(var b=a.childNodes[0].nodeValue;this.prop.height>this.prop.lineheight*this.lines.current;)a.childNodes[0].nodeValue=b.slice(0,-1),b=a.childNodes[0].nodeValue;this.conf.break_word?(a.childNodes[0].nodeValue=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()&&(a.childNodes[0].nodeValue=" "+a.childNodes[0].nodeValue.slice(0,-(this.conf.ellipsis.length+1)).trim().slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis)):(a.childNodes[0].nodeValue=this.breakWord(a.childNodes[0].nodeValue),this.isNotCorrect()&&(a.childNodes[0].nodeValue=this.breakWord(a.childNodes[0].nodeValue,null,!0)))},isNotCorrect:function(){return this.prop.height>this.prop.lineheight*this.lines.current},processBreak:function(a,b,c){var d=this.breakWord(a.innerText||a.nodeValue,b.innerText||b.nodeValue,c);a.innerText?a.innerText=d[0]:a.nodeValue=d[0],b.innerText?b.innerText=d[1]:b.nodeValue=d[1]},handleChildren:function(a){for(var b,c=a.childNodes,d=c.length-1;d>=0;d--){var e;if(8!==c[d].nodeType){if(3===c[d].nodeType?(e=c[d].nodeValue,c[d].nodeValue=""):(e=getComputedStyle(c[d]).getPropertyValue("display"),c[d].style.display="none"),this.prop.height<=this.prop.lineheight*this.lines.current){if(3===c[d].nodeType){for(c[d].nodeValue=e,b=c[d].nodeValue;this.prop.height>this.prop.lineheight*this.lines.current;)c[d].nodeValue=b.slice(0,-1),b=c[d].nodeValue;if(this.conf.break_word){if(c[d].nodeValue=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()){if(c[d].nodeValue=" "+c[d].nodeValue.slice(0,-this.conf.ellipsis.length).trim().slice(0,-this.conf.ellipsis.length),!(c[d].nodeValue.length>1))continue;c[d].nodeValue=c[d].nodeValue.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis}}else{if(!c[d].innerText&&!c[d].nodeValue)continue;if(this.processBreak(c[d],c[d-1]),this.isNotCorrect()&&(this.processBreak(c[d],c[d-1],!0),this.isNotCorrect())){a.removeChild(c[d]);continue}}}else{for(c[d].style.display=e,b=c[d].innerText;this.prop.height>this.prop.lineheight*this.lines.current;)c[d].innerText=b.slice(0,-1),b=c[d].innerText;if(this.conf.break_word){if(c[d].innerText=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()){if(c[d].innerText=" "+c[d].innerText.slice(0,-this.conf.ellipsis.length).trim().slice(0,-this.conf.ellipsis.length),!(c[d].innerText.length>1))continue;c[d].innerText=c[d].innerText.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis}}else{if(!c[d].innerText&&!c[d].nodeValue)continue;if(this.processBreak(c[d],c[d-1]),this.isNotCorrect()&&(this.processBreak(c[d],c[d-1],!0),this.isNotCorrect())){a.removeChild(c[d]);continue}}}break}a.removeChild(c[d])}}}};var m=function(b){return new a(b)};"function"==typeof define&&define.amd&&define("ellipsis",[],function(){return m}),self.Ellipsis=m}();; 27(function(Drupal,once){'use strict';Drupal.behaviors.ellipsis={attach:function(context){if(typeof Ellipsis!=='function')return;const ellipsis=Ellipsis({lines:2});const elements=once('ellipsis','[data-ellipsis]',context);for(let i=0;i<elements.length;i++){const element=elements[i];let target=element;if(element.childNodes.length===1&&element.childNodes[0].nodeType===1)target=element.childNodes[0];ellipsis.add(target);}}};})(Drupal,once);; 28/******/ (function(modules) { // webpackBootstrap 29/******/ // The module cache 30/******/ var installedModules = {}; 31/******/ 32/******/ // The require function 33/******/ function __webpack_require__(moduleId) { 34/******/ 35/******/ // Check if module is in cache 36/******/ if(installedModules[moduleId]) { 37/******/ return installedModules[moduleId].exports; 38/******/ } 39/******/ // Create a new module (and put it into the cache) 40/******/ var module = installedModules[moduleId] = { 41/******/ i: moduleId, 42/******/ l: false, 43/******/ exports: {} 44/******/ }; 45/******/ 46/******/ // Execute the module function 47/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 48/******/ 49/******/ // Flag the module as loaded
vendor: 6,671 bytes, lines 50-236
50/******/ module.l = true; 51/******/ 52/******/ // Return the exports of the module 53/******/ return module.exports; 54/******/ } 55/******/ 56/******/ 57/******/ // expose the modules object (__webpack_modules__) 58/******/ __webpack_require__.m = modules; 59/******/ 60/******/ // expose the module cache 61/******/ __webpack_require__.c = installedModules; 62/******/ 63/******/ // define getter function for harmony exports 64/******/ __webpack_require__.d = function(exports, name, getter) { 65/******/ if(!__webpack_require__.o(exports, name)) { 66/******/ Object.defineProperty(exports, name, { 67/******/ configurable: false, 68/******/ enumerable: true, 69/******/ get: getter 70/******/ }); 71/******/ } 72/******/ }; 73/******/ 74/******/ // getDefaultExport function for compatibility with non-harmony modules 75/******/ __webpack_require__.n = function(module) { 76/******/ var getter = module && module.__esModule ? 77/******/ function getDefault() { return module['default']; } : 78/******/ function getModuleExports() { return module; }; 79/******/ __webpack_require__.d(getter, 'a', getter); 80/******/ return getter; 81/******/ }; 82/******/ 83/******/ // Object.prototype.hasOwnProperty.call 84/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 85/******/ 86/******/ // __webpack_public_path__ 87/******/ __webpack_require__.p = ""; 88/******/ 89/******/ // Load entry module and return exports 90/******/ return __webpack_require__(__webpack_require__.s = 227); 91/******/ }) 92/************************************************************************/ 93/******/ ([ 94/* 0 */ 95/***/ (function(module, exports, __webpack_require__) { 96 97var global = __webpack_require__(5); 98var core = __webpack_require__(18); 99var hide = __webpack_require__(20); 100var redefine = __webpack_require__(19); 101var ctx = __webpack_require__(30); 102var PROTOTYPE = 'prototype'; 103 104var $export = function (type, name, source) { 105 var IS_FORCED = type & $export.F; 106 var IS_GLOBAL = type & $export.G; 107 var IS_STATIC = type & $export.S; 108 var IS_PROTO = type & $export.P; 109 var IS_BIND = type & $export.B; 110 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 111 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 112 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 113 var key, own, out, exp; 114 if (IS_GLOBAL) source = name; 115 for (key in source) { 116 // contains in native 117 own = !IS_FORCED && target && target[key] !== undefined; 118 // export native or passed 119 out = (own ? target : source)[key]; 120 // bind timers to global for call from export context 121 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 122 // extend global 123 if (target) redefine(target, key, out, type & $export.U); 124 // export 125 if (exports[key] != out) hide(exports, key, exp); 126 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 127 } 128}; 129global.core = core; 130// type bitmap 131$export.F = 1; // forced 132$export.G = 2; // global 133$export.S = 4; // static 134$export.P = 8; // proto 135$export.B = 16; // bind 136$export.W = 32; // wrap 137$export.U = 64; // safe 138$export.R = 128; // real proto method for `library` 139module.exports = $export; 140 141 142/***/ }), 143/* 1 */ 144/***/ (function(module, exports) { 145 146// shim for using process in browser 147var process = module.exports = {}; 148 149// cached from whatever global is present so that test runners that stub it 150// don't break things. But we need to wrap it in a try catch in case it is 151// wrapped in strict mode code which doesn't define any globals. It's inside a 152// function because try/catches deoptimize in certain engines. 153 154var cachedSetTimeout; 155var cachedClearTimeout; 156 157function defaultSetTimout() { 158 throw new Error('setTimeout has not been defined'); 159} 160function defaultClearTimeout () { 161 throw new Error('clearTimeout has not been defined'); 162} 163(function () { 164 try { 165 if (typeof setTimeout === 'function') { 166 cachedSetTimeout = setTimeout; 167 } else { 168 cachedSetTimeout = defaultSetTimout; 169 } 170 } catch (e) { 171 cachedSetTimeout = defaultSetTimout; 172 } 173 try { 174 if (typeof clearTimeout === 'function') { 175 cachedClearTimeout = clearTimeout; 176 } else { 177 cachedClearTimeout = defaultClearTimeout; 178 } 179 } catch (e) { 180 cachedClearTimeout = defaultClearTimeout; 181 } 182} ()) 183function runTimeout(fun) { 184 if (cachedSetTimeout === setTimeout) { 185 //normal enviroments in sane situations 186 return setTimeout(fun, 0); 187 } 188 // if setTimeout wasn't available but was latter defined 189 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { 190 cachedSetTimeout = setTimeout; 191 return setTimeout(fun, 0); 192 } 193 try { 194 // when when somebody has screwed with setTimeout but no I.E. maddness 195 return cachedSetTimeout(fun, 0); 196 } catch(e){ 197 try { 198 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 199 return cachedSetTimeout.call(null, fun, 0); 200 } catch(e){ 201 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error 202 return cachedSetTimeout.call(this, fun, 0); 203 } 204 } 205 206 207} 208function runClearTimeout(marker) { 209 if (cachedClearTimeout === clearTimeout) { 210 //normal enviroments in sane situations 211 return clearTimeout(marker); 212 } 213 // if clearTimeout wasn't available but was latter defined 214 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { 215 cachedClearTimeout = clearTimeout; 216 return clearTimeout(marker); 217 } 218 try { 219 // when when somebody has screwed with setTimeout but no I.E. maddness 220 return cachedClearTimeout(marker); 221 } catch (e){ 222 try { 223 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 224 return cachedClearTimeout.call(null, marker); 225 } catch (e){ 226 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. 227 // Some versions of I.E. have different rules for clearTimeout vs setTimeout 228 return cachedClearTimeout.call(this, marker); 229 } 230 } 231 232 233 234} 235var queue = []; 236var draining = false;
vendor: 5,420 bytes, lines 237-443
237var currentQueue; 238var queueIndex = -1; 239 240function cleanUpNextTick() { 241 if (!draining || !currentQueue) { 242 return; 243 } 244 draining = false; 245 if (currentQueue.length) { 246 queue = currentQueue.concat(queue); 247 } else { 248 queueIndex = -1; 249 } 250 if (queue.length) { 251 drainQueue(); 252 } 253} 254 255function drainQueue() { 256 if (draining) { 257 return; 258 } 259 var timeout = runTimeout(cleanUpNextTick); 260 draining = true; 261 262 var len = queue.length; 263 while(len) { 264 currentQueue = queue; 265 queue = []; 266 while (++queueIndex < len) { 267 if (currentQueue) { 268 currentQueue[queueIndex].run(); 269 } 270 } 271 queueIndex = -1; 272 len = queue.length; 273 } 274 currentQueue = null; 275 draining = false; 276 runClearTimeout(timeout); 277} 278 279process.nextTick = function (fun) { 280 var args = new Array(arguments.length - 1); 281 if (arguments.length > 1) { 282 for (var i = 1; i < arguments.length; i++) { 283 args[i - 1] = arguments[i]; 284 } 285 } 286 queue.push(new Item(fun, args)); 287 if (queue.length === 1 && !draining) { 288 runTimeout(drainQueue); 289 } 290}; 291 292// v8 likes predictible objects 293function Item(fun, array) { 294 this.fun = fun; 295 this.array = array; 296} 297Item.prototype.run = function () { 298 this.fun.apply(null, this.array); 299}; 300process.title = 'browser'; 301process.browser = true; 302process.env = {}; 303process.argv = []; 304process.version = ''; // empty string to avoid regexp issues 305process.versions = {}; 306 307function noop() {} 308 309process.on = noop; 310process.addListener = noop; 311process.once = noop; 312process.off = noop; 313process.removeListener = noop; 314process.removeAllListeners = noop; 315process.emit = noop; 316process.prependListener = noop; 317process.prependOnceListener = noop; 318 319process.listeners = function (name) { return [] } 320 321process.binding = function (name) { 322 throw new Error('process.binding is not supported'); 323}; 324 325process.cwd = function () { return '/' }; 326process.chdir = function (dir) { 327 throw new Error('process.chdir is not supported'); 328}; 329process.umask = function() { return 0; }; 330 331 332/***/ }), 333/* 2 */ 334/***/ (function(module, exports, __webpack_require__) { 335 336"use strict"; 337/* WEBPACK VAR INJECTION */(function(process) {/** 338 * Copyright (c) 2013-present, Facebook, Inc. 339 * 340 * This source code is licensed under the MIT license found in the 341 * LICENSE file in the root directory of this source tree. 342 * 343 */ 344 345 346 347/** 348 * Use invariant() to assert state which your program assumes to be true. 349 * 350 * Provide sprintf-style format (only %s is supported) and arguments 351 * to provide information about what broke and what you were 352 * expecting. 353 * 354 * The invariant message will be stripped in production, but the invariant 355 * will remain to ensure logic does not differ in production. 356 */ 357 358var validateFormat = function validateFormat(format) {}; 359 360if (process.env.NODE_ENV !== 'production') { 361 validateFormat = function validateFormat(format) { 362 if (format === undefined) { 363 throw new Error('invariant requires an error message argument'); 364 } 365 }; 366} 367 368function invariant(condition, format, a, b, c, d, e, f) { 369 validateFormat(format); 370 371 if (!condition) { 372 var error; 373 if (format === undefined) { 374 error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); 375 } else { 376 var args = [a, b, c, d, e, f]; 377 var argIndex = 0; 378 error = new Error(format.replace(/%s/g, function () { 379 return args[argIndex++]; 380 })); 381 error.name = 'Invariant Violation'; 382 } 383 384 error.framesToPop = 1; // we don't care about invariant's own frame 385 throw error; 386 } 387} 388 389module.exports = invariant; 390/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 391 392/***/ }), 393/* 3 */ 394/***/ (function(module, exports, __webpack_require__) { 395 396"use strict"; 397/* WEBPACK VAR INJECTION */(function(process) {/** 398 * Copyright (c) 2014-present, Facebook, Inc. 399 * 400 * This source code is licensed under the MIT license found in the 401 * LICENSE file in the root directory of this source tree. 402 * 403 */ 404 405 406 407var emptyFunction = __webpack_require__(38); 408 409/** 410 * Similar to invariant but only logs a warning if the condition is not met. 411 * This can be used to log issues in development environments in critical 412 * paths. Removing the logging code for production environments will keep the 413 * same logic and follow the same code paths. 414 */ 415 416var warning = emptyFunction; 417 418if (process.env.NODE_ENV !== 'production') { 419 var printWarning = function printWarning(format) { 420 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 421 args[_key - 1] = arguments[_key]; 422 } 423 424 var argIndex = 0; 425 var message = 'Warning: ' + format.replace(/%s/g, function () { 426 return args[argIndex++]; 427 }); 428 if (typeof console !== 'undefined') { 429 console.error(message); 430 } 431 try { 432 // --- Welcome to debugging React --- 433 // This error was thrown as a convenience so that you can use this stack 434 // to find the callsite that caused this warning to fire. 435 throw new Error(message); 436 } catch (x) {} 437 }; 438 439 warning = function warning(condition, format) { 440 if (format === undefined) { 441 throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); 442 } 443
444 if (format.indexOf('Failed Composite propType: ') === 0) { 445 return; // Ignore CompositeComponent proptype check. 446 } 447 448 if (!condition) { 449 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { 450 args[_key2 - 2] = arguments[_key2]; 451 } 452 453 printWarning.apply(undefined, [format].concat(args)); 454 } 455 }; 456} 457 458module.exports = warning; 459/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 460 461/***/ }), 462/* 4 */ 463/***/ (function(module, exports, __webpack_require__) { 464 465var isObject = __webpack_require__(7); 466module.exports = function (it) { 467 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 468 return it; 469}; 470 471 472/***/ }), 473/* 5 */ 474/***/ (function(module, exports) { 475 476// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 477var global = module.exports = typeof window != 'undefined' && window.Math == Math 478 ? window : typeof self != 'undefined' && self.Math == Math ? self 479 // eslint-disable-next-line no-new-func 480 : Function('return this')(); 481if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef 482 483 484/***/ }), 485/* 6 */ 486/***/ (function(module, exports) { 487 488module.exports = function (exec) { 489 try { 490 return !!exec(); 491 } catch (e) { 492 return true; 493 } 494}; 495 496 497/***/ }), 498/* 7 */ 499/***/ (function(module, exports) { 500 501module.exports = function (it) { 502 return typeof it === 'object' ? it !== null : typeof it === 'function'; 503}; 504 505 506/***/ }), 507/* 8 */ 508/***/ (function(module, exports, __webpack_require__) { 509 510"use strict"; 511/** 512 * Copyright (c) 2013-present, Facebook, Inc. 513 * 514 * This source code is licensed under the MIT license found in the 515 * LICENSE file in the root directory of this source tree. 516 * 517 * 518 */ 519 520 521/** 522 * WARNING: DO NOT manually require this module. 523 * This is a replacement for `invariant(...)` used by the error code system 524 * and will _only_ be required by the corresponding babel pass. 525 * It always throws. 526 */ 527 528function reactProdInvariant(code) { 529 var argCount = arguments.length - 1; 530 531 var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; 532 533 for (var argIdx = 0; argIdx < argCount; argIdx++) { 534 message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); 535 } 536 537 message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; 538 539 var error = new Error(message); 540 error.name = 'Invariant Violation'; 541 error.framesToPop = 1; // we don't care about reactProdInvariant's own frame 542 543 throw error; 544} 545 546module.exports = reactProdInvariant; 547 548/***/ }), 549/* 9 */ 550/***/ (function(module, exports, __webpack_require__) { 551 552var store = __webpack_require__(82)('wks'); 553var uid = __webpack_require__(49); 554var Symbol = __webpack_require__(5).Symbol; 555var USE_SYMBOL = typeof Symbol == 'function'; 556 557var $exports = module.exports = function (name) { 558 return store[name] || (store[name] = 559 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 560}; 561 562$exports.store = store; 563 564 565/***/ }), 566/* 10 */ 567/***/ (function(module, exports, __webpack_require__) { 568 569"use strict"; 570/* 571object-assign 572(c) Sindre Sorhus 573@license MIT
vendor: 4,696 bytes, lines 574-754
574*/ 575 576 577/* eslint-disable no-unused-vars */ 578var getOwnPropertySymbols = Object.getOwnPropertySymbols; 579var hasOwnProperty = Object.prototype.hasOwnProperty; 580var propIsEnumerable = Object.prototype.propertyIsEnumerable; 581 582function toObject(val) { 583 if (val === null || val === undefined) { 584 throw new TypeError('Object.assign cannot be called with null or undefined'); 585 } 586 587 return Object(val); 588} 589 590function shouldUseNative() { 591 try { 592 if (!Object.assign) { 593 return false; 594 } 595 596 // Detect buggy property enumeration order in older V8 versions. 597 598 // https://bugs.chromium.org/p/v8/issues/detail?id=4118 599 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers 600 test1[5] = 'de'; 601 if (Object.getOwnPropertyNames(test1)[0] === '5') { 602 return false; 603 } 604 605 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 606 var test2 = {}; 607 for (var i = 0; i < 10; i++) { 608 test2['_' + String.fromCharCode(i)] = i; 609 } 610 var order2 = Object.getOwnPropertyNames(test2).map(function (n) { 611 return test2[n]; 612 }); 613 if (order2.join('') !== '0123456789') { 614 return false; 615 } 616 617 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 618 var test3 = {}; 619 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { 620 test3[letter] = letter; 621 }); 622 if (Object.keys(Object.assign({}, test3)).join('') !== 623 'abcdefghijklmnopqrst') { 624 return false; 625 } 626 627 return true; 628 } catch (err) { 629 // We don't expect any of the above to throw, but better to be safe. 630 return false; 631 } 632} 633 634module.exports = shouldUseNative() ? Object.assign : function (target, source) { 635 var from; 636 var to = toObject(target); 637 var symbols; 638 639 for (var s = 1; s < arguments.length; s++) { 640 from = Object(arguments[s]); 641 642 for (var key in from) { 643 if (hasOwnProperty.call(from, key)) { 644 to[key] = from[key]; 645 } 646 } 647 648 if (getOwnPropertySymbols) { 649 symbols = getOwnPropertySymbols(from); 650 for (var i = 0; i < symbols.length; i++) { 651 if (propIsEnumerable.call(from, symbols[i])) { 652 to[symbols[i]] = from[symbols[i]]; 653 } 654 } 655 } 656 } 657 658 return to; 659}; 660 661 662/***/ }), 663/* 11 */ 664/***/ (function(module, exports, __webpack_require__) { 665 666var anObject = __webpack_require__(4); 667var IE8_DOM_DEFINE = __webpack_require__(156); 668var toPrimitive = __webpack_require__(33); 669var dP = Object.defineProperty; 670 671exports.f = __webpack_require__(12) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 672 anObject(O); 673 P = toPrimitive(P, true); 674 anObject(Attributes); 675 if (IE8_DOM_DEFINE) try { 676 return dP(O, P, Attributes); 677 } catch (e) { /* empty */ } 678 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 679 if ('value' in Attributes) O[P] = Attributes.value; 680 return O; 681}; 682 683 684/***/ }), 685/* 12 */ 686/***/ (function(module, exports, __webpack_require__) { 687 688// Thank's IE8 for his funny defineProperty 689module.exports = !__webpack_require__(6)(function () { 690 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; 691}); 692 693 694/***/ }), 695/* 13 */ 696/***/ (function(module, exports, __webpack_require__) { 697 698// 7.1.15 ToLength 699var toInteger = __webpack_require__(34); 700var min = Math.min; 701module.exports = function (it) { 702 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 703}; 704 705 706/***/ }), 707/* 14 */ 708/***/ (function(module, exports, __webpack_require__) { 709 710"use strict"; 711/* WEBPACK VAR INJECTION */(function(process) {/** 712 * Copyright (c) 2013-present, Facebook, Inc. 713 * 714 * This source code is licensed under the MIT license found in the 715 * LICENSE file in the root directory of this source tree. 716 * 717 */ 718 719 720 721var _prodInvariant = __webpack_require__(8); 722 723var DOMProperty = __webpack_require__(47); 724var ReactDOMComponentFlags = __webpack_require__(195); 725 726var invariant = __webpack_require__(2); 727 728var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; 729var Flags = ReactDOMComponentFlags; 730 731var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2); 732 733/** 734 * Check if a given node should be cached. 735 */ 736function shouldPrecacheNode(node, nodeID) { 737 return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' '; 738} 739 740/** 741 * Drill down (through composites and empty components) until we get a host or 742 * host text component. 743 * 744 * This is pretty polymorphic but unavoidable with the current structure we have 745 * for `_renderedChildren`. 746 */ 747function getRenderedHostOrTextFromComponent(component) { 748 var rendered; 749 while (rendered = component._renderedComponent) { 750 component = rendered; 751 } 752 return component; 753} 754
755/** 756 * Populate `_hostNode` on the rendered host/text component with the given 757 * DOM node. The passed `inst` can be a composite. 758 */ 759function precacheNode(inst, node) { 760 var hostInst = getRenderedHostOrTextFromComponent(inst); 761 hostInst._hostNode = node; 762 node[internalInstanceKey] = hostInst; 763} 764 765function uncacheNode(inst) { 766 var node = inst._hostNode; 767 if (node) { 768 delete node[internalInstanceKey]; 769 inst._hostNode = null; 770 } 771} 772 773/** 774 * Populate `_hostNode` on each child of `inst`, assuming that the children 775 * match up with the DOM (element) children of `node`. 776 * 777 * We cache entire levels at once to avoid an n^2 problem where we access the 778 * children of a node sequentially and have to walk from the start to our target 779 * node every time. 780 * 781 * Since we update `_renderedChildren` and the actual DOM at (slightly) 782 * different times, we could race here and see a newer `_renderedChildren` than 783 * the DOM nodes we see. To avoid this, ReactMultiChild calls 784 * `prepareToManageChildren` before we change `_renderedChildren`, at which 785 * time the container's child nodes are always cached (until it unmounts). 786 */ 787function precacheChildNodes(inst, node) { 788 if (inst._flags & Flags.hasCachedChildNodes) { 789 return; 790 } 791 var children = inst._renderedChildren; 792 var childNode = node.firstChild; 793 outer: for (var name in children) { 794 if (!children.hasOwnProperty(name)) { 795 continue; 796 } 797 var childInst = children[name]; 798 var childID = getRenderedHostOrTextFromComponent(childInst)._domID; 799 if (childID === 0) { 800 // We're currently unmounting this child in ReactMultiChild; skip it. 801 continue; 802 } 803 // We assume the child nodes are in the same order as the child instances. 804 for (; childNode !== null; childNode = childNode.nextSibling) { 805 if (shouldPrecacheNode(childNode, childID)) { 806 precacheNode(childInst, childNode); 807 continue outer; 808 } 809 } 810 // We reached the end of the DOM children without finding an ID match. 811 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; 812 } 813 inst._flags |= Flags.hasCachedChildNodes; 814} 815 816/** 817 * Given a DOM node, return the closest ReactDOMComponent or 818 * ReactDOMTextComponent instance ancestor. 819 */ 820function getClosestInstanceFromNode(node) { 821 if (node[internalInstanceKey]) { 822 return node[internalInstanceKey]; 823 } 824 825 // Walk up the tree until we find an ancestor whose instance we have cached. 826 var parents = []; 827 while (!node[internalInstanceKey]) { 828 parents.push(node); 829 if (node.parentNode) { 830 node = node.parentNode; 831 } else { 832 // Top of the tree. This node must not be part of a React tree (or is 833 // unmounted, potentially). 834 return null; 835 } 836 } 837 838 var closest; 839 var inst; 840 for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) { 841 closest = inst; 842 if (parents.length) { 843 precacheChildNodes(inst, node); 844 } 845 } 846 847 return closest; 848} 849 850/** 851 * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent 852 * instance, or null if the node was not rendered by this React. 853 */ 854function getInstanceFromNode(node) { 855 var inst = getClosestInstanceFromNode(node); 856 if (inst != null && inst._hostNode === node) { 857 return inst; 858 } else { 859 return null; 860 } 861} 862 863/** 864 * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding 865 * DOM node. 866 */ 867function getNodeFromInstance(inst) { 868 // Without this first invariant, passing a non-DOM-component triggers the next 869 // invariant for a missing parent, which is super confusing. 870 !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; 871 872 if (inst._hostNode) { 873 return inst._hostNode; 874 } 875 876 // Walk up the tree until we find an ancestor whose DOM node we have cached. 877 var parents = []; 878 while (!inst._hostNode) { 879 parents.push(inst); 880 !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.')
880: _prodInvariant('34') : void 0; 881 inst = inst._hostParent; 882 } 883 884 // Now parents contains each ancestor that does *not* have a cached native 885 // node, and `inst` is the deepest ancestor that does. 886 for (; parents.length; inst = parents.pop()) { 887 precacheChildNodes(inst, inst._hostNode); 888 } 889 890 return inst._hostNode; 891} 892 893var ReactDOMComponentTree = { 894 getClosestInstanceFromNode: getClosestInstanceFromNode, 895 getInstanceFromNode: getInstanceFromNode, 896 getNodeFromInstance: getNodeFromInstance, 897 precacheChildNodes: precacheChildNodes, 898 precacheNode: precacheNode, 899 uncacheNode: uncacheNode 900}; 901 902module.exports = ReactDOMComponentTree; 903/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 904 905/***/ }), 906/* 15 */ 907/***/ (function(module, exports, __webpack_require__) { 908 909// 7.1.13 ToObject(argument) 910var defined = __webpack_require__(35); 911module.exports = function (it) { 912 return Object(defined(it)); 913}; 914 915 916/***/ }), 917/* 16 */ 918/***/ (function(module, exports, __webpack_require__) { 919 920"use strict"; 921/** 922 * Copyright (c) 2013-present, Facebook, Inc. 923 * 924 * This source code is licensed under the MIT license found in the 925 * LICENSE file in the root directory of this source tree. 926 * 927 */ 928 929 930 931var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); 932 933/** 934 * Simple, lightweight module assisting with the detection and context of 935 * Worker. Helps avoid circular dependencies and allows code to reason about 936 * whether or not they are in a Worker, even if they never include the main 937 * `ReactWorker` dependency. 938 */ 939var ExecutionEnvironment = { 940 941 canUseDOM: canUseDOM, 942 943 canUseWorkers: typeof Worker !== 'undefined', 944 945 canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), 946 947 canUseViewport: canUseDOM && !!window.screen, 948 949 isInWorker: !canUseDOM // For now, this is true - might change in the future. 950 951}; 952 953module.exports = ExecutionEnvironment; 954 955/***/ }), 956/* 17 */ 957/***/ (function(module, exports) { 958 959module.exports = function (it) { 960 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 961 return it; 962}; 963 964 965/***/ }), 966/* 18 */ 967/***/ (function(module, exports) { 968 969var core = module.exports = { version: '2.5.7' }; 970if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef 971 972 973/***/ }), 974/* 19 */ 975/***/ (function(module, exports, __webpack_require__) { 976 977var global = __webpack_require__(5); 978var hide = __webpack_require__(20); 979var has = __webpack_require__(24); 980var SRC = __webpack_require__(49)('src'); 981var TO_STRING = 'toString'; 982var $toString = Function[TO_STRING]; 983var TPL = ('' + $toString).split(TO_STRING); 984 985__webpack_require__(18).inspectSource = function (it) { 986 return $toString.call(it); 987}; 988 989(module.exports = function (O, key, val, safe) { 990 var isFunction = typeof val == 'function'; 991 if (isFunction) has(val, 'name') || hide(val, 'name', key); 992 if (O[key] === val) return; 993 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 994 if (O === global) { 995 O[key] = val; 996 } else if (!safe) { 997 delete O[key]; 998 hide(O, key, val); 999 } else if (O[key]) { 1000 O[key] = val; 1001 } else { 1002 hide(O, key, val); 1003 } 1004// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 1005})(Function.prototype, TO_STRING, function toString() { 1006 return typeof this == 'function' && this[SRC] || $toString.call(this); 1007}); 1008 1009 1010/***/ }), 1011/* 20 */ 1012/***/ (function(module, exports, __webpack_require__) { 1013 1014var dP = __webpack_require__(11); 1015var createDesc = __webpack_require__(50); 1016module.exports = __webpack_require__(12) ? function (object, key, value) { 1017 return dP.f(object, key, createDesc(1, value)); 1018} : function (object, key, value) { 1019 object[key] = value; 1020 return object; 1021}; 1022 1023 1024/***/ }), 1025/* 21 */ 1026/***/ (function(module, exports, __webpack_require__) { 1027 1028var $export = __webpack_require__(0); 1029var fails = __webpack_require__(6); 1030var defined = __webpack_require__(35); 1031var quot = /"/g; 1032// B.2.3.2.1 CreateHTML(string, tag, attribute, value) 1033var createHTML = function (string, tag, attribute, value) { 1034 var S = String(defined(string)); 1035 var p1 = '<' + tag; 1036 if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; 1037 return p1 + '>
1037' + S + '</' + tag + '>'; 1038}; 1039module.exports = function (NAME, exec) { 1040 var O = {}; 1041 O[NAME] = exec(createHTML); 1042 $export($export.P + $export.F * fails(function () { 1043 var test = ''[NAME]('"'); 1044 return test !== test.toLowerCase() || test.split('"').length > 3; 1045 }), 'String', O); 1046}; 1047 1048 1049/***/ }), 1050/* 22 */ 1051/***/ (function(module, exports, __webpack_require__) { 1052 1053"use strict"; 1054/* WEBPACK VAR INJECTION */(function(process) {/** 1055 * Copyright (c) 2016-present, Facebook, Inc. 1056 * 1057 * This source code is licensed under the MIT license found in the 1058 * LICENSE file in the root directory of this source tree. 1059 * 1060 * 1061 */ 1062 1063 1064 1065var _prodInvariant = __webpack_require__(67); 1066 1067var ReactCurrentOwner = __webpack_require__(39); 1068 1069var invariant = __webpack_require__(2); 1070var warning = __webpack_require__(3); 1071 1072function isNative(fn) { 1073 // Based on isNative() from Lodash 1074 var funcToString = Function.prototype.toString; 1075 var hasOwnProperty = Object.prototype.hasOwnProperty; 1076 var reIsNative = RegExp('^' + funcToString 1077 // Take an example native function source for comparison 1078 .call(hasOwnProperty 1079 // Strip regex characters so we can use it for regex 1080 ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&' 1081 // Remove hasOwnProperty from the template to make it generic 1082 ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); 1083 try { 1084 var source = funcToString.call(fn); 1085 return reIsNative.test(source); 1086 } catch (err) { 1087 return false; 1088 } 1089} 1090 1091var canUseCollections = 1092// Array.from 1093typeof Array.from === 'function' && 1094// Map 1095typeof Map === 'function' && isNative(Map) && 1096// Map.prototype.keys 1097Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) && 1098// Set 1099typeof Set === 'function' && isNative(Set) && 1100// Set.prototype.keys 1101Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); 1102 1103var setItem; 1104var getItem; 1105var removeItem; 1106var getItemIDs; 1107var addRoot; 1108var removeRoot; 1109var getRootIDs; 1110 1111if (canUseCollections) { 1112 var itemMap = new Map(); 1113 var rootIDSet = new Set(); 1114 1115 setItem = function (id, item) { 1116 itemMap.set(id, item); 1117 }; 1118 getItem = function (id) { 1119 return itemMap.get(id); 1120 }; 1121 removeItem = function (id) { 1122 itemMap['delete'](id); 1123 }; 1124 getItemIDs = function () { 1125 return Array.from(itemMap.keys()); 1126 }; 1127 1128 addRoot = function (id) { 1129 rootIDSet.add(id); 1130 }; 1131 removeRoot = function (id) { 1132 rootIDSet['delete'](id); 1133 }; 1134 getRootIDs = function () { 1135 return Array.from(rootIDSet.keys()); 1136 }; 1137} else { 1138 var itemByKey = {}; 1139 var rootByKey = {}; 1140 1141 // Use non-numeric keys to prevent V8 performance issues: 1142 // https://github.com/facebook/react/pull/7232 1143 var getKeyFromID = function (id) { 1144 return '.' + id; 1145 }; 1146 var getIDFromKey = function (key) { 1147 return parseInt(key.substr(1), 10); 1148 }; 1149 1150 setItem = function (id, item) { 1151 var key = getKeyFromID(id); 1152 itemByKey[key] = item; 1153 }; 1154 getItem = function (id) { 1155 var key = getKeyFromID(id); 1156 return itemByKey[key]; 1157 }; 1158 removeItem = function (id) { 1159 var key = getKeyFromID(id); 1160 delete itemByKey[key]; 1161 }; 1162 getItemIDs = function () { 1163 return Object.keys(itemByKey).map(getIDFromKey); 1164 }; 1165 1166 addRoot = function (id) { 1167 var key = getKeyFromID(id); 1168 rootByKey[key] = true; 1169 }; 1170 removeRoot = function (id) { 1171 var key = getKeyFromID(id); 1172 delete rootByKey[key]; 1173 }; 1174 getRootIDs = function () { 1175 return Object.keys(rootByKey).map(getIDFromKey); 1176 }; 1177} 1178 1179var unmountedIDs = []; 1180 1181function purgeDeep(id) { 1182 var item = getItem(id); 1183 if (item) { 1184 var childIDs = item.childIDs; 1185 1186 removeItem(id); 1187 childIDs.forEach(purgeDeep); 1188 } 1189} 1190 1191function describeComponentFrame(name, source, ownerName) { 1192 return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); 1193} 1194 1195function getDisplayName(element) { 1196 if (element == null) { 1197 return '#empty'; 1198 } else if (typeof element === 'string' || typeof element === 'number') { 1199 return '#text'; 1200 } else if (typeof element.type === 'string') { 1201 return element.type; 1202 } else { 1203 return element.type.displayName || element.type.name || 'Unknown'; 1204 } 1205} 1206 1207function describeID(id) { 1208 var name = ReactComponentTreeHook.getDisplayName(id); 1209 var element = ReactComponentTreeHook.getElement(id); 1210 var ownerID = ReactComponentTreeHook.getOwnerID(id); 1211 var ownerName; 1212 if (ownerID) { 1213 ownerName = ReactComponentTreeHook.getDisplayName(ownerID); 1214 } 1215 process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; 1216 return describeComponentFrame(name, element && element._source, ownerName); 1217} 1218 1219var ReactComponentTreeHook = { 1220 onSetChildren: function (id, nextChildIDs) { 1221 var item = getItem(id); 1222 !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; 1223 item.childIDs = nextChildIDs; 1224 1225 for (var i = 0; i < nextChildIDs.length; i++) { 1226 var nextChildID = nextChildIDs[i]; 1227 var nextChild = getItem(nextChildID); 1228 !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; 1229 !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; 1230 !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; 1231 if (nextChild.parentID == null) { 1232 nextChild.parentID = id; 1233 // TODO: This shouldn't be necessary but mounting a new root during in 1234 // componentWillMount currently causes not-yet-mounted components to 1235 // be purged from our tree data so their parent id is missing. 1236 } 1237 !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; 1238 } 1239 }, 1240 onBeforeMountComponent: function (id, element, parentID) { 1241 var item = { 1242 element: element, 1243 parentID: parentID, 1244 text: null, 1245 childIDs: [], 1246 isMounted: false, 1247 updateCount: 0 1248 }; 1249 setItem(id, item); 1250 }, 1251 onBeforeUpdateComponent: function (id, element) { 1252 var item = getItem(id); 1253 if (!item || !item.isMounted) { 1254 // We may end up here as a result of setState() in componentWillUnmount(). 1255 // In this case, ignore the element. 1256 return; 1257 } 1258 item.element = element; 1259 }, 1260 onMountComponent: function (id) { 1261 var item = getItem(id); 1262 !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; 1263 item.isMounted = true;
1264 var isRoot = item.parentID === 0; 1265 if (isRoot) { 1266 addRoot(id); 1267 } 1268 }, 1269 onUpdateComponent: function (id) { 1270 var item = getItem(id); 1271 if (!item || !item.isMounted) { 1272 // We may end up here as a result of setState() in componentWillUnmount(). 1273 // In this case, ignore the element. 1274 return; 1275 } 1276 item.updateCount++; 1277 }, 1278 onUnmountComponent: function (id) { 1279 var item = getItem(id); 1280 if (item) { 1281 // We need to check if it exists. 1282 // `item` might not exist if it is inside an error boundary, and a sibling 1283 // error boundary child threw while mounting. Then this instance never 1284 // got a chance to mount, but it still gets an unmounting event during 1285 // the error boundary cleanup. 1286 item.isMounted = false; 1287 var isRoot = item.parentID === 0; 1288 if (isRoot) { 1289 removeRoot(id); 1290 } 1291 } 1292 unmountedIDs.push(id); 1293 }, 1294 purgeUnmountedComponents: function () { 1295 if (ReactComponentTreeHook._preventPurging) { 1296 // Should only be used for testing. 1297 return; 1298 } 1299 1300 for (var i = 0; i < unmountedIDs.length; i++) { 1301 var id = unmountedIDs[i]; 1302 purgeDeep(id); 1303 } 1304 unmountedIDs.length = 0; 1305 }, 1306 isMounted: function (id) { 1307 var item = getItem(id); 1308 return item ? item.isMounted : false; 1309 }, 1310 getCurrentStackAddendum: function (topElement) { 1311 var info = ''; 1312 if (topElement) { 1313 var name = getDisplayName(topElement); 1314 var owner = topElement._owner; 1315 info += describeComponentFrame(name, topElement._source, owner && owner.getName()); 1316 } 1317 1318 var currentOwner = ReactCurrentOwner.current; 1319 var id = currentOwner && currentOwner._debugID; 1320 1321 info += ReactComponentTreeHook.getStackAddendumByID(id); 1322 return info; 1323 }, 1324 getStackAddendumByID: function (id) { 1325 var info = ''; 1326 while (id) { 1327 info += describeID(id); 1328 id = ReactComponentTreeHook.getParentID(id); 1329 } 1330 return info; 1331 }, 1332 getChildIDs: function (id) { 1333 var item = getItem(id); 1334 return item ? item.childIDs : []; 1335 }, 1336 getDisplayName: function (id) { 1337 var element = ReactComponentTreeHook.getElement(id); 1338 if (!element) { 1339 return null; 1340 } 1341 return getDisplayName(element); 1342 }, 1343 getElement: function (id) { 1344 var item = getItem(id); 1345 return item ? item.element : null; 1346 }, 1347 getOwnerID: function (id) { 1348 var element = ReactComponentTreeHook.getElement(id); 1349 if (!element || !element._owner) { 1350 return null; 1351 } 1352 return element._owner._debugID; 1353 }, 1354 getParentID: function (id) { 1355 var item = getItem(id); 1356 return item ? item.parentID : null; 1357 }, 1358 getSource: function (id) { 1359 var item = getItem(id); 1360 var element = item ? item.element : null; 1361 var source = element != null ? element._source : null; 1362 return source; 1363 }, 1364 getText: function (id) { 1365 var element = ReactComponentTreeHook.getElement(id); 1366 if (typeof element === 'string') { 1367 return element; 1368 } else if (typeof element === 'number') { 1369 return '' + element; 1370 } else { 1371 return null; 1372 } 1373 }, 1374 getUpdateCount: function (id) { 1375 var item = getItem(id); 1376 return item ? item.updateCount : 0; 1377 }, 1378 1379 1380 getRootIDs: getRootIDs, 1381 getRegisteredIDs: getItemIDs, 1382 1383 pushNonStandardWarningStack: function (isCreatingElement, currentSource) { 1384 if (typeof console.reactStack !== 'function') { 1385 return; 1386 } 1387 1388 var stack = []; 1389 var currentOwner = ReactCurrentOwner.current; 1390 var id = currentOwner && currentOwner._debugID; 1391 1392 try { 1393 if (isCreatingElement) { 1394 stack.push({ 1395 name: id ? ReactComponentTreeHook.getDisplayName(id) : null, 1396 fileName: currentSource ? currentSource.fileName : null, 1397 lineNumber: currentSource ? currentSource.lineNumber : null 1398 }); 1399 } 1400 1401 while (id) { 1402 var element = ReactComponentTreeHook.getElement(id); 1403 var parentID = ReactComponentTreeHook.getParentID(id); 1404 var ownerID = ReactComponentTreeHook.getOwnerID(id); 1405 var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null; 1406 var source = element && element._source; 1407 stack.push({ 1408 name: ownerName, 1409 fileName: source ? source.fileName : null, 1410 lineNumber: source ? source.lineNumber : null 1411 }); 1412 id = parentID; 1413 } 1414 } catch (err) { 1415 // Internal state is messed up. 1416 // Stop building the stack (it's just a nice to have). 1417 } 1418 1419 console.reactStack(stack); 1420 }, 1421 popNonStandardWarningStack: function () { 1422 if (typeof console.reactStackEnd !== 'function') { 1423 return; 1424 } 1425 console.reactStackEnd(); 1426 } 1427}; 1428 1429module.exports = ReactComponentTreeHook; 1430/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 1431 1432/***/ }), 1433/* 23 */
vendor: 4,537 bytes, lines 1434-1616
1434/***/ (function(module, exports) { 1435 1436var toString = {}.toString; 1437 1438module.exports = Array.isArray || function (arr) { 1439 return toString.call(arr) == '[object Array]'; 1440}; 1441 1442 1443/***/ }), 1444/* 24 */ 1445/***/ (function(module, exports) { 1446 1447var hasOwnProperty = {}.hasOwnProperty; 1448module.exports = function (it, key) { 1449 return hasOwnProperty.call(it, key); 1450}; 1451 1452 1453/***/ }), 1454/* 25 */ 1455/***/ (function(module, exports, __webpack_require__) { 1456 1457// to indexed object, toObject with fallback for non-array-like ES3 strings 1458var IObject = __webpack_require__(74); 1459var defined = __webpack_require__(35); 1460module.exports = function (it) { 1461 return IObject(defined(it)); 1462}; 1463 1464 1465/***/ }), 1466/* 26 */ 1467/***/ (function(module, exports, __webpack_require__) { 1468 1469// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) 1470var has = __webpack_require__(24); 1471var toObject = __webpack_require__(15); 1472var IE_PROTO = __webpack_require__(111)('IE_PROTO'); 1473var ObjectProto = Object.prototype; 1474 1475module.exports = Object.getPrototypeOf || function (O) { 1476 O = toObject(O); 1477 if (has(O, IE_PROTO)) return O[IE_PROTO]; 1478 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 1479 return O.constructor.prototype; 1480 } return O instanceof Object ? ObjectProto : null; 1481}; 1482 1483 1484/***/ }), 1485/* 27 */ 1486/***/ (function(module, exports, __webpack_require__) { 1487 1488var pIE = __webpack_require__(75); 1489var createDesc = __webpack_require__(50); 1490var toIObject = __webpack_require__(25); 1491var toPrimitive = __webpack_require__(33); 1492var has = __webpack_require__(24); 1493var IE8_DOM_DEFINE = __webpack_require__(156); 1494var gOPD = Object.getOwnPropertyDescriptor; 1495 1496exports.f = __webpack_require__(12) ? gOPD : function getOwnPropertyDescriptor(O, P) { 1497 O = toIObject(O); 1498 P = toPrimitive(P, true); 1499 if (IE8_DOM_DEFINE) try { 1500 return gOPD(O, P); 1501 } catch (e) { /* empty */ } 1502 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 1503}; 1504 1505 1506/***/ }), 1507/* 28 */ 1508/***/ (function(module, exports, __webpack_require__) { 1509 1510"use strict"; 1511/* WEBPACK VAR INJECTION */(function(process) {/** 1512 * Copyright (c) 2016-present, Facebook, Inc. 1513 * 1514 * This source code is licensed under the MIT license found in the 1515 * LICENSE file in the root directory of this source tree. 1516 * 1517 * 1518 */ 1519 1520 1521 1522// Trust the developer to only use ReactInstrumentation with a __DEV__ check 1523 1524var debugTool = null; 1525 1526if (process.env.NODE_ENV !== 'production') { 1527 var ReactDebugTool = __webpack_require__(459); 1528 debugTool = ReactDebugTool; 1529} 1530 1531module.exports = { debugTool: debugTool }; 1532/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 1533 1534/***/ }), 1535/* 29 */ 1536/***/ (function(module, exports) { 1537 1538var toString = {}.toString; 1539 1540module.exports = function (it) { 1541 return toString.call(it).slice(8, -1); 1542}; 1543 1544 1545/***/ }), 1546/* 30 */ 1547/***/ (function(module, exports, __webpack_require__) { 1548 1549// optional / simple context binding 1550var aFunction = __webpack_require__(17); 1551module.exports = function (fn, that, length) { 1552 aFunction(fn); 1553 if (that === undefined) return fn; 1554 switch (length) { 1555 case 1: return function (a) { 1556 return fn.call(that, a); 1557 }; 1558 case 2: return function (a, b) { 1559 return fn.call(that, a, b); 1560 }; 1561 case 3: return function (a, b, c) { 1562 return fn.call(that, a, b, c); 1563 }; 1564 } 1565 return function (/* ...args */) { 1566 return fn.apply(that, arguments); 1567 }; 1568}; 1569 1570 1571/***/ }), 1572/* 31 */ 1573/***/ (function(module, exports, __webpack_require__) { 1574 1575"use strict"; 1576 1577var fails = __webpack_require__(6); 1578 1579module.exports = function (method, arg) { 1580 return !!method && fails(function () { 1581 // eslint-disable-next-line no-useless-call 1582 arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); 1583 }); 1584}; 1585 1586 1587/***/ }), 1588/* 32 */ 1589/***/ (function(module, exports, __webpack_require__) { 1590 1591"use strict"; 1592 1593 1594module.exports = __webpack_require__(66); 1595 1596 1597/***/ }), 1598/* 33 */ 1599/***/ (function(module, exports, __webpack_require__) { 1600 1601// 7.1.1 ToPrimitive(input [, PreferredType]) 1602var isObject = __webpack_require__(7); 1603// instead of the ES6 spec version, we didn't implement @@toPrimitive case 1604// and the second argument - flag - preferred type is a string 1605module.exports = function (it, S) { 1606 if (!isObject(it)) return it; 1607 var fn, val; 1608 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1609 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 1610 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1611 throw TypeError("Can't convert object to primitive value"); 1612}; 1613 1614 1615/***/ }), 1616/* 34 */
vendor: 4,875 bytes, lines 1617-1807
1617/***/ (function(module, exports) { 1618 1619// 7.1.4 ToInteger 1620var ceil = Math.ceil; 1621var floor = Math.floor; 1622module.exports = function (it) { 1623 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 1624}; 1625 1626 1627/***/ }), 1628/* 35 */ 1629/***/ (function(module, exports) { 1630 1631// 7.2.1 RequireObjectCoercible(argument) 1632module.exports = function (it) { 1633 if (it == undefined) throw TypeError("Can't call method on " + it); 1634 return it; 1635}; 1636 1637 1638/***/ }), 1639/* 36 */ 1640/***/ (function(module, exports, __webpack_require__) { 1641 1642// most Object methods by ES6 should accept primitives 1643var $export = __webpack_require__(0); 1644var core = __webpack_require__(18); 1645var fails = __webpack_require__(6); 1646module.exports = function (KEY, exec) { 1647 var fn = (core.Object || {})[KEY] || Object[KEY]; 1648 var exp = {}; 1649 exp[KEY] = exec(fn); 1650 $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); 1651}; 1652 1653 1654/***/ }), 1655/* 37 */ 1656/***/ (function(module, exports, __webpack_require__) { 1657 1658// 0 -> Array#forEach 1659// 1 -> Array#map 1660// 2 -> Array#filter 1661// 3 -> Array#some 1662// 4 -> Array#every 1663// 5 -> Array#find 1664// 6 -> Array#findIndex 1665var ctx = __webpack_require__(30); 1666var IObject = __webpack_require__(74); 1667var toObject = __webpack_require__(15); 1668var toLength = __webpack_require__(13); 1669var asc = __webpack_require__(130); 1670module.exports = function (TYPE, $create) { 1671 var IS_MAP = TYPE == 1; 1672 var IS_FILTER = TYPE == 2; 1673 var IS_SOME = TYPE == 3; 1674 var IS_EVERY = TYPE == 4; 1675 var IS_FIND_INDEX = TYPE == 6; 1676 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 1677 var create = $create || asc; 1678 return function ($this, callbackfn, that) { 1679 var O = toObject($this); 1680 var self = IObject(O); 1681 var f = ctx(callbackfn, that, 3); 1682 var length = toLength(self.length); 1683 var index = 0; 1684 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 1685 var val, res; 1686 for (;length > index; index++) if (NO_HOLES || index in self) { 1687 val = self[index]; 1688 res = f(val, index, O); 1689 if (TYPE) { 1690 if (IS_MAP) result[index] = res; // map 1691 else if (res) switch (TYPE) { 1692 case 3: return true; // some 1693 case 5: return val; // find 1694 case 6: return index; // findIndex 1695 case 2: result.push(val); // filter 1696 } else if (IS_EVERY) return false; // every 1697 } 1698 } 1699 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 1700 }; 1701}; 1702 1703 1704/***/ }), 1705/* 38 */ 1706/***/ (function(module, exports, __webpack_require__) { 1707 1708"use strict"; 1709 1710 1711/** 1712 * Copyright (c) 2013-present, Facebook, Inc. 1713 * 1714 * This source code is licensed under the MIT license found in the 1715 * LICENSE file in the root directory of this source tree. 1716 * 1717 * 1718 */ 1719 1720function makeEmptyFunction(arg) { 1721 return function () { 1722 return arg; 1723 }; 1724} 1725 1726/** 1727 * This function accepts and discards inputs; it has no side effects. This is 1728 * primarily useful idiomatically for overridable function endpoints which 1729 * always need to be callable, since JS lacks a null-call idiom ala Cocoa. 1730 */ 1731var emptyFunction = function emptyFunction() {}; 1732 1733emptyFunction.thatReturns = makeEmptyFunction; 1734emptyFunction.thatReturnsFalse = makeEmptyFunction(false); 1735emptyFunction.thatReturnsTrue = makeEmptyFunction(true); 1736emptyFunction.thatReturnsNull = makeEmptyFunction(null); 1737emptyFunction.thatReturnsThis = function () { 1738 return this; 1739}; 1740emptyFunction.thatReturnsArgument = function (arg) { 1741 return arg; 1742}; 1743 1744module.exports = emptyFunction; 1745 1746/***/ }), 1747/* 39 */ 1748/***/ (function(module, exports, __webpack_require__) { 1749 1750"use strict"; 1751/** 1752 * Copyright (c) 2013-present, Facebook, Inc. 1753 * 1754 * This source code is licensed under the MIT license found in the 1755 * LICENSE file in the root directory of this source tree. 1756 * 1757 * 1758 */ 1759 1760 1761 1762/** 1763 * Keeps track of the current owner. 1764 * 1765 * The current owner is the component who should own any components that are 1766 * currently being constructed. 1767 */ 1768var ReactCurrentOwner = { 1769 /** 1770 * @internal 1771 * @type {ReactComponent} 1772 */ 1773 current: null 1774}; 1775 1776module.exports = ReactCurrentOwner; 1777 1778/***/ }), 1779/* 40 */ 1780/***/ (function(module, exports, __webpack_require__) { 1781 1782"use strict"; 1783/* WEBPACK VAR INJECTION */(function(process) {/** 1784 * Copyright (c) 2013-present, Facebook, Inc. 1785 * 1786 * This source code is licensed under the MIT license found in the 1787 * LICENSE file in the root directory of this source tree. 1788 * 1789 */ 1790 1791 1792 1793var _prodInvariant = __webpack_require__(8), 1794 _assign = __webpack_require__(10); 1795 1796var CallbackQueue = __webpack_require__(199); 1797var PooledClass = __webpack_require__(60); 1798var ReactFeatureFlags = __webpack_require__(200); 1799var ReactReconciler = __webpack_require__(68); 1800var Transaction = __webpack_require__(100); 1801 1802var invariant = __webpack_require__(2); 1803 1804var dirtyComponents = []; 1805var updateBatchNumber = 0; 1806var asapCallbackQueue = CallbackQueue.getPooled(); 1807var asapEnqueued = false;
1808 1809var batchingStrategy = null; 1810 1811function ensureInjected() { 1812 !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; 1813} 1814 1815var NESTED_UPDATES = { 1816 initialize: function () { 1817 this.dirtyComponentsLength = dirtyComponents.length; 1818 }, 1819 close: function () { 1820 if (this.dirtyComponentsLength !== dirtyComponents.length) { 1821 // Additional updates were enqueued by componentDidUpdate handlers or 1822 // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run 1823 // these new updates so that if A's componentDidUpdate calls setState on 1824 // B, B will update before the callback A's updater provided when calling 1825 // setState. 1826 dirtyComponents.splice(0, this.dirtyComponentsLength); 1827 flushBatchedUpdates(); 1828 } else { 1829 dirtyComponents.length = 0; 1830 } 1831 } 1832}; 1833 1834var UPDATE_QUEUEING = { 1835 initialize: function () { 1836 this.callbackQueue.reset(); 1837 }, 1838 close: function () { 1839 this.callbackQueue.notifyAll(); 1840 } 1841}; 1842 1843var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; 1844 1845function ReactUpdatesFlushTransaction() { 1846 this.reinitializeTransaction(); 1847 this.dirtyComponentsLength = null; 1848 this.callbackQueue = CallbackQueue.getPooled(); 1849 this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( 1850 /* useCreateElement */true); 1851} 1852 1853_assign(ReactUpdatesFlushTransaction.prototype, Transaction, { 1854 getTransactionWrappers: function () { 1855 return TRANSACTION_WRAPPERS; 1856 }, 1857 1858 destructor: function () { 1859 this.dirtyComponentsLength = null; 1860 CallbackQueue.release(this.callbackQueue); 1861 this.callbackQueue = null; 1862 ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); 1863 this.reconcileTransaction = null; 1864 }, 1865 1866 perform: function (method, scope, a) { 1867 // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` 1868 // with this transaction's wrappers around it. 1869 return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); 1870 } 1871}); 1872 1873PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); 1874 1875function batchedUpdates(callback, a, b, c, d, e) { 1876 ensureInjected(); 1877 return batchingStrategy.batchedUpdates(callback, a, b, c, d, e); 1878} 1879 1880/** 1881 * Array comparator for ReactComponents by mount ordering. 1882 * 1883 * @param {ReactComponent} c1 first component you're comparing 1884 * @param {ReactComponent} c2 second component you're comparing 1885 * @return {number} Return value usable by Array.prototype.sort(). 1886 */ 1887function mountOrderComparator(c1, c2) { 1888 return c1._mountOrder - c2._mountOrder; 1889} 1890 1891function runBatchedUpdates(transaction) { 1892 var len = transaction.dirtyComponentsLength; 1893 !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; 1894 1895 // Since reconciling a component higher in the owner hierarchy usually (not 1896 // always -- see shouldComponentUpdate()) will reconcile children, reconcile 1897 // them before their children by sorting the array. 1898 dirtyComponents.sort(mountOrderComparator); 1899 1900 // Any updates enqueued while reconciling must be performed after this entire 1901 // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and 1902 // C, B could update twice in a single batch if C's render enqueues an update 1903 // to B (since B would have already updated, we should skip it, and the only 1904 // way we can know to do so is by checking the batch counter). 1905 updateBatchNumber++; 1906 1907 for (var i = 0; i < len; i++) { 1908 // If a component is unmounted before pending changes apply, it will still 1909 // be here, but we assume that it has cleared its _pendingCallbacks and 1910 // that performUpdateIfNecessary is a noop. 1911 var component = dirtyComponents[i]; 1912 1913 // If performUpdateIfNecessary happens to enqueue any new updates, we 1914 // shouldn't execute the callbacks until the next render happens, so 1915 // stash the callbacks first 1916 var callbacks = component._pendingCallbacks; 1917 component._pendingCallbacks = null; 1918 1919 var markerName; 1920 if (ReactFeatureFlags.logTopLevelRenders) { 1921 var namedComponent = component; 1922 // Duck type TopLevelWrapper. This is probably always true. 1923 if (component._currentElement.type.isReactTopLevelWrapper) { 1924 namedComponent = component._renderedComponent; 1925 } 1926 markerName = 'React update: ' + namedComponent.getName(); 1927 console.time(markerName); 1928 } 1929 1930 ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber); 1931 1932 if (markerName) { 1933 console.timeEnd(markerName); 1934 } 1935 1936 if (callbacks) { 1937 for (var j = 0; j < callbacks.length; j++) { 1938 transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); 1939 } 1940 } 1941 } 1942} 1943
1944var flushBatchedUpdates = function () { 1945 // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents 1946 // array and perform any updates enqueued by mount-ready handlers (i.e., 1947 // componentDidUpdate) but we need to check here too in order to catch 1948 // updates enqueued by setState callbacks and asap calls. 1949 while (dirtyComponents.length || asapEnqueued) { 1950 if (dirtyComponents.length) { 1951 var transaction = ReactUpdatesFlushTransaction.getPooled(); 1952 transaction.perform(runBatchedUpdates, null, transaction); 1953 ReactUpdatesFlushTransaction.release(transaction); 1954 } 1955 1956 if (asapEnqueued) { 1957 asapEnqueued = false; 1958 var queue = asapCallbackQueue; 1959 asapCallbackQueue = CallbackQueue.getPooled(); 1960 queue.notifyAll(); 1961 CallbackQueue.release(queue); 1962 } 1963 } 1964}; 1965 1966/** 1967 * Mark a component as needing a rerender, adding an optional callback to a 1968 * list of functions which will be executed once the rerender occurs. 1969 */ 1970function enqueueUpdate(component) { 1971 ensureInjected(); 1972 1973 // Various parts of our code (such as ReactCompositeComponent's 1974 // _renderValidatedComponent) assume that calls to render aren't nested; 1975 // verify that that's the case. (This is called by each top-level update 1976 // function, like setState, forceUpdate, etc.; creation and 1977 // destruction of top-level components is guarded in ReactMount.) 1978 1979 if (!batchingStrategy.isBatchingUpdates) { 1980 batchingStrategy.batchedUpdates(enqueueUpdate, component); 1981 return; 1982 } 1983 1984 dirtyComponents.push(component); 1985 if (component._updateBatchNumber == null) { 1986 component._updateBatchNumber = updateBatchNumber + 1; 1987 } 1988} 1989 1990/** 1991 * Enqueue a callback to be run at the end of the current batching cycle. Throws 1992 * if no updates are currently being performed. 1993 */ 1994function asap(callback, context) { 1995 invariant(batchingStrategy.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context where" + 'updates are not being batched.'); 1996 asapCallbackQueue.enqueue(callback, context); 1997 asapEnqueued = true; 1998} 1999 2000var ReactUpdatesInjection = { 2001 injectReconcileTransaction: function (ReconcileTransaction) { 2002 !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; 2003 ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; 2004 }, 2005 2006 injectBatchingStrategy: function (_batchingStrategy) { 2007 !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; 2008 !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; 2009 !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; 2010 batchingStrategy = _batchingStrategy; 2011 } 2012}; 2013 2014var ReactUpdates = { 2015 /** 2016 * React references `ReactReconcileTransaction` using this property in order 2017 * to allow dependency injection. 2018 * 2019 * @internal 2020 */ 2021 ReactReconcileTransaction: null, 2022 2023 batchedUpdates: batchedUpdates, 2024 enqueueUpdate: enqueueUpdate, 2025 flushBatchedUpdates: flushBatchedUpdates, 2026 injection: ReactUpdatesInjection, 2027 asap: asap 2028}; 2029 2030module.exports = ReactUpdates; 2031/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 2032 2033/***/ }), 2034/* 41 */ 2035/***/ (function(module, exports, __webpack_require__) { 2036 2037"use strict"; 2038 2039if (__webpack_require__(12)) { 2040 var LIBRARY = __webpack_require__(44); 2041 var global = __webpack_require__(5); 2042 var fails = __webpack_require__(6); 2043 var $export = __webpack_require__(0); 2044 var $typed = __webpack_require__(93); 2045 var $buffer = __webpack_require__(135); 2046 var ctx = __webpack_require__(30); 2047 var anInstance = __webpack_require__(55); 2048 var propertyDesc = __webpack_require__(50); 2049 var hide = __webpack_require__(20); 2050 var redefineAll = __webpack_require__(54); 2051 var toInteger = __webpack_require__(34); 2052 var toLength = __webpack_require__(13); 2053 var toIndex = __webpack_require__(180); 2054 var toAbsoluteIndex = __webpack_require__(53); 2055 var toPrimitive = __webpack_require__(33); 2056 var has = __webpack_require__(24); 2057 var classof = __webpack_require__(73); 2058 var isObject = __webpack_require__(7); 2059 var toObject = __webpack_require__(15); 2060 var isArrayIter = __webpack_require__(117); 2061 var create = __webpack_require__(51); 2062 var getPrototypeOf = __webpack_require__(26); 2063 var gOPN = __webpack_require__(58).f; 2064 var getIterFn = __webpack_require__(118); 2065 var uid = __webpack_require__(49); 2066 var wks = __webpack_require__(9); 2067 var createArrayMethod = __webpack_require__(37); 2068 var createArrayIncludes = __webpack_require__(83); 2069 var speciesConstructor = __webpack_require__(91); 2070 var ArrayIterators = __webpack_require__(115); 2071 var Iterators = __webpack_require__(61); 2072 var $iterDetect = __webpack_require__(85); 2073 var setSpecies = __webpack_require__(57); 2074 var arrayFill = __webpack_require__(131); 2075 var arrayCopyWithin = __webpack_require__(174); 2076 var $DP = __webpack_require__(11); 2077 var $GOPD = __webpack_require__(27
vendor: 8,586 bytes, lines 2077-2305
2077); 2078 var dP = $DP.f; 2079 var gOPD = $GOPD.f; 2080 var RangeError = global.RangeError; 2081 var TypeError = global.TypeError; 2082 var Uint8Array = global.Uint8Array; 2083 var ARRAY_BUFFER = 'ArrayBuffer'; 2084 var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; 2085 var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; 2086 var PROTOTYPE = 'prototype'; 2087 var ArrayProto = Array[PROTOTYPE]; 2088 var $ArrayBuffer = $buffer.ArrayBuffer; 2089 var $DataView = $buffer.DataView; 2090 var arrayForEach = createArrayMethod(0); 2091 var arrayFilter = createArrayMethod(2); 2092 var arraySome = createArrayMethod(3); 2093 var arrayEvery = createArrayMethod(4); 2094 var arrayFind = createArrayMethod(5); 2095 var arrayFindIndex = createArrayMethod(6); 2096 var arrayIncludes = createArrayIncludes(true); 2097 var arrayIndexOf = createArrayIncludes(false); 2098 var arrayValues = ArrayIterators.values; 2099 var arrayKeys = ArrayIterators.keys; 2100 var arrayEntries = ArrayIterators.entries; 2101 var arrayLastIndexOf = ArrayProto.lastIndexOf; 2102 var arrayReduce = ArrayProto.reduce; 2103 var arrayReduceRight = ArrayProto.reduceRight; 2104 var arrayJoin = ArrayProto.join; 2105 var arraySort = ArrayProto.sort; 2106 var arraySlice = ArrayProto.slice; 2107 var arrayToString = ArrayProto.toString; 2108 var arrayToLocaleString = ArrayProto.toLocaleString; 2109 var ITERATOR = wks('iterator'); 2110 var TAG = wks('toStringTag'); 2111 var TYPED_CONSTRUCTOR = uid('typed_constructor'); 2112 var DEF_CONSTRUCTOR = uid('def_constructor'); 2113 var ALL_CONSTRUCTORS = $typed.CONSTR; 2114 var TYPED_ARRAY = $typed.TYPED; 2115 var VIEW = $typed.VIEW; 2116 var WRONG_LENGTH = 'Wrong length!'; 2117 2118 var $map = createArrayMethod(1, function (O, length) { 2119 return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); 2120 }); 2121 2122 var LITTLE_ENDIAN = fails(function () { 2123 // eslint-disable-next-line no-undef 2124 return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; 2125 }); 2126 2127 var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { 2128 new Uint8Array(1).set({}); 2129 }); 2130 2131 var toOffset = function (it, BYTES) { 2132 var offset = toInteger(it); 2133 if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); 2134 return offset; 2135 }; 2136 2137 var validate = function (it) { 2138 if (isObject(it) && TYPED_ARRAY in it) return it; 2139 throw TypeError(it + ' is not a typed array!'); 2140 }; 2141 2142 var allocate = function (C, length) { 2143 if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { 2144 throw TypeError('It is not a typed array constructor!'); 2145 } return new C(length); 2146 }; 2147 2148 var speciesFromList = function (O, list) { 2149 return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); 2150 }; 2151 2152 var fromList = function (C, list) { 2153 var index = 0; 2154 var length = list.length; 2155 var result = allocate(C, length); 2156 while (length > index) result[index] = list[index++]; 2157 return result; 2158 }; 2159 2160 var addGetter = function (it, key, internal) { 2161 dP(it, key, { get: function () { return this._d[internal]; } }); 2162 }; 2163 2164 var $from = function from(source /* , mapfn, thisArg */) { 2165 var O = toObject(source); 2166 var aLen = arguments.length; 2167 var mapfn = aLen > 1 ? arguments[1] : undefined; 2168 var mapping = mapfn !== undefined; 2169 var iterFn = getIterFn(O); 2170 var i, length, values, result, step, iterator; 2171 if (iterFn != undefined && !isArrayIter(iterFn)) { 2172 for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { 2173 values.push(step.value); 2174 } O = values; 2175 } 2176 if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); 2177 for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { 2178 result[i] = mapping ? mapfn(O[i], i) : O[i]; 2179 } 2180 return result; 2181 }; 2182 2183 var $of = function of(/* ...items */) { 2184 var index = 0; 2185 var length = arguments.length; 2186 var result = allocate(this, length); 2187 while (length > index) result[index] = arguments[index++]; 2188 return result; 2189 }; 2190 2191 // iOS Safari 6.x fails here 2192 var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); 2193 2194 var $toLocaleString = function toLocaleString() { 2195 return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); 2196 }; 2197 2198 var proto = { 2199 copyWithin: function copyWithin(target, start /* , end */) { 2200 return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); 2201 }, 2202 every: function every(callbackfn /* , thisArg */) { 2203 return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 2204 }, 2205 fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars 2206 return arrayFill.apply(validate(this), arguments); 2207 }, 2208 filter: function filter(callbackfn /* , thisArg */) { 2209 return speciesFromList(this, arrayFilter(validate(this), callbackfn, 2210 arguments.length > 1 ? arguments[1] : undefined)); 2211 }, 2212 find: function find(predicate /* , thisArg */) { 2213 return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); 2214 }, 2215 findIndex: function findIndex(predicate /* , thisArg */) { 2216 return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); 2217 }, 2218 forEach: function forEach(callbackfn /* , thisArg */) { 2219 arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 2220 }, 2221 indexOf: function indexOf(searchElement /* , fromIndex */) { 2222 return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); 2223 }, 2224 includes: function includes(searchElement /* , fromIndex */) { 2225 return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); 2226 }, 2227 join: function join(separator) { // eslint-disable-line no-unused-vars 2228 return arrayJoin.apply(validate(this), arguments); 2229 }, 2230 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars 2231 return arrayLastIndexOf.apply(validate(this), arguments); 2232 }, 2233 map: function map(mapfn /* , thisArg */) { 2234 return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); 2235 }, 2236 reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars 2237 return arrayReduce.apply(validate(this), arguments); 2238 }, 2239 reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars 2240 return arrayReduceRight.apply(validate(this), arguments); 2241 }, 2242 reverse: function reverse() { 2243 var that = this; 2244 var length = validate(that).length; 2245 var middle = Math.floor(length / 2); 2246 var index = 0; 2247 var value; 2248 while (index < middle) { 2249 value = that[index]; 2250 that[index++] = that[--length]; 2251 that[length] = value; 2252 } return that; 2253 }, 2254 some: function some(callbackfn /* , thisArg */) { 2255 return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 2256 }, 2257 sort: function sort(comparefn) { 2258 return arraySort.call(validate(this), comparefn); 2259 }, 2260 subarray: function subarray(begin, end) { 2261 var O = validate(this); 2262 var length = O.length; 2263 var $begin = toAbsoluteIndex(begin, length); 2264 return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( 2265 O.buffer, 2266 O.byteOffset + $begin * O.BYTES_PER_ELEMENT, 2267 toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) 2268 ); 2269 } 2270 }; 2271 2272 var $slice = function slice(start, end) { 2273 return speciesFromList(this, arraySlice.call(validate(this), start, end)); 2274 }; 2275 2276 var $set = function set(arrayLike /* , offset */) { 2277 validate(this); 2278 var offset = toOffset(arguments[1], 1); 2279 var length = this.length; 2280 var src = toObject(arrayLike); 2281 var len = toLength(src.length); 2282 var index = 0; 2283 if (len + offset > length) throw RangeError(WRONG_LENGTH); 2284 while (index < len) this[offset + index] = src[index++]; 2285 }; 2286 2287 var $iterators = { 2288 entries: function entries() { 2289 return arrayEntries.call(validate(this)); 2290 }, 2291 keys: function keys() { 2292 return arrayKeys.call(validate(this)); 2293 }, 2294 values: function values() { 2295 return arrayValues.call(validate(this)); 2296 } 2297 }; 2298 2299 var isTAIndex = function (target, key) { 2300 return isObject(target) 2301 && target[TYPED_ARRAY] 2302 && typeof key != 'symbol' 2303 && key in target 2304 && String(+key) == String(key); 2305 };
vendor: 7,985 bytes, lines 2306-2517
2306 var $getDesc = function getOwnPropertyDescriptor(target, key) { 2307 return isTAIndex(target, key = toPrimitive(key, true)) 2308 ? propertyDesc(2, target[key]) 2309 : gOPD(target, key); 2310 }; 2311 var $setDesc = function defineProperty(target, key, desc) { 2312 if (isTAIndex(target, key = toPrimitive(key, true)) 2313 && isObject(desc) 2314 && has(desc, 'value') 2315 && !has(desc, 'get') 2316 && !has(desc, 'set') 2317 // TODO: add validation descriptor w/o calling accessors 2318 && !desc.configurable 2319 && (!has(desc, 'writable') || desc.writable) 2320 && (!has(desc, 'enumerable') || desc.enumerable) 2321 ) { 2322 target[key] = desc.value; 2323 return target; 2324 } return dP(target, key, desc); 2325 }; 2326 2327 if (!ALL_CONSTRUCTORS) { 2328 $GOPD.f = $getDesc; 2329 $DP.f = $setDesc; 2330 } 2331 2332 $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { 2333 getOwnPropertyDescriptor: $getDesc, 2334 defineProperty: $setDesc 2335 }); 2336 2337 if (fails(function () { arrayToString.call({}); })) { 2338 arrayToString = arrayToLocaleString = function toString() { 2339 return arrayJoin.call(this); 2340 }; 2341 } 2342 2343 var $TypedArrayPrototype$ = redefineAll({}, proto); 2344 redefineAll($TypedArrayPrototype$, $iterators); 2345 hide($TypedArrayPrototype$, ITERATOR, $iterators.values); 2346 redefineAll($TypedArrayPrototype$, { 2347 slice: $slice, 2348 set: $set, 2349 constructor: function () { /* noop */ }, 2350 toString: arrayToString, 2351 toLocaleString: $toLocaleString 2352 }); 2353 addGetter($TypedArrayPrototype$, 'buffer', 'b'); 2354 addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); 2355 addGetter($TypedArrayPrototype$, 'byteLength', 'l'); 2356 addGetter($TypedArrayPrototype$, 'length', 'e'); 2357 dP($TypedArrayPrototype$, TAG, { 2358 get: function () { return this[TYPED_ARRAY]; } 2359 }); 2360 2361 // eslint-disable-next-line max-statements 2362 module.exports = function (KEY, BYTES, wrapper, CLAMPED) { 2363 CLAMPED = !!CLAMPED; 2364 var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; 2365 var GETTER = 'get' + KEY; 2366 var SETTER = 'set' + KEY; 2367 var TypedArray = global[NAME]; 2368 var Base = TypedArray || {}; 2369 var TAC = TypedArray && getPrototypeOf(TypedArray); 2370 var FORCED = !TypedArray || !$typed.ABV; 2371 var O = {}; 2372 var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; 2373 var getter = function (that, index) { 2374 var data = that._d; 2375 return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); 2376 }; 2377 var setter = function (that, index, value) { 2378 var data = that._d; 2379 if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; 2380 data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); 2381 }; 2382 var addElement = function (that, index) { 2383 dP(that, index, { 2384 get: function () { 2385 return getter(this, index); 2386 }, 2387 set: function (value) { 2388 return setter(this, index, value); 2389 }, 2390 enumerable: true 2391 }); 2392 }; 2393 if (FORCED) { 2394 TypedArray = wrapper(function (that, data, $offset, $length) { 2395 anInstance(that, TypedArray, NAME, '_d'); 2396 var index = 0; 2397 var offset = 0; 2398 var buffer, byteLength, length, klass; 2399 if (!isObject(data)) { 2400 length = toIndex(data); 2401 byteLength = length * BYTES; 2402 buffer = new $ArrayBuffer(byteLength); 2403 } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { 2404 buffer = data; 2405 offset = toOffset($offset, BYTES); 2406 var $len = data.byteLength; 2407 if ($length === undefined) { 2408 if ($len % BYTES) throw RangeError(WRONG_LENGTH); 2409 byteLength = $len - offset; 2410 if (byteLength < 0) throw RangeError(WRONG_LENGTH); 2411 } else { 2412 byteLength = toLength($length) * BYTES; 2413 if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); 2414 } 2415 length = byteLength / BYTES; 2416 } else if (TYPED_ARRAY in data) { 2417 return fromList(TypedArray, data); 2418 } else { 2419 return $from.call(TypedArray, data); 2420 } 2421 hide(that, '_d', { 2422 b: buffer, 2423 o: offset, 2424 l: byteLength, 2425 e: length, 2426 v: new $DataView(buffer) 2427 }); 2428 while (index < length) addElement(that, index++); 2429 }); 2430 TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); 2431 hide(TypedArrayPrototype, 'constructor', TypedArray); 2432 } else if (!fails(function () { 2433 TypedArray(1); 2434 }) || !fails(function () { 2435 new TypedArray(-1); // eslint-disable-line no-new 2436 }) || !$iterDetect(function (iter) { 2437 new TypedArray(); // eslint-disable-line no-new 2438 new TypedArray(null); // eslint-disable-line no-new 2439 new TypedArray(1.5); // eslint-disable-line no-new 2440 new TypedArray(iter); // eslint-disable-line no-new 2441 }, true)) { 2442 TypedArray = wrapper(function (that, data, $offset, $length) { 2443 anInstance(that, TypedArray, NAME); 2444 var klass; 2445 // `ws` module bug, temporarily remove validation length for Uint8Array 2446 // https://github.com/websockets/ws/pull/645 2447 if (!isObject(data)) return new Base(toIndex(data)); 2448 if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { 2449 return $length !== undefined 2450 ? new Base(data, toOffset($offset, BYTES), $length) 2451 : $offset !== undefined 2452 ? new Base(data, toOffset($offset, BYTES)) 2453 : new Base(data); 2454 } 2455 if (TYPED_ARRAY in data) return fromList(TypedArray, data); 2456 return $from.call(TypedArray, data); 2457 }); 2458 arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { 2459 if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); 2460 }); 2461 TypedArray[PROTOTYPE] = TypedArrayPrototype; 2462 if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; 2463 } 2464 var $nativeIterator = TypedArrayPrototype[ITERATOR]; 2465 var CORRECT_ITER_NAME = !!$nativeIterator 2466 && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); 2467 var $iterator = $iterators.values; 2468 hide(TypedArray, TYPED_CONSTRUCTOR, true); 2469 hide(TypedArrayPrototype, TYPED_ARRAY, NAME); 2470 hide(TypedArrayPrototype, VIEW, true); 2471 hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); 2472 2473 if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { 2474 dP(TypedArrayPrototype, TAG, { 2475 get: function () { return NAME; } 2476 }); 2477 } 2478 2479 O[NAME] = TypedArray; 2480 2481 $export($export.G + $export.W + $export.F * (TypedArray != Base), O); 2482 2483 $export($export.S, NAME, { 2484 BYTES_PER_ELEMENT: BYTES 2485 }); 2486 2487 $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { 2488 from: $from, 2489 of: $of 2490 }); 2491 2492 if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); 2493 2494 $export($export.P, NAME, proto); 2495 2496 setSpecies(NAME); 2497 2498 $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); 2499 2500 $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); 2501 2502 if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; 2503 2504 $export($export.P + $export.F * fails(function () { 2505 new TypedArray(1).slice(); 2506 }), NAME, { slice: $slice }); 2507 2508 $export($export.P + $export.F * (fails(function () { 2509 return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); 2510 }) || !fails(function () { 2511 TypedArrayPrototype.toLocaleString.call([1, 2]); 2512 })), NAME, { toLocaleString: $toLocaleString }); 2513 2514 Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; 2515 if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); 2516 }; 2517} else module.exports = function () { /* empty */ };
vendor: 2,425 bytes, lines 2518-2599
2518 2519 2520/***/ }), 2521/* 42 */ 2522/***/ (function(module, exports, __webpack_require__) { 2523 2524var Map = __webpack_require__(116); 2525var $export = __webpack_require__(0); 2526var shared = __webpack_require__(82)('metadata'); 2527var store = shared.store || (shared.store = new (__webpack_require__(178))()); 2528 2529var getOrCreateMetadataMap = function (target, targetKey, create) { 2530 var targetMetadata = store.get(target); 2531 if (!targetMetadata) { 2532 if (!create) return undefined; 2533 store.set(target, targetMetadata = new Map()); 2534 } 2535 var keyMetadata = targetMetadata.get(targetKey); 2536 if (!keyMetadata) { 2537 if (!create) return undefined; 2538 targetMetadata.set(targetKey, keyMetadata = new Map()); 2539 } return keyMetadata; 2540}; 2541var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { 2542 var metadataMap = getOrCreateMetadataMap(O, P, false); 2543 return metadataMap === undefined ? false : metadataMap.has(MetadataKey); 2544}; 2545var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { 2546 var metadataMap = getOrCreateMetadataMap(O, P, false); 2547 return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); 2548}; 2549var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { 2550 getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); 2551}; 2552var ordinaryOwnMetadataKeys = function (target, targetKey) { 2553 var metadataMap = getOrCreateMetadataMap(target, targetKey, false); 2554 var keys = []; 2555 if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); 2556 return keys; 2557}; 2558var toMetaKey = function (it) { 2559 return it === undefined || typeof it == 'symbol' ? it : String(it); 2560}; 2561var exp = function (O) { 2562 $export($export.S, 'Reflect', O); 2563}; 2564 2565module.exports = { 2566 store: store, 2567 map: getOrCreateMetadataMap, 2568 has: ordinaryHasOwnMetadata, 2569 get: ordinaryGetOwnMetadata, 2570 set: ordinaryDefineOwnMetadata, 2571 keys: ordinaryOwnMetadataKeys, 2572 key: toMetaKey, 2573 exp: exp 2574}; 2575 2576 2577/***/ }), 2578/* 43 */ 2579/***/ (function(module, exports, __webpack_require__) { 2580 2581"use strict"; 2582/* WEBPACK VAR INJECTION */(function(process) {/** 2583 * Copyright (c) 2013-present, Facebook, Inc. 2584 * 2585 * This source code is licensed under the MIT license found in the 2586 * LICENSE file in the root directory of this source tree. 2587 * 2588 */ 2589 2590 2591 2592var _assign = __webpack_require__(10); 2593 2594var PooledClass = __webpack_require__(60); 2595 2596var emptyFunction = __webpack_require__(38); 2597var warning = __webpack_require__(3); 2598 2599var didWarnForAddedNewProperty = false;
2600var isProxySupported = typeof Proxy === 'function'; 2601 2602var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances']; 2603 2604/** 2605 * @interface Event 2606 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 2607 */ 2608var EventInterface = { 2609 type: null, 2610 target: null, 2611 // currentTarget is set when dispatching; no use in copying it here 2612 currentTarget: emptyFunction.thatReturnsNull, 2613 eventPhase: null, 2614 bubbles: null, 2615 cancelable: null, 2616 timeStamp: function (event) { 2617 return event.timeStamp || Date.now(); 2618 }, 2619 defaultPrevented: null, 2620 isTrusted: null 2621}; 2622 2623/** 2624 * Synthetic events are dispatched by event plugins, typically in response to a 2625 * top-level event delegation handler. 2626 * 2627 * These systems should generally use pooling to reduce the frequency of garbage 2628 * collection. The system should check `isPersistent` to determine whether the 2629 * event should be released into the pool after being dispatched. Users that 2630 * need a persisted event should invoke `persist`. 2631 * 2632 * Synthetic events (and subclasses) implement the DOM Level 3 Events API by 2633 * normalizing browser quirks. Subclasses do not necessarily have to implement a 2634 * DOM interface; custom application-specific events can also subclass this. 2635 * 2636 * @param {object} dispatchConfig Configuration used to dispatch this event. 2637 * @param {*} targetInst Marker identifying the event target. 2638 * @param {object} nativeEvent Native browser event. 2639 * @param {DOMEventTarget} nativeEventTarget Target node. 2640 */ 2641function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { 2642 if (process.env.NODE_ENV !== 'production') { 2643 // these have a getter/setter for warnings 2644 delete this.nativeEvent; 2645 delete this.preventDefault; 2646 delete this.stopPropagation; 2647 } 2648 2649 this.dispatchConfig = dispatchConfig; 2650 this._targetInst = targetInst; 2651 this.nativeEvent = nativeEvent; 2652 2653 var Interface = this.constructor.Interface; 2654 for (var propName in Interface) { 2655 if (!Interface.hasOwnProperty(propName)) { 2656 continue; 2657 } 2658 if (process.env.NODE_ENV !== 'production') { 2659 delete this[propName]; // this has a getter/setter for warnings 2660 } 2661 var normalize = Interface[propName]; 2662 if (normalize) { 2663 this[propName] = normalize(nativeEvent); 2664 } else { 2665 if (propName === 'target') { 2666 this.target = nativeEventTarget; 2667 } else { 2668 this[propName] = nativeEvent[propName]; 2669 } 2670 } 2671 } 2672 2673 var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; 2674 if (defaultPrevented) { 2675 this.isDefaultPrevented = emptyFunction.thatReturnsTrue; 2676 } else { 2677 this.isDefaultPrevented = emptyFunction.thatReturnsFalse; 2678 } 2679 this.isPropagationStopped = emptyFunction.thatReturnsFalse; 2680 return this; 2681} 2682 2683_assign(SyntheticEvent.prototype, { 2684 preventDefault: function () { 2685 this.defaultPrevented = true; 2686 var event = this.nativeEvent; 2687 if (!event) { 2688 return; 2689 } 2690 2691 if (event.preventDefault) { 2692 event.preventDefault(); 2693 // eslint-disable-next-line valid-typeof 2694 } else if (typeof event.returnValue !== 'unknown') { 2695 event.returnValue = false; 2696 } 2697 this.isDefaultPrevented = emptyFunction.thatReturnsTrue; 2698 }, 2699 2700 stopPropagation: function () { 2701 var event = this.nativeEvent; 2702 if (!event) { 2703 return; 2704 } 2705 2706 if (event.stopPropagation) { 2707 event.stopPropagation(); 2708 // eslint-disable-next-line valid-typeof 2709 } else if (typeof event.cancelBubble !== 'unknown') { 2710 // The ChangeEventPlugin registers a "propertychange" event for 2711 // IE. This event does not support bubbling or cancelling, and 2712 // any references to cancelBubble throw "Member not found". A 2713 // typeof check of "unknown" circumvents this issue (and is also 2714 // IE specific). 2715 event.cancelBubble = true; 2716 } 2717 2718 this.isPropagationStopped = emptyFunction.thatReturnsTrue; 2719 }, 2720 2721 /** 2722 * We release all dispatched `SyntheticEvent`s after each event loop, adding 2723 * them back into the pool. This allows a way to hold onto a reference that 2724 * won't be added back into the pool. 2725 */ 2726 persist: function () { 2727 this.isPersistent = emptyFunction.thatReturnsTrue; 2728 }, 2729 2730 /** 2731 * Checks if this event should be released back into the pool. 2732 * 2733 * @return {boolean} True if this should not be released, false otherwise. 2734 */ 2735 isPersistent: emptyFunction.thatReturnsFalse, 2736 2737 /** 2738 * `PooledClass` looks for `destructor` on each instance it releases. 2739 */ 2740 destructor: function () { 2741 var Interface = this.constructor.Interface; 2742 for (var propName in Interface) { 2743 if (process.env.NODE_ENV !== 'production') { 2744 Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); 2745 } else { 2746 this[propName] = null; 2747 } 2748 } 2749 for (var i = 0; i < shouldBeReleasedProperties.length; i++) { 2750 this[shouldBeReleasedProperties[i]] = null; 2751 } 2752 if (process.env.NODE_ENV !== 'production') { 2753 Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); 2754 Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction)); 2755 Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); 2756 } 2757 } 2758}); 2759 2760SyntheticEvent.Interface = EventInterface; 2761 2762/** 2763 * Helper to reduce boilerplate when creating subclasses. 2764 * 2765 * @param {function} Class 2766 * @param {?object} Interface 2767 */ 2768SyntheticEvent.augmentClass = function (Class, Interface) { 2769 var Super = this; 2770 2771 var E = function () {}; 2772 E.prototype = Super.prototype; 2773 var prototype = new E(); 2774 2775 _assign(prototype, Class.prototype); 2776 Class.prototype = prototype; 2777 Class.prototype.constructor = Class; 2778 2779 Class.Interface = _assign({}, Super.Interface, Interface); 2780 Class.augmentClass = Super.augmentClass; 2781 2782 PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); 2783}; 2784 2785/** Proxying after everything set on SyntheticEvent 2786 * to resolve Proxy issue on some WebKit browsers 2787 * in which some Event properties are set to undefined (GH#10010) 2788 */ 2789if (process.env.NODE_ENV !== 'production') { 2790 if (isProxySupported) { 2791 /*eslint-disable no-func-assign */ 2792 SyntheticEvent = new Proxy(SyntheticEvent, { 2793 construct: function (target, args) { 2794 return this.apply(target, Object.create(target.prototype), args); 2795 }, 2796 apply: function (constructor, that, args) { 2797 return new Proxy(constructor.apply(that, args), { 2798 set: function (target, prop, value) { 2799 if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { 2800 process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent
2800(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; 2801 didWarnForAddedNewProperty = true; 2802 } 2803 target[prop] = value; 2804 return true; 2805 } 2806 }); 2807 } 2808 }); 2809 /*eslint-enable no-func-assign */ 2810 } 2811} 2812 2813PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); 2814 2815module.exports = SyntheticEvent; 2816 2817/** 2818 * Helper to nullify syntheticEvent instance properties when destructing 2819 * 2820 * @param {object} SyntheticEvent 2821 * @param {String} propName 2822 * @return {object} defineProperty object 2823 */ 2824function getPooledWarningPropertyDefinition(propName, getVal) { 2825 var isFunction = typeof getVal === 'function'; 2826 return { 2827 configurable: true, 2828 set: set, 2829 get: get 2830 }; 2831 2832 function set(val) { 2833 var action = isFunction ? 'setting the method' : 'setting the property'; 2834 warn(action, 'This is effectively a no-op'); 2835 return val; 2836 } 2837 2838 function get() { 2839 var action = isFunction ? 'accessing the method' : 'accessing the property'; 2840 var result = isFunction ? 'This is a no-op function' : 'This is set to null'; 2841 warn(action, result); 2842 return getVal; 2843 } 2844 2845 function warn(action, result) { 2846 var warningCondition = false; 2847 process.env.NODE_ENV !== 'production' ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; 2848 } 2849} 2850/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 2851 2852/***/ }), 2853/* 44 */ 2854/***/ (function(module, exports) { 2855 2856module.exports = false; 2857 2858 2859/***/ }), 2860/* 45 */ 2861/***/ (function(module, exports, __webpack_require__) { 2862 2863// 22.1.3.31 Array.prototype[@@unscopables] 2864var UNSCOPABLES = __webpack_require__(9)('unscopables'); 2865var ArrayProto = Array.prototype; 2866if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(20)(ArrayProto, UNSCOPABLES, {}); 2867module.exports = function (key) { 2868 ArrayProto[UNSCOPABLES][key] = true; 2869}; 2870 2871 2872/***/ }), 2873/* 46 */ 2874/***/ (function(module, exports, __webpack_require__) { 2875 2876var META = __webpack_require__(49)('meta'); 2877var isObject = __webpack_require__(7); 2878var has = __webpack_require__(24); 2879var setDesc = __webpack_require__(11).f; 2880var id = 0; 2881var isExtensible = Object.isExtensible || function () { 2882 return true; 2883}; 2884var FREEZE = !__webpack_require__(6)(function () { 2885 return isExtensible(Object.preventExtensions({})); 2886}); 2887var setMeta = function (it) { 2888 setDesc(it, META, { value: { 2889 i: 'O' + ++id, // object ID 2890 w: {} // weak collections IDs 2891 } }); 2892}; 2893var fastKey = function (it, create) { 2894 // return primitive with prefix 2895 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 2896 if (!has(it, META)) { 2897 // can't set metadata to uncaught frozen object 2898 if (!isExtensible(it)) return 'F'; 2899 // not necessary to add metadata 2900 if (!create) return 'E'; 2901 // add missing metadata 2902 setMeta(it); 2903 // return object ID 2904 } return it[META].i; 2905}; 2906var getWeak = function (it, create) { 2907 if (!has(it, META)) { 2908 // can't set metadata to uncaught frozen object 2909 if (!isExtensible(it)) return true; 2910 // not necessary to add metadata 2911 if (!create) return false; 2912 // add missing metadata 2913 setMeta(it); 2914 // return hash weak collections IDs 2915 } return it[META].w; 2916}; 2917// add metadata on freeze-family methods calling 2918var onFreeze = function (it) { 2919 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 2920 return it; 2921}; 2922var meta = module.exports = { 2923 KEY: META, 2924 NEED: false, 2925 fastKey: fastKey, 2926 getWeak: getWeak, 2927 onFreeze: onFreeze 2928}; 2929 2930 2931/***/ }), 2932/* 47 */ 2933/***/ (function(module, exports, __webpack_require__) { 2934 2935"use strict"; 2936/* WEBPACK VAR INJECTION */(function(process) {/** 2937 * Copyright (c) 2013-present, Facebook, Inc. 2938 * 2939 * This source code is licensed under the MIT license found in the 2940 * LICENSE file in the root directory of this source tree. 2941 * 2942 */ 2943 2944 2945 2946var _prodInvariant = __webpack_require__(8); 2947 2948var invariant = __webpack_require__(2); 2949 2950function checkMask(value, bitmask) { 2951 return (value & bitmask) === bitmask; 2952} 2953 2954var DOMPropertyInjection = { 2955 /** 2956 * Mapping from normalized, camelcased property names to a configuration that 2957 * specifies how the associated DOM property should be accessed or rendered. 2958 */ 2959 MUST_USE_PROPERTY: 0x1, 2960 HAS_BOOLEAN_VALUE: 0x4, 2961 HAS_NUMERIC_VALUE: 0x8, 2962 HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8, 2963 HAS_OVERLOADED_BOOLEAN_VALUE: 0x20, 2964 2965 /** 2966 * Inject some specialized knowledge about the DOM. This takes a config object 2967 * with the following properties: 2968 * 2969 * isCustomAttribute: function that given an attribute name will return true 2970 * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* 2971 * attributes where it's impossible to enumerate all of the possible 2972 * attribute names, 2973 * 2974 * Properties: object mapping DOM property name to one of the 2975 * DOMPropertyInjection constants or null. If your attribute isn't in here, 2976 * it won't get written to the DOM. 2977 * 2978 * DOMAttributeNames: object mapping React attribute name to the DOM 2979 * attribute name. Attribute names not specified use the **lowercase** 2980 * normalized name. 2981 * 2982 * DOMAttributeNamespaces: object mapping React attribute name to the DOM 2983 * attribute namespace URL. (Attribute names not specified use no namespace.) 2984 * 2985 * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. 2986 * Property names not specified use the normalized name. 2987 * 2988 * DOMMutationMethods: Properties that require special mutation methods. If 2989 * `value` is undefined, the mutation method should unset the property. 2990 * 2991 * @param {object} domPropertyConfig the config as described above. 2992 */ 2993 injectDOMPropertyConfig: function (domPropertyConfig) { 2994 var Injection = DOMPropertyInjection; 2995 var Properties = domPropertyConfig.Properties || {}; 2996 var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; 2997 var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; 2998 var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; 2999 var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; 3000 3001 if (domPropertyConfig.isCustomAttribute) { 3002 DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); 3003 } 3004 3005 for (var propName in Properties) { 3006 !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0; 3007 3008 var lowerCased = propName.toLowerCase(); 3009 var propConfig = Properties[propName]; 3010 3011 var propertyInfo = { 3012 attributeName: lowerCased, 3013 attributeNamespace: null, 3014 propertyName: propName, 3015 mutationMethod: null, 3016 3017 mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), 3018 hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), 3019 hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), 3020 hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), 3021 hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) 3022 }; 3023 !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0; 3024 3025 if (process.env.NODE_ENV !== 'production') { 3026 DOMProperty.getPossibleStandardName[lowerCased] = propName; 3027 } 3028 3029 if (DOMAttributeNames.hasOwnProperty(propName)) { 3030 var attributeName = DOMAttributeNames[propName]; 3031 propertyInfo.attributeName = attributeName; 3032 if (process.env.NODE_ENV !== 'production') { 3033 DOMProperty.getPossibleStandardName[attributeName] = propName; 3034 } 3035 } 3036 3037 if (DOMAttributeNamespaces.hasOwnProperty(propName)) { 3038 propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; 3039 } 3040 3041 if (DOMPropertyNames.hasOwnProperty(propName)) { 3042 propertyInfo.propertyName = DOMPropertyNames[propName]; 3043 } 3044 3045 if (DOMMutationMethods.hasOwnProperty(propName)) { 3046 propertyInfo.mutationMethod = DOMMutationMethods[propName]; 3047 } 3048 3049 DOMProperty.properties[propName] = propertyInfo; 3050 } 3051 } 3052}; 3053 3054/* eslint-disable max-len */ 3055var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u
3055037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD'; 3056/* eslint-enable max-len */ 3057 3058/** 3059 * DOMProperty exports lookup objects that can be used like functions: 3060 * 3061 * > DOMProperty.isValid['id'] 3062 * true 3063 * > DOMProperty.isValid['foobar'] 3064 * undefined 3065 * 3066 * Although this may be confusing, it performs better in general. 3067 * 3068 * @see http://jsperf.com/key-exists 3069 * @see http://jsperf.com/key-missing 3070 */ 3071var DOMProperty = { 3072 ID_ATTRIBUTE_NAME: 'data-reactid', 3073 ROOT_ATTRIBUTE_NAME: 'data-reactroot', 3074 3075 ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR, 3076 ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040', 3077 3078 /** 3079 * Map from property "standard name" to an object with info about how to set 3080 * the property in the DOM. Each object contains: 3081 * 3082 * attributeName: 3083 * Used when rendering markup or with `*Attribute()`. 3084 * attributeNamespace 3085 * propertyName: 3086 * Used on DOM node instances. (This includes properties that mutate due to 3087 * external factors.) 3088 * mutationMethod: 3089 * If non-null, used instead of the property or `setAttribute()` after 3090 * initial render. 3091 * mustUseProperty: 3092 * Whether the property must be accessed and mutated as an object property. 3093 * hasBooleanValue: 3094 * Whether the property should be removed when set to a falsey value. 3095 * hasNumericValue: 3096 * Whether the property must be numeric or parse as a numeric and should be 3097 * removed when set to a falsey value. 3098 * hasPositiveNumericValue: 3099 * Whether the property must be positive numeric or parse as a positive 3100 * numeric and should be removed when set to a falsey value. 3101 * hasOverloadedBooleanValue: 3102 * Whether the property can be used as a flag as well as with a value. 3103 * Removed when strictly equal to false; present without a value when 3104 * strictly equal to true; present with a value otherwise. 3105 */ 3106 properties: {}, 3107 3108 /** 3109 * Mapping from lowercase property names to the properly cased version, used 3110 * to warn in the case of missing properties. Available only in __DEV__. 3111 * 3112 * autofocus is predefined, because adding it to the property whitelist 3113 * causes unintended side effects. 3114 * 3115 * @type {Object} 3116 */ 3117 getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : null, 3118 3119 /** 3120 * All of the isCustomAttribute() functions that have been injected. 3121 */ 3122 _isCustomAttributeFunctions: [], 3123 3124 /** 3125 * Checks whether a property name is a custom attribute. 3126 * @method 3127 */ 3128 isCustomAttribute: function (attributeName) { 3129 for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { 3130 var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; 3131 if (isCustomAttributeFn(attributeName)) { 3132 return true; 3133 } 3134 } 3135 return false; 3136 }, 3137 3138 injection: DOMPropertyInjection 3139}; 3140 3141module.exports = DOMProperty; 3142/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 3143 3144/***/ }), 3145/* 48 */ 3146/***/ (function(module, exports) { 3147 3148module.exports = function clone(obj) { 3149 return JSON.parse(JSON.stringify(obj)); 3150}; 3151 3152 3153/***/ }), 3154/* 49 */ 3155/***/ (function(module, exports) { 3156 3157var id = 0; 3158var px = Math.random(); 3159module.exports = function (key) { 3160 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 3161}; 3162 3163 3164/***/ }), 3165/* 50 */ 3166/***/ (function(module, exports) { 3167 3168module.exports = function (bitmap, value) { 3169 return { 3170 enumerable: !(bitmap & 1), 3171 configurable: !(bitmap & 2), 3172 writable: !(bitmap & 4), 3173 value: value 3174 }; 3175}; 3176 3177 3178/***/ }), 3179/* 51 */ 3180/***/ (function(module, exports, __webpack_require__) { 3181 3182// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 3183var anObject = __webpack_require__(4); 3184var dPs = __webpack_require__(157); 3185var enumBugKeys = __webpack_require__(112); 3186var IE_PROTO = __webpack_require__(111)('IE_PROTO'); 3187var Empty = function () { /* empty */ }; 3188var PROTOTYPE = 'prototype'; 3189 3190// Create object with fake `null` prototype: use iframe Object with cleared prototype 3191var createDict = function () {
vendor: 5,282 bytes, lines 3192-3376
3192 // Thrash, waste and sodomy: IE GC bug 3193 var iframe = __webpack_require__(106)('iframe'); 3194 var i = enumBugKeys.length; 3195 var lt = '<'; 3196 var gt = '>'; 3197 var iframeDocument; 3198 iframe.style.display = 'none'; 3199 __webpack_require__(113).appendChild(iframe); 3200 iframe.src = 'javascript:'; // eslint-disable-line no-script-url 3201 // createDict = iframe.contentWindow.Object; 3202 // html.removeChild(iframe); 3203 iframeDocument = iframe.contentWindow.document; 3204 iframeDocument.open(); 3205 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 3206 iframeDocument.close(); 3207 createDict = iframeDocument.F; 3208 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; 3209 return createDict(); 3210}; 3211 3212module.exports = Object.create || function create(O, Properties) { 3213 var result; 3214 if (O !== null) { 3215 Empty[PROTOTYPE] = anObject(O); 3216 result = new Empty(); 3217 Empty[PROTOTYPE] = null; 3218 // add "__proto__" for Object.getPrototypeOf polyfill 3219 result[IE_PROTO] = O; 3220 } else result = createDict(); 3221 return Properties === undefined ? result : dPs(result, Properties); 3222}; 3223 3224 3225/***/ }), 3226/* 52 */ 3227/***/ (function(module, exports, __webpack_require__) { 3228 3229// 19.1.2.14 / 15.2.3.14 Object.keys(O) 3230var $keys = __webpack_require__(158); 3231var enumBugKeys = __webpack_require__(112); 3232 3233module.exports = Object.keys || function keys(O) { 3234 return $keys(O, enumBugKeys); 3235}; 3236 3237 3238/***/ }), 3239/* 53 */ 3240/***/ (function(module, exports, __webpack_require__) { 3241 3242var toInteger = __webpack_require__(34); 3243var max = Math.max; 3244var min = Math.min; 3245module.exports = function (index, length) { 3246 index = toInteger(index); 3247 return index < 0 ? max(index + length, 0) : min(index, length); 3248}; 3249 3250 3251/***/ }), 3252/* 54 */ 3253/***/ (function(module, exports, __webpack_require__) { 3254 3255var redefine = __webpack_require__(19); 3256module.exports = function (target, src, safe) { 3257 for (var key in src) redefine(target, key, src[key], safe); 3258 return target; 3259}; 3260 3261 3262/***/ }), 3263/* 55 */ 3264/***/ (function(module, exports) { 3265 3266module.exports = function (it, Constructor, name, forbiddenField) { 3267 if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { 3268 throw TypeError(name + ': incorrect invocation!'); 3269 } return it; 3270}; 3271 3272 3273/***/ }), 3274/* 56 */ 3275/***/ (function(module, exports, __webpack_require__) { 3276 3277var ctx = __webpack_require__(30); 3278var call = __webpack_require__(161); 3279var isArrayIter = __webpack_require__(117); 3280var anObject = __webpack_require__(4); 3281var toLength = __webpack_require__(13); 3282var getIterFn = __webpack_require__(118); 3283var BREAK = {}; 3284var RETURN = {}; 3285var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 3286 var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); 3287 var f = ctx(fn, that, entries ? 2 : 1); 3288 var index = 0; 3289 var length, step, iterator, result; 3290 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 3291 // fast case for arrays with default iterator 3292 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 3293 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 3294 if (result === BREAK || result === RETURN) return result; 3295 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 3296 result = call(iterator, f, step.value, entries); 3297 if (result === BREAK || result === RETURN) return result; 3298 } 3299}; 3300exports.BREAK = BREAK; 3301exports.RETURN = RETURN; 3302 3303 3304/***/ }), 3305/* 57 */ 3306/***/ (function(module, exports, __webpack_require__) { 3307 3308"use strict"; 3309 3310var global = __webpack_require__(5); 3311var dP = __webpack_require__(11); 3312var DESCRIPTORS = __webpack_require__(12); 3313var SPECIES = __webpack_require__(9)('species'); 3314 3315module.exports = function (KEY) { 3316 var C = global[KEY]; 3317 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 3318 configurable: true, 3319 get: function () { return this; } 3320 }); 3321}; 3322 3323 3324/***/ }), 3325/* 58 */ 3326/***/ (function(module, exports, __webpack_require__) { 3327 3328// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) 3329var $keys = __webpack_require__(158); 3330var hiddenKeys = __webpack_require__(112).concat('length', 'prototype'); 3331 3332exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 3333 return $keys(O, hiddenKeys); 3334}; 3335 3336 3337/***/ }), 3338/* 59 */ 3339/***/ (function(module, exports, __webpack_require__) { 3340 3341"use strict"; 3342/* WEBPACK VAR INJECTION */(function(process) {/** 3343 * Copyright (c) 2014-present, Facebook, Inc. 3344 * 3345 * This source code is licensed under the MIT license found in the 3346 * LICENSE file in the root directory of this source tree. 3347 * 3348 */ 3349 3350 3351 3352var _assign = __webpack_require__(10); 3353 3354var ReactCurrentOwner = __webpack_require__(39); 3355 3356var warning = __webpack_require__(3); 3357var canDefineProperty = __webpack_require__(97); 3358var hasOwnProperty = Object.prototype.hasOwnProperty; 3359 3360var REACT_ELEMENT_TYPE = __webpack_require__(190); 3361 3362var RESERVED_PROPS = { 3363 key: true, 3364 ref: true, 3365 __self: true, 3366 __source: true 3367}; 3368 3369var specialPropKeyWarningShown, specialPropRefWarningShown; 3370 3371function hasValidRef(config) { 3372 if (process.env.NODE_ENV !== 'production') { 3373 if (hasOwnProperty.call(config, 'ref')) { 3374 var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; 3375 if (getter && getter.isReactWarning) { 3376 return false;
3377 } 3378 } 3379 } 3380 return config.ref !== undefined; 3381} 3382 3383function hasValidKey(config) { 3384 if (process.env.NODE_ENV !== 'production') { 3385 if (hasOwnProperty.call(config, 'key')) { 3386 var getter = Object.getOwnPropertyDescriptor(config, 'key').get; 3387 if (getter && getter.isReactWarning) { 3388 return false; 3389 } 3390 } 3391 } 3392 return config.key !== undefined; 3393} 3394 3395function defineKeyPropWarningGetter(props, displayName) { 3396 var warnAboutAccessingKey = function () { 3397 if (!specialPropKeyWarningShown) { 3398 specialPropKeyWarningShown = true; 3399 process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; 3400 } 3401 }; 3402 warnAboutAccessingKey.isReactWarning = true; 3403 Object.defineProperty(props, 'key', { 3404 get: warnAboutAccessingKey, 3405 configurable: true 3406 }); 3407} 3408 3409function defineRefPropWarningGetter(props, displayName) { 3410 var warnAboutAccessingRef = function () { 3411 if (!specialPropRefWarningShown) { 3412 specialPropRefWarningShown = true; 3413 process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; 3414 } 3415 }; 3416 warnAboutAccessingRef.isReactWarning = true; 3417 Object.defineProperty(props, 'ref', { 3418 get: warnAboutAccessingRef, 3419 configurable: true 3420 }); 3421} 3422 3423/** 3424 * Factory method to create a new React element. This no longer adheres to 3425 * the class pattern, so do not use new to call it. Also, no instanceof check 3426 * will work. Instead test $$typeof field against Symbol.for('react.element') to check 3427 * if something is a React Element. 3428 * 3429 * @param {*} type 3430 * @param {*} key 3431 * @param {string|object} ref 3432 * @param {*} self A *temporary* helper to detect places where `this` is 3433 * different from the `owner` when React.createElement is called, so that we 3434 * can warn. We want to get rid of owner and replace string `ref`s with arrow 3435 * functions, and as long as `this` and owner are the same, there will be no 3436 * change in behavior. 3437 * @param {*} source An annotation object (added by a transpiler or otherwise) 3438 * indicating filename, line number, and/or other information. 3439 * @param {*} owner 3440 * @param {*} props 3441 * @internal 3442 */ 3443var ReactElement = function (type, key, ref, self, source, owner, props) { 3444 var element = { 3445 // This tag allow us to uniquely identify this as a React Element 3446 $$typeof: REACT_ELEMENT_TYPE, 3447 3448 // Built-in properties that belong on the element 3449 type: type, 3450 key: key, 3451 ref: ref, 3452 props: props, 3453 3454 // Record the component responsible for creating this element. 3455 _owner: owner 3456 }; 3457 3458 if (process.env.NODE_ENV !== 'production') { 3459 // The validation flag is currently mutative. We put it on 3460 // an external backing store so that we can freeze the whole object. 3461 // This can be replaced with a WeakMap once they are implemented in 3462 // commonly used development environments. 3463 element._store = {}; 3464 3465 // To make comparing ReactElements easier for testing purposes, we make 3466 // the validation flag non-enumerable (where possible, which should 3467 // include every environment we run tests in), so the test framework 3468 // ignores it. 3469 if (canDefineProperty) { 3470 Object.defineProperty(element._store, 'validated', { 3471 configurable: false, 3472 enumerable: false, 3473 writable: true, 3474 value: false 3475 }); 3476 // self and source are DEV only properties. 3477 Object.defineProperty(element, '_self', { 3478 configurable: false, 3479 enumerable: false, 3480 writable: false, 3481 value: self 3482 }); 3483 // Two elements created in two different places should be considered 3484 // equal for testing purposes and therefore we hide it from enumeration. 3485 Object.defineProperty(element, '_source', { 3486 configurable: false, 3487 enumerable: false, 3488 writable: false, 3489 value: source 3490 }); 3491 } else { 3492 element._store.validated = false;
3493 element._self = self; 3494 element._source = source; 3495 } 3496 if (Object.freeze) { 3497 Object.freeze(element.props); 3498 Object.freeze(element); 3499 } 3500 } 3501 3502 return element; 3503}; 3504 3505/** 3506 * Create and return a new ReactElement of the given type. 3507 * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement 3508 */ 3509ReactElement.createElement = function (type, config, children) { 3510 var propName; 3511 3512 // Reserved names are extracted 3513 var props = {}; 3514 3515 var key = null; 3516 var ref = null; 3517 var self = null; 3518 var source = null; 3519 3520 if (config != null) { 3521 if (hasValidRef(config)) { 3522 ref = config.ref; 3523 } 3524 if (hasValidKey(config)) { 3525 key = '' + config.key; 3526 } 3527 3528 self = config.__self === undefined ? null : config.__self; 3529 source = config.__source === undefined ? null : config.__source; 3530 // Remaining properties are added to a new props object 3531 for (propName in config) { 3532 if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { 3533 props[propName] = config[propName]; 3534 } 3535 } 3536 } 3537 3538 // Children can be more than one argument, and those are transferred onto 3539 // the newly allocated props object. 3540 var childrenLength = arguments.length - 2; 3541 if (childrenLength === 1) { 3542 props.children = children; 3543 } else if (childrenLength > 1) { 3544 var childArray = Array(childrenLength); 3545 for (var i = 0; i < childrenLength; i++) { 3546 childArray[i] = arguments[i + 2]; 3547 } 3548 if (process.env.NODE_ENV !== 'production') { 3549 if (Object.freeze) { 3550 Object.freeze(childArray); 3551 } 3552 } 3553 props.children = childArray; 3554 } 3555 3556 // Resolve default props 3557 if (type && type.defaultProps) { 3558 var defaultProps = type.defaultProps; 3559 for (propName in defaultProps) { 3560 if (props[propName] === undefined) { 3561 props[propName] = defaultProps[propName]; 3562 } 3563 } 3564 } 3565 if (process.env.NODE_ENV !== 'production') { 3566 if (key || ref) { 3567 if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { 3568 var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; 3569 if (key) { 3570 defineKeyPropWarningGetter(props, displayName); 3571 } 3572 if (ref) { 3573 defineRefPropWarningGetter(props, displayName); 3574 } 3575 } 3576 } 3577 } 3578 return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); 3579}; 3580 3581/** 3582 * Return a function that produces ReactElements of a given type. 3583 * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory 3584 */ 3585ReactElement.createFactory = function (type) { 3586 var factory = ReactElement.createElement.bind(null, type); 3587 // Expose the type on the factory and the prototype so that it can be 3588 // easily accessed on elements. E.g. `<Foo />.type === Foo`. 3589 // This should not be named `constructor` since this may not be the function 3590 // that created the element, and it may not even be a constructor. 3591 // Legacy hook TODO: Warn if this is accessed 3592 factory.type = type; 3593 return factory; 3594}; 3595 3596ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { 3597 var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); 3598 3599 return newElement; 3600}; 3601 3602/** 3603 * Clone and return a new ReactElement using element as the starting point. 3604 * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement 3605 */ 3606ReactElement.cloneElement = function (element, config, children) { 3607 var propName; 3608 3609 // Original props are copied 3610 var props = _assign({}, element.props); 3611 3612 // Reserved names are extracted 3613 var key = element.key; 3614 var ref = element.ref; 3615 // Self is preserved since the owner is preserved. 3616 var self = element._self; 3617 // Source is preserved since cloneElement is unlikely to be targeted by a 3618 // transpiler, and the original source is probably a better indicator of the 3619 // true owner. 3620 var source = element._source; 3621 3622 // Owner will be preserved, unless ref is overridden 3623 var owner = element._owner; 3624 3625 if (config != null) { 3626 if (hasValidRef(config)) { 3627 // Silently steal the ref from the parent. 3628 ref = config.ref; 3629 owner = ReactCurrentOwner.current; 3630 } 3631 if (hasValidKey(config)) { 3632 key = '' + config.key; 3633 } 3634 3635 // Remaining properties override existing props 3636 var defaultProps; 3637 if (element.type && element.type.defaultProps) { 3638 defaultProps = element.type.defaultProps; 3639 } 3640 for (propName in config) { 3641 if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { 3642 if (config[propName] === undefined && defaultProps !== undefined) { 3643 // Resolve default props 3644 props[propName] = defaultProps[propName]; 3645 } else { 3646 props[propName] = config[propName]; 3647 } 3648 } 3649 } 3650 } 3651 3652 // Children can be more than one argument, and those are transferred onto 3653 // the newly allocated props object. 3654 var childrenLength = arguments.length - 2; 3655 if (childrenLength === 1) { 3656 props.children = children; 3657 } else if (childrenLength > 1) { 3658 var childArray = Array(childrenLength); 3659 for (var i = 0; i < childrenLength; i++) { 3660 childArray[i] = arguments[i + 2]; 3661 } 3662 props.children = childArray; 3663 } 3664 3665 return ReactElement(element.type, key, ref, self, source, owner, props); 3666}; 3667 3668/** 3669 * Verifies the object is a ReactElement. 3670 * See https://facebook.github.io/react/docs/top-level-api.html#react.isvali
3670delement 3671 * @param {?object} object 3672 * @return {boolean} True if `object` is a valid component. 3673 * @final 3674 */ 3675ReactElement.isValidElement = function (object) { 3676 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; 3677}; 3678 3679module.exports = ReactElement; 3680/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 3681 3682/***/ }), 3683/* 60 */ 3684/***/ (function(module, exports, __webpack_require__) { 3685 3686"use strict"; 3687/* WEBPACK VAR INJECTION */(function(process) {/** 3688 * Copyright (c) 2013-present, Facebook, Inc. 3689 * 3690 * This source code is licensed under the MIT license found in the 3691 * LICENSE file in the root directory of this source tree. 3692 * 3693 * 3694 */ 3695 3696 3697 3698var _prodInvariant = __webpack_require__(8); 3699 3700var invariant = __webpack_require__(2); 3701 3702/** 3703 * Static poolers. Several custom versions for each potential number of 3704 * arguments. A completely generic pooler is easy to implement, but would 3705 * require accessing the `arguments` object. In each of these, `this` refers to 3706 * the Class itself, not an instance. If any others are needed, simply add them
3707 * here, or in their own files. 3708 */ 3709var oneArgumentPooler = function (copyFieldsFrom) { 3710 var Klass = this; 3711 if (Klass.instancePool.length) { 3712 var instance = Klass.instancePool.pop(); 3713 Klass.call(instance, copyFieldsFrom); 3714 return instance; 3715 } else { 3716 return new Klass(copyFieldsFrom); 3717 } 3718}; 3719 3720var twoArgumentPooler = function (a1, a2) { 3721 var Klass = this; 3722 if (Klass.instancePool.length) { 3723 var instance = Klass.instancePool.pop(); 3724 Klass.call(instance, a1, a2); 3725 return instance; 3726 } else { 3727 return new Klass(a1, a2); 3728 } 3729}; 3730 3731var threeArgumentPooler = function (a1, a2, a3) { 3732 var Klass = this; 3733 if (Klass.instancePool.length) { 3734 var instance = Klass.instancePool.pop(); 3735 Klass.call(instance, a1, a2, a3); 3736 return instance; 3737 } else { 3738 return new Klass(a1, a2, a3); 3739 } 3740}; 3741 3742var fourArgumentPooler = function (a1, a2, a3, a4) { 3743 var Klass = this; 3744 if (Klass.instancePool.length) { 3745 var instance = Klass.instancePool.pop(); 3746 Klass.call(instance, a1, a2, a3, a4); 3747 return instance; 3748 } else { 3749 return new Klass(a1, a2, a3, a4); 3750 } 3751}; 3752 3753var standardReleaser = function (instance) { 3754 var Klass = this; 3755 !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; 3756 instance.destructor(); 3757 if (Klass.instancePool.length < Klass.poolSize) { 3758 Klass.instancePool.push(instance); 3759 } 3760}; 3761 3762var DEFAULT_POOL_SIZE = 10; 3763var DEFAULT_POOLER = oneArgumentPooler; 3764 3765/** 3766 * Augments `CopyConstructor` to be a poolable class, augmenting only the class 3767 * itself (statically) not adding any prototypical fields. Any CopyConstructor 3768 * you give this may have a `poolSize` property, and will look for a 3769 * prototypical `destructor` on instances. 3770 * 3771 * @param {Function} CopyConstructor Constructor that can be used to reset. 3772 * @param {Function} pooler Customizable pooler. 3773 */ 3774var addPoolingTo = function (CopyConstructor, pooler) { 3775 // Casting as any so that flow ignores the actual implementation and trusts 3776 // it to match the type we declared 3777 var NewKlass = CopyConstructor; 3778 NewKlass.instancePool = []; 3779 NewKlass.getPooled = pooler || DEFAULT_POOLER; 3780 if (!NewKlass.poolSize) { 3781 NewKlass.poolSize = DEFAULT_POOL_SIZE; 3782 } 3783 NewKlass.release = standardReleaser; 3784 return NewKlass; 3785}; 3786 3787var PooledClass = { 3788 addPoolingTo: addPoolingTo, 3789 oneArgumentPooler: oneArgumentPooler, 3790 twoArgumentPooler: twoArgumentPooler, 3791 threeArgumentPooler: threeArgumentPooler, 3792 fourArgumentPooler: fourArgumentPooler 3793}; 3794 3795module.exports = PooledClass; 3796/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 3797 3798/***/ }), 3799/* 61 */ 3800/***/ (function(module, exports) { 3801 3802module.exports = {}; 3803 3804 3805/***/ }), 3806/* 62 */ 3807/***/ (function(module, exports, __webpack_require__) { 3808 3809var def = __webpack_require__(11).f; 3810var has = __webpack_require__(24); 3811var TAG = __webpack_require__(9)('toStringTag'); 3812 3813module.exports = function (it, tag, stat) { 3814 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); 3815}; 3816 3817 3818/***/ }), 3819/* 63 */ 3820/***/ (function(module, exports, __webpack_require__) { 3821 3822var isObject = __webpack_require__(7); 3823module.exports = function (it, TYPE) { 3824 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 3825 return it; 3826}; 3827 3828 3829/***/ }), 3830/* 64 */ 3831/***/ (function(module, exports) { 3832 3833var g; 3834 3835// This works in non-strict mode 3836g = (function() { 3837 return this; 3838})(); 3839 3840try { 3841 // This works if eval is allowed (see CSP) 3842 g = g || Function("return this")() || (1,eval)("this"); 3843} catch(e) { 3844 // This works if the window reference is available 3845 if(typeof window === "object") 3846 g = window; 3847} 3848 3849// g can still be undefined, but nothing to do about it... 3850// We return undefined, instead of nothing here, so it's 3851// easier to handle this case. if(!global) { ...} 3852 3853module.exports = g; 3854 3855 3856/***/ }), 3857/* 65 */ 3858/***/ (function(module, exports, __webpack_require__) { 3859 3860var $export = __webpack_require__(0); 3861var defined = __webpack_require__(35); 3862var fails = __webpack_require__(6); 3863var spaces = __webpack_require__(123); 3864var space = '[' + spaces + ']'; 3865var non = '\u200b\u0085'; 3866var ltrim = RegExp('^' + space + space + '*'); 3867var rtrim = RegExp(space + space + '*$'); 3868 3869var exporter = function (KEY, exec, ALIAS) { 3870 var exp = {}; 3871 var FORCE = fails(function () { 3872 return !!spaces[KEY]() || non[KEY]() != non; 3873 }); 3874 var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
3875 if (ALIAS) exp[ALIAS] = fn; 3876 $export($export.P + $export.F * FORCE, 'String', exp); 3877}; 3878 3879// 1 -> String#trimLeft 3880// 2 -> String#trimRight 3881// 3 -> String#trim 3882var trim = exporter.trim = function (string, TYPE) { 3883 string = String(defined(string)); 3884 if (TYPE & 1) string = string.replace(ltrim, ''); 3885 if (TYPE & 2) string = string.replace(rtrim, ''); 3886 return string; 3887}; 3888 3889module.exports = exporter; 3890 3891 3892/***/ }), 3893/* 66 */ 3894/***/ (function(module, exports, __webpack_require__) { 3895 3896"use strict"; 3897/* WEBPACK VAR INJECTION */(function(process) {/** 3898 * Copyright (c) 2013-present, Facebook, Inc. 3899 * 3900 * This source code is licensed under the MIT license found in the 3901 * LICENSE file in the root directory of this source tree. 3902 * 3903 */ 3904 3905 3906 3907var _assign = __webpack_require__(10); 3908 3909var ReactBaseClasses = __webpack_require__(188); 3910var ReactChildren = __webpack_require__(433); 3911var ReactDOMFactories = __webpack_require__(437); 3912var ReactElement = __webpack_require__(59); 3913var ReactPropTypes = __webpack_require__(441); 3914var ReactVersion = __webpack_require__(444); 3915 3916var createReactClass = __webpack_require__(445); 3917var onlyChild = __webpack_require__(447); 3918 3919var createElement = ReactElement.createElement; 3920var createFactory = ReactElement.createFactory; 3921var cloneElement = ReactElement.cloneElement; 3922 3923if (process.env.NODE_ENV !== 'production') { 3924 var lowPriorityWarning = __webpack_require__(136); 3925 var canDefineProperty = __webpack_require__(97); 3926 var ReactElementValidator = __webpack_require__(192); 3927 var didWarnPropTypesDeprecated = false; 3928 createElement = ReactElementValidator.createElement; 3929 createFactory = ReactElementValidator.createFactory; 3930 cloneElement = ReactElementValidator.cloneElement; 3931} 3932 3933var __spread = _assign; 3934var createMixin = function (mixin) { 3935 return mixin; 3936}; 3937 3938if (process.env.NODE_ENV !== 'production') { 3939 var warnedForSpread = false; 3940 var warnedForCreateMixin = false; 3941 __spread = function () { 3942 lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.'); 3943 warnedForSpread = true; 3944 return _assign.apply(null, arguments); 3945 }; 3946 3947 createMixin = function (mixin) { 3948 lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.'); 3949 warnedForCreateMixin = true; 3950 return mixin; 3951 }; 3952} 3953 3954var React = { 3955 // Modern 3956 3957 Children: { 3958 map: ReactChildren.map, 3959 forEach: ReactChildren.forEach, 3960 count: ReactChildren.count, 3961 toArray: ReactChildren.toArray, 3962 only: onlyChild 3963 }, 3964 3965 Component: ReactBaseClasses.Component, 3966 PureComponent: ReactBaseClasses.PureComponent, 3967 3968 createElement: createElement, 3969 cloneElement: cloneElement, 3970 isValidElement: ReactElement.isValidElement, 3971 3972 // Classic 3973 3974 PropTypes: ReactPropTypes, 3975 createClass: createReactClass, 3976 createFactory: createFactory, 3977 createMixin: createMixin, 3978 3979 // This looks DOM specific but these are actually isomorphic helpers 3980 // since they are just generating DOM strings. 3981 DOM: ReactDOMFactories, 3982 3983 version: ReactVersion, 3984 3985 // Deprecated hook for JSX spread, don't use this for anything. 3986 __spread: __spread 3987}; 3988 3989if (process.env.NODE_ENV !== 'production') { 3990 var warnedForCreateClass = false; 3991 if (canDefineProperty) { 3992 Object.defineProperty(React, 'PropTypes', { 3993 get: function () { 3994 lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs'); 3995 didWarnPropTypesDeprecated = true; 3996 return ReactPropTypes; 3997 } 3998 }); 3999 4000 Object.defineProperty(React, 'createClass', { 4001 get: function () { 4002 lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class'); 4003 warnedForCreateClass = true; 4004 return createReactClass; 4005 } 4006 }); 4007 } 4008 4009 // React.DOM factories are deprecated. Wrap these methods so that 4010 // invocations of the React.DOM namespace and alert users to switch 4011 // to the `react-dom-factories` package. 4012 React.DOM = {}; 4013 var warnedForFactories = false;
4014 Object.keys(ReactDOMFactories).forEach(function (factory) { 4015 React.DOM[factory] = function () { 4016 if (!warnedForFactories) { 4017 lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory); 4018 warnedForFactories = true; 4019 } 4020 return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments); 4021 }; 4022 }); 4023} 4024 4025module.exports = React; 4026/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 4027 4028/***/ }), 4029/* 67 */ 4030/***/ (function(module, exports, __webpack_require__) { 4031 4032"use strict"; 4033/** 4034 * Copyright (c) 2013-present, Facebook, Inc. 4035 * 4036 * This source code is licensed under the MIT license found in the 4037 * LICENSE file in the root directory of this source tree. 4038 * 4039 * 4040 */ 4041 4042 4043/** 4044 * WARNING: DO NOT manually require this module. 4045 * This is a replacement for `invariant(...)` used by the error code system 4046 * and will _only_ be required by the corresponding babel pass. 4047 * It always throws. 4048 */ 4049 4050function reactProdInvariant(code) { 4051 var argCount = arguments.length - 1; 4052 4053 var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; 4054 4055 for (var argIdx = 0; argIdx < argCount; argIdx++) { 4056 message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); 4057 } 4058 4059 message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; 4060 4061 var error = new Error(message); 4062 error.name = 'Invariant Violation'; 4063 error.framesToPop = 1; // we don't care about reactProdInvariant's own frame 4064 4065 throw error; 4066} 4067 4068module.exports = reactProdInvariant; 4069 4070/***/ }), 4071/* 68 */ 4072/***/ (function(module, exports, __webpack_require__) { 4073 4074"use strict"; 4075/* WEBPACK VAR INJECTION */(function(process) {/** 4076 * Copyright (c) 2013-present, Facebook, Inc. 4077 * 4078 * This source code is licensed under the MIT license found in the 4079 * LICENSE file in the root directory of this source tree. 4080 * 4081 */ 4082 4083 4084 4085var ReactRef = __webpack_require__(457); 4086var ReactInstrumentation = __webpack_require__(28); 4087 4088var warning = __webpack_require__(3); 4089 4090/** 4091 * Helper to call ReactRef.attachRefs with this composite component, split out 4092 * to avoid allocations in the transaction mount-ready queue. 4093 */ 4094function attachRefs() { 4095 ReactRef.attachRefs(this, this._currentElement); 4096} 4097 4098var ReactReconciler = { 4099 /** 4100 * Initializes the component, renders markup, and registers event listeners. 4101 * 4102 * @param {ReactComponent} internalInstance 4103 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 4104 * @param {?object} the containing host component instance 4105 * @param {?object} info about the host container 4106 * @return {?string} Rendered markup to be inserted into the DOM. 4107 * @final 4108 * @internal 4109 */ 4110 mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots 4111 { 4112 if (process.env.NODE_ENV !== 'production') { 4113 if (internalInstance._debugID !== 0) { 4114 ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); 4115 } 4116 } 4117 var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID); 4118 if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { 4119 transaction.getReactMountReady().enqueue(attachRefs, internalInstance); 4120 } 4121 if (process.env.NODE_ENV !== 'production') { 4122 if (internalInstance._debugID !== 0) { 4123 ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); 4124 } 4125 } 4126 return markup; 4127 }, 4128 4129 /** 4130 * Returns a value that can be passed to 4131 * ReactComponentEnvironment.replaceNodeWithMarkup. 4132 */ 4133 getHostNode: function (internalInstance) { 4134 return internalInstance.getHostNode(); 4135 }, 4136 4137 /** 4138 * Releases any resources allocated by `mountComponent`. 4139 * 4140 * @final 4141 * @internal 4142 */ 4143 unmountComponent: function (internalInstance, safely) { 4144 if (process.env.NODE_ENV !== 'production') { 4145 if (internalInstance._debugID !== 0) { 4146 ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); 4147 } 4148 } 4149 ReactRef.detachRefs(internalInstance, internalInstance._currentElement); 4150 internalInstance.unmountComponent(safely); 4151 if (process.env.NODE_ENV !== 'production') { 4152 if (internalInstance._debugID !== 0) { 4153 ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); 4154 } 4155 } 4156 }, 4157 4158 /** 4159 * Update a component using a new element. 4160 * 4161 * @param {ReactComponent} internalInstance 4162 * @param {ReactElement} nextElement 4163 * @param {ReactReconcileTransaction} transaction 4164 * @param {object} context 4165 * @internal 4166 */ 4167 receiveComponent: function (internalInstance, nextElement, transaction, context) { 4168 var prevElement = internalInstance._currentElement; 4169 4170 if (nextElement === prevElement && context === internalInstance._context) { 4171 // Since elements are immutable after the owner is rendered, 4172 // we can do a cheap identity compare here to determine if this is a 4173 // superfluous reconcile. It's possible for state to be mutable but such 4174 // change should trigger an update of the owner which would recreate 4175 // the element. We explicitly check for the existence of an owner since 4176 // it's possible for an element created outside a composite to be 4177 // deeply mutated and reused. 4178 4179 // TODO: Bailing out early is just a perf optimization right? 4180 // TODO: Removing the return statement should affect correctness? 4181 return; 4182 } 4183 4184 if (process.env.NODE_ENV !== 'production') { 4185 if (internalInstance._debugID !== 0) { 4186 ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); 4187 } 4188 } 4189 4190 var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); 4191 4192 if (refsChanged) { 4193 ReactRef.detachRefs(internalInstance, prevElement); 4194 } 4195 4196 internalInstance.receiveComponent(nextElement, transaction, context); 4197 4198 if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { 4199 transaction.getReactMountReady().enqueue(attachRefs, internalInstance); 4200 } 4201 4202 if (process.env.NODE_ENV !== 'production') { 4203 if (internalInstance._debugID !== 0) { 4204 ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); 4205 } 4206 } 4207 }, 4208 4209 /** 4210 * Flush any dirty changes in a component. 4211 * 4212 * @param {ReactComponent} internalInstance 4213 * @param {ReactReconcileTransaction} transaction 4214 * @internal 4215 */ 4216 performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) { 4217 if (internalInstance._updateBatchNumber !== updateBatchNumber) { 4218 // The component's enqueued batch number should always be the current 4219 // batch or the following one. 4220 process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending
4220%s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; 4221 return; 4222 } 4223 if (process.env.NODE_ENV !== 'production') { 4224 if (internalInstance._debugID !== 0) { 4225 ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); 4226 } 4227 } 4228 internalInstance.performUpdateIfNecessary(transaction); 4229 if (process.env.NODE_ENV !== 'production') { 4230 if (internalInstance._debugID !== 0) { 4231 ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); 4232 } 4233 } 4234 } 4235}; 4236 4237module.exports = ReactReconciler; 4238/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 4239 4240/***/ }), 4241/* 69 */ 4242/***/ (function(module, exports, __webpack_require__) { 4243 4244"use strict"; 4245/** 4246 * Copyright (c) 2015-present, Facebook, Inc. 4247 * 4248 * This source code is licensed under the MIT license found in the 4249 * LICENSE file in the root directory of this source tree. 4250 * 4251 */ 4252 4253 4254 4255var DOMNamespaces = __webpack_require__(143); 4256var setInnerHTML = __webpack_require__(102); 4257 4258var createMicrosoftUnsafeLocalFunction = __webpack_require__(144); 4259var setTextContent = __webpack_require__(204); 4260 4261var ELEMENT_NODE_TYPE = 1; 4262var DOCUMENT_FRAGMENT_NODE_TYPE = 11; 4263 4264/** 4265 * In IE (8-11) and Edge, appending nodes with no children is dramatically 4266 * faster than appending a full subtree, so we essentially queue up the 4267 * .appendChild calls here and apply them so each node is added to its parent 4268 * before any children are added. 4269 * 4270 * In other browsers, doing so is slower or neutral compared to the other order 4271 * (in Firefox, twice as slow) so we only do this inversion in IE. 4272 * 4273 * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode. 4274 */ 4275var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent); 4276 4277function insertTreeChildren(tree) { 4278 if (!enableLazy) { 4279 return; 4280 } 4281 var node = tree.node; 4282 var children = tree.children; 4283 if (children.length) { 4284 for (var i = 0; i < children.length; i++) { 4285 insertTreeBefore(node, children[i], null); 4286 } 4287 } else if (tree.html != null) { 4288 setInnerHTML(node, tree.html); 4289 } else if (tree.text != null) { 4290 setTextContent(node, tree.text); 4291 } 4292} 4293 4294var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) { 4295 // DocumentFragments aren't actually part of the DOM after insertion so 4296 // appending children won't update the DOM. We need to ensure the fragment 4297 // is properly populated first, breaking out of our lazy approach for just 4298 // this level. Also, some <object> plugins (like Flash Player) will read 4299 // <param> nodes immediately upon insertion into the DOM, so <object> 4300 // must also be populated prior to insertion into the DOM. 4301 if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) { 4302 insertTreeChildren(tree); 4303 parentNode.insertBefore(tree.node, referenceNode); 4304 } else { 4305 parentNode.insertBefore(tree.node, referenceNode); 4306 insertTreeChildren(tree); 4307 } 4308}); 4309 4310function replaceChildWithTree(oldNode, newTree) { 4311 oldNode.parentNode.replaceChild(newTree.node, oldNode); 4312 insertTreeChildren(newTree); 4313} 4314 4315function queueChild(parentTree, childTree) { 4316 if (enableLazy) { 4317 parentTree.children.push(childTree); 4318 } else { 4319 parentTree.node.appendChild(childTree.node); 4320 } 4321} 4322 4323function queueHTML(tree, html) { 4324 if (enableLazy) { 4325 tree.html = html; 4326 } else { 4327 setInnerHTML(tree.node, html); 4328 } 4329} 4330 4331function queueText(tree, text) { 4332 if (enableLazy) { 4333 tree.text = text; 4334 } else { 4335 setTextContent(tree.node, text); 4336 } 4337} 4338 4339function toString() { 4340 return this.node.nodeName; 4341} 4342 4343function DOMLazyTree(node) { 4344 return { 4345 node: node, 4346 children: [], 4347 html: null, 4348 text: null, 4349 toString: toString 4350 }; 4351} 4352 4353DOMLazyTree.insertTreeBefore = insertTreeBefore; 4354DOMLazyTree.replaceChildWithTree = replaceChildWithTree; 4355DOMLazyTree.queueChild = queueChild; 4356DOMLazyTree.queueHTML = queueHTML; 4357DOMLazyTree.queueText = queueText; 4358 4359module.exports = DOMLazyTree; 4360 4361/***/ }), 4362/* 70 */ 4363/***/ (function(module, exports, __webpack_require__) { 4364 4365"use strict"; 4366 4367 4368// This file hosts our error definitions 4369// We use custom error "types" so that we can act on them when we need it 4370// e.g.: if error instanceof errors.UnparsableJSON then.. 4371 4372var inherits = __webpack_require__(80); 4373 4374function AlgoliaSearchError(message, extraProperties) {
4375 var forEach = __webpack_require__(71); 4376 4377 var error = this; 4378 4379 // try to get a stacktrace 4380 if (typeof Error.captureStackTrace === 'function') { 4381 Error.captureStackTrace(this, this.constructor); 4382 } else { 4383 error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old'; 4384 } 4385 4386 this.name = 'AlgoliaSearchError'; 4387 this.message = message || 'Unknown error'; 4388 4389 if (extraProperties) { 4390 forEach(extraProperties, function addToErrorObject(value, key) { 4391 error[key] = value; 4392 }); 4393 } 4394} 4395 4396inherits(AlgoliaSearchError, Error); 4397 4398function createCustomError(name, message) { 4399 function AlgoliaSearchCustomError() { 4400 var args = Array.prototype.slice.call(arguments, 0); 4401 4402 // custom message not set, use default 4403 if (typeof args[0] !== 'string') { 4404 args.unshift(message); 4405 } 4406 4407 AlgoliaSearchError.apply(this, args); 4408 this.name = 'AlgoliaSearch' + name + 'Error'; 4409 } 4410 4411 inherits(AlgoliaSearchCustomError, AlgoliaSearchError); 4412 4413 return AlgoliaSearchCustomError; 4414} 4415 4416// late exports to let various fn defs and inherits take place 4417module.exports = { 4418 AlgoliaSearchError: AlgoliaSearchError, 4419 UnparsableJSON: createCustomError( 4420 'UnparsableJSON', 4421 'Could not parse the incoming response as JSON, see err.more for details' 4422 ), 4423 RequestTimeout: createCustomError( 4424 'RequestTimeout', 4425 'Request timedout before getting a response' 4426 ), 4427 Network: createCustomError( 4428 'Network', 4429 'Network issue, see err.more for details' 4430 ), 4431 JSONPScriptFail: createCustomError( 4432 'JSONPScriptFail', 4433 '<script> was loaded but did not call our provided callback' 4434 ), 4435 JSONPScriptError: createCustomError( 4436 'JSONPScriptError', 4437 '<script> unable to load due to an `error` event on it' 4438 ), 4439 Unknown: createCustomError( 4440 'Unknown', 4441 'Unknown error occured' 4442 ) 4443}; 4444 4445 4446/***/ }), 4447/* 71 */ 4448/***/ (function(module, exports) { 4449 4450 4451var hasOwn = Object.prototype.hasOwnProperty; 4452var toString = Object.prototype.toString; 4453 4454module.exports = function forEach (obj, fn, ctx) { 4455 if (toString.call(fn) !== '[object Function]') { 4456 throw new TypeError('iterator must be a function'); 4457 } 4458 var l = obj.length; 4459 if (l === +l) { 4460 for (var i = 0; i < l; i++) { 4461 fn.call(ctx, obj[i], i, obj); 4462 } 4463 } else { 4464 for (var k in obj) { 4465 if (hasOwn.call(obj, k)) { 4466 fn.call(ctx, obj[k], k, obj); 4467 } 4468 } 4469 } 4470}; 4471 4472 4473 4474/***/ }), 4475/* 72 */ 4476/***/ (function(module, exports, __webpack_require__) { 4477 4478var foreach = __webpack_require__(71); 4479 4480module.exports = function map(arr, fn) { 4481 var newArr = []; 4482 foreach(arr, function(item, itemIndex) { 4483 newArr.push(fn(item, itemIndex, arr)); 4484 }); 4485 return newArr; 4486}; 4487 4488 4489/***/ }), 4490/* 73 */ 4491/***/ (function(module, exports, __webpack_require__) { 4492 4493// getting tag from 19.1.3.6 Object.prototype.toString() 4494var cof = __webpack_require__(29); 4495var TAG = __webpack_require__(9)('toStringTag'); 4496// ES3 wrong here 4497var ARG = cof(function () { return arguments; }()) == 'Arguments'; 4498 4499// fallback for IE11 Script Access Denied error 4500var tryGet = function (it, key) { 4501 try { 4502 return it[key]; 4503 } catch (e) { /* empty */ } 4504}; 4505 4506module.exports = function (it) { 4507 var O, T, B; 4508 return it === undefined ? 'Undefined' : it === null ? 'Null' 4509 // @@toStringTag case 4510 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T 4511 // builtinTag case 4512 : ARG ? cof(O) 4513 // ES3 arguments fallback 4514 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; 4515}; 4516 4517 4518/***/ }), 4519/* 74 */ 4520/***/ (function(module, exports, __webpack_require__) { 4521 4522// fallback for non-array-like ES3 and non-enumerable old V8 strings 4523var cof = __webpack_require__(29); 4524// eslint-disable-next-line no-prototype-builtins 4525module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 4526 return cof(it) == 'String' ? it.split('') : Object(it); 4527}; 4528 4529 4530/***/ }), 4531/* 75 */ 4532/***/ (function(module, exports) { 4533 4534exports.f = {}.propertyIsEnumerable; 4535 4536 4537/***/ }), 4538/* 76 */ 4539/***/ (function(module, exports, __webpack_require__) { 4540 4541"use strict"; 4542/* WEBPACK VAR INJECTION */(function(process) {/** 4543 * Copyright (c) 2013-present, Facebook, Inc. 4544 * 4545 * This source code is licensed under the MIT license found in the 4546 * LICENSE file in the root directory of this source tree. 4547 * 4548 */ 4549 4550 4551 4552var EventPluginHub = __webpack_require__(77); 4553var EventPluginUtils = __webpack_require__(137); 4554 4555var accumulateInto = __webpack_require__(196);
4556var forEachAccumulated = __webpack_require__(197); 4557var warning = __webpack_require__(3); 4558 4559var getListener = EventPluginHub.getListener; 4560 4561/** 4562 * Some event types have a notion of different registration names for different 4563 * "phases" of propagation. This finds listeners by a given phase. 4564 */ 4565function listenerAtPhase(inst, event, propagationPhase) { 4566 var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; 4567 return getListener(inst, registrationName); 4568} 4569 4570/** 4571 * Tags a `SyntheticEvent` with dispatched listeners. Creating this function 4572 * here, allows us to not have to bind or create functions for each event. 4573 * Mutating the event's members allows us to not have to create a wrapping 4574 * "dispatch" object that pairs the event with the listener. 4575 */ 4576function accumulateDirectionalDispatches(inst, phase, event) { 4577 if (process.env.NODE_ENV !== 'production') { 4578 process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0; 4579 } 4580 var listener = listenerAtPhase(inst, event, phase); 4581 if (listener) { 4582 event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); 4583 event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); 4584 } 4585} 4586 4587/** 4588 * Collect dispatches (must be entirely collected before dispatching - see unit 4589 * tests). Lazily allocate the array to conserve memory. We must loop through 4590 * each event and perform the traversal for each one. We cannot perform a 4591 * single traversal for the entire collection of events because each event may 4592 * have a different target. 4593 */ 4594function accumulateTwoPhaseDispatchesSingle(event) {
4595 if (event && event.dispatchConfig.phasedRegistrationNames) { 4596 EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); 4597 } 4598} 4599 4600/** 4601 * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. 4602 */ 4603function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { 4604 if (event && event.dispatchConfig.phasedRegistrationNames) { 4605 var targetInst = event._targetInst; 4606 var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null; 4607 EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event); 4608 } 4609} 4610 4611/** 4612 * Accumulates without regard to direction, does not look for phased 4613 * registration names. Same as `accumulateDirectDispatchesSingle` but without 4614 * requiring that the `dispatchMarker` be the same as the dispatched ID. 4615 */ 4616function accumulateDispatches(inst, ignoredDirection, event) { 4617 if (event && event.dispatchConfig.registrationName) { 4618 var registrationName = event.dispatchConfig.registrationName; 4619 var listener = getListener(inst, registrationName); 4620 if (listener) { 4621 event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); 4622 event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); 4623 } 4624 } 4625} 4626 4627/** 4628 * Accumulates dispatches on an `SyntheticEvent`, but only for the 4629 * `dispatchMarker`. 4630 * @param {SyntheticEvent} event 4631 */ 4632function accumulateDirectDispatchesSingle(event) { 4633 if (event && event.dispatchConfig.registrationName) { 4634 accumulateDispatches(event._targetInst, null, event); 4635 } 4636} 4637 4638function accumulateTwoPhaseDispatches(events) { 4639 forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); 4640} 4641 4642function accumulateTwoPhaseDispatchesSkipTarget(events) { 4643 forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); 4644} 4645 4646function accumulateEnterLeaveDispatches(leave, enter, from, to) { 4647 EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter); 4648} 4649 4650function accumulateDirectDispatches(events) { 4651 forEachAccumulated(events, accumulateDirectDispatchesSingle); 4652} 4653 4654/** 4655 * A small set of propagation patterns, each of which will accept a small amount 4656 * of information, and generate a set of "dispatch ready event objects" - which 4657 * are sets of events that have already been annotated with a set of dispatched 4658 * listener functions/ids. The API is designed this way to discourage these 4659 * propagation strategies from actually executing the dispatches, since we 4660 * always want to collect the entire set of dispatches before executing event a 4661 * single one. 4662 * 4663 * @constructor EventPropagators 4664 */ 4665var EventPropagators = { 4666 accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, 4667 accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, 4668 accumulateDirectDispatches: accumulateDirectDispatches, 4669 accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches 4670}; 4671 4672module.exports = EventPropagators; 4673/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 4674 4675/***/ }), 4676/* 77 */ 4677/***/ (function(module, exports, __webpack_require__) { 4678 4679"use strict"; 4680/* WEBPACK VAR INJECTION */(function(process) {/** 4681 * Copyright (c) 2013-present, Facebook, Inc. 4682 * 4683 * This source code is licensed under the MIT license found in the 4684 * LICENSE file in the root directory of this source tree. 4685 * 4686 */ 4687 4688 4689 4690var _prodInvariant = __webpack_require__(8); 4691 4692var EventPluginRegistry = __webpack_require__(99); 4693var EventPluginUtils = __webpack_require__(137); 4694var ReactErrorUtils = __webpack_require__(138); 4695 4696var accumulateInto = __webpack_require__(196); 4697var forEachAccumulated = __webpack_require__(197); 4698var invariant = __webpack_require__(2); 4699 4700/** 4701 * Internal store for event listeners 4702 */ 4703var listenerBank = {}; 4704 4705/** 4706 * Internal queue of events that have accumulated their dispatches and are 4707 * waiting to have their dispatches executed. 4708 */ 4709var eventQueue = null; 4710 4711/** 4712 * Dispatches an event and releases it back into the pool, unless persistent. 4713 * 4714 * @param {?object} event Synthetic event to be dispatched. 4715 * @param {boolean} simulated If the event is simulated (changes exn behavior) 4716 * @private 4717 */ 4718var executeDispatchesAndRelease = function (event, simulated) { 4719 if (event) { 4720 EventPluginUtils.executeDispatchesInOrder(event, simulated); 4721
4722 if (!event.isPersistent()) { 4723 event.constructor.release(event); 4724 } 4725 } 4726}; 4727var executeDispatchesAndReleaseSimulated = function (e) { 4728 return executeDispatchesAndRelease(e, true); 4729}; 4730var executeDispatchesAndReleaseTopLevel = function (e) { 4731 return executeDispatchesAndRelease(e, false); 4732}; 4733 4734var getDictionaryKey = function (inst) { 4735 // Prevents V8 performance issue: 4736 // https://github.com/facebook/react/pull/7232 4737 return '.' + inst._rootNodeID; 4738}; 4739 4740function isInteractive(tag) { 4741 return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; 4742} 4743 4744function shouldPreventMouseEvent(name, type, props) { 4745 switch (name) { 4746 case 'onClick': 4747 case 'onClickCapture': 4748 case 'onDoubleClick': 4749 case 'onDoubleClickCapture': 4750 case 'onMouseDown': 4751 case 'onMouseDownCapture': 4752 case 'onMouseMove': 4753 case 'onMouseMoveCapture': 4754 case 'onMouseUp': 4755 case 'onMouseUpCapture': 4756 return !!(props.disabled && isInteractive(type)); 4757 default: 4758 return false; 4759 } 4760} 4761 4762/** 4763 * This is a unified interface for event plugins to be installed and configured. 4764 * 4765 * Event plugins can implement the following properties: 4766 * 4767 * `extractEvents` {function(string, DOMEventTarget, string, object): *} 4768 * Required. When a top-level event is fired, this method is expected to 4769 * extract synthetic events that will in turn be queued and dispatched. 4770 * 4771 * `eventTypes` {object} 4772 * Optional, plugins that fire events must publish a mapping of registration 4773 * names that are used to register listeners. Values of this mapping must 4774 * be objects that contain `registrationName` or `phasedRegistrationNames`. 4775 * 4776 * `executeDispatch` {function(object, function, string)} 4777 * Optional, allows plugins to override how an event gets dispatched. By 4778 * default, the listener is simply invoked. 4779 * 4780 * Each plugin that is injected into `EventsPluginHub` is immediately operable. 4781 * 4782 * @public 4783 */ 4784var EventPluginHub = { 4785 /** 4786 * Methods for injecting dependencies. 4787 */ 4788 injection: { 4789 /** 4790 * @param {array} InjectedEventPluginOrder 4791 * @public 4792 */ 4793 injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, 4794 4795 /** 4796 * @param {object} injectedNamesToPlugins Map from names to plugin modules. 4797 */ 4798 injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName 4799 }, 4800 4801 /** 4802 * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent. 4803 * 4804 * @param {object} inst The instance, which is the source of events. 4805 * @param {string} registrationName Name of listener (e.g. `onClick`). 4806 * @param {function} listener The callback to store. 4807 */ 4808 putListener: function (inst, registrationName, listener) { 4809 !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0; 4810 4811 var key = getDictionaryKey(inst); 4812 var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); 4813 bankForRegistrationName[key] = listener; 4814 4815 var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; 4816 if (PluginModule && PluginModule.didPutListener) { 4817 PluginModule.didPutListener(inst, registrationName, listener); 4818 } 4819 }, 4820 4821 /** 4822 * @param {object} inst The instance, which is the source of events. 4823 * @param {string} registrationName Name of listener (e.g. `onClick`). 4824 * @return {?function} The stored callback. 4825 */ 4826 getListener: function (inst, registrationName) { 4827 // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not 4828 // live here; needs to be moved to a better place soon 4829 var bankForRegistrationName = listenerBank[registrationName]; 4830 if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) { 4831 return null; 4832 } 4833 var key = getDictionaryKey(inst); 4834 return bankForRegistrationName && bankForRegistrationName[key]; 4835 }, 4836 4837 /** 4838 * Deletes a listener from the registration bank. 4839 * 4840 * @param {object} inst The instance, which is the source of events. 4841 * @param {string} registrationName Name of listener (e.g. `onClick`). 4842 */ 4843 deleteListener: function (inst, registrationName) { 4844 var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; 4845 if (PluginModule && PluginModule.willDeleteListener) { 4846 PluginModule.willDeleteListener(inst, registrationName); 4847 } 4848 4849 var bankForRegistrationName = listenerBank[registrationName]; 4850 // TODO: This should never be null -- when is it? 4851 if (bankForRegistrationName) { 4852 var key = getDictionaryKey(inst); 4853 delete bankForRegistrationName[key]; 4854 } 4855 }, 4856 4857 /** 4858 * Deletes all listeners for the DOM element with the supplied ID. 4859 * 4860 * @param {object} inst The instance, which is the source of events. 4861 */ 4862 deleteAllListeners: function (inst) { 4863 var key = getDictionaryKey(inst); 4864 for (var registrationName in listenerBank) { 4865 if (!listenerBank.hasOwnProperty(registrationName)) { 4866 continue; 4867 } 4868 4869 if (!listenerBank[registrationName][key]) { 4870 continue; 4871 } 4872 4873 var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; 4874 if (PluginModule && PluginModule.willDeleteListener) { 4875 PluginModule.willDeleteListener(inst, registrationName); 4876 } 4877 4878 delete listenerBank[registrationName][key]; 4879 } 4880 }, 4881 4882 /** 4883 * Allows registered plugins an opportunity to extract events from top-level 4884 * native browser events. 4885 * 4886 * @return {*} An accumulation of synthetic events. 4887 * @internal 4888 */ 4889 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 4890 var events; 4891 var plugins = EventPluginRegistry.plugins; 4892 for (var i = 0; i < plugins.length; i++) { 4893 // Not every plugin in the ordering may be loaded at runtime. 4894 var possiblePlugin = plugins[i]; 4895 if (possiblePlugin) { 4896 var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); 4897 if (extractedEvents) { 4898 events = accumulateInto(events, extractedEvents); 4899 } 4900 } 4901 } 4902 return events; 4903 }, 4904 4905 /** 4906 * Enqueues a synthetic event that should be dispatched when 4907 * `processEventQueue` is invoked. 4908 * 4909 * @param {*} events An accumulation of synthetic events. 4910 * @internal 4911 */ 4912 enqueueEvents: function (events) { 4913 if (events) { 4914 eventQueue = accumulateInto(eventQueue, events); 4915 } 4916 }, 4917 4918 /** 4919 * Dispatches all synthetic events on the event queue. 4920 * 4921 * @internal 4922 */ 4923 processEventQueue: function (simulated) { 4924 // Set `eventQueue` to null before processing it so that we can tell if more
4925 // events get enqueued while processing. 4926 var processingEventQueue = eventQueue; 4927 eventQueue = null; 4928 if (simulated) { 4929 forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); 4930 } else { 4931 forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); 4932 } 4933 !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; 4934 // This would be a good time to rethrow if any of the event handlers threw. 4935 ReactErrorUtils.rethrowCaughtError(); 4936 }, 4937 4938 /** 4939 * These are needed for tests only. Do not use! 4940 */ 4941 __purge: function () { 4942 listenerBank = {}; 4943 }, 4944 4945 __getListenerBank: function () { 4946 return listenerBank; 4947 } 4948}; 4949 4950module.exports = EventPluginHub; 4951/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 4952 4953/***/ }), 4954/* 78 */ 4955/***/ (function(module, exports, __webpack_require__) { 4956 4957"use strict"; 4958/** 4959 * Copyright (c) 2013-present, Facebook, Inc. 4960 * 4961 * This source code is licensed under the MIT license found in the 4962 * LICENSE file in the root directory of this source tree. 4963 * 4964 */ 4965 4966 4967 4968var SyntheticEvent = __webpack_require__(43); 4969 4970var getEventTarget = __webpack_require__(139); 4971 4972/** 4973 * @interface UIEvent 4974 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 4975 */ 4976var UIEventInterface = { 4977 view: function (event) { 4978 if (event.view) { 4979 return event.view; 4980 } 4981 4982 var target = getEventTarget(event); 4983 if (target.window === target) { 4984 // target is a window object 4985 return target; 4986 } 4987 4988 var doc = target.ownerDocument; 4989 // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. 4990 if (doc) { 4991 return doc.defaultView || doc.parentWindow; 4992 } else { 4993 return window; 4994 } 4995 }, 4996 detail: function (event) { 4997 return event.detail || 0; 4998 } 4999}; 5000 5001/** 5002 * @param {object} dispatchConfig Configuration used to dispatch this event. 5003 * @param {string} dispatchMarker Marker identifying the event target. 5004 * @param {object} nativeEvent Native browser event. 5005 * @extends {SyntheticEvent} 5006 */ 5007function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 5008 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 5009} 5010 5011SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); 5012 5013module.exports = SyntheticUIEvent; 5014 5015/***/ }), 5016/* 79 */ 5017/***/ (function(module, exports, __webpack_require__) { 5018 5019"use strict"; 5020/** 5021 * Copyright (c) 2013-present, Facebook, Inc. 5022 * 5023 * This source code is licensed under the MIT license found in the 5024 * LICENSE file in the root directory of this source tree. 5025 * 5026 */ 5027 5028 5029 5030/** 5031 * `ReactInstanceMap` maintains a mapping from a public facing stateful 5032 * instance (key) and the internal representation (value). This allows public 5033 * methods to accept the user facing instance as an argument and map them back 5034 * to internal methods. 5035 */ 5036 5037// TODO: Replace this with ES6: var ReactInstanceMap = new Map(); 5038 5039var ReactInstanceMap = { 5040 /** 5041 * This API should be called `delete` but we'd have to make sure to always 5042 * transform these to strings for IE support. When this transform is fully 5043 * supported we can rename it. 5044 */ 5045 remove: function (key) { 5046 key._reactInternalInstance = undefined; 5047 }, 5048 5049 get: function (key) { 5050 return key._reactInternalInstance; 5051 }, 5052 5053 has: function (key) { 5054 return key._reactInternalInstance !== undefined; 5055 }, 5056 5057 set: function (key, value) { 5058 key._reactInternalInstance = value; 5059 } 5060}; 5061 5062module.exports = ReactInstanceMap; 5063 5064/***/ }), 5065/* 80 */ 5066/***/ (function(module, exports) { 5067 5068if (typeof Object.create === 'function') { 5069 // implementation from standard node.js 'util' module 5070 module.exports = function inherits(ctor, superCtor) { 5071 ctor.super_ = superCtor 5072 ctor.prototype = Object.create(superCtor.prototype, { 5073 constructor: { 5074 value: ctor, 5075 enumerable: false, 5076 writable: true, 5077 configurable: true 5078 } 5079 }); 5080 }; 5081} else { 5082 // old school shim for old browsers 5083 module.exports = function inherits(ctor, superCtor) { 5084 ctor.super_ = superCtor 5085 var TempCtor = function () {} 5086 TempCtor.prototype = superCtor.prototype 5087 ctor.prototype = new TempCtor() 5088 ctor.prototype.constructor = ctor 5089 } 5090} 5091 5092 5093/***/ }), 5094/* 81 */ 5095/***/ (function(module, exports, __webpack_require__) { 5096 5097/* WEBPACK VAR INJECTION */(function(process) {/** 5098 * This is the web browser implementation of `debug()`. 5099 * 5100 * Expose `debug()` as the module. 5101 */ 5102 5103exports = module.exports = __webpack_require__(545); 5104exports.log = log; 5105exports.formatArgs = formatArgs; 5106exports.save = save; 5107exports.load = load; 5108exports.useColors = useColors; 5109exports.storage = 'undefined' != typeof chrome 5110 && 'undefined' != typeof chrome.storage 5111 ? chrome.storage.local 5112 : localstorage(); 5113 5114/** 5115 * Colors. 5116 */ 5117 5118exports.colors = [ 5119 'lightseagreen', 5120 'forestgreen', 5121 'goldenrod', 5122 'dodgerblue', 5123 'darkorchid', 5124 'crimson' 5125]; 5126 5127/** 5128 * Currently only WebKit-based Web Inspectors, Firefox >= v31, 5129 * and the Firebug extension (any Firefox version) are known 5130 * to support "%c" CSS customizations. 5131 * 5132 * TODO: add a `localStorage` variable to explicitly enable/disable colors 5133 */ 5134 5135function useColors() { 5136 // NB: In an Electron preload script, document will be defined but not fully
vendor: 4,544 bytes, lines 5137-5309
5137 // initialized. Since we know we're in Chrome, we'll just detect this case 5138 // explicitly 5139 if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { 5140 return true; 5141 } 5142 5143 // is webkit? http://stackoverflow.com/a/16459606/376773 5144 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 5145 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || 5146 // is firebug? http://stackoverflow.com/a/398120/376773 5147 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || 5148 // is firefox >= v31? 5149 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages 5150 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || 5151 // double check webkit in userAgent just in case we are in a worker 5152 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); 5153} 5154 5155/** 5156 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. 5157 */ 5158 5159exports.formatters.j = function(v) { 5160 try { 5161 return JSON.stringify(v); 5162 } catch (err) { 5163 return '[UnexpectedJSONParseError]: ' + err.message; 5164 } 5165}; 5166 5167 5168/** 5169 * Colorize log arguments if enabled. 5170 * 5171 * @api public 5172 */ 5173 5174function formatArgs(args) { 5175 var useColors = this.useColors; 5176 5177 args[0] = (useColors ? '%c' : '') 5178 + this.namespace 5179 + (useColors ? ' %c' : ' ') 5180 + args[0] 5181 + (useColors ? '%c ' : ' ') 5182 + '+' + exports.humanize(this.diff); 5183 5184 if (!useColors) return; 5185 5186 var c = 'color: ' + this.color; 5187 args.splice(1, 0, c, 'color: inherit') 5188 5189 // the final "%c" is somewhat tricky, because there could be other 5190 // arguments passed either before or after the %c, so we need to 5191 // figure out the correct index to insert the CSS into 5192 var index = 0; 5193 var lastC = 0; 5194 args[0].replace(/%[a-zA-Z%]/g, function(match) { 5195 if ('%%' === match) return; 5196 index++; 5197 if ('%c' === match) { 5198 // we only are interested in the *last* %c 5199 // (the user may have provided their own) 5200 lastC = index; 5201 } 5202 }); 5203 5204 args.splice(lastC, 0, c); 5205} 5206 5207/** 5208 * Invokes `console.log()` when available. 5209 * No-op when `console.log` is not a "function". 5210 * 5211 * @api public 5212 */ 5213 5214function log() { 5215 // this hackery is required for IE8/9, where 5216 // the `console.log` function doesn't have 'apply' 5217 return 'object' === typeof console 5218 && console.log 5219 && Function.prototype.apply.call(console.log, console, arguments); 5220} 5221 5222/** 5223 * Save `namespaces`. 5224 * 5225 * @param {String} namespaces 5226 * @api private 5227 */ 5228 5229function save(namespaces) { 5230 try { 5231 if (null == namespaces) { 5232 exports.storage.removeItem('debug'); 5233 } else { 5234 exports.storage.debug = namespaces; 5235 } 5236 } catch(e) {} 5237} 5238 5239/** 5240 * Load `namespaces`. 5241 * 5242 * @return {String} returns the previously persisted debug modes 5243 * @api private 5244 */ 5245 5246function load() { 5247 var r; 5248 try { 5249 r = exports.storage.debug; 5250 } catch(e) {} 5251 5252 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG 5253 if (!r && typeof process !== 'undefined' && 'env' in process) { 5254 r = process.env.DEBUG; 5255 } 5256 5257 return r; 5258} 5259 5260/** 5261 * Enable namespaces listed in `localStorage.debug` initially. 5262 */ 5263 5264exports.enable(load()); 5265 5266/** 5267 * Localstorage attempts to return the localstorage. 5268 * 5269 * This is necessary because safari throws 5270 * when a user disables cookies/localstorage 5271 * and you attempt to access it. 5272 * 5273 * @return {LocalStorage} 5274 * @api private 5275 */ 5276 5277function localstorage() { 5278 try { 5279 return window.localStorage; 5280 } catch (e) {} 5281} 5282 5283/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 5284 5285/***/ }), 5286/* 82 */ 5287/***/ (function(module, exports, __webpack_require__) { 5288 5289var core = __webpack_require__(18); 5290var global = __webpack_require__(5); 5291var SHARED = '__core-js_shared__'; 5292var store = global[SHARED] || (global[SHARED] = {}); 5293 5294(module.exports = function (key, value) { 5295 return store[key] || (store[key] = value !== undefined ? value : {}); 5296})('versions', []).push({ 5297 version: core.version, 5298 mode: __webpack_require__(44) ? 'pure' : 'global', 5299 copyright: '© 2018 Denis Pushkarev (zloirock.ru)' 5300}); 5301 5302 5303/***/ }), 5304/* 83 */ 5305/***/ (function(module, exports, __webpack_require__) { 5306 5307// false -> Array#indexOf 5308// true -> Array#includes 5309var toIObject = __webpack_require__(25);
vendor: 4,353 bytes, lines 5310-5429
5310var toLength = __webpack_require__(13); 5311var toAbsoluteIndex = __webpack_require__(53); 5312module.exports = function (IS_INCLUDES) { 5313 return function ($this, el, fromIndex) { 5314 var O = toIObject($this); 5315 var length = toLength(O.length); 5316 var index = toAbsoluteIndex(fromIndex, length); 5317 var value; 5318 // Array#includes uses SameValueZero equality algorithm 5319 // eslint-disable-next-line no-self-compare 5320 if (IS_INCLUDES && el != el) while (length > index) { 5321 value = O[index++]; 5322 // eslint-disable-next-line no-self-compare 5323 if (value != value) return true; 5324 // Array#indexOf ignores holes, Array#includes - not 5325 } else for (;length > index; index++) if (IS_INCLUDES || index in O) { 5326 if (O[index] === el) return IS_INCLUDES || index || 0; 5327 } return !IS_INCLUDES && -1; 5328 }; 5329}; 5330 5331 5332/***/ }), 5333/* 84 */ 5334/***/ (function(module, exports, __webpack_require__) { 5335 5336"use strict"; 5337 5338var global = __webpack_require__(5); 5339var $export = __webpack_require__(0); 5340var redefine = __webpack_require__(19); 5341var redefineAll = __webpack_require__(54); 5342var meta = __webpack_require__(46); 5343var forOf = __webpack_require__(56); 5344var anInstance = __webpack_require__(55); 5345var isObject = __webpack_require__(7); 5346var fails = __webpack_require__(6); 5347var $iterDetect = __webpack_require__(85); 5348var setToStringTag = __webpack_require__(62); 5349var inheritIfRequired = __webpack_require__(119); 5350 5351module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 5352 var Base = global[NAME]; 5353 var C = Base; 5354 var ADDER = IS_MAP ? 'set' : 'add'; 5355 var proto = C && C.prototype; 5356 var O = {}; 5357 var fixMethod = function (KEY) { 5358 var fn = proto[KEY]; 5359 redefine(proto, KEY, 5360 KEY == 'delete' ? function (a) { 5361 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 5362 } : KEY == 'has' ? function has(a) { 5363 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 5364 } : KEY == 'get' ? function get(a) { 5365 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 5366 } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } 5367 : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } 5368 ); 5369 }; 5370 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 5371 new C().entries().next(); 5372 }))) { 5373 // create collection constructor 5374 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 5375 redefineAll(C.prototype, methods); 5376 meta.NEED = true; 5377 } else { 5378 var instance = new C(); 5379 // early implementations not supports chaining 5380 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 5381 // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false 5382 var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); 5383 // most early implementations doesn't supports iterables, most modern - not close it correctly 5384 var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new 5385 // for early implementations -0 and +0 not the same 5386 var BUGGY_ZERO = !IS_WEAK && fails(function () { 5387 // V8 ~ Chromium 42- fails only with 5+ elements 5388 var $instance = new C(); 5389 var index = 5; 5390 while (index--) $instance[ADDER](index, index); 5391 return !$instance.has(-0); 5392 }); 5393 if (!ACCEPT_ITERABLES) { 5394 C = wrapper(function (target, iterable) { 5395 anInstance(target, C, NAME); 5396 var that = inheritIfRequired(new Base(), target, C); 5397 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 5398 return that; 5399 }); 5400 C.prototype = proto; 5401 proto.constructor = C; 5402 } 5403 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 5404 fixMethod('delete'); 5405 fixMethod('has'); 5406 IS_MAP && fixMethod('get'); 5407 } 5408 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 5409 // weak collections should not contains .clear method 5410 if (IS_WEAK && proto.clear) delete proto.clear; 5411 } 5412 5413 setToStringTag(C, NAME); 5414 5415 O[NAME] = C; 5416 $export($export.G + $export.W + $export.F * (C != Base), O); 5417 5418 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 5419 5420 return C; 5421}; 5422 5423 5424/***/ }), 5425/* 85 */ 5426/***/ (function(module, exports, __webpack_require__) { 5427 5428var ITERATOR = __webpack_require__(9)('iterator'); 5429var SAFE_CLOSING = false;
vendor: 4,751 bytes, lines 5430-5620
5430 5431try { 5432 var riter = [7][ITERATOR](); 5433 riter['return'] = function () { SAFE_CLOSING = true; }; 5434 // eslint-disable-next-line no-throw-literal 5435 Array.from(riter, function () { throw 2; }); 5436} catch (e) { /* empty */ } 5437 5438module.exports = function (exec, skipClosing) { 5439 if (!skipClosing && !SAFE_CLOSING) return false; 5440 var safe = false; 5441 try { 5442 var arr = [7]; 5443 var iter = arr[ITERATOR](); 5444 iter.next = function () { return { done: safe = true }; }; 5445 arr[ITERATOR] = function () { return iter; }; 5446 exec(arr); 5447 } catch (e) { /* empty */ } 5448 return safe; 5449}; 5450 5451 5452/***/ }), 5453/* 86 */ 5454/***/ (function(module, exports) { 5455 5456exports.f = Object.getOwnPropertySymbols; 5457 5458 5459/***/ }), 5460/* 87 */ 5461/***/ (function(module, exports, __webpack_require__) { 5462 5463// 7.2.2 IsArray(argument) 5464var cof = __webpack_require__(29); 5465module.exports = Array.isArray || function isArray(arg) { 5466 return cof(arg) == 'Array'; 5467}; 5468 5469 5470/***/ }), 5471/* 88 */ 5472/***/ (function(module, exports, __webpack_require__) { 5473 5474// 7.2.8 IsRegExp(argument) 5475var isObject = __webpack_require__(7); 5476var cof = __webpack_require__(29); 5477var MATCH = __webpack_require__(9)('match'); 5478module.exports = function (it) { 5479 var isRegExp; 5480 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 5481}; 5482 5483 5484/***/ }), 5485/* 89 */ 5486/***/ (function(module, exports, __webpack_require__) { 5487 5488"use strict"; 5489 5490// 21.2.5.3 get RegExp.prototype.flags 5491var anObject = __webpack_require__(4); 5492module.exports = function () { 5493 var that = anObject(this); 5494 var result = ''; 5495 if (that.global) result += 'g'; 5496 if (that.ignoreCase) result += 'i'; 5497 if (that.multiline) result += 'm'; 5498 if (that.unicode) result += 'u'; 5499 if (that.sticky) result += 'y'; 5500 return result; 5501}; 5502 5503 5504/***/ }), 5505/* 90 */ 5506/***/ (function(module, exports, __webpack_require__) { 5507 5508"use strict"; 5509 5510var hide = __webpack_require__(20); 5511var redefine = __webpack_require__(19); 5512var fails = __webpack_require__(6); 5513var defined = __webpack_require__(35); 5514var wks = __webpack_require__(9); 5515 5516module.exports = function (KEY, length, exec) { 5517 var SYMBOL = wks(KEY); 5518 var fns = exec(defined, SYMBOL, ''[KEY]); 5519 var strfn = fns[0]; 5520 var rxfn = fns[1]; 5521 if (fails(function () { 5522 var O = {}; 5523 O[SYMBOL] = function () { return 7; }; 5524 return ''[KEY](O) != 7; 5525 })) { 5526 redefine(String.prototype, KEY, strfn); 5527 hide(RegExp.prototype, SYMBOL, length == 2 5528 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) 5529 // 21.2.5.11 RegExp.prototype[@@split](string, limit) 5530 ? function (string, arg) { return rxfn.call(string, this, arg); } 5531 // 21.2.5.6 RegExp.prototype[@@match](string) 5532 // 21.2.5.9 RegExp.prototype[@@search](string) 5533 : function (string) { return rxfn.call(string, this); } 5534 ); 5535 } 5536}; 5537 5538 5539/***/ }), 5540/* 91 */ 5541/***/ (function(module, exports, __webpack_require__) { 5542 5543// 7.3.20 SpeciesConstructor(O, defaultConstructor) 5544var anObject = __webpack_require__(4); 5545var aFunction = __webpack_require__(17); 5546var SPECIES = __webpack_require__(9)('species'); 5547module.exports = function (O, D) { 5548 var C = anObject(O).constructor; 5549 var S; 5550 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 5551}; 5552 5553 5554/***/ }), 5555/* 92 */ 5556/***/ (function(module, exports, __webpack_require__) { 5557 5558var global = __webpack_require__(5); 5559var navigator = global.navigator; 5560 5561module.exports = navigator && navigator.userAgent || ''; 5562 5563 5564/***/ }), 5565/* 93 */ 5566/***/ (function(module, exports, __webpack_require__) { 5567 5568var global = __webpack_require__(5); 5569var hide = __webpack_require__(20); 5570var uid = __webpack_require__(49); 5571var TYPED = uid('typed_array'); 5572var VIEW = uid('view'); 5573var ABV = !!(global.ArrayBuffer && global.DataView); 5574var CONSTR = ABV; 5575var i = 0; 5576var l = 9; 5577var Typed; 5578 5579var TypedArrayConstructors = ( 5580 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' 5581).split(','); 5582 5583while (i < l) { 5584 if (Typed = global[TypedArrayConstructors[i++]]) { 5585 hide(Typed.prototype, TYPED, true); 5586 hide(Typed.prototype, VIEW, true); 5587 } else CONSTR = false; 5588} 5589 5590module.exports = { 5591 ABV: ABV, 5592 CONSTR: CONSTR, 5593 TYPED: TYPED, 5594 VIEW: VIEW 5595}; 5596 5597 5598/***/ }), 5599/* 94 */ 5600/***/ (function(module, exports, __webpack_require__) { 5601 5602"use strict"; 5603 5604// Forced replacement prototype accessors methods 5605module.exports = __webpack_require__(44) || !__webpack_require__(6)(function () { 5606 var K = Math.random(); 5607 // In FF throws only define methods 5608 // eslint-disable-next-line no-undef, no-useless-call 5609 __defineSetter__.call(null, K, function () { /* empty */ }); 5610 delete __webpack_require__(5)[K]; 5611}); 5612 5613 5614/***/ }), 5615/* 95 */ 5616/***/ (function(module, exports, __webpack_require__) { 5617 5618"use strict"; 5619 5620// https://tc39.github.io/proposal-setmap-offrom/
5621var $export = __webpack_require__(0); 5622 5623module.exports = function (COLLECTION) { 5624 $export($export.S, COLLECTION, { of: function of() { 5625 var length = arguments.length; 5626 var A = new Array(length); 5627 while (length--) A[length] = arguments[length]; 5628 return new this(A); 5629 } }); 5630}; 5631 5632 5633/***/ }), 5634/* 96 */ 5635/***/ (function(module, exports, __webpack_require__) { 5636 5637"use strict"; 5638 5639// https://tc39.github.io/proposal-setmap-offrom/ 5640var $export = __webpack_require__(0); 5641var aFunction = __webpack_require__(17); 5642var ctx = __webpack_require__(30); 5643var forOf = __webpack_require__(56); 5644 5645module.exports = function (COLLECTION) { 5646 $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { 5647 var mapFn = arguments[1]; 5648 var mapping, A, n, cb; 5649 aFunction(this); 5650 mapping = mapFn !== undefined; 5651 if (mapping) aFunction(mapFn); 5652 if (source == undefined) return new this(); 5653 A = []; 5654 if (mapping) { 5655 n = 0; 5656 cb = ctx(mapFn, arguments[2], 2); 5657 forOf(source, false, function (nextItem) { 5658 A.push(cb(nextItem, n++)); 5659 }); 5660 } else { 5661 forOf(source, false, A.push, A); 5662 } 5663 return new this(A); 5664 } }); 5665}; 5666 5667 5668/***/ }), 5669/* 97 */ 5670/***/ (function(module, exports, __webpack_require__) { 5671 5672"use strict"; 5673/* WEBPACK VAR INJECTION */(function(process) {/** 5674 * Copyright (c) 2013-present, Facebook, Inc. 5675 * 5676 * This source code is licensed under the MIT license found in the 5677 * LICENSE file in the root directory of this source tree. 5678 * 5679 * 5680 */ 5681 5682 5683 5684var canDefineProperty = false; 5685if (process.env.NODE_ENV !== 'production') { 5686 try { 5687 // $FlowFixMe https://github.com/facebook/flow/issues/285 5688 Object.defineProperty({}, 'x', { get: function () {} }); 5689 canDefineProperty = true; 5690 } catch (x) { 5691 // IE will fail on defineProperty 5692 } 5693} 5694 5695module.exports = canDefineProperty; 5696/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 5697 5698/***/ }), 5699/* 98 */ 5700/***/ (function(module, exports, __webpack_require__) { 5701 5702"use strict"; 5703/* WEBPACK VAR INJECTION */(function(process) {/** 5704 * Copyright (c) 2013-present, Facebook, Inc. 5705 * 5706 * This source code is licensed under the MIT license found in the 5707 * LICENSE file in the root directory of this source tree. 5708 * 5709 */ 5710 5711 5712 5713var emptyObject = {}; 5714 5715if (process.env.NODE_ENV !== 'production') { 5716 Object.freeze(emptyObject); 5717} 5718 5719module.exports = emptyObject; 5720/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 5721 5722/***/ }), 5723/* 99 */ 5724/***/ (function(module, exports, __webpack_require__) { 5725 5726"use strict"; 5727/* WEBPACK VAR INJECTION */(function(process) {/** 5728 * Copyright (c) 2013-present, Facebook, Inc. 5729 * 5730 * This source code is licensed under the MIT license found in the 5731 * LICENSE file in the root directory of this source tree. 5732 * 5733 * 5734 */ 5735 5736 5737 5738var _prodInvariant = __webpack_require__(8); 5739 5740var invariant = __webpack_require__(2); 5741 5742/** 5743 * Injectable ordering of event plugins. 5744 */ 5745var eventPluginOrder = null; 5746 5747/** 5748 * Injectable mapping from names to event plugin modules. 5749 */ 5750var namesToPlugins = {}; 5751 5752/** 5753 * Recomputes the plugin list using the injected plugins and plugin ordering. 5754 * 5755 * @private 5756 */ 5757function recomputePluginOrdering() { 5758 if (!eventPluginOrder) { 5759 // Wait until an `eventPluginOrder` is injected. 5760 return; 5761 } 5762 for (var pluginName in namesToPlugins) { 5763 var pluginModule = namesToPlugins[pluginName]; 5764 var pluginIndex = eventPluginOrder.indexOf(pluginName); 5765 !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; 5766 if (EventPluginRegistry.plugins[pluginIndex]) { 5767 continue; 5768 } 5769 !pluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; 5770 EventPluginRegistry.plugins[pluginIndex] = pluginModule; 5771 var publishedEvents = pluginModule.eventTypes; 5772 for (var eventName in publishedEvents) { 5773 !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; 5774 } 5775 } 5776} 5777 5778/** 5779 * Publishes an event so that it can be dispatched by the supplied plugin. 5780 * 5781 * @param {object} dispatchConfig Dispatch configuration for the event. 5782 * @param {object} PluginModule Plugin publishing the event. 5783 * @return {boolean} True if the event was successfully published. 5784 * @private 5785 */ 5786function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { 5787 !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; 5788 EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; 5789
5790 var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; 5791 if (phasedRegistrationNames) { 5792 for (var phaseName in phasedRegistrationNames) { 5793 if (phasedRegistrationNames.hasOwnProperty(phaseName)) { 5794 var phasedRegistrationName = phasedRegistrationNames[phaseName]; 5795 publishRegistrationName(phasedRegistrationName, pluginModule, eventName); 5796 } 5797 } 5798 return true; 5799 } else if (dispatchConfig.registrationName) { 5800 publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); 5801 return true; 5802 } 5803 return false; 5804} 5805 5806/** 5807 * Publishes a registration name that is used to identify dispatched events and 5808 * can be used with `EventPluginHub.putListener` to register listeners. 5809 * 5810 * @param {string} registrationName Registration name to add. 5811 * @param {object} PluginModule Plugin publishing the event. 5812 * @private 5813 */ 5814function publishRegistrationName(registrationName, pluginModule, eventName) { 5815 !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; 5816 EventPluginRegistry.registrationNameModules[registrationName] = pluginModule; 5817 EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; 5818 5819 if (process.env.NODE_ENV !== 'production') { 5820 var lowerCasedName = registrationName.toLowerCase(); 5821 EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; 5822 5823 if (registrationName === 'onDoubleClick') { 5824 EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName; 5825 } 5826 } 5827} 5828 5829/** 5830 * Registers plugins so that they can extract and dispatch events. 5831 * 5832 * @see {EventPluginHub} 5833 */ 5834var EventPluginRegistry = { 5835 /** 5836 * Ordered list of injected plugins. 5837 */ 5838 plugins: [], 5839 5840 /** 5841 * Mapping from event name to dispatch config 5842 */ 5843 eventNameDispatchConfigs: {}, 5844 5845 /** 5846 * Mapping from registration name to plugin module 5847 */ 5848 registrationNameModules: {}, 5849 5850 /** 5851 * Mapping from registration name to event name 5852 */ 5853 registrationNameDependencies: {}, 5854 5855 /** 5856 * Mapping from lowercase registration names to the properly cased version, 5857 * used to warn in the case of missing event handlers. Available 5858 * only in __DEV__. 5859 * @type {Object} 5860 */ 5861 possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null, 5862 // Trust the developer to only use possibleRegistrationNames in __DEV__ 5863 5864 /** 5865 * Injects an ordering of plugins (by plugin name). This allows the ordering 5866 * to be decoupled from injection of the actual plugins so that ordering is 5867 * always deterministic regardless of packaging, on-the-fly injection, etc. 5868 * 5869 * @param {array} InjectedEventPluginOrder 5870 * @internal 5871 * @see {EventPluginHub.injection.injectEventPluginOrder} 5872 */ 5873 injectEventPluginOrder: function (injectedEventPluginOrder) { 5874 !!eventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; 5875 // Clone the ordering so it cannot be dynamically mutated. 5876 eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); 5877 recomputePluginOrdering(); 5878 }, 5879 5880 /** 5881 * Injects plugins to be used by `EventPluginHub`. The plugin names must be 5882 * in the ordering injected by `injectEventPluginOrder`. 5883 * 5884 * Plugins can be injected as part of page initialization or on-the-fly. 5885 * 5886 * @param {object} injectedNamesToPlugins Map from names to plugin modules. 5887 * @internal 5888 * @see {EventPluginHub.injection.injectEventPluginsByName} 5889 */ 5890 injectEventPluginsByName: function (injectedNamesToPlugins) { 5891 var isOrderingDirty = false; 5892 for (var pluginName in injectedNamesToPlugins) { 5893 if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { 5894 continue; 5895 } 5896 var pluginModule = injectedNamesToPlugins[pluginName]; 5897 if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { 5898 !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; 5899 namesToPlugins[pluginName] = pluginModule; 5900 isOrderingDirty = true; 5901 } 5902 } 5903 if (isOrderingDirty) { 5904 recomputePluginOrdering(); 5905 } 5906 }, 5907 5908 /** 5909 * Looks up the plugin for the supplied event. 5910 * 5911 * @param {object} event A synthetic event. 5912 * @return {?object} The plugin that created the supplied event. 5913 * @internal 5914 */ 5915 getPluginModuleForEvent: function (event) { 5916 var dispatchConfig = event.dispatchConfig;
5917 if (dispatchConfig.registrationName) { 5918 return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; 5919 } 5920 if (dispatchConfig.phasedRegistrationNames !== undefined) { 5921 // pulling phasedRegistrationNames out of dispatchConfig helps Flow see 5922 // that it is not undefined. 5923 var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; 5924 5925 for (var phase in phasedRegistrationNames) { 5926 if (!phasedRegistrationNames.hasOwnProperty(phase)) { 5927 continue; 5928 } 5929 var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]]; 5930 if (pluginModule) { 5931 return pluginModule; 5932 } 5933 } 5934 } 5935 return null; 5936 }, 5937 5938 /** 5939 * Exposed for unit testing. 5940 * @private 5941 */ 5942 _resetEventPlugins: function () { 5943 eventPluginOrder = null; 5944 for (var pluginName in namesToPlugins) { 5945 if (namesToPlugins.hasOwnProperty(pluginName)) { 5946 delete namesToPlugins[pluginName]; 5947 } 5948 } 5949 EventPluginRegistry.plugins.length = 0; 5950 5951 var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; 5952 for (var eventName in eventNameDispatchConfigs) { 5953 if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { 5954 delete eventNameDispatchConfigs[eventName]; 5955 } 5956 } 5957 5958 var registrationNameModules = EventPluginRegistry.registrationNameModules; 5959 for (var registrationName in registrationNameModules) { 5960 if (registrationNameModules.hasOwnProperty(registrationName)) { 5961 delete registrationNameModules[registrationName]; 5962 } 5963 } 5964 5965 if (process.env.NODE_ENV !== 'production') { 5966 var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; 5967 for (var lowerCasedName in possibleRegistrationNames) { 5968 if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { 5969 delete possibleRegistrationNames[lowerCasedName]; 5970 } 5971 } 5972 } 5973 } 5974}; 5975 5976module.exports = EventPluginRegistry; 5977/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 5978 5979/***/ }), 5980/* 100 */ 5981/***/ (function(module, exports, __webpack_require__) { 5982 5983"use strict"; 5984/* WEBPACK VAR INJECTION */(function(process) {/** 5985 * Copyright (c) 2013-present, Facebook, Inc. 5986 * 5987 * This source code is licensed under the MIT license found in the 5988 * LICENSE file in the root directory of this source tree. 5989 * 5990 * 5991 */ 5992 5993 5994 5995var _prodInvariant = __webpack_require__(8); 5996 5997var invariant = __webpack_require__(2); 5998 5999var OBSERVED_ERROR = {}; 6000 6001/** 6002 * `Transaction` creates a black box that is able to wrap any method such that 6003 * certain invariants are maintained before and after the method is invoked 6004 * (Even if an exception is thrown while invoking the wrapped method). Whoever 6005 * instantiates a transaction can provide enforcers of the invariants at 6006 * creation time. The `Transaction` class itself will supply one additional 6007 * automatic invariant for you - the invariant that any transaction instance 6008 * should not be run while it is already being run. You would typically create a 6009 * single instance of a `Transaction` for reuse multiple times, that potentially 6010 * is used to wrap several different methods. Wrappers are extremely simple - 6011 * they only require implementing two methods. 6012 * 6013 * <pre> 6014 * wrappers (injected at creation time) 6015 * + + 6016 * | | 6017 * +-----------------|--------|--------------+ 6018 * | v | | 6019 * | +---------------+ | | 6020 * | +--| wrapper1 |---|----+ | 6021 * | | +---------------+ v | | 6022 * | | +-------------+ | | 6023 * | | +----| wrapper2 |--------+ | 6024 * | | | +-------------+ | | | 6025 * | | | | | | 6026 * | v v v v | wrapper 6027 * | +---+ +---+ +---------+ +---+ +---+ | invariants 6028 * perform(anyMethod) | | | | | | | | | | | | maintained 6029 * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|--------> 6030 * | | | | | | | | | | | | 6031 * | | | | | | | | | | | | 6032 * | | | | | | | | | | | | 6033 * | +---+ +---+ +---------+ +---+ +---+ | 6034 * | initialize close | 6035 * +-----------------------------------------+ 6036 * </pre> 6037 * 6038 * Use cases: 6039 * - Preserving the input selection ranges before/after reconciliation. 6040 * Restoring selection even in the event of an unexpected error. 6041 * - Deactivating events while rearranging the DOM, preventing blurs/focuses, 6042 * while guaranteeing that afterwards, the event system is reactivated. 6043 * - Flushing a queue of collected DOM mutations to the main UI thread after a 6044 * reconciliation takes place in a worker thread. 6045 * - Invoking any collected `componentDidUpdate` callbacks after rendering new 6046 * content. 6047 * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue 6048 * to preserve the `scrollTop` (an automatic scroll aware DOM). 6049 * - (Future use case): Layout calculations before and after DOM updates. 6050 * 6051 * Transactional plugin API: 6052 * - A module that has an `initialize` method that returns any precomputation. 6053 * - and a `close` method that accepts the precomputation. `close` is invoked 6054 * when the wrapped process is completed, or has failed. 6055 * 6056 * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules 6057 * that implement `initialize` and `close`. 6058 * @return {Transaction} Single transaction for reuse in thread. 6059 * 6060 * @class Transaction 6061 */ 6062var TransactionImpl = { 6063 /** 6064 * Sets up this instance so that it is prepared for collecting metrics. Does 6065 * so such that this setup method may be used on an instance that is already 6066 * initialized, in a way that does not consume additional memory upon reuse. 6067 * That can be useful if you decide to make your subclass of this mixin a 6068 * "PooledClass". 6069 */ 6070 reinitializeTransaction: function () { 6071 this.transactionWrappers = this.getTransactionWrappers(); 6072 if (this.wrapperInitData) { 6073 this.wrapperInitData.length = 0; 6074 } else { 6075 this.wrapperInitData = []; 6076 } 6077 this._isInTransaction = false;
6078 }, 6079 6080 _isInTransaction: false, 6081 6082 /** 6083 * @abstract 6084 * @return {Array<TransactionWrapper>} Array of transaction wrappers. 6085 */ 6086 getTransactionWrappers: null, 6087 6088 isInTransaction: function () { 6089 return !!this._isInTransaction; 6090 }, 6091 6092 /* eslint-disable space-before-function-paren */ 6093 6094 /** 6095 * Executes the function within a safety window. Use this for the top level 6096 * methods that result in large amounts of computation/mutations that would 6097 * need to be safety checked. The optional arguments helps prevent the need 6098 * to bind in many cases. 6099 * 6100 * @param {function} method Member of scope to call. 6101 * @param {Object} scope Scope to invoke from. 6102 * @param {Object?=} a Argument to pass to the method. 6103 * @param {Object?=} b Argument to pass to the method. 6104 * @param {Object?=} c Argument to pass to the method. 6105 * @param {Object?=} d Argument to pass to the method. 6106 * @param {Object?=} e Argument to pass to the method. 6107 * @param {Object?=} f Argument to pass to the method. 6108 * 6109 * @return {*} Return value from `method`. 6110 */ 6111 perform: function (method, scope, a, b, c, d, e, f) { 6112 /* eslint-enable space-before-function-paren */ 6113 !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; 6114 var errorThrown; 6115 var ret; 6116 try { 6117 this._isInTransaction = true; 6118 // Catching errors makes debugging more difficult, so we start with 6119 // errorThrown set to true before setting it to false after calling 6120 // close -- if it's still set to true in the finally block, it means 6121 // one of these calls threw. 6122 errorThrown = true; 6123 this.initializeAll(0); 6124 ret = method.call(scope, a, b, c, d, e, f); 6125 errorThrown = false; 6126 } finally { 6127 try { 6128 if (errorThrown) { 6129 // If `method` throws, prefer to show that stack trace over any thrown 6130 // by invoking `closeAll`. 6131 try { 6132 this.closeAll(0); 6133 } catch (err) {} 6134 } else { 6135 // Since `method` didn't throw, we don't want to silence the exception 6136 // here. 6137 this.closeAll(0); 6138 } 6139 } finally { 6140 this._isInTransaction = false; 6141 } 6142 } 6143 return ret; 6144 }, 6145 6146 initializeAll: function (startIndex) { 6147 var transactionWrappers = this.transactionWrappers; 6148 for (var i = startIndex; i < transactionWrappers.length; i++) { 6149 var wrapper = transactionWrappers[i]; 6150 try { 6151 // Catching errors makes debugging more difficult, so we start with the 6152 // OBSERVED_ERROR state before overwriting it with the real return value 6153 // of initialize -- if it's still set to OBSERVED_ERROR in the finally 6154 // block, it means wrapper.initialize threw. 6155 this.wrapperInitData[i] = OBSERVED_ERROR; 6156 this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; 6157 } finally { 6158 if (this.wrapperInitData[i] === OBSERVED_ERROR) { 6159 // The initializer for wrapper i threw an error; initialize the 6160 // remaining wrappers but silence any exceptions from them to ensure 6161 // that the first error is the one to bubble up. 6162 try { 6163 this.initializeAll(i + 1); 6164 } catch (err) {} 6165 } 6166 } 6167 } 6168 }, 6169 6170 /** 6171 * Invokes each of `this.transactionWrappers.close[i]` functions, passing into 6172 * them the respective return values of `this.transactionWrappers.init[i]` 6173 * (`close`rs that correspond to initializers that failed will not be 6174 * invoked). 6175 */ 6176 closeAll: function (startIndex) { 6177 !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; 6178 var transactionWrappers = this.transactionWrappers; 6179 for (var i = startIndex; i < transactionWrappers.length; i++) { 6180 var wrapper = transactionWrappers[i]; 6181 var initData = this.wrapperInitData[i]; 6182 var errorThrown;
6183 try { 6184 // Catching errors makes debugging more difficult, so we start with 6185 // errorThrown set to true before setting it to false after calling 6186 // close -- if it's still set to true in the finally block, it means 6187 // wrapper.close threw. 6188 errorThrown = true; 6189 if (initData !== OBSERVED_ERROR && wrapper.close) { 6190 wrapper.close.call(this, initData); 6191 } 6192 errorThrown = false; 6193 } finally { 6194 if (errorThrown) { 6195 // The closer for wrapper i threw an error; close the remaining 6196 // wrappers but silence any exceptions from them to ensure that the 6197 // first error is the one to bubble up. 6198 try { 6199 this.closeAll(i + 1); 6200 } catch (e) {} 6201 } 6202 } 6203 } 6204 this.wrapperInitData.length = 0; 6205 } 6206}; 6207 6208module.exports = TransactionImpl; 6209/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 6210 6211/***/ }), 6212/* 101 */ 6213/***/ (function(module, exports, __webpack_require__) { 6214 6215"use strict"; 6216/** 6217 * Copyright (c) 2013-present, Facebook, Inc. 6218 * 6219 * This source code is licensed under the MIT license found in the 6220 * LICENSE file in the root directory of this source tree. 6221 * 6222 */ 6223 6224 6225 6226var SyntheticUIEvent = __webpack_require__(78); 6227var ViewportMetrics = __webpack_require__(203); 6228 6229var getEventModifierState = __webpack_require__(141); 6230 6231/** 6232 * @interface MouseEvent 6233 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 6234 */ 6235var MouseEventInterface = { 6236 screenX: null, 6237 screenY: null, 6238 clientX: null, 6239 clientY: null, 6240 ctrlKey: null, 6241 shiftKey: null, 6242 altKey: null, 6243 metaKey: null, 6244 getModifierState: getEventModifierState, 6245 button: function (event) { 6246 // Webkit, Firefox, IE9+ 6247 // which: 1 2 3 6248 // button: 0 1 2 (standard) 6249 var button = event.button; 6250 if ('which' in event) { 6251 return button; 6252 } 6253 // IE<9 6254 // which: undefined 6255 // button: 0 0 0 6256 // button: 1 4 2 (onmouseup) 6257 return button === 2 ? 2 : button === 4 ? 1 : 0; 6258 }, 6259 buttons: null, 6260 relatedTarget: function (event) { 6261 return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); 6262 }, 6263 // "Proprietary" Interface. 6264 pageX: function (event) { 6265 return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; 6266 }, 6267 pageY: function (event) { 6268 return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; 6269 } 6270}; 6271 6272/** 6273 * @param {object} dispatchConfig Configuration used to dispatch this event. 6274 * @param {string} dispatchMarker Marker identifying the event target. 6275 * @param {object} nativeEvent Native browser event. 6276 * @extends {SyntheticUIEvent} 6277 */ 6278function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 6279 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 6280} 6281 6282SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); 6283 6284module.exports = SyntheticMouseEvent; 6285 6286/***/ }), 6287/* 102 */ 6288/***/ (function(module, exports, __webpack_require__) { 6289 6290"use strict"; 6291/** 6292 * Copyright (c) 2013-present, Facebook, Inc. 6293 * 6294 * This source code is licensed under the MIT license found in the 6295 * LICENSE file in the root directory of this source tree. 6296 * 6297 */ 6298 6299 6300 6301var ExecutionEnvironment = __webpack_require__(16); 6302var DOMNamespaces = __webpack_require__(143); 6303 6304var WHITESPACE_TEST = /^[ \r\n\t\f]/; 6305var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; 6306 6307var createMicrosoftUnsafeLocalFunction = __webpack_require__(144); 6308 6309// SVG temp container for IE lacking innerHTML 6310var reusableSVGContainer; 6311 6312/** 6313 * Set the innerHTML property of a node, ensuring that whitespace is preserved 6314 * even in IE8. 6315 * 6316 * @param {DOMElement} node 6317 * @param {string} html 6318 * @internal 6319 */ 6320var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) { 6321 // IE does not have innerHTML for SVG nodes, so instead we inject the 6322 // new markup in a temp node and then move the child nodes across into 6323 // the target node 6324 if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {
6325 reusableSVGContainer = reusableSVGContainer || document.createElement('div'); 6326 reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>'; 6327 var svgNode = reusableSVGContainer.firstChild; 6328 while (svgNode.firstChild) { 6329 node.appendChild(svgNode.firstChild); 6330 } 6331 } else { 6332 node.innerHTML = html; 6333 } 6334}); 6335 6336if (ExecutionEnvironment.canUseDOM) { 6337 // IE8: When updating a just created node with innerHTML only leading 6338 // whitespace is removed. When updating an existing node with innerHTML 6339 // whitespace in root TextNodes is also collapsed. 6340 // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html 6341 6342 // Feature detection; only IE8 is known to behave improperly like this. 6343 var testElement = document.createElement('div'); 6344 testElement.innerHTML = ' '; 6345 if (testElement.innerHTML === '') { 6346 setInnerHTML = function (node, html) { 6347 // Magic theory: IE8 supposedly differentiates between added and updated 6348 // nodes when processing innerHTML, innerHTML on updated nodes suffers 6349 // from worse whitespace behavior. Re-adding a node like this triggers 6350 // the initial and more favorable whitespace behavior. 6351 // TODO: What to do on a detached node? 6352 if (node.parentNode) { 6353 node.parentNode.replaceChild(node, node); 6354 } 6355 6356 // We also implement a workaround for non-visible tags disappearing into 6357 // thin air on IE8, this only happens if there is no visible text 6358 // in-front of the non-visible tags. Piggyback on the whitespace fix 6359 // and simply check if any non-visible tags appear in the source. 6360 if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { 6361 // Recover leading whitespace by temporarily prepending any character. 6362 // \uFEFF has the potential advantage of being zero-width/invisible. 6363 // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode 6364 // in hopes that this is preserved even if "\uFEFF" is transformed to 6365 // the actual Unicode character (by Babel, for example). 6366 // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 6367 node.innerHTML = String.fromCharCode(0xfeff) + html; 6368 6369 // deleteData leaves an empty `TextNode` which offsets the index of all 6370 // children. Definitely want to avoid this. 6371 var textNode = node.firstChild; 6372 if (textNode.data.length === 1) { 6373 node.removeChild(textNode); 6374 } else { 6375 textNode.deleteData(0, 1); 6376 } 6377 } else { 6378 node.innerHTML = html; 6379 } 6380 }; 6381 } 6382 testElement = null; 6383} 6384 6385module.exports = setInnerHTML; 6386 6387/***/ }), 6388/* 103 */ 6389/***/ (function(module, exports, __webpack_require__) { 6390 6391"use strict"; 6392/** 6393 * Copyright (c) 2016-present, Facebook, Inc. 6394 * 6395 * This source code is licensed under the MIT license found in the 6396 * LICENSE file in the root directory of this source tree. 6397 * 6398 * Based on the escape-html library, which is used under the MIT License below: 6399 * 6400 * Copyright (c) 2012-2013 TJ Holowaychuk 6401 * Copyright (c) 2015 Andreas Lubbe 6402 * Copyright (c) 2015 Tiancheng "Timothy" Gu 6403 * 6404 * Permission is hereby granted, free of charge, to any person obtaining 6405 * a copy of this software and associated documentation files (the 6406 * 'Software'), to deal in the Software without restriction, including 6407 * without limitation the rights to use, copy, modify, merge, publish, 6408 * distribute, sublicense, and/or sell copies of the Software, and to 6409 * permit persons to whom the Software is furnished to do so, subject to 6410 * the following conditions: 6411 * 6412 * The above copyright notice and this permission notice shall be 6413 * included in all copies or substantial portions of the Software. 6414 * 6415 * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 6416 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 6417 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 6418 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 6419 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 6420 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 6421 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 6422 * 6423 */ 6424 6425 6426 6427// code copied and modified from escape-html 6428/** 6429 * Module variables. 6430 * @private 6431 */ 6432 6433var matchHtmlRegExp = /["'&<>]/; 6434 6435/** 6436 * Escape special characters in the given string of html. 6437 * 6438 * @param {string} string The string to escape for inserting into HTML 6439 * @return {string} 6440 * @public 6441 */ 6442 6443function escapeHtml(string) { 6444 var str = '' + string; 6445 var match = matchHtmlRegExp.exec(str); 6446 6447 if (!match) { 6448 return str; 6449 } 6450 6451 var escape; 6452 var html = ''; 6453 var index = 0; 6454 var lastIndex = 0; 6455 6456 for (index = match.index; index < str.length; index++) { 6457 switch (str.charCodeAt(index)) { 6458 case 34: 6459 // " 6460 escape = '"'; 6461 break; 6462 case 38: 6463 // & 6464 escape = '&'; 6465 break; 6466 case 39: 6467 // ' 6468 escape = '''; // modified from escape-html; used to be ''' 6469 break; 6470 case 60: 6471 // < 6472 escape = '<'; 6473 break; 6474 case 62: 6475 // > 6476 escape = '>'; 6477 break; 6478 default: 6479 continue; 6480 } 6481 6482 if (lastIndex !== index) { 6483 html += str.substring(lastIndex, index); 6484 } 6485 6486 lastIndex = index + 1; 6487 html += escape; 6488 } 6489 6490 return lastIndex !== index ? html + str.substring(lastIndex, index) : html; 6491} 6492// end code copied and modified from escape-html 6493 6494/** 6495 * Escapes text to prevent scripting attacks. 6496 * 6497 * @param {*} text Text value to escape. 6498 * @return {string} An escaped string. 6499 */ 6500function escapeTextContentForBrowser(text) { 6501 if (typeof text === 'boolean' || typeof text === 'number') {
6502 // this shortcircuit helps perf for types that we know will never have 6503 // special characters, especially given that this function is used often 6504 // for numeric dom ids. 6505 return '' + text; 6506 } 6507 return escapeHtml(text); 6508} 6509 6510module.exports = escapeTextContentForBrowser; 6511 6512/***/ }), 6513/* 104 */ 6514/***/ (function(module, exports, __webpack_require__) { 6515 6516"use strict"; 6517/** 6518 * Copyright (c) 2013-present, Facebook, Inc. 6519 * 6520 * This source code is licensed under the MIT license found in the 6521 * LICENSE file in the root directory of this source tree. 6522 * 6523 */ 6524 6525 6526 6527var _assign = __webpack_require__(10); 6528 6529var EventPluginRegistry = __webpack_require__(99); 6530var ReactEventEmitterMixin = __webpack_require__(483); 6531var ViewportMetrics = __webpack_require__(203); 6532 6533var getVendorPrefixedEventName = __webpack_require__(484); 6534var isEventSupported = __webpack_require__(140); 6535 6536/** 6537 * Summary of `ReactBrowserEventEmitter` event handling: 6538 * 6539 * - Top-level delegation is used to trap most native browser events. This 6540 * may only occur in the main thread and is the responsibility of 6541 * ReactEventListener, which is injected and can therefore support pluggable 6542 * event sources. This is the only work that occurs in the main thread. 6543 * 6544 * - We normalize and de-duplicate events to account for browser quirks. This 6545 * may be done in the worker thread. 6546 * 6547 * - Forward these native events (with the associated top-level type used to 6548 * trap it) to `EventPluginHub`, which in turn will ask plugins if they want 6549 * to extract any synthetic events. 6550 * 6551 * - The `EventPluginHub` will then process each event by annotating them with 6552 * "dispatches", a sequence of listeners and IDs that care about that event. 6553 * 6554 * - The `EventPluginHub` then dispatches the events. 6555 * 6556 * Overview of React and the event system: 6557 * 6558 * +------------+ . 6559 * | DOM | . 6560 * +------------+ . 6561 * | . 6562 * v . 6563 * +------------+ . 6564 * | ReactEvent | . 6565 * | Listener | . 6566 * +------------+ . +-----------+ 6567 * | . +--------+|SimpleEvent| 6568 * | . | |Plugin | 6569 * +-----|------+ . v +-----------+ 6570 * | | | . +--------------+ +------------+ 6571 * | +-----------.--->|EventPluginHub| | Event | 6572 * | | . | | +-----------+ | Propagators| 6573 * | ReactEvent | . | | |TapEvent | |------------| 6574 * | Emitter | . | |<---+|Plugin | |other plugin| 6575 * | | . | | +-----------+ | utilities | 6576 * | +-----------.--->| | +------------+ 6577 * | | | . +--------------+ 6578 * +-----|------+ . ^ +-----------+ 6579 * | . | |Enter/Leave| 6580 * + . +-------+|Plugin | 6581 * +-------------+ . +-----------+ 6582 * | application | . 6583 * |-------------| . 6584 * | | . 6585 * | | . 6586 * +-------------+ . 6587 * . 6588 * React Core . General Purpose Event Plugin System 6589 */ 6590 6591var hasEventPageXY; 6592var alreadyListeningTo = {}; 6593var isMonitoringScrollValue = false; 6594var reactTopListenersCounter = 0; 6595 6596// For events like 'submit' which don't consistently bubble (which we trap at a 6597// lower node than `document`), binding at `document` would cause duplicate 6598// events so we don't include them here 6599var topEventMapping = { 6600 topAbort: 'abort', 6601 topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend', 6602 topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration', 6603 topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart', 6604 topBlur: 'blur', 6605 topCanPlay: 'canplay', 6606 topCanPlayThrough: 'canplaythrough', 6607 topChange: 'change', 6608 topClick: 'click', 6609 topCompositionEnd: 'compositionend', 6610 topCompositionStart: 'compositionstart', 6611 topCompositionUpdate: 'compositionupdate', 6612 topContextMenu: 'contextmenu', 6613 topCopy: 'copy', 6614 topCut: 'cut', 6615 topDoubleClick: 'dblclick', 6616 topDrag: 'drag', 6617 topDragEnd: 'dragend', 6618 topDragEnter: 'dragenter', 6619 topDragExit: 'dragexit', 6620 topDragLeave: 'dragleave', 6621 topDragOver: 'dragover', 6622 topDragStart: 'dragstart', 6623 topDrop: 'drop', 6624 topDurationChange: 'durationchange', 6625 topEmptied: 'emptied', 6626 topEncrypted: 'encrypted', 6627 topEnded: 'ended', 6628 topError: 'error', 6629 topFocus: 'focus', 6630 topInput: 'input', 6631 topKeyDown: 'keydown', 6632 topKeyPress: 'keypress', 6633 topKeyUp: 'keyup', 6634 topLoadedData: 'loadeddata', 6635 topLoadedMetadata: 'loadedmetadata', 6636 topLoadStart: 'loadstart', 6637 topMouseDown: 'mousedown', 6638 topMouseMove: 'mousemove', 6639 topMouseOut: 'mouseout', 6640 topMouseOver: 'mouseover', 6641 topMouseUp: 'mouseup', 6642 topPaste: 'paste', 6643 topPause: 'pause', 6644 topPlay: 'play', 6645 topPlaying: 'playing', 6646 topProgress: 'progress', 6647 topRateChange: 'ratechange', 6648 topScroll: 'scroll', 6649 topSeeked: 'seeked', 6650 topSeeking: 'seeking', 6651 topSelectionChange: 'selectionchange', 6652 topStalled: 'stalled', 6653 topSuspend: 'suspend', 6654 topTextInput: 'textInput', 6655 topTimeUpdate: 'timeupdate', 6656 topTouchCancel: 'touchcancel', 6657 topTouchEnd: 'touchend', 6658 topTouchMove: 'touchmove', 6659 topTouchStart: 'touchstart', 6660 topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend', 6661 topVolumeChange: 'volumechange', 6662 topWaiting: 'waiting', 6663 topWheel: 'wheel' 6664}; 6665 6666/** 6667 * To ensure no conflicts with other potential React instances on the page 6668 */ 6669var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); 6670 6671function getListeningForDocument(mountAt) { 6672 // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` 6673 // directly. 6674 if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { 6675 mountAt[topListenersIDKey] = reactTopListenersCounter++; 6676 alreadyListeningTo[mountAt[topListenersIDKey]] = {}; 6677 } 6678 return alreadyListeningTo[mountAt[topListenersIDKey]]; 6679} 6680 6681/** 6682 * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For 6683 * example: 6684 * 6685 * EventPluginHub.putListener('myID', 'onClick', myFunction); 6686 * 6687 * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. 6688 * 6689 * @internal 6690 */ 6691var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { 6692 /** 6693 * Injectable event backend 6694 */ 6695 ReactEventListener: null, 6696 6697 injection: { 6698 /** 6699 * @param {object} ReactEventListener 6700 */ 6701 injectReactEventListener: function (ReactEventListener) { 6702 ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); 6703 ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; 6704 } 6705 }, 6706 6707 /** 6708 * Sets whether or not any created callbacks should be enabled. 6709 * 6710 * @param {boolean} enabled True if callbacks should be enabled. 6711 */ 6712 setEnabled: function (enabled) { 6713 if (ReactBrowserEventEmitter.ReactEventListener) { 6714 ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); 6715 } 6716 }, 6717 6718 /** 6719 * @return {boolean} True if callbacks are enabled. 6720 */ 6721 isEnabled: function () { 6722 return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); 6723 }, 6724 6725 /** 6726 * We listen for bubbled touch events on the document object. 6727 * 6728 * Firefox v8.01 (and possibly others) exhibited strange behavior when 6729 * mounting `onmousemove` events at some node that was not the document 6730 * element. The symptoms were that if your mouse is not moving over something 6731 * contained within that mount point (for example on the background) the 6732 * top-level listeners for `onmousemove` won't be called. However, if you 6733 * register the `mousemove` on the document object, then it will of course 6734 * catch all `mousemove`s. This along with iOS quirks, justifies restricting 6735 * top-level listeners to the document object only, at least for these 6736 * movement types of events and possibly all events. 6737 * 6738 * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html 6739 * 6740 * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but 6741 * they bubble to document. 6742 * 6743 * @param {string} registrationName Name of listener (e.g. `onClick`). 6744 * @param {object} contentDocumentHandle Document which owns the container 6745 */ 6746 listenTo: function (registrationName, contentDocumentHandle) { 6747 var mountAt = contentDocumentHandle; 6748 var isListening = getListeningForDocument(mountAt); 6749 var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; 6750 6751 for (var i = 0; i < dependencies.length; i++) {
6752 var dependency = dependencies[i]; 6753 if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { 6754 if (dependency === 'topWheel') { 6755 if (isEventSupported('wheel')) { 6756 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt); 6757 } else if (isEventSupported('mousewheel')) { 6758 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt); 6759 } else { 6760 // Firefox needs to capture a different mouse scroll event. 6761 // @see http://www.quirksmode.org/dom/events/tests/scroll.html 6762 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt); 6763 } 6764 } else if (dependency === 'topScroll') { 6765 if (isEventSupported('scroll', true)) { 6766 ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt); 6767 } else { 6768 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); 6769 } 6770 } else if (dependency === 'topFocus' || dependency === 'topBlur') { 6771 if (isEventSupported('focus', true)) { 6772 ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt); 6773 ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt); 6774 } else if (isEventSupported('focusin')) { 6775 // IE has `focusin` and `focusout` events which bubble. 6776 // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html 6777 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt); 6778 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt); 6779 } 6780 6781 // to make sure blur and focus event listeners are only attached once 6782 isListening.topBlur = true; 6783 isListening.topFocus = true; 6784 } else if (topEventMapping.hasOwnProperty(dependency)) { 6785 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); 6786 } 6787 6788 isListening[dependency] = true; 6789 } 6790 } 6791 }, 6792 6793 trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { 6794 return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); 6795 }, 6796 6797 trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { 6798 return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); 6799 }, 6800 6801 /** 6802 * Protect against document.createEvent() returning null 6803 * Some popup blocker extensions appear to do this: 6804 * https://github.com/facebook/react/issues/6887 6805 */ 6806 supportsEventPageXY: function () { 6807 if (!document.createEvent) { 6808 return false; 6809 } 6810 var ev = document.createEvent('MouseEvent'); 6811 return ev != null && 'pageX' in ev; 6812 }, 6813 6814 /** 6815 * Listens to window scroll and resize events. We cache scroll values so that 6816 * application code can access them without triggering reflows. 6817 * 6818 * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when 6819 * pageX/pageY isn't supported (legacy browsers). 6820 * 6821 * NOTE: Scroll events do not bubble. 6822 * 6823 * @see http://www.quirksmode.org/dom/events/scroll.html 6824 */ 6825 ensureScrollValueMonitoring: function () { 6826 if (hasEventPageXY === undefined) { 6827 hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY(); 6828 } 6829 if (!hasEventPageXY && !isMonitoringScrollValue) { 6830 var refresh = ViewportMetrics.refreshScrollValues; 6831 ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); 6832 isMonitoringScrollValue = true; 6833 } 6834 } 6835}); 6836 6837module.exports = ReactBrowserEventEmitter; 6838 6839/***/ }), 6840/* 105 */ 6841/***/ (function(module, exports, __webpack_require__) { 6842 6843"use strict"; 6844 6845// 19.1.3.6 Object.prototype.toString() 6846var classof = __webpack_require__(73); 6847var test = {}; 6848test[__webpack_require__(9)('toStringTag')] = 'z'; 6849if (test + '' != '[object z]') { 6850 __webpack_require__(19)(Object.prototype, 'toString', function toString() { 6851 return '[object ' + classof(this) + ']'; 6852 }, true); 6853} 6854 6855 6856/***/ }), 6857/* 106 */ 6858/***/ (function(module, exports, __webpack_require__) { 6859 6860var isObject = __webpack_require__(7); 6861var document = __webpack_require__(5).document; 6862// typeof document.createElement is 'object' in old IE 6863var is = isObject(document) && isObject(document.createElement); 6864module.exports = function (it) { 6865 return is ? document.createElement(it) : {}; 6866}; 6867 6868 6869/***/ }), 6870/* 107 */ 6871/***/ (function(module, exports, __webpack_require__) { 6872 6873"use strict"; 6874 6875var $at = __webpack_require__(108)(true); 6876 6877// 21.1.3.27 String.prototype[@@iterator]() 6878__webpack_require__(109)(String, 'String', function (iterated) { 6879 this._t = String(iterated); // target 6880 this._i = 0; // next index 6881// 21.1.5.2.1 %StringIteratorPrototype%.next() 6882}, function () { 6883 var O = this._t; 6884 var index = this._i; 6885 var point; 6886 if (index >= O.length) return { value: undefined, done: true }; 6887 point = $at(O, index); 6888 this._i += point.length; 6889 return { value: point, done: false }; 6890}); 6891 6892 6893/***/ }), 6894/* 108 */ 6895/***/ (function(module, exports, __webpack_require__) { 6896 6897var toInteger = __webpack_require__(34); 6898var defined = __webpack_require__(35); 6899// true -> String#at 6900// false ->
vendor: 4,166 bytes, lines 6900-7018
6900 String#codePointAt 6901module.exports = function (TO_STRING) { 6902 return function (that, pos) { 6903 var s = String(defined(that)); 6904 var i = toInteger(pos); 6905 var l = s.length; 6906 var a, b; 6907 if (i < 0 || i >= l) return TO_STRING ? '' : undefined; 6908 a = s.charCodeAt(i); 6909 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff 6910 ? TO_STRING ? s.charAt(i) : a 6911 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; 6912 }; 6913}; 6914 6915 6916/***/ }), 6917/* 109 */ 6918/***/ (function(module, exports, __webpack_require__) { 6919 6920"use strict"; 6921 6922var LIBRARY = __webpack_require__(44); 6923var $export = __webpack_require__(0); 6924var redefine = __webpack_require__(19); 6925var hide = __webpack_require__(20); 6926var Iterators = __webpack_require__(61); 6927var $iterCreate = __webpack_require__(110); 6928var setToStringTag = __webpack_require__(62); 6929var getPrototypeOf = __webpack_require__(26); 6930var ITERATOR = __webpack_require__(9)('iterator'); 6931var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` 6932var FF_ITERATOR = '@@iterator'; 6933var KEYS = 'keys'; 6934var VALUES = 'values'; 6935 6936var returnThis = function () { return this; }; 6937 6938module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 6939 $iterCreate(Constructor, NAME, next); 6940 var getMethod = function (kind) { 6941 if (!BUGGY && kind in proto) return proto[kind]; 6942 switch (kind) { 6943 case KEYS: return function keys() { return new Constructor(this, kind); }; 6944 case VALUES: return function values() { return new Constructor(this, kind); }; 6945 } return function entries() { return new Constructor(this, kind); }; 6946 }; 6947 var TAG = NAME + ' Iterator'; 6948 var DEF_VALUES = DEFAULT == VALUES; 6949 var VALUES_BUG = false; 6950 var proto = Base.prototype; 6951 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 6952 var $default = $native || getMethod(DEFAULT); 6953 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 6954 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 6955 var methods, key, IteratorPrototype; 6956 // Fix native 6957 if ($anyNative) { 6958 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 6959 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 6960 // Set @@toStringTag to native iterators 6961 setToStringTag(IteratorPrototype, TAG, true); 6962 // fix for some old engines 6963 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 6964 } 6965 } 6966 // fix Array#{values, @@iterator}.name in V8 / FF 6967 if (DEF_VALUES && $native && $native.name !== VALUES) { 6968 VALUES_BUG = true; 6969 $default = function values() { return $native.call(this); }; 6970 } 6971 // Define iterator 6972 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 6973 hide(proto, ITERATOR, $default); 6974 } 6975 // Plug for library 6976 Iterators[NAME] = $default; 6977 Iterators[TAG] = returnThis; 6978 if (DEFAULT) { 6979 methods = { 6980 values: DEF_VALUES ? $default : getMethod(VALUES), 6981 keys: IS_SET ? $default : getMethod(KEYS), 6982 entries: $entries 6983 }; 6984 if (FORCED) for (key in methods) { 6985 if (!(key in proto)) redefine(proto, key, methods[key]); 6986 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 6987 } 6988 return methods; 6989}; 6990 6991 6992/***/ }), 6993/* 110 */ 6994/***/ (function(module, exports, __webpack_require__) { 6995 6996"use strict"; 6997 6998var create = __webpack_require__(51); 6999var descriptor = __webpack_require__(50); 7000var setToStringTag = __webpack_require__(62); 7001var IteratorPrototype = {}; 7002 7003// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 7004__webpack_require__(20)(IteratorPrototype, __webpack_require__(9)('iterator'), function () { return this; }); 7005 7006module.exports = function (Constructor, NAME, next) { 7007 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 7008 setToStringTag(Constructor, NAME + ' Iterator'); 7009}; 7010 7011 7012/***/ }), 7013/* 111 */ 7014/***/ (function(module, exports, __webpack_require__) { 7015 7016var shared = __webpack_require__(82)('keys'); 7017var uid = __webpack_require__(49); 7018module.exports = function (key) {
vendor: 18,751 bytes, lines 7019-7697
7019 return shared[key] || (shared[key] = uid(key)); 7020}; 7021 7022 7023/***/ }), 7024/* 112 */ 7025/***/ (function(module, exports) { 7026 7027// IE 8- don't enum bug keys 7028module.exports = ( 7029 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' 7030).split(','); 7031 7032 7033/***/ }), 7034/* 113 */ 7035/***/ (function(module, exports, __webpack_require__) { 7036 7037var document = __webpack_require__(5).document; 7038module.exports = document && document.documentElement; 7039 7040 7041/***/ }), 7042/* 114 */ 7043/***/ (function(module, exports, __webpack_require__) { 7044 7045var $iterators = __webpack_require__(115); 7046var getKeys = __webpack_require__(52); 7047var redefine = __webpack_require__(19); 7048var global = __webpack_require__(5); 7049var hide = __webpack_require__(20); 7050var Iterators = __webpack_require__(61); 7051var wks = __webpack_require__(9); 7052var ITERATOR = wks('iterator'); 7053var TO_STRING_TAG = wks('toStringTag'); 7054var ArrayValues = Iterators.Array; 7055 7056var DOMIterables = { 7057 CSSRuleList: true, // TODO: Not spec compliant, should be false. 7058 CSSStyleDeclaration: false, 7059 CSSValueList: false, 7060 ClientRectList: false, 7061 DOMRectList: false, 7062 DOMStringList: false, 7063 DOMTokenList: true, 7064 DataTransferItemList: false, 7065 FileList: false, 7066 HTMLAllCollection: false, 7067 HTMLCollection: false, 7068 HTMLFormElement: false, 7069 HTMLSelectElement: false, 7070 MediaList: true, // TODO: Not spec compliant, should be false. 7071 MimeTypeArray: false, 7072 NamedNodeMap: false, 7073 NodeList: true, 7074 PaintRequestList: false, 7075 Plugin: false, 7076 PluginArray: false, 7077 SVGLengthList: false, 7078 SVGNumberList: false, 7079 SVGPathSegList: false, 7080 SVGPointList: false, 7081 SVGStringList: false, 7082 SVGTransformList: false, 7083 SourceBufferList: false, 7084 StyleSheetList: true, // TODO: Not spec compliant, should be false. 7085 TextTrackCueList: false, 7086 TextTrackList: false, 7087 TouchList: false 7088}; 7089 7090for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 7091 var NAME = collections[i]; 7092 var explicit = DOMIterables[NAME]; 7093 var Collection = global[NAME]; 7094 var proto = Collection && Collection.prototype; 7095 var key; 7096 if (proto) { 7097 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 7098 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 7099 Iterators[NAME] = ArrayValues; 7100 if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); 7101 } 7102} 7103 7104 7105/***/ }), 7106/* 115 */ 7107/***/ (function(module, exports, __webpack_require__) { 7108 7109"use strict"; 7110 7111var addToUnscopables = __webpack_require__(45); 7112var step = __webpack_require__(159); 7113var Iterators = __webpack_require__(61); 7114var toIObject = __webpack_require__(25); 7115 7116// 22.1.3.4 Array.prototype.entries() 7117// 22.1.3.13 Array.prototype.keys() 7118// 22.1.3.29 Array.prototype.values() 7119// 22.1.3.30 Array.prototype[@@iterator]() 7120module.exports = __webpack_require__(109)(Array, 'Array', function (iterated, kind) { 7121 this._t = toIObject(iterated); // target 7122 this._i = 0; // next index 7123 this._k = kind; // kind 7124// 22.1.5.2.1 %ArrayIteratorPrototype%.next() 7125}, function () { 7126 var O = this._t; 7127 var kind = this._k; 7128 var index = this._i++; 7129 if (!O || index >= O.length) { 7130 this._t = undefined; 7131 return step(1); 7132 } 7133 if (kind == 'keys') return step(0, index); 7134 if (kind == 'values') return step(0, O[index]); 7135 return step(0, [index, O[index]]); 7136}, 'values'); 7137 7138// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) 7139Iterators.Arguments = Iterators.Array; 7140 7141addToUnscopables('keys'); 7142addToUnscopables('values'); 7143addToUnscopables('entries'); 7144 7145 7146/***/ }), 7147/* 116 */ 7148/***/ (function(module, exports, __webpack_require__) { 7149 7150"use strict"; 7151 7152var strong = __webpack_require__(160); 7153var validate = __webpack_require__(63); 7154var MAP = 'Map'; 7155 7156// 23.1 Map Objects 7157module.exports = __webpack_require__(84)(MAP, function (get) { 7158 return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 7159}, { 7160 // 23.1.3.6 Map.prototype.get(key) 7161 get: function get(key) { 7162 var entry = strong.getEntry(validate(this, MAP), key); 7163 return entry && entry.v; 7164 }, 7165 // 23.1.3.9 Map.prototype.set(key, value) 7166 set: function set(key, value) { 7167 return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); 7168 } 7169}, strong, true); 7170 7171 7172/***/ }), 7173/* 117 */ 7174/***/ (function(module, exports, __webpack_require__) { 7175 7176// check on default Array iterator 7177var Iterators = __webpack_require__(61); 7178var ITERATOR = __webpack_require__(9)('iterator'); 7179var ArrayProto = Array.prototype; 7180 7181module.exports = function (it) { 7182 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 7183}; 7184 7185 7186/***/ }), 7187/* 118 */ 7188/***/ (function(module, exports, __webpack_require__) { 7189 7190var classof = __webpack_require__(73); 7191var ITERATOR = __webpack_require__(9)('iterator'); 7192var Iterators = __webpack_require__(61); 7193module.exports = __webpack_require__(18).getIteratorMethod = function (it) { 7194 if (it != undefined) return it[ITERATOR] 7195 || it['@@iterator'] 7196 || Iterators[classof(it)]; 7197}; 7198 7199 7200/***/ }), 7201/* 119 */ 7202/***/ (function(module, exports, __webpack_require__) { 7203 7204var isObject = __webpack_require__(7); 7205var setPrototypeOf = __webpack_require__(120).set; 7206module.exports = function (that, target, C) { 7207 var S = target.constructor; 7208 var P; 7209 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 7210 setPrototypeOf(that, P); 7211 } return that; 7212}; 7213 7214 7215/***/ }), 7216/* 120 */ 7217/***/ (function(module, exports, __webpack_require__) { 7218 7219// Works with __proto__ only. Old v8 can't work with null proto objects. 7220/* eslint-disable no-proto */ 7221var isObject = __webpack_require__(7); 7222var anObject = __webpack_require__(4); 7223var check = function (O, proto) { 7224 anObject(O); 7225 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 7226}; 7227module.exports = { 7228 set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line 7229 function (test, buggy, set) { 7230 try { 7231 set = __webpack_require__(30)(Function.call, __webpack_require__(27).f(Object.prototype, '__proto__').set, 2); 7232 set(test, []); 7233 buggy = !(test instanceof Array); 7234 } catch (e) { buggy = true; } 7235 return function setPrototypeOf(O, proto) { 7236 check(O, proto); 7237 if (buggy) O.__proto__ = proto; 7238 else set(O, proto); 7239 return O; 7240 }; 7241 }({}, false) : undefined), 7242 check: check 7243}; 7244 7245 7246/***/ }), 7247/* 121 */ 7248/***/ (function(module, exports, __webpack_require__) { 7249 7250"use strict"; 7251 7252var strong = __webpack_require__(160); 7253var validate = __webpack_require__(63); 7254var SET = 'Set'; 7255 7256// 23.2 Set Objects 7257module.exports = __webpack_require__(84)(SET, function (get) { 7258 return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 7259}, { 7260 // 23.2.3.1 Set.prototype.add(value) 7261 add: function add(value) { 7262 return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); 7263 } 7264}, strong); 7265 7266 7267/***/ }), 7268/* 122 */ 7269/***/ (function(module, exports, __webpack_require__) { 7270 7271var global = __webpack_require__(5); 7272var core = __webpack_require__(18); 7273var LIBRARY = __webpack_require__(44); 7274var wksExt = __webpack_require__(162); 7275var defineProperty = __webpack_require__(11).f; 7276module.exports = function (name) { 7277 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 7278 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); 7279}; 7280 7281 7282/***/ }), 7283/* 123 */ 7284/***/ (function(module, exports) { 7285 7286module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + 7287 '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 7288 7289 7290/***/ }), 7291/* 124 */ 7292/***/ (function(module, exports, __webpack_require__) { 7293 7294"use strict"; 7295 7296var toInteger = __webpack_require__(34); 7297var defined = __webpack_require__(35); 7298 7299module.exports = function repeat(count) { 7300 var str = String(defined(this)); 7301 var res = ''; 7302 var n = toInteger(count); 7303 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); 7304 for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; 7305 return res; 7306}; 7307 7308 7309/***/ }), 7310/* 125 */ 7311/***/ (function(module, exports) { 7312 7313// 20.2.2.28 Math.sign(x) 7314module.exports = Math.sign || function sign(x) { 7315 // eslint-disable-next-line no-self-compare 7316 return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; 7317}; 7318 7319 7320/***/ }), 7321/* 126 */ 7322/***/ (function(module, exports) { 7323 7324// 20.2.2.14 Math.expm1(x) 7325var $expm1 = Math.expm1; 7326module.exports = (!$expm1 7327 // Old FF bug 7328 || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 7329 // Tor Browser bug 7330 || $expm1(-2e-17) != -2e-17 7331) ? function expm1(x) { 7332 return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; 7333} : $expm1; 7334 7335 7336/***/ }), 7337/* 127 */ 7338/***/ (function(module, exports, __webpack_require__) { 7339 7340// helper for String#{startsWith, endsWith, includes} 7341var isRegExp = __webpack_require__(88); 7342var defined = __webpack_require__(35); 7343 7344module.exports = function (that, searchString, NAME) { 7345 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 7346 return String(defined(that)); 7347}; 7348 7349 7350/***/ }), 7351/* 128 */ 7352/***/ (function(module, exports, __webpack_require__) { 7353 7354var MATCH = __webpack_require__(9)('match'); 7355module.exports = function (KEY) { 7356 var re = /./; 7357 try { 7358 '/./'[KEY](re); 7359 } catch (e) { 7360 try { 7361 re[MATCH] = false; 7362 return !'/./'[KEY](re); 7363 } catch (f) { /* empty */ } 7364 } return true; 7365}; 7366 7367 7368/***/ }), 7369/* 129 */ 7370/***/ (function(module, exports, __webpack_require__) { 7371 7372"use strict"; 7373 7374var $defineProperty = __webpack_require__(11); 7375var createDesc = __webpack_require__(50); 7376 7377module.exports = function (object, index, value) { 7378 if (index in object) $defineProperty.f(object, index, createDesc(0, value)); 7379 else object[index] = value; 7380}; 7381 7382 7383/***/ }), 7384/* 130 */ 7385/***/ (function(module, exports, __webpack_require__) { 7386 7387// 9.4.2.3 ArraySpeciesCreate(originalArray, length) 7388var speciesConstructor = __webpack_require__(323); 7389 7390module.exports = function (original, length) { 7391 return new (speciesConstructor(original))(length); 7392}; 7393 7394 7395/***/ }), 7396/* 131 */ 7397/***/ (function(module, exports, __webpack_require__) { 7398 7399"use strict"; 7400// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) 7401 7402var toObject = __webpack_require__(15); 7403var toAbsoluteIndex = __webpack_require__(53); 7404var toLength = __webpack_require__(13); 7405module.exports = function fill(value /* , start = 0, end = @length */) { 7406 var O = toObject(this); 7407 var length = toLength(O.length); 7408 var aLen = arguments.length; 7409 var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); 7410 var end = aLen > 2 ? arguments[2] : undefined; 7411 var endPos = end === undefined ? length : toAbsoluteIndex(end, length); 7412 while (endPos > index) O[index++] = value; 7413 return O; 7414}; 7415 7416 7417/***/ }), 7418/* 132 */ 7419/***/ (function(module, exports, __webpack_require__) { 7420 7421var ctx = __webpack_require__(30); 7422var invoke = __webpack_require__(166); 7423var html = __webpack_require__(113); 7424var cel = __webpack_require__(106); 7425var global = __webpack_require__(5); 7426var process = global.process; 7427var setTask = global.setImmediate; 7428var clearTask = global.clearImmediate; 7429var MessageChannel = global.MessageChannel; 7430var Dispatch = global.Dispatch; 7431var counter = 0; 7432var queue = {}; 7433var ONREADYSTATECHANGE = 'onreadystatechange'; 7434var defer, channel, port; 7435var run = function () { 7436 var id = +this; 7437 // eslint-disable-next-line no-prototype-builtins 7438 if (queue.hasOwnProperty(id)) { 7439 var fn = queue[id]; 7440 delete queue[id]; 7441 fn(); 7442 } 7443}; 7444var listener = function (event) { 7445 run.call(event.data); 7446}; 7447// Node.js 0.9+ & IE10+ has setImmediate, otherwise: 7448if (!setTask || !clearTask) { 7449 setTask = function setImmediate(fn) { 7450 var args = []; 7451 var i = 1; 7452 while (arguments.length > i) args.push(arguments[i++]); 7453 queue[++counter] = function () { 7454 // eslint-disable-next-line no-new-func 7455 invoke(typeof fn == 'function' ? fn : Function(fn), args); 7456 }; 7457 defer(counter); 7458 return counter; 7459 }; 7460 clearTask = function clearImmediate(id) { 7461 delete queue[id]; 7462 }; 7463 // Node.js 0.8- 7464 if (__webpack_require__(29)(process) == 'process') { 7465 defer = function (id) { 7466 process.nextTick(ctx(run, id, 1)); 7467 }; 7468 // Sphere (JS game engine) Dispatch API 7469 } else if (Dispatch && Dispatch.now) { 7470 defer = function (id) { 7471 Dispatch.now(ctx(run, id, 1)); 7472 }; 7473 // Browsers with MessageChannel, includes WebWorkers 7474 } else if (MessageChannel) { 7475 channel = new MessageChannel(); 7476 port = channel.port2; 7477 channel.port1.onmessage = listener; 7478 defer = ctx(port.postMessage, port, 1); 7479 // Browsers with postMessage, skip WebWorkers 7480 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' 7481 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 7482 defer = function (id) { 7483 global.postMessage(id + '', '*'); 7484 }; 7485 global.addEventListener('message', listener, false); 7486 // IE8- 7487 } else if (ONREADYSTATECHANGE in cel('script')) { 7488 defer = function (id) { 7489 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 7490 html.removeChild(this); 7491 run.call(id); 7492 }; 7493 }; 7494 // Rest old browsers 7495 } else { 7496 defer = function (id) { 7497 setTimeout(ctx(run, id, 1), 0); 7498 }; 7499 } 7500} 7501module.exports = { 7502 set: setTask, 7503 clear: clearTask 7504}; 7505 7506 7507/***/ }), 7508/* 133 */ 7509/***/ (function(module, exports, __webpack_require__) { 7510 7511var global = __webpack_require__(5); 7512var macrotask = __webpack_require__(132).set; 7513var Observer = global.MutationObserver || global.WebKitMutationObserver; 7514var process = global.process; 7515var Promise = global.Promise; 7516var isNode = __webpack_require__(29)(process) == 'process'; 7517 7518module.exports = function () { 7519 var head, last, notify; 7520 7521 var flush = function () { 7522 var parent, fn; 7523 if (isNode && (parent = process.domain)) parent.exit(); 7524 while (head) { 7525 fn = head.fn; 7526 head = head.next; 7527 try { 7528 fn(); 7529 } catch (e) { 7530 if (head) notify(); 7531 else last = undefined; 7532 throw e; 7533 } 7534 } last = undefined; 7535 if (parent) parent.enter(); 7536 }; 7537 7538 // Node.js 7539 if (isNode) { 7540 notify = function () { 7541 process.nextTick(flush); 7542 }; 7543 // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 7544 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 7545 var toggle = true; 7546 var node = document.createTextNode(''); 7547 new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new 7548 notify = function () { 7549 node.data = toggle = !toggle; 7550 }; 7551 // environments with maybe non-completely correct, but existent Promise 7552 } else if (Promise && Promise.resolve) { 7553 // Promise.resolve without an argument throws an error in LG WebOS 2 7554 var promise = Promise.resolve(undefined); 7555 notify = function () { 7556 promise.then(flush); 7557 }; 7558 // for other environments - macrotask based on: 7559 // - setImmediate 7560 // - MessageChannel 7561 // - window.postMessag 7562 // - onreadystatechange 7563 // - setTimeout 7564 } else { 7565 notify = function () { 7566 // strange IE + webpack dev server bug - use .call(global) 7567 macrotask.call(global, flush); 7568 }; 7569 } 7570 7571 return function (fn) { 7572 var task = { fn: fn, next: undefined }; 7573 if (last) last.next = task; 7574 if (!head) { 7575 head = task; 7576 notify(); 7577 } last = task; 7578 }; 7579}; 7580 7581 7582/***/ }), 7583/* 134 */ 7584/***/ (function(module, exports, __webpack_require__) { 7585 7586"use strict"; 7587 7588// 25.4.1.5 NewPromiseCapability(C) 7589var aFunction = __webpack_require__(17); 7590 7591function PromiseCapability(C) { 7592 var resolve, reject; 7593 this.promise = new C(function ($$resolve, $$reject) { 7594 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 7595 resolve = $$resolve; 7596 reject = $$reject; 7597 }); 7598 this.resolve = aFunction(resolve); 7599 this.reject = aFunction(reject); 7600} 7601 7602module.exports.f = function (C) { 7603 return new PromiseCapability(C); 7604}; 7605 7606 7607/***/ }), 7608/* 135 */ 7609/***/ (function(module, exports, __webpack_require__) { 7610 7611"use strict"; 7612 7613var global = __webpack_require__(5); 7614var DESCRIPTORS = __webpack_require__(12); 7615var LIBRARY = __webpack_require__(44); 7616var $typed = __webpack_require__(93); 7617var hide = __webpack_require__(20); 7618var redefineAll = __webpack_require__(54); 7619var fails = __webpack_require__(6); 7620var anInstance = __webpack_require__(55); 7621var toInteger = __webpack_require__(34); 7622var toLength = __webpack_require__(13); 7623var toIndex = __webpack_require__(180); 7624var gOPN = __webpack_require__(58).f; 7625var dP = __webpack_require__(11).f; 7626var arrayFill = __webpack_require__(131); 7627var setToStringTag = __webpack_require__(62); 7628var ARRAY_BUFFER = 'ArrayBuffer'; 7629var DATA_VIEW = 'DataView'; 7630var PROTOTYPE = 'prototype'; 7631var WRONG_LENGTH = 'Wrong length!'; 7632var WRONG_INDEX = 'Wrong index!'; 7633var $ArrayBuffer = global[ARRAY_BUFFER]; 7634var $DataView = global[DATA_VIEW]; 7635var Math = global.Math; 7636var RangeError = global.RangeError; 7637// eslint-disable-next-line no-shadow-restricted-names 7638var Infinity = global.Infinity; 7639var BaseBuffer = $ArrayBuffer; 7640var abs = Math.abs; 7641var pow = Math.pow; 7642var floor = Math.floor; 7643var log = Math.log; 7644var LN2 = Math.LN2; 7645var BUFFER = 'buffer'; 7646var BYTE_LENGTH = 'byteLength'; 7647var BYTE_OFFSET = 'byteOffset'; 7648var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; 7649var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; 7650var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; 7651 7652// IEEE754 conversions based on https://github.com/feross/ieee754 7653function packIEEE754(value, mLen, nBytes) { 7654 var buffer = new Array(nBytes); 7655 var eLen = nBytes * 8 - mLen - 1; 7656 var eMax = (1 << eLen) - 1; 7657 var eBias = eMax >> 1; 7658 var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; 7659 var i = 0; 7660 var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; 7661 var e, m, c; 7662 value = abs(value); 7663 // eslint-disable-next-line no-self-compare 7664 if (value != value || value === Infinity) { 7665 // eslint-disable-next-line no-self-compare 7666 m = value != value ? 1 : 0; 7667 e = eMax; 7668 } else { 7669 e = floor(log(value) / LN2); 7670 if (value * (c = pow(2, -e)) < 1) { 7671 e--; 7672 c *= 2; 7673 } 7674 if (e + eBias >= 1) { 7675 value += rt / c; 7676 } else { 7677 value += rt * pow(2, 1 - eBias); 7678 } 7679 if (value * c >= 2) { 7680 e++; 7681 c /= 2; 7682 } 7683 if (e + eBias >= eMax) { 7684 m = 0; 7685 e = eMax; 7686 } else if (e + eBias >= 1) { 7687 m = (value * c - 1) * pow(2, mLen); 7688 e = e + eBias; 7689 } else { 7690 m = value * pow(2, eBias - 1) * pow(2, mLen); 7691 e = 0; 7692 } 7693 } 7694 for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); 7695 e = e << mLen | m; 7696 eLen += mLen; 7697 for (; eLen > 0;
vendor: 11,388 bytes, lines 7697-8024
7697 buffer[i++] = e & 255, e /= 256, eLen -= 8); 7698 buffer[--i] |= s * 128; 7699 return buffer; 7700} 7701function unpackIEEE754(buffer, mLen, nBytes) { 7702 var eLen = nBytes * 8 - mLen - 1; 7703 var eMax = (1 << eLen) - 1; 7704 var eBias = eMax >> 1; 7705 var nBits = eLen - 7; 7706 var i = nBytes - 1; 7707 var s = buffer[i--]; 7708 var e = s & 127; 7709 var m; 7710 s >>= 7; 7711 for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); 7712 m = e & (1 << -nBits) - 1; 7713 e >>= -nBits; 7714 nBits += mLen; 7715 for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); 7716 if (e === 0) { 7717 e = 1 - eBias; 7718 } else if (e === eMax) { 7719 return m ? NaN : s ? -Infinity : Infinity; 7720 } else { 7721 m = m + pow(2, mLen); 7722 e = e - eBias; 7723 } return (s ? -1 : 1) * m * pow(2, e - mLen); 7724} 7725 7726function unpackI32(bytes) { 7727 return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; 7728} 7729function packI8(it) { 7730 return [it & 0xff]; 7731} 7732function packI16(it) { 7733 return [it & 0xff, it >> 8 & 0xff]; 7734} 7735function packI32(it) { 7736 return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; 7737} 7738function packF64(it) { 7739 return packIEEE754(it, 52, 8); 7740} 7741function packF32(it) { 7742 return packIEEE754(it, 23, 4); 7743} 7744 7745function addGetter(C, key, internal) { 7746 dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); 7747} 7748 7749function get(view, bytes, index, isLittleEndian) { 7750 var numIndex = +index; 7751 var intIndex = toIndex(numIndex); 7752 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); 7753 var store = view[$BUFFER]._b; 7754 var start = intIndex + view[$OFFSET]; 7755 var pack = store.slice(start, start + bytes); 7756 return isLittleEndian ? pack : pack.reverse(); 7757} 7758function set(view, bytes, index, conversion, value, isLittleEndian) { 7759 var numIndex = +index; 7760 var intIndex = toIndex(numIndex); 7761 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); 7762 var store = view[$BUFFER]._b; 7763 var start = intIndex + view[$OFFSET]; 7764 var pack = conversion(+value); 7765 for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; 7766} 7767 7768if (!$typed.ABV) { 7769 $ArrayBuffer = function ArrayBuffer(length) { 7770 anInstance(this, $ArrayBuffer, ARRAY_BUFFER); 7771 var byteLength = toIndex(length); 7772 this._b = arrayFill.call(new Array(byteLength), 0); 7773 this[$LENGTH] = byteLength; 7774 }; 7775 7776 $DataView = function DataView(buffer, byteOffset, byteLength) { 7777 anInstance(this, $DataView, DATA_VIEW); 7778 anInstance(buffer, $ArrayBuffer, DATA_VIEW); 7779 var bufferLength = buffer[$LENGTH]; 7780 var offset = toInteger(byteOffset); 7781 if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); 7782 byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); 7783 if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); 7784 this[$BUFFER] = buffer; 7785 this[$OFFSET] = offset; 7786 this[$LENGTH] = byteLength; 7787 }; 7788 7789 if (DESCRIPTORS) { 7790 addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); 7791 addGetter($DataView, BUFFER, '_b'); 7792 addGetter($DataView, BYTE_LENGTH, '_l'); 7793 addGetter($DataView, BYTE_OFFSET, '_o'); 7794 } 7795 7796 redefineAll($DataView[PROTOTYPE], { 7797 getInt8: function getInt8(byteOffset) { 7798 return get(this, 1, byteOffset)[0] << 24 >> 24; 7799 }, 7800 getUint8: function getUint8(byteOffset) { 7801 return get(this, 1, byteOffset)[0]; 7802 }, 7803 getInt16: function getInt16(byteOffset /* , littleEndian */) { 7804 var bytes = get(this, 2, byteOffset, arguments[1]); 7805 return (bytes[1] << 8 | bytes[0]) << 16 >> 16; 7806 }, 7807 getUint16: function getUint16(byteOffset /* , littleEndian */) { 7808 var bytes = get(this, 2, byteOffset, arguments[1]); 7809 return bytes[1] << 8 | bytes[0]; 7810 }, 7811 getInt32: function getInt32(byteOffset /* , littleEndian */) { 7812 return unpackI32(get(this, 4, byteOffset, arguments[1])); 7813 }, 7814 getUint32: function getUint32(byteOffset /* , littleEndian */) { 7815 return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; 7816 }, 7817 getFloat32: function getFloat32(byteOffset /* , littleEndian */) { 7818 return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); 7819 }, 7820 getFloat64: function getFloat64(byteOffset /* , littleEndian */) { 7821 return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); 7822 }, 7823 setInt8: function setInt8(byteOffset, value) { 7824 set(this, 1, byteOffset, packI8, value); 7825 }, 7826 setUint8: function setUint8(byteOffset, value) { 7827 set(this, 1, byteOffset, packI8, value); 7828 }, 7829 setInt16: function setInt16(byteOffset, value /* , littleEndian */) { 7830 set(this, 2, byteOffset, packI16, value, arguments[2]); 7831 }, 7832 setUint16: function setUint16(byteOffset, value /* , littleEndian */) { 7833 set(this, 2, byteOffset, packI16, value, arguments[2]); 7834 }, 7835 setInt32: function setInt32(byteOffset, value /* , littleEndian */) { 7836 set(this, 4, byteOffset, packI32, value, arguments[2]); 7837 }, 7838 setUint32: function setUint32(byteOffset, value /* , littleEndian */) { 7839 set(this, 4, byteOffset, packI32, value, arguments[2]); 7840 }, 7841 setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { 7842 set(this, 4, byteOffset, packF32, value, arguments[2]); 7843 }, 7844 setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { 7845 set(this, 8, byteOffset, packF64, value, arguments[2]); 7846 } 7847 }); 7848} else { 7849 if (!fails(function () { 7850 $ArrayBuffer(1); 7851 }) || !fails(function () { 7852 new $ArrayBuffer(-1); // eslint-disable-line no-new 7853 }) || fails(function () { 7854 new $ArrayBuffer(); // eslint-disable-line no-new 7855 new $ArrayBuffer(1.5); // eslint-disable-line no-new 7856 new $ArrayBuffer(NaN); // eslint-disable-line no-new 7857 return $ArrayBuffer.name != ARRAY_BUFFER; 7858 })) { 7859 $ArrayBuffer = function ArrayBuffer(length) { 7860 anInstance(this, $ArrayBuffer); 7861 return new BaseBuffer(toIndex(length)); 7862 }; 7863 var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; 7864 for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { 7865 if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); 7866 } 7867 if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; 7868 } 7869 // iOS Safari 7.x bug 7870 var view = new $DataView(new $ArrayBuffer(2)); 7871 var $setInt8 = $DataView[PROTOTYPE].setInt8; 7872 view.setInt8(0, 2147483648); 7873 view.setInt8(1, 2147483649); 7874 if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { 7875 setInt8: function setInt8(byteOffset, value) { 7876 $setInt8.call(this, byteOffset, value << 24 >> 24); 7877 }, 7878 setUint8: function setUint8(byteOffset, value) { 7879 $setInt8.call(this, byteOffset, value << 24 >> 24); 7880 } 7881 }, true); 7882} 7883setToStringTag($ArrayBuffer, ARRAY_BUFFER); 7884setToStringTag($DataView, DATA_VIEW); 7885hide($DataView[PROTOTYPE], $typed.VIEW, true); 7886exports[ARRAY_BUFFER] = $ArrayBuffer; 7887exports[DATA_VIEW] = $DataView; 7888 7889 7890/***/ }), 7891/* 136 */ 7892/***/ (function(module, exports, __webpack_require__) { 7893 7894"use strict"; 7895/* WEBPACK VAR INJECTION */(function(process) {/** 7896 * Copyright (c) 2014-present, Facebook, Inc. 7897 * 7898 * This source code is licensed under the MIT license found in the 7899 * LICENSE file in the root directory of this source tree. 7900 * 7901 */ 7902 7903 7904 7905/** 7906 * Forked from fbjs/warning: 7907 * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js 7908 * 7909 * Only change is we use console.warn instead of console.error, 7910 * and do nothing when 'console' is not supported. 7911 * This really simplifies the code. 7912 * --- 7913 * Similar to invariant but only logs a warning if the condition is not met. 7914 * This can be used to log issues in development environments in critical 7915 * paths. Removing the logging code for production environments will keep the 7916 * same logic and follow the same code paths. 7917 */ 7918 7919var lowPriorityWarning = function () {}; 7920 7921if (process.env.NODE_ENV !== 'production') { 7922 var printWarning = function (format) { 7923 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 7924 args[_key - 1] = arguments[_key]; 7925 } 7926 7927 var argIndex = 0; 7928 var message = 'Warning: ' + format.replace(/%s/g, function () { 7929 return args[argIndex++]; 7930 }); 7931 if (typeof console !== 'undefined') { 7932 console.warn(message); 7933 } 7934 try { 7935 // --- Welcome to debugging React --- 7936 // This error was thrown as a convenience so that you can use this stack 7937 // to find the callsite that caused this warning to fire. 7938 throw new Error(message); 7939 } catch (x) {} 7940 }; 7941 7942 lowPriorityWarning = function (condition, format) { 7943 if (format === undefined) { 7944 throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); 7945 } 7946 if (!condition) { 7947 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { 7948 args[_key2 - 2] = arguments[_key2]; 7949 } 7950 7951 printWarning.apply(undefined, [format].concat(args)); 7952 } 7953 }; 7954} 7955 7956module.exports = lowPriorityWarning; 7957/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 7958 7959/***/ }), 7960/* 137 */ 7961/***/ (function(module, exports, __webpack_require__) { 7962 7963"use strict"; 7964/* WEBPACK VAR INJECTION */(function(process) {/** 7965 * Copyright (c) 2013-present, Facebook, Inc. 7966 * 7967 * This source code is licensed under the MIT license found in the 7968 * LICENSE file in the root directory of this source tree. 7969 * 7970 */ 7971 7972 7973 7974var _prodInvariant = __webpack_require__(8); 7975 7976var ReactErrorUtils = __webpack_require__(138); 7977 7978var invariant = __webpack_require__(2); 7979var warning = __webpack_require__(3); 7980 7981/** 7982 * Injected dependencies: 7983 */ 7984 7985/** 7986 * - `ComponentTree`: [required] Module that can convert between React instances 7987 * and actual node references. 7988 */ 7989var ComponentTree; 7990var TreeTraversal; 7991var injection = { 7992 injectComponentTree: function (Injected) { 7993 ComponentTree = Injected; 7994 if (process.env.NODE_ENV !== 'production') { 7995 process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; 7996 } 7997 }, 7998 injectTreeTraversal: function (Injected) { 7999 TreeTraversal = Injected; 8000 if (process.env.NODE_ENV !== 'production') { 8001 process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0; 8002 } 8003 } 8004}; 8005 8006function isEndish(topLevelType) { 8007 return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel'; 8008} 8009 8010function isMoveish(topLevelType) { 8011 return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove'; 8012} 8013function isStartish(topLevelType) { 8014 return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart'; 8015} 8016 8017var validateEventDispatches; 8018if (process.env.NODE_ENV !== 'production') { 8019 validateEventDispatches = function (event) { 8020 var dispatchListeners = event._dispatchListeners; 8021 var dispatchInstances = event._dispatchInstances; 8022 8023 var listenersIsArr = Array.isArray(dispatchListeners); 8024 var listenersLen = listenersIsArr ? dispatchListeners.length : dis
8024patchListeners ? 1 : 0; 8025 8026 var instancesIsArr = Array.isArray(dispatchInstances); 8027 var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; 8028 8029 process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; 8030 }; 8031} 8032 8033/** 8034 * Dispatch the event to the listener. 8035 * @param {SyntheticEvent} event SyntheticEvent to handle 8036 * @param {boolean} simulated If the event is simulated (changes exn behavior) 8037 * @param {function} listener Application-level callback 8038 * @param {*} inst Internal component instance 8039 */ 8040function executeDispatch(event, simulated, listener, inst) { 8041 var type = event.type || 'unknown-event'; 8042 event.currentTarget = EventPluginUtils.getNodeFromInstance(inst); 8043 if (simulated) { 8044 ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event); 8045 } else { 8046 ReactErrorUtils.invokeGuardedCallback(type, listener, event); 8047 } 8048 event.currentTarget = null; 8049} 8050 8051/** 8052 * Standard/simple iteration through an event's collected dispatches. 8053 */ 8054function executeDispatchesInOrder(event, simulated) { 8055 var dispatchListeners = event._dispatchListeners; 8056 var dispatchInstances = event._dispatchInstances; 8057 if (process.env.NODE_ENV !== 'production') { 8058 validateEventDispatches(event); 8059 } 8060 if (Array.isArray(dispatchListeners)) { 8061 for (var i = 0; i < dispatchListeners.length; i++) { 8062 if (event.isPropagationStopped()) { 8063 break; 8064 } 8065 // Listeners and Instances are two parallel arrays that are always in sync. 8066 executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]); 8067 } 8068 } else if (dispatchListeners) { 8069 executeDispatch(event, simulated, dispatchListeners, dispatchInstances); 8070 } 8071 event._dispatchListeners = null; 8072 event._dispatchInstances = null; 8073} 8074 8075/** 8076 * Standard/simple iteration through an event's collected dispatches, but stops 8077 * at the first dispatch execution returning true, and returns that id. 8078 * 8079 * @return {?string} id of the first dispatch execution who's listener returns 8080 * true, or null if no listener returned true. 8081 */ 8082function executeDispatchesInOrderStopAtTrueImpl(event) { 8083 var dispatchListeners = event._dispatchListeners; 8084 var dispatchInstances = event._dispatchInstances; 8085 if (process.env.NODE_ENV !== 'production') { 8086 validateEventDispatches(event); 8087 } 8088 if (Array.isArray(dispatchListeners)) { 8089 for (var i = 0; i < dispatchListeners.length; i++) { 8090 if (event.isPropagationStopped()) { 8091 break; 8092 } 8093 // Listeners and Instances are two parallel arrays that are always in sync. 8094 if (dispatchListeners[i](event, dispatchInstances[i])) { 8095 return dispatchInstances[i]; 8096 } 8097 } 8098 } else if (dispatchListeners) { 8099 if (dispatchListeners(event, dispatchInstances)) { 8100 return dispatchInstances; 8101 } 8102 } 8103 return null; 8104} 8105 8106/** 8107 * @see executeDispatchesInOrderStopAtTrueImpl 8108 */ 8109function executeDispatchesInOrderStopAtTrue(event) { 8110 var ret = executeDispatchesInOrderStopAtTrueImpl(event); 8111 event._dispatchInstances = null; 8112 event._dispatchListeners = null; 8113 return ret; 8114} 8115 8116/** 8117 * Execution of a "direct" dispatch - there must be at most one dispatch 8118 * accumulated on the event or it is considered an error. It doesn't really make 8119 * sense for an event with multiple dispatches (bubbled) to keep track of the 8120 * return values at each dispatch execution, but it does tend to make sense when 8121 * dealing with "direct" dispatches. 8122 * 8123 * @return {*} The return value of executing the single dispatch. 8124 */ 8125function executeDirectDispatch(event) { 8126 if (process.env.NODE_ENV !== 'production') { 8127 validateEventDispatches(event); 8128 } 8129 var dispatchListener = event._dispatchListeners; 8130 var dispatchInstance = event._dispatchInstances; 8131 !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0; 8132 event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; 8133 var res = dispatchListener ? dispatchListener(event) : null; 8134 event.currentTarget = null; 8135 event._dispatchListeners = null; 8136 event._dispatchInstances = null; 8137 return res; 8138} 8139 8140/** 8141 * @param {SyntheticEvent} event 8142 * @return {boolean} True iff number of dispatches accumulated is greater than 0. 8143 */ 8144function hasDispatches(event) { 8145 return !!event._dispatchListeners; 8146} 8147 8148/** 8149 * General utilities that are useful in creating custom Event Plugins. 8150 */ 8151var EventPluginUtils = { 8152 isEndish: isEndish, 8153 isMoveish: isMoveish, 8154 isStartish: isStartish, 8155 8156 executeDirectDispatch: executeDirectDispatch, 8157 executeDispatchesInOrder: executeDispatchesInOrder, 8158 executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, 8159 hasDispatches: hasDispatches, 8160 8161 getInstanceFromNode: function (node) { 8162 return ComponentTree.getInstanceFromNode(node); 8163 }, 8164 getNodeFromInstance: function (node) { 8165 return ComponentTree.getNodeFromInstance(node); 8166 }, 8167 isAncestor: function (a, b) { 8168 return TreeTraversal.isAncestor(a, b); 8169 }, 8170 getLowestCommonAncestor: function (a, b) { 8171 return TreeTraversal.getLowestCommonAncestor(a, b); 8172 }, 8173 getParentInstance: function (inst) { 8174 return TreeTraversal.getParentInstance(inst); 8175 }, 8176 traverseTwoPhase: function (target, fn, arg) { 8177 return TreeTraversal.traverseTwoPhase(target, fn, arg); 8178 }, 8179 traverseEnterLeave: function (from, to, fn, argFrom, argTo) { 8180 return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo); 8181 }, 8182 8183 injection: injection 8184}; 8185 8186module.exports = EventPluginUtils; 8187/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 8188 8189/***/ }), 8190/* 138 */ 8191/***/ (function(module, exports, __webpack_require__) { 8192 8193"use strict"; 8194/* WEBPACK VAR INJECTION */(function(process) {/** 8195 * Copyright (c) 2013-present, Facebook, Inc. 8196 * 8197 * This source code is licensed under the MIT license found in the 8198 * LICENSE file in the root directory of this source tree. 8199 * 8200 * 8201 */ 8202 8203 8204 8205var caughtError = null; 8206 8207/** 8208 * Call a function while guarding against errors that happens within it. 8209 * 8210 * @param {String} name of the guard to use for logging or debugging 8211 * @param {Function} func The function to invoke 8212 * @param {*} a First argument 8213 * @param {*} b Second argument 8214 */ 8215function invokeGuardedCallback(name, func, a) { 8216 try { 8217 func(a); 8218 } catch (x) { 8219 if (caughtError === null) { 8220 caughtError = x; 8221 } 8222 } 8223} 8224 8225var ReactErrorUtils = { 8226 invokeGuardedCallback: invokeGuardedCallback, 8227 8228 /** 8229 * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event 8230 * handler are sure to be rethrown by rethrowCaughtError. 8231 */ 8232 invokeGuardedCallbackWithCatch: invokeGuardedCallback, 8233 8234 /** 8235 * During execution of guarded functions we will capture the first error which 8236 * we will rethrow to be handled by the top level error handler. 8237 */ 8238 rethrowCaughtError: function () { 8239 if (caughtError) { 8240 var error = caughtError; 8241 caughtError = null; 8242 throw error; 8243 } 8244 } 8245}; 8246 8247if (process.env.NODE_ENV !== 'production') { 8248 /** 8249 * To help development we can get better devtools integration by simulating a 8250 * real browser event. 8251 */ 8252 if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { 8253 var fakeNode = document.createElement('react'); 8254 ReactErrorUtils.invokeGuardedCallback = function (name, func, a) { 8255 var boundFunc = function () { 8256 func(a); 8257 }; 8258 var evtType = 'react-' + name; 8259 fakeNode.addEventListener(evtType, boundFunc, false); 8260 var evt = document.createEvent('Event'); 8261 evt.initEvent(evtType, false, false); 8262 fakeNode.dispatchEvent(evt); 8263 fakeNode.removeEventListener(evtType, boundFunc, false); 8264 }; 8265 } 8266} 8267 8268module.exports = ReactErrorUtils; 8269/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 8270 8271/***/ }), 8272/* 139 */ 8273/***/ (function(module, exports, __webpack_require__) { 8274 8275"use strict"; 8276/** 8277 * Copyright (c) 2013-present, Facebook, Inc. 8278 * 8279 * This source code is licensed under the MIT license found in the 8280 * LICENSE file in the root directory of this source tree. 8281 * 8282 */ 8283 8284 8285 8286/** 8287 * Gets the target node from a native browser event by accounting for 8288 * inconsistencies in browser DOM APIs. 8289 * 8290 * @param {object} nativeEvent Native browser event. 8291 * @return {DOMEventTarget} Target node. 8292 */ 8293 8294function getEventTarget(nativeEvent) { 8295 var target = nativeEvent.target || nativeEvent.srcElement || window; 8296 8297 // Normalize SVG <use> element events #4963 8298 if (target.correspondingUseElement) { 8299 target = target.correspondingUseElement; 8300 } 8301 8302 // Safari may fire events on text nodes (Node.TEXT_NODE is 3). 8303 // @see http://www.quirksmode.org/js/events_properties.html 8304 return target.nodeType === 3 ? target.parentNode : target; 8305} 8306 8307module.exports = getEventTarget; 8308 8309/***/ }), 8310/* 140 */ 8311/***/ (function(module, exports, __webpack_require__) { 8312 8313"use strict"; 8314/** 8315 * Copyright (c) 2013-present, Facebook, Inc. 8316 * 8317 * This source code is licensed under the MIT license found in the 8318 * LICENSE file in the root directory of this source tree. 8319 * 8320 */ 8321 8322 8323 8324var ExecutionEnvironment = __webpack_require__(16); 8325 8326var useHasFeature; 8327if (ExecutionEnvironment.canUseDOM) { 8328 useHasFeature = document.implementation && document.implementation.hasFeature && 8329 // always returns true in newer browsers as per the standard. 8330 // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature 8331 document.implementation.hasFeature('', '') !== true; 8332} 8333 8334/** 8335 * Checks if an event is supported in the current execution environment. 8336 * 8337 * NOTE: This will not work correctly for non-generic events such as `change`, 8338 * `reset`, `load`, `error`, and `select`. 8339 * 8340 * Borrows from Modernizr. 8341 * 8342 * @param {string} eventNameSuffix Event name, e.g. "click". 8343 * @param {?boolean} capture Check if the capture phase is supported. 8344 * @return {boolean} True if the event is supported. 8345 * @internal 8346 * @license Modernizr 3.0.0pre (Custom Build) | MIT 8347 */ 8348function isEventSupported(eventNameSuffix, capture) { 8349 if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { 8350 return false;
8351 } 8352 8353 var eventName = 'on' + eventNameSuffix; 8354 var isSupported = eventName in document; 8355 8356 if (!isSupported) { 8357 var element = document.createElement('div'); 8358 element.setAttribute(eventName, 'return;'); 8359 isSupported = typeof element[eventName] === 'function'; 8360 } 8361 8362 if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { 8363 // This is the only way to test support for the `wheel` event in IE9+. 8364 isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); 8365 } 8366 8367 return isSupported; 8368} 8369 8370module.exports = isEventSupported; 8371 8372/***/ }), 8373/* 141 */ 8374/***/ (function(module, exports, __webpack_require__) { 8375 8376"use strict"; 8377/** 8378 * Copyright (c) 2013-present, Facebook, Inc. 8379 * 8380 * This source code is licensed under the MIT license found in the 8381 * LICENSE file in the root directory of this source tree. 8382 * 8383 */ 8384 8385 8386 8387/** 8388 * Translation from modifier key to the associated property in the event. 8389 * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers 8390 */ 8391 8392var modifierKeyToProp = { 8393 Alt: 'altKey', 8394 Control: 'ctrlKey', 8395 Meta: 'metaKey', 8396 Shift: 'shiftKey' 8397}; 8398 8399// IE8 does not implement getModifierState so we simply map it to the only 8400// modifier keys exposed by the event itself, does not support Lock-keys. 8401// Currently, all major browsers except Chrome seems to support Lock-keys. 8402function modifierStateGetter(keyArg) { 8403 var syntheticEvent = this; 8404 var nativeEvent = syntheticEvent.nativeEvent; 8405 if (nativeEvent.getModifierState) { 8406 return nativeEvent.getModifierState(keyArg); 8407 } 8408 var keyProp = modifierKeyToProp[keyArg]; 8409 return keyProp ? !!nativeEvent[keyProp] : false; 8410} 8411 8412function getEventModifierState(nativeEvent) { 8413 return modifierStateGetter; 8414} 8415 8416module.exports = getEventModifierState; 8417 8418/***/ }), 8419/* 142 */ 8420/***/ (function(module, exports, __webpack_require__) { 8421 8422"use strict"; 8423/* WEBPACK VAR INJECTION */(function(process) {/** 8424 * Copyright (c) 2013-present, Facebook, Inc. 8425 * 8426 * This source code is licensed under the MIT license found in the 8427 * LICENSE file in the root directory of this source tree. 8428 * 8429 */ 8430 8431 8432 8433var DOMLazyTree = __webpack_require__(69); 8434var Danger = __webpack_require__(468); 8435var ReactDOMComponentTree = __webpack_require__(14); 8436var ReactInstrumentation = __webpack_require__(28); 8437 8438var createMicrosoftUnsafeLocalFunction = __webpack_require__(144); 8439var setInnerHTML = __webpack_require__(102); 8440var setTextContent = __webpack_require__(204); 8441 8442function getNodeAfter(parentNode, node) { 8443 // Special case for text components, which return [open, close] comments 8444 // from getHostNode. 8445 if (Array.isArray(node)) { 8446 node = node[1]; 8447 } 8448 return node ? node.nextSibling : parentNode.firstChild; 8449} 8450 8451/** 8452 * Inserts `childNode` as a child of `parentNode` at the `index`. 8453 * 8454 * @param {DOMElement} parentNode Parent node in which to insert. 8455 * @param {DOMElement} childNode Child node to insert. 8456 * @param {number} index Index at which to insert the child. 8457 * @internal 8458 */ 8459var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) { 8460 // We rely exclusively on `insertBefore(node, null)` instead of also using 8461 // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so 8462 // we are careful to use `null`.) 8463 parentNode.insertBefore(childNode, referenceNode); 8464}); 8465 8466function insertLazyTreeChildAt(parentNode, childTree, referenceNode) { 8467 DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode); 8468} 8469 8470function moveChild(parentNode, childNode, referenceNode) { 8471 if (Array.isArray(childNode)) { 8472 moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode); 8473 } else { 8474 insertChildAt(parentNode, childNode, referenceNode); 8475 } 8476} 8477 8478function removeChild(parentNode, childNode) { 8479 if (Array.isArray(childNode)) { 8480 var closingComment = childNode[1]; 8481 childNode = childNode[0]; 8482 removeDelimitedText(parentNode, childNode, closingComment); 8483 parentNode.removeChild(closingComment); 8484 } 8485 parentNode.removeChild(childNode); 8486} 8487 8488function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) { 8489 var node = openingComment; 8490 while (true) { 8491 var nextNode = node.nextSibling; 8492 insertChildAt(parentNode, node, referenceNode); 8493 if (node === closingComment) { 8494 break; 8495 } 8496 node = nextNode; 8497 } 8498} 8499 8500function removeDelimitedText(parentNode, startNode, closingComment) { 8501 while (true) { 8502 var node = startNode.nextSibling; 8503 if (node === closingComment) { 8504 // The closing comment is removed by ReactMultiChild. 8505 break; 8506 } else { 8507 parentNode.removeChild(node); 8508 } 8509 } 8510} 8511 8512function replaceDelimitedText(openingComment, closingComment, stringText) { 8513 var parentNode = openingComment.parentNode;
8514 var nodeAfterComment = openingComment.nextSibling; 8515 if (nodeAfterComment === closingComment) { 8516 // There are no text nodes between the opening and closing comments; insert 8517 // a new one if stringText isn't empty. 8518 if (stringText) { 8519 insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment); 8520 } 8521 } else { 8522 if (stringText) { 8523 // Set the text content of the first node after the opening comment, and 8524 // remove all following nodes up until the closing comment. 8525 setTextContent(nodeAfterComment, stringText); 8526 removeDelimitedText(parentNode, nodeAfterComment, closingComment); 8527 } else { 8528 removeDelimitedText(parentNode, openingComment, closingComment); 8529 } 8530 } 8531 8532 if (process.env.NODE_ENV !== 'production') { 8533 ReactInstrumentation.debugTool.onHostOperation({ 8534 instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 8535 type: 'replace text', 8536 payload: stringText 8537 }); 8538 } 8539} 8540 8541var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup; 8542if (process.env.NODE_ENV !== 'production') { 8543 dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) { 8544 Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup); 8545 if (prevInstance._debugID !== 0) { 8546 ReactInstrumentation.debugTool.onHostOperation({ 8547 instanceID: prevInstance._debugID, 8548 type: 'replace with', 8549 payload: markup.toString() 8550 }); 8551 } else { 8552 var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node); 8553 if (nextInstance._debugID !== 0) { 8554 ReactInstrumentation.debugTool.onHostOperation({ 8555 instanceID: nextInstance._debugID, 8556 type: 'mount', 8557 payload: markup.toString() 8558 }); 8559 } 8560 } 8561 }; 8562} 8563 8564/** 8565 * Operations for updating with DOM children. 8566 */ 8567var DOMChildrenOperations = { 8568 dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup, 8569 8570 replaceDelimitedText: replaceDelimitedText, 8571 8572 /** 8573 * Updates a component's children by processing a series of updates. The 8574 * update configurations are each expected to have a `parentNode` property. 8575 * 8576 * @param {array<object>} updates List of update configurations. 8577 * @internal 8578 */ 8579 processUpdates: function (parentNode, updates) { 8580 if (process.env.NODE_ENV !== 'production') { 8581 var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID; 8582 } 8583 8584 for (var k = 0; k < updates.length; k++) { 8585 var update = updates[k]; 8586 switch (update.type) { 8587 case 'INSERT_MARKUP': 8588 insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode)); 8589 if (process.env.NODE_ENV !== 'production') { 8590 ReactInstrumentation.debugTool.onHostOperation({ 8591 instanceID: parentNodeDebugID, 8592 type: 'insert child', 8593 payload: { 8594 toIndex: update.toIndex, 8595 content: update.content.toString() 8596 } 8597 }); 8598 } 8599 break; 8600 case 'MOVE_EXISTING': 8601 moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode)); 8602 if (process.env.NODE_ENV !== 'production') { 8603 ReactInstrumentation.debugTool.onHostOperation({ 8604 instanceID: parentNodeDebugID, 8605 type: 'move child', 8606 payload: { fromIndex: update.fromIndex, toIndex: update.toIndex } 8607 }); 8608 } 8609 break; 8610 case 'SET_MARKUP': 8611 setInnerHTML(parentNode, update.content); 8612 if (process.env.NODE_ENV !== 'production') { 8613 ReactInstrumentation.debugTool.onHostOperation({ 8614 instanceID: parentNodeDebugID, 8615 type: 'replace children', 8616 payload: update.content.toString() 8617 }); 8618 } 8619 break; 8620 case 'TEXT_CONTENT': 8621 setTextContent(parentNode, update.content); 8622 if (process.env.NODE_ENV !== 'production') { 8623 ReactInstrumentation.debugTool.onHostOperation({ 8624 instanceID: parentNodeDebugID, 8625 type: 'replace text', 8626 payload: update.content.toString() 8627 }); 8628 } 8629 break; 8630 case 'REMOVE_NODE': 8631 removeChild(parentNode, update.fromNode); 8632 if (process.env.NODE_ENV !== 'production') { 8633 ReactInstrumentation.debugTool.onHostOperation({ 8634 instanceID: parentNodeDebugID, 8635 type: 'remove child', 8636 payload: { fromIndex: update.fromIndex } 8637 }); 8638 } 8639 break; 8640 } 8641 } 8642 } 8643}; 8644 8645module.exports = DOMChildrenOperations; 8646/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 8647 8648/***/ }), 8649/* 143 */ 8650/***/ (function(module, exports, __webpack_require__) { 8651 8652"use strict"; 8653/** 8654 * Copyright (c) 2013-present, Facebook, Inc. 8655 * 8656 * This source code is licensed under the MIT license found in the 8657 * LICENSE file in the root directory of this source tree. 8658 * 8659 */ 8660 8661 8662 8663var DOMNamespaces = { 8664 html: 'http://www.w3.org/1999/xhtml', 8665 mathml: 'http://www.w3.org/1998/Math/MathML', 8666 svg: 'http://www.w3.org/2000/svg' 8667}; 8668 8669module.exports = DOMNamespaces; 8670 8671/***/ }), 8672/* 144 */ 8673/***/ (function(module, exports, __webpack_require__) { 8674 8675"use strict"; 8676/** 8677 * Copyright (c) 2013-present, Facebook, Inc. 8678 * 8679 * This source code is licensed under the MIT license found in the 8680 * LICENSE file in the root directory of this source tree. 8681 * 8682 */ 8683 8684/* globals MSApp */ 8685 8686 8687 8688/** 8689 * Create a function which has 'unsafe' privileges (required by windows8 apps) 8690 */ 8691 8692var createMicrosoftUnsafeLocalFunction = function (func) { 8693 if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { 8694 return function (arg0, arg1, arg2, arg3) { 8695 MSApp.execUnsafeLocalFunction(function () { 8696 return func(arg0, arg1, arg2, arg3); 8697 }); 8698 }; 8699 } else { 8700 return func; 8701 } 8702}; 8703 8704module.exports = createMicrosoftUnsafeLocalFunction; 8705 8706/***/ }), 8707/* 145 */ 8708/***/ (function(module, exports, __webpack_require__) { 8709 8710"use strict"; 8711/* WEBPACK VAR INJECTION */(function(process) {/** 8712 * Copyright (c) 2013-present, Facebook, Inc. 8713 * 8714 * This source code is licensed under the MIT license found in the 8715 * LICENSE file in the root directory of this source tree. 8716 * 8717 */ 8718 8719 8720 8721var _prodInvariant = __webpack_require__(8); 8722 8723var ReactPropTypesSecret = __webpack_require__(208); 8724var propTypesFactory = __webpack_require__(193); 8725 8726var React = __webpack_require__(66);
8727var PropTypes = propTypesFactory(React.isValidElement); 8728 8729var invariant = __webpack_require__(2); 8730var warning = __webpack_require__(3); 8731 8732var hasReadOnlyValue = { 8733 button: true, 8734 checkbox: true, 8735 image: true, 8736 hidden: true, 8737 radio: true, 8738 reset: true, 8739 submit: true 8740}; 8741 8742function _assertSingleLink(inputProps) { 8743 !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0; 8744} 8745function _assertValueLink(inputProps) { 8746 _assertSingleLink(inputProps); 8747 !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\'t want to use valueLink.') : _prodInvariant('88') : void 0; 8748} 8749 8750function _assertCheckedLink(inputProps) { 8751 _assertSingleLink(inputProps); 8752 !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\'t want to use checkedLink') : _prodInvariant('89') : void 0; 8753} 8754 8755var propTypes = { 8756 value: function (props, propName, componentName) { 8757 if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) { 8758 return null; 8759 } 8760 return 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`.'); 8761 }, 8762 checked: function (props, propName, componentName) { 8763 if (!props[propName] || props.onChange || props.readOnly || props.disabled) { 8764 return null; 8765 } 8766 return 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`.'); 8767 }, 8768 onChange: PropTypes.func 8769}; 8770 8771var loggedTypeFailures = {}; 8772function getDeclarationErrorAddendum(owner) { 8773 if (owner) { 8774 var name = owner.getName(); 8775 if (name) { 8776 return ' Check the render method of `' + name + '`.'; 8777 } 8778 } 8779 return ''; 8780} 8781 8782/** 8783 * Provide a linked `value` attribute for controlled forms. You should not use 8784 * this outside of the ReactDOM controlled form components. 8785 */ 8786var LinkedValueUtils = { 8787 checkPropTypes: function (tagName, props, owner) { 8788 for (var propName in propTypes) { 8789 if (propTypes.hasOwnProperty(propName)) { 8790 var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret); 8791 } 8792 if (error instanceof Error && !(error.message in loggedTypeFailures)) { 8793 // Only monitor this failure once because there tends to be a lot of the 8794 // same error. 8795 loggedTypeFailures[error.message] = true; 8796 8797 var addendum = getDeclarationErrorAddendum(owner); 8798 process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0; 8799 } 8800 } 8801 }, 8802 8803 /** 8804 * @param {object} inputProps Props for form component 8805 * @return {*} current value of the input either from value prop or link. 8806 */ 8807 getValue: function (inputProps) { 8808 if (inputProps.valueLink) { 8809 _assertValueLink(inputProps); 8810 return inputProps.valueLink.value; 8811 } 8812 return inputProps.value; 8813 }, 8814 8815 /** 8816 * @param {object} inputProps Props for form component 8817 * @return {*} current checked status of the input either from checked prop 8818 * or link. 8819 */ 8820 getChecked: function (inputProps) { 8821 if (inputProps.checkedLink) { 8822 _assertCheckedLink(inputProps); 8823 return inputProps.checkedLink.value; 8824 } 8825 return inputProps.checked; 8826 }, 8827 8828 /** 8829 * @param {object} inputProps Props for form component 8830 * @param {SyntheticEvent} event change event to handle 8831 */ 8832 executeOnChange: function (inputProps, event) { 8833 if (inputProps.valueLink) { 8834 _assertValueLink(inputProps); 8835 return inputProps.valueLink.requestChange(event.target.value); 8836 } else if (inputProps.checkedLink) { 8837 _assertCheckedLink(inputProps); 8838 return inputProps.checkedLink.requestChange(event.target.checked); 8839 } else if (inputProps.onChange) { 8840 return inputProps.onChange.call(undefined, event); 8841 } 8842 } 8843}; 8844 8845module.exports = LinkedValueUtils; 8846/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 8847 8848/***/ }), 8849/* 146 */ 8850/***/ (function(module, exports, __webpack_require__) { 8851 8852"use strict"; 8853/* WEBPACK VAR INJECTION */(function(process) {/** 8854 * Copyright (c) 2014-present, Facebook, Inc. 8855 * 8856 * This source code is licensed under the MIT license found in the 8857 * LICENSE file in the root directory of this source tree. 8858 * 8859 * 8860 */ 8861 8862 8863 8864var _prodInvariant = __webpack_require__(8); 8865 8866var invariant = __webpack_require__(2); 8867 8868var injected = false;
8869 8870var ReactComponentEnvironment = { 8871 /** 8872 * Optionally injectable hook for swapping out mount images in the middle of 8873 * the tree. 8874 */ 8875 replaceNodeWithMarkup: null, 8876 8877 /** 8878 * Optionally injectable hook for processing a queue of child updates. Will 8879 * later move into MultiChildComponents. 8880 */ 8881 processChildrenUpdates: null, 8882 8883 injection: { 8884 injectEnvironment: function (environment) { 8885 !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0; 8886 ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup; 8887 ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; 8888 injected = true; 8889 } 8890 } 8891}; 8892 8893module.exports = ReactComponentEnvironment; 8894/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 8895 8896/***/ }), 8897/* 147 */ 8898/***/ (function(module, exports, __webpack_require__) { 8899 8900"use strict"; 8901/** 8902 * Copyright (c) 2013-present, Facebook, Inc. 8903 * 8904 * This source code is licensed under the MIT license found in the 8905 * LICENSE file in the root directory of this source tree. 8906 * 8907 * @typechecks 8908 * 8909 */ 8910 8911/*eslint-disable no-self-compare */ 8912 8913 8914 8915var hasOwnProperty = Object.prototype.hasOwnProperty; 8916 8917/** 8918 * inlined Object.is polyfill to avoid requiring consumers ship their own 8919 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 8920 */ 8921function is(x, y) { 8922 // SameValue algorithm 8923 if (x === y) { 8924 // Steps 1-5, 7-10 8925 // Steps 6.b-6.e: +0 != -0 8926 // Added the nonzero y check to make Flow happy, but it is redundant 8927 return x !== 0 || y !== 0 || 1 / x === 1 / y; 8928 } else { 8929 // Step 6.a: NaN == NaN 8930 return x !== x && y !== y; 8931 } 8932} 8933 8934/** 8935 * Performs equality by iterating through keys on an object and returning false 8936 * when any key has values which are not strictly equal between the arguments. 8937 * Returns true when the values of all keys are strictly equal. 8938 */ 8939function shallowEqual(objA, objB) { 8940 if (is(objA, objB)) { 8941 return true; 8942 } 8943 8944 if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { 8945 return false; 8946 } 8947 8948 var keysA = Object.keys(objA); 8949 var keysB = Object.keys(objB); 8950 8951 if (keysA.length !== keysB.length) { 8952 return false; 8953 } 8954 8955 // Test for A's keys different from B. 8956 for (var i = 0; i < keysA.length; i++) { 8957 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 8958 return false; 8959 } 8960 } 8961 8962 return true; 8963} 8964 8965module.exports = shallowEqual; 8966 8967/***/ }), 8968/* 148 */ 8969/***/ (function(module, exports, __webpack_require__) { 8970 8971"use strict"; 8972/** 8973 * Copyright (c) 2013-present, Facebook, Inc. 8974 * 8975 * This source code is licensed under the MIT license found in the 8976 * LICENSE file in the root directory of this source tree. 8977 * 8978 */ 8979 8980 8981 8982/** 8983 * Given a `prevElement` and `nextElement`, determines if the existing 8984 * instance should be updated as opposed to being destroyed or replaced by a new 8985 * instance. Both arguments are elements. This ensures that this logic can 8986 * operate on stateless trees without any backing instance. 8987 * 8988 * @param {?object} prevElement 8989 * @param {?object} nextElement 8990 * @return {boolean} True if the existing instance should be updated. 8991 * @protected 8992 */ 8993 8994function shouldUpdateReactComponent(prevElement, nextElement) { 8995 var prevEmpty = prevElement === null || prevElement === false; 8996 var nextEmpty = nextElement === null || nextElement === false; 8997 if (prevEmpty || nextEmpty) { 8998 return prevEmpty === nextEmpty; 8999 } 9000 9001 var prevType = typeof prevElement; 9002 var nextType = typeof nextElement; 9003 if (prevType === 'string' || prevType === 'number') { 9004 return nextType === 'string' || nextType === 'number'; 9005 } else { 9006 return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; 9007 } 9008} 9009 9010module.exports = shouldUpdateReactComponent; 9011 9012/***/ }), 9013/* 149 */ 9014/***/ (function(module, exports, __webpack_require__) { 9015 9016"use strict"; 9017/** 9018 * Copyright (c) 2013-present, Facebook, Inc. 9019 * 9020 * This source code is licensed under the MIT license found in the 9021 * LICENSE file in the root directory of this source tree. 9022 * 9023 * 9024 */ 9025 9026 9027 9028/** 9029 * Escape and wrap key so it is safe to use as a reactid 9030 * 9031 * @param {string} key to be escaped. 9032 * @return {string} the escaped key. 9033 */ 9034 9035function escape(key) { 9036 var escapeRegex = /[=:]/g; 9037 var escaperLookup = { 9038 '=': '=0', 9039 ':': '=2' 9040 }; 9041 var escapedString = ('' + key).replace(escapeRegex, function (match) { 9042 return escaperLookup[match]; 9043 }); 9044 9045 return '$' + escapedString; 9046} 9047 9048/** 9049 * Unescape and unwrap key for human-readable display 9050 * 9051 * @param {string} key to unescape. 9052 * @return {string} the unescaped key. 9053 */ 9054function unescape(key) { 9055 var unescapeRegex = /(=0|=2)/g; 9056 var unescaperLookup = { 9057 '=0': '=', 9058 '=2': ':' 9059 }; 9060 var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); 9061 9062 return ('' + keySubstring).replace(unescapeRegex, function (match) { 9063 return unescaperLookup[match]; 9064 }); 9065} 9066 9067var KeyEscapeUtils = { 9068 escape: escape, 9069 unescape: unescape 9070}; 9071 9072module.exports = KeyEscapeUtils; 9073 9074/***/ }), 9075/* 150 */ 9076/***/ (function(module, exports, __webpack_require__) { 9077 9078"use strict"; 9079/* WEBPACK VAR INJECTION */(function(process) {/** 9080 * Copyright (c) 2015-present, Facebook, Inc. 9081 * 9082 * This source code is licensed under the MIT license found in the 9083 * LICENSE file in the root directory of this source tree. 9084 * 9085 */ 9086 9087 9088 9089var _prodInvariant = __webpack_require__(8); 9090 9091var ReactCurrentOwner = __webpack_require__(39); 9092var ReactInstanceMap = __webpack_require__(79); 9093var ReactInstrumentation = __webpack_require__(28); 9094var ReactUpdates = __webpack_require__(40); 9095 9096var invariant = __webpack_require__(2); 9097var warning = __webpack_require__(3); 9098 9099function enqueueUpdate(internalInstance) { 9100 ReactUpdates.enqueueUpdate(internalInstance); 9101} 9102 9103function formatUnexpectedArgument(arg) { 9104 var type = typeof arg; 9105 if (type !== 'object') { 9106 return type; 9107 } 9108 var displayName = arg.constructor && arg.constructor.name || type; 9109 var keys = Object.keys(arg); 9110 if (keys.length > 0 && keys.length < 20) {
9111 return displayName + ' (keys: ' + keys.join(', ') + ')'; 9112 } 9113 return displayName; 9114} 9115 9116function getInternalInstanceReadyForUpdate(publicInstance, callerName) { 9117 var internalInstance = ReactInstanceMap.get(publicInstance); 9118 if (!internalInstance) { 9119 if (process.env.NODE_ENV !== 'production') { 9120 var ctor = publicInstance.constructor; 9121 // Only warn when we have a callerName. Otherwise we should be silent. 9122 // We're probably calling from enqueueCallback. We don't want to warn 9123 // there because we already warned for the corresponding lifecycle method. 9124 process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0; 9125 } 9126 return null; 9127 } 9128 9129 if (process.env.NODE_ENV !== 'production') { 9130 process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + "within `render` or another component's constructor). Render methods " + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0; 9131 } 9132 9133 return internalInstance; 9134} 9135 9136/** 9137 * ReactUpdateQueue allows for state updates to be scheduled into a later 9138 * reconciliation step. 9139 */ 9140var ReactUpdateQueue = { 9141 /** 9142 * Checks whether or not this composite component is mounted. 9143 * @param {ReactClass} publicInstance The instance we want to test. 9144 * @return {boolean} True if mounted, false otherwise. 9145 * @protected 9146 * @final 9147 */ 9148 isMounted: function (publicInstance) { 9149 if (process.env.NODE_ENV !== 'production') { 9150 var owner = ReactCurrentOwner.current; 9151 if (owner !== null) { 9152 process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A c
9152omponent') : void 0; 9153 owner._warnedAboutRefsInRender = true; 9154 } 9155 } 9156 var internalInstance = ReactInstanceMap.get(publicInstance); 9157 if (internalInstance) { 9158 // During componentWillMount and render this will still be null but after 9159 // that will always render to something. At least for now. So we can use 9160 // this hack. 9161 return !!internalInstance._renderedComponent; 9162 } else { 9163 return false; 9164 } 9165 }, 9166 9167 /** 9168 * Enqueue a callback that will be executed after all the pending updates 9169 * have processed. 9170 * 9171 * @param {ReactClass} publicInstance The instance to use as `this` context. 9172 * @param {?function} callback Called after state is updated. 9173 * @param {string} callerName Name of the calling function in the public API. 9174 * @internal 9175 */ 9176 enqueueCallback: function (publicInstance, callback, callerName) { 9177 ReactUpdateQueue.validateCallback(callback, callerName); 9178 var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); 9179 9180 // Previously we would throw an error if we didn't have an internal 9181 // instance. Since we want to make it a no-op instead, we mirror the same 9182 // behavior we have in other enqueue* methods. 9183 // We also need to ignore callbacks in componentWillMount. See 9184 // enqueueUpdates. 9185 if (!internalInstance) { 9186 return null; 9187 } 9188 9189 if (internalInstance._pendingCallbacks) { 9190 internalInstance._pendingCallbacks.push(callback); 9191 } else { 9192 internalInstance._pendingCallbacks = [callback]; 9193 } 9194 // TODO: The callback here is ignored when setState is called from 9195 // componentWillMount. Either fix it or disallow doing so completely in 9196 // favor of getInitialState. Alternatively, we can disallow 9197 // componentWillMount during server-side rendering. 9198 enqueueUpdate(internalInstance); 9199 }, 9200 9201 enqueueCallbackInternal: function (internalInstance, callback) { 9202 if (internalInstance._pendingCallbacks) { 9203 internalInstance._pendingCallbacks.push(callback); 9204 } else { 9205 internalInstance._pendingCallbacks = [callback]; 9206 } 9207 enqueueUpdate(internalInstance); 9208 }, 9209 9210 /** 9211 * Forces an update. This should only be invoked when it is known with 9212 * certainty that we are **not** in a DOM transaction. 9213 * 9214 * You may want to call this when you know that some deeper aspect of the 9215 * component's state has changed but `setState` was not called. 9216 * 9217 * This will not invoke `shouldComponentUpdate`, but it will invoke 9218 * `componentWillUpdate` and `componentDidUpdate`. 9219 * 9220 * @param {ReactClass} publicInstance The instance that should rerender. 9221 * @internal 9222 */ 9223 enqueueForceUpdate: function (publicInstance) { 9224 var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate'); 9225 9226 if (!internalInstance) { 9227 return; 9228 } 9229 9230 internalInstance._pendingForceUpdate = true; 9231 9232 enqueueUpdate(internalInstance); 9233 }, 9234 9235 /** 9236 * Replaces all of the state. Always use this or `setState` to mutate state. 9237 * You should treat `this.state` as immutable. 9238 * 9239 * There is no guarantee that `this.state` will be immediately updated, so 9240 * accessing `this.state` after calling this method may return the old value. 9241 * 9242 * @param {ReactClass} publicInstance The instance that should rerender. 9243 * @param {object} completeState Next state. 9244 * @internal 9245 */ 9246 enqueueReplaceState: function (publicInstance, completeState, callback) { 9247 var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState'); 9248 9249 if (!internalInstance) { 9250 return; 9251 } 9252 9253 internalInstance._pendingStateQueue = [completeState]; 9254 internalInstance._pendingReplaceState = true; 9255 9256 // Future-proof 15.5 9257 if (callback !== undefined && callback !== null) { 9258 ReactUpdateQueue.validateCallback(callback, 'replaceState'); 9259 if (internalInstance._pendingCallbacks) { 9260 internalInstance._pendingCallbacks.push(callback); 9261 } else { 9262 internalInstance._pendingCallbacks = [callback]; 9263 } 9264 } 9265 9266 enqueueUpdate(internalInstance); 9267 }, 9268 9269 /** 9270 * Sets a subset of the state. This only exists because _pendingState is 9271 * internal. This provides a merging strategy that is not available to deep 9272 * properties which is confusing. TODO: Expose pendingState or don't use it 9273 * during the merge. 9274 * 9275 * @param {ReactClass} publicInstance The instance that should rerender. 9276 * @param {object} partialState Next partial state to be merged with state. 9277 * @internal 9278 */ 9279 enqueueSetState: function (publicInstance, partialState) { 9280 if (process.env.NODE_ENV !== 'production') { 9281 ReactInstrumentation.debugTool.onSetState(); 9282 process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0; 9283 } 9284 9285 var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState'); 9286 9287 if (!internalInstance) { 9288 return; 9289 } 9290 9291 var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); 9292 queue.push(partialState); 9293 9294 enqueueUpdate(internalInstance); 9295 }, 9296 9297 enqueueElementInternal: function (internalInstance, nextElement, nextContext) { 9298 internalInstance._pendingElement = nextElement; 9299 // TODO: introduce _pendingContext instead of setting it directly. 9300 internalInstance._context = nextContext; 9301 enqueueUpdate(internalInstance); 9302 }, 9303 9304 validateCallback: function (callback, callerName) { 9305 !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0; 9306 } 9307}; 9308 9309module.exports = ReactUpdateQueue; 9310/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 9311 9312/***/ }), 9313/* 151 */ 9314/***/ (function(module, exports, __webpack_require__) { 9315 9316"use strict"; 9317/* WEBPACK VAR INJECTION */(function(process) {/** 9318 * Copyright (c) 2015-present, Facebook, Inc. 9319 * 9320 * This source code is licensed under the MIT license found in the 9321 * LICENSE file in the root directory of this source tree. 9322 * 9323 */ 9324 9325 9326 9327var _assign = __webpack_require__(10); 9328 9329var emptyFunction = __webpack_require__(38); 9330var warning = __webpack_require__(3); 9331 9332var validateDOMNesting = emptyFunction; 9333 9334if (process.env.NODE_ENV !== 'production') { 9335 // This validation code was written based on the HTML5 parsing spec: 9336 // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope 9337 // 9338 // Note: this does not catch all invalid nesting, nor does it try to (as it's 9339 // not clear what practical benefit doing so provides); instead, we warn only 9340 // for cases where the parser will give a parse tree differing from what React 9341 // intended. For example, <b><div></div></b>
vendor: 6,717 bytes, lines 9341-9497
9341 is invalid but we don't warn 9342 // because it still parses correctly; we do warn for other cases like nested 9343 // <p> tags where the beginning of the second element implicitly closes the 9344 // first, causing a confusing mess. 9345 9346 // https://html.spec.whatwg.org/multipage/syntax.html#special 9347 var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; 9348 9349 // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope 9350 var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', 9351 9352 // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point 9353 // TODO: Distinguish by namespace here -- for <title>, including it here 9354 // errs on the side of fewer warnings 9355 'foreignObject', 'desc', 'title']; 9356 9357 // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope 9358 var buttonScopeTags = inScopeTags.concat(['button']); 9359 9360 // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags 9361 var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt']; 9362 9363 var emptyAncestorInfo = { 9364 current: null, 9365 9366 formTag: null, 9367 aTagInScope: null, 9368 buttonTagInScope: null, 9369 nobrTagInScope: null, 9370 pTagInButtonScope: null, 9371 9372 listItemTagAutoclosing: null, 9373 dlItemTagAutoclosing: null 9374 }; 9375 9376 var updatedAncestorInfo = function (oldInfo, tag, instance) { 9377 var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo); 9378 var info = { tag: tag, instance: instance }; 9379 9380 if (inScopeTags.indexOf(tag) !== -1) { 9381 ancestorInfo.aTagInScope = null; 9382 ancestorInfo.buttonTagInScope = null; 9383 ancestorInfo.nobrTagInScope = null; 9384 } 9385 if (buttonScopeTags.indexOf(tag) !== -1) { 9386 ancestorInfo.pTagInButtonScope = null; 9387 } 9388 9389 // See rules for 'li', 'dd', 'dt' start tags in 9390 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody 9391 if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') { 9392 ancestorInfo.listItemTagAutoclosing = null; 9393 ancestorInfo.dlItemTagAutoclosing = null; 9394 } 9395 9396 ancestorInfo.current = info; 9397 9398 if (tag === 'form') { 9399 ancestorInfo.formTag = info; 9400 } 9401 if (tag === 'a') { 9402 ancestorInfo.aTagInScope = info; 9403 } 9404 if (tag === 'button') { 9405 ancestorInfo.buttonTagInScope = info; 9406 } 9407 if (tag === 'nobr') { 9408 ancestorInfo.nobrTagInScope = info; 9409 } 9410 if (tag === 'p') { 9411 ancestorInfo.pTagInButtonScope = info; 9412 } 9413 if (tag === 'li') { 9414 ancestorInfo.listItemTagAutoclosing = info; 9415 } 9416 if (tag === 'dd' || tag === 'dt') { 9417 ancestorInfo.dlItemTagAutoclosing = info; 9418 } 9419 9420 return ancestorInfo; 9421 }; 9422 9423 /** 9424 * Returns whether 9425 */ 9426 var isTagValidWithParent = function (tag, parentTag) { 9427 // First, let's check if we're in an unusual parsing mode... 9428 switch (parentTag) { 9429 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect 9430 case 'select': 9431 return tag === 'option' || tag === 'optgroup' || tag === '#text'; 9432 case 'optgroup': 9433 return tag === 'option' || tag === '#text'; 9434 // Strictly speaking, seeing an <option> doesn't mean we're in a <select> 9435 // but 9436 case 'option': 9437 return tag === '#text'; 9438 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd 9439 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption 9440 // No special behavior since these rules fall back to "in body" mode for 9441 // all except special table nodes which cause bad parsing behavior anyway. 9442 9443 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr 9444 case 'tr': 9445 return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; 9446 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody 9447 case 'tbody': 9448 case 'thead': 9449 case 'tfoot': 9450 return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; 9451 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup 9452 case 'colgroup': 9453 return tag === 'col' || tag === 'template'; 9454 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable 9455 case 'table': 9456 return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; 9457 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead 9458 case 'head': 9459 return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; 9460 // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element 9461 case 'html': 9462 return tag === 'head' || tag === 'body'; 9463 case '#document': 9464 return tag === 'html'; 9465 } 9466 9467 // Probably in the "in body" parsing mode, so we outlaw only tag combos 9468 // where the parsing rules cause implicit opens or closes to be added. 9469 // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody 9470 switch (tag) { 9471 case 'h1': 9472 case 'h2': 9473 case 'h3': 9474 case 'h4': 9475 case 'h5': 9476 case 'h6': 9477 return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6'; 9478 9479 case 'rp': 9480 case 'rt': 9481 return impliedEndTags.indexOf(parentTag) === -1; 9482 9483 case 'body': 9484 case 'caption': 9485 case 'col': 9486 case 'colgroup': 9487 case 'frame': 9488 case 'head': 9489 case 'html': 9490 case 'tbody': 9491 case 'td': 9492 case 'tfoot': 9493 case 'th': 9494 case 'thead': 9495 case 'tr': 9496 // These tags are only valid with a few parents that have special child 9497 // parsing rules -- if we're down here, then none of those matched and
9498 // so we allow it only if we don't know what the parent is, as all other 9499 // cases are invalid. 9500 return parentTag == null; 9501 } 9502 9503 return true; 9504 }; 9505 9506 /** 9507 * Returns whether 9508 */ 9509 var findInvalidAncestorForTag = function (tag, ancestorInfo) { 9510 switch (tag) { 9511 case 'address': 9512 case 'article': 9513 case 'aside': 9514 case 'blockquote': 9515 case 'center': 9516 case 'details': 9517 case 'dialog': 9518 case 'dir': 9519 case 'div': 9520 case 'dl': 9521 case 'fieldset': 9522 case 'figcaption': 9523 case 'figure': 9524 case 'footer': 9525 case 'header': 9526 case 'hgroup': 9527 case 'main': 9528 case 'menu': 9529 case 'nav': 9530 case 'ol': 9531 case 'p': 9532 case 'section': 9533 case 'summary': 9534 case 'ul': 9535 case 'pre': 9536 case 'listing': 9537 case 'table': 9538 case 'hr': 9539 case 'xmp': 9540 case 'h1': 9541 case 'h2': 9542 case 'h3': 9543 case 'h4': 9544 case 'h5': 9545 case 'h6': 9546 return ancestorInfo.pTagInButtonScope; 9547 9548 case 'form': 9549 return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope; 9550 9551 case 'li': 9552 return ancestorInfo.listItemTagAutoclosing; 9553 9554 case 'dd': 9555 case 'dt': 9556 return ancestorInfo.dlItemTagAutoclosing; 9557 9558 case 'button': 9559 return ancestorInfo.buttonTagInScope; 9560 9561 case 'a': 9562 // Spec says something about storing a list of markers, but it sounds 9563 // equivalent to this check. 9564 return ancestorInfo.aTagInScope; 9565 9566 case 'nobr': 9567 return ancestorInfo.nobrTagInScope; 9568 } 9569 9570 return null; 9571 }; 9572 9573 /** 9574 * Given a ReactCompositeComponent instance, return a list of its recursive 9575 * owners, starting at the root and ending with the instance itself. 9576 */ 9577 var findOwnerStack = function (instance) { 9578 if (!instance) { 9579 return []; 9580 } 9581 9582 var stack = []; 9583 do { 9584 stack.push(instance); 9585 } while (instance = instance._currentElement._owner); 9586 stack.reverse(); 9587 return stack; 9588 }; 9589 9590 var didWarn = {}; 9591 9592 validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) { 9593 ancestorInfo = ancestorInfo || emptyAncestorInfo; 9594 var parentInfo = ancestorInfo.current; 9595 var parentTag = parentInfo && parentInfo.tag; 9596 9597 if (childText != null) { 9598 process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0; 9599 childTag = '#text'; 9600 } 9601 9602 var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; 9603 var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); 9604 var problematic = invalidParent || invalidAncestor; 9605 9606 if (problematic) { 9607 var ancestorTag = problematic.tag; 9608 var ancestorInstance = problematic.instance; 9609 9610 var childOwner = childInstance && childInstance._currentElement._owner; 9611 var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner; 9612 9613 var childOwners = findOwnerStack(childOwner); 9614 var ancestorOwners = findOwnerStack(ancestorOwner); 9615 9616 var minStackLen = Math.min(childOwners.length, ancestorOwners.length); 9617 var i; 9618 9619 var deepestCommon = -1; 9620 for (i = 0; i < minStackLen; i++) { 9621 if (childOwners[i] === ancestorOwners[i]) { 9622 deepestCommon = i; 9623 } else { 9624 break; 9625 } 9626 } 9627 9628 var UNKNOWN = '(unknown)'; 9629 var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) { 9630 return inst.getName() || UNKNOWN; 9631 }); 9632 var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) { 9633 return inst.getName() || UNKNOWN; 9634 }); 9635 var ownerInfo = [].concat( 9636 // If the parent and child instances have a common owner ancestor, start 9637 // with that -- otherwise we just start with the parent's owners. 9638 deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag, 9639 // If we're warning about an invalid (non-parent) ancestry, add '...' 9640 invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > '); 9641 9642 var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo; 9643 if (didWarn[warnKey]) { 9644 return; 9645 } 9646 didWarn[warnKey] = true; 9647 9648 var tagDisplayName = childTag; 9649 var whitespaceInfo = ''; 9650 if (childTag === '#text') { 9651 if (/\S/.test(childText)) { 9652 tagDisplayName = 'Text nodes'; 9653 } else { 9654 tagDisplayName = 'Whitespace text nodes'; 9655 whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.'; 9656 } 9657 } else { 9658 tagDisplayName = '<' + childTag + '>'; 9659 } 9660 9661 if (invalidParent) { 9662 var info = ''; 9663 if (ancestorTag === 'table' && childTag === 'tr') { 9664 info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; 9665 } 9666 process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0; 9667 } else { 9668 process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0; 9669 } 9670 } 9671 }; 9672 9673 validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo; 9674 9675 // For testing 9676 validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) { 9677 ancestorInfo = ancestorInfo || emptyAncestorInfo; 9678 var parentInfo = ancestorInfo.current; 9679 var parentTag = parentInfo && parentInfo.tag;
9680 return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo); 9681 }; 9682} 9683 9684module.exports = validateDOMNesting; 9685/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 9686 9687/***/ }), 9688/* 152 */ 9689/***/ (function(module, exports, __webpack_require__) { 9690 9691"use strict"; 9692/** 9693 * Copyright (c) 2013-present, Facebook, Inc. 9694 * 9695 * This source code is licensed under the MIT license found in the 9696 * LICENSE file in the root directory of this source tree. 9697 * 9698 */ 9699 9700 9701 9702/** 9703 * `charCode` represents the actual "character code" and is safe to use with 9704 * `String.fromCharCode`. As such, only keys that correspond to printable 9705 * characters produce a valid `charCode`, the only exception to this is Enter. 9706 * The Tab-key is considered non-printable and does not have a `charCode`, 9707 * presumably because it does not produce a tab-character in browsers. 9708 * 9709 * @param {object} nativeEvent Native browser event. 9710 * @return {number} Normalized `charCode` property. 9711 */ 9712 9713function getEventCharCode(nativeEvent) { 9714 var charCode; 9715 var keyCode = nativeEvent.keyCode; 9716 9717 if ('charCode' in nativeEvent) { 9718 charCode = nativeEvent.charCode; 9719 9720 // FF does not set `charCode` for the Enter-key, check against `keyCode`. 9721 if (charCode === 0 && keyCode === 13) { 9722 charCode = 13; 9723 } 9724 } else {
vendor: 8,566 bytes, lines 9725-10022
9725 // IE8 does not implement `charCode`, but `keyCode` has the correct value. 9726 charCode = keyCode; 9727 } 9728 9729 // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. 9730 // Must not discard the (non-)printable Enter-key. 9731 if (charCode >= 32 || charCode === 13) { 9732 return charCode; 9733 } 9734 9735 return 0; 9736} 9737 9738module.exports = getEventCharCode; 9739 9740/***/ }), 9741/* 153 */ 9742/***/ (function(module, exports, __webpack_require__) { 9743 9744"use strict"; 9745 9746 9747var AlgoliaSearch = __webpack_require__(537); 9748var createAlgoliasearch = __webpack_require__(548); 9749 9750module.exports = createAlgoliasearch(AlgoliaSearch); 9751 9752 9753/***/ }), 9754/* 154 */ 9755/***/ (function(module, exports) { 9756 9757module.exports = function deprecate(fn, message) { 9758 var warned = false; 9759 9760 function deprecated() { 9761 if (!warned) { 9762 /* eslint no-console:0 */ 9763 console.warn(message); 9764 warned = true; 9765 } 9766 9767 return fn.apply(this, arguments); 9768 } 9769 9770 return deprecated; 9771}; 9772 9773 9774/***/ }), 9775/* 155 */ 9776/***/ (function(module, exports) { 9777 9778module.exports = function deprecatedMessage(previousUsage, newUsage) { 9779 var githubAnchorLink = previousUsage.toLowerCase() 9780 .replace(/[\.\(\)]/g, ''); 9781 9782 return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage + 9783 '`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#' + githubAnchorLink; 9784}; 9785 9786 9787/***/ }), 9788/* 156 */ 9789/***/ (function(module, exports, __webpack_require__) { 9790 9791module.exports = !__webpack_require__(12) && !__webpack_require__(6)(function () { 9792 return Object.defineProperty(__webpack_require__(106)('div'), 'a', { get: function () { return 7; } }).a != 7; 9793}); 9794 9795 9796/***/ }), 9797/* 157 */ 9798/***/ (function(module, exports, __webpack_require__) { 9799 9800var dP = __webpack_require__(11); 9801var anObject = __webpack_require__(4); 9802var getKeys = __webpack_require__(52); 9803 9804module.exports = __webpack_require__(12) ? Object.defineProperties : function defineProperties(O, Properties) { 9805 anObject(O); 9806 var keys = getKeys(Properties); 9807 var length = keys.length; 9808 var i = 0; 9809 var P; 9810 while (length > i) dP.f(O, P = keys[i++], Properties[P]); 9811 return O; 9812}; 9813 9814 9815/***/ }), 9816/* 158 */ 9817/***/ (function(module, exports, __webpack_require__) { 9818 9819var has = __webpack_require__(24); 9820var toIObject = __webpack_require__(25); 9821var arrayIndexOf = __webpack_require__(83)(false); 9822var IE_PROTO = __webpack_require__(111)('IE_PROTO'); 9823 9824module.exports = function (object, names) { 9825 var O = toIObject(object); 9826 var i = 0; 9827 var result = []; 9828 var key; 9829 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); 9830 // Don't enum bug & hidden keys 9831 while (names.length > i) if (has(O, key = names[i++])) { 9832 ~arrayIndexOf(result, key) || result.push(key); 9833 } 9834 return result; 9835}; 9836 9837 9838/***/ }), 9839/* 159 */ 9840/***/ (function(module, exports) { 9841 9842module.exports = function (done, value) { 9843 return { value: value, done: !!done }; 9844}; 9845 9846 9847/***/ }), 9848/* 160 */ 9849/***/ (function(module, exports, __webpack_require__) { 9850 9851"use strict"; 9852 9853var dP = __webpack_require__(11).f; 9854var create = __webpack_require__(51); 9855var redefineAll = __webpack_require__(54); 9856var ctx = __webpack_require__(30); 9857var anInstance = __webpack_require__(55); 9858var forOf = __webpack_require__(56); 9859var $iterDefine = __webpack_require__(109); 9860var step = __webpack_require__(159); 9861var setSpecies = __webpack_require__(57); 9862var DESCRIPTORS = __webpack_require__(12); 9863var fastKey = __webpack_require__(46).fastKey; 9864var validate = __webpack_require__(63); 9865var SIZE = DESCRIPTORS ? '_s' : 'size'; 9866 9867var getEntry = function (that, key) { 9868 // fast case 9869 var index = fastKey(key); 9870 var entry; 9871 if (index !== 'F') return that._i[index]; 9872 // frozen object case 9873 for (entry = that._f; entry; entry = entry.n) { 9874 if (entry.k == key) return entry; 9875 } 9876}; 9877 9878module.exports = { 9879 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { 9880 var C = wrapper(function (that, iterable) { 9881 anInstance(that, C, NAME, '_i'); 9882 that._t = NAME; // collection type 9883 that._i = create(null); // index 9884 that._f = undefined; // first entry 9885 that._l = undefined; // last entry 9886 that[SIZE] = 0; // size 9887 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 9888 }); 9889 redefineAll(C.prototype, { 9890 // 23.1.3.1 Map.prototype.clear() 9891 // 23.2.3.2 Set.prototype.clear() 9892 clear: function clear() { 9893 for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { 9894 entry.r = true; 9895 if (entry.p) entry.p = entry.p.n = undefined; 9896 delete data[entry.i]; 9897 } 9898 that._f = that._l = undefined; 9899 that[SIZE] = 0; 9900 }, 9901 // 23.1.3.3 Map.prototype.delete(key) 9902 // 23.2.3.4 Set.prototype.delete(value) 9903 'delete': function (key) { 9904 var that = validate(this, NAME); 9905 var entry = getEntry(that, key); 9906 if (entry) { 9907 var next = entry.n; 9908 var prev = entry.p; 9909 delete that._i[entry.i]; 9910 entry.r = true; 9911 if (prev) prev.n = next; 9912 if (next) next.p = prev; 9913 if (that._f == entry) that._f = next; 9914 if (that._l == entry) that._l = prev; 9915 that[SIZE]--; 9916 } return !!entry; 9917 }, 9918 // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) 9919 // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) 9920 forEach: function forEach(callbackfn /* , that = undefined */) { 9921 validate(this, NAME); 9922 var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); 9923 var entry; 9924 while (entry = entry ? entry.n : this._f) { 9925 f(entry.v, entry.k, this); 9926 // revert to the last existing entry 9927 while (entry && entry.r) entry = entry.p; 9928 } 9929 }, 9930 // 23.1.3.7 Map.prototype.has(key) 9931 // 23.2.3.7 Set.prototype.has(value) 9932 has: function has(key) { 9933 return !!getEntry(validate(this, NAME), key); 9934 } 9935 }); 9936 if (DESCRIPTORS) dP(C.prototype, 'size', { 9937 get: function () { 9938 return validate(this, NAME)[SIZE]; 9939 } 9940 }); 9941 return C; 9942 }, 9943 def: function (that, key, value) { 9944 var entry = getEntry(that, key); 9945 var prev, index; 9946 // change existing entry 9947 if (entry) { 9948 entry.v = value; 9949 // create new entry 9950 } else { 9951 that._l = entry = { 9952 i: index = fastKey(key, true), // <- index 9953 k: key, // <- key 9954 v: value, // <- value 9955 p: prev = that._l, // <- previous entry 9956 n: undefined, // <- next entry 9957 r: false // <- removed 9958 }; 9959 if (!that._f) that._f = entry; 9960 if (prev) prev.n = entry; 9961 that[SIZE]++; 9962 // add to index 9963 if (index !== 'F') that._i[index] = entry; 9964 } return that; 9965 }, 9966 getEntry: getEntry, 9967 setStrong: function (C, NAME, IS_MAP) { 9968 // add .keys, .values, .entries, [@@iterator] 9969 // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 9970 $iterDefine(C, NAME, function (iterated, kind) { 9971 this._t = validate(iterated, NAME); // target 9972 this._k = kind; // kind 9973 this._l = undefined; // previous 9974 }, function () { 9975 var that = this; 9976 var kind = that._k; 9977 var entry = that._l; 9978 // revert to the last existing entry 9979 while (entry && entry.r) entry = entry.p; 9980 // get next entry 9981 if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { 9982 // or finish the iteration 9983 that._t = undefined; 9984 return step(1); 9985 } 9986 // return step by kind 9987 if (kind == 'keys') return step(0, entry.k); 9988 if (kind == 'values') return step(0, entry.v); 9989 return step(0, [entry.k, entry.v]); 9990 }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); 9991 9992 // add [@@species], 23.1.2.2, 23.2.2.2 9993 setSpecies(NAME); 9994 } 9995}; 9996 9997 9998/***/ }), 9999/* 161 */ 10000/***/ (function(module, exports, __webpack_require__) { 10001 10002// call something on iterator step with safe closing on error 10003var anObject = __webpack_require__(4); 10004module.exports = function (iterator, fn, value, entries) { 10005 try { 10006 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 10007 // 7.4.6 IteratorClose(iterator, completion) 10008 } catch (e) { 10009 var ret = iterator['return']; 10010 if (ret !== undefined) anObject(ret.call(iterator)); 10011 throw e; 10012 } 10013}; 10014 10015 10016/***/ }), 10017/* 162 */ 10018/***/ (function(module, exports, __webpack_require__) { 10019 10020exports.f = __webpack_require__(9); 10021 10022
vendor: 5,155 bytes, lines 10023-10196
10023/***/ }), 10024/* 163 */ 10025/***/ (function(module, exports, __webpack_require__) { 10026 10027// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window 10028var toIObject = __webpack_require__(25); 10029var gOPN = __webpack_require__(58).f; 10030var toString = {}.toString; 10031 10032var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames 10033 ? Object.getOwnPropertyNames(window) : []; 10034 10035var getWindowNames = function (it) { 10036 try { 10037 return gOPN(it); 10038 } catch (e) { 10039 return windowNames.slice(); 10040 } 10041}; 10042 10043module.exports.f = function getOwnPropertyNames(it) { 10044 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 10045}; 10046 10047 10048/***/ }), 10049/* 164 */ 10050/***/ (function(module, exports, __webpack_require__) { 10051 10052"use strict"; 10053 10054// 19.1.2.1 Object.assign(target, source, ...) 10055var getKeys = __webpack_require__(52); 10056var gOPS = __webpack_require__(86); 10057var pIE = __webpack_require__(75); 10058var toObject = __webpack_require__(15); 10059var IObject = __webpack_require__(74); 10060var $assign = Object.assign; 10061 10062// should work with symbols and should have deterministic property order (V8 bug) 10063module.exports = !$assign || __webpack_require__(6)(function () { 10064 var A = {}; 10065 var B = {}; 10066 // eslint-disable-next-line no-undef 10067 var S = Symbol(); 10068 var K = 'abcdefghijklmnopqrst'; 10069 A[S] = 7; 10070 K.split('').forEach(function (k) { B[k] = k; }); 10071 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 10072}) ? function assign(target, source) { // eslint-disable-line no-unused-vars 10073 var T = toObject(target); 10074 var aLen = arguments.length; 10075 var index = 1; 10076 var getSymbols = gOPS.f; 10077 var isEnum = pIE.f; 10078 while (aLen > index) { 10079 var S = IObject(arguments[index++]); 10080 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 10081 var length = keys.length; 10082 var j = 0; 10083 var key; 10084 while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; 10085 } return T; 10086} : $assign; 10087 10088 10089/***/ }), 10090/* 165 */ 10091/***/ (function(module, exports, __webpack_require__) { 10092 10093"use strict"; 10094 10095var aFunction = __webpack_require__(17); 10096var isObject = __webpack_require__(7); 10097var invoke = __webpack_require__(166); 10098var arraySlice = [].slice; 10099var factories = {}; 10100 10101var construct = function (F, len, args) { 10102 if (!(len in factories)) { 10103 for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; 10104 // eslint-disable-next-line no-new-func 10105 factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); 10106 } return factories[len](F, args); 10107}; 10108 10109module.exports = Function.bind || function bind(that /* , ...args */) { 10110 var fn = aFunction(this); 10111 var partArgs = arraySlice.call(arguments, 1); 10112 var bound = function (/* args... */) { 10113 var args = partArgs.concat(arraySlice.call(arguments)); 10114 return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); 10115 }; 10116 if (isObject(fn.prototype)) bound.prototype = fn.prototype; 10117 return bound; 10118}; 10119 10120 10121/***/ }), 10122/* 166 */ 10123/***/ (function(module, exports) { 10124 10125// fast apply, http://jsperf.lnkit.com/fast-apply/5 10126module.exports = function (fn, args, that) { 10127 var un = that === undefined; 10128 switch (args.length) { 10129 case 0: return un ? fn() 10130 : fn.call(that); 10131 case 1: return un ? fn(args[0]) 10132 : fn.call(that, args[0]); 10133 case 2: return un ? fn(args[0], args[1]) 10134 : fn.call(that, args[0], args[1]); 10135 case 3: return un ? fn(args[0], args[1], args[2]) 10136 : fn.call(that, args[0], args[1], args[2]); 10137 case 4: return un ? fn(args[0], args[1], args[2], args[3]) 10138 : fn.call(that, args[0], args[1], args[2], args[3]); 10139 } return fn.apply(that, args); 10140}; 10141 10142 10143/***/ }), 10144/* 167 */ 10145/***/ (function(module, exports, __webpack_require__) { 10146 10147var $parseInt = __webpack_require__(5).parseInt; 10148var $trim = __webpack_require__(65).trim; 10149var ws = __webpack_require__(123); 10150var hex = /^[-+]?0[xX]/; 10151 10152module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { 10153 var string = $trim(String(str), 3); 10154 return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); 10155} : $parseInt; 10156 10157 10158/***/ }), 10159/* 168 */ 10160/***/ (function(module, exports, __webpack_require__) { 10161 10162var $parseFloat = __webpack_require__(5).parseFloat; 10163var $trim = __webpack_require__(65).trim; 10164 10165module.exports = 1 / $parseFloat(__webpack_require__(123) + '-0') !== -Infinity ? function parseFloat(str) { 10166 var string = $trim(String(str), 3); 10167 var result = $parseFloat(string); 10168 return result === 0 && string.charAt(0) == '-' ? -0 : result; 10169} : $parseFloat; 10170 10171 10172/***/ }), 10173/* 169 */ 10174/***/ (function(module, exports, __webpack_require__) { 10175 10176var cof = __webpack_require__(29); 10177module.exports = function (it, msg) { 10178 if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); 10179 return +it; 10180}; 10181 10182 10183/***/ }), 10184/* 170 */ 10185/***/ (function(module, exports, __webpack_require__) { 10186 10187// 20.1.2.3 Number.isInteger(number) 10188var isObject = __webpack_require__(7); 10189var floor = Math.floor; 10190module.exports = function isInteger(it) { 10191 return !isObject(it) && isFinite(it) && floor(it) === it; 10192}; 10193 10194 10195/***/ }), 10196/* 171 */
vendor: 1,980 bytes, lines 10197-10272
10197/***/ (function(module, exports) { 10198 10199// 20.2.2.20 Math.log1p(x) 10200module.exports = Math.log1p || function log1p(x) { 10201 return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); 10202}; 10203 10204 10205/***/ }), 10206/* 172 */ 10207/***/ (function(module, exports, __webpack_require__) { 10208 10209// 20.2.2.16 Math.fround(x) 10210var sign = __webpack_require__(125); 10211var pow = Math.pow; 10212var EPSILON = pow(2, -52); 10213var EPSILON32 = pow(2, -23); 10214var MAX32 = pow(2, 127) * (2 - EPSILON32); 10215var MIN32 = pow(2, -126); 10216 10217var roundTiesToEven = function (n) { 10218 return n + 1 / EPSILON - 1 / EPSILON; 10219}; 10220 10221module.exports = Math.fround || function fround(x) { 10222 var $abs = Math.abs(x); 10223 var $sign = sign(x); 10224 var a, result; 10225 if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; 10226 a = (1 + EPSILON32 / EPSILON) * $abs; 10227 result = a - (a - $abs); 10228 // eslint-disable-next-line no-self-compare 10229 if (result > MAX32 || result != result) return $sign * Infinity; 10230 return $sign * result; 10231}; 10232 10233 10234/***/ }), 10235/* 173 */ 10236/***/ (function(module, exports, __webpack_require__) { 10237 10238var aFunction = __webpack_require__(17); 10239var toObject = __webpack_require__(15); 10240var IObject = __webpack_require__(74); 10241var toLength = __webpack_require__(13); 10242 10243module.exports = function (that, callbackfn, aLen, memo, isRight) { 10244 aFunction(callbackfn); 10245 var O = toObject(that); 10246 var self = IObject(O); 10247 var length = toLength(O.length); 10248 var index = isRight ? length - 1 : 0; 10249 var i = isRight ? -1 : 1; 10250 if (aLen < 2) for (;;) { 10251 if (index in self) { 10252 memo = self[index]; 10253 index += i; 10254 break; 10255 } 10256 index += i; 10257 if (isRight ? index < 0 : length <= index) { 10258 throw TypeError('Reduce of empty array with no initial value'); 10259 } 10260 } 10261 for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { 10262 memo = callbackfn(memo, self[index], index, O); 10263 } 10264 return memo; 10265}; 10266 10267 10268/***/ }), 10269/* 174 */ 10270/***/ (function(module, exports, __webpack_require__) { 10271 10272"use strict";
vendor: 4,379 bytes, lines 10273-10427
10273// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) 10274 10275var toObject = __webpack_require__(15); 10276var toAbsoluteIndex = __webpack_require__(53); 10277var toLength = __webpack_require__(13); 10278 10279module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { 10280 var O = toObject(this); 10281 var len = toLength(O.length); 10282 var to = toAbsoluteIndex(target, len); 10283 var from = toAbsoluteIndex(start, len); 10284 var end = arguments.length > 2 ? arguments[2] : undefined; 10285 var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); 10286 var inc = 1; 10287 if (from < to && to < from + count) { 10288 inc = -1; 10289 from += count - 1; 10290 to += count - 1; 10291 } 10292 while (count-- > 0) { 10293 if (from in O) O[to] = O[from]; 10294 else delete O[to]; 10295 to += inc; 10296 from += inc; 10297 } return O; 10298}; 10299 10300 10301/***/ }), 10302/* 175 */ 10303/***/ (function(module, exports, __webpack_require__) { 10304 10305// 21.2.5.3 get RegExp.prototype.flags() 10306if (__webpack_require__(12) && /./g.flags != 'g') __webpack_require__(11).f(RegExp.prototype, 'flags', { 10307 configurable: true, 10308 get: __webpack_require__(89) 10309}); 10310 10311 10312/***/ }), 10313/* 176 */ 10314/***/ (function(module, exports) { 10315 10316module.exports = function (exec) { 10317 try { 10318 return { e: false, v: exec() }; 10319 } catch (e) { 10320 return { e: true, v: e }; 10321 } 10322}; 10323 10324 10325/***/ }), 10326/* 177 */ 10327/***/ (function(module, exports, __webpack_require__) { 10328 10329var anObject = __webpack_require__(4); 10330var isObject = __webpack_require__(7); 10331var newPromiseCapability = __webpack_require__(134); 10332 10333module.exports = function (C, x) { 10334 anObject(C); 10335 if (isObject(x) && x.constructor === C) return x; 10336 var promiseCapability = newPromiseCapability.f(C); 10337 var resolve = promiseCapability.resolve; 10338 resolve(x); 10339 return promiseCapability.promise; 10340}; 10341 10342 10343/***/ }), 10344/* 178 */ 10345/***/ (function(module, exports, __webpack_require__) { 10346 10347"use strict"; 10348 10349var each = __webpack_require__(37)(0); 10350var redefine = __webpack_require__(19); 10351var meta = __webpack_require__(46); 10352var assign = __webpack_require__(164); 10353var weak = __webpack_require__(179); 10354var isObject = __webpack_require__(7); 10355var fails = __webpack_require__(6); 10356var validate = __webpack_require__(63); 10357var WEAK_MAP = 'WeakMap'; 10358var getWeak = meta.getWeak; 10359var isExtensible = Object.isExtensible; 10360var uncaughtFrozenStore = weak.ufstore; 10361var tmp = {}; 10362var InternalMap; 10363 10364var wrapper = function (get) { 10365 return function WeakMap() { 10366 return get(this, arguments.length > 0 ? arguments[0] : undefined); 10367 }; 10368}; 10369 10370var methods = { 10371 // 23.3.3.3 WeakMap.prototype.get(key) 10372 get: function get(key) { 10373 if (isObject(key)) { 10374 var data = getWeak(key); 10375 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 10376 return data ? data[this._i] : undefined; 10377 } 10378 }, 10379 // 23.3.3.5 WeakMap.prototype.set(key, value) 10380 set: function set(key, value) { 10381 return weak.def(validate(this, WEAK_MAP), key, value); 10382 } 10383}; 10384 10385// 23.3 WeakMap Objects 10386var $WeakMap = module.exports = __webpack_require__(84)(WEAK_MAP, wrapper, methods, weak, true, true); 10387 10388// IE11 WeakMap frozen keys fix 10389if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) { 10390 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 10391 assign(InternalMap.prototype, methods); 10392 meta.NEED = true; 10393 each(['delete', 'has', 'get', 'set'], function (key) { 10394 var proto = $WeakMap.prototype; 10395 var method = proto[key]; 10396 redefine(proto, key, function (a, b) { 10397 // store frozen objects on internal weakmap shim 10398 if (isObject(a) && !isExtensible(a)) { 10399 if (!this._f) this._f = new InternalMap(); 10400 var result = this._f[key](a, b); 10401 return key == 'set' ? this : result; 10402 // store all the rest on native weakmap 10403 } return method.call(this, a, b); 10404 }); 10405 }); 10406} 10407 10408 10409/***/ }), 10410/* 179 */ 10411/***/ (function(module, exports, __webpack_require__) { 10412 10413"use strict"; 10414 10415var redefineAll = __webpack_require__(54); 10416var getWeak = __webpack_require__(46).getWeak; 10417var anObject = __webpack_require__(4); 10418var isObject = __webpack_require__(7); 10419var anInstance = __webpack_require__(55); 10420var forOf = __webpack_require__(56); 10421var createArrayMethod = __webpack_require__(37); 10422var $has = __webpack_require__(24); 10423var validate = __webpack_require__(63); 10424var arrayFind = createArrayMethod(5); 10425var arrayFindIndex = createArrayMethod(6); 10426var id = 0; 10427
vendor: 4,716 bytes, lines 10428-10583
10428// fallback for uncaught frozen keys 10429var uncaughtFrozenStore = function (that) { 10430 return that._l || (that._l = new UncaughtFrozenStore()); 10431}; 10432var UncaughtFrozenStore = function () { 10433 this.a = []; 10434}; 10435var findUncaughtFrozen = function (store, key) { 10436 return arrayFind(store.a, function (it) { 10437 return it[0] === key; 10438 }); 10439}; 10440UncaughtFrozenStore.prototype = { 10441 get: function (key) { 10442 var entry = findUncaughtFrozen(this, key); 10443 if (entry) return entry[1]; 10444 }, 10445 has: function (key) { 10446 return !!findUncaughtFrozen(this, key); 10447 }, 10448 set: function (key, value) { 10449 var entry = findUncaughtFrozen(this, key); 10450 if (entry) entry[1] = value; 10451 else this.a.push([key, value]); 10452 }, 10453 'delete': function (key) { 10454 var index = arrayFindIndex(this.a, function (it) { 10455 return it[0] === key; 10456 }); 10457 if (~index) this.a.splice(index, 1); 10458 return !!~index; 10459 } 10460}; 10461 10462module.exports = { 10463 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { 10464 var C = wrapper(function (that, iterable) { 10465 anInstance(that, C, NAME, '_i'); 10466 that._t = NAME; // collection type 10467 that._i = id++; // collection id 10468 that._l = undefined; // leak store for uncaught frozen objects 10469 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 10470 }); 10471 redefineAll(C.prototype, { 10472 // 23.3.3.2 WeakMap.prototype.delete(key) 10473 // 23.4.3.3 WeakSet.prototype.delete(value) 10474 'delete': function (key) { 10475 if (!isObject(key)) return false; 10476 var data = getWeak(key); 10477 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 10478 return data && $has(data, this._i) && delete data[this._i]; 10479 }, 10480 // 23.3.3.4 WeakMap.prototype.has(key) 10481 // 23.4.3.4 WeakSet.prototype.has(value) 10482 has: function has(key) { 10483 if (!isObject(key)) return false; 10484 var data = getWeak(key); 10485 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 10486 return data && $has(data, this._i); 10487 } 10488 }); 10489 return C; 10490 }, 10491 def: function (that, key, value) { 10492 var data = getWeak(anObject(key), true); 10493 if (data === true) uncaughtFrozenStore(that).set(key, value); 10494 else data[that._i] = value; 10495 return that; 10496 }, 10497 ufstore: uncaughtFrozenStore 10498}; 10499 10500 10501/***/ }), 10502/* 180 */ 10503/***/ (function(module, exports, __webpack_require__) { 10504 10505// https://tc39.github.io/ecma262/#sec-toindex 10506var toInteger = __webpack_require__(34); 10507var toLength = __webpack_require__(13); 10508module.exports = function (it) { 10509 if (it === undefined) return 0; 10510 var number = toInteger(it); 10511 var length = toLength(number); 10512 if (number !== length) throw RangeError('Wrong length!'); 10513 return length; 10514}; 10515 10516 10517/***/ }), 10518/* 181 */ 10519/***/ (function(module, exports, __webpack_require__) { 10520 10521// all object keys, includes non-enumerable and symbols 10522var gOPN = __webpack_require__(58); 10523var gOPS = __webpack_require__(86); 10524var anObject = __webpack_require__(4); 10525var Reflect = __webpack_require__(5).Reflect; 10526module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { 10527 var keys = gOPN.f(anObject(it)); 10528 var getSymbols = gOPS.f; 10529 return getSymbols ? keys.concat(getSymbols(it)) : keys; 10530}; 10531 10532 10533/***/ }), 10534/* 182 */ 10535/***/ (function(module, exports, __webpack_require__) { 10536 10537"use strict"; 10538 10539// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray 10540var isArray = __webpack_require__(87); 10541var isObject = __webpack_require__(7); 10542var toLength = __webpack_require__(13); 10543var ctx = __webpack_require__(30); 10544var IS_CONCAT_SPREADABLE = __webpack_require__(9)('isConcatSpreadable'); 10545 10546function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { 10547 var targetIndex = start; 10548 var sourceIndex = 0; 10549 var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; 10550 var element, spreadable; 10551 10552 while (sourceIndex < sourceLen) { 10553 if (sourceIndex in source) { 10554 element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; 10555 10556 spreadable = false; 10557 if (isObject(element)) { 10558 spreadable = element[IS_CONCAT_SPREADABLE]; 10559 spreadable = spreadable !== undefined ? !!spreadable : isArray(element); 10560 } 10561 10562 if (spreadable && depth > 0) { 10563 targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; 10564 } else { 10565 if (targetIndex >= 0x1fffffffffffff) throw TypeError(); 10566 target[targetIndex] = element; 10567 } 10568 10569 targetIndex++; 10570 } 10571 sourceIndex++; 10572 } 10573 return targetIndex; 10574} 10575 10576module.exports = flattenIntoArray; 10577 10578 10579/***/ }), 10580/* 183 */ 10581/***/ (function(module, exports, __webpack_require__) { 10582 10583// https://github.com/tc39/proposal-string-pad-start-end
10584var toLength = __webpack_require__(13); 10585var repeat = __webpack_require__(124); 10586var defined = __webpack_require__(35); 10587 10588module.exports = function (that, maxLength, fillString, left) { 10589 var S = String(defined(that)); 10590 var stringLength = S.length; 10591 var fillStr = fillString === undefined ? ' ' : String(fillString); 10592 var intMaxLength = toLength(maxLength); 10593 if (intMaxLength <= stringLength || fillStr == '') return S; 10594 var fillLen = intMaxLength - stringLength; 10595 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); 10596 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); 10597 return left ? stringFiller + S : S + stringFiller; 10598}; 10599 10600 10601/***/ }), 10602/* 184 */ 10603/***/ (function(module, exports, __webpack_require__) { 10604 10605var getKeys = __webpack_require__(52); 10606var toIObject = __webpack_require__(25); 10607var isEnum = __webpack_require__(75).f; 10608module.exports = function (isEntries) { 10609 return function (it) { 10610 var O = toIObject(it); 10611 var keys = getKeys(O); 10612 var length = keys.length; 10613 var i = 0; 10614 var result = []; 10615 var key; 10616 while (length > i) if (isEnum.call(O, key = keys[i++])) { 10617 result.push(isEntries ? [key, O[key]] : O[key]); 10618 } return result; 10619 }; 10620}; 10621 10622 10623/***/ }), 10624/* 185 */ 10625/***/ (function(module, exports, __webpack_require__) { 10626 10627// https://github.com/DavidBruant/Map-Set.prototype.toJSON 10628var classof = __webpack_require__(73); 10629var from = __webpack_require__(186); 10630module.exports = function (NAME) { 10631 return function toJSON() { 10632 if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); 10633 return from(this); 10634 }; 10635}; 10636 10637 10638/***/ }), 10639/* 186 */ 10640/***/ (function(module, exports, __webpack_require__) { 10641 10642var forOf = __webpack_require__(56); 10643 10644module.exports = function (iter, ITERATOR) { 10645 var result = []; 10646 forOf(iter, false, result.push, result, ITERATOR); 10647 return result; 10648}; 10649 10650 10651/***/ }), 10652/* 187 */ 10653/***/ (function(module, exports) { 10654 10655// https://rwaldron.github.io/proposal-math-extensions/ 10656module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { 10657 if ( 10658 arguments.length === 0 10659 // eslint-disable-next-line no-self-compare 10660 || x != x 10661 // eslint-disable-next-line no-self-compare 10662 || inLow != inLow 10663 // eslint-disable-next-line no-self-compare 10664 || inHigh != inHigh 10665 // eslint-disable-next-line no-self-compare 10666 || outLow != outLow 10667 // eslint-disable-next-line no-self-compare 10668 || outHigh != outHigh 10669 ) return NaN; 10670 if (x === Infinity || x === -Infinity) return x; 10671 return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; 10672}; 10673 10674 10675/***/ }), 10676/* 188 */ 10677/***/ (function(module, exports, __webpack_require__) { 10678 10679"use strict"; 10680/* WEBPACK VAR INJECTION */(function(process) {/** 10681 * Copyright (c) 2013-present, Facebook, Inc. 10682 * 10683 * This source code is licensed under the MIT license found in the 10684 * LICENSE file in the root directory of this source tree. 10685 * 10686 */ 10687 10688 10689 10690var _prodInvariant = __webpack_require__(67), 10691 _assign = __webpack_require__(10); 10692 10693var ReactNoopUpdateQueue = __webpack_require__(189); 10694 10695var canDefineProperty = __webpack_require__(97); 10696var emptyObject = __webpack_require__(98); 10697var invariant = __webpack_require__(2); 10698var lowPriorityWarning = __webpack_require__(136); 10699 10700/** 10701 * Base class helpers for the updating state of a component. 10702 */ 10703function ReactComponent(props, context, updater) { 10704 this.props = props; 10705 this.context = context; 10706 this.refs = emptyObject; 10707 // We initialize the default updater but the real one gets injected by the 10708 // renderer. 10709 this.updater = updater || ReactNoopUpdateQueue; 10710} 10711 10712ReactComponent.prototype.isReactComponent = {}; 10713 10714/** 10715 * Sets a subset of the state. Always use this to mutate 10716 * state. You should treat `this.state` as immutable. 10717 * 10718 * There is no guarantee that `this.state` will be immediately updated, so 10719 * accessing `this.state` after calling this method may return the old value. 10720 * 10721 * There is no guarantee that calls to `setState` will run synchronously, 10722 * as they may eventually be batched together. You can provide an optional 10723 * callback that will be executed when the call to setState is actually 10724 * completed. 10725 * 10726 * When a function is provided to setState, it will be called at some point in 10727 * the future (not synchronously). It will be called with the up to date 10728 * component arguments (state, props, context). These values can be different 10729 * from this.* because your function may be called after receiveProps but before 10730 * shouldComponentUpdate, and this new state, props, and context will not yet be 10731 * assigned to this. 10732 * 10733 * @param {object|function} partialState Next partial state or function to 10734 * produce next partial state to be merged with current state. 10735 * @param {?function} callback Called after state is updated. 10736 * @final 10737 * @protected 10738 */ 10739ReactComponent.prototype.setState = function (partialState, callback) { 10740 !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; 10741 this.updater.enqueueSetState(this, partialState); 10742 if (callback) { 10743 this.updater.enqueueCallback(this, callback, 'setState'); 10744 } 10745}; 10746 10747/** 10748 * Forces an update. This should only be invoked when it is known with 10749 * certainty that we are **not** in a DOM transaction. 10750 * 10751 * You may want to call this when you know that some deeper aspect of the 10752 * component's state has changed but `setState` was not called. 10753 * 10754 * This will not invoke `shouldComponentUpdate`, but it will invoke 10755 * `componentWillUpdate` and `componentDidUpdate`. 10756 * 10757 * @param {?function} callback Called after update is complete. 10758 * @final 10759 * @protected 10760 */ 10761ReactComponent.prototype.forceUpdate = function (callback) { 10762 this.updater.enqueueForceUpdate(this); 10763 if (callback) { 10764 this.updater.enqueueCallback(this, callback, 'forceUpdate'); 10765 } 10766}; 10767 10768/** 10769 * Deprecated APIs. These APIs used to exist on classic React classes but since 10770 * we would like to deprecate them, we're not going to move them over to this 10771 * modern base class. Instead, we define a getter that warns if it's accessed. 10772 */ 10773if (process.env.NODE_ENV !== 'production') { 10774 var deprecatedAPIs = { 10775 isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
10776 replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] 10777 }; 10778 var defineDeprecationWarning = function (methodName, info) { 10779 if (canDefineProperty) { 10780 Object.defineProperty(ReactComponent.prototype, methodName, { 10781 get: function () { 10782 lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]); 10783 return undefined; 10784 } 10785 }); 10786 } 10787 }; 10788 for (var fnName in deprecatedAPIs) { 10789 if (deprecatedAPIs.hasOwnProperty(fnName)) { 10790 defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); 10791 } 10792 } 10793} 10794 10795/** 10796 * Base class helpers for the updating state of a component. 10797 */ 10798function ReactPureComponent(props, context, updater) { 10799 // Duplicated from ReactComponent. 10800 this.props = props; 10801 this.context = context; 10802 this.refs = emptyObject; 10803 // We initialize the default updater but the real one gets injected by the 10804 // renderer. 10805 this.updater = updater || ReactNoopUpdateQueue; 10806} 10807 10808function ComponentDummy() {} 10809ComponentDummy.prototype = ReactComponent.prototype; 10810ReactPureComponent.prototype = new ComponentDummy(); 10811ReactPureComponent.prototype.constructor = ReactPureComponent; 10812// Avoid an extra prototype jump for these methods. 10813_assign(ReactPureComponent.prototype, ReactComponent.prototype); 10814ReactPureComponent.prototype.isPureReactComponent = true; 10815 10816module.exports = { 10817 Component: ReactComponent, 10818 PureComponent: ReactPureComponent 10819}; 10820/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 10821 10822/***/ }), 10823/* 189 */ 10824/***/ (function(module, exports, __webpack_require__) { 10825 10826"use strict"; 10827/* WEBPACK VAR INJECTION */(function(process) {/** 10828 * Copyright (c) 2015-present, Facebook, Inc. 10829 * 10830 * This source code is licensed under the MIT license found in the 10831 * LICENSE file in the root directory of this source tree. 10832 * 10833 */ 10834 10835 10836 10837var warning = __webpack_require__(3); 10838 10839function warnNoop(publicInstance, callerName) { 10840 if (process.env.NODE_ENV !== 'production') { 10841 var constructor = publicInstance.constructor; 10842 process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; 10843 } 10844} 10845 10846/** 10847 * This is the abstract API for an update queue. 10848 */ 10849var ReactNoopUpdateQueue = { 10850 /** 10851 * Checks whether or not this composite component is mounted. 10852 * @param {ReactClass} publicInstance The instance we want to test. 10853 * @return {boolean} True if mounted, false otherwise. 10854 * @protected 10855 * @final 10856 */ 10857 isMounted: function (publicInstance) { 10858 return false; 10859 }, 10860 10861 /** 10862 * Enqueue a callback that will be executed after all the pending updates 10863 * have processed. 10864 * 10865 * @param {ReactClass} publicInstance The instance to use as `this` context. 10866 * @param {?function} callback Called after state is updated. 10867 * @internal 10868 */ 10869 enqueueCallback: function (publicInstance, callback) {}, 10870 10871 /** 10872 * Forces an update. This should only be invoked when it is known with 10873 * certainty that we are **not** in a DOM transaction. 10874 * 10875 * You may want to call this when you know that some deeper aspect of the 10876 * component's state has changed but `setState` was not called. 10877 * 10878 * This will not invoke `shouldComponentUpdate`, but it will invoke 10879 * `componentWillUpdate` and `componentDidUpdate`. 10880 * 10881 * @param {ReactClass} publicInstance The instance that should rerender. 10882 * @internal 10883 */ 10884 enqueueForceUpdate: function (publicInstance) { 10885 warnNoop(publicInstance, 'forceUpdate'); 10886 }, 10887 10888 /** 10889 * Replaces all of the state. Always use this or `setState` to mutate state. 10890 * You should treat `this.state` as immutable. 10891 * 10892 * There is no guarantee that `this.state` will be immediately updated, so 10893 * accessing `this.state` after calling this method may return the old value. 10894 * 10895 * @param {ReactClass} publicInstance The instance that should rerender. 10896 * @param {object} completeState Next state. 10897 * @internal 10898 */ 10899 enqueueReplaceState: function (publicInstance, completeState) { 10900 warnNoop(publicInstance, 'replaceState'); 10901 }, 10902 10903 /** 10904 * Sets a subset of the state. This only exists because _pendingState is 10905 * internal. This provides a merging strategy that is not available to deep 10906 * properties which is confusing. TODO: Expose pendingState or don't use it 10907 * during the merge. 10908 * 10909 * @param {ReactClass} publicInstance The instance that should rerender. 10910 * @param {object} partialState Next partial state to be merged with state. 10911 * @internal 10912 */ 10913 enqueueSetState: function (publicInstance, partialState) { 10914 warnNoop(publicInstance, 'setState'); 10915 } 10916}; 10917 10918module.exports = ReactNoopUpdateQueue; 10919/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 10920 10921/***/ }), 10922/* 190 */ 10923/***/ (function(module, exports, __webpack_require__) { 10924 10925"use strict"; 10926/** 10927 * Copyright (c) 2014-present, Facebook, Inc. 10928 * 10929 * This source code is licensed under the MIT license found in the 10930 * LICENSE file in the root directory of this source tree. 10931 * 10932 * 10933 */ 10934 10935 10936 10937// The Symbol used to tag the ReactElement type. If there is no native Symbol 10938// nor polyfill, then a plain number is used for performance. 10939 10940var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; 10941 10942module.exports = REACT_ELEMENT_TYPE; 10943 10944/***/ }), 10945/* 191 */ 10946/***/ (function(module, exports, __webpack_require__) { 10947 10948"use strict"; 10949/** 10950 * Copyright (c) 2013-present, Facebook, Inc. 10951 * 10952 * This source code is licensed under the MIT license found in the 10953 * LICENSE file in the root directory of this source tree. 10954 * 10955 * 10956 */ 10957 10958 10959 10960/* global Symbol */ 10961 10962var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; 10963var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. 10964 10965/** 10966 * Returns the iterator method function contained on the iterable object. 10967 * 10968 * Be sure to invoke the function with the iterable as context: 10969 * 10970 * var iteratorFn = getIteratorFn(myIterable); 10971 * if (iteratorFn) { 10972 * var iterator = iteratorFn.call(myIterable); 10973 * ... 10974 * } 10975 * 10976 * @param {?object} maybeIterable 10977 * @return {?function} 10978 */ 10979function getIteratorFn(maybeIterable) { 10980 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); 10981 if (typeof iteratorFn === 'function') { 10982 return iteratorFn; 10983 } 10984} 10985 10986module.exports = getIteratorFn; 10987 10988/***/ }), 10989/* 192 */ 10990/***/ (function(module, exports, __webpack_require__) { 10991 10992"use strict"; 10993/* WEBPACK VAR INJECTION */(function(process) {/** 10994 * Copyright (c) 2014-present, Facebook, Inc. 10995 * 10996 * This source code is licensed under the MIT license found in the 10997 * LICENSE file in the root directory of this source tree. 10998 * 10999 */ 11000 11001/** 11002 * ReactElementValidator provides a wrapper around a element factory 11003 * which validates the props passed to the element. This is intended to be 11004 * used only in DEV and could be replaced by a static type checker for languages 11005 * that support it. 11006 */ 11007 11008 11009 11010var ReactCurrentOwner = __webpack_require__(39); 11011var ReactComponentTreeHook = __webpack_require__(22); 11012var ReactElement = __webpack_require__(59); 11013 11014var checkReactTypeSpec = __webpack_require__(438); 11015 11016var canDefineProperty = __webpack_require__(97); 11017var getIteratorFn = __webpack_require__(191); 11018var warning = __webpack_require__(3); 11019var lowPriorityWarning = __webpack_require__(136); 11020 11021function getDeclarationErrorAddendum() { 11022 if (ReactCurrentOwner.current) { 11023 var name = ReactCurrentOwner.current.getName(); 11024 if (name) { 11025 return ' Check the render method of `' + name + '`.'; 11026 } 11027 } 11028 return ''; 11029} 11030 11031function getSourceInfoErrorAddendum(elementProps) { 11032 if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) { 11033 var source = elementProps.__source; 11034 var fileName = source.fileName.replace(/^.*[\\\/]/, ''); 11035 var lineNumber = source.lineNumber; 11036 return ' Check your code at ' + fileName + ':' + lineNumber + '.'; 11037 } 11038 return ''; 11039} 11040 11041/** 11042 * Warn if there's no key explicitly set on dynamic arrays of children or 11043 * object keys are not valid. This allows us to keep track of children between 11044 * updates. 11045 */ 11046var ownerHasKeyUseWarning = {}; 11047
11048function getCurrentComponentErrorInfo(parentType) { 11049 var info = getDeclarationErrorAddendum(); 11050 11051 if (!info) { 11052 var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; 11053 if (parentName) { 11054 info = ' Check the top-level render call using <' + parentName + '>.'; 11055 } 11056 } 11057 return info; 11058} 11059 11060/** 11061 * Warn if the element doesn't have an explicit key assigned to it. 11062 * This element is in an array. The array could grow and shrink or be 11063 * reordered. All children that haven't already been validated are required to 11064 * have a "key" property assigned to it. Error statuses are cached so a warning 11065 * will only be shown once. 11066 * 11067 * @internal 11068 * @param {ReactElement} element Element that requires a key. 11069 * @param {*} parentType element's parent's type. 11070 */ 11071function validateExplicitKey(element, parentType) { 11072 if (!element._store || element._store.validated || element.key != null) { 11073 return; 11074 } 11075 element._store.validated = true; 11076 11077 var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {}); 11078 11079 var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); 11080 if (memoizer[currentComponentErrorInfo]) { 11081 return; 11082 } 11083 memoizer[currentComponentErrorInfo] = true; 11084 11085 // Usually the current owner is the offender, but if it accepts children as a 11086 // property, it may be the creator of the child that's responsible for 11087 // assigning it a key. 11088 var childOwner = ''; 11089 if (element && element._owner && element._owner !== ReactCurrentOwner.current) { 11090 // Give the component that originally created this child. 11091 childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; 11092 } 11093 11094 process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0; 11095} 11096 11097/** 11098 * Ensure that every element either is passed in a static location, in an 11099 * array with an explicit keys property defined, or in an object literal 11100 * with valid key property. 11101 * 11102 * @internal 11103 * @param {ReactNode} node Statically passed child of any type. 11104 * @param {*} parentType node's parent's type. 11105 */ 11106function validateChildKeys(node, parentType) { 11107 if (typeof node !== 'object') { 11108 return; 11109 } 11110 if (Array.isArray(node)) { 11111 for (var i = 0; i < node.length; i++) { 11112 var child = node[i]; 11113 if (ReactElement.isValidElement(child)) { 11114 validateExplicitKey(child, parentType); 11115 } 11116 } 11117 } else if (ReactElement.isValidElement(node)) { 11118 // This element was passed in a valid location. 11119 if (node._store) { 11120 node._store.validated = true; 11121 } 11122 } else if (node) { 11123 var iteratorFn = getIteratorFn(node); 11124 // Entry iterators provide implicit keys. 11125 if (iteratorFn) { 11126 if (iteratorFn !== node.entries) { 11127 var iterator = iteratorFn.call(node); 11128 var step; 11129 while (!(step = iterator.next()).done) { 11130 if (ReactElement.isValidElement(step.value)) { 11131 validateExplicitKey(step.value, parentType); 11132 } 11133 } 11134 } 11135 } 11136 } 11137} 11138 11139/** 11140 * Given an element, validate that its props follow the propTypes definition, 11141 * provided by the type. 11142 * 11143 * @param {ReactElement} element 11144 */ 11145function validatePropTypes(element) { 11146 var componentClass = element.type; 11147 if (typeof componentClass !== 'function') { 11148 return; 11149 } 11150 var name = componentClass.displayName || componentClass.name; 11151 if (componentClass.propTypes) { 11152 checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null); 11153 } 11154 if (typeof componentClass.getDefaultProps === 'function') { 11155 process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; 11156 } 11157} 11158 11159var ReactElementValidator = { 11160 createElement: function (type, props, children) {
11161 var validType = typeof type === 'string' || typeof type === 'function'; 11162 // We warn in this case but don't throw. We expect the element creation to 11163 // succeed and there will likely be errors in render. 11164 if (!validType) { 11165 if (typeof type !== 'function' && typeof type !== 'string') { 11166 var info = ''; 11167 if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { 11168 info += ' You likely forgot to export your component from the file ' + "it's defined in."; 11169 } 11170 11171 var sourceInfo = getSourceInfoErrorAddendum(props); 11172 if (sourceInfo) { 11173 info += sourceInfo; 11174 } else { 11175 info += getDeclarationErrorAddendum(); 11176 } 11177 11178 info += ReactComponentTreeHook.getCurrentStackAddendum(); 11179 11180 var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null; 11181 ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource); 11182 process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0; 11183 ReactComponentTreeHook.popNonStandardWarningStack(); 11184 } 11185 } 11186 11187 var element = ReactElement.createElement.apply(this, arguments); 11188 11189 // The result can be nullish if a mock or a custom function is used. 11190 // TODO: Drop this when these are no longer allowed as the type argument. 11191 if (element == null) { 11192 return element; 11193 } 11194 11195 // Skip key warning if the type isn't valid since our key validation logic 11196 // doesn't expect a non-string/function type and can throw confusing errors. 11197 // We don't want exception behavior to differ between dev and prod. 11198 // (Rendering will throw with a helpful message and as soon as the type is 11199 // fixed, the key warnings will appear.) 11200 if (validType) { 11201 for (var i = 2; i < arguments.length; i++) { 11202 validateChildKeys(arguments[i], type); 11203 } 11204 } 11205 11206 validatePropTypes(element); 11207 11208 return element; 11209 }, 11210 11211 createFactory: function (type) { 11212 var validatedFactory = ReactElementValidator.createElement.bind(null, type); 11213 // Legacy hook TODO: Warn if this is accessed 11214 validatedFactory.type = type; 11215 11216 if (process.env.NODE_ENV !== 'production') { 11217 if (canDefineProperty) { 11218 Object.defineProperty(validatedFactory, 'type', { 11219 enumerable: false, 11220 get: function () { 11221 lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.'); 11222 Object.defineProperty(this, 'type', { 11223 value: type 11224 }); 11225 return type; 11226 } 11227 }); 11228 } 11229 } 11230 11231 return validatedFactory; 11232 }, 11233 11234 cloneElement: function (element, props, children) { 11235 var newElement = ReactElement.cloneElement.apply(this, arguments); 11236 for (var i = 2; i < arguments.length; i++) { 11237 validateChildKeys(arguments[i], newElement.type); 11238 } 11239 validatePropTypes(newElement); 11240 return newElement; 11241 } 11242}; 11243 11244module.exports = ReactElementValidator; 11245/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 11246 11247/***/ }), 11248/* 193 */ 11249/***/ (function(module, exports, __webpack_require__) { 11250 11251"use strict"; 11252/** 11253 * Copyright (c) 2013-present, Facebook, Inc. 11254 * 11255 * This source code is licensed under the MIT license found in the 11256 * LICENSE file in the root directory of this source tree. 11257 */ 11258 11259 11260 11261// React 15.5 references this module, and assumes PropTypes are still callable in production. 11262// Therefore we re-export development-only version with all the PropTypes checks here. 11263// However if one is migrating to the `prop-types` npm library, they will go through the 11264// `index.js` entry point, and it will branch depending on the environment. 11265var factory = __webpack_require__(442); 11266module.exports = function(isValidElement) { 11267 // It is still allowed in 15.5. 11268 var throwOnDirectAccess = false;
11269 return factory(isValidElement, throwOnDirectAccess); 11270}; 11271 11272 11273/***/ }), 11274/* 194 */ 11275/***/ (function(module, exports, __webpack_require__) { 11276 11277"use strict"; 11278/** 11279 * Copyright (c) 2013-present, Facebook, Inc. 11280 * 11281 * This source code is licensed under the MIT license found in the 11282 * LICENSE file in the root directory of this source tree. 11283 */ 11284 11285 11286 11287var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; 11288 11289module.exports = ReactPropTypesSecret; 11290 11291 11292/***/ }), 11293/* 195 */ 11294/***/ (function(module, exports, __webpack_require__) { 11295 11296"use strict"; 11297/** 11298 * Copyright (c) 2015-present, Facebook, Inc. 11299 * 11300 * This source code is licensed under the MIT license found in the 11301 * LICENSE file in the root directory of this source tree. 11302 * 11303 */ 11304 11305 11306 11307var ReactDOMComponentFlags = { 11308 hasCachedChildNodes: 1 << 0 11309}; 11310 11311module.exports = ReactDOMComponentFlags; 11312 11313/***/ }), 11314/* 196 */ 11315/***/ (function(module, exports, __webpack_require__) { 11316 11317"use strict"; 11318/* WEBPACK VAR INJECTION */(function(process) {/** 11319 * Copyright (c) 2014-present, Facebook, Inc. 11320 * 11321 * This source code is licensed under the MIT license found in the 11322 * LICENSE file in the root directory of this source tree. 11323 * 11324 * 11325 */ 11326 11327 11328 11329var _prodInvariant = __webpack_require__(8); 11330 11331var invariant = __webpack_require__(2); 11332 11333/** 11334 * Accumulates items that must not be null or undefined into the first one. This 11335 * is used to conserve memory by avoiding array allocations, and thus sacrifices 11336 * API cleanness. Since `current` can be null before being passed in and not 11337 * null after this function, make sure to assign it back to `current`: 11338 * 11339 * `a = accumulateInto(a, b);` 11340 * 11341 * This API should be sparingly used. Try `accumulate` for something cleaner. 11342 * 11343 * @return {*|array<*>} An accumulation of items. 11344 */ 11345 11346function accumulateInto(current, next) { 11347 !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; 11348 11349 if (current == null) { 11350 return next; 11351 } 11352 11353 // Both are not empty. Warning: Never call x.concat(y) when you are not 11354 // certain that x is an Array (x could be a string with concat method). 11355 if (Array.isArray(current)) { 11356 if (Array.isArray(next)) { 11357 current.push.apply(current, next); 11358 return current; 11359 } 11360 current.push(next); 11361 return current; 11362 } 11363 11364 if (Array.isArray(next)) { 11365 // A bit too dangerous to mutate `next`. 11366 return [current].concat(next); 11367 } 11368 11369 return [current, next]; 11370} 11371 11372module.exports = accumulateInto; 11373/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 11374 11375/***/ }), 11376/* 197 */ 11377/***/ (function(module, exports, __webpack_require__) { 11378 11379"use strict"; 11380/** 11381 * Copyright (c) 2013-present, Facebook, Inc. 11382 * 11383 * This source code is licensed under the MIT license found in the 11384 * LICENSE file in the root directory of this source tree. 11385 * 11386 * 11387 */ 11388 11389 11390 11391/** 11392 * @param {array} arr an "accumulation" of items which is either an Array or 11393 * a single item. Useful when paired with the `accumulate` module. This is a 11394 * simple utility that allows us to reason about a collection of items, but 11395 * handling the case when there is exactly one item (and we do not need to 11396 * allocate an array). 11397 */ 11398 11399function forEachAccumulated(arr, cb, scope) { 11400 if (Array.isArray(arr)) { 11401 arr.forEach(cb, scope); 11402 } else if (arr) { 11403 cb.call(scope, arr); 11404 } 11405} 11406 11407module.exports = forEachAccumulated; 11408 11409/***/ }), 11410/* 198 */ 11411/***/ (function(module, exports, __webpack_require__) { 11412 11413"use strict"; 11414/** 11415 * Copyright (c) 2013-present, Facebook, Inc. 11416 * 11417 * This source code is licensed under the MIT license found in the 11418 * LICENSE file in the root directory of this source tree. 11419 * 11420 */ 11421 11422 11423 11424var ExecutionEnvironment = __webpack_require__(16); 11425 11426var contentKey = null; 11427 11428/** 11429 * Gets the key used to access text content on a DOM node. 11430 * 11431 * @return {?string} Key used to access text content. 11432 * @internal 11433 */ 11434function getTextContentAccessor() { 11435 if (!contentKey && ExecutionEnvironment.canUseDOM) { 11436 // Prefer textContent to innerText because many browsers support both but 11437 // SVG <text> elements don't support innerText even when <div> does. 11438 contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; 11439 } 11440 return contentKey; 11441} 11442 11443module.exports = getTextContentAccessor; 11444 11445/***/ }), 11446/* 199 */ 11447/***/ (function(module, exports, __webpack_require__) { 11448 11449"use strict"; 11450/* WEBPACK VAR INJECTION */(function(process) {/** 11451 * Copyright (c) 2013-present, Facebook, Inc. 11452 * 11453 * This source code is licensed under the MIT license found in the 11454 * LICENSE file in the root directory of this source tree. 11455 * 11456 * 11457 */ 11458 11459 11460 11461var _prodInvariant = __webpack_require__(8); 11462 11463function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 11464 11465var PooledClass = __webpack_require__(60); 11466 11467var invariant = __webpack_require__(2); 11468 11469/** 11470 * A specialized pseudo-event module to help keep track of components waiting to 11471 * be notified when their DOM representations are available for use. 11472 * 11473 * This implements `PooledClass`, so you should never need to instantiate this. 11474 * Instead, use `CallbackQueue.getPooled()`. 11475 * 11476 * @class ReactMountReady 11477 * @implements PooledClass 11478 * @internal 11479 */ 11480 11481var CallbackQueue = function () { 11482 function CallbackQueue(arg) { 11483 _classCallCheck(this, CallbackQueue); 11484 11485 this._callbacks = null; 11486 this._contexts = null; 11487 this._arg = arg; 11488 } 11489 11490 /** 11491 * Enqueues a callback to be invoked when `notifyAll` is invoked. 11492 * 11493 * @param {function} callback Invoked when `notifyAll` is invoked. 11494 * @param {?object} context Context to call `callback` with. 11495 * @internal 11496 */ 11497 11498 11499 CallbackQueue.prototype.enqueue = function enqueue(callback, context) { 11500 this._callbacks = this._callbacks || []; 11501 this._callbacks.push(callback); 11502 this._contexts = this._contexts || []; 11503 this._contexts.push(context); 11504 }; 11505 11506 /** 11507 * Invokes all enqueued callbacks and clears the queue. This is invoked after 11508 * the DOM representation of a component has been created or updated. 11509 * 11510 * @internal 11511 */ 11512 11513 11514 CallbackQueue.prototype.notifyAll = function notifyAll() { 11515 var callbacks = this._callbacks; 11516 var contexts = this._contexts; 11517 var arg = this._arg; 11518 if (callbacks && contexts) { 11519 !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; 11520 this._callbacks = null; 11521 this._contexts = null; 11522 for (var i = 0; i < callbacks.length; i++) { 11523 callbacks[i].call(contexts[i], arg); 11524 } 11525 callbacks.length = 0; 11526 contexts.length = 0; 11527 } 11528 }; 11529 11530 CallbackQueue.prototype.checkpoint = function checkpoint() { 11531 return this._callbacks ? this._callbacks.length : 0; 11532 }; 11533 11534 CallbackQueue.prototype.rollback = function rollback(len) { 11535 if (this._callbacks && this._contexts) { 11536 this._callbacks.length = len; 11537 this._contexts.length = len; 11538 } 11539 }; 11540 11541 /** 11542 * Resets the internal queue. 11543 * 11544 * @internal 11545 */ 11546 11547 11548 CallbackQueue.prototype.reset = function reset() { 11549 this._callbacks = null; 11550 this._contexts = null; 11551 }; 11552 11553 /** 11554 * `PooledClass` looks for this. 11555 */ 11556 11557 11558 CallbackQueue.prototype.destructor = function destructor() { 11559 this.reset(); 11560 }; 11561 11562 return CallbackQueue; 11563}(); 11564 11565module.exports = PooledClass.addPoolingTo(CallbackQueue);
11566/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 11567 11568/***/ }), 11569/* 200 */ 11570/***/ (function(module, exports, __webpack_require__) { 11571 11572"use strict"; 11573/** 11574 * Copyright (c) 2013-present, Facebook, Inc. 11575 * 11576 * This source code is licensed under the MIT license found in the 11577 * LICENSE file in the root directory of this source tree. 11578 * 11579 * 11580 */ 11581 11582 11583 11584var ReactFeatureFlags = { 11585 // When true, call console.time() before and .timeEnd() after each top-level 11586 // render (both initial renders and updates). Useful when looking at prod-mode 11587 // timeline profiles in Chrome, for example. 11588 logTopLevelRenders: false 11589}; 11590 11591module.exports = ReactFeatureFlags; 11592 11593/***/ }), 11594/* 201 */ 11595/***/ (function(module, exports, __webpack_require__) { 11596 11597"use strict"; 11598/** 11599 * Copyright (c) 2013-present, Facebook, Inc. 11600 * 11601 * This source code is licensed under the MIT license found in the 11602 * LICENSE file in the root directory of this source tree. 11603 * 11604 */ 11605 11606 11607 11608var ReactDOMComponentTree = __webpack_require__(14); 11609 11610function isCheckable(elem) { 11611 var type = elem.type; 11612 var nodeName = elem.nodeName; 11613 return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio'); 11614} 11615 11616function getTracker(inst) { 11617 return inst._wrapperState.valueTracker; 11618} 11619 11620function attachTracker(inst, tracker) { 11621 inst._wrapperState.valueTracker = tracker; 11622} 11623 11624function detachTracker(inst) { 11625 inst._wrapperState.valueTracker = null; 11626} 11627 11628function getValueFromNode(node) { 11629 var value; 11630 if (node) { 11631 value = isCheckable(node) ? '' + node.checked : node.value; 11632 } 11633 return value; 11634} 11635 11636var inputValueTracking = { 11637 // exposed for testing 11638 _getTrackerFromNode: function (node) { 11639 return getTracker(ReactDOMComponentTree.getInstanceFromNode(node)); 11640 }, 11641 11642 11643 track: function (inst) { 11644 if (getTracker(inst)) { 11645 return; 11646 } 11647 11648 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 11649 var valueField = isCheckable(node) ? 'checked' : 'value'; 11650 var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); 11651 11652 var currentValue = '' + node[valueField]; 11653 11654 // if someone has already defined a value or Safari, then bail 11655 // and don't track value will cause over reporting of changes, 11656 // but it's better then a hard failure 11657 // (needed for certain tests that spyOn input values and Safari) 11658 if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') { 11659 return; 11660 } 11661 11662 Object.defineProperty(node, valueField, { 11663 enumerable: descriptor.enumerable, 11664 configurable: true, 11665 get: function () { 11666 return descriptor.get.call(this); 11667 }, 11668 set: function (value) { 11669 currentValue = '' + value; 11670 descriptor.set.call(this, value); 11671 } 11672 }); 11673 11674 attachTracker(inst, { 11675 getValue: function () { 11676 return currentValue; 11677 }, 11678 setValue: function (value) { 11679 currentValue = '' + value; 11680 }, 11681 stopTracking: function () { 11682 detachTracker(inst); 11683 delete node[valueField]; 11684 } 11685 }); 11686 }, 11687 11688 updateValueIfChanged: function (inst) { 11689 if (!inst) { 11690 return false; 11691 } 11692 var tracker = getTracker(inst); 11693 11694 if (!tracker) { 11695 inputValueTracking.track(inst); 11696 return true; 11697 } 11698 11699 var lastValue = tracker.getValue(); 11700 var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst)); 11701
11702 if (nextValue !== lastValue) { 11703 tracker.setValue(nextValue); 11704 return true; 11705 } 11706 11707 return false; 11708 }, 11709 stopTracking: function (inst) { 11710 var tracker = getTracker(inst); 11711 if (tracker) { 11712 tracker.stopTracking(); 11713 } 11714 } 11715}; 11716 11717module.exports = inputValueTracking; 11718 11719/***/ }), 11720/* 202 */ 11721/***/ (function(module, exports, __webpack_require__) { 11722 11723"use strict"; 11724/** 11725 * Copyright (c) 2013-present, Facebook, Inc. 11726 * 11727 * This source code is licensed under the MIT license found in the 11728 * LICENSE file in the root directory of this source tree. 11729 * 11730 * 11731 */ 11732 11733 11734 11735/** 11736 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary 11737 */ 11738 11739var supportedInputTypes = { 11740 color: true, 11741 date: true, 11742 datetime: true, 11743 'datetime-local': true, 11744 email: true, 11745 month: true, 11746 number: true, 11747 password: true, 11748 range: true, 11749 search: true, 11750 tel: true, 11751 text: true, 11752 time: true, 11753 url: true, 11754 week: true 11755}; 11756 11757function isTextInputElement(elem) { 11758 var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); 11759 11760 if (nodeName === 'input') { 11761 return !!supportedInputTypes[elem.type]; 11762 } 11763 11764 if (nodeName === 'textarea') { 11765 return true; 11766 } 11767 11768 return false; 11769} 11770 11771module.exports = isTextInputElement; 11772 11773/***/ }), 11774/* 203 */ 11775/***/ (function(module, exports, __webpack_require__) { 11776 11777"use strict"; 11778/** 11779 * Copyright (c) 2013-present, Facebook, Inc. 11780 * 11781 * This source code is licensed under the MIT license found in the 11782 * LICENSE file in the root directory of this source tree. 11783 * 11784 */ 11785 11786 11787 11788var ViewportMetrics = { 11789 currentScrollLeft: 0, 11790 11791 currentScrollTop: 0, 11792 11793 refreshScrollValues: function (scrollPosition) { 11794 ViewportMetrics.currentScrollLeft = scrollPosition.x; 11795 ViewportMetrics.currentScrollTop = scrollPosition.y; 11796 } 11797}; 11798 11799module.exports = ViewportMetrics; 11800 11801/***/ }), 11802/* 204 */ 11803/***/ (function(module, exports, __webpack_require__) { 11804 11805"use strict"; 11806/** 11807 * Copyright (c) 2013-present, Facebook, Inc. 11808 * 11809 * This source code is licensed under the MIT license found in the 11810 * LICENSE file in the root directory of this source tree. 11811 * 11812 */ 11813 11814 11815 11816var ExecutionEnvironment = __webpack_require__(16); 11817var escapeTextContentForBrowser = __webpack_require__(103); 11818var setInnerHTML = __webpack_require__(102); 11819 11820/** 11821 * Set the textContent property of a node, ensuring that whitespace is preserved 11822 * even in IE8. innerText is a poor substitute for textContent and, among many 11823 * issues, inserts <br> instead of the literal newline chars. innerHTML behaves 11824 * as it should. 11825 * 11826 * @param {DOMElement} node 11827 * @param {string} text 11828 * @internal 11829 */ 11830var setTextContent = function (node, text) { 11831 if (text) { 11832 var firstChild = node.firstChild; 11833 11834 if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) { 11835 firstChild.nodeValue = text; 11836 return; 11837 } 11838 } 11839 node.textContent = text; 11840}; 11841 11842if (ExecutionEnvironment.canUseDOM) { 11843 if (!('textContent' in document.documentElement)) { 11844 setTextContent = function (node, text) { 11845 if (node.nodeType === 3) { 11846 node.nodeValue = text; 11847 return; 11848 } 11849 setInnerHTML(node, escapeTextContentForBrowser(text)); 11850 }; 11851 } 11852} 11853 11854module.exports = setTextContent; 11855 11856/***/ }), 11857/* 205 */ 11858/***/ (function(module, exports, __webpack_require__) { 11859 11860"use strict"; 11861/** 11862 * Copyright (c) 2013-present, Facebook, Inc. 11863 * 11864 * This source code is licensed under the MIT license found in the 11865 * LICENSE file in the root directory of this source tree. 11866 * 11867 */ 11868 11869 11870 11871/** 11872 * @param {DOMElement} node input/textarea to focus 11873 */ 11874 11875function focusNode(node) { 11876 // IE8 can throw "Can't move focus to the control because it is invisible, 11877 // not enabled, or of a type that does not accept the focus." for all kinds of 11878 // reasons that are too expensive and fragile to test. 11879 try { 11880 node.focus(); 11881 } catch (e) {} 11882} 11883 11884module.exports = focusNode; 11885 11886/***/ }), 11887/* 206 */ 11888/***/ (function(module, exports, __webpack_require__) { 11889 11890"use strict"; 11891/** 11892 * Copyright (c) 2013-present, Facebook, Inc. 11893 * 11894 * This source code is licensed under the MIT license found in the 11895 * LICENSE file in the root directory of this source tree. 11896 * 11897 */ 11898 11899 11900 11901/** 11902 * CSS properties which accept numbers but are not in units of "px". 11903 */ 11904 11905var isUnitlessNumber = { 11906 animationIterationCount: true, 11907 borderImageOutset: true, 11908 borderImageSlice: true, 11909 borderImageWidth: true, 11910 boxFlex: true, 11911 boxFlexGroup: true, 11912 boxOrdinalGroup: true, 11913 columnCount: true, 11914 columns: true, 11915 flex: true, 11916 flexGrow: true, 11917 flexPositive: true, 11918 flexShrink: true, 11919 flexNegative: true, 11920 flexOrder: true, 11921 gridRow: true, 11922 gridRowEnd: true, 11923 gridRowSpan: true, 11924 gridRowStart: true, 11925 gridColumn: true, 11926 gridColumnEnd: true, 11927 gridColumnSpan: true, 11928 gridColumnStart: true, 11929 fontWeight: true, 11930 lineClamp: true, 11931 lineHeight: true, 11932 opacity: true, 11933 order: true, 11934 orphans: true, 11935 tabSize: true, 11936 widows: true, 11937 zIndex: true, 11938 zoom: true, 11939 11940 // SVG-related properties 11941 fillOpacity: true, 11942 floodOpacity: true, 11943 stopOpacity: true, 11944 strokeDasharray: true, 11945 strokeDashoffset: true, 11946 strokeMiterlimit: true, 11947 strokeOpacity: true, 11948 strokeWidth: true 11949}; 11950 11951/** 11952 * @param {string}
11952 prefix vendor-specific prefix, eg: Webkit 11953 * @param {string} key style name, eg: transitionDuration 11954 * @return {string} style name prefixed with `prefix`, properly camelCased, eg: 11955 * WebkitTransitionDuration 11956 */ 11957function prefixKey(prefix, key) { 11958 return prefix + key.charAt(0).toUpperCase() + key.substring(1); 11959} 11960 11961/** 11962 * Support style names that may come passed in prefixed by adding permutations 11963 * of vendor prefixes. 11964 */ 11965var prefixes = ['Webkit', 'ms', 'Moz', 'O']; 11966 11967// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an 11968// infinite loop, because it iterates over the newly added props too. 11969Object.keys(isUnitlessNumber).forEach(function (prop) { 11970 prefixes.forEach(function (prefix) { 11971 isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; 11972 }); 11973}); 11974 11975/** 11976 * Most style properties can be unset by doing .style[prop] = '' but IE8 11977 * doesn't like doing that with shorthand properties so for the properties that 11978 * IE8 breaks on, which are listed here, we instead unset each of the 11979 * individual properties. See http://bugs.jquery.com/ticket/12385. 11980 * The 4-value 'clock' properties like margin, padding, border-width seem to 11981 * behave without any problems. Curiously, list-style works too without any 11982 * special prodding. 11983 */ 11984var shorthandPropertyExpansions = { 11985 background: { 11986 backgroundAttachment: true, 11987 backgroundColor: true, 11988 backgroundImage: true, 11989 backgroundPositionX: true, 11990 backgroundPositionY: true, 11991 backgroundRepeat: true 11992 }, 11993 backgroundPosition: { 11994 backgroundPositionX: true, 11995 backgroundPositionY: true 11996 }, 11997 border: { 11998 borderWidth: true, 11999 borderStyle: true, 12000 borderColor: true 12001 }, 12002 borderBottom: { 12003 borderBottomWidth: true, 12004 borderBottomStyle: true, 12005 borderBottomColor: true 12006 }, 12007 borderLeft: { 12008 borderLeftWidth: true, 12009 borderLeftStyle: true, 12010 borderLeftColor: true 12011 }, 12012 borderRight: { 12013 borderRightWidth: true, 12014 borderRightStyle: true, 12015 borderRightColor: true 12016 }, 12017 borderTop: { 12018 borderTopWidth: true, 12019 borderTopStyle: true, 12020 borderTopColor: true 12021 }, 12022 font: { 12023 fontStyle: true, 12024 fontVariant: true, 12025 fontWeight: true, 12026 fontSize: true, 12027 lineHeight: true, 12028 fontFamily: true 12029 }, 12030 outline: { 12031 outlineWidth: true, 12032 outlineStyle: true, 12033 outlineColor: true 12034 } 12035}; 12036 12037var CSSProperty = { 12038 isUnitlessNumber: isUnitlessNumber, 12039 shorthandPropertyExpansions: shorthandPropertyExpansions 12040}; 12041 12042module.exports = CSSProperty; 12043 12044/***/ }), 12045/* 207 */ 12046/***/ (function(module, exports, __webpack_require__) { 12047 12048"use strict"; 12049/* WEBPACK VAR INJECTION */(function(process) {/** 12050 * Copyright (c) 2013-present, Facebook, Inc. 12051 * 12052 * This source code is licensed under the MIT license found in the 12053 * LICENSE file in the root directory of this source tree. 12054 * 12055 */ 12056 12057 12058 12059var DOMProperty = __webpack_require__(47); 12060var ReactDOMComponentTree = __webpack_require__(14); 12061var ReactInstrumentation = __webpack_require__(28); 12062 12063var quoteAttributeValueForBrowser = __webpack_require__(482); 12064var warning = __webpack_require__(3); 12065 12066var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); 12067var illegalAttributeNameCache = {}; 12068var validatedAttributeNameCache = {}; 12069 12070function isAttributeNameSafe(attributeName) { 12071 if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { 12072 return true; 12073 } 12074 if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { 12075 return false; 12076 } 12077 if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { 12078 validatedAttributeNameCache[attributeName] = true; 12079 return true; 12080 } 12081 illegalAttributeNameCache[attributeName] = true; 12082 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0; 12083 return false; 12084} 12085 12086function shouldIgnoreValue(propertyInfo, value) { 12087 return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; 12088} 12089 12090/** 12091 * Operations for dealing with DOM properties. 12092 */ 12093var DOMPropertyOperations = { 12094 /** 12095 * Creates markup for the ID property. 12096 * 12097 * @param {string} id Unescaped ID. 12098 * @return {string} Markup string. 12099 */ 12100 createMarkupForID: function (id) { 12101 return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); 12102 }, 12103 12104 setAttributeForID: function (node, id) { 12105 node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); 12106 }, 12107 12108 createMarkupForRoot: function () { 12109 return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""'; 12110 }, 12111 12112 setAttributeForRoot: function (node) { 12113 node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, ''); 12114 }, 12115 12116 /** 12117 * Creates markup for a property. 12118 * 12119 * @param {string} name 12120 * @param {*} value 12121 * @return {?string}
12121 Markup string, or null if the property was invalid. 12122 */ 12123 createMarkupForProperty: function (name, value) { 12124 var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; 12125 if (propertyInfo) { 12126 if (shouldIgnoreValue(propertyInfo, value)) { 12127 return ''; 12128 } 12129 var attributeName = propertyInfo.attributeName; 12130 if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { 12131 return attributeName + '=""'; 12132 } 12133 return attributeName + '=' + quoteAttributeValueForBrowser(value); 12134 } else if (DOMProperty.isCustomAttribute(name)) { 12135 if (value == null) { 12136 return ''; 12137 } 12138 return name + '=' + quoteAttributeValueForBrowser(value); 12139 } 12140 return null; 12141 }, 12142 12143 /** 12144 * Creates markup for a custom property. 12145 * 12146 * @param {string} name 12147 * @param {*} value 12148 * @return {string} Markup string, or empty string if the property was invalid. 12149 */ 12150 createMarkupForCustomAttribute: function (name, value) { 12151 if (!isAttributeNameSafe(name) || value == null) { 12152 return ''; 12153 } 12154 return name + '=' + quoteAttributeValueForBrowser(value); 12155 }, 12156 12157 /** 12158 * Sets the value for a property on a node. 12159 * 12160 * @param {DOMElement} node 12161 * @param {string} name 12162 * @param {*} value 12163 */ 12164 setValueForProperty: function (node, name, value) { 12165 var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; 12166 if (propertyInfo) { 12167 var mutationMethod = propertyInfo.mutationMethod; 12168 if (mutationMethod) { 12169 mutationMethod(node, value); 12170 } else if (shouldIgnoreValue(propertyInfo, value)) { 12171 this.deleteValueForProperty(node, name); 12172 return; 12173 } else if (propertyInfo.mustUseProperty) { 12174 // Contrary to `setAttribute`, object properties are properly 12175 // `toString`ed by IE8/9. 12176 node[propertyInfo.propertyName] = value; 12177 } else { 12178 var attributeName = propertyInfo.attributeName; 12179 var namespace = propertyInfo.attributeNamespace; 12180 // `setAttribute` with objects becomes only `[object]` in IE8/9, 12181 // ('' + value) makes it output the correct toString()-value. 12182 if (namespace) { 12183 node.setAttributeNS(namespace, attributeName, '' + value); 12184 } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { 12185 node.setAttribute(attributeName, ''); 12186 } else { 12187 node.setAttribute(attributeName, '' + value); 12188 } 12189 } 12190 } else if (DOMProperty.isCustomAttribute(name)) { 12191 DOMPropertyOperations.setValueForAttribute(node, name, value); 12192 return; 12193 } 12194 12195 if (process.env.NODE_ENV !== 'production') { 12196 var payload = {}; 12197 payload[name] = value; 12198 ReactInstrumentation.debugTool.onHostOperation({ 12199 instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 12200 type: 'update attribute', 12201 payload: payload 12202 }); 12203 } 12204 }, 12205 12206 setValueForAttribute: function (node, name, value) { 12207 if (!isAttributeNameSafe(name)) { 12208 return; 12209 } 12210 if (value == null) { 12211 node.removeAttribute(name); 12212 } else { 12213 node.setAttribute(name, '' + value); 12214 } 12215 12216 if (process.env.NODE_ENV !== 'production') { 12217 var payload = {}; 12218 payload[name] = value; 12219 ReactInstrumentation.debugTool.onHostOperation({ 12220 instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 12221 type: 'update attribute', 12222 payload: payload 12223 }); 12224 } 12225 }, 12226 12227 /** 12228 * Deletes an attributes from a node. 12229 * 12230 * @param {DOMElement} node 12231 * @param {string} name 12232 */ 12233 deleteValueForAttribute: function (node, name) { 12234 node.removeAttribute(name); 12235 if (process.env.NODE_ENV !== 'production') { 12236 ReactInstrumentation.debugTool.onHostOperation({ 12237 instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 12238 type: 'remove attribute', 12239 payload: name 12240 }); 12241 } 12242 }, 12243 12244 /** 12245 * Deletes the value for a property on a node. 12246 * 12247 * @param {DOMElement} node 12248 * @param {string} name 12249 */ 12250 deleteValueForProperty: function (node, name) { 12251 var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; 12252 if (propertyInfo) { 12253 var mutationMethod = propertyInfo.mutationMethod; 12254 if (mutationMethod) { 12255 mutationMethod(node, undefined); 12256 } else if (propertyInfo.mustUseProperty) { 12257 var propName = propertyInfo.propertyName; 12258 if (propertyInfo.hasBooleanValue) { 12259 node[propName] = false;
12260 } else { 12261 node[propName] = ''; 12262 } 12263 } else { 12264 node.removeAttribute(propertyInfo.attributeName); 12265 } 12266 } else if (DOMProperty.isCustomAttribute(name)) { 12267 node.removeAttribute(name); 12268 } 12269 12270 if (process.env.NODE_ENV !== 'production') { 12271 ReactInstrumentation.debugTool.onHostOperation({ 12272 instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 12273 type: 'remove attribute', 12274 payload: name 12275 }); 12276 } 12277 } 12278}; 12279 12280module.exports = DOMPropertyOperations; 12281/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12282 12283/***/ }), 12284/* 208 */ 12285/***/ (function(module, exports, __webpack_require__) { 12286 12287"use strict"; 12288/** 12289 * Copyright (c) 2013-present, Facebook, Inc. 12290 * 12291 * This source code is licensed under the MIT license found in the 12292 * LICENSE file in the root directory of this source tree. 12293 * 12294 * 12295 */ 12296 12297 12298 12299var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; 12300 12301module.exports = ReactPropTypesSecret; 12302 12303/***/ }), 12304/* 209 */ 12305/***/ (function(module, exports, __webpack_require__) { 12306 12307"use strict"; 12308/* WEBPACK VAR INJECTION */(function(process) {/** 12309 * Copyright (c) 2013-present, Facebook, Inc. 12310 * 12311 * This source code is licensed under the MIT license found in the 12312 * LICENSE file in the root directory of this source tree. 12313 * 12314 */ 12315 12316 12317 12318var _assign = __webpack_require__(10); 12319 12320var LinkedValueUtils = __webpack_require__(145); 12321var ReactDOMComponentTree = __webpack_require__(14); 12322var ReactUpdates = __webpack_require__(40); 12323 12324var warning = __webpack_require__(3); 12325 12326var didWarnValueLink = false; 12327var didWarnValueDefaultValue = false; 12328 12329function updateOptionsIfPendingUpdateAndMounted() { 12330 if (this._rootNodeID && this._wrapperState.pendingUpdate) { 12331 this._wrapperState.pendingUpdate = false; 12332 12333 var props = this._currentElement.props; 12334 var value = LinkedValueUtils.getValue(props); 12335 12336 if (value != null) { 12337 updateOptions(this, Boolean(props.multiple), value); 12338 } 12339 } 12340} 12341 12342function getDeclarationErrorAddendum(owner) { 12343 if (owner) { 12344 var name = owner.getName(); 12345 if (name) { 12346 return ' Check the render method of `' + name + '`.'; 12347 } 12348 } 12349 return ''; 12350} 12351 12352var valuePropNames = ['value', 'defaultValue']; 12353 12354/** 12355 * Validation function for `value` and `defaultValue`. 12356 * @private 12357 */ 12358function checkSelectPropTypes(inst, props) { 12359 var owner = inst._currentElement._owner; 12360 LinkedValueUtils.checkPropTypes('select', props, owner); 12361 12362 if (props.valueLink !== undefined && !didWarnValueLink) { 12363 process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0; 12364 didWarnValueLink = true; 12365 } 12366 12367 for (var i = 0; i < valuePropNames.length; i++) { 12368 var propName = valuePropNames[i]; 12369 if (props[propName] == null) { 12370 continue; 12371 } 12372 var isArray = Array.isArray(props[propName]); 12373 if (props.multiple && !isArray) { 12374 process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; 12375 } else if (!props.multiple && isArray) { 12376 process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; 12377 } 12378 } 12379} 12380 12381/** 12382 * @param {ReactDOMComponent} inst 12383 * @param {boolean} multiple 12384 * @param {*} propValue A stringable (with `multiple`, a list of stringables). 12385 * @private 12386 */ 12387function updateOptions(inst, multiple, propValue) { 12388 var selectedValue, i; 12389 var options = ReactDOMComponentTree.getNodeFromInstance(inst).options; 12390 12391 if (multiple) { 12392 selectedValue = {}; 12393 for (i = 0; i < propValue.length; i++) { 12394 selectedValue['' + propValue[i]] = true; 12395 } 12396 for (i = 0; i < options.length; i++) { 12397 var selected = selectedValue.hasOwnProperty(options[i].value); 12398 if (options[i].selected !== selected) { 12399 options[i].selected = selected; 12400 } 12401 } 12402 } else { 12403 // Do not set `select.value` as exact behavior isn't consistent across all 12404 // browsers for all cases. 12405 selectedValue = '' + propValue; 12406 for (i = 0; i < options.length; i++) { 12407 if (options[i].value === selectedValue) { 12408 options[i].selected = true; 12409 return; 12410 } 12411 } 12412 if (options.length) { 12413 options[0].selected = true; 12414 } 12415 } 12416} 12417 12418/** 12419 * Implements a <select> host component that allows optionally setting the 12420 * props `value` and `defaultValue`. If `multiple` is false, the prop must be a 12421 * stringable. If `multiple` is true, the prop must be an array of str
12421ingables. 12422 * 12423 * If `value` is not supplied (or null/undefined), user actions that change the 12424 * selected option will trigger updates to the rendered options. 12425 * 12426 * If it is supplied (and not null/undefined), the rendered options will not 12427 * update in response to user actions. Instead, the `value` prop must change in 12428 * order for the rendered options to update. 12429 * 12430 * If `defaultValue` is provided, any options with the supplied values will be 12431 * selected. 12432 */ 12433var ReactDOMSelect = { 12434 getHostProps: function (inst, props) { 12435 return _assign({}, props, { 12436 onChange: inst._wrapperState.onChange, 12437 value: undefined 12438 }); 12439 }, 12440 12441 mountWrapper: function (inst, props) { 12442 if (process.env.NODE_ENV !== 'production') { 12443 checkSelectPropTypes(inst, props); 12444 } 12445 12446 var value = LinkedValueUtils.getValue(props); 12447 inst._wrapperState = { 12448 pendingUpdate: false, 12449 initialValue: value != null ? value : props.defaultValue, 12450 listeners: null, 12451 onChange: _handleChange.bind(inst), 12452 wasMultiple: Boolean(props.multiple) 12453 }; 12454 12455 if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { 12456 process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; 12457 didWarnValueDefaultValue = true; 12458 } 12459 }, 12460 12461 getSelectValueContext: function (inst) { 12462 // ReactDOMOption looks at this initial value so the initial generated 12463 // markup has correct `selected` attributes 12464 return inst._wrapperState.initialValue; 12465 }, 12466 12467 postUpdateWrapper: function (inst) { 12468 var props = inst._currentElement.props; 12469 12470 // After the initial mount, we control selected-ness manually so don't pass 12471 // this value down 12472 inst._wrapperState.initialValue = undefined; 12473 12474 var wasMultiple = inst._wrapperState.wasMultiple; 12475 inst._wrapperState.wasMultiple = Boolean(props.multiple); 12476 12477 var value = LinkedValueUtils.getValue(props); 12478 if (value != null) { 12479 inst._wrapperState.pendingUpdate = false; 12480 updateOptions(inst, Boolean(props.multiple), value); 12481 } else if (wasMultiple !== Boolean(props.multiple)) { 12482 // For simplicity, reapply `defaultValue` if `multiple` is toggled. 12483 if (props.defaultValue != null) { 12484 updateOptions(inst, Boolean(props.multiple), props.defaultValue); 12485 } else { 12486 // Revert the select back to its default unselected state. 12487 updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : ''); 12488 } 12489 } 12490 } 12491}; 12492 12493function _handleChange(event) { 12494 var props = this._currentElement.props; 12495 var returnValue = LinkedValueUtils.executeOnChange(props, event); 12496 12497 if (this._rootNodeID) { 12498 this._wrapperState.pendingUpdate = true; 12499 } 12500 ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this); 12501 return returnValue; 12502} 12503 12504module.exports = ReactDOMSelect; 12505/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12506 12507/***/ }), 12508/* 210 */ 12509/***/ (function(module, exports, __webpack_require__) { 12510 12511"use strict"; 12512/* WEBPACK VAR INJECTION */(function(process) {/** 12513 * Copyright (c) 2013-present, Facebook, Inc. 12514 * 12515 * This source code is licensed under the MIT license found in the 12516 * LICENSE file in the root directory of this source tree. 12517 * 12518 */ 12519 12520 12521 12522var _prodInvariant = __webpack_require__(8), 12523 _assign = __webpack_require__(10); 12524 12525var ReactCompositeComponent = __webpack_require__(490); 12526var ReactEmptyComponent = __webpack_require__(212); 12527var ReactHostComponent = __webpack_require__(213); 12528 12529var getNextDebugID = __webpack_require__(493); 12530var invariant = __webpack_require__(2); 12531var warning = __webpack_require__(3); 12532 12533// To avoid a cyclic dependency, we create the final class in this module 12534var ReactCompositeComponentWrapper = function (element) { 12535 this.construct(element); 12536}; 12537 12538function getDeclarationErrorAddendum(owner) { 12539 if (owner) { 12540 var name = owner.getName(); 12541 if (name) { 12542 return ' Check the render method of `' + name + '`.'; 12543 } 12544 } 12545 return ''; 12546} 12547 12548/** 12549 * Check if the type reference is a known internal type. I.e. not a user 12550 * provided composite type. 12551 * 12552 * @param {function} type 12553 * @return {boolean} Returns true if this is a valid internal type. 12554 */ 12555function isInternalComponentType(type) { 12556 return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function'; 12557} 12558 12559/** 12560 * Given a ReactNode, create an instance that will actually be mounted. 12561 * 12562 * @param {ReactNode} node 12563 * @param {boolean} shouldHaveDebugID 12564 * @return {object} A new instance of the element's constructor. 12565 * @protected 12566 */ 12567function instantiateReactComponent(node, shouldHaveDebugID) { 12568 var instance; 12569 12570 if (node === null || node === false) { 12571 instance = ReactEmptyComponent.create(instantiateReactComponent); 12572 } else if (typeof node === 'object') { 12573 var element = node; 12574 var type = element.type; 12575 if (typeof type !== 'function' && typeof type !== 'string') { 12576 var info = ''; 12577 if (process.env.NODE_ENV !== 'production') { 12578 if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { 12579 info += ' You likely forgot to export your component from the file ' + "it's defined in."; 12580 } 12581 } 12582 info += getDeclarationErrorAddendum(element._owner); 12583 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invali
12583d: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0; 12584 } 12585 12586 // Special case string values 12587 if (typeof element.type === 'string') { 12588 instance = ReactHostComponent.createInternalComponent(element); 12589 } else if (isInternalComponentType(element.type)) { 12590 // This is temporarily available for custom components that are not string 12591 // representations. I.e. ART. Once those are updated to use the string 12592 // representation, we can drop this code path. 12593 instance = new element.type(element); 12594 12595 // We renamed this. Allow the old name for compat. :( 12596 if (!instance.getHostNode) { 12597 instance.getHostNode = instance.getNativeNode; 12598 } 12599 } else { 12600 instance = new ReactCompositeComponentWrapper(element); 12601 } 12602 } else if (typeof node === 'string' || typeof node === 'number') { 12603 instance = ReactHostComponent.createInstanceForText(node); 12604 } else { 12605 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0; 12606 } 12607 12608 if (process.env.NODE_ENV !== 'production') { 12609 process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0; 12610 } 12611 12612 // These two fields are used by the DOM and ART diffing algorithms 12613 // respectively. Instead of using expandos on components, we should be 12614 // storing the state needed by the diffing algorithms elsewhere. 12615 instance._mountIndex = 0; 12616 instance._mountImage = null; 12617 12618 if (process.env.NODE_ENV !== 'production') { 12619 instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0; 12620 } 12621 12622 // Internal instances should fully constructed at this point, so they should 12623 // not get any new fields added to them at this point. 12624 if (process.env.NODE_ENV !== 'production') { 12625 if (Object.preventExtensions) { 12626 Object.preventExtensions(instance); 12627 } 12628 } 12629 12630 return instance; 12631} 12632 12633_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, { 12634 _instantiateReactComponent: instantiateReactComponent 12635}); 12636 12637module.exports = instantiateReactComponent; 12638/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12639 12640/***/ }), 12641/* 211 */ 12642/***/ (function(module, exports, __webpack_require__) { 12643 12644"use strict"; 12645/* WEBPACK VAR INJECTION */(function(process) {/** 12646 * Copyright (c) 2013-present, Facebook, Inc. 12647 * 12648 * This source code is licensed under the MIT license found in the 12649 * LICENSE file in the root directory of this source tree. 12650 * 12651 * 12652 */ 12653 12654 12655 12656var _prodInvariant = __webpack_require__(8); 12657 12658var React = __webpack_require__(66); 12659 12660var invariant = __webpack_require__(2); 12661 12662var ReactNodeTypes = { 12663 HOST: 0, 12664 COMPOSITE: 1, 12665 EMPTY: 2, 12666 12667 getType: function (node) { 12668 if (node === null || node === false) { 12669 return ReactNodeTypes.EMPTY; 12670 } else if (React.isValidElement(node)) { 12671 if (typeof node.type === 'function') { 12672 return ReactNodeTypes.COMPOSITE; 12673 } else { 12674 return ReactNodeTypes.HOST; 12675 } 12676 } 12677 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0; 12678 } 12679}; 12680 12681module.exports = ReactNodeTypes; 12682/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12683 12684/***/ }), 12685/* 212 */ 12686/***/ (function(module, exports, __webpack_require__) { 12687 12688"use strict"; 12689/** 12690 * Copyright (c) 2014-present, Facebook, Inc. 12691 * 12692 * This source code is licensed under the MIT license found in the 12693 * LICENSE file in the root directory of this source tree. 12694 * 12695 */ 12696 12697 12698 12699var emptyComponentFactory; 12700 12701var ReactEmptyComponentInjection = { 12702 injectEmptyComponentFactory: function (factory) { 12703 emptyComponentFactory = factory; 12704 } 12705}; 12706 12707var ReactEmptyComponent = { 12708 create: function (instantiate) { 12709 return emptyComponentFactory(instantiate); 12710 } 12711}; 12712 12713ReactEmptyComponent.injection = ReactEmptyComponentInjection; 12714 12715module.exports = ReactEmptyComponent; 12716 12717/***/ }), 12718/* 213 */ 12719/***/ (function(module, exports, __webpack_require__) { 12720 12721"use strict"; 12722/* WEBPACK VAR INJECTION */(function(process) {/** 12723 * Copyright (c) 2014-present, Facebook, Inc. 12724 * 12725 * This source code is licensed under the MIT license found in the 12726 * LICENSE file in the root directory of this source tree. 12727 * 12728 */ 12729 12730 12731 12732var _prodInvariant = __webpack_require__(8); 12733 12734var invariant = __webpack_require__(2); 12735 12736var genericComponentClass = null; 12737var textComponentClass = null; 12738 12739var ReactHostComponentInjection = { 12740 // This accepts a class that receives the tag string. This is a catch all 12741 // that can render any kind of tag. 12742 injectGenericComponentClass: function (componentClass) { 12743 genericComponentClass = componentClass; 12744 }, 12745 // This accepts a text component class that takes the text str
12745ing to be 12746 // rendered as props. 12747 injectTextComponentClass: function (componentClass) { 12748 textComponentClass = componentClass; 12749 } 12750}; 12751 12752/** 12753 * Get a host internal component class for a specific tag. 12754 * 12755 * @param {ReactElement} element The element to create. 12756 * @return {function} The internal class constructor function. 12757 */ 12758function createInternalComponent(element) { 12759 !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0; 12760 return new genericComponentClass(element); 12761} 12762 12763/** 12764 * @param {ReactText} text 12765 * @return {ReactComponent} 12766 */ 12767function createInstanceForText(text) { 12768 return new textComponentClass(text); 12769} 12770 12771/** 12772 * @param {ReactComponent} component 12773 * @return {boolean} 12774 */ 12775function isTextComponent(component) { 12776 return component instanceof textComponentClass; 12777} 12778 12779var ReactHostComponent = { 12780 createInternalComponent: createInternalComponent, 12781 createInstanceForText: createInstanceForText, 12782 isTextComponent: isTextComponent, 12783 injection: ReactHostComponentInjection 12784}; 12785 12786module.exports = ReactHostComponent; 12787/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12788 12789/***/ }), 12790/* 214 */ 12791/***/ (function(module, exports, __webpack_require__) { 12792 12793"use strict"; 12794/* WEBPACK VAR INJECTION */(function(process) {/** 12795 * Copyright (c) 2013-present, Facebook, Inc. 12796 * 12797 * This source code is licensed under the MIT license found in the 12798 * LICENSE file in the root directory of this source tree. 12799 * 12800 */ 12801 12802 12803 12804var _prodInvariant = __webpack_require__(8); 12805 12806var ReactCurrentOwner = __webpack_require__(39); 12807var REACT_ELEMENT_TYPE = __webpack_require__(494); 12808 12809var getIteratorFn = __webpack_require__(495); 12810var invariant = __webpack_require__(2); 12811var KeyEscapeUtils = __webpack_require__(149); 12812var warning = __webpack_require__(3); 12813 12814var SEPARATOR = '.'; 12815var SUBSEPARATOR = ':'; 12816 12817/** 12818 * This is inlined from ReactElement since this file is shared between 12819 * isomorphic and renderers. We could extract this to a 12820 * 12821 */ 12822 12823/** 12824 * TODO: Test that a single child and an array with one item have the same key 12825 * pattern. 12826 */ 12827 12828var didWarnAboutMaps = false; 12829 12830/** 12831 * Generate a key string that identifies a component within a set. 12832 * 12833 * @param {*} component A component that could contain a manual key. 12834 * @param {number} index Index that is used if a manual key is not provided. 12835 * @return {string} 12836 */ 12837function getComponentKey(component, index) { 12838 // Do some typechecking here since we call this blindly. We want to ensure 12839 // that we don't block potential future ES APIs. 12840 if (component && typeof component === 'object' && component.key != null) { 12841 // Explicit key 12842 return KeyEscapeUtils.escape(component.key); 12843 } 12844 // Implicit key determined by the index in the set 12845 return index.toString(36); 12846} 12847 12848/** 12849 * @param {?*} children Children tree container. 12850 * @param {!string} nameSoFar Name of the key path so far. 12851 * @param {!function} callback Callback to invoke with each child found. 12852 * @param {?*} traverseContext Used to pass information throughout the traversal 12853 * process. 12854 * @return {!number} The number of children in this subtree. 12855 */ 12856function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { 12857 var type = typeof children; 12858 12859 if (type === 'undefined' || type === 'boolean') { 12860 // All of the above are perceived as null. 12861 children = null; 12862 } 12863 12864 if (children === null || type === 'string' || type === 'number' || 12865 // The following is inlined from ReactElement. This means we can optimize 12866 // some checks. React Fiber also inlines this logic for similar purposes. 12867 type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { 12868 callback(traverseContext, children, 12869 // If it's the only child, treat the name as if it was wrapped in an array 12870 // so that it's consistent if the number of children grows. 12871 nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); 12872 return 1; 12873 } 12874 12875 var child; 12876 var nextName; 12877 var subtreeCount = 0; // Count of children found in the current subtree.
12878 var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; 12879 12880 if (Array.isArray(children)) { 12881 for (var i = 0; i < children.length; i++) { 12882 child = children[i]; 12883 nextName = nextNamePrefix + getComponentKey(child, i); 12884 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 12885 } 12886 } else { 12887 var iteratorFn = getIteratorFn(children); 12888 if (iteratorFn) { 12889 var iterator = iteratorFn.call(children); 12890 var step; 12891 if (iteratorFn !== children.entries) { 12892 var ii = 0; 12893 while (!(step = iterator.next()).done) { 12894 child = step.value; 12895 nextName = nextNamePrefix + getComponentKey(child, ii++); 12896 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 12897 } 12898 } else { 12899 if (process.env.NODE_ENV !== 'production') { 12900 var mapsAsChildrenAddendum = ''; 12901 if (ReactCurrentOwner.current) { 12902 var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); 12903 if (mapsAsChildrenOwnerName) { 12904 mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; 12905 } 12906 } 12907 process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; 12908 didWarnAboutMaps = true; 12909 } 12910 // Iterator will provide entry [k,v] tuples rather than values. 12911 while (!(step = iterator.next()).done) { 12912 var entry = step.value; 12913 if (entry) { 12914 child = entry[1]; 12915 nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); 12916 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 12917 } 12918 } 12919 } 12920 } else if (type === 'object') { 12921 var addendum = ''; 12922 if (process.env.NODE_ENV !== 'production') { 12923 addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; 12924 if (children._isReactElement) { 12925 addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.'; 12926 } 12927 if (ReactCurrentOwner.current) { 12928 var name = ReactCurrentOwner.current.getName(); 12929 if (name) { 12930 addendum += ' Check the render method of `' + name + '`.'; 12931 } 12932 } 12933 } 12934 var childrenString = String(children); 12935 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; 12936 } 12937 } 12938 12939 return subtreeCount; 12940} 12941 12942/** 12943 * Traverses children that are typically specified as `props.children`, but 12944 * might also be specified through attributes: 12945 * 12946 * - `traverseAllChildren(this.props.children, ...)` 12947 * - `traverseAllChildren(this.props.leftPanelChildren, ...)` 12948 * 12949 * The `traverseContext` is an optional argument that is passed through the 12950 * entire traversal. It can be used to store accumulations or anything else that 12951 * the callback might find relevant. 12952 * 12953 * @param {?*} children Children tree object. 12954 * @param {!function} callback To invoke upon traversing each child. 12955 * @param {?*} traverseContext Context for traversal. 12956 * @return {!number} The number of children in this subtree. 12957 */ 12958function traverseAllChildren(children, callback, traverseContext) { 12959 if (children == null) { 12960 return 0; 12961 } 12962 12963 return traverseAllChildrenImpl(children, '', callback, traverseContext); 12964} 12965 12966module.exports = traverseAllChildren; 12967/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 12968 12969/***/ }), 12970/* 215 */ 12971/***/ (function(module, exports, __webpack_require__) { 12972 12973"use strict"; 12974/* WEBPACK VAR INJECTION */(function(process) { 12975 12976/** 12977 * Copyright (c) 2013-present, Facebook, Inc. 12978 * 12979 * This source code is licensed under the MIT license found in the 12980 * LICENSE file in the root directory of this source tree. 12981 * 12982 * @typechecks 12983 */ 12984 12985var emptyFunction = __webpack_require__(38); 12986 12987/** 12988 * Upstream version of event listener. Does not take into account specific 12989 * nature of platform. 12990 */ 12991var EventListener = { 12992 /** 12993 * Listen to DOM events during the bubble phase. 12994 * 12995 * @param {DOMEventTarget} target DOM element to register listener on.
12996 * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. 12997 * @param {function} callback Callback function. 12998 * @return {object} Object with a `remove` method. 12999 */ 13000 listen: function listen(target, eventType, callback) { 13001 if (target.addEventListener) { 13002 target.addEventListener(eventType, callback, false); 13003 return { 13004 remove: function remove() { 13005 target.removeEventListener(eventType, callback, false); 13006 } 13007 }; 13008 } else if (target.attachEvent) { 13009 target.attachEvent('on' + eventType, callback); 13010 return { 13011 remove: function remove() { 13012 target.detachEvent('on' + eventType, callback); 13013 } 13014 }; 13015 } 13016 }, 13017 13018 /** 13019 * Listen to DOM events during the capture phase. 13020 * 13021 * @param {DOMEventTarget} target DOM element to register listener on. 13022 * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. 13023 * @param {function} callback Callback function. 13024 * @return {object} Object with a `remove` method. 13025 */ 13026 capture: function capture(target, eventType, callback) { 13027 if (target.addEventListener) { 13028 target.addEventListener(eventType, callback, true); 13029 return { 13030 remove: function remove() { 13031 target.removeEventListener(eventType, callback, true); 13032 } 13033 }; 13034 } else { 13035 if (process.env.NODE_ENV !== 'production') { 13036 console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); 13037 } 13038 return { 13039 remove: emptyFunction 13040 }; 13041 } 13042 }, 13043 13044 registerDefault: function registerDefault() {} 13045}; 13046 13047module.exports = EventListener; 13048/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 13049 13050/***/ }), 13051/* 216 */ 13052/***/ (function(module, exports, __webpack_require__) { 13053 13054"use strict"; 13055/** 13056 * Copyright (c) 2013-present, Facebook, Inc. 13057 * 13058 * This source code is licensed under the MIT license found in the 13059 * LICENSE file in the root directory of this source tree. 13060 * 13061 */ 13062 13063 13064 13065var ReactDOMSelection = __webpack_require__(507); 13066
13067var containsNode = __webpack_require__(509); 13068var focusNode = __webpack_require__(205); 13069var getActiveElement = __webpack_require__(217); 13070 13071function isInDocument(node) { 13072 return containsNode(document.documentElement, node); 13073} 13074 13075/** 13076 * @ReactInputSelection: React input selection module. Based on Selection.js, 13077 * but modified to be suitable for react and has a couple of bug fixes (doesn't 13078 * assume buttons have range selections allowed). 13079 * Input selection module for React. 13080 */ 13081var ReactInputSelection = { 13082 hasSelectionCapabilities: function (elem) { 13083 var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); 13084 return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); 13085 }, 13086 13087 getSelectionInformation: function () { 13088 var focusedElem = getActiveElement(); 13089 return { 13090 focusedElem: focusedElem, 13091 selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null 13092 }; 13093 }, 13094 13095 /** 13096 * @restoreSelection: If any selection information was potentially lost, 13097 * restore it. This is useful when performing operations that could remove dom 13098 * nodes and place them back in, resulting in focus being lost. 13099 */ 13100 restoreSelection: function (priorSelectionInformation) { 13101 var curFocusedElem = getActiveElement(); 13102 var priorFocusedElem = priorSelectionInformation.focusedElem; 13103 var priorSelectionRange = priorSelectionInformation.selectionRange; 13104 if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { 13105 if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { 13106 ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); 13107 } 13108 focusNode(priorFocusedElem); 13109 } 13110 }, 13111 13112 /** 13113 * @getSelection: Gets the selection bounds of a focused textarea, input or 13114 * contentEditable node. 13115 * -@input: Look up selection bounds of this input 13116 * -@return {start: selectionStart, end: selectionEnd} 13117 */ 13118 getSelection: function (input) { 13119 var selection; 13120 13121 if ('selectionStart' in input) { 13122 // Modern browser with input or textarea. 13123 selection = { 13124 start: input.selectionStart, 13125 end: input.selectionEnd 13126 }; 13127 } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { 13128 // IE8 input. 13129 var range = document.selection.createRange(); 13130 // There can only be one selection per document in IE, so it must 13131 // be in our element. 13132 if (range.parentElement() === input) { 13133 selection = { 13134 start: -range.moveStart('character', -input.value.length), 13135 end: -range.moveEnd('character', -input.value.length) 13136 }; 13137 } 13138 } else { 13139 // Content editable or old IE textarea. 13140 selection = ReactDOMSelection.getOffsets(input); 13141 } 13142 13143 return selection || { start: 0, end: 0 }; 13144 }, 13145 13146 /** 13147 * @setSelection: Sets the selection bounds of a textarea or input and focuses 13148 * the input. 13149 * -@input Set selection bounds of this input or textarea 13150 * -@offsets Object of same form that is returned from get* 13151 */ 13152 setSelection: function (input, offsets) { 13153 var start = offsets.start; 13154 var end = offsets.end; 13155 if (end === undefined) { 13156 end = start; 13157 } 13158 13159 if ('selectionStart' in input) { 13160 input.selectionStart = start; 13161 input.selectionEnd = Math.min(end, input.value.length); 13162 } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { 13163 var range = input.createTextRange(); 13164 range.collapse(true); 13165 range.moveStart('character', start); 13166 range.moveEnd('character', end - start); 13167 range.select(); 13168 } else { 13169 ReactDOMSelection.setOffsets(input, offsets); 13170 } 13171 } 13172}; 13173 13174module.exports = ReactInputSelection; 13175 13176/***/ }), 13177/* 217 */ 13178/***/ (function(module, exports, __webpack_require__) { 13179 13180"use strict"; 13181 13182 13183/** 13184 * Copyright (c) 2013-present, Facebook, Inc. 13185 * 13186 * This source code is licensed under the MIT license found in the 13187 * LICENSE file in the root directory of this source tree. 13188 * 13189 * @typechecks 13190 */ 13191 13192/* eslint-disable fb-www/typeof-undefined */ 13193
13194/** 13195 * Same as document.activeElement but wraps in a try-catch block. In IE it is 13196 * not safe to call document.activeElement if there is nothing focused. 13197 * 13198 * The activeElement will be null only if the document or document body is not 13199 * yet defined. 13200 * 13201 * @param {?DOMDocument} doc Defaults to current document. 13202 * @return {?DOMElement} 13203 */ 13204function getActiveElement(doc) /*?DOMElement*/{ 13205 doc = doc || (typeof document !== 'undefined' ? document : undefined); 13206 if (typeof doc === 'undefined') { 13207 return null; 13208 } 13209 try { 13210 return doc.activeElement || doc.body; 13211 } catch (e) { 13212 return doc.body; 13213 } 13214} 13215 13216module.exports = getActiveElement; 13217 13218/***/ }), 13219/* 218 */ 13220/***/ (function(module, exports, __webpack_require__) { 13221 13222"use strict"; 13223/* WEBPACK VAR INJECTION */(function(process) {/** 13224 * Copyright (c) 2013-present, Facebook, Inc. 13225 * 13226 * This source code is licensed under the MIT license found in the 13227 * LICENSE file in the root directory of this source tree. 13228 * 13229 */ 13230 13231 13232 13233var _prodInvariant = __webpack_require__(8); 13234 13235var DOMLazyTree = __webpack_require__(69); 13236var DOMProperty = __webpack_require__(47); 13237var React = __webpack_require__(66); 13238var ReactBrowserEventEmitter = __webpack_require__(104); 13239var ReactCurrentOwner = __webpack_require__(39); 13240var ReactDOMComponentTree = __webpack_require__(14); 13241var ReactDOMContainerInfo = __webpack_require__(524); 13242var ReactDOMFeatureFlags = __webpack_require__(525); 13243var ReactFeatureFlags = __webpack_require__(200); 13244var ReactInstanceMap = __webpack_require__(79); 13245var ReactInstrumentation = __webpack_require__(28); 13246var ReactMarkupChecksum = __webpack_require__(526); 13247var ReactReconciler = __webpack_require__(68); 13248var ReactUpdateQueue = __webpack_require__(150); 13249var ReactUpdates = __webpack_require__(40); 13250 13251var emptyObject = __webpack_require__(98); 13252var instantiateReactComponent = __webpack_require__(210); 13253var invariant = __webpack_require__(2); 13254var setInnerHTML = __webpack_require__(102); 13255var shouldUpdateReactComponent = __webpack_require__(148); 13256var warning = __webpack_require__(3); 13257 13258var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; 13259var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME; 13260 13261var ELEMENT_NODE_TYPE = 1; 13262var DOC_NODE_TYPE = 9; 13263var DOCUMENT_FRAGMENT_NODE_TYPE = 11; 13264 13265var instancesByReactRootID = {}; 13266 13267/** 13268 * Finds the index of the first character 13269 * that's not common between the two given strings. 13270 * 13271 * @return {number} the index of the character where the strings diverge 13272 */ 13273function firstDifferenceIndex(string1, string2) { 13274 var minLen = Math.min(string1.length, string2.length); 13275 for (var i = 0; i < minLen; i++) { 13276 if (string1.charAt(i) !== string2.charAt(i)) { 13277 return i; 13278 } 13279 } 13280 return string1.length === string2.length ? -1 : minLen; 13281} 13282 13283/** 13284 * @param {DOMElement|DOMDocument} container DOM element that may contain 13285 * a React component 13286 * @return {?*} DOM element that may have the reactRoot ID, or null. 13287 */ 13288function getReactRootElementInContainer(container) { 13289 if (!container) { 13290 return null; 13291 } 13292 13293 if (container.nodeType === DOC_NODE_TYPE) { 13294 return container.documentElement; 13295 } else { 13296 return container.firstChild; 13297 } 13298} 13299 13300function internalGetID(node) { 13301 // If node is something like a window, document, or text node, none of 13302 // which support attributes or a .getAttribute method, gracefully return 13303 // the empty string, as if the attribute were missing. 13304 return node.getAttribute && node.getAttribute(ATTR_NAME) || ''; 13305} 13306 13307/** 13308 * Mounts this component and inserts it into the DOM. 13309 * 13310 * @param {ReactComponent} componentInstance The instance to mount. 13311 * @param {DOMElement} container DOM element to mount into. 13312 * @param {ReactReconcileTransaction} transaction 13313 * @param {boolean} shouldReuseMarkup If true, do not insert markup 13314 */ 13315function mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) { 13316 var markerName; 13317 if (ReactFeatureFlags.logTopLevelRenders) { 13318 var wrappedElement = wrapperInstance._currentElement.props.child; 13319 var type = wrappedElement.type; 13320 markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name); 13321 console.time(markerName); 13322 } 13323 13324 var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */ 13325 ); 13326 13327 if (markerName) { 13328 console.timeEnd(markerName); 13329 } 13330 13331 wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance; 13332 ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction); 13333} 13334 13335/** 13336 * Batched mount. 13337 * 13338 * @param {ReactComponent} componentInstance The instance to mount. 13339 * @param {DOMElement} container DOM element to mount into. 13340 * @param {boolean} shouldReuseMarkup If true, do not insert markup 13341 */ 13342function batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) { 13343 var transaction = ReactUpdates.ReactReconcileTransaction.getPooled( 13344 /* useCreateElement */ 13345 !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement); 13346 transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context); 13347 ReactUpdates.ReactReconcileTransaction.release(transaction); 13348} 13349 13350/** 13351 * Unmounts a component and removes it from the DOM. 13352 * 13353 * @param {ReactComponent} instance React component instance. 13354 * @param {DOMElement} container DOM element to unmount from. 13355 * @final 13356 * @internal 13357 * @see {ReactMount.unmountComponentAtNode} 13358 */ 13359function unmountComponentFromNode(instance, container, safely) { 13360 if (process.env.NODE_ENV !== 'production') { 13361 ReactInstrumentation.debugTool.onBeginFlush(); 13362 } 13363 ReactReconciler.unmountComponent(instance, safely); 13364 if (process.env.NODE_ENV !== 'production') { 13365 ReactInstrumentation.debugTool.onEndFlush(); 13366 } 13367 13368 if (container.nodeType === DOC_NODE_TYPE) { 13369 container = container.documentElement; 13370 } 13371 13372 // http://jsperf.com/emptying-a-node 13373 while (container.lastChild) { 13374 container.removeChild(container.lastChild); 13375 } 13376} 13377 13378/** 13379 * True if the supplied DOM node has a direct React-rendered child that is 13380 * not a React root element. Useful for warning in `render`, 13381 * `unmountComponentAtNode`, etc. 13382 * 13383 * @param {?DOMElement} node The candidate DOM node. 13384 * @return {boolean} True if the DOM element contains a direct child that was 13385 * rendered by React but is not a root element. 13386 * @internal 13387 */ 13388function hasNonRootReactChild(container) { 13389 var rootEl = getReactRootElementInContainer(container); 13390 if (rootEl) { 13391 var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl); 13392 return !!(inst && inst._hostParent); 13393 } 13394} 13395 13396/** 13397 * True if the supplied DOM node is a React DOM element and 13398 * it has been rendered by another copy of React. 13399 * 13400 * @param {?DOMElement} node The candidate DOM node. 13401 * @return {boolean} True if the DOM has been rendered by another copy of React 13402 * @internal 13403 */ 13404function nodeIsRenderedByOtherInstance(container) { 13405 var rootEl = getReactRootElementInContainer(container); 13406 return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl)); 13407} 13408 13409/** 13410 * True if the supplied DOM node is a valid node element. 13411 * 13412 * @param {?DOMElement} node The candidate DOM node. 13413 * @return {boolean} True if the DOM is a valid DOM node. 13414 * @internal 13415 */ 13416function isValidContainer(node) { 13417 return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)); 13418} 13419 13420/** 13421 * True if the supplied DOM node is a valid React node element. 13422 * 13423 * @param {?DOMElement} node The candidate DOM node. 13424 * @return {boolean} True if the DOM is a valid React DOM node. 13425 * @internal 13426 */ 13427function isReactNode(node) { 13428 return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME)); 13429} 13430 13431function getHostRootInstanceInContainer(container) { 13432 var rootEl = getReactRootElementInContainer(container); 13433 var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl); 13434 return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null; 13435} 13436 13437function getTopLevelWrapperInContainer(container) { 13438 var root = getHostRootInstanceInContainer(container); 13439 return root ? root._hostContainerInfo._topLevelWrapper : null; 13440} 13441 13442/** 13443 * Temporary (?) hack so that we can store all top-level pending updates on 13444 * composites instead of having to worry about different types of components 13445 * here. 13446 */ 13447var topLevelRootCounter = 1; 13448var TopLevelWrapper = function () { 13449 this.rootID = topLevelRootCounter++; 13450}; 13451TopLevelWrapper.prototype.isReactComponent = {}; 13452if (process.env.NODE_ENV !== 'production') { 13453 TopLevelWrapper.displayName = 'TopLevelWrapper'; 13454} 13455TopLevelWrapper.prototype.render = function () { 13456 return this.props.child; 13457}; 13458TopLevelWrapper.isReactTopLevelWrapper = true; 13459 13460/** 13461 * Mounting is the process of initializing a React component by creating its 13462 * representative DOM elements and inserting them into a supplied `container`. 13463 * Any prior content inside `container` is destroyed in the process. 13464 * 13465 * ReactMount.render( 13466 * component, 13467 * document.getElementById('container') 13468 * ); 13469 * 13470 * <div id="container"> <-- Supplied `container`. 13471 * <div data-reactid=".3"> <-- Rendered reactRoot of React 13472 * // ... component.
13473 * </div> 13474 * </div> 13475 * 13476 * Inside of `container`, the first element rendered is the "reactRoot". 13477 */ 13478var ReactMount = { 13479 TopLevelWrapper: TopLevelWrapper, 13480 13481 /** 13482 * Used by devtools. The keys are not important. 13483 */ 13484 _instancesByReactRootID: instancesByReactRootID, 13485 13486 /** 13487 * This is a hook provided to support rendering React components while 13488 * ensuring that the apparent scroll position of its `container` does not 13489 * change. 13490 * 13491 * @param {DOMElement} container The `container` being rendered into. 13492 * @param {function} renderCallback This must be called once to do the render. 13493 */ 13494 scrollMonitor: function (container, renderCallback) { 13495 renderCallback(); 13496 }, 13497 13498 /** 13499 * Take a component that's already mounted into the DOM and replace its props 13500 * @param {ReactComponent} prevComponent component instance already in the DOM 13501 * @param {ReactElement} nextElement component instance to render 13502 * @param {DOMElement} container container to render into 13503 * @param {?function} callback function triggered on completion 13504 */ 13505 _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) { 13506 ReactMount.scrollMonitor(container, function () { 13507 ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext); 13508 if (callback) { 13509 ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback); 13510 } 13511 }); 13512 13513 return prevComponent; 13514 }, 13515 13516 /** 13517 * Render a new component into the DOM. Hooked by hooks! 13518 * 13519 * @param {ReactElement} nextElement element to render 13520 * @param {DOMElement} container container to render into 13521 * @param {boolean} shouldReuseMarkup if we should skip the markup insertion 13522 * @return {ReactComponent} nextComponent 13523 */ 13524 _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) { 13525 // Various parts of our code (such as ReactCompositeComponent's 13526 // _renderValidatedComponent) assume that calls to render aren't nested; 13527 // verify that that's the case. 13528 process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; 13529 13530 !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0; 13531 13532 ReactBrowserEventEmitter.ensureScrollValueMonitoring(); 13533 var componentInstance = instantiateReactComponent(nextElement, false); 13534 13535 // The initial render is synchronous but any updates that happen during 13536 // rendering, in componentWillMount or componentDidMount, will be batched 13537 // according to the current batching strategy. 13538 13539 ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context); 13540 13541 var wrapperID = componentInstance._instance.rootID; 13542 instancesByReactRootID[wrapperID] = componentInstance; 13543 13544 return componentInstance; 13545 }, 13546 13547 /** 13548 * Renders a React component into the DOM in the supplied `container`. 13549 * 13550 * If the React component was previously rendered into `container`, this will 13551 * perform an update on it and only mutate the DOM as necessary to reflect the 13552 * latest React component. 13553 * 13554 * @param {ReactComponent} parentComponent The conceptual parent of this render tree. 13555 * @param {ReactElement} nextElement Component element to render. 13556 * @param {DOMElement} container DOM element to render into. 13557 * @param {?function} callback function triggered on completion 13558 * @return {ReactComponent} Component instance rendered in `container`. 13559 */ 13560 renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { 13561 !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0; 13562 return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback); 13563 }, 13564 13565 _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { 13566 ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render'); 13567 !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or <div />." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element 13568 nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or <div />." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0; 13569 13570 process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0; 13571 13572 var nextWrappedElement = React.createElement(TopLevelWrapper, { 13573 child: nextElement 13574 }); 13575 13576 var nextContext; 13577 if (parentComponent) { 13578 var parentInst = ReactInstanceMap.get(parentComponent); 13579 nextContext = parentInst._processChildContext(parentInst._context); 13580 } else { 13581 nextContext = emptyObject; 13582 } 13583 13584 var prevComponent = getTopLevelWrapperInContainer(container); 13585 13586 if (prevComponent) { 13587 var prevWrappedElement = prevComponent._currentElement; 13588 var prevElement = prevWrappedElement.props.child; 13589 if (shouldUpdateReactComponent(prevElement, nextElement)) { 13590 var publicInst = prevComponent._renderedComponent.getPublicInstance(); 13591 var updatedCallback = callback && function () { 13592 callback.call(publicInst); 13593 }; 13594 ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback); 13595 return publicInst; 13596 } else { 13597 ReactMount.unmountComponentAtNode(container); 13598 } 13599 } 13600 13601 var reactRootElement = getReactRootElementInContainer(container); 13602 var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement); 13603 var containerHasNonRootReactChild = hasNonRootReactChild(container); 13604 13605 if (process.env.NODE_ENV !== 'production') { 13606 process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0; 13607 13608 if (!containerHasReactMarkup || reactRootElement.nextSibling) { 13609 var rootElementSibling = reactRootElement; 13610 while (rootElementSibling) { 13611 if (internalGetID(rootElementSibling)) { 13612 process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0; 13613 break; 13614 } 13615 rootElementSibling = rootElementSibling.nextSibling; 13616 } 13617 } 13618 } 13619 13620 var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild; 13621 var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance(); 13622 if (callback) { 13623 callback.call(component); 13624 } 13625 return component; 13626 }, 13627 13628 /** 13629 * Renders a React component into the DOM in the supplied `container`. 13630 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render 13631 * 13632 * If the React component was previously rendered into `container`, this will 13633 * perform an update on it and only mutate the DOM as necessary to reflect the 13634 * latest React component. 13635 * 13636 * @param {ReactElement} nextElement Component element to render. 13637 * @param {DOMElement} container DOM element to render into. 13638 * @param {?function} callback function triggered on completion 13639 * @return {ReactComponent} Component instance rendered in `container`. 13640 */ 13641 render: function (nextElement, container, callback) { 13642 return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback); 13643 }, 13644 13645 /** 13646 * Unmounts and destroys the React component rendered in the `container`. 13647 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode 13648 * 13649 * @param {DOMElement} container DOM element containing a React component. 13650 * @return {boolean} True if a component was found in and unmounted from 13651 * `container` 13652 */ 13653 unmountComponentAtNode: function (container) { 13654 // Various parts of our code (such as ReactCompositeComponent's 13655 // _renderValidatedComponent) assume that calls to render aren't nested; 13656 // verify that that's the case. (Strictly speaking, unmounting won't
13656cause a 13657 // render but we still don't expect to be in a render call here.) 13658 process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; 13659 13660 !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0; 13661 13662 if (process.env.NODE_ENV !== 'production') { 13663 process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by another copy of React.') : void 0; 13664 } 13665 13666 var prevComponent = getTopLevelWrapperInContainer(container); 13667 if (!prevComponent) { 13668 // Check if the node being unmounted was rendered by React, but isn't a 13669 // root node. 13670 var containerHasNonRootReactChild = hasNonRootReactChild(container); 13671 13672 // Check if the container itself is a React root node. 13673 var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME); 13674 13675 if (process.env.NODE_ENV !== 'production') { 13676 process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0; 13677 } 13678 13679 return false; 13680 } 13681 delete instancesByReactRootID[prevComponent._instance.rootID]; 13682 ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false); 13683 return true; 13684 }, 13685 13686 _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) { 13687 !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0; 13688 13689 if (shouldReuseMarkup) { 13690 var rootElement = getReactRootElementInContainer(container); 13691 if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) { 13692 ReactDOMComponentTree.precacheNode(instance, rootElement); 13693 return; 13694 } else { 13695 var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); 13696 rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); 13697 13698 var rootMarkup = rootElement.outerHTML; 13699 rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum); 13700 13701 var normalizedMarkup = markup; 13702 if (process.env.NODE_ENV !== 'production') { 13703 // because rootMarkup is retrieved from the DOM, various normalizations 13704 // will have occurred which will not be present in `markup`. Here, 13705 // insert markup into a <div> or <iframe> depending on the container 13706 // type to perform the same normalizations before comparing. 13707 var normalizer; 13708 if (container.nodeType === ELEMENT_NODE_TYPE) { 13709 normalizer = document.createElement('div'); 13710 normalizer.innerHTML = markup; 13711 normalizedMarkup = normalizer.innerHTML; 13712 } else { 13713 normalizer = document.createElement('iframe'); 13714 document.body.appendChild(normalizer); 13715 normalizer.contentDocument.write(markup); 13716 normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML; 13717 document.body.removeChild(normalizer); 13718 } 13719 } 13720 13721 var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup); 13722 var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20); 13723 13724 !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\'re trying to render a component to the document using server rendering but the checksum was invali
13724d. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s', difference) : _prodInvariant('42', difference) : void 0; 13725 13726 if (process.env.NODE_ENV !== 'production') { 13727 process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : void 0; 13728 } 13729 } 13730 } 13731 13732 !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\'re trying to render a component to the document but you didn\'t use server rendering. We can\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0; 13733 13734 if (transaction.useCreateElement) { 13735 while (container.lastChild) { 13736 container.removeChild(container.lastChild); 13737 } 13738 DOMLazyTree.insertTreeBefore(container, markup, null); 13739 } else { 13740 setInnerHTML(container, markup); 13741 ReactDOMComponentTree.precacheNode(instance, container.firstChild); 13742 } 13743 13744 if (process.env.NODE_ENV !== 'production') { 13745 var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild); 13746 if (hostNode._debugID !== 0) { 13747 ReactInstrumentation.debugTool.onHostOperation({ 13748 instanceID: hostNode._debugID, 13749 type: 'mount', 13750 payload: markup.toString() 13751 }); 13752 } 13753 } 13754 } 13755}; 13756 13757module.exports = ReactMount; 13758/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 13759 13760/***/ }), 13761/* 219 */ 13762/***/ (function(module, exports, __webpack_require__) { 13763 13764"use strict"; 13765/** 13766 * Copyright (c) 2013-present, Facebook, Inc. 13767 * 13768 * This source code is licensed under the MIT license found in the 13769 * LICENSE file in the root directory of this source tree. 13770 * 13771 */ 13772 13773 13774 13775var ReactNodeTypes = __webpack_require__(211); 13776 13777function getHostComponentFromComposite(inst) { 13778 var type; 13779 13780 while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) { 13781 inst = inst._renderedComponent; 13782 } 13783 13784 if (type === ReactNodeTypes.HOST) { 13785 return inst._renderedComponent; 13786 } else if (type === ReactNodeTypes.EMPTY) { 13787 return null; 13788 } 13789} 13790 13791module.exports = getHostComponentFromComposite; 13792 13793/***/ }), 13794/* 220 */ 13795/***/ (function(module, exports, __webpack_require__) { 13796 13797var buildSearchMethod = __webpack_require__(221); 13798var deprecate = __webpack_require__(154); 13799var deprecatedMessage = __webpack_require__(155); 13800 13801module.exports = IndexCore; 13802 13803/* 13804* Index class constructor. 13805* You should not use this method directly but use initIndex() function 13806*/ 13807function IndexCore(algoliasearch, indexName) { 13808 this.indexName = indexName; 13809 this.as = algoliasearch; 13810 this.typeAheadArgs = null; 13811 this.typeAheadValueOption = null; 13812 13813 // make sure every index instance has it's own cache 13814 this.cache = {}; 13815} 13816 13817/* 13818* Clear all queries in cache 13819*/ 13820IndexCore.prototype.clearCache = function() { 13821 this.cache = {}; 13822}; 13823 13824/* 13825* Search inside the index using XMLHttpRequest request (Using a POST query to 13826* minimize number of OPTIONS queries: Cross-Origin Resource Sharing). 13827* 13828* @param {string} [query] the full text query 13829* @param {object} [args] (optional) if set, contains an object with query parameters: 13830* - page: (integer) Pagination parameter used to select the page to retrieve. 13831* Page is zero-based and defaults to 0. Thus, 13832* to retrieve the 10th page you need to set page=9 13833* - hitsPerPage: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20. 13834* - attributesToRetrieve: a string that contains the list of object attributes 13835* you want to retrieve (let you minimize the answer size). 13836* Attributes are separated with a comma (for example "name,address"). 13837* You can also use an array (for example ["name","address"]). 13838* By default, all attributes are retrieved. You can also use '*' to retrieve all 13839* values when an attributesToRetrieve setting is specified for your index. 13840* - attributesToHighlight: a string that contains the list of attributes you 13841* want to highlight according to the query. 13842* Attributes are separated by a comma. You can also use an array (for example ["name","address"]). 13843* If an attribute has no match for the query, the raw value is returned. 13844* By default all indexed text attributes are highlighted. 13845* You can use `*` if you want to highlight all textual attributes. 13846* Numerical attributes are not highlighted. 13847* A matchLevel is returned for each highlighted attribute and can contain: 13848* - full: if all the query terms were found in the attribute, 13849* - partial: if only some of the query terms were found, 13850* - none: if none of the query terms were found. 13851* - attributesToSnippet: a string that contains the list of attributes to snippet alongside 13852* the number of words to return (syntax is `attributeName:nbWords`). 13853* Attributes are separated by a comma (Example: attributesToSnippet=name:10,content:10). 13854* You can also use an array (Example: attributesToSnippet: ['name:10','content:10']). 13855* By default no snippet is computed. 13856* - minWordSizefor1Typo: the minimum number of characters in a query word to accept one typo in this word. 13857* Defaults to 3. 13858* - minWordSizefor2Typos: the minimum number of characters in a query word 13859* to accept two typos in this word. Defaults to 7. 13860* - getRankingInfo: if set to 1, the result hits will contain ranking 13861* information in _rankingInfo attribute. 13862* - aroundLatLng: search for entries around a given 13863* latitude/longitude (specified as two floats separated by a comma). 13864* For example aroundLatLng=47.316669,5.016670). 13865* You can specify the maximum distance in meters with the aroundRadius parameter (in meters) 13866* and the precision for ranking with aroundPrecision
13867* (for example if you set aroundPrecision=100, two objects that are distant of 13868* less than 100m will be considered as identical for "geo" ranking parameter). 13869* At indexing, you should specify geoloc of an object with the _geoloc attribute 13870* (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}}) 13871* - insideBoundingBox: search entries inside a given area defined by the two extreme points 13872* of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng). 13873* For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201). 13874* At indexing, you should specify geoloc of an object with the _geoloc attribute 13875* (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}}) 13876* - numericFilters: a string that contains the list of numeric filters you want to 13877* apply separated by a comma. 13878* The syntax of one filter is `attributeName` followed by `operand` followed by `value`. 13879* Supported operands are `<`, `<=`, `=`, `>` and `>=`. 13880* You can have multiple conditions on one attribute like for example numericFilters=price>100,price<1000. 13881* You can also use an array (for example numericFilters: ["price>100","price<1000"]). 13882* - tagFilters: filter the query by a set of tags. You can AND tags by separating them by commas. 13883* To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3). 13884* You can also use an array, for example tagFilters: ["tag1",["tag2","tag3"]] 13885* means tag1 AND (tag2 OR tag3). 13886* At indexing, tags should be added in the _tags** attribute 13887* of objects (for example {"_tags":["tag1","tag2"]}). 13888* - facetFilters: filter the query by a list of facets. 13889* Facets are separated by commas and each facet is encoded as `attributeName:value`. 13890* For example: `facetFilters=category:Book,author:John%20Doe`. 13891* You can also use an array (for example `["category:Book","author:John%20Doe"]`). 13892* - facets: List of object attributes that you want to use for faceting. 13893* Comma separated list: `"category,author"` or array `['category','author']` 13894* Only attributes that have been added in **attributesForFaceting** index setting 13895* can be used in this parameter. 13896* You can also use `*` to perform faceting on all attributes specified in **attributesForFaceting**. 13897* - queryType: select how the query words are interpreted, it can be one of the following value: 13898* - prefixAll: all query words are interpreted as prefixes, 13899* - prefixLast: only the last word is interpreted as a prefix (default behavior), 13900* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. 13901* - optionalWords: a string that contains the list of words that should 13902* be considered as optional when found in the query. 13903* Comma separated and array are accepted. 13904* - distinct: If set to 1, enable the distinct feature (disabled by default) 13905* if the attributeForDistinct index setting is set. 13906* This feature is similar to the SQL "distinct" keyword: when enabled 13907* in a query with the distinct=1 parameter, 13908* all hits containing a duplicate value for the attributeForDistinct attribute are removed from results. 13909* For example, if the chosen attribute is show_name and several hits have 13910* the same value for show_name, then only the best 13911* one is kept and others are removed. 13912* - restrictSearchableAttributes: List of attributes you want to use for 13913* textual search (must be a subset of the attributesToIndex index setting) 13914* either comma separated or as an array 13915* @param {function} [callback] the result callback called with two arguments: 13916* error: null or Error('message'). If false, the content contains the error. 13917* content: the server answer that contains the list of results. 13918*/ 13919IndexCore.prototype.search = buildSearchMethod('query'); 13920 13921/* 13922* -- BETA -- 13923* Search a record similar to the query inside the index using XMLHttpRequest request (Using a POST query to 13924* minimize number of OPTIONS queries: Cross-Origin Resource Sharing). 13925* 13926* @param {string} [query] the similar query 13927* @param {object} [args] (optional) if set, contains an object with query parameters. 13928* All search parameters are supported (see search function), restrictSearchableAttributes and facetFilters 13929* are the two most useful to restrict the similar results and get more relevant content 13930*/ 13931IndexCore.prototype.similarSearch = buildSearchMethod('similarQuery'); 13932 13933/* 13934* Browse index content. The response content will have a `cursor` property that you can use 13935* to browse subsequent pages for this query. Use `index.browseFrom(cursor)` when you want. 13936* 13937* @param {string} query - The full text query 13938* @param {Object} [queryParameters] - Any search query parameter 13939* @param {Function} [callback] - The result callback called with two arguments 13940* error: null or Error('message') 13941* content: the server answer with the browse result 13942* @return {Promise|undefined} Returns a promise if no callback given 13943* @example 13944* index.browse('cool songs', { 13945* tagFilters: 'public,comments', 13946* hitsPerPage: 500 13947* }, callback); 13948* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation} 13949*/ 13950IndexCore.prototype.browse = function(query, queryParameters, callback) { 13951 var merge = __webpack_require__(222); 13952 13953 var indexObj = this; 13954 13955 var page; 13956 var hitsPerPage; 13957 13958 // we check variadic calls that are not the one defined 13959 // .browse()/.browse(fn) 13960 // => page = 0 13961 if (arguments.length === 0 || arguments.length === 1 && typeof arguments[0] === 'function') { 13962 page = 0; 13963 callback = arguments[0]; 13964 query = undefined; 13965 } else if (typeof arguments[0] === 'number') {
vendor: 7,170 bytes, lines 13966-14200
13966 // .browse(2)/.browse(2, 10)/.browse(2, fn)/.browse(2, 10, fn) 13967 page = arguments[0]; 13968 if (typeof arguments[1] === 'number') { 13969 hitsPerPage = arguments[1]; 13970 } else if (typeof arguments[1] === 'function') { 13971 callback = arguments[1]; 13972 hitsPerPage = undefined; 13973 } 13974 query = undefined; 13975 queryParameters = undefined; 13976 } else if (typeof arguments[0] === 'object') { 13977 // .browse(queryParameters)/.browse(queryParameters, cb) 13978 if (typeof arguments[1] === 'function') { 13979 callback = arguments[1]; 13980 } 13981 queryParameters = arguments[0]; 13982 query = undefined; 13983 } else if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') { 13984 // .browse(query, cb) 13985 callback = arguments[1]; 13986 queryParameters = undefined; 13987 } 13988 13989 // otherwise it's a .browse(query)/.browse(query, queryParameters)/.browse(query, queryParameters, cb) 13990 13991 // get search query parameters combining various possible calls 13992 // to .browse(); 13993 queryParameters = merge({}, queryParameters || {}, { 13994 page: page, 13995 hitsPerPage: hitsPerPage, 13996 query: query 13997 }); 13998 13999 var params = this.as._getSearchParams(queryParameters, ''); 14000 14001 return this.as._jsonRequest({ 14002 method: 'POST', 14003 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/browse', 14004 body: {params: params}, 14005 hostType: 'read', 14006 callback: callback 14007 }); 14008}; 14009 14010/* 14011* Continue browsing from a previous position (cursor), obtained via a call to `.browse()`. 14012* 14013* @param {string} query - The full text query 14014* @param {Object} [queryParameters] - Any search query parameter 14015* @param {Function} [callback] - The result callback called with two arguments 14016* error: null or Error('message') 14017* content: the server answer with the browse result 14018* @return {Promise|undefined} Returns a promise if no callback given 14019* @example 14020* index.browseFrom('14lkfsakl32', callback); 14021* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation} 14022*/ 14023IndexCore.prototype.browseFrom = function(cursor, callback) { 14024 return this.as._jsonRequest({ 14025 method: 'POST', 14026 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/browse', 14027 body: {cursor: cursor}, 14028 hostType: 'read', 14029 callback: callback 14030 }); 14031}; 14032 14033/* 14034* Search for facet values 14035* https://www.algolia.com/doc/rest-api/search#search-for-facet-values 14036* 14037* @param {string} params.facetName Facet name, name of the attribute to search for values in. 14038* Must be declared as a facet 14039* @param {string} params.facetQuery Query for the facet search 14040* @param {string} [params.*] Any search parameter of Algolia, 14041* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters 14042* Pagination is not supported. The page and hitsPerPage parameters will be ignored. 14043* @param callback (optional) 14044*/ 14045IndexCore.prototype.searchForFacetValues = function(params, callback) { 14046 var clone = __webpack_require__(48); 14047 var omit = __webpack_require__(223); 14048 var usage = 'Usage: index.searchForFacetValues({facetName, facetQuery, ...params}[, callback])'; 14049 14050 if (params.facetName === undefined || params.facetQuery === undefined) { 14051 throw new Error(usage); 14052 } 14053 14054 var facetName = params.facetName; 14055 var filteredParams = omit(clone(params), function(keyName) { 14056 return keyName === 'facetName'; 14057 }); 14058 var searchParameters = this.as._getSearchParams(filteredParams, ''); 14059 14060 return this.as._jsonRequest({ 14061 method: 'POST', 14062 url: '/1/indexes/' + 14063 encodeURIComponent(this.indexName) + '/facets/' + encodeURIComponent(facetName) + '/query', 14064 hostType: 'read', 14065 body: {params: searchParameters}, 14066 callback: callback 14067 }); 14068}; 14069 14070IndexCore.prototype.searchFacet = deprecate(function(params, callback) { 14071 return this.searchForFacetValues(params, callback); 14072}, deprecatedMessage( 14073 'index.searchFacet(params[, callback])', 14074 'index.searchForFacetValues(params[, callback])' 14075)); 14076 14077IndexCore.prototype._search = function(params, url, callback, additionalUA) { 14078 return this.as._jsonRequest({ 14079 cache: this.cache, 14080 method: 'POST', 14081 url: url || '/1/indexes/' + encodeURIComponent(this.indexName) + '/query', 14082 body: {params: params}, 14083 hostType: 'read', 14084 fallback: { 14085 method: 'GET', 14086 url: '/1/indexes/' + encodeURIComponent(this.indexName), 14087 body: {params: params} 14088 }, 14089 callback: callback, 14090 additionalUA: additionalUA 14091 }); 14092}; 14093 14094/* 14095* Get an object from this index 14096* 14097* @param objectID the unique identifier of the object to retrieve 14098* @param attrs (optional) if set, contains the array of attribute names to retrieve 14099* @param callback (optional) the result callback called with two arguments 14100* error: null or Error('message') 14101* content: the object to retrieve or the error message if a failure occured 14102*/ 14103IndexCore.prototype.getObject = function(objectID, attrs, callback) { 14104 var indexObj = this; 14105 14106 if (arguments.length === 1 || typeof attrs === 'function') { 14107 callback = attrs; 14108 attrs = undefined; 14109 } 14110 14111 var params = ''; 14112 if (attrs !== undefined) { 14113 params = '?attributes='; 14114 for (var i = 0; i < attrs.length; ++i) { 14115 if (i !== 0) { 14116 params += ','; 14117 } 14118 params += attrs[i]; 14119 } 14120 } 14121 14122 return this.as._jsonRequest({ 14123 method: 'GET', 14124 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID) + params, 14125 hostType: 'read', 14126 callback: callback 14127 }); 14128}; 14129 14130/* 14131* Get several objects from this index 14132* 14133* @param objectIDs the array of unique identifier of objects to retrieve 14134*/ 14135IndexCore.prototype.getObjects = function(objectIDs, attributesToRetrieve, callback) { 14136 var isArray = __webpack_require__(23); 14137 var map = __webpack_require__(72); 14138 14139 var usage = 'Usage: index.getObjects(arrayOfObjectIDs[, callback])'; 14140 14141 if (!isArray(objectIDs)) { 14142 throw new Error(usage); 14143 } 14144 14145 var indexObj = this; 14146 14147 if (arguments.length === 1 || typeof attributesToRetrieve === 'function') { 14148 callback = attributesToRetrieve; 14149 attributesToRetrieve = undefined; 14150 } 14151 14152 var body = { 14153 requests: map(objectIDs, function prepareRequest(objectID) { 14154 var request = { 14155 indexName: indexObj.indexName, 14156 objectID: objectID 14157 }; 14158 14159 if (attributesToRetrieve) { 14160 request.attributesToRetrieve = attributesToRetrieve.join(','); 14161 } 14162 14163 return request; 14164 }) 14165 }; 14166 14167 return this.as._jsonRequest({ 14168 method: 'POST', 14169 url: '/1/indexes/*/objects', 14170 hostType: 'read', 14171 body: body, 14172 callback: callback 14173 }); 14174}; 14175 14176IndexCore.prototype.as = null; 14177IndexCore.prototype.indexName = null; 14178IndexCore.prototype.typeAheadArgs = null; 14179IndexCore.prototype.typeAheadValueOption = null; 14180 14181 14182/***/ }), 14183/* 221 */ 14184/***/ (function(module, exports, __webpack_require__) { 14185 14186module.exports = buildSearchMethod; 14187 14188var errors = __webpack_require__(70); 14189 14190/** 14191 * Creates a search method to be used in clients 14192 * @param {string} queryParam the name of the attribute used for the query 14193 * @param {string} url the url 14194 * @return {function} the search method 14195 */ 14196function buildSearchMethod(queryParam, url) { 14197 /** 14198 * The search method. Prepares the data and send the query to Algolia. 14199 * @param {string} query the string used for query search 14200 * @param {object}
14200 args additional parameters to send with the search 14201 * @param {function} [callback] the callback to be called with the client gets the answer 14202 * @return {undefined|Promise} If the callback is not provided then this methods returns a Promise 14203 */ 14204 return function search(query, args, callback) { 14205 // warn V2 users on how to search 14206 if (typeof query === 'function' && typeof args === 'object' || 14207 typeof callback === 'object') { 14208 // .search(query, params, cb) 14209 // .search(cb, params) 14210 throw new errors.AlgoliaSearchError('index.search usage is index.search(query, params, cb)'); 14211 } 14212 14213 // Normalizing the function signature 14214 if (arguments.length === 0 || typeof query === 'function') { 14215 // Usage : .search(), .search(cb) 14216 callback = query; 14217 query = ''; 14218 } else if (arguments.length === 1 || typeof args === 'function') { 14219 // Usage : .search(query/args), .search(query, cb) 14220 callback = args; 14221 args = undefined; 14222 } 14223 // At this point we have 3 arguments with values 14224 14225 // Usage : .search(args) // careful: typeof null === 'object' 14226 if (typeof query === 'object' && query !== null) { 14227 args = query; 14228 query = undefined; 14229 } else if (query === undefined || query === null) { // .search(undefined/null) 14230 query = ''; 14231 } 14232 14233 var params = ''; 14234 14235 if (query !== undefined) { 14236 params += queryParam + '=' + encodeURIComponent(query); 14237 } 14238 14239 var additionalUA; 14240 if (args !== undefined) { 14241 if (args.additionalUA) { 14242 additionalUA = args.additionalUA; 14243 delete args.additionalUA; 14244 } 14245 // `_getSearchParams` will augment params, do not be fooled by the = versus += from previous if 14246 params = this.as._getSearchParams(args, params); 14247 } 14248 14249 14250 return this._search(params, url, callback, additionalUA); 14251 }; 14252} 14253 14254 14255/***/ }), 14256/* 222 */ 14257/***/ (function(module, exports, __webpack_require__) { 14258 14259var foreach = __webpack_require__(71); 14260 14261module.exports = function merge(destination/* , sources */) { 14262 var sources = Array.prototype.slice.call(arguments); 14263 14264 foreach(sources, function(source) { 14265 for (var keyName in source) { 14266 if (source.hasOwnProperty(keyName)) { 14267 if (typeof destination[keyName] === 'object' && typeof source[keyName] === 'object') { 14268 destination[keyName] = merge({}, destination[keyName], source[keyName]); 14269 } else if (source[keyName] !== undefined) { 14270 destination[keyName] = source[keyName]; 14271 } 14272 } 14273 } 14274 }); 14275 14276 return destination; 14277}; 14278 14279 14280/***/ }), 14281/* 223 */ 14282/***/ (function(module, exports, __webpack_require__) { 14283 14284module.exports = function omit(obj, test) { 14285 var keys = __webpack_require__(539); 14286 var foreach = __webpack_require__(71); 14287 14288 var filtered = {}; 14289 14290 foreach(keys(obj), function doFilter(keyName) { 14291 if (test(keyName) !== true) { 14292 filtered[keyName] = obj[keyName]; 14293 } 14294 }); 14295 14296 return filtered; 14297}; 14298 14299 14300/***/ }), 14301/* 224 */ 14302/***/ (function(module, exports) { 14303 14304// Parse cloud does not supports setTimeout 14305// We do not store a setTimeout reference in the client everytime 14306// We only fallback to a fake setTimeout when not available 14307// setTimeout cannot be override globally sadly 14308module.exports = function exitPromise(fn, _setTimeout) { 14309 _setTimeout(fn, 0); 14310}; 14311 14312 14313/***/ }), 14314/* 225 */ 14315/***/ (function(module, exports, __webpack_require__) { 14316 14317"use strict"; 14318 14319 14320Object.defineProperty(exports, "__esModule", { 14321 value: true 14322}); 14323var settings = drupalSettings.capcom_header.algolia_api_data; 14324var indexName = exports.indexName = settings.index_name; 14325var appId = exports.appId = settings.app_id; 14326var apiKey = exports.apiKey = settings.api_key; 14327var benchmarkIndexName = exports.benchmarkIndexName = getBenchmarkIndexName(drupalSettings); 14328 14329function getBenchmarkIndexName(drupalSettings) { 14330 var indexName = null; 14331 try { 14332 indexName = drupalSettings.capcom_benchmark.algolia_api_data.index_name; 14333 } catch (e) {} 14334 14335 return indexName; 14336} 14337 14338/***/ }), 14339/* 226 */ 14340/***/ (function(module, exports, __webpack_require__) { 14341 14342"use strict"; 14343 14344 14345Object.defineProperty(exports, "__esModule", { 14346 value: true 14347}); 14348var renderAlgoliaHightligthed = exports.renderAlgoliaHightligthed = function renderAlgoliaHightligthed(item, key) { 14349 return { 14350 __html: item._highlightResult[key].value 14351 }; 14352}; 14353 14354/***/ }), 14355/* 227 */ 14356/***/ (function(module, exports, __webpack_require__) { 14357 14358"use strict"; 14359 14360 14361__webpack_require__(228); 14362 14363__webpack_require__(229); 14364 14365__webpack_require__(230); 14366 14367__webpack_require__(233); 14368 14369__webpack_require__(432); 14370 14371var _react = __webpack_require__(32); 14372 14373var _react2 = _interopRequireDefault(_react); 14374 14375var _reactDom = __webpack_require__(448); 14376 14377var _reactDom2 = _interopRequireDefault(_reactDom); 14378 14379var _SubHeader = __webpack_require__(534); 14380 14381var _SubHeader2 = _interopRequireDefault(_SubHeader); 14382 14383var _BenchmarkSearchPage = __webpack_require__(557); 14384 14385var _BenchmarkSearchPage2 = _interopRequireDefault(_BenchmarkSearchPage); 14386 14387var _Attendee = __webpack_require__(565); 14388 14389var _Attendee2 = _interopRequireDefault(_Attendee); 14390 14391function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14392 14393var menuItems = document.querySelectorAll('[data-header-role=menu-item]'); 14394var searchInput = document.querySelector('[data-header-role=search-input]'); 14395var subHeaderWrapper = document.querySelector('[data-header-role=sub-header-wrapper]'); 14396var subHeaderItems = document.querySelectorAll('[data-header-role=sub-header-item]'); 14397var subHeaderClose = document.querySelector('[data-header-role=sub-header-close]'); 14398var blurContainer = document.querySelector('[data-header-role=blur-container]'); 14399var mobileNavButton = document.querySelector('[data-mobile-nav-role=button]'); 14400var mobileNavWrapper = document.querySelector('[data-mobile-nav-role=wrapper]'); 14401var body = document.querySelector('body'); 14402var benchmarkSearch = document.querySelector('[data-role=benchmark-search]'); 14403var attendee = document.querySelector('[data-role=attendee]'); 14404
14405menuItems.forEach(function (element) { 14406 element.addEventListener('click', function (e) { 14407 e.preventDefault(); 14408 var self = element; 14409 var event = new CustomEvent('CapComMenuItemClick', { 14410 'detail': { 14411 itemId: self.dataset.headerItemId 14412 } 14413 }); 14414 subHeaderWrapper.dispatchEvent(event); 14415 }); 14416}); 14417 14418mobileNavButton.addEventListener('click', function (e) { 14419 var eventName = 'CapComMobileNavOpen'; 14420 if (mobileNavButton.classList.contains('is-open')) { 14421 eventName = 'CapComMobileNavClose'; 14422 } 14423 var event = new CustomEvent(eventName); 14424 document.dispatchEvent(event); 14425}); 14426 14427['keyup', 'change', 'search'].forEach(function (eventName) { 14428 searchInput.addEventListener(eventName, function (e) { 14429 e.preventDefault(); 14430 var event = new CustomEvent('CapComSearch', { 14431 'detail': { 14432 search: searchInput.value 14433 } 14434 }); 14435 subHeaderWrapper.dispatchEvent(event); 14436 }); 14437}); 14438 14439document.addEventListener('CapComMenuOpen', function (e) { 14440 subHeaderWrapper.classList.add('is-visible'); 14441 body.classList.remove('has-nav-opened'); 14442 mobileNavWrapper.classList.add('is-SubNav-open'); 14443 blurContainer.classList.add('has-modal-opened'); 14444 window.setTimeout(function () { 14445 var element = document.querySelector('[data-header-role=blur-container].has-modal-opened'); 14446 if (element) { 14447 element.classList.add('is-blurred'); 14448 } 14449 }, 500); 14450}); 14451 14452document.addEventListener('CapComMenuClose', function (e) { 14453 subHeaderWrapper.classList.remove('is-visible'); 14454 blurContainer.classList.remove('is-blurred'); 14455 blurContainer.classList.remove('has-modal-opened'); 14456 body.classList.remove('has-nav-opened'); 14457 mobileNavWrapper.classList.remove('is-SubNav-open'); 14458}); 14459 14460document.addEventListener('CapComMobileNavOpen', function (e) { 14461 mobileNavButton.classList.add('is-open'); 14462 mobileNavButton.classList.remove('is-closed'); 14463 body.classList.add('has-nav-opened'); 14464}); 14465 14466document.addEventListener('CapComMobileNavClose', function (e) { 14467 mobileNavButton.classList.add('is-closed'); 14468 mobileNavButton.classList.remove('is-open'); 14469 body.classList.remove('has-nav-opened'); 14470}); 14471 14472_reactDom2.default.render(_react2.default.createElement(_SubHeader2.default, { initialChildren: subHeaderItems, close: subHeaderClose }), subHeaderWrapper); 14473if (benchmarkSearch) { 14474 _reactDom2.default.render(_react2.default.createElement(_BenchmarkSearchPage2.default, null), document.querySelector('[data-role=benchmark-search]')); 14475} 14476if (attendee) { 14477 _reactDom2.default.render(_react2.default.createElement(_Attendee2.default, { eventParam: attendee.getAttribute('data-event-code') ? attendee.getAttribute('data-event-code') : attendee.getAttribute('data-event-id') }), attendee); 14478} 14479 14480/***/ }), 14481/* 228 */ 14482/***/ (function(module, exports, __webpack_require__) { 14483 14484__webpack_require__(105); 14485__webpack_require__(107); 14486__webpack_require__(114); 14487__webpack_require__(116); 14488module.exports = __webpack_require__(18).Map; 14489 14490 14491/***/ }), 14492/* 229 */ 14493/***/ (function(module, exports, __webpack_require__) { 14494 14495__webpack_require__(105); 14496__webpack_require__(107); 14497__webpack_require__(114); 14498__webpack_require__(121); 14499module.exports = __webpack_require__(18).Set; 14500 14501 14502/***/ }), 14503/* 230 */ 14504/***/ (function(module, exports, __webpack_require__) { 14505 14506__webpack_require__(231).polyfill() 14507 14508 14509/***/ }), 14510/* 231 */ 14511/***/ (function(module, exports, __webpack_require__) { 14512 14513/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(232) 14514 , root = typeof window === 'undefined' ? global : window 14515 , vendors = ['moz', 'webkit'] 14516 , suffix = 'AnimationFrame' 14517 , raf = root['request' + suffix] 14518 , caf = root['cancel' + suffix] || root['cancelRequest' + suffix] 14519 14520for(var i = 0; !raf && i < vendors.length; i++) { 14521 raf = root[vendors[i] + 'Request' + suffix] 14522 caf = root[vendors[i] + 'Cancel' + suffix] 14523 || root[vendors[i] + 'CancelRequest' + suffix] 14524} 14525 14526// Some versions of FF have rAF but not cAF 14527if(!raf || !caf) { 14528 var last = 0 14529 , id = 0 14530 , queue = [] 14531 , frameDuration = 1000 / 60 14532 14533 raf = function(callback) { 14534 if(queue.length === 0) { 14535 var _now = now() 14536 , next = Math.max(0, frameDuration - (_now - last)) 14537 last = next + _now 14538 setTimeout(function() { 14539 var cp = queue.slice(0) 14540 // Clear queue here to prevent 14541 // callbacks from appending listeners 14542 // to the current frame's queue 14543 queue.length = 0 14544 for(var i = 0; i < cp.length; i++) { 14545 if(!cp[i].cancelled) { 14546 try{ 14547 cp[i].callback(last) 14548 } catch(e) { 14549 setTimeout(function() { throw e }, 0) 14550 } 14551 } 14552 } 14553 }, Math.round(next)) 14554 } 14555 queue.push({ 14556 handle: ++id, 14557 callback: callback, 14558 cancelled: false 14559 }) 14560 return id 14561 } 14562 14563 caf = function(handle) { 14564 for(var i = 0; i < queue.length; i++) { 14565 if(queue[i].handle === handle) { 14566 queue[i].cancelled = true 14567 } 14568 } 14569 } 14570} 14571 14572module.exports = function(fn) { 14573 // Wrap in a new function to prevent 14574 // `cancel` potentially being assigned 14575 // to the native rAF function 14576 return raf.call(root, fn) 14577} 14578module.exports.cancel = function() { 14579 caf.apply(root, arguments) 14580} 14581module.exports.polyfill = function(object) { 14582 if (!object) { 14583 object = root; 14584 } 14585 object.requestAnimationFrame = raf 14586 object.cancelAnimationFrame = caf 14587} 14588 14589/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64))) 14590 14591/***/ }), 14592/* 232 */ 14593/***/ (function(module, exports, __webpack_require__) { 14594 14595/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2 14596(function() { 14597 var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; 14598 14599 if ((typeof performance !== "undefined" && performance !== null) && performance.now) { 14600 module.exports = function() { 14601 return performance.now(); 14602 }; 14603 } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { 14604 module.exports = function() { 14605 return (getNanoSeconds() - nodeLoadTime) / 1e6; 14606 }; 14607 hrtime = process.hrtime; 14608 getNanoSeconds = function() { 14609 var hr; 14610 hr = hrtime(); 14611 return hr[0] * 1e9 + hr[1]; 14612 }; 14613 moduleLoadTime = getNanoSeconds(); 14614 upTime = process.uptime() * 1e9; 14615 nodeLoadTime = moduleLoadTime - upTime; 14616 } else if (Date.now) { 14617 module.exports = function() { 14618 return Date.now() - loadTime; 14619 }; 14620 loadTime = Date.now(); 14621 } else { 14622 module.exports = function() { 14623 return new Date().getTime() - loadTime; 14624 }; 14625 loadTime = new Date().getTime(); 14626 } 14627 14628}).call(this); 14629 14630 14631/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 14632 14633/***/ }), 14634/* 233 */ 14635/***/ (function(module, exports, __webpack_require__) { 14636 14637"use strict"; 14638/* WEBPACK VAR INJECTION */(function(global) { 14639 14640__webpack_require__(234); 14641 14642__webpack_require__(428); 14643 14644__webpack_require__(429); 14645 14646if (global._babelPolyfill) { 14647 throw new Error("only one instance of babel-polyfill is allowed"); 14648} 14649global._babelPolyfill = true; 14650 14651var DEFINE_PROPERTY = "defineProperty"; 14652function define(O, key, value) { 14653 O[key] || Object[DEFINE_PROPERTY](O, key, { 14654 writable: true, 14655 configurable: true, 14656 value: value 14657 }); 14658} 14659 14660define(String.prototype, "padLeft", "".padStart); 14661define(String.prototype, "padRight", "".padEnd); 14662 14663"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { 14664 [][key] && define(Array, key, Function.call.bind([][key])); 14665}); 14666/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64))) 14667 14668/***/ }), 14669/* 234 */ 14670/***/ (function(module, exports, __webpack_require__) { 14671 14672__webpack_require__(235); 14673__webpack_require__(237); 14674__webpack_require__(238); 14675__webpack_require__(239); 14676__webpack_require__(240); 14677__webpack_require__(241); 14678__webpack_require__(242); 14679__webpack_require__(243); 14680__webpack_require__(244); 14681__webpack_require__(245); 14682__webpack_require__(246); 14683__webpack_require__(247); 14684__webpack_require__(248); 14685__webpack_require__(249); 14686__webpack_require__(250); 14687__webpack_require__(251); 14688__webpack_require__(253); 14689__webpack_require__(105); 14690__webpack_require__(254); 14691__webpack_require__(255); 14692__webpack_require__(256); 14693__webpack_require__(257); 14694__webpack_require__(258); 14695__webpack_require__(259); 14696__webpack_require__(260); 14697__webpack_require__(261); 14698__webpack_require__(262); 14699__webpack_require__(263); 14700__webpack_require__(264); 14701__webpack_require__(265); 14702__webpack_require__(266); 14703__webpack_require__(267); 14704__webpack_require__(268); 14705__webpack_require__(269); 14706__webpack_require__(270); 14707__webpack_require__(271); 14708__webpack_require__(272); 14709__webpack_require__(273); 14710__webpack_require__(274); 14711__webpack_require__(275); 14712__webpack_require__(276); 14713__webpack_require__(277); 14714__webpack_require__(278); 14715__webpack_require__(279); 14716__webpack_require__(280); 14717__webpack_require__(281); 14718__webpack_require__(282); 14719__webpack_require__(283); 14720__webpack_require__(284); 14721__webpack_require__(285); 14722__webpack_require__(286); 14723__webpack_require__(287); 14724__webpack_require__(288); 14725__webpack_require__(289);
14726__webpack_require__(290); 14727__webpack_require__(107); 14728__webpack_require__(291); 14729__webpack_require__(292); 14730__webpack_require__(293); 14731__webpack_require__(294); 14732__webpack_require__(295); 14733__webpack_require__(296); 14734__webpack_require__(297); 14735__webpack_require__(298); 14736__webpack_require__(299); 14737__webpack_require__(300); 14738__webpack_require__(301); 14739__webpack_require__(302); 14740__webpack_require__(303); 14741__webpack_require__(304); 14742__webpack_require__(305); 14743__webpack_require__(306); 14744__webpack_require__(307); 14745__webpack_require__(308); 14746__webpack_require__(309); 14747__webpack_require__(310); 14748__webpack_require__(311); 14749__webpack_require__(313); 14750__webpack_require__(314); 14751__webpack_require__(316); 14752__webpack_require__(317); 14753__webpack_require__(318); 14754__webpack_require__(319); 14755__webpack_require__(320); 14756__webpack_require__(321); 14757__webpack_require__(322); 14758__webpack_require__(324); 14759__webpack_require__(325); 14760__webpack_require__(326); 14761__webpack_require__(327); 14762__webpack_require__(328); 14763__webpack_require__(329); 14764__webpack_require__(330); 14765__webpack_require__(331); 14766__webpack_require__(332); 14767__webpack_require__(333); 14768__webpack_require__(334); 14769__webpack_require__(335); 14770__webpack_require__(336); 14771__webpack_require__(115); 14772__webpack_require__(337); 14773__webpack_require__(338); 14774__webpack_require__(175); 14775__webpack_require__(339); 14776__webpack_require__(340); 14777__webpack_require__(341); 14778__webpack_require__(342); 14779__webpack_require__(343); 14780__webpack_require__(116); 14781__webpack_require__(121); 14782__webpack_require__(178); 14783__webpack_require__(344); 14784__webpack_require__(345); 14785__webpack_require__(346); 14786__webpack_require__(347); 14787__webpack_require__(348); 14788__webpack_require__(349); 14789__webpack_require__(350); 14790__webpack_require__(351); 14791__webpack_require__(352); 14792__webpack_require__(353); 14793__webpack_require__(354); 14794__webpack_require__(355); 14795__webpack_require__(356); 14796__webpack_require__(357); 14797__webpack_require__(358); 14798__webpack_require__(359); 14799__webpack_require__(360); 14800__webpack_require__(361); 14801__webpack_require__(362); 14802__webpack_require__(363); 14803__webpack_require__(364); 14804__webpack_require__(365); 14805__webpack_require__(366); 14806__webpack_require__(367); 14807__webpack_require__(368); 14808__webpack_require__(369); 14809__webpack_require__(370); 14810__webpack_require__(371); 14811__webpack_require__(372); 14812__webpack_require__(373); 14813__webpack_require__(374); 14814__webpack_require__(375); 14815__webpack_require__(376); 14816__webpack_require__(377); 14817__webpack_require__(378); 14818__webpack_require__(379); 14819__webpack_require__(380); 14820__webpack_require__(381); 14821__webpack_require__(382); 14822__webpack_require__(383); 14823__webpack_require__(384); 14824__webpack_require__(385); 14825__webpack_require__(386); 14826__webpack_require__(387); 14827__webpack_require__(388); 14828__webpack_require__(389); 14829__webpack_require__(390); 14830__webpack_require__(391); 14831__webpack_require__(392); 14832__webpack_require__(393); 14833__webpack_require__(394); 14834__webpack_require__(395); 14835__webpack_require__(396); 14836__webpack_require__(397); 14837__webpack_require__(398); 14838__webpack_require__(399); 14839__webpack_require__(400); 14840__webpack_require__(401); 14841__webpack_require__(402); 14842__webpack_require__(403); 14843__webpack_require__(404); 14844__webpack_require__(405); 14845__webpack_require__(406); 14846__webpack_require__(407); 14847__webpack_require__(408); 14848__webpack_require__(409); 14849__webpack_require__(410); 14850__webpack_require__(411); 14851__webpack_require__(412); 14852__webpack_require__(413); 14853__webpack_require__(414); 14854__webpack_require__(415); 14855__webpack_require__(416); 14856__webpack_require__(417); 14857__webpack_require__(418); 14858__webpack_require__(419); 14859__webpack_require__(420); 14860__webpack_require__(421); 14861__webpack_require__(422); 14862__webpack_require__(423); 14863__webpack_require__(424); 14864__webpack_require__(425); 14865__webpack_require__(426); 14866__webpack_require__(427); 14867__webpack_require__(114); 14868module.exports = __webpack_require__(18); 14869 14870 14871/***/ }), 14872/* 235 */ 14873/***/ (function(module, exports, __webpack_require__) { 14874 14875"use strict"; 14876 14877// ECMAScript 6 symbols shim 14878var global = __webpack_require__(5); 14879var has = __webpack_require__(24); 14880var DESCRIPTORS = __webpack_require__(12); 14881var $export = __webpack_require__(0); 14882var redefine = __webpack_require__(19); 14883var META = __webpack_require__(46).KEY; 14884var $fails = __webpack_require__(6); 14885var shared = __webpack_require__(82); 14886var setToStringTag = __webpack_require__(62); 14887var uid = __webpack_require__(49); 14888var wks = __webpack_require__(9); 14889var wksExt = __webpack_require__(162); 14890var wksDefine = __webpack_require__(122); 14891var enumKeys = __webpack_require__(236); 14892var isArray = __webpack_require__(87); 14893var anObject = __webpack_require__(4); 14894var isObject = __webpack_require__(7); 14895var toIObject = __webpack_require__(25); 14896var toPrimitive = __webpack_require__(33); 14897var createDesc = __webpack_require__(50); 14898var _create = __webpack_require__(51); 14899var gOPNExt = __webpack_require__(163); 14900var $GOPD = __webpack_require__(27); 14901var $DP = __webpack_require__(11); 14902var $keys = __webpack_require__(52); 14903var gOPD = $GOPD.f; 14904var dP = $DP.f; 14905var gOPN = gOPNExt.f; 14906var $Symbol = global.Symbol; 14907var $JSON = global.JSON; 14908var _stringify = $JSON && $JSON.stringify; 14909var PROTOTYPE = 'prototype'; 14910var HIDDEN = wks('_hidden'); 14911var TO_PRIMITIVE = wks('toPrimitive'); 14912var isEnum = {}.propertyIsEnumerable; 14913var SymbolRegistry = shared('symbol-registry'); 14914var AllSymbols = shared('symbols');
vendor: 8,622 bytes, lines 14915-15154
14915var OPSymbols = shared('op-symbols'); 14916var ObjectProto = Object[PROTOTYPE]; 14917var USE_NATIVE = typeof $Symbol == 'function'; 14918var QObject = global.QObject; 14919// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 14920var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 14921 14922// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 14923var setSymbolDesc = DESCRIPTORS && $fails(function () { 14924 return _create(dP({}, 'a', { 14925 get: function () { return dP(this, 'a', { value: 7 }).a; } 14926 })).a != 7; 14927}) ? function (it, key, D) { 14928 var protoDesc = gOPD(ObjectProto, key); 14929 if (protoDesc) delete ObjectProto[key]; 14930 dP(it, key, D); 14931 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 14932} : dP; 14933 14934var wrap = function (tag) { 14935 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 14936 sym._k = tag; 14937 return sym; 14938}; 14939 14940var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { 14941 return typeof it == 'symbol'; 14942} : function (it) { 14943 return it instanceof $Symbol; 14944}; 14945 14946var $defineProperty = function defineProperty(it, key, D) { 14947 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 14948 anObject(it); 14949 key = toPrimitive(key, true); 14950 anObject(D); 14951 if (has(AllSymbols, key)) { 14952 if (!D.enumerable) { 14953 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 14954 it[HIDDEN][key] = true; 14955 } else { 14956 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 14957 D = _create(D, { enumerable: createDesc(0, false) }); 14958 } return setSymbolDesc(it, key, D); 14959 } return dP(it, key, D); 14960}; 14961var $defineProperties = function defineProperties(it, P) { 14962 anObject(it); 14963 var keys = enumKeys(P = toIObject(P)); 14964 var i = 0; 14965 var l = keys.length; 14966 var key; 14967 while (l > i) $defineProperty(it, key = keys[i++], P[key]); 14968 return it; 14969}; 14970var $create = function create(it, P) { 14971 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 14972}; 14973var $propertyIsEnumerable = function propertyIsEnumerable(key) { 14974 var E = isEnum.call(this, key = toPrimitive(key, true)); 14975 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 14976 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 14977}; 14978var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 14979 it = toIObject(it); 14980 key = toPrimitive(key, true); 14981 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 14982 var D = gOPD(it, key); 14983 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 14984 return D; 14985}; 14986var $getOwnPropertyNames = function getOwnPropertyNames(it) { 14987 var names = gOPN(toIObject(it)); 14988 var result = []; 14989 var i = 0; 14990 var key; 14991 while (names.length > i) { 14992 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 14993 } return result; 14994}; 14995var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 14996 var IS_OP = it === ObjectProto; 14997 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 14998 var result = []; 14999 var i = 0; 15000 var key; 15001 while (names.length > i) { 15002 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 15003 } return result; 15004}; 15005 15006// 19.4.1.1 Symbol([description]) 15007if (!USE_NATIVE) { 15008 $Symbol = function Symbol() { 15009 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 15010 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 15011 var $set = function (value) { 15012 if (this === ObjectProto) $set.call(OPSymbols, value); 15013 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 15014 setSymbolDesc(this, tag, createDesc(1, value)); 15015 }; 15016 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); 15017 return wrap(tag); 15018 }; 15019 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 15020 return this._k; 15021 }); 15022 15023 $GOPD.f = $getOwnPropertyDescriptor; 15024 $DP.f = $defineProperty; 15025 __webpack_require__(58).f = gOPNExt.f = $getOwnPropertyNames; 15026 __webpack_require__(75).f = $propertyIsEnumerable; 15027 __webpack_require__(86).f = $getOwnPropertySymbols; 15028 15029 if (DESCRIPTORS && !__webpack_require__(44)) { 15030 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 15031 } 15032 15033 wksExt.f = function (name) { 15034 return wrap(wks(name)); 15035 }; 15036} 15037 15038$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); 15039 15040for (var es6Symbols = ( 15041 // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 15042 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' 15043).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); 15044 15045for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); 15046 15047$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 15048 // 19.4.2.1 Symbol.for(key) 15049 'for': function (key) { 15050 return has(SymbolRegistry, key += '') 15051 ? SymbolRegistry[key] 15052 : SymbolRegistry[key] = $Symbol(key); 15053 }, 15054 // 19.4.2.5 Symbol.keyFor(sym) 15055 keyFor: function keyFor(sym) { 15056 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 15057 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; 15058 }, 15059 useSetter: function () { setter = true; }, 15060 useSimple: function () { setter = false; } 15061}); 15062 15063$export($export.S + $export.F * !USE_NATIVE, 'Object', { 15064 // 19.1.2.2 Object.create(O [, Properties]) 15065 create: $create, 15066 // 19.1.2.4 Object.defineProperty(O, P, Attributes) 15067 defineProperty: $defineProperty, 15068 // 19.1.2.3 Object.defineProperties(O, Properties) 15069 defineProperties: $defineProperties, 15070 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 15071 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 15072 // 19.1.2.7 Object.getOwnPropertyNames(O) 15073 getOwnPropertyNames: $getOwnPropertyNames, 15074 // 19.1.2.8 Object.getOwnPropertySymbols(O) 15075 getOwnPropertySymbols: $getOwnPropertySymbols 15076}); 15077 15078// 24.3.2 JSON.stringify(value [, replacer [, space]]) 15079$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 15080 var S = $Symbol(); 15081 // MS Edge converts symbol values to JSON as {} 15082 // WebKit converts symbol values to JSON as null 15083 // V8 throws on boxed symbols 15084 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; 15085})), 'JSON', { 15086 stringify: function stringify(it) { 15087 var args = [it]; 15088 var i = 1; 15089 var replacer, $replacer; 15090 while (arguments.length > i) args.push(arguments[i++]); 15091 $replacer = replacer = args[1]; 15092 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined 15093 if (!isArray(replacer)) replacer = function (key, value) { 15094 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 15095 if (!isSymbol(value)) return value; 15096 }; 15097 args[1] = replacer; 15098 return _stringify.apply($JSON, args); 15099 } 15100}); 15101 15102// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) 15103$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(20)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 15104// 19.4.3.5 Symbol.prototype[@@toStringTag] 15105setToStringTag($Symbol, 'Symbol'); 15106// 20.2.1.9 Math[@@toStringTag] 15107setToStringTag(Math, 'Math', true); 15108// 24.3.3 JSON[@@toStringTag] 15109setToStringTag(global.JSON, 'JSON', true); 15110 15111 15112/***/ }), 15113/* 236 */ 15114/***/ (function(module, exports, __webpack_require__) { 15115 15116// all enumerable object keys, includes symbols 15117var getKeys = __webpack_require__(52); 15118var gOPS = __webpack_require__(86); 15119var pIE = __webpack_require__(75); 15120module.exports = function (it) { 15121 var result = getKeys(it); 15122 var getSymbols = gOPS.f; 15123 if (getSymbols) { 15124 var symbols = getSymbols(it); 15125 var isEnum = pIE.f; 15126 var i = 0; 15127 var key; 15128 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); 15129 } return result; 15130}; 15131 15132 15133/***/ }), 15134/* 237 */ 15135/***/ (function(module, exports, __webpack_require__) { 15136 15137var $export = __webpack_require__(0); 15138// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 15139$export($export.S, 'Object', { create: __webpack_require__(51) }); 15140 15141 15142/***/ }), 15143/* 238 */ 15144/***/ (function(module, exports, __webpack_require__) { 15145 15146var $export = __webpack_require__(0); 15147// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) 15148$export($export.S + $export.F * !__webpack_require__(12), 'Object', { defineProperty: __webpack_require__(11).f }); 15149 15150 15151/***/ }), 15152/* 239 */ 15153/***/ (function(module, exports, __webpack_require__) { 15154
vendor: 45,181 bytes, lines 15155-16897
15155var $export = __webpack_require__(0); 15156// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) 15157$export($export.S + $export.F * !__webpack_require__(12), 'Object', { defineProperties: __webpack_require__(157) }); 15158 15159 15160/***/ }), 15161/* 240 */ 15162/***/ (function(module, exports, __webpack_require__) { 15163 15164// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 15165var toIObject = __webpack_require__(25); 15166var $getOwnPropertyDescriptor = __webpack_require__(27).f; 15167 15168__webpack_require__(36)('getOwnPropertyDescriptor', function () { 15169 return function getOwnPropertyDescriptor(it, key) { 15170 return $getOwnPropertyDescriptor(toIObject(it), key); 15171 }; 15172}); 15173 15174 15175/***/ }), 15176/* 241 */ 15177/***/ (function(module, exports, __webpack_require__) { 15178 15179// 19.1.2.9 Object.getPrototypeOf(O) 15180var toObject = __webpack_require__(15); 15181var $getPrototypeOf = __webpack_require__(26); 15182 15183__webpack_require__(36)('getPrototypeOf', function () { 15184 return function getPrototypeOf(it) { 15185 return $getPrototypeOf(toObject(it)); 15186 }; 15187}); 15188 15189 15190/***/ }), 15191/* 242 */ 15192/***/ (function(module, exports, __webpack_require__) { 15193 15194// 19.1.2.14 Object.keys(O) 15195var toObject = __webpack_require__(15); 15196var $keys = __webpack_require__(52); 15197 15198__webpack_require__(36)('keys', function () { 15199 return function keys(it) { 15200 return $keys(toObject(it)); 15201 }; 15202}); 15203 15204 15205/***/ }), 15206/* 243 */ 15207/***/ (function(module, exports, __webpack_require__) { 15208 15209// 19.1.2.7 Object.getOwnPropertyNames(O) 15210__webpack_require__(36)('getOwnPropertyNames', function () { 15211 return __webpack_require__(163).f; 15212}); 15213 15214 15215/***/ }), 15216/* 244 */ 15217/***/ (function(module, exports, __webpack_require__) { 15218 15219// 19.1.2.5 Object.freeze(O) 15220var isObject = __webpack_require__(7); 15221var meta = __webpack_require__(46).onFreeze; 15222 15223__webpack_require__(36)('freeze', function ($freeze) { 15224 return function freeze(it) { 15225 return $freeze && isObject(it) ? $freeze(meta(it)) : it; 15226 }; 15227}); 15228 15229 15230/***/ }), 15231/* 245 */ 15232/***/ (function(module, exports, __webpack_require__) { 15233 15234// 19.1.2.17 Object.seal(O) 15235var isObject = __webpack_require__(7); 15236var meta = __webpack_require__(46).onFreeze; 15237 15238__webpack_require__(36)('seal', function ($seal) { 15239 return function seal(it) { 15240 return $seal && isObject(it) ? $seal(meta(it)) : it; 15241 }; 15242}); 15243 15244 15245/***/ }), 15246/* 246 */ 15247/***/ (function(module, exports, __webpack_require__) { 15248 15249// 19.1.2.15 Object.preventExtensions(O) 15250var isObject = __webpack_require__(7); 15251var meta = __webpack_require__(46).onFreeze; 15252 15253__webpack_require__(36)('preventExtensions', function ($preventExtensions) { 15254 return function preventExtensions(it) { 15255 return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; 15256 }; 15257}); 15258 15259 15260/***/ }), 15261/* 247 */ 15262/***/ (function(module, exports, __webpack_require__) { 15263 15264// 19.1.2.12 Object.isFrozen(O) 15265var isObject = __webpack_require__(7); 15266 15267__webpack_require__(36)('isFrozen', function ($isFrozen) { 15268 return function isFrozen(it) { 15269 return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; 15270 }; 15271}); 15272 15273 15274/***/ }), 15275/* 248 */ 15276/***/ (function(module, exports, __webpack_require__) { 15277 15278// 19.1.2.13 Object.isSealed(O) 15279var isObject = __webpack_require__(7); 15280 15281__webpack_require__(36)('isSealed', function ($isSealed) { 15282 return function isSealed(it) { 15283 return isObject(it) ? $isSealed ? $isSealed(it) : false : true; 15284 }; 15285}); 15286 15287 15288/***/ }), 15289/* 249 */ 15290/***/ (function(module, exports, __webpack_require__) { 15291 15292// 19.1.2.11 Object.isExtensible(O) 15293var isObject = __webpack_require__(7); 15294 15295__webpack_require__(36)('isExtensible', function ($isExtensible) { 15296 return function isExtensible(it) { 15297 return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; 15298 }; 15299}); 15300 15301 15302/***/ }), 15303/* 250 */ 15304/***/ (function(module, exports, __webpack_require__) { 15305 15306// 19.1.3.1 Object.assign(target, source) 15307var $export = __webpack_require__(0); 15308 15309$export($export.S + $export.F, 'Object', { assign: __webpack_require__(164) }); 15310 15311 15312/***/ }), 15313/* 251 */ 15314/***/ (function(module, exports, __webpack_require__) { 15315 15316// 19.1.3.10 Object.is(value1, value2) 15317var $export = __webpack_require__(0); 15318$export($export.S, 'Object', { is: __webpack_require__(252) }); 15319 15320 15321/***/ }), 15322/* 252 */ 15323/***/ (function(module, exports) { 15324 15325// 7.2.9 SameValue(x, y) 15326module.exports = Object.is || function is(x, y) { 15327 // eslint-disable-next-line no-self-compare 15328 return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; 15329}; 15330 15331 15332/***/ }), 15333/* 253 */ 15334/***/ (function(module, exports, __webpack_require__) { 15335 15336// 19.1.3.19 Object.setPrototypeOf(O, proto) 15337var $export = __webpack_require__(0); 15338$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(120).set }); 15339 15340 15341/***/ }), 15342/* 254 */ 15343/***/ (function(module, exports, __webpack_require__) { 15344 15345// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) 15346var $export = __webpack_require__(0); 15347 15348$export($export.P, 'Function', { bind: __webpack_require__(165) }); 15349 15350 15351/***/ }), 15352/* 255 */ 15353/***/ (function(module, exports, __webpack_require__) { 15354 15355var dP = __webpack_require__(11).f; 15356var FProto = Function.prototype; 15357var nameRE = /^\s*function ([^ (]*)/; 15358var NAME = 'name'; 15359 15360// 19.2.4.2 name 15361NAME in FProto || __webpack_require__(12) && dP(FProto, NAME, { 15362 configurable: true, 15363 get: function () { 15364 try { 15365 return ('' + this).match(nameRE)[1]; 15366 } catch (e) { 15367 return ''; 15368 } 15369 } 15370}); 15371 15372 15373/***/ }), 15374/* 256 */ 15375/***/ (function(module, exports, __webpack_require__) { 15376 15377"use strict"; 15378 15379var isObject = __webpack_require__(7); 15380var getPrototypeOf = __webpack_require__(26); 15381var HAS_INSTANCE = __webpack_require__(9)('hasInstance'); 15382var FunctionProto = Function.prototype; 15383// 19.2.3.6 Function.prototype[@@hasInstance](V) 15384if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(11).f(FunctionProto, HAS_INSTANCE, { value: function (O) { 15385 if (typeof this != 'function' || !isObject(O)) return false; 15386 if (!isObject(this.prototype)) return O instanceof this; 15387 // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: 15388 while (O = getPrototypeOf(O)) if (this.prototype === O) return true; 15389 return false; 15390} }); 15391 15392 15393/***/ }), 15394/* 257 */ 15395/***/ (function(module, exports, __webpack_require__) { 15396 15397var $export = __webpack_require__(0); 15398var $parseInt = __webpack_require__(167); 15399// 18.2.5 parseInt(string, radix) 15400$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); 15401 15402 15403/***/ }), 15404/* 258 */ 15405/***/ (function(module, exports, __webpack_require__) { 15406 15407var $export = __webpack_require__(0); 15408var $parseFloat = __webpack_require__(168); 15409// 18.2.4 parseFloat(string) 15410$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); 15411 15412 15413/***/ }), 15414/* 259 */ 15415/***/ (function(module, exports, __webpack_require__) { 15416 15417"use strict"; 15418 15419var global = __webpack_require__(5); 15420var has = __webpack_require__(24); 15421var cof = __webpack_require__(29); 15422var inheritIfRequired = __webpack_require__(119); 15423var toPrimitive = __webpack_require__(33); 15424var fails = __webpack_require__(6); 15425var gOPN = __webpack_require__(58).f; 15426var gOPD = __webpack_require__(27).f; 15427var dP = __webpack_require__(11).f; 15428var $trim = __webpack_require__(65).trim; 15429var NUMBER = 'Number'; 15430var $Number = global[NUMBER]; 15431var Base = $Number; 15432var proto = $Number.prototype; 15433// Opera ~12 has broken Object#toString 15434var BROKEN_COF = cof(__webpack_require__(51)(proto)) == NUMBER; 15435var TRIM = 'trim' in String.prototype; 15436 15437// 7.1.3 ToNumber(argument) 15438var toNumber = function (argument) { 15439 var it = toPrimitive(argument, false); 15440 if (typeof it == 'string' && it.length > 2) { 15441 it = TRIM ? it.trim() : $trim(it, 3); 15442 var first = it.charCodeAt(0); 15443 var third, radix, maxCode; 15444 if (first === 43 || first === 45) { 15445 third = it.charCodeAt(2); 15446 if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix 15447 } else if (first === 48) { 15448 switch (it.charCodeAt(1)) { 15449 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i 15450 case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i 15451 default: return +it; 15452 } 15453 for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { 15454 code = digits.charCodeAt(i); 15455 // parseInt parses a string to a first unavailable symbol 15456 // but ToNumber should return NaN if a string contains unavailable symbols 15457 if (code < 48 || code > maxCode) return NaN; 15458 } return parseInt(digits, radix); 15459 } 15460 } return +it; 15461}; 15462 15463if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { 15464 $Number = function Number(value) { 15465 var it = arguments.length < 1 ? 0 : value; 15466 var that = this; 15467 return that instanceof $Number 15468 // check on 1..constructor(foo) case 15469 && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) 15470 ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); 15471 }; 15472 for (var keys = __webpack_require__(12) ? gOPN(Base) : ( 15473 // ES3: 15474 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + 15475 // ES6 (in case, if modules with ES6 Number statics required before): 15476 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 15477 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' 15478 ).split(','), j = 0, key; keys.length > j; j++) { 15479 if (has(Base, key = keys[j]) && !has($Number, key)) { 15480 dP($Number, key, gOPD(Base, key)); 15481 } 15482 } 15483 $Number.prototype = proto; 15484 proto.constructor = $Number; 15485 __webpack_require__(19)(global, NUMBER, $Number); 15486} 15487 15488 15489/***/ }), 15490/* 260 */ 15491/***/ (function(module, exports, __webpack_require__) { 15492 15493"use strict"; 15494 15495var $export = __webpack_require__(0); 15496var toInteger = __webpack_require__(34); 15497var aNumberValue = __webpack_require__(169); 15498var repeat = __webpack_require__(124); 15499var $toFixed = 1.0.toFixed; 15500var floor = Math.floor; 15501var data = [0, 0, 0, 0, 0, 0]; 15502var ERROR = 'Number.toFixed: incorrect invocation!'; 15503var ZERO = '0'; 15504 15505var multiply = function (n, c) { 15506 var i = -1; 15507 var c2 = c; 15508 while (++i < 6) { 15509 c2 += n * data[i]; 15510 data[i] = c2 % 1e7; 15511 c2 = floor(c2 / 1e7); 15512 } 15513}; 15514var divide = function (n) { 15515 var i = 6; 15516 var c = 0; 15517 while (--i >= 0) { 15518 c += data[i]; 15519 data[i] = floor(c / n); 15520 c = (c % n) * 1e7; 15521 } 15522}; 15523var numToString = function () { 15524 var i = 6; 15525 var s = ''; 15526 while (--i >= 0) { 15527 if (s !== '' || i === 0 || data[i] !== 0) { 15528 var t = String(data[i]); 15529 s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; 15530 } 15531 } return s; 15532}; 15533var pow = function (x, n, acc) { 15534 return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); 15535}; 15536var log = function (x) { 15537 var n = 0; 15538 var x2 = x; 15539 while (x2 >= 4096) { 15540 n += 12; 15541 x2 /= 4096; 15542 } 15543 while (x2 >= 2) { 15544 n += 1; 15545 x2 /= 2; 15546 } return n; 15547}; 15548 15549$export($export.P + $export.F * (!!$toFixed && ( 15550 0.00008.toFixed(3) !== '0.000' || 15551 0.9.toFixed(0) !== '1' || 15552 1.255.toFixed(2) !== '1.25' || 15553 1000000000000000128.0.toFixed(0) !== '1000000000000000128' 15554) || !__webpack_require__(6)(function () { 15555 // V8 ~ Android 4.3- 15556 $toFixed.call({}); 15557})), 'Number', { 15558 toFixed: function toFixed(fractionDigits) { 15559 var x = aNumberValue(this, ERROR); 15560 var f = toInteger(fractionDigits); 15561 var s = ''; 15562 var m = ZERO; 15563 var e, z, j, k; 15564 if (f < 0 || f > 20) throw RangeError(ERROR); 15565 // eslint-disable-next-line no-self-compare 15566 if (x != x) return 'NaN'; 15567 if (x <= -1e21 || x >= 1e21) return String(x); 15568 if (x < 0) { 15569 s = '-'; 15570 x = -x; 15571 } 15572 if (x > 1e-21) { 15573 e = log(x * pow(2, 69, 1)) - 69; 15574 z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); 15575 z *= 0x10000000000000; 15576 e = 52 - e; 15577 if (e > 0) { 15578 multiply(0, z); 15579 j = f; 15580 while (j >= 7) { 15581 multiply(1e7, 0); 15582 j -= 7; 15583 } 15584 multiply(pow(10, j, 1), 0); 15585 j = e - 1; 15586 while (j >= 23) { 15587 divide(1 << 23); 15588 j -= 23; 15589 } 15590 divide(1 << j); 15591 multiply(1, 1); 15592 divide(2); 15593 m = numToString(); 15594 } else { 15595 multiply(0, z); 15596 multiply(1 << -e, 0); 15597 m = numToString() + repeat.call(ZERO, f); 15598 } 15599 } 15600 if (f > 0) { 15601 k = m.length; 15602 m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); 15603 } else { 15604 m = s + m; 15605 } return m; 15606 } 15607}); 15608 15609 15610/***/ }), 15611/* 261 */ 15612/***/ (function(module, exports, __webpack_require__) { 15613 15614"use strict"; 15615 15616var $export = __webpack_require__(0); 15617var $fails = __webpack_require__(6); 15618var aNumberValue = __webpack_require__(169); 15619var $toPrecision = 1.0.toPrecision; 15620 15621$export($export.P + $export.F * ($fails(function () { 15622 // IE7- 15623 return $toPrecision.call(1, undefined) !== '1'; 15624}) || !$fails(function () { 15625 // V8 ~ Android 4.3- 15626 $toPrecision.call({}); 15627})), 'Number', { 15628 toPrecision: function toPrecision(precision) { 15629 var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); 15630 return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); 15631 } 15632}); 15633 15634 15635/***/ }), 15636/* 262 */ 15637/***/ (function(module, exports, __webpack_require__) { 15638 15639// 20.1.2.1 Number.EPSILON 15640var $export = __webpack_require__(0); 15641 15642$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); 15643 15644 15645/***/ }), 15646/* 263 */ 15647/***/ (function(module, exports, __webpack_require__) { 15648 15649// 20.1.2.2 Number.isFinite(number) 15650var $export = __webpack_require__(0); 15651var _isFinite = __webpack_require__(5).isFinite; 15652 15653$export($export.S, 'Number', { 15654 isFinite: function isFinite(it) { 15655 return typeof it == 'number' && _isFinite(it); 15656 } 15657}); 15658 15659 15660/***/ }), 15661/* 264 */ 15662/***/ (function(module, exports, __webpack_require__) { 15663 15664// 20.1.2.3 Number.isInteger(number) 15665var $export = __webpack_require__(0); 15666 15667$export($export.S, 'Number', { isInteger: __webpack_require__(170) }); 15668 15669 15670/***/ }), 15671/* 265 */ 15672/***/ (function(module, exports, __webpack_require__) { 15673 15674// 20.1.2.4 Number.isNaN(number) 15675var $export = __webpack_require__(0); 15676 15677$export($export.S, 'Number', { 15678 isNaN: function isNaN(number) { 15679 // eslint-disable-next-line no-self-compare 15680 return number != number; 15681 } 15682}); 15683 15684 15685/***/ }), 15686/* 266 */ 15687/***/ (function(module, exports, __webpack_require__) { 15688 15689// 20.1.2.5 Number.isSafeInteger(number) 15690var $export = __webpack_require__(0); 15691var isInteger = __webpack_require__(170); 15692var abs = Math.abs; 15693 15694$export($export.S, 'Number', { 15695 isSafeInteger: function isSafeInteger(number) { 15696 return isInteger(number) && abs(number) <= 0x1fffffffffffff; 15697 } 15698}); 15699 15700 15701/***/ }), 15702/* 267 */ 15703/***/ (function(module, exports, __webpack_require__) { 15704 15705// 20.1.2.6 Number.MAX_SAFE_INTEGER 15706var $export = __webpack_require__(0); 15707 15708$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); 15709 15710 15711/***/ }), 15712/* 268 */ 15713/***/ (function(module, exports, __webpack_require__) { 15714 15715// 20.1.2.10 Number.MIN_SAFE_INTEGER 15716var $export = __webpack_require__(0); 15717 15718$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); 15719 15720 15721/***/ }), 15722/* 269 */ 15723/***/ (function(module, exports, __webpack_require__) { 15724 15725var $export = __webpack_require__(0); 15726var $parseFloat = __webpack_require__(168); 15727// 20.1.2.12 Number.parseFloat(string) 15728$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); 15729 15730 15731/***/ }), 15732/* 270 */ 15733/***/ (function(module, exports, __webpack_require__) { 15734 15735var $export = __webpack_require__(0); 15736var $parseInt = __webpack_require__(167); 15737// 20.1.2.13 Number.parseInt(string, radix) 15738$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); 15739 15740 15741/***/ }), 15742/* 271 */ 15743/***/ (function(module, exports, __webpack_require__) { 15744 15745// 20.2.2.3 Math.acosh(x) 15746var $export = __webpack_require__(0); 15747var log1p = __webpack_require__(171); 15748var sqrt = Math.sqrt; 15749var $acosh = Math.acosh; 15750 15751$export($export.S + $export.F * !($acosh 15752 // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 15753 && Math.floor($acosh(Number.MAX_VALUE)) == 710 15754 // Tor Browser bug: Math.acosh(Infinity) -> NaN 15755 && $acosh(Infinity) == Infinity 15756), 'Math', { 15757 acosh: function acosh(x) { 15758 return (x = +x) < 1 ? NaN : x > 94906265.62425156 15759 ? Math.log(x) + Math.LN2 15760 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); 15761 } 15762}); 15763 15764 15765/***/ }), 15766/* 272 */ 15767/***/ (function(module, exports, __webpack_require__) { 15768 15769// 20.2.2.5 Math.asinh(x) 15770var $export = __webpack_require__(0); 15771var $asinh = Math.asinh; 15772 15773function asinh(x) { 15774 return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); 15775} 15776 15777// Tor Browser bug: Math.asinh(0) -> -0 15778$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); 15779 15780 15781/***/ }), 15782/* 273 */ 15783/***/ (function(module, exports, __webpack_require__) { 15784 15785// 20.2.2.7 Math.atanh(x) 15786var $export = __webpack_require__(0); 15787var $atanh = Math.atanh; 15788 15789// Tor Browser bug: Math.atanh(-0) -> 0 15790$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { 15791 atanh: function atanh(x) { 15792 return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; 15793 } 15794}); 15795 15796 15797/***/ }), 15798/* 274 */ 15799/***/ (function(module, exports, __webpack_require__) { 15800 15801// 20.2.2.9 Math.cbrt(x) 15802var $export = __webpack_require__(0); 15803var sign = __webpack_require__(125); 15804 15805$export($export.S, 'Math', { 15806 cbrt: function cbrt(x) { 15807 return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); 15808 } 15809}); 15810 15811 15812/***/ }), 15813/* 275 */ 15814/***/ (function(module, exports, __webpack_require__) { 15815 15816// 20.2.2.11 Math.clz32(x) 15817var $export = __webpack_require__(0); 15818 15819$export($export.S, 'Math', { 15820 clz32: function clz32(x) { 15821 return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; 15822 } 15823}); 15824 15825 15826/***/ }), 15827/* 276 */ 15828/***/ (function(module, exports, __webpack_require__) { 15829 15830// 20.2.2.12 Math.cosh(x) 15831var $export = __webpack_require__(0); 15832var exp = Math.exp; 15833 15834$export($export.S, 'Math', { 15835 cosh: function cosh(x) { 15836 return (exp(x = +x) + exp(-x)) / 2; 15837 } 15838}); 15839 15840 15841/***/ }), 15842/* 277 */ 15843/***/ (function(module, exports, __webpack_require__) { 15844 15845// 20.2.2.14 Math.expm1(x) 15846var $export = __webpack_require__(0); 15847var $expm1 = __webpack_require__(126); 15848 15849$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); 15850 15851 15852/***/ }), 15853/* 278 */ 15854/***/ (function(module, exports, __webpack_require__) { 15855 15856// 20.2.2.16 Math.fround(x) 15857var $export = __webpack_require__(0); 15858 15859$export($export.S, 'Math', { fround: __webpack_require__(172) }); 15860 15861 15862/***/ }), 15863/* 279 */ 15864/***/ (function(module, exports, __webpack_require__) { 15865 15866// 20.2.2.17 Math.hypot([value1[, value2[, ⦠]]]) 15867var $export = __webpack_require__(0); 15868var abs = Math.abs; 15869 15870$export($export.S, 'Math', { 15871 hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars 15872 var sum = 0; 15873 var i = 0; 15874 var aLen = arguments.length; 15875 var larg = 0; 15876 var arg, div; 15877 while (i < aLen) { 15878 arg = abs(arguments[i++]); 15879 if (larg < arg) { 15880 div = larg / arg; 15881 sum = sum * div * div + 1; 15882 larg = arg; 15883 } else if (arg > 0) { 15884 div = arg / larg; 15885 sum += div * div; 15886 } else sum += arg; 15887 } 15888 return larg === Infinity ? Infinity : larg * Math.sqrt(sum); 15889 } 15890}); 15891 15892 15893/***/ }), 15894/* 280 */ 15895/***/ (function(module, exports, __webpack_require__) { 15896 15897// 20.2.2.18 Math.imul(x, y) 15898var $export = __webpack_require__(0); 15899var $imul = Math.imul; 15900 15901// some WebKit versions fails with big numbers, some has wrong arity 15902$export($export.S + $export.F * __webpack_require__(6)(function () { 15903 return $imul(0xffffffff, 5) != -5 || $imul.length != 2; 15904}), 'Math', { 15905 imul: function imul(x, y) { 15906 var UINT16 = 0xffff; 15907 var xn = +x; 15908 var yn = +y; 15909 var xl = UINT16 & xn; 15910 var yl = UINT16 & yn; 15911 return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); 15912 } 15913}); 15914 15915 15916/***/ }), 15917/* 281 */ 15918/***/ (function(module, exports, __webpack_require__) { 15919 15920// 20.2.2.21 Math.log10(x) 15921var $export = __webpack_require__(0); 15922 15923$export($export.S, 'Math', { 15924 log10: function log10(x) { 15925 return Math.log(x) * Math.LOG10E; 15926 } 15927}); 15928 15929 15930/***/ }), 15931/* 282 */ 15932/***/ (function(module, exports, __webpack_require__) { 15933 15934// 20.2.2.20 Math.log1p(x) 15935var $export = __webpack_require__(0); 15936 15937$export($export.S, 'Math', { log1p: __webpack_require__(171) }); 15938 15939 15940/***/ }), 15941/* 283 */ 15942/***/ (function(module, exports, __webpack_require__) { 15943 15944// 20.2.2.22 Math.log2(x) 15945var $export = __webpack_require__(0); 15946 15947$export($export.S, 'Math', { 15948 log2: function log2(x) { 15949 return Math.log(x) / Math.LN2; 15950 } 15951}); 15952 15953 15954/***/ }), 15955/* 284 */ 15956/***/ (function(module, exports, __webpack_require__) { 15957 15958// 20.2.2.28 Math.sign(x) 15959var $export = __webpack_require__(0); 15960 15961$export($export.S, 'Math', { sign: __webpack_require__(125) }); 15962 15963 15964/***/ }), 15965/* 285 */ 15966/***/ (function(module, exports, __webpack_require__) { 15967 15968// 20.2.2.30 Math.sinh(x) 15969var $export = __webpack_require__(0); 15970var expm1 = __webpack_require__(126); 15971var exp = Math.exp; 15972 15973// V8 near Chromium 38 has a problem with very small numbers 15974$export($export.S + $export.F * __webpack_require__(6)(function () { 15975 return !Math.sinh(-2e-17) != -2e-17; 15976}), 'Math', { 15977 sinh: function sinh(x) { 15978 return Math.abs(x = +x) < 1 15979 ? (expm1(x) - expm1(-x)) / 2 15980 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); 15981 } 15982}); 15983 15984 15985/***/ }), 15986/* 286 */ 15987/***/ (function(module, exports, __webpack_require__) { 15988 15989// 20.2.2.33 Math.tanh(x) 15990var $export = __webpack_require__(0); 15991var expm1 = __webpack_require__(126); 15992var exp = Math.exp; 15993 15994$export($export.S, 'Math', { 15995 tanh: function tanh(x) { 15996 var a = expm1(x = +x); 15997 var b = expm1(-x); 15998 return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); 15999 } 16000}); 16001 16002 16003/***/ }), 16004/* 287 */ 16005/***/ (function(module, exports, __webpack_require__) { 16006 16007// 20.2.2.34 Math.trunc(x) 16008var $export = __webpack_require__(0); 16009 16010$export($export.S, 'Math', { 16011 trunc: function trunc(it) { 16012 return (it > 0 ? Math.floor : Math.ceil)(it); 16013 } 16014}); 16015 16016 16017/***/ }), 16018/* 288 */ 16019/***/ (function(module, exports, __webpack_require__) { 16020 16021var $export = __webpack_require__(0); 16022var toAbsoluteIndex = __webpack_require__(53); 16023var fromCharCode = String.fromCharCode; 16024var $fromCodePoint = String.fromCodePoint; 16025 16026// length should be 1, old FF problem 16027$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 16028 // 21.1.2.2 String.fromCodePoint(...codePoints) 16029 fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars 16030 var res = []; 16031 var aLen = arguments.length; 16032 var i = 0; 16033 var code; 16034 while (aLen > i) { 16035 code = +arguments[i++]; 16036 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 16037 res.push(code < 0x10000 16038 ? fromCharCode(code) 16039 : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) 16040 ); 16041 } return res.join(''); 16042 } 16043}); 16044 16045 16046/***/ }), 16047/* 289 */ 16048/***/ (function(module, exports, __webpack_require__) { 16049 16050var $export = __webpack_require__(0); 16051var toIObject = __webpack_require__(25); 16052var toLength = __webpack_require__(13); 16053 16054$export($export.S, 'String', { 16055 // 21.1.2.4 String.raw(callSite, ...substitutions) 16056 raw: function raw(callSite) { 16057 var tpl = toIObject(callSite.raw); 16058 var len = toLength(tpl.length); 16059 var aLen = arguments.length; 16060 var res = []; 16061 var i = 0; 16062 while (len > i) { 16063 res.push(String(tpl[i++])); 16064 if (i < aLen) res.push(String(arguments[i])); 16065 } return res.join(''); 16066 } 16067}); 16068 16069 16070/***/ }), 16071/* 290 */ 16072/***/ (function(module, exports, __webpack_require__) { 16073 16074"use strict"; 16075 16076// 21.1.3.25 String.prototype.trim() 16077__webpack_require__(65)('trim', function ($trim) { 16078 return function trim() { 16079 return $trim(this, 3); 16080 }; 16081}); 16082 16083 16084/***/ }), 16085/* 291 */ 16086/***/ (function(module, exports, __webpack_require__) { 16087 16088"use strict"; 16089 16090var $export = __webpack_require__(0); 16091var $at = __webpack_require__(108)(false); 16092$export($export.P, 'String', { 16093 // 21.1.3.3 String.prototype.codePointAt(pos) 16094 codePointAt: function codePointAt(pos) { 16095 return $at(this, pos); 16096 } 16097}); 16098 16099 16100/***/ }), 16101/* 292 */ 16102/***/ (function(module, exports, __webpack_require__) { 16103 16104"use strict"; 16105// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) 16106 16107var $export = __webpack_require__(0); 16108var toLength = __webpack_require__(13); 16109var context = __webpack_require__(127); 16110var ENDS_WITH = 'endsWith'; 16111var $endsWith = ''[ENDS_WITH]; 16112 16113$export($export.P + $export.F * __webpack_require__(128)(ENDS_WITH), 'String', { 16114 endsWith: function endsWith(searchString /* , endPosition = @length */) { 16115 var that = context(this, searchString, ENDS_WITH); 16116 var endPosition = arguments.length > 1 ? arguments[1] : undefined; 16117 var len = toLength(that.length); 16118 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); 16119 var search = String(searchString); 16120 return $endsWith 16121 ? $endsWith.call(that, search, end) 16122 : that.slice(end - search.length, end) === search; 16123 } 16124}); 16125 16126 16127/***/ }), 16128/* 293 */ 16129/***/ (function(module, exports, __webpack_require__) { 16130 16131"use strict"; 16132// 21.1.3.7 String.prototype.includes(searchString, position = 0) 16133 16134var $export = __webpack_require__(0); 16135var context = __webpack_require__(127); 16136var INCLUDES = 'includes'; 16137 16138$export($export.P + $export.F * __webpack_require__(128)(INCLUDES), 'String', { 16139 includes: function includes(searchString /* , position = 0 */) { 16140 return !!~context(this, searchString, INCLUDES) 16141 .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 16142 } 16143}); 16144 16145 16146/***/ }), 16147/* 294 */ 16148/***/ (function(module, exports, __webpack_require__) { 16149 16150var $export = __webpack_require__(0); 16151 16152$export($export.P, 'String', { 16153 // 21.1.3.13 String.prototype.repeat(count) 16154 repeat: __webpack_require__(124) 16155}); 16156 16157 16158/***/ }), 16159/* 295 */ 16160/***/ (function(module, exports, __webpack_require__) { 16161 16162"use strict"; 16163// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) 16164 16165var $export = __webpack_require__(0); 16166var toLength = __webpack_require__(13); 16167var context = __webpack_require__(127); 16168var STARTS_WITH = 'startsWith'; 16169var $startsWith = ''[STARTS_WITH]; 16170 16171$export($export.P + $export.F * __webpack_require__(128)(STARTS_WITH), 'String', { 16172 startsWith: function startsWith(searchString /* , position = 0 */) { 16173 var that = context(this, searchString, STARTS_WITH); 16174 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); 16175 var search = String(searchString); 16176 return $startsWith 16177 ? $startsWith.call(that, search, index) 16178 : that.slice(index, index + search.length) === search; 16179 } 16180}); 16181 16182 16183/***/ }), 16184/* 296 */ 16185/***/ (function(module, exports, __webpack_require__) { 16186 16187"use strict"; 16188 16189// B.2.3.2 String.prototype.anchor(name) 16190__webpack_require__(21)('anchor', function (createHTML) { 16191 return function anchor(name) { 16192 return createHTML(this, 'a', 'name', name); 16193 }; 16194}); 16195 16196 16197/***/ }), 16198/* 297 */ 16199/***/ (function(module, exports, __webpack_require__) { 16200 16201"use strict"; 16202 16203// B.2.3.3 String.prototype.big() 16204__webpack_require__(21)('big', function (createHTML) { 16205 return function big() { 16206 return createHTML(this, 'big', '', ''); 16207 }; 16208}); 16209 16210 16211/***/ }), 16212/* 298 */ 16213/***/ (function(module, exports, __webpack_require__) { 16214 16215"use strict"; 16216 16217// B.2.3.4 String.prototype.blink() 16218__webpack_require__(21)('blink', function (createHTML) { 16219 return function blink() { 16220 return createHTML(this, 'blink', '', ''); 16221 }; 16222}); 16223 16224 16225/***/ }), 16226/* 299 */ 16227/***/ (function(module, exports, __webpack_require__) { 16228 16229"use strict"; 16230 16231// B.2.3.5 String.prototype.bold() 16232__webpack_require__(21)('bold', function (createHTML) { 16233 return function bold() { 16234 return createHTML(this, 'b', '', ''); 16235 }; 16236}); 16237 16238 16239/***/ }), 16240/* 300 */ 16241/***/ (function(module, exports, __webpack_require__) { 16242 16243"use strict"; 16244 16245// B.2.3.6 String.prototype.fixed() 16246__webpack_require__(21)('fixed', function (createHTML) { 16247 return function fixed() { 16248 return createHTML(this, 'tt', '', ''); 16249 }; 16250}); 16251 16252 16253/***/ }), 16254/* 301 */ 16255/***/ (function(module, exports, __webpack_require__) { 16256 16257"use strict"; 16258 16259// B.2.3.7 String.prototype.fontcolor(color) 16260__webpack_require__(21)('fontcolor', function (createHTML) { 16261 return function fontcolor(color) { 16262 return createHTML(this, 'font', 'color', color); 16263 }; 16264}); 16265 16266 16267/***/ }), 16268/* 302 */ 16269/***/ (function(module, exports, __webpack_require__) { 16270 16271"use strict"; 16272 16273// B.2.3.8 String.prototype.fontsize(size) 16274__webpack_require__(21)('fontsize', function (createHTML) { 16275 return function fontsize(size) { 16276 return createHTML(this, 'font', 'size', size); 16277 }; 16278}); 16279 16280 16281/***/ }), 16282/* 303 */ 16283/***/ (function(module, exports, __webpack_require__) { 16284 16285"use strict"; 16286 16287// B.2.3.9 String.prototype.italics() 16288__webpack_require__(21)('italics', function (createHTML) { 16289 return function italics() { 16290 return createHTML(this, 'i', '', ''); 16291 }; 16292}); 16293 16294 16295/***/ }), 16296/* 304 */ 16297/***/ (function(module, exports, __webpack_require__) { 16298 16299"use strict"; 16300 16301// B.2.3.10 String.prototype.link(url) 16302__webpack_require__(21)('link', function (createHTML) { 16303 return function link(url) { 16304 return createHTML(this, 'a', 'href', url); 16305 }; 16306}); 16307 16308 16309/***/ }), 16310/* 305 */ 16311/***/ (function(module, exports, __webpack_require__) { 16312 16313"use strict"; 16314 16315// B.2.3.11 String.prototype.small() 16316__webpack_require__(21)('small', function (createHTML) { 16317 return function small() { 16318 return createHTML(this, 'small', '', ''); 16319 }; 16320}); 16321 16322 16323/***/ }), 16324/* 306 */ 16325/***/ (function(module, exports, __webpack_require__) { 16326 16327"use strict"; 16328 16329// B.2.3.12 String.prototype.strike() 16330__webpack_require__(21)('strike', function (createHTML) { 16331 return function strike() { 16332 return createHTML(this, 'strike', '', ''); 16333 }; 16334}); 16335 16336 16337/***/ }), 16338/* 307 */ 16339/***/ (function(module, exports, __webpack_require__) { 16340 16341"use strict"; 16342 16343// B.2.3.13 String.prototype.sub() 16344__webpack_require__(21)('sub', function (createHTML) { 16345 return function sub() { 16346 return createHTML(this, 'sub', '', ''); 16347 }; 16348}); 16349 16350 16351/***/ }), 16352/* 308 */ 16353/***/ (function(module, exports, __webpack_require__) { 16354 16355"use strict"; 16356 16357// B.2.3.14 String.prototype.sup() 16358__webpack_require__(21)('sup', function (createHTML) { 16359 return function sup() { 16360 return createHTML(this, 'sup', '', ''); 16361 }; 16362}); 16363 16364 16365/***/ }), 16366/* 309 */ 16367/***/ (function(module, exports, __webpack_require__) { 16368 16369// 20.3.3.1 / 15.9.4.4 Date.now() 16370var $export = __webpack_require__(0); 16371 16372$export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); 16373 16374 16375/***/ }), 16376/* 310 */ 16377/***/ (function(module, exports, __webpack_require__) { 16378 16379"use strict"; 16380 16381var $export = __webpack_require__(0); 16382var toObject = __webpack_require__(15); 16383var toPrimitive = __webpack_require__(33); 16384 16385$export($export.P + $export.F * __webpack_require__(6)(function () { 16386 return new Date(NaN).toJSON() !== null 16387 || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; 16388}), 'Date', { 16389 // eslint-disable-next-line no-unused-vars 16390 toJSON: function toJSON(key) { 16391 var O = toObject(this); 16392 var pv = toPrimitive(O); 16393 return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); 16394 } 16395}); 16396 16397 16398/***/ }), 16399/* 311 */ 16400/***/ (function(module, exports, __webpack_require__) { 16401 16402// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() 16403var $export = __webpack_require__(0); 16404var toISOString = __webpack_require__(312); 16405 16406// PhantomJS / old WebKit has a broken implementations 16407$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { 16408 toISOString: toISOString 16409}); 16410 16411 16412/***/ }), 16413/* 312 */ 16414/***/ (function(module, exports, __webpack_require__) { 16415 16416"use strict"; 16417 16418// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() 16419var fails = __webpack_require__(6); 16420var getTime = Date.prototype.getTime; 16421var $toISOString = Date.prototype.toISOString; 16422 16423var lz = function (num) { 16424 return num > 9 ? num : '0' + num; 16425}; 16426 16427// PhantomJS / old WebKit has a broken implementations 16428module.exports = (fails(function () { 16429 return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; 16430}) || !fails(function () { 16431 $toISOString.call(new Date(NaN)); 16432})) ? function toISOString() { 16433 if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); 16434 var d = this; 16435 var y = d.getUTCFullYear(); 16436 var m = d.getUTCMilliseconds(); 16437 var s = y < 0 ? '-' : y > 9999 ? '+' : ''; 16438 return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + 16439 '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 16440 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + 16441 ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; 16442} : $toISOString; 16443 16444 16445/***/ }), 16446/* 313 */ 16447/***/ (function(module, exports, __webpack_require__) { 16448 16449var DateProto = Date.prototype; 16450var INVALID_DATE = 'Invalid Date'; 16451var TO_STRING = 'toString'; 16452var $toString = DateProto[TO_STRING]; 16453var getTime = DateProto.getTime; 16454if (new Date(NaN) + '' != INVALID_DATE) { 16455 __webpack_require__(19)(DateProto, TO_STRING, function toString() { 16456 var value = getTime.call(this); 16457 // eslint-disable-next-line no-self-compare 16458 return value === value ? $toString.call(this) : INVALID_DATE; 16459 }); 16460} 16461 16462 16463/***/ }), 16464/* 314 */ 16465/***/ (function(module, exports, __webpack_require__) { 16466 16467var TO_PRIMITIVE = __webpack_require__(9)('toPrimitive'); 16468var proto = Date.prototype; 16469 16470if (!(TO_PRIMITIVE in proto)) __webpack_require__(20)(proto, TO_PRIMITIVE, __webpack_require__(315)); 16471 16472 16473/***/ }), 16474/* 315 */ 16475/***/ (function(module, exports, __webpack_require__) { 16476 16477"use strict"; 16478 16479var anObject = __webpack_require__(4); 16480var toPrimitive = __webpack_require__(33); 16481var NUMBER = 'number'; 16482 16483module.exports = function (hint) { 16484 if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); 16485 return toPrimitive(anObject(this), hint != NUMBER); 16486}; 16487 16488 16489/***/ }), 16490/* 316 */ 16491/***/ (function(module, exports, __webpack_require__) { 16492 16493// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) 16494var $export = __webpack_require__(0); 16495 16496$export($export.S, 'Array', { isArray: __webpack_require__(87) }); 16497 16498 16499/***/ }), 16500/* 317 */ 16501/***/ (function(module, exports, __webpack_require__) { 16502 16503"use strict"; 16504 16505var ctx = __webpack_require__(30); 16506var $export = __webpack_require__(0); 16507var toObject = __webpack_require__(15); 16508var call = __webpack_require__(161); 16509var isArrayIter = __webpack_require__(117); 16510var toLength = __webpack_require__(13); 16511var createProperty = __webpack_require__(129); 16512var getIterFn = __webpack_require__(118); 16513 16514$export($export.S + $export.F * !__webpack_require__(85)(function (iter) { Array.from(iter); }), 'Array', { 16515 // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) 16516 from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { 16517 var O = toObject(arrayLike); 16518 var C = typeof this == 'function' ? this : Array; 16519 var aLen = arguments.length; 16520 var mapfn = aLen > 1 ? arguments[1] : undefined; 16521 var mapping = mapfn !== undefined; 16522 var index = 0; 16523 var iterFn = getIterFn(O); 16524 var length, result, step, iterator; 16525 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); 16526 // if object isn't iterable or it's array with default iterator - use simple case 16527 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { 16528 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { 16529 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); 16530 } 16531 } else { 16532 length = toLength(O.length); 16533 for (result = new C(length); length > index; index++) { 16534 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); 16535 } 16536 } 16537 result.length = index; 16538 return result; 16539 } 16540}); 16541 16542 16543/***/ }), 16544/* 318 */ 16545/***/ (function(module, exports, __webpack_require__) { 16546 16547"use strict"; 16548 16549var $export = __webpack_require__(0); 16550var createProperty = __webpack_require__(129); 16551 16552// WebKit Array.of isn't generic 16553$export($export.S + $export.F * __webpack_require__(6)(function () { 16554 function F() { /* empty */ } 16555 return !(Array.of.call(F) instanceof F); 16556}), 'Array', { 16557 // 22.1.2.3 Array.of( ...items) 16558 of: function of(/* ...args */) { 16559 var index = 0; 16560 var aLen = arguments.length; 16561 var result = new (typeof this == 'function' ? this : Array)(aLen); 16562 while (aLen > index) createProperty(result, index, arguments[index++]); 16563 result.length = aLen; 16564 return result; 16565 } 16566}); 16567 16568 16569/***/ }), 16570/* 319 */ 16571/***/ (function(module, exports, __webpack_require__) { 16572 16573"use strict"; 16574 16575// 22.1.3.13 Array.prototype.join(separator) 16576var $export = __webpack_require__(0); 16577var toIObject = __webpack_require__(25); 16578var arrayJoin = [].join; 16579 16580// fallback for not array-like strings 16581$export($export.P + $export.F * (__webpack_require__(74) != Object || !__webpack_require__(31)(arrayJoin)), 'Array', { 16582 join: function join(separator) { 16583 return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); 16584 } 16585}); 16586 16587 16588/***/ }), 16589/* 320 */ 16590/***/ (function(module, exports, __webpack_require__) { 16591 16592"use strict"; 16593 16594var $export = __webpack_require__(0); 16595var html = __webpack_require__(113); 16596var cof = __webpack_require__(29); 16597var toAbsoluteIndex = __webpack_require__(53); 16598var toLength = __webpack_require__(13); 16599var arraySlice = [].slice; 16600 16601// fallback for not array-like ES3 strings and DOM objects 16602$export($export.P + $export.F * __webpack_require__(6)(function () { 16603 if (html) arraySlice.call(html); 16604}), 'Array', { 16605 slice: function slice(begin, end) { 16606 var len = toLength(this.length); 16607 var klass = cof(this); 16608 end = end === undefined ? len : end; 16609 if (klass == 'Array') return arraySlice.call(this, begin, end); 16610 var start = toAbsoluteIndex(begin, len); 16611 var upTo = toAbsoluteIndex(end, len); 16612 var size = toLength(upTo - start); 16613 var cloned = new Array(size); 16614 var i = 0; 16615 for (; i < size; i++) cloned[i] = klass == 'String' 16616 ? this.charAt(start + i) 16617 : this[start + i]; 16618 return cloned; 16619 } 16620}); 16621 16622 16623/***/ }), 16624/* 321 */ 16625/***/ (function(module, exports, __webpack_require__) { 16626 16627"use strict"; 16628 16629var $export = __webpack_require__(0); 16630var aFunction = __webpack_require__(17); 16631var toObject = __webpack_require__(15); 16632var fails = __webpack_require__(6); 16633var $sort = [].sort; 16634var test = [1, 2, 3]; 16635 16636$export($export.P + $export.F * (fails(function () { 16637 // IE8- 16638 test.sort(undefined); 16639}) || !fails(function () { 16640 // V8 bug 16641 test.sort(null); 16642 // Old WebKit 16643}) || !__webpack_require__(31)($sort)), 'Array', { 16644 // 22.1.3.25 Array.prototype.sort(comparefn) 16645 sort: function sort(comparefn) { 16646 return comparefn === undefined 16647 ? $sort.call(toObject(this)) 16648 : $sort.call(toObject(this), aFunction(comparefn)); 16649 } 16650}); 16651 16652 16653/***/ }), 16654/* 322 */ 16655/***/ (function(module, exports, __webpack_require__) { 16656 16657"use strict"; 16658 16659var $export = __webpack_require__(0); 16660var $forEach = __webpack_require__(37)(0); 16661var STRICT = __webpack_require__(31)([].forEach, true); 16662 16663$export($export.P + $export.F * !STRICT, 'Array', { 16664 // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) 16665 forEach: function forEach(callbackfn /* , thisArg */) { 16666 return $forEach(this, callbackfn, arguments[1]); 16667 } 16668}); 16669 16670 16671/***/ }), 16672/* 323 */ 16673/***/ (function(module, exports, __webpack_require__) { 16674 16675var isObject = __webpack_require__(7); 16676var isArray = __webpack_require__(87); 16677var SPECIES = __webpack_require__(9)('species'); 16678 16679module.exports = function (original) { 16680 var C; 16681 if (isArray(original)) { 16682 C = original.constructor; 16683 // cross-realm fallback 16684 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 16685 if (isObject(C)) { 16686 C = C[SPECIES]; 16687 if (C === null) C = undefined; 16688 } 16689 } return C === undefined ? Array : C; 16690}; 16691 16692 16693/***/ }), 16694/* 324 */ 16695/***/ (function(module, exports, __webpack_require__) { 16696 16697"use strict"; 16698 16699var $export = __webpack_require__(0); 16700var $map = __webpack_require__(37)(1); 16701 16702$export($export.P + $export.F * !__webpack_require__(31)([].map, true), 'Array', { 16703 // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) 16704 map: function map(callbackfn /* , thisArg */) { 16705 return $map(this, callbackfn, arguments[1]); 16706 } 16707}); 16708 16709 16710/***/ }), 16711/* 325 */ 16712/***/ (function(module, exports, __webpack_require__) { 16713 16714"use strict"; 16715 16716var $export = __webpack_require__(0); 16717var $filter = __webpack_require__(37)(2); 16718 16719$export($export.P + $export.F * !__webpack_require__(31)([].filter, true), 'Array', { 16720 // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) 16721 filter: function filter(callbackfn /* , thisArg */) { 16722 return $filter(this, callbackfn, arguments[1]); 16723 } 16724}); 16725 16726 16727/***/ }), 16728/* 326 */ 16729/***/ (function(module, exports, __webpack_require__) { 16730 16731"use strict"; 16732 16733var $export = __webpack_require__(0); 16734var $some = __webpack_require__(37)(3); 16735 16736$export($export.P + $export.F * !__webpack_require__(31)([].some, true), 'Array', { 16737 // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) 16738 some: function some(callbackfn /* , thisArg */) { 16739 return $some(this, callbackfn, arguments[1]); 16740 } 16741}); 16742 16743 16744/***/ }), 16745/* 327 */ 16746/***/ (function(module, exports, __webpack_require__) { 16747 16748"use strict"; 16749 16750var $export = __webpack_require__(0); 16751var $every = __webpack_require__(37)(4); 16752 16753$export($export.P + $export.F * !__webpack_require__(31)([].every, true), 'Array', { 16754 // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) 16755 every: function every(callbackfn /* , thisArg */) { 16756 return $every(this, callbackfn, arguments[1]); 16757 } 16758}); 16759 16760 16761/***/ }), 16762/* 328 */ 16763/***/ (function(module, exports, __webpack_require__) { 16764 16765"use strict"; 16766 16767var $export = __webpack_require__(0); 16768var $reduce = __webpack_require__(173); 16769 16770$export($export.P + $export.F * !__webpack_require__(31)([].reduce, true), 'Array', { 16771 // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) 16772 reduce: function reduce(callbackfn /* , initialValue */) { 16773 return $reduce(this, callbackfn, arguments.length, arguments[1], false); 16774 } 16775}); 16776 16777 16778/***/ }), 16779/* 329 */ 16780/***/ (function(module, exports, __webpack_require__) { 16781 16782"use strict"; 16783 16784var $export = __webpack_require__(0); 16785var $reduce = __webpack_require__(173); 16786 16787$export($export.P + $export.F * !__webpack_require__(31)([].reduceRight, true), 'Array', { 16788 // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) 16789 reduceRight: function reduceRight(callbackfn /* , initialValue */) { 16790 return $reduce(this, callbackfn, arguments.length, arguments[1], true); 16791 } 16792}); 16793 16794 16795/***/ }), 16796/* 330 */ 16797/***/ (function(module, exports, __webpack_require__) { 16798 16799"use strict"; 16800 16801var $export = __webpack_require__(0); 16802var $indexOf = __webpack_require__(83)(false); 16803var $native = [].indexOf; 16804var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; 16805 16806$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(31)($native)), 'Array', { 16807 // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) 16808 indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { 16809 return NEGATIVE_ZERO 16810 // convert -0 to +0 16811 ? $native.apply(this, arguments) || 0 16812 : $indexOf(this, searchElement, arguments[1]); 16813 } 16814}); 16815 16816 16817/***/ }), 16818/* 331 */ 16819/***/ (function(module, exports, __webpack_require__) { 16820 16821"use strict"; 16822 16823var $export = __webpack_require__(0); 16824var toIObject = __webpack_require__(25); 16825var toInteger = __webpack_require__(34); 16826var toLength = __webpack_require__(13); 16827var $native = [].lastIndexOf; 16828var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; 16829 16830$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(31)($native)), 'Array', { 16831 // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) 16832 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { 16833 // convert -0 to +0 16834 if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; 16835 var O = toIObject(this); 16836 var length = toLength(O.length); 16837 var index = length - 1; 16838 if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); 16839 if (index < 0) index = length + index; 16840 for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; 16841 return -1; 16842 } 16843}); 16844 16845 16846/***/ }), 16847/* 332 */ 16848/***/ (function(module, exports, __webpack_require__) { 16849 16850// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) 16851var $export = __webpack_require__(0); 16852 16853$export($export.P, 'Array', { copyWithin: __webpack_require__(174) }); 16854 16855__webpack_require__(45)('copyWithin'); 16856 16857 16858/***/ }), 16859/* 333 */ 16860/***/ (function(module, exports, __webpack_require__) { 16861 16862// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) 16863var $export = __webpack_require__(0); 16864 16865$export($export.P, 'Array', { fill: __webpack_require__(131) }); 16866 16867__webpack_require__(45)('fill'); 16868 16869 16870/***/ }), 16871/* 334 */ 16872/***/ (function(module, exports, __webpack_require__) { 16873 16874"use strict"; 16875 16876// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) 16877var $export = __webpack_require__(0); 16878var $find = __webpack_require__(37)(5); 16879var KEY = 'find'; 16880var forced = true; 16881// Shouldn't skip holes 16882if (KEY in []) Array(1)[KEY](function () { forced = false; }); 16883$export($export.P + $export.F * forced, 'Array', { 16884 find: function find(callbackfn /* , that = undefined */) { 16885 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 16886 } 16887}); 16888__webpack_require__(45)(KEY); 16889 16890 16891/***/ }), 16892/* 335 */ 16893/***/ (function(module, exports, __webpack_require__) { 16894 16895"use strict"; 16896 16897// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
vendor: 8,385 bytes, lines 16898-17136
16898var $export = __webpack_require__(0); 16899var $find = __webpack_require__(37)(6); 16900var KEY = 'findIndex'; 16901var forced = true; 16902// Shouldn't skip holes 16903if (KEY in []) Array(1)[KEY](function () { forced = false; }); 16904$export($export.P + $export.F * forced, 'Array', { 16905 findIndex: function findIndex(callbackfn /* , that = undefined */) { 16906 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 16907 } 16908}); 16909__webpack_require__(45)(KEY); 16910 16911 16912/***/ }), 16913/* 336 */ 16914/***/ (function(module, exports, __webpack_require__) { 16915 16916__webpack_require__(57)('Array'); 16917 16918 16919/***/ }), 16920/* 337 */ 16921/***/ (function(module, exports, __webpack_require__) { 16922 16923var global = __webpack_require__(5); 16924var inheritIfRequired = __webpack_require__(119); 16925var dP = __webpack_require__(11).f; 16926var gOPN = __webpack_require__(58).f; 16927var isRegExp = __webpack_require__(88); 16928var $flags = __webpack_require__(89); 16929var $RegExp = global.RegExp; 16930var Base = $RegExp; 16931var proto = $RegExp.prototype; 16932var re1 = /a/g; 16933var re2 = /a/g; 16934// "new" creates a new object, old webkit buggy here 16935var CORRECT_NEW = new $RegExp(re1) !== re1; 16936 16937if (__webpack_require__(12) && (!CORRECT_NEW || __webpack_require__(6)(function () { 16938 re2[__webpack_require__(9)('match')] = false; 16939 // RegExp constructor can alter flags and IsRegExp works correct with @@match 16940 return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; 16941}))) { 16942 $RegExp = function RegExp(p, f) { 16943 var tiRE = this instanceof $RegExp; 16944 var piRE = isRegExp(p); 16945 var fiU = f === undefined; 16946 return !tiRE && piRE && p.constructor === $RegExp && fiU ? p 16947 : inheritIfRequired(CORRECT_NEW 16948 ? new Base(piRE && !fiU ? p.source : p, f) 16949 : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) 16950 , tiRE ? this : proto, $RegExp); 16951 }; 16952 var proxy = function (key) { 16953 key in $RegExp || dP($RegExp, key, { 16954 configurable: true, 16955 get: function () { return Base[key]; }, 16956 set: function (it) { Base[key] = it; } 16957 }); 16958 }; 16959 for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); 16960 proto.constructor = $RegExp; 16961 $RegExp.prototype = proto; 16962 __webpack_require__(19)(global, 'RegExp', $RegExp); 16963} 16964 16965__webpack_require__(57)('RegExp'); 16966 16967 16968/***/ }), 16969/* 338 */ 16970/***/ (function(module, exports, __webpack_require__) { 16971 16972"use strict"; 16973 16974__webpack_require__(175); 16975var anObject = __webpack_require__(4); 16976var $flags = __webpack_require__(89); 16977var DESCRIPTORS = __webpack_require__(12); 16978var TO_STRING = 'toString'; 16979var $toString = /./[TO_STRING]; 16980 16981var define = function (fn) { 16982 __webpack_require__(19)(RegExp.prototype, TO_STRING, fn, true); 16983}; 16984 16985// 21.2.5.14 RegExp.prototype.toString() 16986if (__webpack_require__(6)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { 16987 define(function toString() { 16988 var R = anObject(this); 16989 return '/'.concat(R.source, '/', 16990 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); 16991 }); 16992// FF44- RegExp#toString has a wrong name 16993} else if ($toString.name != TO_STRING) { 16994 define(function toString() { 16995 return $toString.call(this); 16996 }); 16997} 16998 16999 17000/***/ }), 17001/* 339 */ 17002/***/ (function(module, exports, __webpack_require__) { 17003 17004// @@match logic 17005__webpack_require__(90)('match', 1, function (defined, MATCH, $match) { 17006 // 21.1.3.11 String.prototype.match(regexp) 17007 return [function match(regexp) { 17008 'use strict'; 17009 var O = defined(this); 17010 var fn = regexp == undefined ? undefined : regexp[MATCH]; 17011 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); 17012 }, $match]; 17013}); 17014 17015 17016/***/ }), 17017/* 340 */ 17018/***/ (function(module, exports, __webpack_require__) { 17019 17020// @@replace logic 17021__webpack_require__(90)('replace', 2, function (defined, REPLACE, $replace) { 17022 // 21.1.3.14 String.prototype.replace(searchValue, replaceValue) 17023 return [function replace(searchValue, replaceValue) { 17024 'use strict'; 17025 var O = defined(this); 17026 var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; 17027 return fn !== undefined 17028 ? fn.call(searchValue, O, replaceValue) 17029 : $replace.call(String(O), searchValue, replaceValue); 17030 }, $replace]; 17031}); 17032 17033 17034/***/ }), 17035/* 341 */ 17036/***/ (function(module, exports, __webpack_require__) { 17037 17038// @@search logic 17039__webpack_require__(90)('search', 1, function (defined, SEARCH, $search) { 17040 // 21.1.3.15 String.prototype.search(regexp) 17041 return [function search(regexp) { 17042 'use strict'; 17043 var O = defined(this); 17044 var fn = regexp == undefined ? undefined : regexp[SEARCH]; 17045 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); 17046 }, $search]; 17047}); 17048 17049 17050/***/ }), 17051/* 342 */ 17052/***/ (function(module, exports, __webpack_require__) { 17053 17054// @@split logic 17055__webpack_require__(90)('split', 2, function (defined, SPLIT, $split) { 17056 'use strict'; 17057 var isRegExp = __webpack_require__(88); 17058 var _split = $split; 17059 var $push = [].push; 17060 var $SPLIT = 'split'; 17061 var LENGTH = 'length'; 17062 var LAST_INDEX = 'lastIndex'; 17063 if ( 17064 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || 17065 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 17066 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || 17067 '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || 17068 '.'[$SPLIT](/()()/)[LENGTH] > 1 || 17069 ''[$SPLIT](/.?/)[LENGTH] 17070 ) { 17071 var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group 17072 // based on es5-shim implementation, need to rework it 17073 $split = function (separator, limit) { 17074 var string = String(this); 17075 if (separator === undefined && limit === 0) return []; 17076 // If `separator` is not a regex, use native split 17077 if (!isRegExp(separator)) return _split.call(string, separator, limit); 17078 var output = []; 17079 var flags = (separator.ignoreCase ? 'i' : '') + 17080 (separator.multiline ? 'm' : '') + 17081 (separator.unicode ? 'u' : '') + 17082 (separator.sticky ? 'y' : ''); 17083 var lastLastIndex = 0; 17084 var splitLimit = limit === undefined ? 4294967295 : limit >>> 0; 17085 // Make `global` and avoid `lastIndex` issues by working with a copy 17086 var separatorCopy = new RegExp(separator.source, flags + 'g'); 17087 var separator2, match, lastIndex, lastLength, i; 17088 // Doesn't need flags gy, but they don't hurt 17089 if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags); 17090 while (match = separatorCopy.exec(string)) { 17091 // `separatorCopy.lastIndex` is not reliable cross-browser 17092 lastIndex = match.index + match[0][LENGTH]; 17093 if (lastIndex > lastLastIndex) { 17094 output.push(string.slice(lastLastIndex, match.index)); 17095 // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG 17096 // eslint-disable-next-line no-loop-func 17097 if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () { 17098 for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined; 17099 }); 17100 if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); 17101 lastLength = match[0][LENGTH]; 17102 lastLastIndex = lastIndex; 17103 if (output[LENGTH] >= splitLimit) break; 17104 } 17105 if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop 17106 } 17107 if (lastLastIndex === string[LENGTH]) { 17108 if (lastLength || !separatorCopy.test('')) output.push(''); 17109 } else output.push(string.slice(lastLastIndex)); 17110 return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; 17111 }; 17112 // Chakra, V8 17113 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { 17114 $split = function (separator, limit) { 17115 return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit); 17116 }; 17117 } 17118 // 21.1.3.17 String.prototype.split(separator, limit) 17119 return [function split(separator, limit) { 17120 var O = defined(this); 17121 var fn = separator == undefined ? undefined : separator[SPLIT]; 17122 return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit); 17123 }, $split]; 17124}); 17125 17126 17127/***/ }), 17128/* 343 */ 17129/***/ (function(module, exports, __webpack_require__) { 17130 17131"use strict"; 17132 17133var LIBRARY = __webpack_require__(44); 17134var global = __webpack_require__(5); 17135var ctx = __webpack_require__(30); 17136var classof = __webpack_require__(73);
vendor: 25,100 bytes, lines 17137-17964
17137var $export = __webpack_require__(0); 17138var isObject = __webpack_require__(7); 17139var aFunction = __webpack_require__(17); 17140var anInstance = __webpack_require__(55); 17141var forOf = __webpack_require__(56); 17142var speciesConstructor = __webpack_require__(91); 17143var task = __webpack_require__(132).set; 17144var microtask = __webpack_require__(133)(); 17145var newPromiseCapabilityModule = __webpack_require__(134); 17146var perform = __webpack_require__(176); 17147var userAgent = __webpack_require__(92); 17148var promiseResolve = __webpack_require__(177); 17149var PROMISE = 'Promise'; 17150var TypeError = global.TypeError; 17151var process = global.process; 17152var versions = process && process.versions; 17153var v8 = versions && versions.v8 || ''; 17154var $Promise = global[PROMISE]; 17155var isNode = classof(process) == 'process'; 17156var empty = function () { /* empty */ }; 17157var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 17158var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 17159 17160var USE_NATIVE = !!function () { 17161 try { 17162 // correct subclassing with @@species support 17163 var promise = $Promise.resolve(1); 17164 var FakePromise = (promise.constructor = {})[__webpack_require__(9)('species')] = function (exec) { 17165 exec(empty, empty); 17166 }; 17167 // unhandled rejections tracking support, NodeJS Promise without it fails @@species test 17168 return (isNode || typeof PromiseRejectionEvent == 'function') 17169 && promise.then(empty) instanceof FakePromise 17170 // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables 17171 // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 17172 // we can't detect it synchronously, so just check versions 17173 && v8.indexOf('6.6') !== 0 17174 && userAgent.indexOf('Chrome/66') === -1; 17175 } catch (e) { /* empty */ } 17176}(); 17177 17178// helpers 17179var isThenable = function (it) { 17180 var then; 17181 return isObject(it) && typeof (then = it.then) == 'function' ? then : false; 17182}; 17183var notify = function (promise, isReject) { 17184 if (promise._n) return; 17185 promise._n = true; 17186 var chain = promise._c; 17187 microtask(function () { 17188 var value = promise._v; 17189 var ok = promise._s == 1; 17190 var i = 0; 17191 var run = function (reaction) { 17192 var handler = ok ? reaction.ok : reaction.fail; 17193 var resolve = reaction.resolve; 17194 var reject = reaction.reject; 17195 var domain = reaction.domain; 17196 var result, then, exited; 17197 try { 17198 if (handler) { 17199 if (!ok) { 17200 if (promise._h == 2) onHandleUnhandled(promise); 17201 promise._h = 1; 17202 } 17203 if (handler === true) result = value; 17204 else { 17205 if (domain) domain.enter(); 17206 result = handler(value); // may throw 17207 if (domain) { 17208 domain.exit(); 17209 exited = true; 17210 } 17211 } 17212 if (result === reaction.promise) { 17213 reject(TypeError('Promise-chain cycle')); 17214 } else if (then = isThenable(result)) { 17215 then.call(result, resolve, reject); 17216 } else resolve(result); 17217 } else reject(value); 17218 } catch (e) { 17219 if (domain && !exited) domain.exit(); 17220 reject(e); 17221 } 17222 }; 17223 while (chain.length > i) run(chain[i++]); // variable length - can't use forEach 17224 promise._c = []; 17225 promise._n = false; 17226 if (isReject && !promise._h) onUnhandled(promise); 17227 }); 17228}; 17229var onUnhandled = function (promise) { 17230 task.call(global, function () { 17231 var value = promise._v; 17232 var unhandled = isUnhandled(promise); 17233 var result, handler, console; 17234 if (unhandled) { 17235 result = perform(function () { 17236 if (isNode) { 17237 process.emit('unhandledRejection', value, promise); 17238 } else if (handler = global.onunhandledrejection) { 17239 handler({ promise: promise, reason: value }); 17240 } else if ((console = global.console) && console.error) { 17241 console.error('Unhandled promise rejection', value); 17242 } 17243 }); 17244 // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should 17245 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 17246 } promise._a = undefined; 17247 if (unhandled && result.e) throw result.v; 17248 }); 17249}; 17250var isUnhandled = function (promise) { 17251 return promise._h !== 1 && (promise._a || promise._c).length === 0; 17252}; 17253var onHandleUnhandled = function (promise) { 17254 task.call(global, function () { 17255 var handler; 17256 if (isNode) { 17257 process.emit('rejectionHandled', promise); 17258 } else if (handler = global.onrejectionhandled) { 17259 handler({ promise: promise, reason: promise._v }); 17260 } 17261 }); 17262}; 17263var $reject = function (value) { 17264 var promise = this; 17265 if (promise._d) return; 17266 promise._d = true; 17267 promise = promise._w || promise; // unwrap 17268 promise._v = value; 17269 promise._s = 2; 17270 if (!promise._a) promise._a = promise._c.slice(); 17271 notify(promise, true); 17272}; 17273var $resolve = function (value) { 17274 var promise = this; 17275 var then; 17276 if (promise._d) return; 17277 promise._d = true; 17278 promise = promise._w || promise; // unwrap 17279 try { 17280 if (promise === value) throw TypeError("Promise can't be resolved itself"); 17281 if (then = isThenable(value)) { 17282 microtask(function () { 17283 var wrapper = { _w: promise, _d: false }; // wrap 17284 try { 17285 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 17286 } catch (e) { 17287 $reject.call(wrapper, e); 17288 } 17289 }); 17290 } else { 17291 promise._v = value; 17292 promise._s = 1; 17293 notify(promise, false); 17294 } 17295 } catch (e) { 17296 $reject.call({ _w: promise, _d: false }, e); // wrap 17297 } 17298}; 17299 17300// constructor polyfill 17301if (!USE_NATIVE) { 17302 // 25.4.3.1 Promise(executor) 17303 $Promise = function Promise(executor) { 17304 anInstance(this, $Promise, PROMISE, '_h'); 17305 aFunction(executor); 17306 Internal.call(this); 17307 try { 17308 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 17309 } catch (err) { 17310 $reject.call(this, err); 17311 } 17312 }; 17313 // eslint-disable-next-line no-unused-vars 17314 Internal = function Promise(executor) { 17315 this._c = []; // <- awaiting reactions 17316 this._a = undefined; // <- checked in isUnhandled reactions 17317 this._s = 0; // <- state 17318 this._d = false; // <- done 17319 this._v = undefined; // <- value 17320 this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled 17321 this._n = false; // <- notify 17322 }; 17323 Internal.prototype = __webpack_require__(54)($Promise.prototype, { 17324 // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) 17325 then: function then(onFulfilled, onRejected) { 17326 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 17327 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 17328 reaction.fail = typeof onRejected == 'function' && onRejected; 17329 reaction.domain = isNode ? process.domain : undefined; 17330 this._c.push(reaction); 17331 if (this._a) this._a.push(reaction); 17332 if (this._s) notify(this, false); 17333 return reaction.promise; 17334 }, 17335 // 25.4.5.1 Promise.prototype.catch(onRejected) 17336 'catch': function (onRejected) { 17337 return this.then(undefined, onRejected); 17338 } 17339 }); 17340 OwnPromiseCapability = function () { 17341 var promise = new Internal(); 17342 this.promise = promise; 17343 this.resolve = ctx($resolve, promise, 1); 17344 this.reject = ctx($reject, promise, 1); 17345 }; 17346 newPromiseCapabilityModule.f = newPromiseCapability = function (C) { 17347 return C === $Promise || C === Wrapper 17348 ? new OwnPromiseCapability(C) 17349 : newGenericPromiseCapability(C); 17350 }; 17351} 17352 17353$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); 17354__webpack_require__(62)($Promise, PROMISE); 17355__webpack_require__(57)(PROMISE); 17356Wrapper = __webpack_require__(18)[PROMISE]; 17357 17358// statics 17359$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 17360 // 25.4.4.5 Promise.reject(r) 17361 reject: function reject(r) { 17362 var capability = newPromiseCapability(this); 17363 var $$reject = capability.reject; 17364 $$reject(r); 17365 return capability.promise; 17366 } 17367}); 17368$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 17369 // 25.4.4.6 Promise.resolve(x) 17370 resolve: function resolve(x) { 17371 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 17372 } 17373}); 17374$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(85)(function (iter) { 17375 $Promise.all(iter)['catch'](empty); 17376})), PROMISE, { 17377 // 25.4.4.1 Promise.all(iterable) 17378 all: function all(iterable) { 17379 var C = this; 17380 var capability = newPromiseCapability(C); 17381 var resolve = capability.resolve; 17382 var reject = capability.reject; 17383 var result = perform(function () { 17384 var values = []; 17385 var index = 0; 17386 var remaining = 1; 17387 forOf(iterable, false, function (promise) { 17388 var $index = index++; 17389 var alreadyCalled = false; 17390 values.push(undefined); 17391 remaining++; 17392 C.resolve(promise).then(function (value) { 17393 if (alreadyCalled) return; 17394 alreadyCalled = true; 17395 values[$index] = value; 17396 --remaining || resolve(values); 17397 }, reject); 17398 }); 17399 --remaining || resolve(values); 17400 }); 17401 if (result.e) reject(result.v); 17402 return capability.promise; 17403 }, 17404 // 25.4.4.4 Promise.race(iterable) 17405 race: function race(iterable) { 17406 var C = this; 17407 var capability = newPromiseCapability(C); 17408 var reject = capability.reject; 17409 var result = perform(function () { 17410 forOf(iterable, false, function (promise) { 17411 C.resolve(promise).then(capability.resolve, reject); 17412 }); 17413 }); 17414 if (result.e) reject(result.v); 17415 return capability.promise; 17416 } 17417}); 17418 17419 17420/***/ }), 17421/* 344 */ 17422/***/ (function(module, exports, __webpack_require__) { 17423 17424"use strict"; 17425 17426var weak = __webpack_require__(179); 17427var validate = __webpack_require__(63); 17428var WEAK_SET = 'WeakSet'; 17429 17430// 23.4 WeakSet Objects 17431__webpack_require__(84)(WEAK_SET, function (get) { 17432 return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 17433}, { 17434 // 23.4.3.1 WeakSet.prototype.add(value) 17435 add: function add(value) { 17436 return weak.def(validate(this, WEAK_SET), value, true); 17437 } 17438}, weak, false, true); 17439 17440 17441/***/ }), 17442/* 345 */ 17443/***/ (function(module, exports, __webpack_require__) { 17444 17445"use strict"; 17446 17447var $export = __webpack_require__(0); 17448var $typed = __webpack_require__(93); 17449var buffer = __webpack_require__(135); 17450var anObject = __webpack_require__(4); 17451var toAbsoluteIndex = __webpack_require__(53); 17452var toLength = __webpack_require__(13); 17453var isObject = __webpack_require__(7); 17454var ArrayBuffer = __webpack_require__(5).ArrayBuffer; 17455var speciesConstructor = __webpack_require__(91); 17456var $ArrayBuffer = buffer.ArrayBuffer; 17457var $DataView = buffer.DataView; 17458var $isView = $typed.ABV && ArrayBuffer.isView; 17459var $slice = $ArrayBuffer.prototype.slice; 17460var VIEW = $typed.VIEW; 17461var ARRAY_BUFFER = 'ArrayBuffer'; 17462 17463$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); 17464 17465$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { 17466 // 24.1.3.1 ArrayBuffer.isView(arg) 17467 isView: function isView(it) { 17468 return $isView && $isView(it) || isObject(it) && VIEW in it; 17469 } 17470}); 17471 17472$export($export.P + $export.U + $export.F * __webpack_require__(6)(function () { 17473 return !new $ArrayBuffer(2).slice(1, undefined).byteLength; 17474}), ARRAY_BUFFER, { 17475 // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) 17476 slice: function slice(start, end) { 17477 if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix 17478 var len = anObject(this).byteLength; 17479 var first = toAbsoluteIndex(start, len); 17480 var fin = toAbsoluteIndex(end === undefined ? len : end, len); 17481 var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); 17482 var viewS = new $DataView(this); 17483 var viewT = new $DataView(result); 17484 var index = 0; 17485 while (first < fin) { 17486 viewT.setUint8(index++, viewS.getUint8(first++)); 17487 } return result; 17488 } 17489}); 17490 17491__webpack_require__(57)(ARRAY_BUFFER); 17492 17493 17494/***/ }), 17495/* 346 */ 17496/***/ (function(module, exports, __webpack_require__) { 17497 17498var $export = __webpack_require__(0); 17499$export($export.G + $export.W + $export.F * !__webpack_require__(93).ABV, { 17500 DataView: __webpack_require__(135).DataView 17501}); 17502 17503 17504/***/ }), 17505/* 347 */ 17506/***/ (function(module, exports, __webpack_require__) { 17507 17508__webpack_require__(41)('Int8', 1, function (init) { 17509 return function Int8Array(data, byteOffset, length) { 17510 return init(this, data, byteOffset, length); 17511 }; 17512}); 17513 17514 17515/***/ }), 17516/* 348 */ 17517/***/ (function(module, exports, __webpack_require__) { 17518 17519__webpack_require__(41)('Uint8', 1, function (init) { 17520 return function Uint8Array(data, byteOffset, length) { 17521 return init(this, data, byteOffset, length); 17522 }; 17523}); 17524 17525 17526/***/ }), 17527/* 349 */ 17528/***/ (function(module, exports, __webpack_require__) { 17529 17530__webpack_require__(41)('Uint8', 1, function (init) { 17531 return function Uint8ClampedArray(data, byteOffset, length) { 17532 return init(this, data, byteOffset, length); 17533 }; 17534}, true); 17535 17536 17537/***/ }), 17538/* 350 */ 17539/***/ (function(module, exports, __webpack_require__) { 17540 17541__webpack_require__(41)('Int16', 2, function (init) { 17542 return function Int16Array(data, byteOffset, length) { 17543 return init(this, data, byteOffset, length); 17544 }; 17545}); 17546 17547 17548/***/ }), 17549/* 351 */ 17550/***/ (function(module, exports, __webpack_require__) { 17551 17552__webpack_require__(41)('Uint16', 2, function (init) { 17553 return function Uint16Array(data, byteOffset, length) { 17554 return init(this, data, byteOffset, length); 17555 }; 17556}); 17557 17558 17559/***/ }), 17560/* 352 */ 17561/***/ (function(module, exports, __webpack_require__) { 17562 17563__webpack_require__(41)('Int32', 4, function (init) { 17564 return function Int32Array(data, byteOffset, length) { 17565 return init(this, data, byteOffset, length); 17566 }; 17567}); 17568 17569 17570/***/ }), 17571/* 353 */ 17572/***/ (function(module, exports, __webpack_require__) { 17573 17574__webpack_require__(41)('Uint32', 4, function (init) { 17575 return function Uint32Array(data, byteOffset, length) { 17576 return init(this, data, byteOffset, length); 17577 }; 17578}); 17579 17580 17581/***/ }), 17582/* 354 */ 17583/***/ (function(module, exports, __webpack_require__) { 17584 17585__webpack_require__(41)('Float32', 4, function (init) { 17586 return function Float32Array(data, byteOffset, length) { 17587 return init(this, data, byteOffset, length); 17588 }; 17589}); 17590 17591 17592/***/ }), 17593/* 355 */ 17594/***/ (function(module, exports, __webpack_require__) { 17595 17596__webpack_require__(41)('Float64', 8, function (init) { 17597 return function Float64Array(data, byteOffset, length) { 17598 return init(this, data, byteOffset, length); 17599 }; 17600}); 17601 17602 17603/***/ }), 17604/* 356 */ 17605/***/ (function(module, exports, __webpack_require__) { 17606 17607// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) 17608var $export = __webpack_require__(0); 17609var aFunction = __webpack_require__(17); 17610var anObject = __webpack_require__(4); 17611var rApply = (__webpack_require__(5).Reflect || {}).apply; 17612var fApply = Function.apply; 17613// MS Edge argumentsList argument is optional 17614$export($export.S + $export.F * !__webpack_require__(6)(function () { 17615 rApply(function () { /* empty */ }); 17616}), 'Reflect', { 17617 apply: function apply(target, thisArgument, argumentsList) { 17618 var T = aFunction(target); 17619 var L = anObject(argumentsList); 17620 return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); 17621 } 17622}); 17623 17624 17625/***/ }), 17626/* 357 */ 17627/***/ (function(module, exports, __webpack_require__) { 17628 17629// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) 17630var $export = __webpack_require__(0); 17631var create = __webpack_require__(51); 17632var aFunction = __webpack_require__(17); 17633var anObject = __webpack_require__(4); 17634var isObject = __webpack_require__(7); 17635var fails = __webpack_require__(6); 17636var bind = __webpack_require__(165); 17637var rConstruct = (__webpack_require__(5).Reflect || {}).construct; 17638 17639// MS Edge supports only 2 arguments and argumentsList argument is optional 17640// FF Nightly sets third argument as `new.target`, but does not create `this` from it 17641var NEW_TARGET_BUG = fails(function () { 17642 function F() { /* empty */ } 17643 return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); 17644}); 17645var ARGS_BUG = !fails(function () { 17646 rConstruct(function () { /* empty */ }); 17647}); 17648 17649$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { 17650 construct: function construct(Target, args /* , newTarget */) { 17651 aFunction(Target); 17652 anObject(args); 17653 var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); 17654 if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); 17655 if (Target == newTarget) { 17656 // w/o altered newTarget, optimization for 0-4 arguments 17657 switch (args.length) { 17658 case 0: return new Target(); 17659 case 1: return new Target(args[0]); 17660 case 2: return new Target(args[0], args[1]); 17661 case 3: return new Target(args[0], args[1], args[2]); 17662 case 4: return new Target(args[0], args[1], args[2], args[3]); 17663 } 17664 // w/o altered newTarget, lot of arguments case 17665 var $args = [null]; 17666 $args.push.apply($args, args); 17667 return new (bind.apply(Target, $args))(); 17668 } 17669 // with altered newTarget, not support built-in constructors 17670 var proto = newTarget.prototype; 17671 var instance = create(isObject(proto) ? proto : Object.prototype); 17672 var result = Function.apply.call(Target, instance, args); 17673 return isObject(result) ? result : instance; 17674 } 17675}); 17676 17677 17678/***/ }), 17679/* 358 */ 17680/***/ (function(module, exports, __webpack_require__) { 17681 17682// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) 17683var dP = __webpack_require__(11); 17684var $export = __webpack_require__(0); 17685var anObject = __webpack_require__(4); 17686var toPrimitive = __webpack_require__(33); 17687 17688// MS Edge has broken Reflect.defineProperty - throwing instead of returning false 17689$export($export.S + $export.F * __webpack_require__(6)(function () { 17690 // eslint-disable-next-line no-undef 17691 Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); 17692}), 'Reflect', { 17693 defineProperty: function defineProperty(target, propertyKey, attributes) { 17694 anObject(target); 17695 propertyKey = toPrimitive(propertyKey, true); 17696 anObject(attributes); 17697 try { 17698 dP.f(target, propertyKey, attributes); 17699 return true; 17700 } catch (e) { 17701 return false; 17702 } 17703 } 17704}); 17705 17706 17707/***/ }), 17708/* 359 */ 17709/***/ (function(module, exports, __webpack_require__) { 17710 17711// 26.1.4 Reflect.deleteProperty(target, propertyKey) 17712var $export = __webpack_require__(0); 17713var gOPD = __webpack_require__(27).f; 17714var anObject = __webpack_require__(4); 17715 17716$export($export.S, 'Reflect', { 17717 deleteProperty: function deleteProperty(target, propertyKey) { 17718 var desc = gOPD(anObject(target), propertyKey); 17719 return desc && !desc.configurable ? false : delete target[propertyKey]; 17720 } 17721}); 17722 17723 17724/***/ }), 17725/* 360 */ 17726/***/ (function(module, exports, __webpack_require__) { 17727 17728"use strict"; 17729 17730// 26.1.5 Reflect.enumerate(target) 17731var $export = __webpack_require__(0); 17732var anObject = __webpack_require__(4); 17733var Enumerate = function (iterated) { 17734 this._t = anObject(iterated); // target 17735 this._i = 0; // next index 17736 var keys = this._k = []; // keys 17737 var key; 17738 for (key in iterated) keys.push(key); 17739}; 17740__webpack_require__(110)(Enumerate, 'Object', function () { 17741 var that = this; 17742 var keys = that._k; 17743 var key; 17744 do { 17745 if (that._i >= keys.length) return { value: undefined, done: true }; 17746 } while (!((key = keys[that._i++]) in that._t)); 17747 return { value: key, done: false }; 17748}); 17749 17750$export($export.S, 'Reflect', { 17751 enumerate: function enumerate(target) { 17752 return new Enumerate(target); 17753 } 17754}); 17755 17756 17757/***/ }), 17758/* 361 */ 17759/***/ (function(module, exports, __webpack_require__) { 17760 17761// 26.1.6 Reflect.get(target, propertyKey [, receiver]) 17762var gOPD = __webpack_require__(27); 17763var getPrototypeOf = __webpack_require__(26); 17764var has = __webpack_require__(24); 17765var $export = __webpack_require__(0); 17766var isObject = __webpack_require__(7); 17767var anObject = __webpack_require__(4); 17768 17769function get(target, propertyKey /* , receiver */) { 17770 var receiver = arguments.length < 3 ? target : arguments[2]; 17771 var desc, proto; 17772 if (anObject(target) === receiver) return target[propertyKey]; 17773 if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') 17774 ? desc.value 17775 : desc.get !== undefined 17776 ? desc.get.call(receiver) 17777 : undefined; 17778 if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); 17779} 17780 17781$export($export.S, 'Reflect', { get: get }); 17782 17783 17784/***/ }), 17785/* 362 */ 17786/***/ (function(module, exports, __webpack_require__) { 17787 17788// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) 17789var gOPD = __webpack_require__(27); 17790var $export = __webpack_require__(0); 17791var anObject = __webpack_require__(4); 17792 17793$export($export.S, 'Reflect', { 17794 getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { 17795 return gOPD.f(anObject(target), propertyKey); 17796 } 17797}); 17798 17799 17800/***/ }), 17801/* 363 */ 17802/***/ (function(module, exports, __webpack_require__) { 17803 17804// 26.1.8 Reflect.getPrototypeOf(target) 17805var $export = __webpack_require__(0); 17806var getProto = __webpack_require__(26); 17807var anObject = __webpack_require__(4); 17808 17809$export($export.S, 'Reflect', { 17810 getPrototypeOf: function getPrototypeOf(target) { 17811 return getProto(anObject(target)); 17812 } 17813}); 17814 17815 17816/***/ }), 17817/* 364 */ 17818/***/ (function(module, exports, __webpack_require__) { 17819 17820// 26.1.9 Reflect.has(target, propertyKey) 17821var $export = __webpack_require__(0); 17822 17823$export($export.S, 'Reflect', { 17824 has: function has(target, propertyKey) { 17825 return propertyKey in target; 17826 } 17827}); 17828 17829 17830/***/ }), 17831/* 365 */ 17832/***/ (function(module, exports, __webpack_require__) { 17833 17834// 26.1.10 Reflect.isExtensible(target) 17835var $export = __webpack_require__(0); 17836var anObject = __webpack_require__(4); 17837var $isExtensible = Object.isExtensible; 17838 17839$export($export.S, 'Reflect', { 17840 isExtensible: function isExtensible(target) { 17841 anObject(target); 17842 return $isExtensible ? $isExtensible(target) : true; 17843 } 17844}); 17845 17846 17847/***/ }), 17848/* 366 */ 17849/***/ (function(module, exports, __webpack_require__) { 17850 17851// 26.1.11 Reflect.ownKeys(target) 17852var $export = __webpack_require__(0); 17853 17854$export($export.S, 'Reflect', { ownKeys: __webpack_require__(181) }); 17855 17856 17857/***/ }), 17858/* 367 */ 17859/***/ (function(module, exports, __webpack_require__) { 17860 17861// 26.1.12 Reflect.preventExtensions(target) 17862var $export = __webpack_require__(0); 17863var anObject = __webpack_require__(4); 17864var $preventExtensions = Object.preventExtensions; 17865 17866$export($export.S, 'Reflect', { 17867 preventExtensions: function preventExtensions(target) { 17868 anObject(target); 17869 try { 17870 if ($preventExtensions) $preventExtensions(target); 17871 return true; 17872 } catch (e) { 17873 return false; 17874 } 17875 } 17876}); 17877 17878 17879/***/ }), 17880/* 368 */ 17881/***/ (function(module, exports, __webpack_require__) { 17882 17883// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) 17884var dP = __webpack_require__(11); 17885var gOPD = __webpack_require__(27); 17886var getPrototypeOf = __webpack_require__(26); 17887var has = __webpack_require__(24); 17888var $export = __webpack_require__(0); 17889var createDesc = __webpack_require__(50); 17890var anObject = __webpack_require__(4); 17891var isObject = __webpack_require__(7); 17892 17893function set(target, propertyKey, V /* , receiver */) { 17894 var receiver = arguments.length < 4 ? target : arguments[3]; 17895 var ownDesc = gOPD.f(anObject(target), propertyKey); 17896 var existingDescriptor, proto; 17897 if (!ownDesc) { 17898 if (isObject(proto = getPrototypeOf(target))) { 17899 return set(proto, propertyKey, V, receiver); 17900 } 17901 ownDesc = createDesc(0); 17902 } 17903 if (has(ownDesc, 'value')) { 17904 if (ownDesc.writable === false || !isObject(receiver)) return false; 17905 if (existingDescriptor = gOPD.f(receiver, propertyKey)) { 17906 if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; 17907 existingDescriptor.value = V; 17908 dP.f(receiver, propertyKey, existingDescriptor); 17909 } else dP.f(receiver, propertyKey, createDesc(0, V)); 17910 return true; 17911 } 17912 return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); 17913} 17914 17915$export($export.S, 'Reflect', { set: set }); 17916 17917 17918/***/ }), 17919/* 369 */ 17920/***/ (function(module, exports, __webpack_require__) { 17921 17922// 26.1.14 Reflect.setPrototypeOf(target, proto) 17923var $export = __webpack_require__(0); 17924var setProto = __webpack_require__(120); 17925 17926if (setProto) $export($export.S, 'Reflect', { 17927 setPrototypeOf: function setPrototypeOf(target, proto) { 17928 setProto.check(target, proto); 17929 try { 17930 setProto.set(target, proto); 17931 return true; 17932 } catch (e) { 17933 return false; 17934 } 17935 } 17936}); 17937 17938 17939/***/ }), 17940/* 370 */ 17941/***/ (function(module, exports, __webpack_require__) { 17942 17943"use strict"; 17944 17945// https://github.com/tc39/Array.prototype.includes 17946var $export = __webpack_require__(0); 17947var $includes = __webpack_require__(83)(true); 17948 17949$export($export.P, 'Array', { 17950 includes: function includes(el /* , fromIndex = 0 */) { 17951 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 17952 } 17953}); 17954 17955__webpack_require__(45)('includes'); 17956 17957 17958/***/ }), 17959/* 371 */ 17960/***/ (function(module, exports, __webpack_require__) { 17961 17962"use strict"; 17963 17964// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
vendor: 9,191 bytes, lines 17965-18309
17965var $export = __webpack_require__(0); 17966var flattenIntoArray = __webpack_require__(182); 17967var toObject = __webpack_require__(15); 17968var toLength = __webpack_require__(13); 17969var aFunction = __webpack_require__(17); 17970var arraySpeciesCreate = __webpack_require__(130); 17971 17972$export($export.P, 'Array', { 17973 flatMap: function flatMap(callbackfn /* , thisArg */) { 17974 var O = toObject(this); 17975 var sourceLen, A; 17976 aFunction(callbackfn); 17977 sourceLen = toLength(O.length); 17978 A = arraySpeciesCreate(O, 0); 17979 flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); 17980 return A; 17981 } 17982}); 17983 17984__webpack_require__(45)('flatMap'); 17985 17986 17987/***/ }), 17988/* 372 */ 17989/***/ (function(module, exports, __webpack_require__) { 17990 17991"use strict"; 17992 17993// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten 17994var $export = __webpack_require__(0); 17995var flattenIntoArray = __webpack_require__(182); 17996var toObject = __webpack_require__(15); 17997var toLength = __webpack_require__(13); 17998var toInteger = __webpack_require__(34); 17999var arraySpeciesCreate = __webpack_require__(130); 18000 18001$export($export.P, 'Array', { 18002 flatten: function flatten(/* depthArg = 1 */) { 18003 var depthArg = arguments[0]; 18004 var O = toObject(this); 18005 var sourceLen = toLength(O.length); 18006 var A = arraySpeciesCreate(O, 0); 18007 flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); 18008 return A; 18009 } 18010}); 18011 18012__webpack_require__(45)('flatten'); 18013 18014 18015/***/ }), 18016/* 373 */ 18017/***/ (function(module, exports, __webpack_require__) { 18018 18019"use strict"; 18020 18021// https://github.com/mathiasbynens/String.prototype.at 18022var $export = __webpack_require__(0); 18023var $at = __webpack_require__(108)(true); 18024 18025$export($export.P, 'String', { 18026 at: function at(pos) { 18027 return $at(this, pos); 18028 } 18029}); 18030 18031 18032/***/ }), 18033/* 374 */ 18034/***/ (function(module, exports, __webpack_require__) { 18035 18036"use strict"; 18037 18038// https://github.com/tc39/proposal-string-pad-start-end 18039var $export = __webpack_require__(0); 18040var $pad = __webpack_require__(183); 18041var userAgent = __webpack_require__(92); 18042 18043// https://github.com/zloirock/core-js/issues/280 18044$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 18045 padStart: function padStart(maxLength /* , fillString = ' ' */) { 18046 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); 18047 } 18048}); 18049 18050 18051/***/ }), 18052/* 375 */ 18053/***/ (function(module, exports, __webpack_require__) { 18054 18055"use strict"; 18056 18057// https://github.com/tc39/proposal-string-pad-start-end 18058var $export = __webpack_require__(0); 18059var $pad = __webpack_require__(183); 18060var userAgent = __webpack_require__(92); 18061 18062// https://github.com/zloirock/core-js/issues/280 18063$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 18064 padEnd: function padEnd(maxLength /* , fillString = ' ' */) { 18065 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); 18066 } 18067}); 18068 18069 18070/***/ }), 18071/* 376 */ 18072/***/ (function(module, exports, __webpack_require__) { 18073 18074"use strict"; 18075 18076// https://github.com/sebmarkbage/ecmascript-string-left-right-trim 18077__webpack_require__(65)('trimLeft', function ($trim) { 18078 return function trimLeft() { 18079 return $trim(this, 1); 18080 }; 18081}, 'trimStart'); 18082 18083 18084/***/ }), 18085/* 377 */ 18086/***/ (function(module, exports, __webpack_require__) { 18087 18088"use strict"; 18089 18090// https://github.com/sebmarkbage/ecmascript-string-left-right-trim 18091__webpack_require__(65)('trimRight', function ($trim) { 18092 return function trimRight() { 18093 return $trim(this, 2); 18094 }; 18095}, 'trimEnd'); 18096 18097 18098/***/ }), 18099/* 378 */ 18100/***/ (function(module, exports, __webpack_require__) { 18101 18102"use strict"; 18103 18104// https://tc39.github.io/String.prototype.matchAll/ 18105var $export = __webpack_require__(0); 18106var defined = __webpack_require__(35); 18107var toLength = __webpack_require__(13); 18108var isRegExp = __webpack_require__(88); 18109var getFlags = __webpack_require__(89); 18110var RegExpProto = RegExp.prototype; 18111 18112var $RegExpStringIterator = function (regexp, string) { 18113 this._r = regexp; 18114 this._s = string; 18115}; 18116 18117__webpack_require__(110)($RegExpStringIterator, 'RegExp String', function next() { 18118 var match = this._r.exec(this._s); 18119 return { value: match, done: match === null }; 18120}); 18121 18122$export($export.P, 'String', { 18123 matchAll: function matchAll(regexp) { 18124 defined(this); 18125 if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); 18126 var S = String(this); 18127 var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); 18128 var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); 18129 rx.lastIndex = toLength(regexp.lastIndex); 18130 return new $RegExpStringIterator(rx, S); 18131 } 18132}); 18133 18134 18135/***/ }), 18136/* 379 */ 18137/***/ (function(module, exports, __webpack_require__) { 18138 18139__webpack_require__(122)('asyncIterator'); 18140 18141 18142/***/ }), 18143/* 380 */ 18144/***/ (function(module, exports, __webpack_require__) { 18145 18146__webpack_require__(122)('observable'); 18147 18148 18149/***/ }), 18150/* 381 */ 18151/***/ (function(module, exports, __webpack_require__) { 18152 18153// https://github.com/tc39/proposal-object-getownpropertydescriptors 18154var $export = __webpack_require__(0); 18155var ownKeys = __webpack_require__(181); 18156var toIObject = __webpack_require__(25); 18157var gOPD = __webpack_require__(27); 18158var createProperty = __webpack_require__(129); 18159 18160$export($export.S, 'Object', { 18161 getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { 18162 var O = toIObject(object); 18163 var getDesc = gOPD.f; 18164 var keys = ownKeys(O); 18165 var result = {}; 18166 var i = 0; 18167 var key, desc; 18168 while (keys.length > i) { 18169 desc = getDesc(O, key = keys[i++]); 18170 if (desc !== undefined) createProperty(result, key, desc); 18171 } 18172 return result; 18173 } 18174}); 18175 18176 18177/***/ }), 18178/* 382 */ 18179/***/ (function(module, exports, __webpack_require__) { 18180 18181// https://github.com/tc39/proposal-object-values-entries 18182var $export = __webpack_require__(0); 18183var $values = __webpack_require__(184)(false); 18184 18185$export($export.S, 'Object', { 18186 values: function values(it) { 18187 return $values(it); 18188 } 18189}); 18190 18191 18192/***/ }), 18193/* 383 */ 18194/***/ (function(module, exports, __webpack_require__) { 18195 18196// https://github.com/tc39/proposal-object-values-entries 18197var $export = __webpack_require__(0); 18198var $entries = __webpack_require__(184)(true); 18199 18200$export($export.S, 'Object', { 18201 entries: function entries(it) { 18202 return $entries(it); 18203 } 18204}); 18205 18206 18207/***/ }), 18208/* 384 */ 18209/***/ (function(module, exports, __webpack_require__) { 18210 18211"use strict"; 18212 18213var $export = __webpack_require__(0); 18214var toObject = __webpack_require__(15); 18215var aFunction = __webpack_require__(17); 18216var $defineProperty = __webpack_require__(11); 18217 18218// B.2.2.2 Object.prototype.__defineGetter__(P, getter) 18219__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', { 18220 __defineGetter__: function __defineGetter__(P, getter) { 18221 $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); 18222 } 18223}); 18224 18225 18226/***/ }), 18227/* 385 */ 18228/***/ (function(module, exports, __webpack_require__) { 18229 18230"use strict"; 18231 18232var $export = __webpack_require__(0); 18233var toObject = __webpack_require__(15); 18234var aFunction = __webpack_require__(17); 18235var $defineProperty = __webpack_require__(11); 18236 18237// B.2.2.3 Object.prototype.__defineSetter__(P, setter) 18238__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', { 18239 __defineSetter__: function __defineSetter__(P, setter) { 18240 $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); 18241 } 18242}); 18243 18244 18245/***/ }), 18246/* 386 */ 18247/***/ (function(module, exports, __webpack_require__) { 18248 18249"use strict"; 18250 18251var $export = __webpack_require__(0); 18252var toObject = __webpack_require__(15); 18253var toPrimitive = __webpack_require__(33); 18254var getPrototypeOf = __webpack_require__(26); 18255var getOwnPropertyDescriptor = __webpack_require__(27).f; 18256 18257// B.2.2.4 Object.prototype.__lookupGetter__(P) 18258__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', { 18259 __lookupGetter__: function __lookupGetter__(P) { 18260 var O = toObject(this); 18261 var K = toPrimitive(P, true); 18262 var D; 18263 do { 18264 if (D = getOwnPropertyDescriptor(O, K)) return D.get; 18265 } while (O = getPrototypeOf(O)); 18266 } 18267}); 18268 18269 18270/***/ }), 18271/* 387 */ 18272/***/ (function(module, exports, __webpack_require__) { 18273 18274"use strict"; 18275 18276var $export = __webpack_require__(0); 18277var toObject = __webpack_require__(15); 18278var toPrimitive = __webpack_require__(33); 18279var getPrototypeOf = __webpack_require__(26); 18280var getOwnPropertyDescriptor = __webpack_require__(27).f; 18281 18282// B.2.2.5 Object.prototype.__lookupSetter__(P) 18283__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', { 18284 __lookupSetter__: function __lookupSetter__(P) { 18285 var O = toObject(this); 18286 var K = toPrimitive(P, true); 18287 var D; 18288 do { 18289 if (D = getOwnPropertyDescriptor(O, K)) return D.set; 18290 } while (O = getPrototypeOf(O)); 18291 } 18292}); 18293 18294 18295/***/ }), 18296/* 388 */ 18297/***/ (function(module, exports, __webpack_require__) { 18298 18299// https://github.com/DavidBruant/Map-Set.prototype.toJSON 18300var $export = __webpack_require__(0); 18301 18302$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(185)('Map') }); 18303 18304 18305/***/ }), 18306/* 389 */ 18307/***/ (function(module, exports, __webpack_require__) { 18308 18309// https://github.com/DavidBruant/Map-Set.prototype.toJSON
18310var $export = __webpack_require__(0); 18311 18312$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(185)('Set') }); 18313 18314 18315/***/ }), 18316/* 390 */ 18317/***/ (function(module, exports, __webpack_require__) { 18318 18319// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of 18320__webpack_require__(95)('Map'); 18321 18322 18323/***/ }), 18324/* 391 */ 18325/***/ (function(module, exports, __webpack_require__) { 18326 18327// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of 18328__webpack_require__(95)('Set'); 18329 18330 18331/***/ }), 18332/* 392 */ 18333/***/ (function(module, exports, __webpack_require__) { 18334 18335// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of 18336__webpack_require__(95)('WeakMap'); 18337 18338 18339/***/ }), 18340/* 393 */ 18341/***/ (function(module, exports, __webpack_require__) { 18342 18343// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of 18344__webpack_require__(95)('WeakSet'); 18345 18346 18347/***/ }), 18348/* 394 */ 18349/***/ (function(module, exports, __webpack_require__) { 18350 18351// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from 18352__webpack_require__(96)('Map'); 18353 18354 18355/***/ }), 18356/* 395 */ 18357/***/ (function(module, exports, __webpack_require__) { 18358 18359// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from 18360__webpack_require__(96)('Set'); 18361 18362
18363/***/ }), 18364/* 396 */ 18365/***/ (function(module, exports, __webpack_require__) { 18366 18367// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from 18368__webpack_require__(96)('WeakMap'); 18369 18370 18371/***/ }), 18372/* 397 */ 18373/***/ (function(module, exports, __webpack_require__) { 18374 18375// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from 18376__webpack_require__(96)('WeakSet'); 18377 18378 18379/***/ }), 18380/* 398 */ 18381/***/ (function(module, exports, __webpack_require__) { 18382 18383// https://github.com/tc39/proposal-global 18384var $export = __webpack_require__(0); 18385 18386$export($export.G, { global: __webpack_require__(5) }); 18387 18388 18389/***/ }), 18390/* 399 */ 18391/***/ (function(module, exports, __webpack_require__) { 18392 18393// https://github.com/tc39/proposal-global 18394var $export = __webpack_require__(0); 18395 18396$export($export.S, 'System', { global: __webpack_require__(5) }); 18397 18398 18399/***/ }), 18400/* 400 */ 18401/***/ (function(module, exports, __webpack_require__) { 18402 18403// https://github.com/ljharb/proposal-is-error 18404var $export = __webpack_require__(0); 18405var cof = __webpack_require__(29); 18406 18407$export($export.S, 'Error', { 18408 isError: function isError(it) { 18409 return cof(it) === 'Error'; 18410 } 18411}); 18412 18413 18414/***/ }), 18415/* 401 */ 18416/***/ (function(module, exports, __webpack_require__) { 18417 18418// https://rwaldron.github.io/proposal-math-extensions/
18419var $export = __webpack_require__(0); 18420 18421$export($export.S, 'Math', { 18422 clamp: function clamp(x, lower, upper) { 18423 return Math.min(upper, Math.max(lower, x)); 18424 } 18425}); 18426 18427 18428/***/ }), 18429/* 402 */ 18430/***/ (function(module, exports, __webpack_require__) { 18431 18432// https://rwaldron.github.io/proposal-math-extensions/ 18433var $export = __webpack_require__(0); 18434 18435$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 }); 18436 18437 18438/***/ }), 18439/* 403 */ 18440/***/ (function(module, exports, __webpack_require__) { 18441 18442// https://rwaldron.github.io/proposal-math-extensions/ 18443var $export = __webpack_require__(0); 18444var RAD_PER_DEG = 180 / Math.PI; 18445 18446$export($export.S, 'Math', { 18447 degrees: function degrees(radians) { 18448 return radians * RAD_PER_DEG; 18449 } 18450}); 18451 18452 18453/***/ }), 18454/* 404 */ 18455/***/ (function(module, exports, __webpack_require__) { 18456 18457// https://rwaldron.github.io/proposal-math-extensions/ 18458var $export = __webpack_require__(0); 18459var scale = __webpack_require__(187); 18460var fround = __webpack_require__(172); 18461 18462$export($export.S, 'Math', { 18463 fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { 18464 return fround(scale(x, inLow, inHigh, outLow, outHigh)); 18465 } 18466}); 18467 18468 18469/***/ }), 18470/* 405 */ 18471/***/ (function(module, exports, __webpack_require__) { 18472 18473// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 18474var $export = __webpack_require__(0); 18475 18476$export($export.S, 'Math', { 18477 iaddh: function iaddh(x0, x1, y0, y1) { 18478 var $x0 = x0 >>> 0; 18479 var $x1 = x1 >>> 0;
vendor: 12,356 bytes, lines 18480-18903
18480 var $y0 = y0 >>> 0; 18481 return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; 18482 } 18483}); 18484 18485 18486/***/ }), 18487/* 406 */ 18488/***/ (function(module, exports, __webpack_require__) { 18489 18490// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 18491var $export = __webpack_require__(0); 18492 18493$export($export.S, 'Math', { 18494 isubh: function isubh(x0, x1, y0, y1) { 18495 var $x0 = x0 >>> 0; 18496 var $x1 = x1 >>> 0; 18497 var $y0 = y0 >>> 0; 18498 return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; 18499 } 18500}); 18501 18502 18503/***/ }), 18504/* 407 */ 18505/***/ (function(module, exports, __webpack_require__) { 18506 18507// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 18508var $export = __webpack_require__(0); 18509 18510$export($export.S, 'Math', { 18511 imulh: function imulh(u, v) { 18512 var UINT16 = 0xffff; 18513 var $u = +u; 18514 var $v = +v; 18515 var u0 = $u & UINT16; 18516 var v0 = $v & UINT16; 18517 var u1 = $u >> 16; 18518 var v1 = $v >> 16; 18519 var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); 18520 return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); 18521 } 18522}); 18523 18524 18525/***/ }), 18526/* 408 */ 18527/***/ (function(module, exports, __webpack_require__) { 18528 18529// https://rwaldron.github.io/proposal-math-extensions/ 18530var $export = __webpack_require__(0); 18531 18532$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI }); 18533 18534 18535/***/ }), 18536/* 409 */ 18537/***/ (function(module, exports, __webpack_require__) { 18538 18539// https://rwaldron.github.io/proposal-math-extensions/ 18540var $export = __webpack_require__(0); 18541var DEG_PER_RAD = Math.PI / 180; 18542 18543$export($export.S, 'Math', { 18544 radians: function radians(degrees) { 18545 return degrees * DEG_PER_RAD; 18546 } 18547}); 18548 18549 18550/***/ }), 18551/* 410 */ 18552/***/ (function(module, exports, __webpack_require__) { 18553 18554// https://rwaldron.github.io/proposal-math-extensions/ 18555var $export = __webpack_require__(0); 18556 18557$export($export.S, 'Math', { scale: __webpack_require__(187) }); 18558 18559 18560/***/ }), 18561/* 411 */ 18562/***/ (function(module, exports, __webpack_require__) { 18563 18564// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 18565var $export = __webpack_require__(0); 18566 18567$export($export.S, 'Math', { 18568 umulh: function umulh(u, v) { 18569 var UINT16 = 0xffff; 18570 var $u = +u; 18571 var $v = +v; 18572 var u0 = $u & UINT16; 18573 var v0 = $v & UINT16; 18574 var u1 = $u >>> 16; 18575 var v1 = $v >>> 16; 18576 var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); 18577 return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); 18578 } 18579}); 18580 18581 18582/***/ }), 18583/* 412 */ 18584/***/ (function(module, exports, __webpack_require__) { 18585 18586// http://jfbastien.github.io/papers/Math.signbit.html 18587var $export = __webpack_require__(0); 18588 18589$export($export.S, 'Math', { signbit: function signbit(x) { 18590 // eslint-disable-next-line no-self-compare 18591 return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; 18592} }); 18593 18594 18595/***/ }), 18596/* 413 */ 18597/***/ (function(module, exports, __webpack_require__) { 18598 18599"use strict"; 18600// https://github.com/tc39/proposal-promise-finally 18601 18602var $export = __webpack_require__(0); 18603var core = __webpack_require__(18); 18604var global = __webpack_require__(5); 18605var speciesConstructor = __webpack_require__(91); 18606var promiseResolve = __webpack_require__(177); 18607 18608$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { 18609 var C = speciesConstructor(this, core.Promise || global.Promise); 18610 var isFunction = typeof onFinally == 'function'; 18611 return this.then( 18612 isFunction ? function (x) { 18613 return promiseResolve(C, onFinally()).then(function () { return x; }); 18614 } : onFinally, 18615 isFunction ? function (e) { 18616 return promiseResolve(C, onFinally()).then(function () { throw e; }); 18617 } : onFinally 18618 ); 18619} }); 18620 18621 18622/***/ }), 18623/* 414 */ 18624/***/ (function(module, exports, __webpack_require__) { 18625 18626"use strict"; 18627 18628// https://github.com/tc39/proposal-promise-try 18629var $export = __webpack_require__(0); 18630var newPromiseCapability = __webpack_require__(134); 18631var perform = __webpack_require__(176); 18632 18633$export($export.S, 'Promise', { 'try': function (callbackfn) { 18634 var promiseCapability = newPromiseCapability.f(this); 18635 var result = perform(callbackfn); 18636 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); 18637 return promiseCapability.promise; 18638} }); 18639 18640 18641/***/ }), 18642/* 415 */ 18643/***/ (function(module, exports, __webpack_require__) { 18644 18645var metadata = __webpack_require__(42); 18646var anObject = __webpack_require__(4); 18647var toMetaKey = metadata.key; 18648var ordinaryDefineOwnMetadata = metadata.set; 18649 18650metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { 18651 ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); 18652} }); 18653 18654 18655/***/ }), 18656/* 416 */ 18657/***/ (function(module, exports, __webpack_require__) { 18658 18659var metadata = __webpack_require__(42); 18660var anObject = __webpack_require__(4); 18661var toMetaKey = metadata.key; 18662var getOrCreateMetadataMap = metadata.map; 18663var store = metadata.store; 18664 18665metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { 18666 var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); 18667 var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); 18668 if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; 18669 if (metadataMap.size) return true; 18670 var targetMetadata = store.get(target); 18671 targetMetadata['delete'](targetKey); 18672 return !!targetMetadata.size || store['delete'](target); 18673} }); 18674 18675 18676/***/ }), 18677/* 417 */ 18678/***/ (function(module, exports, __webpack_require__) { 18679 18680var metadata = __webpack_require__(42); 18681var anObject = __webpack_require__(4); 18682var getPrototypeOf = __webpack_require__(26); 18683var ordinaryHasOwnMetadata = metadata.has; 18684var ordinaryGetOwnMetadata = metadata.get; 18685var toMetaKey = metadata.key; 18686 18687var ordinaryGetMetadata = function (MetadataKey, O, P) { 18688 var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); 18689 if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); 18690 var parent = getPrototypeOf(O); 18691 return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; 18692}; 18693 18694metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { 18695 return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); 18696} }); 18697 18698 18699/***/ }), 18700/* 418 */ 18701/***/ (function(module, exports, __webpack_require__) { 18702 18703var Set = __webpack_require__(121); 18704var from = __webpack_require__(186); 18705var metadata = __webpack_require__(42); 18706var anObject = __webpack_require__(4); 18707var getPrototypeOf = __webpack_require__(26); 18708var ordinaryOwnMetadataKeys = metadata.keys; 18709var toMetaKey = metadata.key; 18710 18711var ordinaryMetadataKeys = function (O, P) { 18712 var oKeys = ordinaryOwnMetadataKeys(O, P); 18713 var parent = getPrototypeOf(O); 18714 if (parent === null) return oKeys; 18715 var pKeys = ordinaryMetadataKeys(parent, P); 18716 return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; 18717}; 18718 18719metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { 18720 return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); 18721} }); 18722 18723 18724/***/ }), 18725/* 419 */ 18726/***/ (function(module, exports, __webpack_require__) { 18727 18728var metadata = __webpack_require__(42); 18729var anObject = __webpack_require__(4); 18730var ordinaryGetOwnMetadata = metadata.get; 18731var toMetaKey = metadata.key; 18732 18733metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { 18734 return ordinaryGetOwnMetadata(metadataKey, anObject(target) 18735 , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); 18736} }); 18737 18738 18739/***/ }), 18740/* 420 */ 18741/***/ (function(module, exports, __webpack_require__) { 18742 18743var metadata = __webpack_require__(42); 18744var anObject = __webpack_require__(4); 18745var ordinaryOwnMetadataKeys = metadata.keys; 18746var toMetaKey = metadata.key; 18747 18748metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { 18749 return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); 18750} }); 18751 18752 18753/***/ }), 18754/* 421 */ 18755/***/ (function(module, exports, __webpack_require__) { 18756 18757var metadata = __webpack_require__(42); 18758var anObject = __webpack_require__(4); 18759var getPrototypeOf = __webpack_require__(26); 18760var ordinaryHasOwnMetadata = metadata.has; 18761var toMetaKey = metadata.key; 18762 18763var ordinaryHasMetadata = function (MetadataKey, O, P) { 18764 var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); 18765 if (hasOwn) return true; 18766 var parent = getPrototypeOf(O); 18767 return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; 18768}; 18769 18770metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { 18771 return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); 18772} }); 18773 18774 18775/***/ }), 18776/* 422 */ 18777/***/ (function(module, exports, __webpack_require__) { 18778 18779var metadata = __webpack_require__(42); 18780var anObject = __webpack_require__(4); 18781var ordinaryHasOwnMetadata = metadata.has; 18782var toMetaKey = metadata.key; 18783 18784metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { 18785 return ordinaryHasOwnMetadata(metadataKey, anObject(target) 18786 , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); 18787} }); 18788 18789 18790/***/ }), 18791/* 423 */ 18792/***/ (function(module, exports, __webpack_require__) { 18793 18794var $metadata = __webpack_require__(42); 18795var anObject = __webpack_require__(4); 18796var aFunction = __webpack_require__(17); 18797var toMetaKey = $metadata.key; 18798var ordinaryDefineOwnMetadata = $metadata.set; 18799 18800$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { 18801 return function decorator(target, targetKey) { 18802 ordinaryDefineOwnMetadata( 18803 metadataKey, metadataValue, 18804 (targetKey !== undefined ? anObject : aFunction)(target), 18805 toMetaKey(targetKey) 18806 ); 18807 }; 18808} }); 18809 18810 18811/***/ }), 18812/* 424 */ 18813/***/ (function(module, exports, __webpack_require__) { 18814 18815// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask 18816var $export = __webpack_require__(0); 18817var microtask = __webpack_require__(133)(); 18818var process = __webpack_require__(5).process; 18819var isNode = __webpack_require__(29)(process) == 'process'; 18820 18821$export($export.G, { 18822 asap: function asap(fn) { 18823 var domain = isNode && process.domain; 18824 microtask(domain ? domain.bind(fn) : fn); 18825 } 18826}); 18827 18828 18829/***/ }), 18830/* 425 */ 18831/***/ (function(module, exports, __webpack_require__) { 18832 18833"use strict"; 18834 18835// https://github.com/zenparsing/es-observable 18836var $export = __webpack_require__(0); 18837var global = __webpack_require__(5); 18838var core = __webpack_require__(18); 18839var microtask = __webpack_require__(133)(); 18840var OBSERVABLE = __webpack_require__(9)('observable'); 18841var aFunction = __webpack_require__(17); 18842var anObject = __webpack_require__(4); 18843var anInstance = __webpack_require__(55); 18844var redefineAll = __webpack_require__(54); 18845var hide = __webpack_require__(20); 18846var forOf = __webpack_require__(56); 18847var RETURN = forOf.RETURN; 18848 18849var getMethod = function (fn) { 18850 return fn == null ? undefined : aFunction(fn); 18851}; 18852 18853var cleanupSubscription = function (subscription) { 18854 var cleanup = subscription._c; 18855 if (cleanup) { 18856 subscription._c = undefined; 18857 cleanup(); 18858 } 18859}; 18860 18861var subscriptionClosed = function (subscription) { 18862 return subscription._o === undefined; 18863}; 18864 18865var closeSubscription = function (subscription) { 18866 if (!subscriptionClosed(subscription)) { 18867 subscription._o = undefined; 18868 cleanupSubscription(subscription); 18869 } 18870}; 18871 18872var Subscription = function (observer, subscriber) { 18873 anObject(observer); 18874 this._c = undefined; 18875 this._o = observer; 18876 observer = new SubscriptionObserver(this); 18877 try { 18878 var cleanup = subscriber(observer); 18879 var subscription = cleanup; 18880 if (cleanup != null) { 18881 if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); }; 18882 else aFunction(cleanup); 18883 this._c = cleanup; 18884 } 18885 } catch (e) { 18886 observer.error(e); 18887 return; 18888 } if (subscriptionClosed(this)) cleanupSubscription(this); 18889}; 18890 18891Subscription.prototype = redefineAll({}, { 18892 unsubscribe: function unsubscribe() { closeSubscription(this); } 18893}); 18894 18895var SubscriptionObserver = function (subscription) { 18896 this._s = subscription; 18897}; 18898 18899SubscriptionObserver.prototype = redefineAll({}, { 18900 next: function next(value) { 18901 var subscription = this._s; 18902 if (!subscriptionClosed(subscription)) { 18903 var observer = subscription._o;
vendor: 4,445 bytes, lines 18904-19064
18904 try { 18905 var m = getMethod(observer.next); 18906 if (m) return m.call(observer, value); 18907 } catch (e) { 18908 try { 18909 closeSubscription(subscription); 18910 } finally { 18911 throw e; 18912 } 18913 } 18914 } 18915 }, 18916 error: function error(value) { 18917 var subscription = this._s; 18918 if (subscriptionClosed(subscription)) throw value; 18919 var observer = subscription._o; 18920 subscription._o = undefined; 18921 try { 18922 var m = getMethod(observer.error); 18923 if (!m) throw value; 18924 value = m.call(observer, value); 18925 } catch (e) { 18926 try { 18927 cleanupSubscription(subscription); 18928 } finally { 18929 throw e; 18930 } 18931 } cleanupSubscription(subscription); 18932 return value; 18933 }, 18934 complete: function complete(value) { 18935 var subscription = this._s; 18936 if (!subscriptionClosed(subscription)) { 18937 var observer = subscription._o; 18938 subscription._o = undefined; 18939 try { 18940 var m = getMethod(observer.complete); 18941 value = m ? m.call(observer, value) : undefined; 18942 } catch (e) { 18943 try { 18944 cleanupSubscription(subscription); 18945 } finally { 18946 throw e; 18947 } 18948 } cleanupSubscription(subscription); 18949 return value; 18950 } 18951 } 18952}); 18953 18954var $Observable = function Observable(subscriber) { 18955 anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); 18956}; 18957 18958redefineAll($Observable.prototype, { 18959 subscribe: function subscribe(observer) { 18960 return new Subscription(observer, this._f); 18961 }, 18962 forEach: function forEach(fn) { 18963 var that = this; 18964 return new (core.Promise || global.Promise)(function (resolve, reject) { 18965 aFunction(fn); 18966 var subscription = that.subscribe({ 18967 next: function (value) { 18968 try { 18969 return fn(value); 18970 } catch (e) { 18971 reject(e); 18972 subscription.unsubscribe(); 18973 } 18974 }, 18975 error: reject, 18976 complete: resolve 18977 }); 18978 }); 18979 } 18980}); 18981 18982redefineAll($Observable, { 18983 from: function from(x) { 18984 var C = typeof this === 'function' ? this : $Observable; 18985 var method = getMethod(anObject(x)[OBSERVABLE]); 18986 if (method) { 18987 var observable = anObject(method.call(x)); 18988 return observable.constructor === C ? observable : new C(function (observer) { 18989 return observable.subscribe(observer); 18990 }); 18991 } 18992 return new C(function (observer) { 18993 var done = false; 18994 microtask(function () { 18995 if (!done) { 18996 try { 18997 if (forOf(x, false, function (it) { 18998 observer.next(it); 18999 if (done) return RETURN; 19000 }) === RETURN) return; 19001 } catch (e) { 19002 if (done) throw e; 19003 observer.error(e); 19004 return; 19005 } observer.complete(); 19006 } 19007 }); 19008 return function () { done = true; }; 19009 }); 19010 }, 19011 of: function of() { 19012 for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++]; 19013 return new (typeof this === 'function' ? this : $Observable)(function (observer) { 19014 var done = false; 19015 microtask(function () { 19016 if (!done) { 19017 for (var j = 0; j < items.length; ++j) { 19018 observer.next(items[j]); 19019 if (done) return; 19020 } observer.complete(); 19021 } 19022 }); 19023 return function () { done = true; }; 19024 }); 19025 } 19026}); 19027 19028hide($Observable.prototype, OBSERVABLE, function () { return this; }); 19029 19030$export($export.G, { Observable: $Observable }); 19031 19032__webpack_require__(57)('Observable'); 19033 19034 19035/***/ }), 19036/* 426 */ 19037/***/ (function(module, exports, __webpack_require__) { 19038 19039// ie9- setTimeout & setInterval additional parameters fix 19040var global = __webpack_require__(5); 19041var $export = __webpack_require__(0); 19042var userAgent = __webpack_require__(92); 19043var slice = [].slice; 19044var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check 19045var wrap = function (set) { 19046 return function (fn, time /* , ...args */) { 19047 var boundArgs = arguments.length > 2; 19048 var args = boundArgs ? slice.call(arguments, 2) : false; 19049 return set(boundArgs ? function () { 19050 // eslint-disable-next-line no-new-func 19051 (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); 19052 } : fn, time); 19053 }; 19054}; 19055$export($export.G + $export.B + $export.F * MSIE, { 19056 setTimeout: wrap(global.setTimeout), 19057 setInterval: wrap(global.setInterval) 19058}); 19059 19060 19061/***/ }), 19062/* 427 */ 19063/***/ (function(module, exports, __webpack_require__) { 19064
19065var $export = __webpack_require__(0); 19066var $task = __webpack_require__(132); 19067$export($export.G + $export.B, { 19068 setImmediate: $task.set, 19069 clearImmediate: $task.clear 19070}); 19071 19072 19073/***/ }), 19074/* 428
vendor: 13,739 bytes, lines 19074-19428
19074 */ 19075/***/ (function(module, exports, __webpack_require__) { 19076 19077/* WEBPACK VAR INJECTION */(function(global) {/** 19078 * Copyright (c) 2014, Facebook, Inc. 19079 * All rights reserved. 19080 * 19081 * This source code is licensed under the BSD-style license found in the 19082 * https://raw.github.com/facebook/regenerator/master/LICENSE file. An 19083 * additional grant of patent rights can be found in the PATENTS file in 19084 * the same directory. 19085 */ 19086 19087!(function(global) { 19088 "use strict"; 19089 19090 var Op = Object.prototype; 19091 var hasOwn = Op.hasOwnProperty; 19092 var undefined; // More compressible than void 0. 19093 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 19094 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 19095 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 19096 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 19097 19098 var inModule = typeof module === "object"; 19099 var runtime = global.regeneratorRuntime; 19100 if (runtime) { 19101 if (inModule) { 19102 // If regeneratorRuntime is defined globally and we're in a module, 19103 // make the exports object identical to regeneratorRuntime. 19104 module.exports = runtime; 19105 } 19106 // Don't bother evaluating the rest of this file if the runtime was 19107 // already defined globally. 19108 return; 19109 } 19110 19111 // Define the runtime globally (as expected by generated code) as either 19112 // module.exports (if we're in a module) or a new, empty object. 19113 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 19114 19115 function wrap(innerFn, outerFn, self, tryLocsList) { 19116 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. 19117 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 19118 var generator = Object.create(protoGenerator.prototype); 19119 var context = new Context(tryLocsList || []); 19120 19121 // The ._invoke method unifies the implementations of the .next, 19122 // .throw, and .return methods. 19123 generator._invoke = makeInvokeMethod(innerFn, self, context); 19124 19125 return generator; 19126 } 19127 runtime.wrap = wrap; 19128 19129 // Try/catch helper to minimize deoptimizations. Returns a completion 19130 // record like context.tryEntries[i].completion. This interface could 19131 // have been (and was previously) designed to take a closure to be 19132 // invoked without arguments, but in all the cases we care about we 19133 // already have an existing method we want to call, so there's no need 19134 // to create a new function object. We can even get away with assuming 19135 // the method takes exactly one argument, since that happens to be true 19136 // in every case, so we don't have to touch the arguments object. The 19137 // only additional allocation required is the completion record, which 19138 // has a stable shape and so hopefully should be cheap to allocate. 19139 function tryCatch(fn, obj, arg) { 19140 try { 19141 return { type: "normal", arg: fn.call(obj, arg) }; 19142 } catch (err) { 19143 return { type: "throw", arg: err }; 19144 } 19145 } 19146 19147 var GenStateSuspendedStart = "suspendedStart"; 19148 var GenStateSuspendedYield = "suspendedYield"; 19149 var GenStateExecuting = "executing"; 19150 var GenStateCompleted = "completed"; 19151 19152 // Returning this object from the innerFn has the same effect as 19153 // breaking out of the dispatch switch statement. 19154 var ContinueSentinel = {}; 19155 19156 // Dummy constructor functions that we use as the .constructor and 19157 // .constructor.prototype properties for functions that return Generator 19158 // objects. For full spec compliance, you may wish to configure your 19159 // minifier not to mangle the names of these two functions. 19160 function Generator() {} 19161 function GeneratorFunction() {} 19162 function GeneratorFunctionPrototype() {} 19163 19164 // This is a polyfill for %IteratorPrototype% for environments that 19165 // don't natively support it. 19166 var IteratorPrototype = {}; 19167 IteratorPrototype[iteratorSymbol] = function () { 19168 return this; 19169 }; 19170 19171 var getProto = Object.getPrototypeOf; 19172 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 19173 if (NativeIteratorPrototype && 19174 NativeIteratorPrototype !== Op && 19175 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 19176 // This environment has a native %IteratorPrototype%; use it instead 19177 // of the polyfill. 19178 IteratorPrototype = NativeIteratorPrototype; 19179 } 19180 19181 var Gp = GeneratorFunctionPrototype.prototype = 19182 Generator.prototype = Object.create(IteratorPrototype); 19183 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 19184 GeneratorFunctionPrototype.constructor = GeneratorFunction; 19185 GeneratorFunctionPrototype[toStringTagSymbol] = 19186 GeneratorFunction.displayName = "GeneratorFunction"; 19187 19188 // Helper for defining the .next, .throw, and .return methods of the 19189 // Iterator interface in terms of a single ._invoke method. 19190 function defineIteratorMethods(prototype) { 19191 ["next", "throw", "return"].forEach(function(method) { 19192 prototype[method] = function(arg) { 19193 return this._invoke(method, arg); 19194 }; 19195 }); 19196 } 19197 19198 runtime.isGeneratorFunction = function(genFun) { 19199 var ctor = typeof genFun === "function" && genFun.constructor; 19200 return ctor 19201 ? ctor === GeneratorFunction || 19202 // For the native GeneratorFunction constructor, the best we can 19203 // do is to check its .name property. 19204 (ctor.displayName || ctor.name) === "GeneratorFunction" 19205 : false; 19206 }; 19207 19208 runtime.mark = function(genFun) { 19209 if (Object.setPrototypeOf) { 19210 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 19211 } else { 19212 genFun.__proto__ = GeneratorFunctionPrototype; 19213 if (!(toStringTagSymbol in genFun)) { 19214 genFun[toStringTagSymbol] = "GeneratorFunction"; 19215 } 19216 } 19217 genFun.prototype = Object.create(Gp); 19218 return genFun; 19219 }; 19220 19221 // Within the body of any async function, `await x` is transformed to 19222 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test 19223 // `hasOwn.call(value, "__await")` to determine if the yielded value is 19224 // meant to be awaited. 19225 runtime.awrap = function(arg) { 19226 return { __await: arg }; 19227 }; 19228 19229 function AsyncIterator(generator) { 19230 function invoke(method, arg, resolve, reject) { 19231 var record = tryCatch(generator[method], generator, arg); 19232 if (record.type === "throw") { 19233 reject(record.arg); 19234 } else { 19235 var result = record.arg; 19236 var value = result.value; 19237 if (value && 19238 typeof value === "object" && 19239 hasOwn.call(value, "__await")) { 19240 return Promise.resolve(value.__await).then(function(value) { 19241 invoke("next", value, resolve, reject); 19242 }, function(err) { 19243 invoke("throw", err, resolve, reject); 19244 }); 19245 } 19246 19247 return Promise.resolve(value).then(function(unwrapped) { 19248 // When a yielded Promise is resolved, its final value becomes 19249 // the .value of the Promise<{value,done}> result for the 19250 // current iteration. If the Promise is rejected, however, the 19251 // result for this iteration will be rejected with the same 19252 // reason. Note that rejections of yielded Promises are not 19253 // thrown back into the generator function, as is the case 19254 // when an awaited Promise is rejected. This difference in 19255 // behavior between yield and await is important, because it 19256 // allows the consumer to decide what to do with the yielded 19257 // rejection (swallow it and continue, manually .throw it back 19258 // into the generator, abandon iteration, whatever). With 19259 // await, by contrast, there is no opportunity to examine the 19260 // rejection reason outside the generator function, so the 19261 // only option is to throw it from the await expression, and 19262 // let the generator function handle the exception. 19263 result.value = unwrapped; 19264 resolve(result); 19265 }, reject); 19266 } 19267 } 19268 19269 if (typeof global.process === "object" && global.process.domain) { 19270 invoke = global.process.domain.bind(invoke); 19271 } 19272 19273 var previousPromise; 19274 19275 function enqueue(method, arg) { 19276 function callInvokeWithMethodAndArg() { 19277 return new Promise(function(resolve, reject) { 19278 invoke(method, arg, resolve, reject); 19279 }); 19280 } 19281 19282 return previousPromise = 19283 // If enqueue has been called before, then we want to wait until 19284 // all previous Promises have been resolved before calling invoke, 19285 // so that results are always delivered in the correct order. If 19286 // enqueue has not been called before, then it is important to 19287 // call invoke immediately, without waiting on a callback to fire, 19288 // so that the async generator function has the opportunity to do 19289 // any necessary setup in a predictable way. This predictability 19290 // is why the Promise constructor synchronously invokes its 19291 // executor callback, and why async functions synchronously 19292 // execute code before the first await. Since we implement simple 19293 // async functions in terms of async generators, it is especially 19294 // important to get this right, even though it requires care. 19295 previousPromise ? previousPromise.then( 19296 callInvokeWithMethodAndArg, 19297 // Avoid propagating failures to Promises returned by later 19298 // invocations of the iterator. 19299 callInvokeWithMethodAndArg 19300 ) : callInvokeWithMethodAndArg(); 19301 } 19302 19303 // Define the unified helper method that is used to implement .next, 19304 // .throw, and .return (see defineIteratorMethods). 19305 this._invoke = enqueue; 19306 } 19307 19308 defineIteratorMethods(AsyncIterator.prototype); 19309 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 19310 return this; 19311 }; 19312 runtime.AsyncIterator = AsyncIterator; 19313 19314 // Note that simple async functions are implemented on top of 19315 // AsyncIterator objects; they just return a Promise for the value of 19316 // the final result produced by the iterator. 19317 runtime.async = function(innerFn, outerFn, self, tryLocsList) { 19318 var iter = new AsyncIterator( 19319 wrap(innerFn, outerFn, self, tryLocsList) 19320 ); 19321 19322 return runtime.isGeneratorFunction(outerFn) 19323 ? iter // If outerFn is a generator, return the full iterator. 19324 : iter.next().then(function(result) { 19325 return result.done ? result.value : iter.next(); 19326 }); 19327 }; 19328 19329 function makeInvokeMethod(innerFn, self, context) { 19330 var state = GenStateSuspendedStart; 19331 19332 return function invoke(method, arg) { 19333 if (state === GenStateExecuting) { 19334 throw new Error("Generator is already running"); 19335 } 19336 19337 if (state === GenStateCompleted) { 19338 if (method === "throw") { 19339 throw arg; 19340 } 19341 19342 // Be forgiving, per 25.3.3.3.3 of the spec: 19343 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume 19344 return doneResult(); 19345 } 19346 19347 context.method = method; 19348 context.arg = arg; 19349 19350 while (true) { 19351 var delegate = context.delegate; 19352 if (delegate) { 19353 var delegateResult = maybeInvokeDelegate(delegate, context); 19354 if (delegateResult) { 19355 if (delegateResult === ContinueSentinel) continue; 19356 return delegateResult; 19357 } 19358 } 19359 19360 if (context.method === "next") { 19361 // Setting context._sent for legacy support of Babel's 19362 // function.sent implementation. 19363 context.sent = context._sent = context.arg; 19364 19365 } else if (context.method === "throw") { 19366 if (state === GenStateSuspendedStart) { 19367 state = GenStateCompleted; 19368 throw context.arg; 19369 } 19370 19371 context.dispatchException(context.arg); 19372 19373 } else if (context.method === "return") { 19374 context.abrupt("return", context.arg); 19375 } 19376 19377 state = GenStateExecuting; 19378 19379 var record = tryCatch(innerFn, self, context); 19380 if (record.type === "normal") { 19381 // If an exception is thrown from innerFn, we leave state === 19382 // GenStateExecuting and loop back for another invocation. 19383 state = context.done 19384 ? GenStateCompleted 19385 : GenStateSuspendedYield; 19386 19387 if (record.arg === ContinueSentinel) { 19388 continue; 19389 } 19390 19391 return { 19392 value: record.arg, 19393 done: context.done 19394 }; 19395 19396 } else if (record.type === "throw") { 19397 state = GenStateCompleted; 19398 // Dispatch the exception by looping back around to the 19399 // context.dispatchException(context.arg) call above. 19400 context.method = "throw"; 19401 context.arg = record.arg; 19402 } 19403 } 19404 }; 19405 } 19406 19407 // Call delegate.iterator[context.method](context.arg) and handle the 19408 // result, either by returning a { value, done } result from the 19409 // delegate iterator, or by modifying context.method and context.arg, 19410 // setting context.delegate to null, and returning the ContinueSentinel. 19411 function maybeInvokeDelegate(delegate, context) { 19412 var method = delegate.iterator[context.method]; 19413 if (method === undefined) { 19414 // A .throw or .return when the delegate iterator has no .throw 19415 // method always terminates the yield* loop. 19416 context.delegate = null; 19417 19418 if (context.method === "throw") { 19419 if (delegate.iterator.return) { 19420 // If the delegate iterator has a return method, give it a 19421 // chance to clean up. 19422 context.method = "return"; 19423 context.arg = undefined; 19424 maybeInvokeDelegate(delegate, context); 19425 19426 if (context.method === "throw") { 19427 // If maybeInvokeDelegate(context) changed context.method from 19428 // "return" to "throw", let that override the TypeError below.
vendor: 10,473 bytes, lines 19429-19806
19429 return ContinueSentinel; 19430 } 19431 } 19432 19433 context.method = "throw"; 19434 context.arg = new TypeError( 19435 "The iterator does not provide a 'throw' method"); 19436 } 19437 19438 return ContinueSentinel; 19439 } 19440 19441 var record = tryCatch(method, delegate.iterator, context.arg); 19442 19443 if (record.type === "throw") { 19444 context.method = "throw"; 19445 context.arg = record.arg; 19446 context.delegate = null; 19447 return ContinueSentinel; 19448 } 19449 19450 var info = record.arg; 19451 19452 if (! info) { 19453 context.method = "throw"; 19454 context.arg = new TypeError("iterator result is not an object"); 19455 context.delegate = null; 19456 return ContinueSentinel; 19457 } 19458 19459 if (info.done) { 19460 // Assign the result of the finished delegate to the temporary 19461 // variable specified by delegate.resultName (see delegateYield). 19462 context[delegate.resultName] = info.value; 19463 19464 // Resume execution at the desired location (see delegateYield). 19465 context.next = delegate.nextLoc; 19466 19467 // If context.method was "throw" but the delegate handled the 19468 // exception, let the outer generator proceed normally. If 19469 // context.method was "next", forget context.arg since it has been 19470 // "consumed" by the delegate iterator. If context.method was 19471 // "return", allow the original .return call to continue in the 19472 // outer generator. 19473 if (context.method !== "return") { 19474 context.method = "next"; 19475 context.arg = undefined; 19476 } 19477 19478 } else { 19479 // Re-yield the result returned by the delegate method. 19480 return info; 19481 } 19482 19483 // The delegate iterator is finished, so forget it and continue with 19484 // the outer generator. 19485 context.delegate = null; 19486 return ContinueSentinel; 19487 } 19488 19489 // Define Generator.prototype.{next,throw,return} in terms of the 19490 // unified ._invoke helper method. 19491 defineIteratorMethods(Gp); 19492 19493 Gp[toStringTagSymbol] = "Generator"; 19494 19495 // A Generator should always return itself as the iterator object when the 19496 // @@iterator function is called on it. Some browsers' implementations of the 19497 // iterator prototype chain incorrectly implement this, causing the Generator 19498 // object to not be returned from this call. This ensures that doesn't happen. 19499 // See https://github.com/facebook/regenerator/issues/274 for more details. 19500 Gp[iteratorSymbol] = function() { 19501 return this; 19502 }; 19503 19504 Gp.toString = function() { 19505 return "[object Generator]"; 19506 }; 19507 19508 function pushTryEntry(locs) { 19509 var entry = { tryLoc: locs[0] }; 19510 19511 if (1 in locs) { 19512 entry.catchLoc = locs[1]; 19513 } 19514 19515 if (2 in locs) { 19516 entry.finallyLoc = locs[2]; 19517 entry.afterLoc = locs[3]; 19518 } 19519 19520 this.tryEntries.push(entry); 19521 } 19522 19523 function resetTryEntry(entry) { 19524 var record = entry.completion || {}; 19525 record.type = "normal"; 19526 delete record.arg; 19527 entry.completion = record; 19528 } 19529 19530 function Context(tryLocsList) { 19531 // The root entry object (effectively a try statement without a catch 19532 // or a finally block) gives us a place to store values thrown from 19533 // locations where there is no enclosing try statement. 19534 this.tryEntries = [{ tryLoc: "root" }]; 19535 tryLocsList.forEach(pushTryEntry, this); 19536 this.reset(true); 19537 } 19538 19539 runtime.keys = function(object) { 19540 var keys = []; 19541 for (var key in object) { 19542 keys.push(key); 19543 } 19544 keys.reverse(); 19545 19546 // Rather than returning an object with a next method, we keep 19547 // things simple and return the next function itself. 19548 return function next() { 19549 while (keys.length) { 19550 var key = keys.pop(); 19551 if (key in object) { 19552 next.value = key; 19553 next.done = false; 19554 return next; 19555 } 19556 } 19557 19558 // To avoid creating an additional object, we just hang the .value 19559 // and .done properties off the next function object itself. This 19560 // also ensures that the minifier will not anonymize the function. 19561 next.done = true; 19562 return next; 19563 }; 19564 }; 19565 19566 function values(iterable) { 19567 if (iterable) { 19568 var iteratorMethod = iterable[iteratorSymbol]; 19569 if (iteratorMethod) { 19570 return iteratorMethod.call(iterable); 19571 } 19572 19573 if (typeof iterable.next === "function") { 19574 return iterable; 19575 } 19576 19577 if (!isNaN(iterable.length)) { 19578 var i = -1, next = function next() { 19579 while (++i < iterable.length) { 19580 if (hasOwn.call(iterable, i)) { 19581 next.value = iterable[i]; 19582 next.done = false; 19583 return next; 19584 } 19585 } 19586 19587 next.value = undefined; 19588 next.done = true; 19589 19590 return next; 19591 }; 19592 19593 return next.next = next; 19594 } 19595 } 19596 19597 // Return an iterator with no values. 19598 return { next: doneResult }; 19599 } 19600 runtime.values = values; 19601 19602 function doneResult() { 19603 return { value: undefined, done: true }; 19604 } 19605 19606 Context.prototype = { 19607 constructor: Context, 19608 19609 reset: function(skipTempReset) { 19610 this.prev = 0; 19611 this.next = 0; 19612 // Resetting context._sent for legacy support of Babel's 19613 // function.sent implementation. 19614 this.sent = this._sent = undefined; 19615 this.done = false; 19616 this.delegate = null; 19617 19618 this.method = "next"; 19619 this.arg = undefined; 19620 19621 this.tryEntries.forEach(resetTryEntry); 19622 19623 if (!skipTempReset) { 19624 for (var name in this) { 19625 // Not sure about the optimal order of these conditions: 19626 if (name.charAt(0) === "t" && 19627 hasOwn.call(this, name) && 19628 !isNaN(+name.slice(1))) { 19629 this[name] = undefined; 19630 } 19631 } 19632 } 19633 }, 19634 19635 stop: function() { 19636 this.done = true; 19637 19638 var rootEntry = this.tryEntries[0]; 19639 var rootRecord = rootEntry.completion; 19640 if (rootRecord.type === "throw") { 19641 throw rootRecord.arg; 19642 } 19643 19644 return this.rval; 19645 }, 19646 19647 dispatchException: function(exception) { 19648 if (this.done) { 19649 throw exception; 19650 } 19651 19652 var context = this; 19653 function handle(loc, caught) { 19654 record.type = "throw"; 19655 record.arg = exception; 19656 context.next = loc; 19657 19658 if (caught) { 19659 // If the dispatched exception was caught by a catch block, 19660 // then let that catch block handle the exception normally. 19661 context.method = "next"; 19662 context.arg = undefined; 19663 } 19664 19665 return !! caught; 19666 } 19667 19668 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 19669 var entry = this.tryEntries[i]; 19670 var record = entry.completion; 19671 19672 if (entry.tryLoc === "root") { 19673 // Exception thrown outside of any try block that could handle 19674 // it, so set the completion value of the entire function to 19675 // throw the exception. 19676 return handle("end"); 19677 } 19678 19679 if (entry.tryLoc <= this.prev) { 19680 var hasCatch = hasOwn.call(entry, "catchLoc"); 19681 var hasFinally = hasOwn.call(entry, "finallyLoc"); 19682 19683 if (hasCatch && hasFinally) { 19684 if (this.prev < entry.catchLoc) { 19685 return handle(entry.catchLoc, true); 19686 } else if (this.prev < entry.finallyLoc) { 19687 return handle(entry.finallyLoc); 19688 } 19689 19690 } else if (hasCatch) { 19691 if (this.prev < entry.catchLoc) { 19692 return handle(entry.catchLoc, true); 19693 } 19694 19695 } else if (hasFinally) { 19696 if (this.prev < entry.finallyLoc) { 19697 return handle(entry.finallyLoc); 19698 } 19699 19700 } else { 19701 throw new Error("try statement without catch or finally"); 19702 } 19703 } 19704 } 19705 }, 19706 19707 abrupt: function(type, arg) { 19708 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 19709 var entry = this.tryEntries[i]; 19710 if (entry.tryLoc <= this.prev && 19711 hasOwn.call(entry, "finallyLoc") && 19712 this.prev < entry.finallyLoc) { 19713 var finallyEntry = entry; 19714 break; 19715 } 19716 } 19717 19718 if (finallyEntry && 19719 (type === "break" || 19720 type === "continue") && 19721 finallyEntry.tryLoc <= arg && 19722 arg <= finallyEntry.finallyLoc) { 19723 // Ignore the finally entry if control is not jumping to a 19724 // location outside the try/catch block. 19725 finallyEntry = null; 19726 } 19727 19728 var record = finallyEntry ? finallyEntry.completion : {}; 19729 record.type = type; 19730 record.arg = arg; 19731 19732 if (finallyEntry) { 19733 this.method = "next"; 19734 this.next = finallyEntry.finallyLoc; 19735 return ContinueSentinel; 19736 } 19737 19738 return this.complete(record); 19739 }, 19740 19741 complete: function(record, afterLoc) { 19742 if (record.type === "throw") { 19743 throw record.arg; 19744 } 19745 19746 if (record.type === "break" || 19747 record.type === "continue") { 19748 this.next = record.arg; 19749 } else if (record.type === "return") { 19750 this.rval = this.arg = record.arg; 19751 this.method = "return"; 19752 this.next = "end"; 19753 } else if (record.type === "normal" && afterLoc) { 19754 this.next = afterLoc; 19755 } 19756 19757 return ContinueSentinel; 19758 }, 19759 19760 finish: function(finallyLoc) { 19761 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 19762 var entry = this.tryEntries[i]; 19763 if (entry.finallyLoc === finallyLoc) { 19764 this.complete(entry.completion, entry.afterLoc); 19765 resetTryEntry(entry); 19766 return ContinueSentinel; 19767 } 19768 } 19769 }, 19770 19771 "catch": function(tryLoc) { 19772 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 19773 var entry = this.tryEntries[i]; 19774 if (entry.tryLoc === tryLoc) { 19775 var record = entry.completion; 19776 if (record.type === "throw") { 19777 var thrown = record.arg; 19778 resetTryEntry(entry); 19779 } 19780 return thrown; 19781 } 19782 } 19783 19784 // The context.catch method must only be called with a location 19785 // argument that corresponds to a known catch block. 19786 throw new Error("illegal catch attempt"); 19787 }, 19788 19789 delegateYield: function(iterable, resultName, nextLoc) { 19790 this.delegate = { 19791 iterator: values(iterable), 19792 resultName: resultName, 19793 nextLoc: nextLoc 19794 }; 19795 19796 if (this.method === "next") { 19797 // Deliberately forget the last sent value so that we don't 19798 // accidentally pass it on to the delegate. 19799 this.arg = undefined; 19800 } 19801 19802 return ContinueSentinel; 19803 } 19804 }; 19805})( 19806 //
19806Among the various tricks for obtaining a reference to the global 19807 // object, this seems to be the most reliable technique that does not 19808 // use indirect eval (which violates Content Security Policy). 19809 typeof global === "object" ? global : 19810 typeof window === "object" ? window : 19811 typeof self === "object" ? self : this 19812); 19813 19814/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64))) 19815 19816/***/ }), 19817/* 429 */ 19818/***/ (function(module, exports, __webpack_require__) { 19819 19820__webpack_require__(430); 19821module.exports = __webpack_require__(18).RegExp.escape; 19822 19823 19824/***/ }), 19825/* 430 */ 19826/***/ (function(module, exports, __webpack_require__) { 19827 19828// https://github.com/benjamingr/RexExp.escape 19829var $export = __webpack_require__(0); 19830var $re = __webpack_require__(431)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); 19831 19832$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } }); 19833 19834 19835/***/ }), 19836/* 431 */ 19837/***/ (function(module, exports) { 19838 19839module.exports = function (regExp, replace) { 19840 var replacer = replace === Object(replace) ? function (part) { 19841 return replace[part]; 19842 } : replace; 19843 return function (it) { 19844 return String(it).replace(regExp, replacer); 19845 }; 19846}; 19847 19848 19849/***/ }), 19850/* 432 */ 19851/***/ (function(module, exports, __webpack_require__) { 19852 19853"use strict"; 19854 19855 19856if (window.NodeList && !NodeList.prototype.forEach) { 19857 NodeList.prototype.forEach = Array.prototype.forEach; 19858} 19859 19860// ========= 19861 19862var isIE = navigator.userAgent.indexOf("MSIE") != -1 || /Trident.*rv[ :]*11\./.test(navigator.userAgent); 19863 19864if (isIE) { 19865 var j = document.createElement('script'); 19866 j.src = "https://cdnjs.cloudflare.com/ajax/libs/flexibility/2.0.1/flexibility.js"; 19867 j.onload = function () { 19868 document.querySelectorAll('.cpcLayout').forEach(function (element) { 19869 element.setAttribute('data-style', 'display: flex;'); 19870 }); 19871 19872 flexibility(document.documentElement); 19873 }; 19874 document.getElementsByTagName('head')[0].appendChild(j); 19875} 19876 19877// ======= 19878 19879/** 19880 * Add dataset support to elements 19881 * No globals, no overriding prototype with non-standard methods, 19882 * handles CamelCase properly, attempts to use standard 19883 * Object.defineProperty() (and Function bind()) methods, 19884 * falls back to native implementation when existing 19885 * Inspired by http://code.eligrey.com/html5/dataset/ 19886 * (via https://github.com/adalgiso/html5-dataset/blob/master/html5-dataset.js ) 19887 * Depends on Function.bind and Object.defineProperty/Object.getOwnPropertyDescriptor (polyfills below) 19888 * All code below is Licensed under the X11/MIT License 19889*/ 19890 19891// Inspired by https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility 19892if (!Function.prototype.bind) { 19893 Function.prototype.bind = function (oThis) { 19894 'use strict'; 19895 19896 if (typeof this !== "function") { 19897 // closest thing possible to the ECMAScript 5 internal IsCallable function 19898 throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); 19899 } 19900 19901 var aArgs = Array.prototype.slice.call(arguments, 1), 19902 fToBind = this, 19903 FNOP = function FNOP() {}, 19904 fBound = function fBound() { 19905 return fToBind.apply(this instanceof FNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments))); 19906 }; 19907 19908 FNOP.prototype = this.prototype; 19909 fBound.prototype = new FNOP(); 19910 19911 return fBound; 19912 }; 19913} 19914 19915/* 19916 * Xccessors Standard: Cross-browser ECMAScript 5 accessors 19917 * http://purl.eligrey.com/github/Xccessors 19918 * 19919 * 2010-06-21 19920 * 19921 * By Eli Grey, http://eligrey.com 19922 * 19923 * A shim that partially implements Object.defineProperty, 19924 * Object.getOwnPropertyDescriptor, and Object.defineProperties in browsers that have 19925 * legacy __(define|lookup)[GS]etter__ support. 19926 * 19927 * Licensed under the X11/MIT License 19928 * See LICENSE.md 19929*/ 19930 19931// Removed a few JSLint options as Notepad++ JSLint validator complaining and 19932// made comply with JSLint; also moved 'use strict' inside function 19933/*jslint white: true, undef: true, plusplus: true, 19934 bitwise: true, regexp: true, newcap: true, maxlen: 90 */ 19935 19936/*! @source http://purl.eligrey.com/github/Xccessors/blob/master/xccessors-standard.js*/ 19937 19938(function () { 19939 'use strict'; 19940 19941 var ObjectProto = Object.prototype, 19942 defineGetter = ObjectProto.__defineGetter__, 19943 defineSetter = ObjectProto.__defineSetter__, 19944 lookupGetter = ObjectProto.__lookupGetter__, 19945 lookupSetter = ObjectProto.__lookupSetter__, 19946 hasOwnProp = ObjectProto.hasOwnProperty; 19947 19948 if (defineGetter && defineSetter && lookupGetter && lookupSetter) { 19949 19950 if (!Object.defineProperty) { 19951 Object.defineProperty = function (obj, prop, descriptor) { 19952 if (arguments.length < 3) { 19953 // all arguments required 19954 throw new TypeError("Arguments not optional"); 19955 } 19956 19957 prop += ""; // convert prop to string 19958 19959 if (hasOwnProp.call(descriptor, "value")) { 19960 if (!lookupGetter.call(obj, prop) && !lookupSetter.call(obj, prop)) { 19961 // data property defined and no pre-existing accessors 19962 obj[prop] = descriptor.value; 19963 } 19964 19965 if (hasOwnProp.call(descriptor, "get") || hasOwnProp.call(descriptor, "set")) { 19966 // descriptor has a value prop but accessor already exists 19967 throw new TypeError("Cannot specify an accessor and a value"); 19968 } 19969 } 19970 19971 // can't switch off these features in ECMAScript 3 19972 // so throw a TypeError if any are false 19973 if (!(descriptor.writable && descriptor.enumerable && descriptor.configurable)) { 19974 throw new TypeError("This implementation of Object.defineProperty does not support" + " false for configurable, enumerable, or writable."); 19975 } 19976 19977 if (descriptor.get) { 19978 defineGetter.call(obj, prop, descriptor.get); 19979 } 19980 if (descriptor.set) { 19981 defineSetter.call(obj, prop, descriptor.set); 19982 } 19983 19984 return obj; 19985 }; 19986 } 19987 19988 if (!Object.getOwnPropertyDescriptor) { 19989 Object.getOwnPropertyDescriptor = function (obj, prop) { 19990 if (arguments.length < 2) { 19991 // all arguments required 19992 throw new TypeError("Arguments not optional."); 19993 } 19994 19995 prop += ""; // convert prop to string 19996 19997 var descriptor = { 19998 configurable: true, 19999 enumerable: true, 20000 writable: true 20001 }, 20002 getter = lookupGetter.call(obj, prop), 20003 setter = lookupSetter.call(obj, prop); 20004 20005 if (!hasOwnProp.call(obj, prop)) { 20006 // property doesn't exist or is inherited 20007 return descriptor; 20008 } 20009 if (!getter && !setter) { 20010 // not an accessor so return prop 20011 descriptor.value = obj[prop]; 20012 return descriptor; 20013 } 20014 20015 // there is an accessor, remove descriptor.writable; 20016 // populate descriptor.get and descriptor.set (IE's behavior) 20017 delete descriptor.writable; 20018 descriptor.get = descriptor.set = undefined; 20019 20020 if (getter) { 20021 descriptor.get = getter; 20022 } 20023 if (setter) { 20024 descriptor.set = setter; 20025 } 20026 20027 return descriptor; 20028 }; 20029 } 20030 20031 if (!Object.defineProperties) { 20032 Object.defineProperties = function (obj, props) { 20033 var prop; 20034 for (prop in props) {
20035 if (hasOwnProp.call(props, prop)) { 20036 Object.defineProperty(obj, prop, props[prop]); 20037 } 20038 } 20039 }; 20040 } 20041 } 20042})(); 20043 20044// Begin dataset code 20045 20046if (!document.documentElement.dataset && ( 20047// FF is empty while IE gives empty object 20048!Object.getOwnPropertyDescriptor(Element.prototype, 'dataset') || !Object.getOwnPropertyDescriptor(Element.prototype, 'dataset').get)) { 20049 var propDescriptor = { 20050 enumerable: true, 20051 get: function get() { 20052 'use strict'; 20053 20054 var i, 20055 that = this, 20056 HTML5_DOMStringMap, 20057 attrVal, 20058 attrName, 20059 propName, 20060 attribute, 20061 attributes = this.attributes, 20062 attsLength = attributes.length, 20063 toUpperCase = function toUpperCase(n0) { 20064 return n0.charAt(1).toUpperCase(); 20065 }, 20066 getter = function getter() { 20067 return this; 20068 }, 20069 setter = function setter(attrName, value) { 20070 return typeof value !== 'undefined' ? this.setAttribute(attrName, value) : this.removeAttribute(attrName); 20071 }; 20072 try { 20073 // Simulate DOMStringMap w/accessor support 20074 // Test setting accessor on normal object 20075 ({}).__defineGetter__('test', function () {}); 20076 HTML5_DOMStringMap = {}; 20077 } catch (e1) { 20078 // Use a DOM object for IE8 20079 HTML5_DOMStringMap = document.createElement('div'); 20080 } 20081 for (i = 0; i < attsLength; i++) { 20082 attribute = attributes[i]; 20083 // Fix: This test really should allow any XML Name without 20084 // colons (and non-uppercase for XHTML) 20085 if (attribute && attribute.name && /^data-\w[\w\-]*$/.test(attribute.name)) { 20086 attrVal = attribute.value; 20087 attrName = attribute.name; 20088 // Change to CamelCase 20089 propName = attrName.substr(5).replace(/-./g, toUpperCase); 20090 try { 20091 Object.defineProperty(HTML5_DOMStringMap, propName, { 20092 enumerable: this.enumerable, 20093 get: getter.bind(attrVal || ''), 20094 set: setter.bind(that, attrName) 20095 }); 20096 } catch (e2) { 20097 // if accessors are not working 20098 HTML5_DOMStringMap[propName] = attrVal; 20099 } 20100 } 20101 } 20102 return HTML5_DOMStringMap; 20103 } 20104 }; 20105 try { 20106 // FF enumerates over element's dataset, but not 20107 // Element.prototype.dataset; IE9 iterates over both 20108 Object.defineProperty(Element.prototype, 'dataset', propDescriptor); 20109 } catch (e) { 20110 propDescriptor.enumerable = false; // IE8 does not allow setting to true 20111 Object.defineProperty(Element.prototype, 'dataset', propDescriptor); 20112 } 20113} 20114 20115/***/ }), 20116/* 433 */ 20117/***/ (function(module, exports, __webpack_require__) { 20118 20119"use strict"; 20120/** 20121 * Copyright (c) 2013-present, Facebook, Inc. 20122 * 20123 * This source code is licensed under the MIT license found in the 20124 * LICENSE file in the root directory of this source tree. 20125 * 20126 */ 20127 20128 20129 20130var PooledClass = __webpack_require__(434); 20131var ReactElement = __webpack_require__(59); 20132 20133var emptyFunction = __webpack_require__(38); 20134var traverseAllChildren = __webpack_require__(435); 20135 20136var twoArgumentPooler = PooledClass.twoArgumentPooler; 20137var fourArgumentPooler = PooledClass.fourArgumentPooler; 20138 20139var userProvidedKeyEscapeRegex = /\/+/g; 20140function escapeUserProvidedKey(text) { 20141 return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); 20142} 20143 20144/** 20145 * PooledClass representing the bookkeeping associated with performing a child 20146 * traversal. Allows avoiding binding callbacks. 20147 * 20148 * @constructor ForEachBookKeeping 20149 * @param {!function} forEachFunction Function to perform traversal with. 20150 * @param {?*} forEachContext Context to perform context with. 20151 */
20152function ForEachBookKeeping(forEachFunction, forEachContext) { 20153 this.func = forEachFunction; 20154 this.context = forEachContext; 20155 this.count = 0; 20156} 20157ForEachBookKeeping.prototype.destructor = function () { 20158 this.func = null; 20159 this.context = null; 20160 this.count = 0; 20161}; 20162PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); 20163 20164function forEachSingleChild(bookKeeping, child, name) { 20165 var func = bookKeeping.func, 20166 context = bookKeeping.context; 20167 20168 func.call(context, child, bookKeeping.count++); 20169} 20170 20171/** 20172 * Iterates through children that are typically specified as `props.children`. 20173 * 20174 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach 20175 * 20176 * The provided forEachFunc(child, index) will be called for each 20177 * leaf child. 20178 * 20179 * @param {?*} children Children tree container. 20180 * @param {function(*, int)} forEachFunc 20181 * @param {*} forEachContext Context for forEachContext. 20182 */ 20183function forEachChildren(children, forEachFunc, forEachContext) { 20184 if (children == null) { 20185 return children; 20186 } 20187 var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); 20188 traverseAllChildren(children, forEachSingleChild, traverseContext); 20189 ForEachBookKeeping.release(traverseContext); 20190} 20191 20192/** 20193 * PooledClass representing the bookkeeping associated with performing a child 20194 * mapping. Allows avoiding binding callbacks. 20195 * 20196 * @constructor MapBookKeeping 20197 * @param {!*} mapResult Object containing the ordered map of results. 20198 * @param {!function} mapFunction Function to perform mapping with. 20199 * @param {?*} mapContext Context to perform mapping with. 20200 */ 20201function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { 20202 this.result = mapResult; 20203 this.keyPrefix = keyPrefix; 20204 this.func = mapFunction; 20205 this.context = mapContext; 20206 this.count = 0; 20207} 20208MapBookKeeping.prototype.destructor = function () { 20209 this.result = null; 20210 this.keyPrefix = null; 20211 this.func = null; 20212 this.context = null; 20213 this.count = 0; 20214}; 20215PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); 20216 20217function mapSingleChildIntoContext(bookKeeping, child, childKey) { 20218 var result = bookKeeping.result, 20219 keyPrefix = bookKeeping.keyPrefix, 20220 func = bookKeeping.func, 20221 context = bookKeeping.context; 20222 20223 20224 var mappedChild = func.call(context, child, bookKeeping.count++); 20225 if (Array.isArray(mappedChild)) { 20226 mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); 20227 } else if (mappedChild != null) { 20228 if (ReactElement.isValidElement(mappedChild)) { 20229 mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, 20230 // Keep both the (mapped) and old keys if they differ, just as 20231 // traverseAllChildren used to do for objects as children 20232 keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey); 20233 } 20234 result.push(mappedChild); 20235 } 20236} 20237 20238function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { 20239 var escapedPrefix = ''; 20240 if (prefix != null) { 20241 escapedPrefix = escapeUserProvidedKey(prefix) + '/'; 20242 } 20243 var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); 20244 traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); 20245 MapBookKeeping.release(traverseContext); 20246} 20247 20248/** 20249 * Maps children that are typically specified as `props.children`. 20250 * 20251 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map 20252 * 20253 * The provided mapFunction(child, key, index) will be called for each 20254 * leaf child. 20255 * 20256 * @param {?*} children Children tree container. 20257 * @param {function(*, int)} func The map function. 20258 * @param {*} context Context for mapFunction. 20259 * @return {object} Object containing the ordered map of results. 20260 */ 20261function mapChildren(children, func, context) { 20262 if (children == null) { 20263 return children; 20264 } 20265 var result = []; 20266 mapIntoWithKeyPrefixInternal(children, result, null, func, context); 20267 return result; 20268} 20269 20270function forEachSingleChildDummy(traverseContext, child, name) { 20271 return null; 20272} 20273 20274/** 20275 * Count the number of children that are typically specified as 20276 * `props.children`. 20277 * 20278 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count 20279 * 20280 * @param {?*} children Children tree container. 20281 * @return {number} The number of children. 20282 */ 20283function countChildren(children, context) {
20284 return traverseAllChildren(children, forEachSingleChildDummy, null); 20285} 20286 20287/** 20288 * Flatten a children object (typically specified as `props.children`) and 20289 * return an array with appropriately re-keyed children. 20290 * 20291 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray 20292 */ 20293function toArray(children) { 20294 var result = []; 20295 mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); 20296 return result; 20297} 20298 20299var ReactChildren = { 20300 forEach: forEachChildren, 20301 map: mapChildren, 20302 mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, 20303 count: countChildren, 20304 toArray: toArray 20305}; 20306 20307module.exports = ReactChildren; 20308 20309/***/ }), 20310/* 434 */ 20311/***/ (function(module, exports, __webpack_require__) { 20312 20313"use strict"; 20314/* WEBPACK VAR INJECTION */(function(process) {/** 20315 * Copyright (c) 2013-present, Facebook, Inc. 20316 * 20317 * This source code is licensed under the MIT license found in the 20318 * LICENSE file in the root directory of this source tree. 20319 * 20320 * 20321 */ 20322 20323 20324 20325var _prodInvariant = __webpack_require__(67); 20326 20327var invariant = __webpack_require__(2); 20328 20329/** 20330 * Static poolers. Several custom versions for each potential number of 20331 * arguments. A completely generic pooler is easy to implement, but would 20332 * require accessing the `arguments` object. In each of these, `this` refers to 20333 * the Class itself, not an instance. If any others are needed, simply add them
20334 * here, or in their own files. 20335 */ 20336var oneArgumentPooler = function (copyFieldsFrom) { 20337 var Klass = this; 20338 if (Klass.instancePool.length) { 20339 var instance = Klass.instancePool.pop(); 20340 Klass.call(instance, copyFieldsFrom); 20341 return instance; 20342 } else { 20343 return new Klass(copyFieldsFrom); 20344 } 20345}; 20346 20347var twoArgumentPooler = function (a1, a2) { 20348 var Klass = this; 20349 if (Klass.instancePool.length) { 20350 var instance = Klass.instancePool.pop(); 20351 Klass.call(instance, a1, a2); 20352 return instance; 20353 } else { 20354 return new Klass(a1, a2); 20355 } 20356}; 20357 20358var threeArgumentPooler = function (a1, a2, a3) { 20359 var Klass = this; 20360 if (Klass.instancePool.length) { 20361 var instance = Klass.instancePool.pop(); 20362 Klass.call(instance, a1, a2, a3); 20363 return instance; 20364 } else { 20365 return new Klass(a1, a2, a3); 20366 } 20367}; 20368 20369var fourArgumentPooler = function (a1, a2, a3, a4) { 20370 var Klass = this; 20371 if (Klass.instancePool.length) { 20372 var instance = Klass.instancePool.pop(); 20373 Klass.call(instance, a1, a2, a3, a4); 20374 return instance; 20375 } else { 20376 return new Klass(a1, a2, a3, a4); 20377 } 20378}; 20379 20380var standardReleaser = function (instance) { 20381 var Klass = this; 20382 !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; 20383 instance.destructor(); 20384 if (Klass.instancePool.length < Klass.poolSize) { 20385 Klass.instancePool.push(instance); 20386 } 20387}; 20388 20389var DEFAULT_POOL_SIZE = 10; 20390var DEFAULT_POOLER = oneArgumentPooler; 20391 20392/** 20393 * Augments `CopyConstructor` to be a poolable class, augmenting only the class 20394 * itself (statically) not adding any prototypical fields. Any CopyConstructor 20395 * you give this may have a `poolSize` property, and will look for a 20396 * prototypical `destructor` on instances. 20397 * 20398 * @param {Function} CopyConstructor Constructor that can be used to reset. 20399 * @param {Function} pooler Customizable pooler. 20400 */ 20401var addPoolingTo = function (CopyConstructor, pooler) { 20402 // Casting as any so that flow ignores the actual implementation and trusts 20403 // it to match the type we declared 20404 var NewKlass = CopyConstructor; 20405 NewKlass.instancePool = []; 20406 NewKlass.getPooled = pooler || DEFAULT_POOLER; 20407 if (!NewKlass.poolSize) { 20408 NewKlass.poolSize = DEFAULT_POOL_SIZE; 20409 } 20410 NewKlass.release = standardReleaser; 20411 return NewKlass; 20412}; 20413 20414var PooledClass = { 20415 addPoolingTo: addPoolingTo, 20416 oneArgumentPooler: oneArgumentPooler, 20417 twoArgumentPooler: twoArgumentPooler, 20418 threeArgumentPooler: threeArgumentPooler, 20419 fourArgumentPooler: fourArgumentPooler 20420}; 20421 20422module.exports = PooledClass; 20423/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 20424 20425/***/ }), 20426/* 435 */ 20427/***/ (function(module, exports, __webpack_require__) { 20428 20429"use strict"; 20430/* WEBPACK VAR INJECTION */(function(process) {/** 20431 * Copyright (c) 2013-present, Facebook, Inc. 20432 * 20433 * This source code is licensed under the MIT license found in the 20434 * LICENSE file in the root directory of this source tree. 20435 * 20436 */ 20437 20438 20439 20440var _prodInvariant = __webpack_require__(67); 20441 20442var ReactCurrentOwner = __webpack_require__(39); 20443var REACT_ELEMENT_TYPE = __webpack_require__(190); 20444 20445var getIteratorFn = __webpack_require__(191); 20446var invariant = __webpack_require__(2); 20447var KeyEscapeUtils = __webpack_require__(436); 20448var warning = __webpack_require__(3); 20449 20450var SEPARATOR = '.'; 20451var SUBSEPARATOR = ':'; 20452 20453/** 20454 * This is inlined from ReactElement since this file is shared between 20455 * isomorphic and renderers. We could extract this to a 20456 * 20457 */ 20458 20459/** 20460 * TODO: Test that a single child and an array with one item have the same key 20461 * pattern. 20462 */ 20463 20464var didWarnAboutMaps = false; 20465 20466/** 20467 * Generate a key string that identifies a component within a set. 20468 * 20469 * @param {*} component A component that could contain a manual key. 20470 * @param {number} index Index that is used if a manual key is not provided. 20471 * @return {string} 20472 */ 20473function getComponentKey(component, index) { 20474 // Do some typechecking here since we call this blindly. We want to ensure 20475 // that we don't block potential future ES APIs. 20476 if (component && typeof component === 'object' && component.key != null) { 20477 // Explicit key 20478 return KeyEscapeUtils.escape(component.key); 20479 } 20480 // Implicit key determined by the index in the set 20481 return index.toString(36); 20482} 20483 20484/** 20485 * @param {?*} children Children tree container. 20486 * @param {!string} nameSoFar Name of the key path so far. 20487 * @param {!function} callback Callback to invoke with each child found. 20488 * @param {?*} traverseContext Used to pass information throughout the traversal 20489 * process. 20490 * @return {!number} The number of children in this subtree. 20491 */ 20492function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { 20493 var type = typeof children; 20494 20495 if (type === 'undefined' || type === 'boolean') { 20496 // All of the above are perceived as null. 20497 children = null; 20498 } 20499 20500 if (children === null || type === 'string' || type === 'number' || 20501 // The following is inlined from ReactElement. This means we can optimize 20502 // some checks. React Fiber also inlines this logic for similar purposes. 20503 type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { 20504 callback(traverseContext, children, 20505 // If it's the only child, treat the name as if it was wrapped in an array 20506 // so that it's consistent if the number of children grows. 20507 nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); 20508 return 1; 20509 } 20510 20511 var child; 20512 var nextName;
20513 var subtreeCount = 0; // Count of children found in the current subtree. 20514 var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; 20515 20516 if (Array.isArray(children)) { 20517 for (var i = 0; i < children.length; i++) { 20518 child = children[i]; 20519 nextName = nextNamePrefix + getComponentKey(child, i); 20520 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 20521 } 20522 } else { 20523 var iteratorFn = getIteratorFn(children); 20524 if (iteratorFn) { 20525 var iterator = iteratorFn.call(children); 20526 var step; 20527 if (iteratorFn !== children.entries) { 20528 var ii = 0; 20529 while (!(step = iterator.next()).done) { 20530 child = step.value; 20531 nextName = nextNamePrefix + getComponentKey(child, ii++); 20532 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 20533 } 20534 } else { 20535 if (process.env.NODE_ENV !== 'production') { 20536 var mapsAsChildrenAddendum = ''; 20537 if (ReactCurrentOwner.current) { 20538 var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); 20539 if (mapsAsChildrenOwnerName) { 20540 mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; 20541 } 20542 } 20543 process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; 20544 didWarnAboutMaps = true; 20545 } 20546 // Iterator will provide entry [k,v] tuples rather than values. 20547 while (!(step = iterator.next()).done) { 20548 var entry = step.value; 20549 if (entry) { 20550 child = entry[1]; 20551 nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); 20552 subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); 20553 } 20554 } 20555 } 20556 } else if (type === 'object') { 20557 var addendum = ''; 20558 if (process.env.NODE_ENV !== 'production') { 20559 addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; 20560 if (children._isReactElement) { 20561 addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.'; 20562 } 20563 if (ReactCurrentOwner.current) { 20564 var name = ReactCurrentOwner.current.getName(); 20565 if (name) { 20566 addendum += ' Check the render method of `' + name + '`.'; 20567 } 20568 } 20569 } 20570 var childrenString = String(children); 20571 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; 20572 } 20573 } 20574 20575 return subtreeCount; 20576} 20577 20578/** 20579 * Traverses children that are typically specified as `props.children`, but 20580 * might also be specified through attributes: 20581 * 20582 * - `traverseAllChildren(this.props.children, ...)` 20583 * - `traverseAllChildren(this.props.leftPanelChildren, ...)` 20584 * 20585 * The `traverseContext` is an optional argument that is passed through the 20586 * entire traversal. It can be used to store accumulations or anything else that 20587 * the callback might find relevant. 20588 * 20589 * @param {?*} children Children tree object. 20590 * @param {!function} callback To invoke upon traversing each child. 20591 * @param {?*} traverseContext Context for traversal. 20592 * @return {!number} The number of children in this subtree. 20593 */ 20594function traverseAllChildren(children, callback, traverseContext) { 20595 if (children == null) { 20596 return 0; 20597 } 20598 20599 return traverseAllChildrenImpl(children, '', callback, traverseContext); 20600} 20601 20602module.exports = traverseAllChildren; 20603/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 20604 20605/***/ }), 20606/* 436 */ 20607/***/ (function(module, exports, __webpack_require__) { 20608 20609"use strict"; 20610/** 20611 * Copyright (c) 2013-present, Facebook, Inc. 20612 * 20613 * This source code is licensed under the MIT license found in the 20614 * LICENSE file in the root directory of this source tree. 20615 * 20616 * 20617 */ 20618 20619 20620 20621/** 20622 * Escape and wrap key so it is safe to use as a reactid 20623 * 20624 * @param {string} key to be escaped. 20625 * @return {string} the escaped key. 20626 */ 20627 20628function escape(key) { 20629 var escapeRegex = /[=:]/g; 20630 var escaperLookup = { 20631 '=': '=0', 20632 ':': '=2' 20633 }; 20634 var escapedString = ('' + key).replace(escapeRegex, function (match) { 20635 return escaperLookup[match]; 20636 }); 20637 20638 return '$' + escapedString; 20639} 20640 20641/** 20642 * Unescape and unwrap key for human-readable display 20643 * 20644 * @param {string} key to unescape. 20645 * @return {string} the unescaped key. 20646 */ 20647function unescape(key) { 20648 var unescapeRegex = /(=0|=2)/g; 20649 var unescaperLookup = { 20650 '=0': '=', 20651 '=2': ':' 20652 }; 20653 var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); 20654 20655 return ('' + keySubstring).replace(unescapeRegex, function (match) { 20656 return unescaperLookup[match]; 20657 }); 20658} 20659 20660var KeyEscapeUtils = { 20661 escape: escape, 20662 unescape: unescape 20663}; 20664 20665module.exports = KeyEscapeUtils; 20666 20667/***/ }), 20668/* 437 */ 20669/***/ (function(module, exports, __webpack_require__) { 20670 20671"use strict"; 20672/* WEBPACK VAR INJECTION */(function(process) {/** 20673 * Copyright (c) 2013-present, Facebook, Inc. 20674 * 20675 * This source code is licensed under the MIT license found in the 20676 * LICENSE file in the root directory of this source tree. 20677 * 20678 */ 20679 20680 20681 20682var ReactElement = __webpack_require__(59); 20683 20684/** 20685 * Create a factory that creates HTML tag elements. 20686 * 20687 * @private 20688 */ 20689var createDOMFactory = ReactElement.createFactory; 20690if (process.env.NODE_ENV !== 'production') { 20691 var ReactElementValidator = __webpack_require__(192); 20692 createDOMFactory = ReactElementValidator.createFactory; 20693} 20694 20695/** 20696 * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. 20697 * 20698 * @public 20699 */ 20700var ReactDOMFactories = { 20701 a: createDOMFactory('a'), 20702 abbr: createDOMFactory('abbr'), 20703 address: createDOMFactory('address'), 20704 area: createDOMFactory('area'), 20705 article: createDOMFactory('article'), 20706 aside: createDOMFactory('aside'), 20707 audio: createDOMFactory('audio'), 20708 b: createDOMFactory('b'), 20709 base: createDOMFactory('base'), 20710 bdi: createDOMFactory('bdi'),
20711 bdo: createDOMFactory('bdo'), 20712 big: createDOMFactory('big'), 20713 blockquote: createDOMFactory('blockquote'), 20714 body: createDOMFactory('body'), 20715 br: createDOMFactory('br'), 20716 button: createDOMFactory('button'), 20717 canvas: createDOMFactory('canvas'), 20718 caption: createDOMFactory('caption'), 20719 cite: createDOMFactory('cite'), 20720 code: createDOMFactory('code'), 20721 col: createDOMFactory('col'), 20722 colgroup: createDOMFactory('colgroup'), 20723 data: createDOMFactory('data'), 20724 datalist: createDOMFactory('datalist'), 20725 dd: createDOMFactory('dd'), 20726 del: createDOMFactory('del'), 20727 details: createDOMFactory('details'), 20728 dfn: createDOMFactory('dfn'), 20729 dialog: createDOMFactory('dialog'), 20730 div: createDOMFactory('div'), 20731 dl: createDOMFactory('dl'), 20732 dt: createDOMFactory('dt'), 20733 em: createDOMFactory('em'), 20734 embed: createDOMFactory('embed'), 20735 fieldset: createDOMFactory('fieldset'), 20736 figcaption: createDOMFactory('figcaption'), 20737 figure: createDOMFactory('figure'), 20738 footer: createDOMFactory('footer'), 20739 form: createDOMFactory('form'), 20740 h1: createDOMFactory('h1'), 20741 h2: createDOMFactory('h2'), 20742 h3: createDOMFactory('h3'), 20743 h4: createDOMFactory('h4'), 20744 h5: createDOMFactory('h5'), 20745 h6: createDOMFactory('h6'), 20746 head: createDOMFactory('head'), 20747 header: createDOMFactory('header'), 20748 hgroup: createDOMFactory('hgroup'), 20749 hr: createDOMFactory('hr'), 20750 html: createDOMFactory('html'), 20751 i: createDOMFactory('i'), 20752 iframe: createDOMFactory('iframe'), 20753 img: createDOMFactory('img'), 20754 input: createDOMFactory('input'), 20755 ins: createDOMFactory('ins'), 20756 kbd: createDOMFactory('kbd'), 20757 keygen: createDOMFactory('keygen'), 20758 label: createDOMFactory('label'), 20759 legend: createDOMFactory('legend'), 20760 li: createDOMFactory('li'), 20761 link: createDOMFactory('link'), 20762 main: createDOMFactory('main'), 20763 map: createDOMFactory('map'), 20764 mark: createDOMFactory('mark'), 20765 menu: createDOMFactory('menu'), 20766 menuitem: createDOMFactory('menuitem'), 20767 meta: createDOMFactory('meta'), 20768 meter: createDOMFactory('meter'), 20769 nav: createDOMFactory('nav'), 20770 noscript: createDOMFactory('noscript'), 20771 object: createDOMFactory('object'), 20772 ol: createDOMFactory('ol'), 20773 optgroup: createDOMFactory('optgroup'), 20774 option: createDOMFactory('option'), 20775 output: createDOMFactory('output'), 20776 p: createDOMFactory('p'), 20777 param: createDOMFactory('param'), 20778 picture: createDOMFactory('picture'), 20779 pre: createDOMFactory('pre'), 20780 progress: createDOMFactory('progress'), 20781 q: createDOMFactory('q'), 20782 rp: createDOMFactory('rp'), 20783 rt: createDOMFactory('rt'), 20784 ruby: createDOMFactory('ruby'), 20785 s: createDOMFactory('s'), 20786 samp: createDOMFactory('samp'), 20787 script: createDOMFactory('script'), 20788 section: createDOMFactory('section'), 20789 select: createDOMFactory('select'), 20790 small: createDOMFactory('small'), 20791 source: createDOMFactory('source'), 20792 span: createDOMFactory('span'), 20793 strong: createDOMFactory('strong'), 20794 style: createDOMFactory('style'), 20795 sub: createDOMFactory('sub'), 20796 summary: createDOMFactory('summary'), 20797 sup: createDOMFactory('sup'), 20798 table: createDOMFactory('table'), 20799 tbody: createDOMFactory('tbody'), 20800 td: createDOMFactory('td'), 20801 textarea: createDOMFactory('textarea'), 20802 tfoot: createDOMFactory('tfoot'), 20803 th: createDOMFactory('th'), 20804 thead: createDOMFactory('thead'), 20805 time: createDOMFactory('time'), 20806 title: createDOMFactory('title'), 20807 tr: createDOMFactory('tr'), 20808 track: createDOMFactory('track'), 20809 u: createDOMFactory('u'), 20810 ul: createDOMFactory('ul'), 20811 'var': createDOMFactory('var'), 20812 video: createDOMFactory('video'), 20813 wbr: createDOMFactory('wbr'), 20814 20815 // SVG 20816 circle: createDOMFactory('circle'), 20817 clipPath: createDOMFactory('clipPath'), 20818 defs: createDOMFactory('defs'), 20819 ellipse: createDOMFactory('ellipse'), 20820 g: createDOMFactory('g'), 20821 image: createDOMFactory('image'), 20822 line: createDOMFactory('line'), 20823 linearGradient: createDOMFactory('linearGradient'), 20824 mask: createDOMFactory('mask'), 20825 path: createDOMFactory('path'), 20826 pattern: createDOMFactory('pattern'), 20827 polygon: createDOMFactory('polygon'), 20828 polyline: createDOMFactory('polyline'), 20829 radialGradient: createDOMFactory('radialGradient'), 20830 rect: createDOMFactory('rect'), 20831 stop: createDOMFactory('stop'), 20832 svg: createDOMFactory('svg'), 20833 text: createDOMFactory('text'), 20834 tspan: createDOMFactory('tspan') 20835}; 20836 20837module.exports = ReactDOMFactories; 20838/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 20839 20840/***/ }), 20841/* 438 */ 20842/***/ (function(module, exports, __webpack_require__) { 20843 20844"use strict"; 20845/* WEBPACK VAR INJECTION */(function(process) {/** 20846 * Copyright (c) 2013-present, Facebook, Inc. 20847 * 20848 * This source code is licensed under the MIT license found in the 20849 * LICENSE file in the root directory of this source tree. 20850 * 20851 */ 20852 20853 20854 20855var _prodInvariant = __webpack_require__(67); 20856 20857var ReactPropTypeLocationNames = __webpack_require__(439); 20858var ReactPropTypesSecret = __webpack_require__(440); 20859 20860var invariant = __webpack_require__(2); 20861var warning = __webpack_require__(3); 20862 20863var ReactComponentTreeHook; 20864 20865if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { 20866 // Temporary hack. 20867 // Inline requires don't work well with Jest: 20868 // https://github.com/facebook/react/issues/7240 20869 // Remove the inline requires when we don't need them anymore: 20870 // https://github.com/facebook/react/pull/7178 20871 ReactComponentTreeHook = __webpack_require__(22); 20872} 20873 20874var loggedTypeFailures = {}; 20875 20876/** 20877 * Assert that the values match with the type specs. 20878 * Error messages are memorized and will only be shown once. 20879 * 20880 * @param {object} typeSpecs Map of name to a ReactPropType 20881 * @param {object} values Runtime values that need to be type-checked 20882 * @param {string} location e.g. "prop", "context", "child context" 20883 * @param {string} componentName Name of the component for error messages. 20884 * @param {?object} element The React element that is being type-checked 20885 * @param {?number} debugID The React component instance that is being type-checked 20886 * @private 20887 */ 20888function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) { 20889 for (var typeSpecName in typeSpecs) { 20890 if (typeSpecs.hasOwnProperty(typeSpecName)) { 20891 var error; 20892 // Prop type validation may throw. In case they do, we don't want to 20893 // fail the render phase where it didn't fail before. So we log it. 20894 // After these have been cleaned up, we'll let them throw.
vendor: 13,065 bytes, lines 20895-21254
20895 try { 20896 // This is intentionally an invariant that gets caught. It's the same 20897 // behavior as without this statement except with a better message. 20898 !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; 20899 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); 20900 } catch (ex) { 20901 error = ex; 20902 } 20903 process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0; 20904 if (error instanceof Error && !(error.message in loggedTypeFailures)) { 20905 // Only monitor this failure once because there tends to be a lot of the 20906 // same error. 20907 loggedTypeFailures[error.message] = true; 20908 20909 var componentStackInfo = ''; 20910 20911 if (process.env.NODE_ENV !== 'production') { 20912 if (!ReactComponentTreeHook) { 20913 ReactComponentTreeHook = __webpack_require__(22); 20914 } 20915 if (debugID !== null) { 20916 componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); 20917 } else if (element !== null) { 20918 componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); 20919 } 20920 } 20921 20922 process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; 20923 } 20924 } 20925 } 20926} 20927 20928module.exports = checkReactTypeSpec; 20929/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 20930 20931/***/ }), 20932/* 439 */ 20933/***/ (function(module, exports, __webpack_require__) { 20934 20935"use strict"; 20936/* WEBPACK VAR INJECTION */(function(process) {/** 20937 * Copyright (c) 2013-present, Facebook, Inc. 20938 * 20939 * This source code is licensed under the MIT license found in the 20940 * LICENSE file in the root directory of this source tree. 20941 * 20942 * 20943 */ 20944 20945 20946 20947var ReactPropTypeLocationNames = {}; 20948 20949if (process.env.NODE_ENV !== 'production') { 20950 ReactPropTypeLocationNames = { 20951 prop: 'prop', 20952 context: 'context', 20953 childContext: 'child context' 20954 }; 20955} 20956 20957module.exports = ReactPropTypeLocationNames; 20958/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 20959 20960/***/ }), 20961/* 440 */ 20962/***/ (function(module, exports, __webpack_require__) { 20963 20964"use strict"; 20965/** 20966 * Copyright (c) 2013-present, Facebook, Inc. 20967 * 20968 * This source code is licensed under the MIT license found in the 20969 * LICENSE file in the root directory of this source tree. 20970 * 20971 * 20972 */ 20973 20974 20975 20976var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; 20977 20978module.exports = ReactPropTypesSecret; 20979 20980/***/ }), 20981/* 441 */ 20982/***/ (function(module, exports, __webpack_require__) { 20983 20984"use strict"; 20985/** 20986 * Copyright (c) 2013-present, Facebook, Inc. 20987 * 20988 * This source code is licensed under the MIT license found in the 20989 * LICENSE file in the root directory of this source tree. 20990 * 20991 */ 20992 20993 20994 20995var _require = __webpack_require__(59), 20996 isValidElement = _require.isValidElement; 20997 20998var factory = __webpack_require__(193); 20999 21000module.exports = factory(isValidElement); 21001 21002/***/ }), 21003/* 442 */ 21004/***/ (function(module, exports, __webpack_require__) { 21005 21006"use strict"; 21007/* WEBPACK VAR INJECTION */(function(process) {/** 21008 * Copyright (c) 2013-present, Facebook, Inc. 21009 * 21010 * This source code is licensed under the MIT license found in the 21011 * LICENSE file in the root directory of this source tree. 21012 */ 21013 21014 21015 21016var assign = __webpack_require__(10); 21017 21018var ReactPropTypesSecret = __webpack_require__(194); 21019var checkPropTypes = __webpack_require__(443); 21020 21021var printWarning = function() {}; 21022 21023if (process.env.NODE_ENV !== 'production') { 21024 printWarning = function(text) { 21025 var message = 'Warning: ' + text; 21026 if (typeof console !== 'undefined') { 21027 console.error(message); 21028 } 21029 try { 21030 // --- Welcome to debugging React --- 21031 // This error was thrown as a convenience so that you can use this stack 21032 // to find the callsite that caused this warning to fire. 21033 throw new Error(message); 21034 } catch (x) {} 21035 }; 21036} 21037 21038function emptyFunctionThatReturnsNull() { 21039 return null; 21040} 21041 21042module.exports = function(isValidElement, throwOnDirectAccess) { 21043 /* global Symbol */ 21044 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; 21045 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. 21046 21047 /** 21048 * Returns the iterator method function contained on the iterable object. 21049 * 21050 * Be sure to invoke the function with the iterable as context: 21051 * 21052 * var iteratorFn = getIteratorFn(myIterable); 21053 * if (iteratorFn) { 21054 * var iterator = iteratorFn.call(myIterable); 21055 * ... 21056 * } 21057 * 21058 * @param {?object} maybeIterable 21059 * @return {?function} 21060 */ 21061 function getIteratorFn(maybeIterable) { 21062 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); 21063 if (typeof iteratorFn === 'function') { 21064 return iteratorFn; 21065 } 21066 } 21067 21068 /** 21069 * Collection of methods that allow declaration and validation of props that are 21070 * supplied to React components. Example usage: 21071 * 21072 * var Props = require('ReactPropTypes'); 21073 * var MyArticle = React.createClass({ 21074 * propTypes: { 21075 * // An optional string prop named "description". 21076 * description: Props.string, 21077 * 21078 * // A required enum prop named "category". 21079 * category: Props.oneOf(['News','Photos']).isRequired, 21080 * 21081 * // A prop named "dialog" that requires an instance of Dialog. 21082 * dialog: Props.instanceOf(Dialog).isRequired 21083 * }, 21084 * render: function() { ... } 21085 * }); 21086 * 21087 * A more formal specification of how these methods are used: 21088 * 21089 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) 21090 * decl := ReactPropTypes.{type}(.isRequired)? 21091 * 21092 * Each and every declaration produces a function with the same signature. This 21093 * allows the creation of custom validation functions. For example: 21094 * 21095 * var MyLink = React.createClass({ 21096 * propTypes: { 21097 * // An optional string or URI prop named "href". 21098 * href: function(props, propName, componentName) { 21099 * var propValue = props[propName]; 21100 * if (propValue != null && typeof propValue !== 'string' && 21101 * !(propValue instanceof URI)) { 21102 * return new Error( 21103 * 'Expected a string or an URI for ' + propName + ' in ' + 21104 * componentName 21105 * ); 21106 * } 21107 * } 21108 * }, 21109 * render: function() {...} 21110 * }); 21111 * 21112 * @internal 21113 */ 21114 21115 var ANONYMOUS = '<<anonymous>>'; 21116 21117 // Important! 21118 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. 21119 var ReactPropTypes = { 21120 array: createPrimitiveTypeChecker('array'), 21121 bool: createPrimitiveTypeChecker('boolean'), 21122 func: createPrimitiveTypeChecker('function'), 21123 number: createPrimitiveTypeChecker('number'), 21124 object: createPrimitiveTypeChecker('object'), 21125 string: createPrimitiveTypeChecker('string'), 21126 symbol: createPrimitiveTypeChecker('symbol'), 21127 21128 any: createAnyTypeChecker(), 21129 arrayOf: createArrayOfTypeChecker, 21130 element: createElementTypeChecker(), 21131 instanceOf: createInstanceTypeChecker, 21132 node: createNodeChecker(), 21133 objectOf: createObjectOfTypeChecker, 21134 oneOf: createEnumTypeChecker, 21135 oneOfType: createUnionTypeChecker, 21136 shape: createShapeTypeChecker, 21137 exact: createStrictShapeTypeChecker, 21138 }; 21139 21140 /** 21141 * inlined Object.is polyfill to avoid requiring consumers ship their own 21142 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 21143 */ 21144 /*eslint-disable no-self-compare*/ 21145 function is(x, y) { 21146 // SameValue algorithm 21147 if (x === y) { 21148 // Steps 1-5, 7-10 21149 // Steps 6.b-6.e: +0 != -0 21150 return x !== 0 || 1 / x === 1 / y; 21151 } else { 21152 // Step 6.a: NaN == NaN 21153 return x !== x && y !== y; 21154 } 21155 } 21156 /*eslint-enable no-self-compare*/ 21157 21158 /** 21159 * We use an Error-like object for backward compatibility as people may call 21160 * PropTypes directly and inspect their output. However, we don't use real 21161 * Errors anymore. We don't inspect their stack anyway, and creating them 21162 * is prohibitively expensive if they are created too often, such as what 21163 * happens in oneOfType() for any type before the one that matched. 21164 */ 21165 function PropTypeError(message) { 21166 this.message = message; 21167 this.stack = ''; 21168 } 21169 // Make `instanceof Error` still work for returned errors. 21170 PropTypeError.prototype = Error.prototype; 21171 21172 function createChainableTypeChecker(validate) { 21173 if (process.env.NODE_ENV !== 'production') { 21174 var manualPropTypeCallCache = {}; 21175 var manualPropTypeWarningCount = 0; 21176 } 21177 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { 21178 componentName = componentName || ANONYMOUS; 21179 propFullName = propFullName || propName; 21180 21181 if (secret !== ReactPropTypesSecret) { 21182 if (throwOnDirectAccess) { 21183 // New behavior only for users of `prop-types` package 21184 var err = new Error( 21185 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 21186 'Use `PropTypes.checkPropTypes()` to call them. ' + 21187 'Read more at http://fb.me/use-check-prop-types' 21188 ); 21189 err.name = 'Invariant Violation'; 21190 throw err; 21191 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { 21192 // Old behavior for people using React.PropTypes 21193 var cacheKey = componentName + ':' + propName; 21194 if ( 21195 !manualPropTypeCallCache[cacheKey] && 21196 // Avoid spamming the console because they are often not actionable except for lib authors 21197 manualPropTypeWarningCount < 3 21198 ) { 21199 printWarning( 21200 'You are manually calling a React.PropTypes validation ' + 21201 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 21202 'and will throw in the standalone `prop-types` package. ' + 21203 'You may be seeing this warning due to a third-party PropTypes ' + 21204 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' 21205 ); 21206 manualPropTypeCallCache[cacheKey] = true; 21207 manualPropTypeWarningCount++; 21208 } 21209 } 21210 } 21211 if (props[propName] == null) { 21212 if (isRequired) { 21213 if (props[propName] === null) { 21214 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); 21215 } 21216 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); 21217 } 21218 return null; 21219 } else { 21220 return validate(props, propName, componentName, location, propFullName); 21221 } 21222 } 21223 21224 var chainedCheckType = checkType.bind(null, false); 21225 chainedCheckType.isRequired = checkType.bind(null, true); 21226 21227 return chainedCheckType; 21228 } 21229 21230 function createPrimitiveTypeChecker(expectedType) { 21231 function validate(props, propName, componentName, location, propFullName, secret) { 21232 var propValue = props[propName]; 21233 var propType = getPropType(propValue); 21234 if (propType !== expectedType) { 21235 // `propValue` being instance of, say, date/regexp, pass the 'object' 21236 // check, but we can offer a more precise error message here rather than 21237 // 'of type `object`'. 21238 var preciseType = getPreciseType(propValue); 21239 21240 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); 21241 } 21242 return null; 21243 } 21244 return createChainableTypeChecker(validate); 21245 } 21246 21247 function createAnyTypeChecker() { 21248 return createChainableTypeChecker(emptyFunctionThatReturnsNull); 21249 } 21250 21251 function createArrayOfTypeChecker(typeChecker) { 21252 function validate(props, propName, componentName, location, propFullName) { 21253 if (typeof typeChecker !== 'function') { 21254 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invali
vendor: 3,861 bytes, lines 21254-21341
21254d PropType notation inside arrayOf.'); 21255 } 21256 var propValue = props[propName]; 21257 if (!Array.isArray(propValue)) { 21258 var propType = getPropType(propValue); 21259 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); 21260 } 21261 for (var i = 0; i < propValue.length; i++) { 21262 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); 21263 if (error instanceof Error) { 21264 return error; 21265 } 21266 } 21267 return null; 21268 } 21269 return createChainableTypeChecker(validate); 21270 } 21271 21272 function createElementTypeChecker() { 21273 function validate(props, propName, componentName, location, propFullName) { 21274 var propValue = props[propName]; 21275 if (!isValidElement(propValue)) { 21276 var propType = getPropType(propValue); 21277 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); 21278 } 21279 return null; 21280 } 21281 return createChainableTypeChecker(validate); 21282 } 21283 21284 function createInstanceTypeChecker(expectedClass) { 21285 function validate(props, propName, componentName, location, propFullName) { 21286 if (!(props[propName] instanceof expectedClass)) { 21287 var expectedClassName = expectedClass.name || ANONYMOUS; 21288 var actualClassName = getClassName(props[propName]); 21289 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); 21290 } 21291 return null; 21292 } 21293 return createChainableTypeChecker(validate); 21294 } 21295 21296 function createEnumTypeChecker(expectedValues) { 21297 if (!Array.isArray(expectedValues)) { 21298 process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0; 21299 return emptyFunctionThatReturnsNull; 21300 } 21301 21302 function validate(props, propName, componentName, location, propFullName) { 21303 var propValue = props[propName]; 21304 for (var i = 0; i < expectedValues.length; i++) { 21305 if (is(propValue, expectedValues[i])) { 21306 return null; 21307 } 21308 } 21309 21310 var valuesString = JSON.stringify(expectedValues); 21311 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); 21312 } 21313 return createChainableTypeChecker(validate); 21314 } 21315 21316 function createObjectOfTypeChecker(typeChecker) { 21317 function validate(props, propName, componentName, location, propFullName) { 21318 if (typeof typeChecker !== 'function') { 21319 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); 21320 } 21321 var propValue = props[propName]; 21322 var propType = getPropType(propValue); 21323 if (propType !== 'object') { 21324 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); 21325 } 21326 for (var key in propValue) { 21327 if (propValue.hasOwnProperty(key)) { 21328 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); 21329 if (error instanceof Error) { 21330 return error; 21331 } 21332 } 21333 } 21334 return null; 21335 } 21336 return createChainableTypeChecker(validate); 21337 } 21338 21339 function createUnionTypeChecker(arrayOfTypeCheckers) { 21340 if (!Array.isArray(arrayOfTypeCheckers)) { 21341 process.env.NODE_ENV !== 'production'
vendor: 7,132 bytes, lines 21341-21562
21341 ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; 21342 return emptyFunctionThatReturnsNull; 21343 } 21344 21345 for (var i = 0; i < arrayOfTypeCheckers.length; i++) { 21346 var checker = arrayOfTypeCheckers[i]; 21347 if (typeof checker !== 'function') { 21348 printWarning( 21349 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 21350 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' 21351 ); 21352 return emptyFunctionThatReturnsNull; 21353 } 21354 } 21355 21356 function validate(props, propName, componentName, location, propFullName) { 21357 for (var i = 0; i < arrayOfTypeCheckers.length; i++) { 21358 var checker = arrayOfTypeCheckers[i]; 21359 if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { 21360 return null; 21361 } 21362 } 21363 21364 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); 21365 } 21366 return createChainableTypeChecker(validate); 21367 } 21368 21369 function createNodeChecker() { 21370 function validate(props, propName, componentName, location, propFullName) { 21371 if (!isNode(props[propName])) { 21372 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); 21373 } 21374 return null; 21375 } 21376 return createChainableTypeChecker(validate); 21377 } 21378 21379 function createShapeTypeChecker(shapeTypes) { 21380 function validate(props, propName, componentName, location, propFullName) { 21381 var propValue = props[propName]; 21382 var propType = getPropType(propValue); 21383 if (propType !== 'object') { 21384 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); 21385 } 21386 for (var key in shapeTypes) { 21387 var checker = shapeTypes[key]; 21388 if (!checker) { 21389 continue; 21390 } 21391 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); 21392 if (error) { 21393 return error; 21394 } 21395 } 21396 return null; 21397 } 21398 return createChainableTypeChecker(validate); 21399 } 21400 21401 function createStrictShapeTypeChecker(shapeTypes) { 21402 function validate(props, propName, componentName, location, propFullName) { 21403 var propValue = props[propName]; 21404 var propType = getPropType(propValue); 21405 if (propType !== 'object') { 21406 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); 21407 } 21408 // We need to check all keys in case some are required but missing from 21409 // props. 21410 var allKeys = assign({}, props[propName], shapeTypes); 21411 for (var key in allKeys) { 21412 var checker = shapeTypes[key]; 21413 if (!checker) { 21414 return new PropTypeError( 21415 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + 21416 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + 21417 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') 21418 ); 21419 } 21420 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); 21421 if (error) { 21422 return error; 21423 } 21424 } 21425 return null; 21426 } 21427 21428 return createChainableTypeChecker(validate); 21429 } 21430 21431 function isNode(propValue) { 21432 switch (typeof propValue) { 21433 case 'number': 21434 case 'string': 21435 case 'undefined': 21436 return true; 21437 case 'boolean': 21438 return !propValue; 21439 case 'object': 21440 if (Array.isArray(propValue)) { 21441 return propValue.every(isNode); 21442 } 21443 if (propValue === null || isValidElement(propValue)) { 21444 return true; 21445 } 21446 21447 var iteratorFn = getIteratorFn(propValue); 21448 if (iteratorFn) { 21449 var iterator = iteratorFn.call(propValue); 21450 var step; 21451 if (iteratorFn !== propValue.entries) { 21452 while (!(step = iterator.next()).done) { 21453 if (!isNode(step.value)) { 21454 return false; 21455 } 21456 } 21457 } else { 21458 // Iterator will provide entry [k,v] tuples rather than values. 21459 while (!(step = iterator.next()).done) { 21460 var entry = step.value; 21461 if (entry) { 21462 if (!isNode(entry[1])) { 21463 return false; 21464 } 21465 } 21466 } 21467 } 21468 } else { 21469 return false; 21470 } 21471 21472 return true; 21473 default: 21474 return false; 21475 } 21476 } 21477 21478 function isSymbol(propType, propValue) { 21479 // Native Symbol. 21480 if (propType === 'symbol') { 21481 return true; 21482 } 21483 21484 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' 21485 if (propValue['@@toStringTag'] === 'Symbol') { 21486 return true; 21487 } 21488 21489 // Fallback for non-spec compliant Symbols which are polyfilled. 21490 if (typeof Symbol === 'function' && propValue instanceof Symbol) { 21491 return true; 21492 } 21493 21494 return false; 21495 } 21496 21497 // Equivalent of `typeof` but with special handling for array and regexp. 21498 function getPropType(propValue) { 21499 var propType = typeof propValue; 21500 if (Array.isArray(propValue)) { 21501 return 'array'; 21502 } 21503 if (propValue instanceof RegExp) { 21504 // Old webkits (at least until Android 4.0) return 'function' rather than 21505 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ 21506 // passes PropTypes.object. 21507 return 'object'; 21508 } 21509 if (isSymbol(propType, propValue)) { 21510 return 'symbol'; 21511 } 21512 return propType; 21513 } 21514 21515 // This handles more types than `getPropType`. Only used for error messages. 21516 // See `createPrimitiveTypeChecker`. 21517 function getPreciseType(propValue) { 21518 if (typeof propValue === 'undefined' || propValue === null) { 21519 return '' + propValue; 21520 } 21521 var propType = getPropType(propValue); 21522 if (propType === 'object') { 21523 if (propValue instanceof Date) { 21524 return 'date'; 21525 } else if (propValue instanceof RegExp) { 21526 return 'regexp'; 21527 } 21528 } 21529 return propType; 21530 } 21531 21532 // Returns a string that is postfixed to a warning about an invalid type. 21533 // For example, "undefined" or "of type array" 21534 function getPostfixForTypeWarning(value) { 21535 var type = getPreciseType(value); 21536 switch (type) { 21537 case 'array': 21538 case 'object': 21539 return 'an ' + type; 21540 case 'boolean': 21541 case 'date': 21542 case 'regexp': 21543 return 'a ' + type; 21544 default: 21545 return type; 21546 } 21547 } 21548 21549 // Returns class name of the object, if any. 21550 function getClassName(propValue) { 21551 if (!propValue.constructor || !propValue.constructor.name) { 21552 return ANONYMOUS; 21553 } 21554 return propValue.constructor.name; 21555 } 21556 21557 ReactPropTypes.checkPropTypes = checkPropTypes; 21558 ReactPropTypes.PropTypes = ReactPropTypes; 21559 21560 return ReactPropTypes; 21561}; 21562
21563/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 21564 21565/***/ }), 21566/* 443 */ 21567/***/ (function(module, exports, __webpack_require__) { 21568 21569"use strict"; 21570/* WEBPACK VAR INJECTION */(function(process) {/** 21571 * Copyright (c) 2013-present, Facebook, Inc. 21572 * 21573 * This source code is licensed under the MIT license found in the 21574 * LICENSE file in the root directory of this source tree. 21575 */ 21576 21577 21578 21579var printWarning = function() {}; 21580 21581if (process.env.NODE_ENV !== 'production') { 21582 var ReactPropTypesSecret = __webpack_require__(194); 21583 var loggedTypeFailures = {}; 21584 21585 printWarning = function(text) { 21586 var message = 'Warning: ' + text; 21587 if (typeof console !== 'undefined') { 21588 console.error(message); 21589 } 21590 try { 21591 // --- Welcome to debugging React --- 21592 // This error was thrown as a convenience so that you can use this stack 21593 // to find the callsite that caused this warning to fire. 21594 throw new Error(message); 21595 } catch (x) {} 21596 }; 21597} 21598 21599/** 21600 * Assert that the values match with the type specs. 21601 * Error messages are memorized and will only be shown once. 21602 * 21603 * @param {object} typeSpecs Map of name to a ReactPropType 21604 * @param {object} values Runtime values that need to be type-checked 21605 * @param {string} location e.g. "prop", "context", "child context" 21606 * @param {string} componentName Name of the component for error messages. 21607 * @param {?Function} getStack Returns the component stack. 21608 * @private 21609 */ 21610function checkPropTypes(typeSpecs, values, location, componentName, getStack) { 21611 if (process.env.NODE_ENV !== 'production') { 21612 for (var typeSpecName in typeSpecs) { 21613 if (typeSpecs.hasOwnProperty(typeSpecName)) { 21614 var error; 21615 // Prop type validation may throw. In case they do, we don't want to 21616 // fail the render phase where it didn't fail before. So we log it. 21617 // After these have been cleaned up, we'll let them throw. 21618 try { 21619 // This is intentionally an invariant that gets caught. It's the same 21620 // behavior as without this statement except with a better message. 21621 if (typeof typeSpecs[typeSpecName] !== 'function') { 21622 var err = Error( 21623 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 21624 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' 21625 ); 21626 err.name = 'Invariant Violation'; 21627 throw err; 21628 } 21629 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); 21630 } catch (ex) { 21631 error = ex; 21632 } 21633 if (error && !(error instanceof Error)) { 21634 printWarning( 21635 (componentName || 'React class') + ': type specification of ' + 21636 location + ' `' + typeSpecName + '` is invalid; the type checker ' + 21637 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 21638 'You may have forgotten to pass an argument to the type checker ' + 21639 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 21640 'shape all require an argument).' 21641 ) 21642 21643 } 21644 if (error instanceof Error && !(error.message in loggedTypeFailures)) { 21645 // Only monitor this failure once because there tends to be a lot of the 21646 // same error. 21647 loggedTypeFailures[error.message] = true; 21648 21649 var stack = getStack ? getStack() : ''; 21650 21651 printWarning( 21652 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') 21653 ); 21654 } 21655 } 21656 } 21657 } 21658} 21659 21660module.exports = checkPropTypes; 21661 21662/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 21663 21664/***/ }), 21665/* 444 */ 21666/***/ (function(module, exports, __webpack_require__) { 21667 21668"use strict"; 21669/** 21670 * Copyright (c) 2013-present, Facebook, Inc. 21671 * 21672 * This source code is licensed under the MIT license found in the 21673 * LICENSE file in the root directory of this source tree. 21674 * 21675 */ 21676 21677 21678 21679module.exports = '15.6.2'; 21680 21681/***/ }), 21682/* 445 */ 21683/***/ (function(module, exports, __webpack_require__) { 21684 21685"use strict"; 21686/** 21687 * Copyright (c) 2013-present, Facebook, Inc. 21688 * 21689 * This source code is licensed under the MIT license found in the 21690 * LICENSE file in the root directory of this source tree. 21691 * 21692 */ 21693 21694 21695 21696var _require = __webpack_require__(188), 21697 Component = _require.Component; 21698 21699var _require2 = __webpack_require__(59), 21700 isValidElement = _require2.isValidElement; 21701 21702var ReactNoopUpdateQueue = __webpack_require__(189); 21703var factory = __webpack_require__(446); 21704 21705module.exports = factory(Component, isValidElement, ReactNoopUpdateQueue); 21706 21707/***/ }), 21708/* 446 */ 21709/***/ (function(module, exports, __webpack_require__) { 21710 21711"use strict"; 21712/* WEBPACK VAR INJECTION */(function(process) {/** 21713 * Copyright (c) 2013-present, Facebook, Inc. 21714 * 21715 * This source code is licensed under the MIT license found in the 21716 * LICENSE file in the root directory of this source tree. 21717 * 21718 */ 21719 21720 21721 21722var _assign = __webpack_require__(10); 21723 21724var emptyObject = __webpack_require__(98); 21725var _invariant = __webpack_require__(2); 21726 21727if (process.env.NODE_ENV !== 'production') { 21728 var warning = __webpack_require__(3); 21729} 21730 21731var MIXINS_KEY = 'mixins'; 21732 21733// Helper function to allow the creation of anonymous functions which do not 21734// have .name set to the name of the variable being assigned to. 21735function identity(fn) { 21736 return fn; 21737} 21738 21739var ReactPropTypeLocationNames; 21740if (process.env.NODE_ENV !== 'production') { 21741 ReactPropTypeLocationNames = { 21742 prop: 'prop', 21743 context: 'context', 21744 childContext: 'child context' 21745 }; 21746} else { 21747 ReactPropTypeLocationNames = {}; 21748} 21749 21750function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) { 21751 /** 21752 * Policies that describe methods in `ReactClassInterface`. 21753 */ 21754 21755 var injectedMixins = []; 21756 21757 /** 21758 * Composite components are higher-level components that compose other composite 21759 * or host components. 21760 * 21761 * To create a new type of `ReactClass`, pass a specification of 21762 * your new class to `React.createClass`. The only requirement of your class 21763 * specification is that you implement a `render` method. 21764 * 21765 * var MyComponent = React.createClass({ 21766 * render: function() { 21767 * return <div>Hello World</div>; 21768 * } 21769 * }); 21770 * 21771 * The class specification supports a specific protocol of methods that have 21772 * special meaning (e.g. `render`). See `ReactClassInterface` for 21773 * more the comprehensive protocol. Any other properties and methods in the 21774 * class specification will be available on the prototype. 21775 * 21776 * @interface ReactClassInterface 21777 * @internal 21778 */ 21779 var ReactClassInterface = { 21780 /** 21781 * An array of Mixin objects to include when defining your component. 21782 * 21783 * @type {array} 21784 * @optional 21785 */ 21786 mixins: 'DEFINE_MANY', 21787 21788 /**
21789 * An object containing properties and methods that should be defined on 21790 * the component's constructor instead of its prototype (static methods). 21791 * 21792 * @type {object} 21793 * @optional 21794 */ 21795 statics: 'DEFINE_MANY', 21796 21797 /** 21798 * Definition of prop types for this component. 21799 * 21800 * @type {object} 21801 * @optional 21802 */ 21803 propTypes: 'DEFINE_MANY', 21804 21805 /** 21806 * Definition of context types for this component. 21807 * 21808 * @type {object} 21809 * @optional 21810 */ 21811 contextTypes: 'DEFINE_MANY', 21812 21813 /** 21814 * Definition of context types this component sets for its children. 21815 * 21816 * @type {object} 21817 * @optional 21818 */ 21819 childContextTypes: 'DEFINE_MANY', 21820 21821 // ==== Definition methods ==== 21822 21823 /** 21824 * Invoked when the component is mounted. Values in the mapping will be set on 21825 * `this.props` if that prop is not specified (i.e. using an `in` check). 21826 * 21827 * This method is invoked before `getInitialState` and therefore cannot rely 21828 * on `this.state` or use `this.setState`. 21829 * 21830 * @return {object} 21831 * @optional 21832 */ 21833 getDefaultProps: 'DEFINE_MANY_MERGED', 21834 21835 /** 21836 * Invoked once before the component is mounted. The return value will be used 21837 * as the initial value of `this.state`. 21838 * 21839 * getInitialState: function() { 21840 * return { 21841 * isOn: false, 21842 * fooBaz: new BazFoo() 21843 * } 21844 * } 21845 * 21846 * @return {object} 21847 * @optional 21848 */ 21849 getInitialState: 'DEFINE_MANY_MERGED', 21850 21851 /** 21852 * @return {object} 21853 * @optional 21854 */ 21855 getChildContext: 'DEFINE_MANY_MERGED', 21856 21857 /** 21858 * Uses props from `this.props` and state from `this.state` to render the 21859 * structure of the component. 21860 * 21861 * No guarantees are made about when or how often this method is invoked, so 21862 * it must not have side effects. 21863 * 21864 * render: function() { 21865 * var name = this.props.name; 21866 * return <div>Hello, {name}!</div>; 21867 * } 21868 * 21869 * @return {ReactComponent} 21870 * @required 21871 */ 21872 render: 'DEFINE_ONCE', 21873 21874 // ==== Delegate methods ==== 21875 21876 /** 21877 * Invoked when the component is initially created and about to be mounted. 21878 * This may have side effects, but any external subscriptions or data created 21879 * by this method must be cleaned up in `componentWillUnmount`. 21880 * 21881 * @optional 21882 */ 21883 componentWillMount: 'DEFINE_MANY', 21884 21885 /** 21886 * Invoked when the component has been mounted and has a DOM representation. 21887 * However, there is no guarantee that the DOM node is in the document. 21888 * 21889 * Use this as an opportunity to operate on the DOM when the component has 21890 * been mounted (initialized and rendered) for the first time. 21891 * 21892 * @param {DOMElement} rootNode DOM element representing the component. 21893 * @optional 21894 */ 21895 componentDidMount: 'DEFINE_MANY', 21896 21897 /** 21898 * Invoked before the component receives new props. 21899 * 21900 * Use this as an opportunity to react to a prop transition by updating the 21901 * state using `this.setState`. Current props are accessed via `this.props`. 21902 * 21903 * componentWillReceiveProps: function(nextProps, nextContext) { 21904 * this.setState({ 21905 * likesIncreasing: nextProps.likeCount > this.props.likeCount 21906 * }); 21907 * } 21908 * 21909 * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop 21910 * transition may cause a state change, but the opposite is not true. If you 21911 * need it, you are probably looking for `componentWillUpdate`. 21912 * 21913 * @param {object} nextProps 21914 * @optional 21915 */ 21916 componentWillReceiveProps: 'DEFINE_MANY', 21917 21918 /** 21919 * Invoked while deciding if the component should be updated as a result of 21920 * receiving new props, state and/or context. 21921 * 21922 * Use this as an opportunity to `return false` when you're certain that the 21923 * transition to the new props/state/context will not require a component 21924 * update. 21925 * 21926 * shouldComponentUpdate: function(nextProps, nextState, nextContext) { 21927 * return !equal(nextProps, this.props) || 21928 * !equal(nextState, this.state) || 21929 * !equal(nextContext, this.context); 21930 * } 21931 * 21932 * @param {object} nextProps 21933 * @param {?object} nextState 21934 * @param {?object} nextContext 21935 * @return {boolean} True if the component should update. 21936 * @optional 21937 */ 21938 shouldComponentUpdate: 'DEFINE_ONCE', 21939 21940 /** 21941 * Invoked when the component is about to update due to a transition from 21942 * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` 21943 * and `nextContext`. 21944 * 21945 * Use this as an opportunity to perform preparation before an update occurs. 21946 * 21947 * NOTE: You **cannot** use `this.setState()` in this method. 21948 * 21949 * @param {object} nextProps 21950 * @param {?object} nextState 21951 * @param {?object} nextContext 21952 * @param {ReactReconcileTransaction} transaction 21953 * @optional 21954 */ 21955 componentWillUpdate: 'DEFINE_MANY', 21956 21957 /** 21958 * Invoked when the component's DOM representation has been updated. 21959 * 21960 * Use this as an opportunity to operate on the DOM when the component has 21961 * been updated. 21962 * 21963 * @param {object} prevProps 21964 * @param {?object} prevState 21965 * @param {?object} prevContext 21966 * @param {DOMElement} rootNode DOM element representing the component. 21967 * @optional 21968 */ 21969 componentDidUpdate: 'DEFINE_MANY', 21970 21971 /** 21972 * Invoked when the component is about to be removed from its parent and have 21973 * its DOM representation destroyed. 21974 * 21975 * Use this as an opportunity to deallocate any external resources. 21976 * 21977 * NOTE: There is no `componentDidUnmount` since your component will have been 21978 * destroyed by that point. 21979 * 21980 * @optional 21981 */ 21982 componentWillUnmount: 'DEFINE_MANY', 21983 21984 /** 21985 * Replacement for (deprecated) `componentWillMount`. 21986 * 21987 * @optional 21988 */ 21989 UNSAFE_componentWillMount: 'DEFINE_MANY', 21990 21991 /** 21992 * Replacement for (deprecated) `componentWillReceiveProps`. 21993 * 21994 * @optional 21995 */ 21996 UNSAFE_componentWillReceiveProps: 'DEFINE_MANY', 21997 21998 /** 21999 * Replacement for (deprecated) `componentWillUpdate`. 22000 * 22001 * @optional 22002 */ 22003 UNSAFE_componentWillUpdate: 'DEFINE_MANY', 22004 22005 // ==== Advanced methods ==== 22006 22007 /** 22008 * Updates the component's currently mounted DOM representation. 22009 * 22010 * By default, this implements React's rendering and reconciliation algorithm. 22011 * Sophisticated clients may wish to override this. 22012 * 22013 * @param {ReactReconcileTransaction} transaction 22014 * @internal 22015 * @overridable 22016 */ 22017 updateComponent: 'OVERRIDE_BASE' 22018 }; 22019 22020 /** 22021 * Similar to ReactClassInterface but for static methods. 22022 */ 22023 var ReactClassStaticInterface = { 22024 /** 22025 * This method is invoked after a component is instantiated and when it 22026 * receives new props. Return an object to update state in response to 22027 * prop changes. Return null to indicate no change to state. 22028 * 22029 * If an object is returned, its keys will be merged into the existing state. 22030 * 22031 * @return {object || null} 22032 * @optional 22033 */ 22034 getDerivedStateFromProps: 'DEFINE_MANY_MERGED' 22035 }; 22036 22037 /** 22038 * Mapping from class specification keys to special processing functions. 22039 * 22040 * Although these are declared like instance properties in the specification 22041 * when defining classes using `React.createClass`, they are actually static 22042 * and are accessible on the constructor instead of the prototype. Despite 22043 * being static, they must be defined outside of the "statics" key under 22044 * which all other static methods are defined. 22045 */ 22046 var RESERVED_SPEC_KEYS = { 22047 displayName: function(Constructor, displayName) { 22048 Constructor.displayName = displayName; 22049 }, 22050 mixins: function(Constructor, mixins) { 22051 if (mixins) { 22052 for (var i = 0; i < mixins.length; i++) { 22053 mixSpecIntoComponent(Constructor, mixins[i]); 22054 } 22055 } 22056 }, 22057 childContextTypes: function(Constructor, childContextTypes) { 22058 if (process.env.NODE_ENV !== 'production') { 22059 validateTypeDef(Constructor, childContextTypes, 'childContext'); 22060 } 22061 Constructor.childContextTypes = _assign( 22062 {}, 22063 Constructor.childContextTypes, 22064 childContextTypes 22065 ); 22066 }, 22067 contextTypes: function(Constructor, contextTypes) { 22068 if (process.env.NODE_ENV !== 'production') { 22069 validateTypeDef(Constructor, contextTypes, 'context'); 22070 } 22071 Constructor.contextTypes = _assign( 22072 {}, 22073 Constructor.contextTypes, 22074 contextTypes 22075 ); 22076 }, 22077 /** 22078 * Special case getDefaultProps which should move into statics but requires 22079 * automatic merging. 22080 */ 22081 getDefaultProps: function(Constructor, getDefaultProps) { 22082 if (Constructor.getDefaultProps) { 22083 Constructor.getDefaultProps = createMergedResultFunction( 22084 Constructor.getDefaultProps, 22085 getDefaultProps 22086 ); 22087 } else { 22088 Constructor.getDefaultProps = getDefaultProps; 22089 } 22090 }, 22091 propTypes: function(Constructor, propTypes) { 22092 if (process.env.NODE_ENV !== 'production') { 22093 validateTypeDef(Constructor, propTypes, 'prop'); 22094 } 22095 Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); 22096 }, 22097 statics: function(Constructor, statics) { 22098 mixStaticSpecIntoComponent(Constructor, statics); 22099 }, 22100 autobind: function() {} 22101 }; 22102 22103 function validateTypeDef(Constructor, typeDef, location) { 22104 for (var propName in typeDef) { 22105 if (typeDef.hasOwnProperty(propName)) { 22106 // use a warning instead of an _invariant so components 22107 // don't show up in prod but only in __DEV__ 22108 if (process.env.NODE_ENV !== 'production') { 22109 warning( 22110 typeof typeDef[propName] === 'function',
vendor: 15,933 bytes, lines 22111-22584
22111 '%s: %s type `%s` is invalid; it must be a function, usually from ' + 22112 'React.PropTypes.', 22113 Constructor.displayName || 'ReactClass', 22114 ReactPropTypeLocationNames[location], 22115 propName 22116 ); 22117 } 22118 } 22119 } 22120 } 22121 22122 function validateMethodOverride(isAlreadyDefined, name) { 22123 var specPolicy = ReactClassInterface.hasOwnProperty(name) 22124 ? ReactClassInterface[name] 22125 : null; 22126 22127 // Disallow overriding of base class methods unless explicitly allowed. 22128 if (ReactClassMixin.hasOwnProperty(name)) { 22129 _invariant( 22130 specPolicy === 'OVERRIDE_BASE', 22131 'ReactClassInterface: You are attempting to override ' + 22132 '`%s` from your class specification. Ensure that your method names ' + 22133 'do not overlap with React methods.', 22134 name 22135 ); 22136 } 22137 22138 // Disallow defining methods more than once unless explicitly allowed. 22139 if (isAlreadyDefined) { 22140 _invariant( 22141 specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 22142 'ReactClassInterface: You are attempting to define ' + 22143 '`%s` on your component more than once. This conflict may be due ' + 22144 'to a mixin.', 22145 name 22146 ); 22147 } 22148 } 22149 22150 /** 22151 * Mixin helper which handles policy validation and reserved 22152 * specification keys when building React classes. 22153 */ 22154 function mixSpecIntoComponent(Constructor, spec) { 22155 if (!spec) { 22156 if (process.env.NODE_ENV !== 'production') { 22157 var typeofSpec = typeof spec; 22158 var isMixinValid = typeofSpec === 'object' && spec !== null; 22159 22160 if (process.env.NODE_ENV !== 'production') { 22161 warning( 22162 isMixinValid, 22163 "%s: You're attempting to include a mixin that is either null " + 22164 'or not an object. Check the mixins included by the component, ' + 22165 'as well as any mixins they include themselves. ' + 22166 'Expected object but got %s.', 22167 Constructor.displayName || 'ReactClass', 22168 spec === null ? null : typeofSpec 22169 ); 22170 } 22171 } 22172 22173 return; 22174 } 22175 22176 _invariant( 22177 typeof spec !== 'function', 22178 "ReactClass: You're attempting to " + 22179 'use a component class or function as a mixin. Instead, just use a ' + 22180 'regular object.' 22181 ); 22182 _invariant( 22183 !isValidElement(spec), 22184 "ReactClass: You're attempting to " + 22185 'use a component as a mixin. Instead, just use a regular object.' 22186 ); 22187 22188 var proto = Constructor.prototype; 22189 var autoBindPairs = proto.__reactAutoBindPairs; 22190 22191 // By handling mixins before any other properties, we ensure the same 22192 // chaining order is applied to methods with DEFINE_MANY policy, whether 22193 // mixins are listed before or after these methods in the spec. 22194 if (spec.hasOwnProperty(MIXINS_KEY)) { 22195 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); 22196 } 22197 22198 for (var name in spec) { 22199 if (!spec.hasOwnProperty(name)) { 22200 continue; 22201 } 22202 22203 if (name === MIXINS_KEY) { 22204 // We have already handled mixins in a special case above. 22205 continue; 22206 } 22207 22208 var property = spec[name]; 22209 var isAlreadyDefined = proto.hasOwnProperty(name); 22210 validateMethodOverride(isAlreadyDefined, name); 22211 22212 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { 22213 RESERVED_SPEC_KEYS[name](Constructor, property); 22214 } else { 22215 // Setup methods on prototype: 22216 // The following member methods should not be automatically bound: 22217 // 1. Expected ReactClass methods (in the "interface"). 22218 // 2. Overridden methods (that were mixed in). 22219 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); 22220 var isFunction = typeof property === 'function'; 22221 var shouldAutoBind = 22222 isFunction && 22223 !isReactClassMethod && 22224 !isAlreadyDefined && 22225 spec.autobind !== false; 22226 22227 if (shouldAutoBind) { 22228 autoBindPairs.push(name, property); 22229 proto[name] = property; 22230 } else { 22231 if (isAlreadyDefined) { 22232 var specPolicy = ReactClassInterface[name]; 22233 22234 // These cases should already be caught by validateMethodOverride. 22235 _invariant( 22236 isReactClassMethod && 22237 (specPolicy === 'DEFINE_MANY_MERGED' || 22238 specPolicy === 'DEFINE_MANY'), 22239 'ReactClass: Unexpected spec policy %s for key %s ' + 22240 'when mixing in component specs.', 22241 specPolicy, 22242 name 22243 ); 22244 22245 // For methods which are defined more than once, call the existing 22246 // methods before calling the new property, merging if appropriate. 22247 if (specPolicy === 'DEFINE_MANY_MERGED') { 22248 proto[name] = createMergedResultFunction(proto[name], property); 22249 } else if (specPolicy === 'DEFINE_MANY') { 22250 proto[name] = createChainedFunction(proto[name], property); 22251 } 22252 } else { 22253 proto[name] = property; 22254 if (process.env.NODE_ENV !== 'production') { 22255 // Add verbose displayName to the function, which helps when looking 22256 // at profiling tools. 22257 if (typeof property === 'function' && spec.displayName) { 22258 proto[name].displayName = spec.displayName + '_' + name; 22259 } 22260 } 22261 } 22262 } 22263 } 22264 } 22265 } 22266 22267 function mixStaticSpecIntoComponent(Constructor, statics) { 22268 if (!statics) { 22269 return; 22270 } 22271 22272 for (var name in statics) { 22273 var property = statics[name]; 22274 if (!statics.hasOwnProperty(name)) { 22275 continue; 22276 } 22277 22278 var isReserved = name in RESERVED_SPEC_KEYS; 22279 _invariant( 22280 !isReserved, 22281 'ReactClass: You are attempting to define a reserved ' + 22282 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 22283 'as an instance property instead; it will still be accessible on the ' + 22284 'constructor.', 22285 name 22286 ); 22287 22288 var isAlreadyDefined = name in Constructor; 22289 if (isAlreadyDefined) { 22290 var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) 22291 ? ReactClassStaticInterface[name] 22292 : null; 22293 22294 _invariant( 22295 specPolicy === 'DEFINE_MANY_MERGED', 22296 'ReactClass: You are attempting to define ' + 22297 '`%s` on your component more than once. This conflict may be ' + 22298 'due to a mixin.', 22299 name 22300 ); 22301 22302 Constructor[name] = createMergedResultFunction(Constructor[name], property); 22303 22304 return; 22305 } 22306 22307 Constructor[name] = property; 22308 } 22309 } 22310 22311 /** 22312 * Merge two objects, but throw if both contain the same key. 22313 * 22314 * @param {object} one The first object, which is mutated. 22315 * @param {object} two The second object 22316 * @return {object} one after it has been mutated to contain everything in two. 22317 */ 22318 function mergeIntoWithNoDuplicateKeys(one, two) { 22319 _invariant( 22320 one && two && typeof one === 'object' && typeof two === 'object', 22321 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.' 22322 ); 22323 22324 for (var key in two) { 22325 if (two.hasOwnProperty(key)) { 22326 _invariant( 22327 one[key] === undefined, 22328 'mergeIntoWithNoDuplicateKeys(): ' + 22329 'Tried to merge two objects with the same key: `%s`. This conflict ' + 22330 'may be due to a mixin; in particular, this may be caused by two ' + 22331 'getInitialState() or getDefaultProps() methods returning objects ' + 22332 'with clashing keys.', 22333 key 22334 ); 22335 one[key] = two[key]; 22336 } 22337 } 22338 return one; 22339 } 22340 22341 /** 22342 * Creates a function that invokes two functions and merges their return values. 22343 * 22344 * @param {function} one Function to invoke first. 22345 * @param {function} two Function to invoke second. 22346 * @return {function} Function that invokes the two argument functions. 22347 * @private 22348 */ 22349 function createMergedResultFunction(one, two) { 22350 return function mergedResult() { 22351 var a = one.apply(this, arguments); 22352 var b = two.apply(this, arguments); 22353 if (a == null) { 22354 return b; 22355 } else if (b == null) { 22356 return a; 22357 } 22358 var c = {}; 22359 mergeIntoWithNoDuplicateKeys(c, a); 22360 mergeIntoWithNoDuplicateKeys(c, b); 22361 return c; 22362 }; 22363 } 22364 22365 /** 22366 * Creates a function that invokes two functions and ignores their return vales. 22367 * 22368 * @param {function} one Function to invoke first. 22369 * @param {function} two Function to invoke second. 22370 * @return {function} Function that invokes the two argument functions. 22371 * @private 22372 */ 22373 function createChainedFunction(one, two) { 22374 return function chainedFunction() { 22375 one.apply(this, arguments); 22376 two.apply(this, arguments); 22377 }; 22378 } 22379 22380 /** 22381 * Binds a method to the component. 22382 * 22383 * @param {object} component Component whose method is going to be bound. 22384 * @param {function} method Method to be bound. 22385 * @return {function} The bound method. 22386 */ 22387 function bindAutoBindMethod(component, method) { 22388 var boundMethod = method.bind(component); 22389 if (process.env.NODE_ENV !== 'production') { 22390 boundMethod.__reactBoundContext = component; 22391 boundMethod.__reactBoundMethod = method; 22392 boundMethod.__reactBoundArguments = null; 22393 var componentName = component.constructor.displayName; 22394 var _bind = boundMethod.bind; 22395 boundMethod.bind = function(newThis) { 22396 for ( 22397 var _len = arguments.length, 22398 args = Array(_len > 1 ? _len - 1 : 0), 22399 _key = 1; 22400 _key < _len; 22401 _key++ 22402 ) { 22403 args[_key - 1] = arguments[_key]; 22404 } 22405 22406 // User is trying to bind() an autobound method; we effectively will 22407 // ignore the value of "this" that the user is trying to use, so 22408 // let's warn. 22409 if (newThis !== component && newThis !== null) { 22410 if (process.env.NODE_ENV !== 'production') { 22411 warning( 22412 false, 22413 'bind(): React component methods may only be bound to the ' + 22414 'component instance. See %s', 22415 componentName 22416 ); 22417 } 22418 } else if (!args.length) { 22419 if (process.env.NODE_ENV !== 'production') { 22420 warning( 22421 false, 22422 'bind(): You are binding a component method to the component. ' + 22423 'React does this for you automatically in a high-performance ' + 22424 'way, so you can safely remove this call. See %s', 22425 componentName 22426 ); 22427 } 22428 return boundMethod; 22429 } 22430 var reboundMethod = _bind.apply(boundMethod, arguments); 22431 reboundMethod.__reactBoundContext = component; 22432 reboundMethod.__reactBoundMethod = method; 22433 reboundMethod.__reactBoundArguments = args; 22434 return reboundMethod; 22435 }; 22436 } 22437 return boundMethod; 22438 } 22439 22440 /** 22441 * Binds all auto-bound methods in a component. 22442 * 22443 * @param {object} component Component whose method is going to be bound. 22444 */ 22445 function bindAutoBindMethods(component) { 22446 var pairs = component.__reactAutoBindPairs; 22447 for (var i = 0; i < pairs.length; i += 2) { 22448 var autoBindKey = pairs[i]; 22449 var method = pairs[i + 1]; 22450 component[autoBindKey] = bindAutoBindMethod(component, method); 22451 } 22452 } 22453 22454 var IsMountedPreMixin = { 22455 componentDidMount: function() { 22456 this.__isMounted = true; 22457 } 22458 }; 22459 22460 var IsMountedPostMixin = { 22461 componentWillUnmount: function() { 22462 this.__isMounted = false; 22463 } 22464 }; 22465 22466 /** 22467 * Add more to the ReactClass base class. These are all legacy features and 22468 * therefore not already part of the modern ReactComponent. 22469 */ 22470 var ReactClassMixin = { 22471 /** 22472 * TODO: This will be deprecated because state should always keep a consistent 22473 * type signature and the only use case for this, is to avoid that. 22474 */ 22475 replaceState: function(newState, callback) { 22476 this.updater.enqueueReplaceState(this, newState, callback); 22477 }, 22478 22479 /** 22480 * Checks whether or not this composite component is mounted. 22481 * @return {boolean} True if mounted, false otherwise. 22482 * @protected 22483 * @final 22484 */ 22485 isMounted: function() { 22486 if (process.env.NODE_ENV !== 'production') { 22487 warning( 22488 this.__didWarnIsMounted, 22489 '%s: isMounted is deprecated. Instead, make sure to clean up ' + 22490 'subscriptions and pending requests in componentWillUnmount to ' + 22491 'prevent memory leaks.', 22492 (this.constructor && this.constructor.displayName) || 22493 this.name || 22494 'Component' 22495 ); 22496 this.__didWarnIsMounted = true; 22497 } 22498 return !!this.__isMounted; 22499 } 22500 }; 22501 22502 var ReactClassComponent = function() {}; 22503 _assign( 22504 ReactClassComponent.prototype, 22505 ReactComponent.prototype, 22506 ReactClassMixin 22507 ); 22508 22509 /** 22510 * Creates a composite component class given a class specification. 22511 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass 22512 * 22513 * @param {object} spec Class specification (which must define `render`). 22514 * @return {function} Component constructor function. 22515 * @public 22516 */ 22517 function createClass(spec) { 22518 // To keep our warnings more understandable, we'll use a little hack here to 22519 // ensure that Constructor.name !== 'Constructor'. This makes sure we don't 22520 // unnecessarily identify a class without displayName as 'Constructor'. 22521 var Constructor = identity(function(props, context, updater) { 22522 // This constructor gets overridden by mocks. The argument is used 22523 // by mocks to assert on what gets mounted. 22524 22525 if (process.env.NODE_ENV !== 'production') { 22526 warning( 22527 this instanceof Constructor, 22528 'Something is calling a React component directly. Use a factory or ' + 22529 'JSX instead. See: https://fb.me/react-legacyfactory' 22530 ); 22531 } 22532 22533 // Wire up auto-binding 22534 if (this.__reactAutoBindPairs.length) { 22535 bindAutoBindMethods(this); 22536 } 22537 22538 this.props = props; 22539 this.context = context; 22540 this.refs = emptyObject; 22541 this.updater = updater || ReactNoopUpdateQueue; 22542 22543 this.state = null; 22544 22545 // ReactClasses doesn't have constructors. Instead, they use the 22546 // getInitialState and componentWillMount methods for initialization. 22547 22548 var initialState = this.getInitialState ? this.getInitialState() : null; 22549 if (process.env.NODE_ENV !== 'production') { 22550 // We allow auto-mocks to proceed as if they're returning null. 22551 if ( 22552 initialState === undefined && 22553 this.getInitialState._isMockFunction 22554 ) { 22555 // This is probably bad practice. Consider warning here and 22556 // deprecating this convenience. 22557 initialState = null; 22558 } 22559 } 22560 _invariant( 22561 typeof initialState === 'object' && !Array.isArray(initialState), 22562 '%s.getInitialState(): must return an object or null', 22563 Constructor.displayName || 'ReactCompositeComponent' 22564 ); 22565 22566 this.state = initialState; 22567 }); 22568 Constructor.prototype = new ReactClassComponent(); 22569 Constructor.prototype.constructor = Constructor; 22570 Constructor.prototype.__reactAutoBindPairs = []; 22571 22572 injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); 22573 22574 mixSpecIntoComponent(Constructor, IsMountedPreMixin); 22575 mixSpecIntoComponent(Constructor, spec); 22576 mixSpecIntoComponent(Constructor, IsMountedPostMixin); 22577 22578 // Initialize the defaultProps property after all mixins have been merged. 22579 if (Constructor.getDefaultProps) { 22580 Constructor.defaultProps = Constructor.getDefaultProps(); 22581 } 22582 22583 if (process.env.NODE_ENV !== 'production') { 22584 // This is a tag to indicate that the use of these method n
22584ames is ok, 22585 // since it's used with createClass. If it's not, then it's likely a 22586 // mistake so we'll warn you to use the static property, property 22587 // initializer or constructor respectively. 22588 if (Constructor.getDefaultProps) { 22589 Constructor.getDefaultProps.isReactClassApproved = {}; 22590 } 22591 if (Constructor.prototype.getInitialState) { 22592 Constructor.prototype.getInitialState.isReactClassApproved = {}; 22593 } 22594 } 22595 22596 _invariant( 22597 Constructor.prototype.render, 22598 'createClass(...): Class specification must implement a `render` method.' 22599 ); 22600 22601 if (process.env.NODE_ENV !== 'production') { 22602 warning( 22603 !Constructor.prototype.componentShouldUpdate, 22604 '%s has a method called ' + 22605 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 22606 'The name is phrased as a question because the function is ' + 22607 'expected to return a value.', 22608 spec.displayName || 'A component' 22609 ); 22610 warning( 22611 !Constructor.prototype.componentWillRecieveProps, 22612 '%s has a method called ' + 22613 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', 22614 spec.displayName || 'A component' 22615 ); 22616 warning( 22617 !Constructor.prototype.UNSAFE_componentWillRecieveProps, 22618 '%s has a method called UNSAFE_componentWillRecieveProps(). ' + 22619 'Did you mean UNSAFE_componentWillReceiveProps()?', 22620 spec.displayName || 'A component' 22621 ); 22622 } 22623 22624 // Reduce time spent doing lookups by setting these on the prototype. 22625 for (var methodName in ReactClassInterface) { 22626 if (!Constructor.prototype[methodName]) { 22627 Constructor.prototype[methodName] = null; 22628 } 22629 } 22630 22631 return Constructor; 22632 } 22633 22634 return createClass; 22635} 22636 22637module.exports = factory; 22638 22639/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 22640 22641/***/ }), 22642/* 447 */ 22643/***/ (function(module, exports, __webpack_require__) { 22644 22645"use strict"; 22646/* WEBPACK VAR INJECTION */(function(process) {/** 22647 * Copyright (c) 2013-present, Facebook, Inc. 22648 * 22649 * This source code is licensed under the MIT license found in the 22650 * LICENSE file in the root directory of this source tree. 22651 * 22652 */ 22653 22654 22655var _prodInvariant = __webpack_require__(67); 22656 22657var ReactElement = __webpack_require__(59); 22658 22659var invariant = __webpack_require__(2); 22660 22661/** 22662 * Returns the first child in a collection of children and verifies that there 22663 * is only one child in the collection. 22664 * 22665 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only 22666 * 22667 * The current implementation of this function assumes that a single child gets 22668 * passed without a wrapper, but the purpose of this helper function is to 22669 * abstract away the particular structure of children. 22670 * 22671 * @param {?object} children Child collection structure. 22672 * @return {ReactElement} The first and only `ReactElement` contained in the 22673 * structure. 22674 */ 22675function onlyChild(children) { 22676 !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; 22677 return children; 22678} 22679 22680module.exports = onlyChild; 22681/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 22682 22683/***/ }), 22684/* 448 */ 22685/***/ (function(module, exports, __webpack_require__) { 22686 22687"use strict"; 22688 22689 22690module.exports = __webpack_require__(449); 22691 22692 22693/***/ }), 22694/* 449 */ 22695/***/ (function(module, exports, __webpack_require__) { 22696 22697"use strict"; 22698/* WEBPACK VAR INJECTION */(function(process) {/** 22699 * Copyright (c) 2013-present, Facebook, Inc. 22700 * 22701 * This source code is licensed under the MIT license found in the 22702 * LICENSE file in the root directory of this source tree. 22703 * 22704 */ 22705 22706/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ 22707 22708 22709 22710var ReactDOMComponentTree = __webpack_require__(14); 22711var ReactDefaultInjection = __webpack_require__(450); 22712var ReactMount = __webpack_require__(218); 22713var ReactReconciler = __webpack_require__(68); 22714var ReactUpdates = __webpack_require__(40); 22715var ReactVersion = __webpack_require__(528); 22716 22717var findDOMNode = __webpack_require__(529); 22718var getHostComponentFromComposite = __webpack_require__(219); 22719var renderSubtreeIntoContainer = __webpack_require__(530); 22720var warning = __webpack_require__(3); 22721 22722ReactDefaultInjection.inject(); 22723 22724var ReactDOM = { 22725 findDOMNode: findDOMNode, 22726 render: ReactMount.render, 22727 unmountComponentAtNode: ReactMount.unmountComponentAtNode, 22728 version: ReactVersion, 22729 22730 /* eslint-disable camelcase */ 22731 unstable_batchedUpdates: ReactUpdates.batchedUpdates, 22732 unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer 22733 /* eslint-enable camelcase */ 22734}; 22735 22736// Inject the runtime into a devtools global hook regardless of browser. 22737// Allows for debugging when the hook is injected on the page. 22738if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { 22739 __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ 22740 ComponentTree: { 22741 getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode, 22742 getNodeFromInstance: function (inst) { 22743 // inst is an internal instance (but could be a composite) 22744 if (inst._renderedComponent) { 22745 inst = getHostComponentFromComposite(inst); 22746 } 22747 if (inst) { 22748 return ReactDOMComponentTree.getNodeFromInstance(inst); 22749 } else { 22750 return null; 22751 } 22752 } 22753 }, 22754 Mount: ReactMount, 22755 Reconciler: ReactReconciler 22756 }); 22757} 22758 22759if (process.env.NODE_ENV !== 'production') { 22760 var ExecutionEnvironment = __webpack_require__(16); 22761 if (ExecutionEnvironment.canUseDOM && window.top === window.self) { 22762 // First check if devtools is not installed 22763 if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { 22764 // If we're in Chrome or Firefox, provide a download link if not installed. 22765 if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { 22766 // Firefox does not have the issue with devtools loaded over file:// 22767 var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1; 22768 console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools'); 22769 } 22770 } 22771 22772 var testFunc = function testFn() {}; 22773 process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, "It looks like you're using a minified copy of the development build " + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; 22774 22775 // If we're in IE8, check to see if we are in compatibility mode and provide 22776 // information on preventing compatibility mode 22777 var ieCompatibilityMode = document.documentMode && document.documentMode < 8; 22778 22779 process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : void 0; 22780 22781 var expectedFeatures = [ 22782 // shims 22783 Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim]; 22784 22785 for (var i = 0; i < expectedFeatures.length; i++) { 22786 if (!expectedFeatures[i]) { 22787 process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; 22788 break; 22789 } 22790 } 22791 } 22792} 22793 22794if (process.env.NODE_ENV !== 'production') { 22795 var ReactInstrumentation = __webpack_require__(28); 22796 var ReactDOMUnknownPropertyHook = __webpack_require__(531); 22797 var ReactDOMNullInputValuePropHook = __webpack_require__(532); 22798 var ReactDOMInvalidARIAHook = __webpack_require__(533); 22799 22800 ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook); 22801 ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook); 22802 ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook); 22803} 22804 22805module.exports = ReactDOM;
22806/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 22807 22808/***/ }), 22809/* 450 */ 22810/***/ (function(module, exports, __webpack_require__) { 22811 22812"use strict"; 22813/** 22814 * Copyright (c) 2013-present, Facebook, Inc. 22815 * 22816 * This source code is licensed under the MIT license found in the 22817 * LICENSE file in the root directory of this source tree. 22818 * 22819 */ 22820 22821 22822 22823var ARIADOMPropertyConfig = __webpack_require__(451); 22824var BeforeInputEventPlugin = __webpack_require__(452); 22825var ChangeEventPlugin = __webpack_require__(456); 22826var DefaultEventPluginOrder = __webpack_require__(464); 22827var EnterLeaveEventPlugin = __webpack_require__(465); 22828var HTMLDOMPropertyConfig = __webpack_require__(466); 22829var ReactComponentBrowserEnvironment = __webpack_require__(467); 22830var ReactDOMComponent = __webpack_require__(473); 22831var ReactDOMComponentTree = __webpack_require__(14); 22832var ReactDOMEmptyComponent = __webpack_require__(499); 22833var ReactDOMTreeTraversal = __webpack_require__(500); 22834var ReactDOMTextComponent = __webpack_require__(501); 22835var ReactDefaultBatchingStrategy = __webpack_require__(502); 22836var ReactEventListener = __webpack_require__(503); 22837var ReactInjection = __webpack_require__(505); 22838var ReactReconcileTransaction = __webpack_require__(506); 22839var SVGDOMPropertyConfig = __webpack_require__(512); 22840var SelectEventPlugin = __webpack_require__(513); 22841var SimpleEventPlugin = __webpack_require__(514); 22842 22843var alreadyInjected = false; 22844 22845function inject() { 22846 if (alreadyInjected) { 22847 // TODO: This is currently true because these injections are shared between 22848 // the client and the server package. They should be built independently 22849 // and not share any injection state. Then this problem will be solved. 22850 return; 22851 } 22852 alreadyInjected = true; 22853 22854 ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener); 22855 22856 /** 22857 * Inject modules for resolving DOM hierarchy and plugin ordering. 22858 */ 22859 ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder); 22860 ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree); 22861 ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal); 22862 22863 /** 22864 * Some important event plugins included by default (without having to require 22865 * them). 22866 */ 22867 ReactInjection.EventPluginHub.injectEventPluginsByName({ 22868 SimpleEventPlugin: SimpleEventPlugin, 22869 EnterLeaveEventPlugin: EnterLeaveEventPlugin, 22870 ChangeEventPlugin: ChangeEventPlugin, 22871 SelectEventPlugin: SelectEventPlugin, 22872 BeforeInputEventPlugin: BeforeInputEventPlugin 22873 }); 22874 22875 ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent); 22876 22877 ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent); 22878 22879 ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig); 22880 ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); 22881 ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); 22882 22883 ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) { 22884 return new ReactDOMEmptyComponent(instantiate); 22885 }); 22886 22887 ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction); 22888 ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy); 22889 22890 ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment); 22891} 22892 22893module.exports = { 22894 inject: inject 22895}; 22896 22897/***/ }), 22898/* 451 */ 22899/***/ (function(module, exports, __webpack_require__) { 22900 22901"use strict"; 22902/** 22903 * Copyright (c) 2013-present, Facebook, Inc. 22904 * 22905 * This source code is licensed under the MIT license found in the 22906 * LICENSE file in the root directory of this source tree. 22907 * 22908 */ 22909 22910 22911 22912var ARIADOMPropertyConfig = { 22913 Properties: { 22914 // Global States and Properties 22915 'aria-current': 0, // state 22916 'aria-details': 0, 22917 'aria-disabled': 0, // state 22918 'aria-hidden': 0, // state 22919 'aria-invalid': 0, // state 22920 'aria-keyshortcuts': 0, 22921 'aria-label': 0, 22922 'aria-roledescription': 0, 22923 // Widget Attributes 22924 'aria-autocomplete': 0, 22925 'aria-checked': 0, 22926 'aria-expanded': 0, 22927 'aria-haspopup': 0, 22928 'aria-level': 0,
22929 'aria-modal': 0, 22930 'aria-multiline': 0, 22931 'aria-multiselectable': 0, 22932 'aria-orientation': 0, 22933 'aria-placeholder': 0, 22934 'aria-pressed': 0, 22935 'aria-readonly': 0, 22936 'aria-required': 0, 22937 'aria-selected': 0, 22938 'aria-sort': 0, 22939 'aria-valuemax': 0, 22940 'aria-valuemin': 0, 22941 'aria-valuenow': 0, 22942 'aria-valuetext': 0, 22943 // Live Region Attributes 22944 'aria-atomic': 0, 22945 'aria-busy': 0, 22946 'aria-live': 0, 22947 'aria-relevant': 0, 22948 // Drag-and-Drop Attributes 22949 'aria-dropeffect': 0, 22950 'aria-grabbed': 0, 22951 // Relationship Attributes 22952 'aria-activedescendant': 0, 22953 'aria-colcount': 0, 22954 'aria-colindex': 0, 22955 'aria-colspan': 0, 22956 'aria-controls': 0, 22957 'aria-describedby': 0, 22958 'aria-errormessage': 0, 22959 'aria-flowto': 0, 22960 'aria-labelledby': 0, 22961 'aria-owns': 0, 22962 'aria-posinset': 0, 22963 'aria-rowcount': 0, 22964 'aria-rowindex': 0, 22965 'aria-rowspan': 0, 22966 'aria-setsize': 0 22967 }, 22968 DOMAttributeNames: {}, 22969 DOMPropertyNames: {} 22970}; 22971 22972module.exports = ARIADOMPropertyConfig; 22973 22974/***/ }), 22975/* 452 */ 22976/***/ (function(module, exports, __webpack_require__) { 22977 22978"use strict"; 22979/** 22980 * Copyright (c) 2013-present, Facebook, Inc. 22981 * 22982 * This source code is licensed under the MIT license found in the 22983 * LICENSE file in the root directory of this source tree. 22984 * 22985 */ 22986 22987 22988 22989var EventPropagators = __webpack_require__(76); 22990var ExecutionEnvironment = __webpack_require__(16); 22991var FallbackCompositionState = __webpack_require__(453); 22992var SyntheticCompositionEvent = __webpack_require__(454); 22993var SyntheticInputEvent = __webpack_require__(455); 22994 22995var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space 22996var START_KEYCODE = 229; 22997 22998var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; 22999 23000var documentMode = null; 23001if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { 23002 documentMode = document.documentMode; 23003} 23004 23005// Webkit offers a very useful `textInput` event that can be used to 23006// directly represent `beforeInput`. The IE `textinput` event is not as 23007// useful, so we don't use it. 23008var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); 23009 23010// In IE9+, we have access to composition events, but the data supplied 23011// by the native compositionend event may be incorrect. Japanese ideographic 23012// spaces, for instance (\u3000) are not recorded correctly. 23013var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); 23014 23015/** 23016 * Opera <= 12 includes TextEvent in window, but does not fire 23017 * text input events. Rely on keypress instead. 23018 */ 23019function isPresto() { 23020 var opera = window.opera; 23021 return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; 23022} 23023 23024var SPACEBAR_CODE = 32; 23025var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); 23026 23027// Events and their corresponding property names. 23028var eventTypes = { 23029 beforeInput: { 23030 phasedRegistrationNames: { 23031 bubbled: 'onBeforeInput', 23032 captured: 'onBeforeInputCapture' 23033 }, 23034 dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste'] 23035 }, 23036 compositionEnd: { 23037 phasedRegistrationNames: { 23038 bubbled: 'onCompositionEnd', 23039 captured: 'onCompositionEndCapture' 23040 }, 23041 dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] 23042 }, 23043 compositionStart: { 23044 phasedRegistrationNames: { 23045 bubbled: 'onCompositionStart', 23046 captured: 'onCompositionStartCapture' 23047 }, 23048 dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] 23049 }, 23050 compositionUpdate: { 23051 phasedRegistrationNames: { 23052 bubbled: 'onCompositionUpdate', 23053 captured: 'onCompositionUpdateCapture' 23054 }, 23055 dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] 23056 } 23057}; 23058 23059// Track whether we've ever handled a keypress on the space key. 23060var hasSpaceKeypress = false; 23061 23062/** 23063 * Return whether a native keypress event is assumed to be a command. 23064 * This is required because Firefox fires `keypress` events for key commands 23065 * (cut, copy, select-all, etc.) even though no character is inserted. 23066 */ 23067function isKeypressCommand(nativeEvent) { 23068 return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && 23069 // ctrlKey && altKey is equivalent to AltGr, and is not a command. 23070 !(nativeEvent.ctrlKey && nativeEvent.altKey); 23071} 23072 23073/** 23074 * Translate native top level events into event types. 23075 * 23076 * @param {string} topLevelType 23077 * @return {object} 23078 */ 23079function getCompositionEventType(topLevelType) { 23080 switch (topLevelType) { 23081 case 'topCompositionStart': 23082 return eventTypes.compositionStart; 23083 case 'topCompositionEnd': 23084 return eventTypes.compositionEnd; 23085 case 'topCompositionUpdate': 23086 return eventTypes.compositionUpdate; 23087 } 23088} 23089 23090/** 23091 * Does our fallback best-guess model think this event signifies that 23092 * composition has begun? 23093 * 23094 * @param {string} topLevelType 23095 * @param {object} nativeEvent 23096 * @return {boolean} 23097 */ 23098function isFallbackCompositionStart(topLevelType, nativeEvent) { 23099 return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE; 23100} 23101 23102/** 23103 * Does our fallback mode think that this event is the end of composition? 23104 * 23105 * @param {string} topLevelType 23106 * @param {object} nativeEvent 23107 * @return {boolean} 23108 */ 23109function isFallbackCompositionEnd(topLevelType, nativeEvent) { 23110 switch (topLevelType) { 23111 case 'topKeyUp': 23112 // Command keys insert or clear IME input. 23113 return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; 23114 case 'topKeyDown': 23115 // Expect IME keyCode on each keydown. If we get any other 23116 // code we must have exited earlier. 23117 return nativeEvent.keyCode !== START_KEYCODE; 23118 case 'topKeyPress': 23119 case 'topMouseDown': 23120 case 'topBlur': 23121 // Events are not possible without cancelling IME. 23122 return true; 23123 default: 23124 return false;
23125 } 23126} 23127 23128/** 23129 * Google Input Tools provides composition data via a CustomEvent, 23130 * with the `data` property populated in the `detail` object. If this 23131 * is available on the event object, use it. If not, this is a plain 23132 * composition event and we have nothing special to extract. 23133 * 23134 * @param {object} nativeEvent 23135 * @return {?string} 23136 */ 23137function getDataFromCustomEvent(nativeEvent) { 23138 var detail = nativeEvent.detail; 23139 if (typeof detail === 'object' && 'data' in detail) { 23140 return detail.data; 23141 } 23142 return null; 23143} 23144 23145// Track the current IME composition fallback object, if any. 23146var currentComposition = null; 23147 23148/** 23149 * @return {?object} A SyntheticCompositionEvent. 23150 */ 23151function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { 23152 var eventType; 23153 var fallbackData; 23154 23155 if (canUseCompositionEvent) { 23156 eventType = getCompositionEventType(topLevelType); 23157 } else if (!currentComposition) { 23158 if (isFallbackCompositionStart(topLevelType, nativeEvent)) { 23159 eventType = eventTypes.compositionStart; 23160 } 23161 } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { 23162 eventType = eventTypes.compositionEnd; 23163 } 23164 23165 if (!eventType) { 23166 return null; 23167 } 23168 23169 if (useFallbackCompositionData) { 23170 // The current composition is stored statically and must not be 23171 // overwritten while composition continues. 23172 if (!currentComposition && eventType === eventTypes.compositionStart) { 23173 currentComposition = FallbackCompositionState.getPooled(nativeEventTarget); 23174 } else if (eventType === eventTypes.compositionEnd) { 23175 if (currentComposition) { 23176 fallbackData = currentComposition.getData(); 23177 } 23178 } 23179 } 23180 23181 var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget); 23182 23183 if (fallbackData) { 23184 // Inject data generated from fallback path into the synthetic event. 23185 // This matches the property of native CompositionEventInterface. 23186 event.data = fallbackData; 23187 } else { 23188 var customData = getDataFromCustomEvent(nativeEvent); 23189 if (customData !== null) { 23190 event.data = customData; 23191 } 23192 } 23193 23194 EventPropagators.accumulateTwoPhaseDispatches(event); 23195 return event; 23196} 23197 23198/** 23199 * @param {string} topLevelType Record from `EventConstants`. 23200 * @param {object} nativeEvent Native browser event. 23201 * @return {?string} The string corresponding to this `beforeInput` event. 23202 */ 23203function getNativeBeforeInputChars(topLevelType, nativeEvent) { 23204 switch (topLevelType) { 23205 case 'topCompositionEnd': 23206 return getDataFromCustomEvent(nativeEvent); 23207 case 'topKeyPress': 23208 /** 23209 * If native `textInput` events are available, our goal is to make 23210 * use of them. However, there is a special case: the spacebar key. 23211 * In Webkit, preventing default on a spacebar `textInput` event 23212 * cancels character insertion, but it *also* causes the browser 23213 * to fall back to its default spacebar behavior of scrolling the 23214 * page. 23215 * 23216 * Tracking at: 23217 * https://code.google.com/p/chromium/issues/detail?id=355103 23218 * 23219 * To avoid this issue, use the keypress event as if no `textInput` 23220 * event is available. 23221 */ 23222 var which = nativeEvent.which; 23223 if (which !== SPACEBAR_CODE) { 23224 return null; 23225 } 23226 23227 hasSpaceKeypress = true; 23228 return SPACEBAR_CHAR; 23229 23230 case 'topTextInput': 23231 // Record the characters to be added to the DOM. 23232 var chars = nativeEvent.data; 23233 23234 // If it's a spacebar character, assume that we have already handled 23235 // it at the keypress level and bail immediately. Android Chrome 23236 // doesn't give us keycodes, so we need to blacklist it. 23237 if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { 23238 return null; 23239 } 23240 23241 return chars; 23242 23243 default: 23244 // For other native event types, do nothing. 23245 return null; 23246 } 23247} 23248 23249/** 23250 * For browsers that do not provide the `textInput` event, extract the 23251 * appropriate string to use for SyntheticInputEvent. 23252 * 23253 * @param {string} topLevelType Record from `EventConstants`. 23254 * @param {object} nativeEvent Native browser event. 23255 * @return {?string} The fallback string for this `beforeInput` event. 23256 */ 23257function getFallbackBeforeInputChars(topLevelType, nativeEvent) { 23258 // If we are currently composing (IME) and using a fallback to do so, 23259 // try to extract the composed characters from the fallback object. 23260 // If composition event is available, we extract a string only at 23261 // compositionevent, otherwise extract it at fallback events. 23262 if (currentComposition) { 23263 if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { 23264 var chars = currentComposition.getData(); 23265 FallbackCompositionState.release(currentComposition); 23266 currentComposition = null; 23267 return chars; 23268 } 23269 return null; 23270 } 23271 23272 switch (topLevelType) { 23273 case 'topPaste': 23274 // If a paste event occurs after a keypress, throw out the input 23275 // chars. Paste events should not lead to BeforeInput events. 23276 return null; 23277 case 'topKeyPress': 23278 /** 23279 * As of v27, Firefox may fire keypress events even when no character 23280 * will be inserted. A few possibilities: 23281 * 23282 * - `which` is `0`. Arrow keys, Esc key, etc. 23283 * 23284 * - `which` is the pressed key code, but no char is available. 23285 * Ex: 'AltGr + d` in Polish. There is no modified character for 23286 * this key combination and no character is inserted into the 23287 * document, but FF fires the keypress for char code `100` anyway. 23288 * No `input` event will occur. 23289 * 23290 * - `which` is the pressed key code, but a command combination is 23291 * being used. Ex: `Cmd+C`. No character is inserted, and no 23292 * `input` event will occur. 23293 */ 23294 if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { 23295 return String.fromCharCode(nativeEvent.which); 23296 } 23297 return null; 23298 case 'topCompositionEnd': 23299 return useFallbackCompositionData ? null : nativeEvent.data; 23300 default: 23301 return null; 23302 } 23303} 23304 23305/** 23306 * Extract a SyntheticInputEvent for `beforeInput`, based on either native 23307 * `textInput` or fallback behavior. 23308 * 23309 * @return {?object} A SyntheticInputEvent. 23310 */ 23311function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { 23312 var chars; 23313 23314 if (canUseTextInputEvent) { 23315 chars = getNativeBeforeInputChars(topLevelType, nativeEvent); 23316 } else { 23317 chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); 23318 } 23319 23320 // If no characters are being inserted, no BeforeInput event should 23321 // be fired. 23322 if (!chars) { 23323 return null; 23324 } 23325 23326 var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget); 23327 23328 event.data = chars; 23329 EventPropagators.accumulateTwoPhaseDispatches(event); 23330 return event; 23331} 23332
23333/** 23334 * Create an `onBeforeInput` event to match 23335 * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. 23336 * 23337 * This event plugin is based on the native `textInput` event 23338 * available in Chrome, Safari, Opera, and IE. This event fires after 23339 * `onKeyPress` and `onCompositionEnd`, but before `onInput`. 23340 * 23341 * `beforeInput` is spec'd but not implemented in any browsers, and 23342 * the `input` event does not provide any useful information about what has 23343 * actually been added, contrary to the spec. Thus, `textInput` is the best 23344 * available event to identify the characters that have actually been inserted 23345 * into the target node. 23346 * 23347 * This plugin is also responsible for emitting `composition` events, thus 23348 * allowing us to share composition fallback code for both `beforeInput` and 23349 * `composition` event types. 23350 */ 23351var BeforeInputEventPlugin = { 23352 eventTypes: eventTypes, 23353 23354 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 23355 return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)]; 23356 } 23357}; 23358 23359module.exports = BeforeInputEventPlugin; 23360 23361/***/ }), 23362/* 453 */ 23363/***/ (function(module, exports, __webpack_require__) { 23364 23365"use strict"; 23366/** 23367 * Copyright (c) 2013-present, Facebook, Inc. 23368 * 23369 * This source code is licensed under the MIT license found in the 23370 * LICENSE file in the root directory of this source tree. 23371 * 23372 */ 23373 23374 23375 23376var _assign = __webpack_require__(10); 23377 23378var PooledClass = __webpack_require__(60); 23379 23380var getTextContentAccessor = __webpack_require__(198); 23381 23382/** 23383 * This helper class stores information about text content of a target node, 23384 * allowing comparison of content before and after a given event. 23385 * 23386 * Identify the node where selection currently begins, then observe 23387 * both its text content and its current position in the DOM. Since the 23388 * browser may natively replace the target node during composition, we can 23389 * use its position to find its replacement. 23390 * 23391 * @param {DOMEventTarget} root 23392 */ 23393function FallbackCompositionState(root) { 23394 this._root = root; 23395 this._startText = this.getText(); 23396 this._fallbackText = null; 23397} 23398 23399_assign(FallbackCompositionState.prototype, { 23400 destructor: function () { 23401 this._root = null; 23402 this._startText = null; 23403 this._fallbackText = null; 23404 }, 23405 23406 /** 23407 * Get current text of input. 23408 * 23409 * @return {string} 23410 */ 23411 getText: function () { 23412 if ('value' in this._root) { 23413 return this._root.value; 23414 } 23415 return this._root[getTextContentAccessor()]; 23416 }, 23417 23418 /** 23419 * Determine the differing substring between the initially stored 23420 * text content and the current content. 23421 * 23422 * @return {string} 23423 */ 23424 getData: function () { 23425 if (this._fallbackText) { 23426 return this._fallbackText; 23427 } 23428 23429 var start; 23430 var startValue = this._startText; 23431 var startLength = startValue.length; 23432 var end; 23433 var endValue = this.getText(); 23434 var endLength = endValue.length; 23435 23436 for (start = 0; start < startLength; start++) { 23437 if (startValue[start] !== endValue[start]) { 23438 break; 23439 } 23440 } 23441 23442 var minEnd = startLength - start; 23443 for (end = 1; end <= minEnd; end++) { 23444 if (startValue[startLength - end] !== endValue[endLength - end]) { 23445 break; 23446 } 23447 } 23448 23449 var sliceTail = end > 1 ? 1 - end : undefined; 23450 this._fallbackText = endValue.slice(start, sliceTail); 23451 return this._fallbackText; 23452 } 23453}); 23454 23455PooledClass.addPoolingTo(FallbackCompositionState); 23456 23457module.exports = FallbackCompositionState; 23458 23459/***/ }), 23460/* 454 */ 23461/***/ (function(module, exports, __webpack_require__) { 23462 23463"use strict"; 23464/** 23465 * Copyright (c) 2013-present, Facebook, Inc. 23466 * 23467 * This source code is licensed under the MIT license found in the 23468 * LICENSE file in the root directory of this source tree. 23469 * 23470 */ 23471 23472 23473 23474var SyntheticEvent = __webpack_require__(43); 23475 23476/** 23477 * @interface Event 23478 * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents 23479 */ 23480var CompositionEventInterface = { 23481 data: null 23482}; 23483 23484/** 23485 * @param {object} dispatchConfig Configuration used to dispatch this event. 23486 * @param {string} dispatchMarker Marker identifying the event target. 23487 * @param {object} nativeEvent Native browser event. 23488 * @extends {SyntheticUIEvent} 23489 */
23490function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 23491 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 23492} 23493 23494SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); 23495 23496module.exports = SyntheticCompositionEvent; 23497 23498/***/ }), 23499/* 455 */ 23500/***/ (function(module, exports, __webpack_require__) { 23501 23502"use strict"; 23503/** 23504 * Copyright (c) 2013-present, Facebook, Inc. 23505 * 23506 * This source code is licensed under the MIT license found in the 23507 * LICENSE file in the root directory of this source tree. 23508 * 23509 */ 23510 23511 23512 23513var SyntheticEvent = __webpack_require__(43); 23514 23515/** 23516 * @interface Event 23517 * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 23518 * /#events-inputevents 23519 */ 23520var InputEventInterface = { 23521 data: null 23522}; 23523 23524/** 23525 * @param {object} dispatchConfig Configuration used to dispatch this event. 23526 * @param {string} dispatchMarker Marker identifying the event target. 23527 * @param {object} nativeEvent Native browser event. 23528 * @extends {SyntheticUIEvent} 23529 */ 23530function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 23531 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 23532} 23533 23534SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); 23535 23536module.exports = SyntheticInputEvent; 23537 23538/***/ }), 23539/* 456 */ 23540/***/ (function(module, exports, __webpack_require__) { 23541 23542"use strict"; 23543/** 23544 * Copyright (c) 2013-present, Facebook, Inc. 23545 * 23546 * This source code is licensed under the MIT license found in the 23547 * LICENSE file in the root directory of this source tree. 23548 * 23549 */ 23550 23551 23552 23553var EventPluginHub = __webpack_require__(77); 23554var EventPropagators = __webpack_require__(76); 23555var ExecutionEnvironment = __webpack_require__(16); 23556var ReactDOMComponentTree = __webpack_require__(14); 23557var ReactUpdates = __webpack_require__(40); 23558var SyntheticEvent = __webpack_require__(43); 23559 23560var inputValueTracking = __webpack_require__(201); 23561var getEventTarget = __webpack_require__(139); 23562var isEventSupported = __webpack_require__(140); 23563var isTextInputElement = __webpack_require__(202); 23564 23565var eventTypes = { 23566 change: { 23567 phasedRegistrationNames: { 23568 bubbled: 'onChange', 23569 captured: 'onChangeCapture' 23570 }, 23571 dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange'] 23572 } 23573}; 23574 23575function createAndAccumulateChangeEvent(inst, nativeEvent, target) { 23576 var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target); 23577 event.type = 'change'; 23578 EventPropagators.accumulateTwoPhaseDispatches(event); 23579 return event; 23580} 23581/** 23582 * For IE shims 23583 */ 23584var activeElement = null; 23585var activeElementInst = null; 23586 23587/** 23588 * SECTION: handle `change` event 23589 */ 23590function shouldUseChangeEvent(elem) { 23591 var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); 23592 return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; 23593} 23594 23595var doesChangeEventBubble = false; 23596if (ExecutionEnvironment.canUseDOM) { 23597 // See `handleChange` comment below 23598 doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8); 23599} 23600 23601function manualDispatchChangeEvent(nativeEvent) { 23602 var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent)); 23603 23604 // If change and propertychange bubbled, we'd just bind to it like all the 23605 // other events and have it go through ReactBrowserEventEmitter. Since it 23606 // doesn't, we manually listen for the events and so we have to enqueue and 23607 // process the abstract event manually. 23608 // 23609 // Batching is necessary here in order to ensure that all event handlers run 23610 // before the next rerender (including event handlers attached to ancestor 23611 // elements instead of directly on the input). Without this, controlled 23612 // components don't work properly in conjunction with event bubbling because 23613 // the component is rerendered and the value reverted before all the event 23614 // handlers can run. See https://github.com/facebook/react/issues/708. 23615 ReactUpdates.batchedUpdates(runEventInBatch, event); 23616} 23617 23618function runEventInBatch(event) { 23619 EventPluginHub.enqueueEvents(event); 23620 EventPluginHub.processEventQueue(false); 23621} 23622 23623function startWatchingForChangeEventIE8(target, targetInst) { 23624 activeElement = target; 23625 activeElementInst = targetInst; 23626 activeElement.attachEvent('onchange', manualDispatchChangeEvent); 23627} 23628 23629function stopWatchingForChangeEventIE8() { 23630 if (!activeElement) { 23631 return; 23632 } 23633 activeElement.detachEvent('onchange', manualDispatchChangeEvent); 23634 activeElement = null; 23635 activeElementInst = null; 23636} 23637 23638function getInstIfValueChanged(targetInst, nativeEvent) { 23639 var updated = inputValueTracking.updateValueIfChanged(targetInst); 23640 var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough; 23641 23642 if (updated || simulated) { 23643 return targetInst; 23644 } 23645} 23646 23647function getTargetInstForChangeEvent(topLevelType, targetInst) { 23648 if (topLevelType === 'topChange') { 23649 return targetInst; 23650 } 23651} 23652 23653function handleEventsForChangeEventIE8(topLevelType, target, targetInst) { 23654 if (topLevelType === 'topFocus') { 23655 // stopWatching() should be a noop here but we call it just in case we 23656 // missed a blur event somehow. 23657 stopWatchingForChangeEventIE8(); 23658 startWatchingForChangeEventIE8(target, targetInst); 23659 } else if (topLevelType === 'topBlur') { 23660 stopWatchingForChangeEventIE8(); 23661 } 23662} 23663 23664/** 23665 * SECTION: handle `input` event 23666 */ 23667var isInputEventSupported = false;
23668if (ExecutionEnvironment.canUseDOM) { 23669 // IE9 claims to support the input event but fails to trigger it when 23670 // deleting text, so we ignore its input events. 23671 23672 isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9); 23673} 23674 23675/** 23676 * (For IE <=9) Starts tracking propertychange events on the passed-in element 23677 * and override the value property so that we can distinguish user events from 23678 * value changes in JS. 23679 */ 23680function startWatchingForValueChange(target, targetInst) { 23681 activeElement = target; 23682 activeElementInst = targetInst; 23683 activeElement.attachEvent('onpropertychange', handlePropertyChange); 23684} 23685 23686/** 23687 * (For IE <=9) Removes the event listeners from the currently-tracked element, 23688 * if any exists. 23689 */ 23690function stopWatchingForValueChange() { 23691 if (!activeElement) { 23692 return; 23693 } 23694 activeElement.detachEvent('onpropertychange', handlePropertyChange); 23695 23696 activeElement = null; 23697 activeElementInst = null; 23698} 23699 23700/** 23701 * (For IE <=9) Handles a propertychange event, sending a `change` event if 23702 * the value of the active element has changed. 23703 */ 23704function handlePropertyChange(nativeEvent) { 23705 if (nativeEvent.propertyName !== 'value') { 23706 return; 23707 } 23708 if (getInstIfValueChanged(activeElementInst, nativeEvent)) { 23709 manualDispatchChangeEvent(nativeEvent); 23710 } 23711} 23712 23713function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) { 23714 if (topLevelType === 'topFocus') { 23715 // In IE8, we can capture almost all .value changes by adding a 23716 // propertychange handler and looking for events with propertyName 23717 // equal to 'value' 23718 // In IE9, propertychange fires for most input events but is buggy and 23719 // doesn't fire when text is deleted, but conveniently, selectionchange 23720 // appears to fire in all of the remaining cases so we catch those and 23721 // forward the event if the value has changed 23722 // In either case, we don't want to call the event handler if the value 23723 // is changed from JS so we redefine a setter for `.value` that updates 23724 // our activeElementValue variable, allowing us to ignore those changes 23725 // 23726 // stopWatching() should be a noop here but we call it just in case we 23727 // missed a blur event somehow. 23728 stopWatchingForValueChange(); 23729 startWatchingForValueChange(target, targetInst); 23730 } else if (topLevelType === 'topBlur') { 23731 stopWatchingForValueChange(); 23732 } 23733} 23734 23735// For IE8 and IE9. 23736function getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) { 23737 if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') { 23738 // On the selectionchange event, the target is just document which isn't 23739 // helpful for us so just check activeElement instead. 23740 // 23741 // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire 23742 // propertychange on the first input event after setting `value` from a 23743 // script and fires only keydown, keypress, keyup. Catching keyup usually 23744 // gets it and catching keydown lets us fire an event for the first 23745 // keystroke if user does a key repeat (it'll be a little delayed: right 23746 // before the second keystroke). Other input methods (e.g., paste) seem to 23747 // fire selectionchange normally. 23748 return getInstIfValueChanged(activeElementInst, nativeEvent); 23749 } 23750} 23751 23752/** 23753 * SECTION: handle `click` event 23754 */ 23755function shouldUseClickEvent(elem) { 23756 // Use the `click` event to detect changes to checkbox and radio inputs. 23757 // This approach works across all browsers, whereas `change` does not fire 23758 // until `blur` in IE8. 23759 var nodeName = elem.nodeName; 23760 return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); 23761} 23762 23763function getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) { 23764 if (topLevelType === 'topClick') { 23765 return getInstIfValueChanged(targetInst, nativeEvent); 23766 } 23767} 23768 23769function getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) { 23770 if (topLevelType === 'topInput' || topLevelType === 'topChange') { 23771 return getInstIfValueChanged(targetInst, nativeEvent); 23772 } 23773} 23774 23775function handleControlledInputBlur(inst, node) { 23776 // TODO: In IE, inst is occasionally null. Why? 23777 if (inst == null) { 23778 return; 23779 } 23780 23781 // Fiber and ReactDOM keep wrapper state in separate places 23782 var state = inst._wrapperState || node._wrapperState; 23783 23784 if (!state || !state.controlled || node.type !== 'number') { 23785 return; 23786 } 23787 23788 // If controlled, assign the value attribute to the current value on blur 23789 var value = '' + node.value; 23790 if (node.getAttribute('value') !== value) { 23791 node.setAttribute('value', value); 23792 } 23793} 23794 23795/** 23796 * This plugin creates an `onChange` event that normalizes change events 23797 * across form elements. This event fires at a time when it's possible to 23798 * change the element's value without seeing a flicker. 23799 * 23800 * Supported elements are: 23801 * - input (see `isTextInputElement`) 23802 * - textarea 23803 * - select 23804 */ 23805var ChangeEventPlugin = { 23806 eventTypes: eventTypes, 23807 23808 _allowSimulatedPassThrough: true, 23809 _isInputEventSupported: isInputEventSupported, 23810 23811 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 23812 var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; 23813 23814 var getTargetInstFunc, handleEventFunc; 23815 if (shouldUseChangeEvent(targetNode)) { 23816 if (doesChangeEventBubble) { 23817 getTargetInstFunc = getTargetInstForChangeEvent; 23818 } else { 23819 handleEventFunc = handleEventsForChangeEventIE8; 23820 } 23821 } else if (isTextInputElement(targetNode)) { 23822 if (isInputEventSupported) { 23823 getTargetInstFunc = getTargetInstForInputOrChangeEvent; 23824 } else { 23825 getTargetInstFunc = getTargetInstForInputEventPolyfill; 23826 handleEventFunc = handleEventsForInputEventPolyfill; 23827 } 23828 } else if (shouldUseClickEvent(targetNode)) { 23829 getTargetInstFunc = getTargetInstForClickEvent; 23830 } 23831 23832 if (getTargetInstFunc) { 23833 var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent); 23834 if (inst) { 23835 var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget); 23836 return event; 23837 } 23838 } 23839 23840 if (handleEventFunc) { 23841 handleEventFunc(topLevelType, targetNode, targetInst); 23842 } 23843 23844 // When blurring, set the value attribute for number inputs 23845 if (topLevelType === 'topBlur') { 23846 handleControlledInputBlur(targetInst, targetNode); 23847 } 23848 } 23849}; 23850 23851module.exports = ChangeEventPlugin; 23852 23853/***/ }), 23854/* 457 */ 23855/***/ (function(module, exports, __webpack_require__) { 23856 23857"use strict"; 23858/** 23859 * Copyright (c) 2013-present, Facebook, Inc. 23860 * 23861 * This source code is licensed under the MIT license found in the 23862 * LICENSE file in the root directory of this source tree. 23863 * 23864 * 23865 */ 23866 23867 23868 23869var ReactOwner = __webpack_require__(458); 23870 23871var ReactRef = {}; 23872 23873function attachRef(ref, component, owner) { 23874 if (typeof ref === 'function') { 23875 ref(component.getPublicInstance()); 23876 } else { 23877 // Legacy ref 23878 ReactOwner.addComponentAsRefTo(component, ref, owner); 23879 } 23880} 23881 23882function detachRef(ref, component, owner) { 23883 if (typeof ref === 'function') { 23884 ref(null); 23885 } else { 23886 // Legacy ref 23887 ReactOwner.removeComponentAsRefFrom(component, ref, owner); 23888 } 23889} 23890 23891ReactRef.attachRefs = function (instance, element) { 23892 if (element === null || typeof element !== 'object') { 23893 return; 23894 } 23895 var ref = element.ref; 23896 if (ref != null) { 23897 attachRef(ref, instance, element._owner); 23898 } 23899}; 23900 23901ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { 23902 // If either the owner or a `ref` has changed, make sure the newest owner 23903 // has stored a reference to `this`, and the previous owner (if different) 23904 // has forgotten the reference to `this`. We use the element instead 23905 // of the public this.props because the post processing cannot determine 23906 // a ref. The ref conceptually lives on the element. 23907 23908 // TODO: Should this even be possible? The owner cannot change because 23909 // it's forbidden by shouldUpdateReactComponent. The ref can change 23910 // if you swap the keys of but not the refs. Reconsider where this check 23911 // is made. It probably belongs where the key checking and 23912 // instantiateReactComponent is done. 23913 23914 var prevRef = null; 23915 var prevOwner = null; 23916 if (prevElement !== null && typeof prevElement === 'object') { 23917 prevRef = prevElement.ref; 23918 prevOwner = prevElement._owner; 23919 } 23920 23921 var nextRef = null; 23922 var nextOwner = null; 23923 if (nextElement !== null && typeof nextElement === 'object') { 23924 nextRef = nextElement.ref; 23925 nextOwner = nextElement._owner; 23926 } 23927 23928 return prevRef !== nextRef || 23929 // If owner changes but we have an unchanged function ref, don't update refs 23930 typeof nextRef === 'string' && nextOwner !== prevOwner; 23931}; 23932 23933ReactRef.detachRefs = function (instance, element) { 23934 if (element === null || typeof element !== 'object') { 23935 return; 23936 } 23937 var ref = element.ref; 23938 if (ref != null) { 23939 detachRef(ref, instance, element._owner); 23940 } 23941}; 23942 23943module.exports = ReactRef; 23944 23945/***/ }), 23946/* 458 */ 23947/***/ (function(module, exports, __webpack_require__) { 23948 23949"use strict"; 23950/* WEBPACK VAR INJECTION */(function(process) {/** 23951 * Copyright (c) 2013-present, Facebook, Inc. 23952 * 23953 * This source code is licensed under the MIT license found in the 23954 * LICENSE file in the root directory of this source tree. 23955 * 23956 * 23957 */ 23958 23959 23960 23961var _prodInvariant = __webpack_require__(8); 23962 23963var invariant = __webpack_require__(2); 23964 23965/** 23966 * @param {?object} object 23967 * @return {boolean} True if `object` is a valid owner. 23968 * @final 23969 */ 23970function isValidOwner(object) { 23971 return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); 23972} 23973 23974/** 23975 * ReactOwners are capable of storing references to owned components. 23976 * 23977 * All components are capable of //being// referenced by owner components, but 23978 * only ReactOwner components are capable of //referencing// owned components. 23979 * The named reference is known as a "ref". 23980 * 23981 * Refs are available when mounted and updated during reconciliation. 23982 * 23983 * var MyComponent = React.createClass({ 23984 * render: function() { 23985 * return ( 23986 * <div onClick={this.handleClick}> 23987 * <CustomComponent ref="custom" /> 23988 * </div> 23989 * ); 23990 * }, 23991 * handleClick: function() { 23992 * this.refs.custom.handleClick(); 23993 * }, 23994 * componentDidMount: function() { 23995 * this.refs.custom.initialize(); 23996 * } 23997 * }); 23998 * 23999 * Refs should rarely be used. When refs are used, they should only be done to 24000 * control data that is not handled by React's data flow. 24001 * 24002 * @class ReactOwner 24003 */ 24004var ReactOwner = { 24005 /** 24006 * Adds a component by ref to an owner component. 24007 * 24008 * @param {ReactComponent} component Component to reference. 24009 * @param {string} ref Name by which to refer to the component. 24010 * @param {ReactOwner} owner Component on which to record the ref. 24011 * @final 24012 * @internal 24013 */ 24014 addComponentAsRefTo: function (component, ref, owner) { 24015 !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0; 24016 owner.attachRef(ref, component); 24017 }, 24018 24019 /** 24020 * Removes a component by ref from an owner component. 24021 * 24022 * @param {ReactComponent} component Component to dereference. 24023 * @param {string} ref Name of the ref to remove. 24024 * @param {ReactOwner} owner Component on which the ref is recorded. 24025 * @final 24026 * @internal 24027 */ 24028 removeComponentAsRefFrom: function (component, ref, owner) { 24029 !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('12
240290') : void 0; 24030 var ownerPublicInstance = owner.getPublicInstance(); 24031 // Check that `component`'s owner is still alive and that `component` is still the current ref 24032 // because we do not want to detach the ref if another component stole it. 24033 if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) { 24034 owner.detachRef(ref); 24035 } 24036 } 24037}; 24038 24039module.exports = ReactOwner; 24040/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 24041 24042/***/ }), 24043/* 459 */ 24044/***/ (function(module, exports, __webpack_require__) { 24045 24046"use strict"; 24047/* WEBPACK VAR INJECTION */(function(process) {/** 24048 * Copyright (c) 2016-present, Facebook, Inc. 24049 * 24050 * This source code is licensed under the MIT license found in the 24051 * LICENSE file in the root directory of this source tree. 24052 * 24053 * 24054 */ 24055 24056 24057 24058var ReactInvalidSetStateWarningHook = __webpack_require__(460); 24059var ReactHostOperationHistoryHook = __webpack_require__(461); 24060var ReactComponentTreeHook = __webpack_require__(22); 24061var ExecutionEnvironment = __webpack_require__(16); 24062 24063var performanceNow = __webpack_require__(462); 24064var warning = __webpack_require__(3); 24065 24066var hooks = []; 24067var didHookThrowForEvent = {}; 24068 24069function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) { 24070 try { 24071 fn.call(context, arg1, arg2, arg3, arg4, arg5); 24072 } catch (e) { 24073 process.env.NODE_ENV !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; 24074 didHookThrowForEvent[event] = true; 24075 } 24076} 24077 24078function emitEvent(event, arg1, arg2, arg3, arg4, arg5) { 24079 for (var i = 0; i < hooks.length; i++) { 24080 var hook = hooks[i]; 24081 var fn = hook[event]; 24082 if (fn) { 24083 callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5); 24084 } 24085 } 24086} 24087 24088var isProfiling = false; 24089var flushHistory = []; 24090var lifeCycleTimerStack = []; 24091var currentFlushNesting = 0; 24092var currentFlushMeasurements = []; 24093var currentFlushStartTime = 0; 24094var currentTimerDebugID = null; 24095var currentTimerStartTime = 0; 24096var currentTimerNestedFlushDuration = 0; 24097var currentTimerType = null; 24098 24099var lifeCycleTimerHasWarned = false; 24100 24101function clearHistory() { 24102 ReactComponentTreeHook.purgeUnmountedComponents(); 24103 ReactHostOperationHistoryHook.clearHistory(); 24104} 24105 24106function getTreeSnapshot(registeredIDs) { 24107 return registeredIDs.reduce(function (tree, id) { 24108 var ownerID = ReactComponentTreeHook.getOwnerID(id); 24109 var parentID = ReactComponentTreeHook.getParentID(id); 24110 tree[id] = { 24111 displayName: ReactComponentTreeHook.getDisplayName(id), 24112 text: ReactComponentTreeHook.getText(id), 24113 updateCount: ReactComponentTreeHook.getUpdateCount(id), 24114 childIDs: ReactComponentTreeHook.getChildIDs(id), 24115 // Text nodes don't have owners but this is close enough. 24116 ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0, 24117 parentID: parentID 24118 }; 24119 return tree; 24120 }, {}); 24121} 24122 24123function resetMeasurements() { 24124 var previousStartTime = currentFlushStartTime; 24125 var previousMeasurements = currentFlushMeasurements; 24126 var previousOperations = ReactHostOperationHistoryHook.getHistory(); 24127 24128 if (currentFlushNesting === 0) { 24129 currentFlushStartTime = 0; 24130 currentFlushMeasurements = []; 24131 clearHistory(); 24132 return; 24133 } 24134 24135 if (previousMeasurements.length || previousOperations.length) { 24136 var registeredIDs = ReactComponentTreeHook.getRegisteredIDs(); 24137 flushHistory.push({ 24138 duration: performanceNow() - previousStartTime, 24139 measurements: previousMeasurements || [], 24140 operations: previousOperations || [], 24141 treeSnapshot: getTreeSnapshot(registeredIDs) 24142 }); 24143 } 24144 24145 clearHistory(); 24146 currentFlushStartTime = performanceNow(); 24147 currentFlushMeasurements = []; 24148} 24149 24150function checkDebugID(debugID) { 24151 var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 24152 24153 if (allowRoot && debugID === 0) { 24154 return; 24155 } 24156 if (!debugID) { 24157 process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; 24158 } 24159} 24160 24161function beginLifeCycleTimer(debugID, timerType) { 24162 if (currentFlushNesting === 0) { 24163 return; 24164 } 24165 if (currentTimerType && !lifeCycleTimerHasWarned) { 24166 process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; 24167 lifeCycleTimerHasWarned = true; 24168 } 24169 currentTimerStartTime = performanceNow(); 24170 currentTimerNestedFlushDuration = 0; 24171 currentTimerDebugID = debugID; 24172 currentTimerType = timerType; 24173} 24174 24175function endLifeCycleTimer(debugID, timerType) { 24176 if (currentFlushNesting === 0) { 24177 return; 24178 } 24179 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) { 24180 process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; 24181 lifeCycleTimerHasWarned = true; 24182 } 24183 if (isProfiling) { 24184 currentFlushMeasurements.push({ 24185 timerType: timerType, 24186 instanceID: debugID, 24187 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration 24188 }); 24189 } 24190 currentTimerStartTime = 0; 24191 currentTimerNestedFlushDuration = 0; 24192 currentTimerDebugID = null; 24193 currentTimerType = null; 24194} 24195 24196function pauseCurrentLifeCycleTimer() { 24197 var currentTimer = { 24198 startTime: currentTimerStartTime, 24199 nestedFlushStartTime: performanceNow(), 24200 debugID: currentTimerDebugID, 24201 timerType: currentTimerType 24202 }; 24203 lifeCycleTimerStack.push(currentTimer); 24204 currentTimerStartTime = 0; 24205 currentTimerNestedFlushDuration = 0; 24206 currentTimerDebugID = null; 24207 currentTimerType = null; 24208} 24209 24210function resumeCurrentLifeCycleTimer() { 24211 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(), 24212 startTime = _lifeCycleTimerStack$.startTime, 24213 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime, 24214 debugID = _lifeCycleTimerStack$.debugID,
24215 timerType = _lifeCycleTimerStack$.timerType; 24216 24217 var nestedFlushDuration = performanceNow() - nestedFlushStartTime; 24218 currentTimerStartTime = startTime; 24219 currentTimerNestedFlushDuration += nestedFlushDuration; 24220 currentTimerDebugID = debugID; 24221 currentTimerType = timerType; 24222} 24223 24224var lastMarkTimeStamp = 0; 24225var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function'; 24226 24227function shouldMark(debugID) { 24228 if (!isProfiling || !canUsePerformanceMeasure) { 24229 return false; 24230 } 24231 var element = ReactComponentTreeHook.getElement(debugID); 24232 if (element == null || typeof element !== 'object') { 24233 return false; 24234 } 24235 var isHostElement = typeof element.type === 'string'; 24236 if (isHostElement) { 24237 return false; 24238 } 24239 return true; 24240} 24241 24242function markBegin(debugID, markType) { 24243 if (!shouldMark(debugID)) { 24244 return; 24245 } 24246 24247 var markName = debugID + '::' + markType; 24248 lastMarkTimeStamp = performanceNow(); 24249 performance.mark(markName); 24250} 24251 24252function markEnd(debugID, markType) { 24253 if (!shouldMark(debugID)) { 24254 return; 24255 } 24256 24257 var markName = debugID + '::' + markType; 24258 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown'; 24259 24260 // Chrome has an issue of dropping markers recorded too fast: 24261 // https://bugs.chromium.org/p/chromium/issues/detail?id=640652 24262 // To work around this, we will not report very small measurements. 24263 // I determined the magic number by tweaking it back and forth. 24264 // 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe. 24265 // When the bug is fixed, we can `measure()` unconditionally if we want to. 24266 var timeStamp = performanceNow(); 24267 if (timeStamp - lastMarkTimeStamp > 0.1) { 24268 var measurementName = displayName + ' [' + markType + ']'; 24269 performance.measure(measurementName, markName); 24270 } 24271 24272 performance.clearMarks(markName); 24273 if (measurementName) { 24274 performance.clearMeasures(measurementName); 24275 } 24276} 24277 24278var ReactDebugTool = { 24279 addHook: function (hook) { 24280 hooks.push(hook); 24281 }, 24282 removeHook: function (hook) { 24283 for (var i = 0; i < hooks.length; i++) { 24284 if (hooks[i] === hook) { 24285 hooks.splice(i, 1); 24286 i--; 24287 } 24288 } 24289 }, 24290 isProfiling: function () { 24291 return isProfiling; 24292 }, 24293 beginProfiling: function () { 24294 if (isProfiling) { 24295 return; 24296 } 24297 24298 isProfiling = true; 24299 flushHistory.length = 0; 24300 resetMeasurements(); 24301 ReactDebugTool.addHook(ReactHostOperationHistoryHook); 24302 }, 24303 endProfiling: function () { 24304 if (!isProfiling) { 24305 return; 24306 } 24307 24308 isProfiling = false; 24309 resetMeasurements(); 24310 ReactDebugTool.removeHook(ReactHostOperationHistoryHook); 24311 }, 24312 getFlushHistory: function () { 24313 return flushHistory; 24314 }, 24315 onBeginFlush: function () { 24316 currentFlushNesting++; 24317 resetMeasurements(); 24318 pauseCurrentLifeCycleTimer(); 24319 emitEvent('onBeginFlush'); 24320 }, 24321 onEndFlush: function () { 24322 resetMeasurements(); 24323 currentFlushNesting--; 24324 resumeCurrentLifeCycleTimer(); 24325 emitEvent('onEndFlush'); 24326 }, 24327 onBeginLifeCycleTimer: function (debugID, timerType) { 24328 checkDebugID(debugID); 24329 emitEvent('onBeginLifeCycleTimer', debugID, timerType); 24330 markBegin(debugID, timerType); 24331 beginLifeCycleTimer(debugID, timerType); 24332 }, 24333 onEndLifeCycleTimer: function (debugID, timerType) { 24334 checkDebugID(debugID); 24335 endLifeCycleTimer(debugID, timerType); 24336 markEnd(debugID, timerType); 24337 emitEvent('onEndLifeCycleTimer', debugID, timerType); 24338 }, 24339 onBeginProcessingChildContext: function () { 24340 emitEvent('onBeginProcessingChildContext'); 24341 }, 24342 onEndProcessingChildContext: function () { 24343 emitEvent('onEndProcessingChildContext'); 24344 }, 24345 onHostOperation: function (operation) { 24346 checkDebugID(operation.instanceID); 24347 emitEvent('onHostOperation', operation); 24348 }, 24349 onSetState: function () { 24350 emitEvent('onSetState'); 24351 }, 24352 onSetChildren: function (debugID, childDebugIDs) { 24353 checkDebugID(debugID); 24354 childDebugIDs.forEach(checkDebugID); 24355 emitEvent('onSetChildren', debugID, childDebugIDs); 24356 }, 24357 onBeforeMountComponent: function (debugID, element, parentDebugID) { 24358 checkDebugID(debugID); 24359 checkDebugID(parentDebugID, true); 24360 emitEvent('onBeforeMountComponent', debugID, element, parentDebugID); 24361 markBegin(debugID, 'mount'); 24362 }, 24363 onMountComponent: function (debugID) { 24364 checkDebugID(debugID); 24365 markEnd(debugID, 'mount'); 24366 emitEvent('onMountComponent', debugID); 24367 }, 24368 onBeforeUpdateComponent: function (debugID, element) { 24369 checkDebugID(debugID); 24370 emitEvent('onBeforeUpdateComponent', debugID, element); 24371 markBegin(debugID, 'update'); 24372 }, 24373 onUpdateComponent: function (debugID) { 24374 checkDebugID(debugID); 24375 markEnd(debugID, 'update'); 24376 emitEvent('onUpdateComponent', debugID); 24377 }, 24378 onBeforeUnmountComponent: function (debugID) { 24379 checkDebugID(debugID); 24380 emitEvent('onBeforeUnmountComponent', debugID); 24381 markBegin(debugID, 'unmount'); 24382 }, 24383 onUnmountComponent: function (debugID) { 24384 checkDebugID(debugID); 24385 markEnd(debugID, 'unmount'); 24386 emitEvent('onUnmountComponent', debugID); 24387 }, 24388 onTestEvent: function () { 24389 emitEvent('onTestEvent'); 24390 } 24391}; 24392 24393// TODO remove these when RN/www gets updated 24394ReactDebugTool.addDevtool = ReactDebugTool.addHook; 24395ReactDebugTool.removeDevtool = ReactDebugTool.removeHook; 24396 24397ReactDebugTool.addHook(ReactInvalidSetStateWarningHook); 24398ReactDebugTool.addHook(ReactComponentTreeHook); 24399var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; 24400if (/[?&]react_perf\b/.test(url)) { 24401 ReactDebugTool.beginProfiling(); 24402} 24403 24404module.exports = ReactDebugTool; 24405/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 24406 24407/***/ }), 24408/* 460 */ 24409/***/ (function(module, exports, __webpack_require__) { 24410 24411"use strict"; 24412/* WEBPACK VAR INJECTION */(function(process) {/** 24413 * Copyright (c) 2016-present, Facebook, Inc. 24414 * 24415 * This source code is licensed under the MIT license found in the 24416 * LICENSE file in the root directory of this source tree. 24417 * 24418 * 24419 */ 24420 24421 24422 24423var warning = __webpack_require__(3); 24424 24425if (process.env.NODE_ENV !== 'production') { 24426 var processingChildContext = false;
24427 24428 var warnInvalidSetState = function () { 24429 process.env.NODE_ENV !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0; 24430 }; 24431} 24432 24433var ReactInvalidSetStateWarningHook = { 24434 onBeginProcessingChildContext: function () { 24435 processingChildContext = true; 24436 }, 24437 onEndProcessingChildContext: function () { 24438 processingChildContext = false; 24439 }, 24440 onSetState: function () { 24441 warnInvalidSetState(); 24442 } 24443}; 24444 24445module.exports = ReactInvalidSetStateWarningHook; 24446/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 24447 24448/***/ }), 24449/* 461 */ 24450/***/ (function(module, exports, __webpack_require__) { 24451 24452"use strict"; 24453/** 24454 * Copyright (c) 2016-present, Facebook, Inc. 24455 * 24456 * This source code is licensed under the MIT license found in the 24457 * LICENSE file in the root directory of this source tree. 24458 * 24459 * 24460 */ 24461 24462 24463 24464var history = []; 24465 24466var ReactHostOperationHistoryHook = { 24467 onHostOperation: function (operation) { 24468 history.push(operation); 24469 }, 24470 clearHistory: function () { 24471 if (ReactHostOperationHistoryHook._preventClearing) { 24472 // Should only be used for tests. 24473 return; 24474 } 24475 24476 history = []; 24477 }, 24478 getHistory: function () { 24479 return history; 24480 } 24481}; 24482 24483module.exports = ReactHostOperationHistoryHook; 24484 24485/***/ }), 24486/* 462 */ 24487/***/ (function(module, exports, __webpack_require__) { 24488 24489"use strict"; 24490 24491 24492/** 24493 * Copyright (c) 2013-present, Facebook, Inc. 24494 * 24495 * This source code is licensed under the MIT license found in the 24496 * LICENSE file in the root directory of this source tree. 24497 * 24498 * @typechecks 24499 */ 24500 24501var performance = __webpack_require__(463); 24502 24503var performanceNow; 24504 24505/** 24506 * Detect if we can use `window.performance.now()` and gracefully fallback to 24507 * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now 24508 * because of Facebook's testing infrastructure. 24509 */ 24510if (performance.now) { 24511 performanceNow = function performanceNow() { 24512 return performance.now(); 24513 }; 24514} else { 24515 performanceNow = function performanceNow() { 24516 return Date.now(); 24517 }; 24518} 24519 24520module.exports = performanceNow; 24521 24522/***/ }), 24523/* 463 */ 24524/***/ (function(module, exports, __webpack_require__) { 24525 24526"use strict"; 24527/** 24528 * Copyright (c) 2013-present, Facebook, Inc. 24529 * 24530 * This source code is licensed under the MIT license found in the 24531 * LICENSE file in the root directory of this source tree. 24532 * 24533 * @typechecks 24534 */ 24535 24536 24537 24538var ExecutionEnvironment = __webpack_require__(16); 24539 24540var performance; 24541 24542if (ExecutionEnvironment.canUseDOM) { 24543 performance = window.performance || window.msPerformance || window.webkitPerformance; 24544} 24545 24546module.exports = performance || {}; 24547 24548/***/ }), 24549/* 464 */ 24550/***/ (function(module, exports, __webpack_require__) { 24551 24552"use strict"; 24553/** 24554 * Copyright (c) 2013-present, Facebook, Inc. 24555 * 24556 * This source code is licensed under the MIT license found in the 24557 * LICENSE file in the root directory of this source tree. 24558 * 24559 */ 24560 24561 24562 24563/** 24564 * Module that is injectable into `EventPluginHub`, that specifies a 24565 * deterministic ordering of `EventPlugin`s. A convenient way to reason about 24566 * plugins, without having to package every one of them. This is better than 24567 * having plugins be ordered in the same order that they are injected because 24568 * that ordering would be influenced by the packaging order. 24569 * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that 24570 * preventing default on events is convenient in `SimpleEventPlugin` handlers. 24571 */ 24572 24573var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin']; 24574 24575module.exports = DefaultEventPluginOrder; 24576 24577/***/ }), 24578/* 465 */ 24579/***/ (function(module, exports, __webpack_require__) { 24580 24581"use strict"; 24582/** 24583 * Copyright (c) 2013-present, Facebook, Inc. 24584 * 24585 * This source code is licensed under the MIT license found in the 24586 * LICENSE file in the root directory of this source tree. 24587 * 24588 */ 24589 24590 24591 24592var EventPropagators = __webpack_require__(76); 24593var ReactDOMComponentTree = __webpack_require__(14); 24594var SyntheticMouseEvent = __webpack_require__(101); 24595 24596var eventTypes = {
24597 mouseEnter: { 24598 registrationName: 'onMouseEnter', 24599 dependencies: ['topMouseOut', 'topMouseOver'] 24600 }, 24601 mouseLeave: { 24602 registrationName: 'onMouseLeave', 24603 dependencies: ['topMouseOut', 'topMouseOver'] 24604 } 24605}; 24606 24607var EnterLeaveEventPlugin = { 24608 eventTypes: eventTypes, 24609 24610 /** 24611 * For almost every interaction we care about, there will be both a top-level 24612 * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that 24613 * we do not extract duplicate events. However, moving the mouse into the 24614 * browser from outside will not fire a `mouseout` event. In this case, we use 24615 * the `mouseover` top-level event. 24616 */ 24617 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 24618 if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { 24619 return null; 24620 } 24621 if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') { 24622 // Must not be a mouse in or mouse out - ignoring. 24623 return null; 24624 } 24625 24626 var win; 24627 if (nativeEventTarget.window === nativeEventTarget) { 24628 // `nativeEventTarget` is probably a window object. 24629 win = nativeEventTarget; 24630 } else { 24631 // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. 24632 var doc = nativeEventTarget.ownerDocument; 24633 if (doc) { 24634 win = doc.defaultView || doc.parentWindow; 24635 } else { 24636 win = window; 24637 } 24638 } 24639 24640 var from; 24641 var to; 24642 if (topLevelType === 'topMouseOut') { 24643 from = targetInst; 24644 var related = nativeEvent.relatedTarget || nativeEvent.toElement; 24645 to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null; 24646 } else { 24647 // Moving to a node from outside the window. 24648 from = null; 24649 to = targetInst; 24650 } 24651 24652 if (from === to) { 24653 // Nothing pertains to our managed components. 24654 return null; 24655 } 24656 24657 var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from); 24658 var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to); 24659 24660 var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget); 24661 leave.type = 'mouseleave'; 24662 leave.target = fromNode; 24663 leave.relatedTarget = toNode; 24664 24665 var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget); 24666 enter.type = 'mouseenter'; 24667 enter.target = toNode; 24668 enter.relatedTarget = fromNode; 24669 24670 EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to); 24671 24672 return [leave, enter]; 24673 } 24674}; 24675 24676module.exports = EnterLeaveEventPlugin; 24677 24678/***/ }), 24679/* 466 */ 24680/***/ (function(module, exports, __webpack_require__) { 24681 24682"use strict"; 24683/** 24684 * Copyright (c) 2013-present, Facebook, Inc. 24685 * 24686 * This source code is licensed under the MIT license found in the 24687 * LICENSE file in the root directory of this source tree. 24688 * 24689 */ 24690 24691 24692 24693var DOMProperty = __webpack_require__(47); 24694 24695var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; 24696var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; 24697var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; 24698var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; 24699var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; 24700 24701var HTMLDOMPropertyConfig = { 24702 isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')), 24703 Properties: { 24704 /** 24705 * Standard Properties 24706 */ 24707 accept: 0, 24708 acceptCharset: 0, 24709 accessKey: 0, 24710 action: 0, 24711 allowFullScreen: HAS_BOOLEAN_VALUE, 24712 allowTransparency: 0, 24713 alt: 0, 24714 // specifies target context for links with `preload` type 24715 as: 0, 24716 async: HAS_BOOLEAN_VALUE, 24717 autoComplete: 0, 24718 // autoFocus is polyfilled/normalized by AutoFocusUtils 24719 // autoFocus: HAS_BOOLEAN_VALUE, 24720 autoPlay: HAS_BOOLEAN_VALUE, 24721 capture: HAS_BOOLEAN_VALUE, 24722 cellPadding: 0, 24723 cellSpacing: 0, 24724 charSet: 0, 24725 challenge: 0, 24726 checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 24727 cite: 0, 24728 classID: 0, 24729 className: 0, 24730 cols: HAS_POSITIVE_NUMERIC_VALUE, 24731 colSpan: 0, 24732 content: 0, 24733 contentEditable: 0, 24734 contextMenu: 0, 24735 controls: HAS_BOOLEAN_VALUE, 24736 controlsList: 0, 24737 coords: 0, 24738 crossOrigin: 0, 24739 data: 0, // For `<object />` acts as `src`. 24740 dateTime: 0, 24741 'default': HAS_BOOLEAN_VALUE, 24742 defer: HAS_BOOLEAN_VALUE, 24743 dir: 0, 24744 disabled: HAS_BOOLEAN_VALUE, 24745 download: HAS_OVERLOADED_BOOLEAN_VALUE, 24746 draggable: 0, 24747 encType: 0, 24748 form: 0, 24749 formAction: 0, 24750 formEncType: 0, 24751 formMethod: 0, 24752 formNoValidate: HAS_BOOLEAN_VALUE, 24753 formTarget: 0, 24754 frameBorder: 0, 24755 headers: 0, 24756 height: 0, 24757 hidden: HAS_BOOLEAN_VALUE, 24758 high: 0, 24759 href: 0, 24760 hrefLang: 0, 24761 htmlFor: 0, 24762 httpEquiv: 0, 24763 icon: 0, 24764 id: 0, 24765 inputMode: 0, 24766 integrity: 0, 24767 is: 0, 24768 keyParams: 0, 24769 keyType: 0, 24770 kind: 0, 24771 label: 0, 24772 lang: 0, 24773 list: 0, 24774 loop: HAS_BOOLEAN_VALUE, 24775 low: 0, 24776 manifest: 0, 24777 marginHeight: 0, 24778 marginWidth: 0, 24779 max: 0, 24780 maxLength: 0, 24781 media: 0, 24782 mediaGroup: 0, 24783 method: 0, 24784 min: 0, 24785 minLength: 0, 24786 // Caution; `option.selected` is not updated if `select.multiple` is
24787 // disabled with `removeAttribute`. 24788 multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 24789 muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 24790 name: 0, 24791 nonce: 0, 24792 noValidate: HAS_BOOLEAN_VALUE, 24793 open: HAS_BOOLEAN_VALUE, 24794 optimum: 0, 24795 pattern: 0, 24796 placeholder: 0, 24797 playsInline: HAS_BOOLEAN_VALUE, 24798 poster: 0, 24799 preload: 0, 24800 profile: 0, 24801 radioGroup: 0, 24802 readOnly: HAS_BOOLEAN_VALUE, 24803 referrerPolicy: 0, 24804 rel: 0, 24805 required: HAS_BOOLEAN_VALUE, 24806 reversed: HAS_BOOLEAN_VALUE, 24807 role: 0, 24808 rows: HAS_POSITIVE_NUMERIC_VALUE, 24809 rowSpan: HAS_NUMERIC_VALUE, 24810 sandbox: 0, 24811 scope: 0, 24812 scoped: HAS_BOOLEAN_VALUE, 24813 scrolling: 0, 24814 seamless: HAS_BOOLEAN_VALUE, 24815 selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 24816 shape: 0, 24817 size: HAS_POSITIVE_NUMERIC_VALUE, 24818 sizes: 0, 24819 span: HAS_POSITIVE_NUMERIC_VALUE, 24820 spellCheck: 0, 24821 src: 0, 24822 srcDoc: 0, 24823 srcLang: 0, 24824 srcSet: 0, 24825 start: HAS_NUMERIC_VALUE, 24826 step: 0, 24827 style: 0, 24828 summary: 0, 24829 tabIndex: 0, 24830 target: 0, 24831 title: 0, 24832 // Setting .type throws on non-<input> tags 24833 type: 0, 24834 useMap: 0, 24835 value: 0, 24836 width: 0, 24837 wmode: 0, 24838 wrap: 0, 24839 24840 /** 24841 * RDFa Properties 24842 */ 24843 about: 0, 24844 datatype: 0, 24845 inlist: 0, 24846 prefix: 0, 24847 // property is also supported for OpenGraph in meta tags. 24848 property: 0, 24849 resource: 0, 24850 'typeof': 0, 24851 vocab: 0, 24852 24853 /** 24854 * Non-standard Properties 24855 */ 24856 // autoCapitalize and autoCorrect are supported in Mobile Safari for 24857 // keyboard hints. 24858 autoCapitalize: 0, 24859 autoCorrect: 0, 24860 // autoSave allows WebKit/Blink to persist values of input fields on page reloads 24861 autoSave: 0, 24862 // color is for Safari mask-icon link 24863 color: 0, 24864 // itemProp, itemScope, itemType are for 24865 // Microdata support. See http://schema.org/docs/gs.html 24866 itemProp: 0, 24867 itemScope: HAS_BOOLEAN_VALUE, 24868 itemType: 0, 24869 // itemID and itemRef are for Microdata support as well but 24870 // only specified in the WHATWG spec document. See 24871 // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api 24872 itemID: 0, 24873 itemRef: 0, 24874 // results show looking glass icon and recent searches on input 24875 // search fields in WebKit/Blink 24876 results: 0, 24877 // IE-only attribute that specifies security restrictions on an iframe 24878 // as an alternative to the sandbox attribute on IE<10 24879 security: 0, 24880 // IE-only attribute that controls focus behavior 24881 unselectable: 0 24882 }, 24883 DOMAttributeNames: { 24884 acceptCharset: 'accept-charset', 24885 className: 'class', 24886 htmlFor: 'for', 24887 httpEquiv: 'http-equiv' 24888 }, 24889 DOMPropertyNames: {}, 24890 DOMMutationMethods: { 24891 value: function (node, value) { 24892 if (value == null) { 24893 return node.removeAttribute('value'); 24894 } 24895 24896 // Number inputs get special treatment due to some edge cases in 24897 // Chrome. Let everything else assign the value attribute as normal. 24898 // https://github.com/facebook/react/issues/7253#issuecomment-236074326 24899 if (node.type !== 'number' || node.hasAttribute('value') === false) { 24900 node.setAttribute('value', '' + value); 24901 } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) { 24902 // Don't assign an attribute if validation reports bad 24903 // input. Chrome will clear the value. Additionally, don't 24904 // operate on inputs that have focus, otherwise Chrome might 24905 // strip off trailing decimal places and cause the user's 24906 // cursor position to jump to the beginning of the input. 24907 // 24908 // In ReactDOMInput, we have an onBlur event that will trigger 24909 // this function again when focus is lost. 24910 node.setAttribute('value', '' + value); 24911 } 24912 } 24913 } 24914}; 24915 24916module.exports = HTMLDOMPropertyConfig; 24917 24918/***/ }), 24919/* 467 */ 24920/***/ (function(module, exports, __webpack_require__) { 24921 24922"use strict"; 24923/** 24924 * Copyright (c) 2013-present, Facebook, Inc. 24925 * 24926 * This source code is licensed under the MIT license found in the 24927 * LICENSE file in the root directory of this source tree. 24928 * 24929 */ 24930 24931 24932 24933var DOMChildrenOperations = __webpack_require__(142); 24934var ReactDOMIDOperations = __webpack_require__(472); 24935 24936/** 24937 * Abstracts away all functionality of the reconciler that requires knowledge of 24938 * the browser context. TODO: These callers should be refactored to avoid the 24939 * need for this injection. 24940 */ 24941var ReactComponentBrowserEnvironment = { 24942 processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, 24943 24944 replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup 24945}; 24946 24947module.exports = ReactComponentBrowserEnvironment; 24948 24949/***/ }), 24950/* 468 */ 24951/***/ (function(module, exports, __webpack_require__) { 24952 24953"use strict"; 24954/* WEBPACK VAR INJECTION */(function(process) {/** 24955 * Copyright (c) 2013-present, Facebook, Inc. 24956 * 24957 * This source code is licensed under the MIT license found in the 24958 * LICENSE file in the root directory of this source tree. 24959 * 24960 */ 24961 24962 24963 24964var _prodInvariant = __webpack_require__(8); 24965 24966var DOMLazyTree = __webpack_require__(69); 24967var ExecutionEnvironment = __webpack_require__(16); 24968 24969var createNodesFromMarkup = __webpack_require__(469); 24970var emptyFunction = __webpack_require__(38); 24971var invariant = __webpack_require__(2); 24972 24973var Danger = { 24974 /** 24975 * Replaces a node with a string of markup at its current position within its 24976 * parent. The markup must render into a single root node. 24977 * 24978 * @param {DOMElement} oldChild Child node to replace. 24979 * @param {string} markup Markup to render in place of the child node. 24980 * @internal 24981 */ 24982 dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) { 24983 !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0; 24984 !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0; 24985 !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0; 24986 24987 if (typeof markup === 'string') { 24988 var newChild = createNodesFromMarkup(markup, emptyFunction)[0]; 24989 oldChild.parentNode.replaceChild(newChild, oldChild); 24990 } else { 24991 DOMLazyTree.replaceChildWithTree(oldChild, markup); 24992 } 24993 } 24994}; 24995 24996module.exports = Danger; 24997/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 24998 24999/***/ }), 25000/* 469 */ 25001/***/ (function(module, exports, __webpack_require__) { 25002 25003"use strict"; 25004/* WEBPACK VAR INJECTION */(function(process) { 25005 25006/** 25007 * Copyright (c) 2013-present, Facebook, Inc. 25008 * 25009 * This source code is licensed under the MIT license found in the 25010 * LICENSE file in the root directory of this source tree. 25011 * 25012 * @typechecks 25013 */ 25014 25015/*eslint-disable fb-www/unsafe-html*/ 25016 25017var ExecutionEnvironment = __webpack_require__(16); 25018 25019var createArrayFromMixed = __webpack_require__(470); 25020var getMarkupWrap = __webpack_require__(471); 25021var invariant = __webpack_require__(2); 25022 25023/** 25024 * Dummy container used to render all markup. 25025 */ 25026var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; 25027 25028/** 25029 * Pattern used by `getNodeName`. 25030 */ 25031var nodeNamePattern = /^\s*<(\w+)/; 25032 25033/** 25034 * Extracts the `nodeName` of the first element in a string of markup. 25035 * 25036 * @param {string} markup String of markup. 25037 * @return {?string} Node name of the supplied markup. 25038 */ 25039function getNodeName(markup) { 25040 var nodeNameMatch = markup.match(nodeNamePattern); 25041 return nodeNameMatch && nodeNameMatch[1].toLowerCase(); 25042} 25043 25044/** 25045 * Creates an array containing the nodes rendered from the supplied markup. The 25046 * optionally supplied `handleScript` function will be invoked once for each 25047 * <script> element that is rendered. If no `handleScript` function is supplied, 25048 * an exception is thrown if any <script> elements are rendered. 25049 * 25050 * @param {string} markup A string of valid HTML markup. 25051 * @param {?function} handleScript Invoked once for each rendered <script>. 25052 * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes. 25053 */ 25054function createNodesFromMarkup(markup, handleScript) { 25055 var node = dummyNode; 25056 !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0; 25057 var nodeName = getNodeName(markup); 25058 25059 var wrap = nodeName && getMarkupWrap(nodeName); 25060 if (wrap) { 25061 node.innerHTML = wrap[1] + markup + wrap[2]; 25062 25063 var wrapDepth = wrap[0]; 25064 while (wrapDepth--) { 25065 node = node.lastChild; 25066 } 25067 } else { 25068 node.innerHTML = markup; 25069 } 25070 25071 var scripts = node.getElementsByTagName('script'); 25072 if (scripts.length) { 25073 !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;
25074 createArrayFromMixed(scripts).forEach(handleScript); 25075 } 25076 25077 var nodes = Array.from(node.childNodes); 25078 while (node.lastChild) { 25079 node.removeChild(node.lastChild); 25080 } 25081 return nodes; 25082} 25083 25084module.exports = createNodesFromMarkup; 25085/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 25086 25087/***/ }), 25088/* 470 */ 25089/***/ (function(module, exports, __webpack_require__) { 25090 25091"use strict"; 25092/* WEBPACK VAR INJECTION */(function(process) { 25093 25094/** 25095 * Copyright (c) 2013-present, Facebook, Inc. 25096 * 25097 * This source code is licensed under the MIT license found in the 25098 * LICENSE file in the root directory of this source tree. 25099 * 25100 * @typechecks 25101 */ 25102 25103var invariant = __webpack_require__(2); 25104 25105/** 25106 * Convert array-like objects to arrays. 25107 * 25108 * This API assumes the caller knows the contents of the data type. For less 25109 * well defined inputs use createArrayFromMixed. 25110 * 25111 * @param {object|function|filelist} obj 25112 * @return {array} 25113 */ 25114function toArray(obj) { 25115 var length = obj.length; 25116 25117 // Some browsers builtin objects can report typeof 'function' (e.g. NodeList 25118 // in old versions of Safari). 25119 !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0; 25120 25121 !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0; 25122 25123 !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0; 25124 25125 !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; 25126 25127 // Old IE doesn't give collections access to hasOwnProperty. Assume inputs 25128 // without method will throw during the slice call and skip straight to the 25129 // fallback. 25130 if (obj.hasOwnProperty) { 25131 try { 25132 return Array.prototype.slice.call(obj); 25133 } catch (e) { 25134 // IE < 9 does not support Array#slice on collections objects 25135 } 25136 } 25137 25138 // Fall back to copying key by key. This assumes all keys have a value, 25139 // so will not preserve sparsely populated inputs. 25140 var ret = Array(length); 25141 for (var ii = 0; ii < length; ii++) { 25142 ret[ii] = obj[ii]; 25143 } 25144 return ret; 25145} 25146 25147/** 25148 * Perform a heuristic test to determine if an object is "array-like". 25149 * 25150 * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" 25151 * Joshu replied: "Mu." 25152 * 25153 * This function determines if its argument has "array nature": it returns 25154 * true if the argument is an actual array, an `arguments' object, or an 25155 * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). 25156 * 25157 * It will return false for other array-like objects like Filelist. 25158 * 25159 * @param {*} obj 25160 * @return {boolean} 25161 */ 25162function hasArrayNature(obj) { 25163 return ( 25164 // not null/false 25165 !!obj && ( 25166 // arrays are objects, NodeLists are functions in Safari 25167 typeof obj == 'object' || typeof obj == 'function') && 25168 // quacks like an array 25169 'length' in obj && 25170 // not window 25171 !('setInterval' in obj) && 25172 // no DOM node should be considered an array-like 25173 // a 'select' element has 'length' and 'item' properties on IE8 25174 typeof obj.nodeType != 'number' && ( 25175 // a real array 25176 Array.isArray(obj) || 25177 // arguments 25178 'callee' in obj || 25179 // HTMLCollection/NodeList 25180 'item' in obj) 25181 ); 25182} 25183 25184/** 25185 * Ensure that the argument is an array by wrapping it in an array if it is not. 25186 * Creates a copy of the argument if it is already an array. 25187 * 25188 * This is mostly useful idiomatically: 25189 * 25190 * var createArrayFromMixed = require('createArrayFromMixed'); 25191 * 25192 * function takesOneOrMoreThings(things) { 25193 * things = createArrayFromMixed(things); 25194 * ... 25195 * } 25196 * 25197 * This allows you to treat `things' as an array, but accept scalars in the API. 25198 * 25199 * If you need to convert an array-like object, like `arguments`, into an array 25200 * use toArray instead. 25201 * 25202 * @param {*} obj 25203 * @return {array} 25204 */ 25205function createArrayFromMixed(obj) { 25206 if (!hasArrayNature(obj)) { 25207 return [obj]; 25208 } else if (Array.isArray(obj)) { 25209 return obj.slice(); 25210 } else { 25211 return toArray(obj); 25212 } 25213} 25214 25215module.exports = createArrayFromMixed; 25216/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 25217 25218/***/ }), 25219/* 471 */ 25220/***/ (function(module, exports, __webpack_require__) { 25221 25222"use strict"; 25223/* WEBPACK VAR INJECTION */(function(process) { 25224 25225/** 25226 * Copyright (c) 2013-present, Facebook, Inc. 25227 * 25228 * This source code is licensed under the MIT license found in the 25229 * LICENSE file in the root directory of this source tree. 25230 * 25231 */ 25232 25233/*eslint-disable fb-www/unsafe-html */ 25234 25235var ExecutionEnvironment = __webpack_require__(16); 25236 25237var invariant = __webpack_require__(2); 25238 25239/** 25240 * Dummy container used to detect which wraps are necessary. 25241 */ 25242var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; 25243 25244/** 25245 * Some browsers cannot use `innerHTML` to render certain elements standalone,
25246 * so we wrap them, render the wrapped nodes, then extract the desired node. 25247 * 25248 * In IE8, certain elements cannot render alone, so wrap all elements ('*'). 25249 */ 25250 25251var shouldWrap = {}; 25252 25253var selectWrap = [1, '<select multiple="true">', '</select>']; 25254var tableWrap = [1, '<table>', '</table>']; 25255var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>']; 25256 25257var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>']; 25258 25259var markupWrap = { 25260 '*': [1, '?<div>', '</div>'], 25261 25262 'area': [1, '<map>', '</map>'], 25263 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'], 25264 'legend': [1, '<fieldset>', '</fieldset>'], 25265 'param': [1, '<object>', '</object>'], 25266 'tr': [2, '<table><tbody>', '</tbody></table>'], 25267 25268 'optgroup': selectWrap, 25269 'option': selectWrap, 25270 25271 'caption': tableWrap, 25272 'colgroup': tableWrap, 25273 'tbody': tableWrap, 25274 'tfoot': tableWrap, 25275 'thead': tableWrap, 25276 25277 'td': trWrap, 25278 'th': trWrap 25279}; 25280 25281// Initialize the SVG elements since we know they'll always need to be wrapped 25282// consistently. If they are created inside a <div> they will be initialized in 25283// the wrong namespace (and will not display). 25284var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan']; 25285svgElements.forEach(function (nodeName) { 25286 markupWrap[nodeName] = svgWrap; 25287 shouldWrap[nodeName] = true; 25288}); 25289 25290/** 25291 * Gets the markup wrap configuration for the supplied `nodeName`. 25292 * 25293 * NOTE: This lazily detects which wraps are necessary for the current browser. 25294 * 25295 * @param {string} nodeName Lowercase `nodeName`. 25296 * @return {?array} Markup wrap configuration, if applicable. 25297 */ 25298function getMarkupWrap(nodeName) { 25299 !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0; 25300 if (!markupWrap.hasOwnProperty(nodeName)) { 25301 nodeName = '*'; 25302 } 25303 if (!shouldWrap.hasOwnProperty(nodeName)) { 25304 if (nodeName === '*') { 25305 dummyNode.innerHTML = '<link />'; 25306 } else { 25307 dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>'; 25308 } 25309 shouldWrap[nodeName] = !dummyNode.firstChild; 25310 } 25311 return shouldWrap[nodeName] ? markupWrap[nodeName] : null; 25312} 25313 25314module.exports = getMarkupWrap; 25315/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 25316 25317/***/ }), 25318/* 472 */ 25319/***/ (function(module, exports, __webpack_require__) { 25320 25321"use strict"; 25322/** 25323 * Copyright (c) 2013-present, Facebook, Inc. 25324 * 25325 * This source code is licensed under the MIT license found in the 25326 * LICENSE file in the root directory of this source tree. 25327 * 25328 */ 25329 25330 25331 25332var DOMChildrenOperations = __webpack_require__(142); 25333var ReactDOMComponentTree = __webpack_require__(14); 25334 25335/** 25336 * Operations used to process updates to DOM nodes. 25337 */ 25338var ReactDOMIDOperations = { 25339 /** 25340 * Updates a component's children by processing a series of updates. 25341 * 25342 * @param {array<object>} updates List of update configurations. 25343 * @internal 25344 */ 25345 dangerouslyProcessChildrenUpdates: function (parentInst, updates) { 25346 var node = ReactDOMComponentTree.getNodeFromInstance(parentInst); 25347 DOMChildrenOperations.processUpdates(node, updates); 25348 } 25349}; 25350 25351module.exports = ReactDOMIDOperations; 25352 25353/***/ }), 25354/* 473 */ 25355/***/ (function(module, exports, __webpack_require__) { 25356 25357"use strict"; 25358/* WEBPACK VAR INJECTION */(function(process) {/** 25359 * Copyright (c) 2013-present, Facebook, Inc. 25360 * 25361 * This source code is licensed under the MIT license found in the 25362 * LICENSE file in the root directory of this source tree. 25363 * 25364 */ 25365 25366/* global hasOwnProperty:true */ 25367 25368 25369 25370var _prodInvariant = __webpack_require__(8), 25371 _assign = __webpack_require__(10); 25372 25373var AutoFocusUtils = __webpack_require__(474); 25374var CSSPropertyOperations = __webpack_require__(475); 25375var DOMLazyTree = __webpack_require__(69); 25376var DOMNamespaces = __webpack_require__(143); 25377var DOMProperty = __webpack_require__(47); 25378var DOMPropertyOperations = __webpack_require__(207); 25379var EventPluginHub = __webpack_require__(77); 25380var EventPluginRegistry = __webpack_require__(99); 25381var ReactBrowserEventEmitter = __webpack_require__(104); 25382var ReactDOMComponentFlags = __webpack_require__(195); 25383var ReactDOMComponentTree = __webpack_require__(14); 25384var ReactDOMInput = __webpack_require__(485); 25385var ReactDOMOption = __webpack_require__(486); 25386var ReactDOMSelect = __webpack_require__(209); 25387var ReactDOMTextarea = __webpack_require__(487); 25388var ReactInstrumentation = __webpack_require__(28); 25389var ReactMultiChild = __webpack_require__(488); 25390var ReactServerRenderingTransaction = __webpack_require__(497); 25391 25392var emptyFunction = __webpack_require__(38); 25393var escapeTextContentForBrowser = __webpack_require__(103); 25394var invariant = __webpack_require__(2); 25395var isEventSupported = __webpack_require__(140); 25396var shallowEqual = __webpack_require__(147); 25397var inputValueTracking = __webpack_require__(201); 25398var validateDOMNesting = __webpack_require__(151); 25399var warning = __webpack_require__(3); 25400 25401var Flags = ReactDOMComponentFlags; 25402var deleteListener = EventPluginHub.deleteListener; 25403var getNode = ReactDOMComponentTree.getNodeFromInstance; 25404var listenTo = ReactBrowserEventEmitter.listenTo; 25405var registrationNameModules = EventPluginRegistry.registrationNameModules; 25406 25407// For quickly matching children type, to test if can be treated as content. 25408var CONTENT_TYPES = { string: true, number: true }; 25409 25410var STYLE = 'style'; 25411var HTML = '__html'; 25412var RESERVED_PROPS = { 25413 children: null,
25414 dangerouslySetInnerHTML: null, 25415 suppressContentEditableWarning: null 25416}; 25417 25418// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE). 25419var DOC_FRAGMENT_TYPE = 11; 25420 25421function getDeclarationErrorAddendum(internalInstance) { 25422 if (internalInstance) { 25423 var owner = internalInstance._currentElement._owner || null; 25424 if (owner) { 25425 var name = owner.getName(); 25426 if (name) { 25427 return ' This DOM node was rendered by `' + name + '`.'; 25428 } 25429 } 25430 } 25431 return ''; 25432} 25433 25434function friendlyStringify(obj) { 25435 if (typeof obj === 'object') { 25436 if (Array.isArray(obj)) { 25437 return '[' + obj.map(friendlyStringify).join(', ') + ']'; 25438 } else { 25439 var pairs = []; 25440 for (var key in obj) { 25441 if (Object.prototype.hasOwnProperty.call(obj, key)) { 25442 var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key); 25443 pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key])); 25444 } 25445 } 25446 return '{' + pairs.join(', ') + '}'; 25447 } 25448 } else if (typeof obj === 'string') { 25449 return JSON.stringify(obj); 25450 } else if (typeof obj === 'function') { 25451 return '[function object]'; 25452 } 25453 // Differs from JSON.stringify in that undefined because undefined and that 25454 // inf and nan don't become null 25455 return String(obj); 25456} 25457 25458var styleMutationWarning = {}; 25459 25460function checkAndWarnForMutatedStyle(style1, style2, component) { 25461 if (style1 == null || style2 == null) { 25462 return; 25463 } 25464 if (shallowEqual(style1, style2)) { 25465 return; 25466 } 25467 25468 var componentName = component._tag; 25469 var owner = component._currentElement._owner; 25470 var ownerName; 25471 if (owner) { 25472 ownerName = owner.getName(); 25473 } 25474 25475 var hash = ownerName + '|' + componentName; 25476 25477 if (styleMutationWarning.hasOwnProperty(hash)) { 25478 return; 25479 } 25480 25481 styleMutationWarning[hash] = true; 25482 25483 process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0; 25484} 25485 25486/** 25487 * @param {object} component 25488 * @param {?object} props 25489 */ 25490function assertValidProps(component, props) { 25491 if (!props) { 25492 return; 25493 } 25494 // Note the use of `==` which checks for null or undefined. 25495 if (voidElementTags[component._tag]) { 25496 !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0; 25497 } 25498 if (props.dangerouslySetInnerHTML != null) { 25499 !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0; 25500 !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0; 25501 } 25502 if (process.env.NODE_ENV !== 'production') { 25503 process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0; 25504 process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0; 25505 process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0; 25506 } 25507 !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0; 25508} 25509 25510function enqueuePutListener(inst, registrationName, listener, transaction) { 25511 if (transaction instanceof ReactServerRenderingTransaction) { 25512 return; 25513 } 25514 if (process.env.NODE_ENV !== 'production') { 25515 // IE8 has no API for event capturing and the `onScroll` event doesn't 25516 // bubble. 25517 process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), "This browser doesn't support the `onScroll` event") : void 0; 25518 } 25519 var containerInfo = inst._hostContainerInfo; 25520 var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE; 25521 var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument; 25522 listenTo(registrationName, doc); 25523 transaction.getReactMountReady().enqueue(putListener, { 25524 inst: inst, 25525 registrationName: registrationName, 25526 listener: listener 25527 }); 25528} 25529 25530function putListener() { 25531 var listenerToPut = this; 25532 EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener); 25533} 25534 25535function inputPostMount() { 25536 var inst = this; 25537 ReactDOMInput.postMountWrapper(inst); 25538} 25539 25540function textareaPostMount() { 25541 var inst = this; 25542 ReactDOMTextarea.postMountWrapper(inst); 25543} 25544 25545function optionPostMount() { 25546 var inst = this; 25547 ReactDOMOption.postMountWrapper(inst); 25548} 25549 25550var setAndValidateContentChildDev = emptyFunction; 25551if (process.env.NODE_ENV !== 'production') { 25552 setAndValidateContentChildDev = function (content) { 25553 var hasExistingContent = this._contentDebugID != null; 25554 var debugID = this._debugID; 25555 // This ID represents the inlined child that has no backing instance: 25556 var contentDebugID = -debugID; 25557 25558 if (content == null) { 25559 if (hasExistingContent) { 25560 ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID); 25561 } 25562 this._contentDebugID = null; 25563 return; 25564 } 25565 25566 validateDOMNesting(null, String(content), this, this._ancestorInfo); 25567 this._contentDebugID = contentDebugID; 25568 if (hasExistingContent) { 25569 ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content); 25570 ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID); 25571 } else { 25572 ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID); 25573 ReactInstrumentation.debugTool.onMountComponent(contentDebugID); 25574 ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]); 25575 } 25576 }; 25577} 25578 25579// There are so many media events, it makes sense to just
25580// maintain a list rather than create a `trapBubbledEvent` for each 25581var mediaEvents = { 25582 topAbort: 'abort', 25583 topCanPlay: 'canplay', 25584 topCanPlayThrough: 'canplaythrough', 25585 topDurationChange: 'durationchange', 25586 topEmptied: 'emptied', 25587 topEncrypted: 'encrypted', 25588 topEnded: 'ended', 25589 topError: 'error', 25590 topLoadedData: 'loadeddata', 25591 topLoadedMetadata: 'loadedmetadata', 25592 topLoadStart: 'loadstart', 25593 topPause: 'pause', 25594 topPlay: 'play', 25595 topPlaying: 'playing', 25596 topProgress: 'progress', 25597 topRateChange: 'ratechange', 25598 topSeeked: 'seeked', 25599 topSeeking: 'seeking', 25600 topStalled: 'stalled', 25601 topSuspend: 'suspend', 25602 topTimeUpdate: 'timeupdate', 25603 topVolumeChange: 'volumechange', 25604 topWaiting: 'waiting' 25605}; 25606 25607function trackInputValue() { 25608 inputValueTracking.track(this); 25609} 25610 25611function trapBubbledEventsLocal() { 25612 var inst = this; 25613 // If a component renders to null or if another component fatals and causes 25614 // the state of the tree to be corrupted, `node` here can be null. 25615 !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0; 25616 var node = getNode(inst); 25617 !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0; 25618 25619 switch (inst._tag) { 25620 case 'iframe': 25621 case 'object': 25622 inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; 25623 break; 25624 case 'video': 25625 case 'audio': 25626 inst._wrapperState.listeners = []; 25627 // Create listener for each media event 25628 for (var event in mediaEvents) { 25629 if (mediaEvents.hasOwnProperty(event)) { 25630 inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node)); 25631 } 25632 } 25633 break; 25634 case 'source': 25635 inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)]; 25636 break; 25637 case 'img': 25638 inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; 25639 break; 25640 case 'form': 25641 inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)]; 25642 break; 25643 case 'input': 25644 case 'select': 25645 case 'textarea': 25646 inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)]; 25647 break; 25648 } 25649} 25650 25651function postUpdateSelectWrapper() { 25652 ReactDOMSelect.postUpdateWrapper(this); 25653} 25654 25655// For HTML, certain tags should omit their close tag. We keep a whitelist for 25656// those special-case tags. 25657 25658var omittedCloseTags = { 25659 area: true, 25660 base: true, 25661 br: true, 25662 col: true, 25663 embed: true, 25664 hr: true, 25665 img: true, 25666 input: true, 25667 keygen: true, 25668 link: true, 25669 meta: true, 25670 param: true, 25671 source: true, 25672 track: true, 25673 wbr: true 25674 // NOTE: menuitem's close tag should be omitted, but that causes problems. 25675}; 25676 25677var newlineEatingTags = { 25678 listing: true, 25679 pre: true, 25680 textarea: true 25681}; 25682 25683// For HTML, certain tags cannot have children. This has the same purpose as 25684// `omittedCloseTags` except that `menuitem` should still have its closing tag. 25685 25686var voidElementTags = _assign({ 25687 menuitem: true 25688}, omittedCloseTags); 25689 25690// We accept any tag to be rendered but since this gets injected into arbitrary 25691// HTML, we want to make sure that it's a safe tag. 25692// http://www.w3.org/TR/REC-xml/#NT-Name 25693 25694var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset 25695var validatedTagCache = {}; 25696var hasOwnProperty = {}.hasOwnProperty; 25697 25698function validateDangerousTag(tag) { 25699 if (!hasOwnProperty.call(validatedTagCache, tag)) { 25700 !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0; 25701 validatedTagCache[tag] = true; 25702 } 25703} 25704 25705function isCustomComponent(tagName, props) { 25706 return tagName.indexOf('-') >= 0 || props.is != null; 25707} 25708 25709var globalIdCounter = 1; 25710 25711/** 25712 * Creates a new React class that is idempotent and capable of containing other 25713 * React components. It accepts event listeners and DOM properties that are 25714 * valid according to `DOMProperty`. 25715 * 25716 * - Event listeners: `onClick`, `onMouseDown`, etc. 25717 * - DOM properties: `className`, `name`, `title`, etc. 25718 * 25719 * The `style` property functions differently from the DOM API. It accepts an 25720 * object mapping of style properties to values. 25721 * 25722 * @constructor ReactDOMComponent 25723 * @extends ReactMultiChild 25724 */ 25725function ReactDOMComponent(element) { 25726 var tag = element.type; 25727 validateDangerousTag(tag); 25728 this._currentElement = element; 25729 this._tag = tag.toLowerCase(); 25730 this._namespaceURI = null; 25731 this._renderedChildren = null; 25732 this._previousStyle = null; 25733 this._previousStyleCopy = null; 25734 this._hostNode = null; 25735 this._hostParent = null; 25736 this._rootNodeID = 0; 25737 this._domID = 0; 25738 this._hostContainerInfo = null; 25739 this._wrapperState = null; 25740 this._topLevelWrapper = null; 25741 this._flags = 0; 25742 if (process.env.NODE_ENV !== 'production') { 25743 this._ancestorInfo = null; 25744 setAndValidateContentChildDev.call(this, null); 25745 } 25746} 25747 25748ReactDOMComponent.displayName = 'ReactDOMComponent'; 25749 25750ReactDOMComponent.Mixin = { 25751 /** 25752 * Generates root tag markup then recurses. This method has side effects and 25753 * is not idempotent. 25754 * 25755 * @internal 25756 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 25757 * @param {?ReactDOMComponent} the parent component instance 25758 * @param {?object} info about the host container 25759 * @param {object} context 25760 * @return {string} The computed markup. 25761 */ 25762 mountComponent: function (transaction, hostParent, hostContainerInfo, context) { 25763 this._rootNodeID = globalIdCounter++; 25764 this._domID = hostContainerInfo._idCounter++; 25765 this._hostParent = hostParent; 25766 this._hostContainerInfo = hostContainerInfo; 25767 25768 var props = this._currentElement.props; 25769 25770 switch (this._tag) { 25771 case 'audio': 25772 case 'form': 25773 case 'iframe': 25774 case 'img': 25775 case 'link': 25776 case 'object': 25777 case 'source': 25778 case 'video': 25779 this._wrapperState = { 25780 listeners: null 25781 }; 25782 transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); 25783 break; 25784 case 'input': 25785 ReactDOMInput.mountWrapper(this, props, hostParent); 25786 props = ReactDOMInput.getHostProps(this, props); 25787 transaction.getReactMountReady().enqueue(trackInputValue, this); 25788 transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); 25789 break; 25790 case 'option': 25791 ReactDOMOption.mountWrapper(this, props, hostParent); 25792 props = ReactDOMOption.getHostProps(this, props); 25793 break; 25794 case 'select': 25795 ReactDOMSelect.mountWrapper(this, props, hostParent); 25796 props = ReactDOMSelect.getHostProps(this, props); 25797 transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); 25798 break; 25799 case 'textarea': 25800 ReactDOMTextarea.mountWrapper(this, props, hostParent); 25801 props = ReactDOMTextarea.getHostProps(this, props); 25802 transaction.getReactMountReady().enqueue(trackInputValue, this); 25803 transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); 25804 break; 25805 } 25806 25807 assertValidProps(this, props); 25808 25809 // We create tags in the namespace of their parent container, except HTML 25810 // tags get no namespace. 25811 var namespaceURI; 25812 var parentTag; 25813 if (hostParent != null) { 25814 namespaceURI = hostParent._namespaceURI; 25815 parentTag = hostParent._tag; 25816 } else if (hostContainerInfo._tag) { 25817 namespaceURI = hostContainerInfo._namespaceURI; 25818 parentTag = hostContainerInfo._tag; 25819 } 25820 if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') { 25821 namespaceURI = DOMNamespaces.html; 25822 } 25823 if (namespaceURI === DOMNamespaces.html) { 25824 if (this._tag === 'svg') { 25825 namespaceURI = DOMNamespaces.svg; 25826 } else if (this._tag === 'math') { 25827 namespaceURI = DOMNamespaces.mathml; 25828 } 25829 } 25830 this._namespaceURI = namespaceURI; 25831 25832 if (process.env.NODE_ENV !== 'production') { 25833 var parentInfo; 25834 if (hostParent != null) { 25835 parentInfo = hostParent._ancestorInfo; 25836 } else if (hostContainerInfo._tag) { 25837 parentInfo = hostContainerInfo._ancestorInfo; 25838 } 25839 if (parentInfo) { 25840 // parentInfo should always be present except for the top-level 25841 // component when server rendering 25842 validateDOMNesting(this._tag, null, this, parentInfo); 25843 } 25844 this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(p
25844arentInfo, this._tag, this); 25845 } 25846 25847 var mountImage; 25848 if (transaction.useCreateElement) { 25849 var ownerDocument = hostContainerInfo._ownerDocument; 25850 var el; 25851 if (namespaceURI === DOMNamespaces.html) { 25852 if (this._tag === 'script') { 25853 // Create the script via .innerHTML so its "parser-inserted" flag is 25854 // set to true and it does not execute 25855 var div = ownerDocument.createElement('div'); 25856 var type = this._currentElement.type; 25857 div.innerHTML = '<' + type + '></' + type + '>'; 25858 el = div.removeChild(div.firstChild); 25859 } else if (props.is) { 25860 el = ownerDocument.createElement(this._currentElement.type, props.is); 25861 } else { 25862 // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug. 25863 // See discussion in https://github.com/facebook/react/pull/6896 25864 // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240 25865 el = ownerDocument.createElement(this._currentElement.type); 25866 } 25867 } else { 25868 el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type); 25869 } 25870 ReactDOMComponentTree.precacheNode(this, el); 25871 this._flags |= Flags.hasCachedChildNodes; 25872 if (!this._hostParent) { 25873 DOMPropertyOperations.setAttributeForRoot(el); 25874 } 25875 this._updateDOMProperties(null, props, transaction); 25876 var lazyTree = DOMLazyTree(el); 25877 this._createInitialChildren(transaction, props, context, lazyTree); 25878 mountImage = lazyTree; 25879 } else { 25880 var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props); 25881 var tagContent = this._createContentMarkup(transaction, props, context); 25882 if (!tagContent && omittedCloseTags[this._tag]) { 25883 mountImage = tagOpen + '/>'; 25884 } else { 25885 mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>'; 25886 } 25887 } 25888 25889 switch (this._tag) { 25890 case 'input': 25891 transaction.getReactMountReady().enqueue(inputPostMount, this); 25892 if (props.autoFocus) { 25893 transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); 25894 } 25895 break; 25896 case 'textarea': 25897 transaction.getReactMountReady().enqueue(textareaPostMount, this); 25898 if (props.autoFocus) { 25899 transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); 25900 } 25901 break; 25902 case 'select': 25903 if (props.autoFocus) { 25904 transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); 25905 } 25906 break; 25907 case 'button': 25908 if (props.autoFocus) { 25909 transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); 25910 } 25911 break; 25912 case 'option': 25913 transaction.getReactMountReady().enqueue(optionPostMount, this); 25914 break; 25915 } 25916 25917 return mountImage; 25918 }, 25919 25920 /** 25921 * Creates markup for the open tag and all attributes. 25922 * 25923 * This method has side effects because events get registered. 25924 * 25925 * Iterating over object properties is faster than iterating over arrays. 25926 * @see http://jsperf.com/obj-vs-arr-iteration 25927 * 25928 * @private 25929 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 25930 * @param {object} props 25931 * @return {string} Markup of opening tag. 25932 */ 25933 _createOpenTagMarkupAndPutListeners: function (transaction, props) { 25934 var ret = '<' + this._currentElement.type; 25935 25936 for (var propKey in props) { 25937 if (!props.hasOwnProperty(propKey)) { 25938 continue; 25939 } 25940 var propValue = props[propKey]; 25941 if (propValue == null) { 25942 continue; 25943 } 25944 if (registrationNameModules.hasOwnProperty(propKey)) { 25945 if (propValue) { 25946 enqueuePutListener(this, propKey, propValue, transaction); 25947 } 25948 } else { 25949 if (propKey === STYLE) { 25950 if (propValue) { 25951 if (process.env.NODE_ENV !== 'production') { 25952 // See `_updateDOMProperties`. style block 25953 this._previousStyle = propValue; 25954 } 25955 propValue = this._previousStyleCopy = _assign({}, props.style); 25956 } 25957 propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this); 25958 } 25959 var markup = null; 25960 if (this._tag != null && isCustomComponent(this._tag, props)) { 25961 if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
25962 markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue); 25963 } 25964 } else { 25965 markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue); 25966 } 25967 if (markup) { 25968 ret += ' ' + markup; 25969 } 25970 } 25971 } 25972 25973 // For static pages, no need to put React ID and checksum. Saves lots of 25974 // bytes. 25975 if (transaction.renderToStaticMarkup) { 25976 return ret; 25977 } 25978 25979 if (!this._hostParent) { 25980 ret += ' ' + DOMPropertyOperations.createMarkupForRoot(); 25981 } 25982 ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID); 25983 return ret; 25984 }, 25985 25986 /** 25987 * Creates markup for the content between the tags. 25988 * 25989 * @private 25990 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 25991 * @param {object} props 25992 * @param {object} context 25993 * @return {string} Content markup. 25994 */ 25995 _createContentMarkup: function (transaction, props, context) { 25996 var ret = ''; 25997 25998 // Intentional use of != to avoid catching zero/false. 25999 var innerHTML = props.dangerouslySetInnerHTML; 26000 if (innerHTML != null) { 26001 if (innerHTML.__html != null) { 26002 ret = innerHTML.__html; 26003 } 26004 } else { 26005 var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; 26006 var childrenToUse = contentToUse != null ? null : props.children; 26007 if (contentToUse != null) { 26008 // TODO: Validate that text is allowed as a child of this node 26009 ret = escapeTextContentForBrowser(contentToUse); 26010 if (process.env.NODE_ENV !== 'production') { 26011 setAndValidateContentChildDev.call(this, contentToUse); 26012 } 26013 } else if (childrenToUse != null) { 26014 var mountImages = this.mountChildren(childrenToUse, transaction, context); 26015 ret = mountImages.join(''); 26016 } 26017 } 26018 if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') { 26019 // text/html ignores the first character in these tags if it's a newline 26020 // Prefer to break application/xml over text/html (for now) by adding 26021 // a newline specifically to get eaten by the parser. (Alternately for 26022 // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first 26023 // \r is normalized out by HTMLTextAreaElement#value.) 26024 // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre> 26025 // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions> 26026 // See: <http://www.w3.org/TR/html5/syntax.html#newlines> 26027 // See: Parsing of "textarea" "listing" and "pre" elements 26028 // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody> 26029 return '\n' + ret; 26030 } else { 26031 return ret; 26032 } 26033 }, 26034 26035 _createInitialChildren: function (transaction, props, context, lazyTree) { 26036 // Intentional use of != to avoid catching zero/false. 26037 var innerHTML = props.dangerouslySetInnerHTML; 26038 if (innerHTML != null) { 26039 if (innerHTML.__html != null) { 26040 DOMLazyTree.queueHTML(lazyTree, innerHTML.__html); 26041 } 26042 } else { 26043 var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; 26044 var childrenToUse = contentToUse != null ? null : props.children; 26045 // TODO: Validate that text is allowed as a child of this node 26046 if (contentToUse != null) { 26047 // Avoid setting textContent when the text is empty. In IE11 setting 26048 // textContent on a text area will cause the placeholder to not 26049 // show within the textarea until it has been focused and blurred again. 26050 // https://github.com/facebook/react/issues/6731#issuecomment-254874553 26051 if (contentToUse !== '') { 26052 if (process.env.NODE_ENV !== 'production') { 26053 setAndValidateContentChildDev.call(this, contentToUse); 26054 } 26055 DOMLazyTree.queueText(lazyTree, contentToUse); 26056 } 26057 } else if (childrenToUse != null) { 26058 var mountImages = this.mountChildren(childrenToUse, transaction, context); 26059 for (var i = 0; i < mountImages.length; i++) { 26060 DOMLazyTree.queueChild(lazyTree, mountImages[i]); 26061 } 26062 } 26063 } 26064 }, 26065 26066 /** 26067 * Receives a next element and updates the component. 26068 * 26069 * @internal 26070 * @param {ReactElement} nextElement 26071 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 26072 * @param {object} context 26073 */ 26074 receiveComponent: function (nextElement, transaction, context) { 26075 var prevElement = this._currentElement; 26076 this._currentElement = nextElement; 26077 this.updateComponent(transaction, prevElement, nextElement, context); 26078 }, 26079 26080 /** 26081 * Updates a DOM component after it has already been allocated and 26082 * attached to the DOM. Reconciles the root DOM node, then recurses. 26083 * 26084 * @param {ReactReconcileTransaction} transaction 26085 * @param {ReactElement} prevElement 26086 * @param {ReactElement} nextElement 26087 * @internal 26088 * @overridable 26089 */ 26090 updateComponent: function (transaction, prevElement, nextElement, context) { 26091 var lastProps = prevElement.props; 26092 var nextProps = this._currentElement.props; 26093 26094 switch (this._tag) { 26095 case 'input': 26096 lastProps = ReactDOMInput.getHostProps(this, lastProps); 26097 nextProps = ReactDOMInput.getHostProps(this, nextProps); 26098 break; 26099 case 'option': 26100 lastProps = ReactDOMOption.getHostProps(this, lastProps); 26101 nextProps = ReactDOMOption.getHostProps(this, nextProps); 26102 break; 26103 case 'select': 26104 lastProps = ReactDOMSelect.getHostProps(this, lastProps); 26105 nextProps = ReactDOMSelect.getHostProps(this, nextProps); 26106 break; 26107 case 'textarea': 26108 lastProps = ReactDOMTextarea.getHostProps(this, lastProps); 26109 nextProps = ReactDOMTextarea.getHostProps(this, nextProps); 26110 break; 26111 } 26112 26113 assertValidProps(this, nextProps); 26114 this._updateDOMProperties(lastProps, nextProps, transaction); 26115 this._updateDOMChildren(lastProps, nextProps, transaction, context); 26116 26117 switch (this._tag) { 26118 case 'input':
26119 // Update the wrapper around inputs *after* updating props. This has to 26120 // happen after `_updateDOMProperties`. Otherwise HTML5 input validations 26121 // raise warnings and prevent the new value from being assigned. 26122 ReactDOMInput.updateWrapper(this); 26123 26124 // We also check that we haven't missed a value update, such as a 26125 // Radio group shifting the checked value to another named radio input. 26126 inputValueTracking.updateValueIfChanged(this); 26127 break; 26128 case 'textarea': 26129 ReactDOMTextarea.updateWrapper(this); 26130 break; 26131 case 'select': 26132 // <select> value update needs to occur after <option> children 26133 // reconciliation 26134 transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); 26135 break; 26136 } 26137 }, 26138 26139 /** 26140 * Reconciles the properties by detecting differences in property values and 26141 * updating the DOM as necessary. This function is probably the single most 26142 * critical path for performance optimization. 26143 * 26144 * TODO: Benchmark whether checking for changed values in memory actually 26145 * improves performance (especially statically positioned elements). 26146 * TODO: Benchmark the effects of putting this at the top since 99% of props 26147 * do not change for a given reconciliation. 26148 * TODO: Benchmark areas that can be improved with caching. 26149 * 26150 * @private 26151 * @param {object} lastProps 26152 * @param {object} nextProps 26153 * @param {?DOMElement} node 26154 */ 26155 _updateDOMProperties: function (lastProps, nextProps, transaction) { 26156 var propKey; 26157 var styleName; 26158 var styleUpdates; 26159 for (propKey in lastProps) { 26160 if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) { 26161 continue; 26162 } 26163 if (propKey === STYLE) { 26164 var lastStyle = this._previousStyleCopy; 26165 for (styleName in lastStyle) { 26166 if (lastStyle.hasOwnProperty(styleName)) { 26167 styleUpdates = styleUpdates || {}; 26168 styleUpdates[styleName] = ''; 26169 } 26170 } 26171 this._previousStyleCopy = null; 26172 } else if (registrationNameModules.hasOwnProperty(propKey)) { 26173 if (lastProps[propKey]) { 26174 // Only call deleteListener if there was a listener previously or 26175 // else willDeleteListener gets called when there wasn't actually a 26176 // listener (e.g., onClick={null}) 26177 deleteListener(this, propKey); 26178 } 26179 } else if (isCustomComponent(this._tag, lastProps)) { 26180 if (!RESERVED_PROPS.hasOwnProperty(propKey)) { 26181 DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey); 26182 } 26183 } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { 26184 DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey); 26185 } 26186 } 26187 for (propKey in nextProps) { 26188 var nextProp = nextProps[propKey]; 26189 var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined; 26190 if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) { 26191 continue; 26192 } 26193 if (propKey === STYLE) { 26194 if (nextProp) { 26195 if (process.env.NODE_ENV !== 'production') { 26196 checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this); 26197 this._previousStyle = nextProp; 26198 } 26199 nextProp = this._previousStyleCopy = _assign({}, nextProp); 26200 } else { 26201 this._previousStyleCopy = null; 26202 } 26203 if (lastProp) { 26204 // Unset styles on `lastProp` but not on `nextProp`. 26205 for (styleName in lastProp) { 26206 if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { 26207 styleUpdates = styleUpdates || {}; 26208 styleUpdates[styleName] = ''; 26209 } 26210 } 26211 // Update styles that changed since `lastProp`. 26212 for (styleName in nextProp) { 26213 if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) { 26214 styleUpdates = styleUpdates || {}; 26215 styleUpdates[styleName] = nextProp[styleName]; 26216 } 26217 } 26218 } else { 26219 // Relies on `updateStylesByID` not mutating `styleUpdates`. 26220 styleUpdates = nextProp; 26221 } 26222 } else if (registrationNameModules.hasOwnProperty(propKey)) { 26223 if (nextProp) { 26224 enqueuePutListener(this, propKey, nextProp, transaction); 26225 } else if (lastProp) { 26226 deleteListener(this, propKey); 26227 } 26228 } else if (isCustomComponent(this._tag, nextProps)) { 26229 if (!RESERVED_PROPS.hasOwnProperty(propKey)) { 26230 DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp); 26231 } 26232 } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { 26233 var node = getNode(this); 26234 // If we're updating to null or undefined, we should remove the property 26235 // from the DOM node instead of inadvertently setting to a string. This 26236 // brings us in line with the same behavior we have on initial render. 26237 if (nextProp != null) { 26238 DOMPropertyOperations.setValueForProperty(node, propKey, nextProp); 26239 } else { 26240 DOMPropertyOperations.deleteValueForProperty(node, propKey); 26241 } 26242 } 26243 } 26244 if (styleUpdates) { 26245 CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this); 26246 } 26247 }, 26248 26249 /** 26250 * Reconciles the children with the various properties that affect the 26251 * children content. 26252 * 26253 * @param {object} lastProps 26254 * @param {object} nextProps 26255 * @param {ReactReconcileTransaction} transaction 26256 * @param {object} context 26257 */ 26258 _updateDOMChildren: function (lastProps, nextProps, transaction, context) { 26259 var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null; 26260 var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null; 26261 26262 var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html; 26263 var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html; 26264 26265 // Note the use of `!=` which checks for null or undefined. 26266 var lastChildren = lastContent != null ? null : lastProps.children; 26267 var nextChildren = nextContent != null ? null : nextProps.children; 26268 26269 // If we're switching from children to content/html or vice versa, remove 26270 // the old content
26271 var lastHasContentOrHtml = lastContent != null || lastHtml != null; 26272 var nextHasContentOrHtml = nextContent != null || nextHtml != null; 26273 if (lastChildren != null && nextChildren == null) { 26274 this.updateChildren(null, transaction, context); 26275 } else if (lastHasContentOrHtml && !nextHasContentOrHtml) { 26276 this.updateTextContent(''); 26277 if (process.env.NODE_ENV !== 'production') { 26278 ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); 26279 } 26280 } 26281 26282 if (nextContent != null) { 26283 if (lastContent !== nextContent) { 26284 this.updateTextContent('' + nextContent); 26285 if (process.env.NODE_ENV !== 'production') { 26286 setAndValidateContentChildDev.call(this, nextContent); 26287 } 26288 } 26289 } else if (nextHtml != null) { 26290 if (lastHtml !== nextHtml) { 26291 this.updateMarkup('' + nextHtml); 26292 } 26293 if (process.env.NODE_ENV !== 'production') { 26294 ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); 26295 } 26296 } else if (nextChildren != null) { 26297 if (process.env.NODE_ENV !== 'production') { 26298 setAndValidateContentChildDev.call(this, null); 26299 } 26300 26301 this.updateChildren(nextChildren, transaction, context); 26302 } 26303 }, 26304 26305 getHostNode: function () { 26306 return getNode(this); 26307 }, 26308 26309 /** 26310 * Destroys all event registrations for this instance. Does not remove from 26311 * the DOM. That must be done by the parent. 26312 * 26313 * @internal 26314 */ 26315 unmountComponent: function (safely) { 26316 switch (this._tag) { 26317 case 'audio': 26318 case 'form': 26319 case 'iframe': 26320 case 'img': 26321 case 'link': 26322 case 'object': 26323 case 'source': 26324 case 'video': 26325 var listeners = this._wrapperState.listeners; 26326 if (listeners) { 26327 for (var i = 0; i < listeners.length; i++) { 26328 listeners[i].remove(); 26329 } 26330 } 26331 break; 26332 case 'input': 26333 case 'textarea': 26334 inputValueTracking.stopTracking(this); 26335 break; 26336 case 'html': 26337 case 'head': 26338 case 'body': 26339 /** 26340 * Components like <html> <head> and <body> can't be removed or added 26341 * easily in a cross-browser way, however it's valuable to be able to 26342 * take advantage of React's reconciliation for styling and <title> 26343 * management. So we just document it and throw in dangerous cases. 26344 */ 26345 true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0; 26346 break; 26347 } 26348 26349 this.unmountChildren(safely); 26350 ReactDOMComponentTree.uncacheNode(this); 26351 EventPluginHub.deleteAllListeners(this); 26352 this._rootNodeID = 0; 26353 this._domID = 0; 26354 this._wrapperState = null; 26355 26356 if (process.env.NODE_ENV !== 'production') { 26357 setAndValidateContentChildDev.call(this, null); 26358 } 26359 }, 26360 26361 getPublicInstance: function () { 26362 return getNode(this); 26363 } 26364}; 26365 26366_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin); 26367 26368module.exports = ReactDOMComponent; 26369/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 26370 26371/***/ }), 26372/* 474 */ 26373/***/ (function(module, exports, __webpack_require__) { 26374 26375"use strict"; 26376/** 26377 * Copyright (c) 2013-present, Facebook, Inc. 26378 * 26379 * This source code is licensed under the MIT license found in the 26380 * LICENSE file in the root directory of this source tree. 26381 * 26382 */ 26383 26384 26385 26386var ReactDOMComponentTree = __webpack_require__(14); 26387 26388var focusNode = __webpack_require__(205); 26389 26390var AutoFocusUtils = { 26391 focusDOMComponent: function () { 26392 focusNode(ReactDOMComponentTree.getNodeFromInstance(this)); 26393 } 26394}; 26395 26396module.exports = AutoFocusUtils; 26397 26398/***/ }), 26399/* 475 */ 26400/***/ (function(module, exports, __webpack_require__) { 26401 26402"use strict"; 26403/* WEBPACK VAR INJECTION */(function(process) {/** 26404 * Copyright (c) 2013-present, Facebook, Inc. 26405 * 26406 * This source code is licensed under the MIT license found in the 26407 * LICENSE file in the root directory of this source tree. 26408 * 26409 */ 26410 26411 26412 26413var CSSProperty = __webpack_require__(206); 26414var ExecutionEnvironment = __webpack_require__(16); 26415var ReactInstrumentation = __webpack_require__(28); 26416 26417var camelizeStyleName = __webpack_require__(476); 26418var dangerousStyleValue = __webpack_require__(478); 26419var hyphenateStyleName = __webpack_require__(479); 26420var memoizeStringOnly = __webpack_require__(481); 26421var warning = __webpack_require__(3); 26422 26423var processStyleName = memoizeStringOnly(function (styleName) { 26424 return hyphenateStyleName(styleName); 26425}); 26426 26427var hasShorthandPropertyBug = false;
26428var styleFloatAccessor = 'cssFloat'; 26429if (ExecutionEnvironment.canUseDOM) { 26430 var tempStyle = document.createElement('div').style; 26431 try { 26432 // IE8 throws "Invalid argument." if resetting shorthand style properties. 26433 tempStyle.font = ''; 26434 } catch (e) { 26435 hasShorthandPropertyBug = true; 26436 } 26437 // IE8 only supports accessing cssFloat (standard) as styleFloat 26438 if (document.documentElement.style.cssFloat === undefined) { 26439 styleFloatAccessor = 'styleFloat'; 26440 } 26441} 26442 26443if (process.env.NODE_ENV !== 'production') { 26444 // 'msTransform' is correct, but the other prefixes should be capitalized 26445 var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; 26446 26447 // style values shouldn't contain a semicolon 26448 var badStyleValueWithSemicolonPattern = /;\s*$/; 26449 26450 var warnedStyleNames = {}; 26451 var warnedStyleValues = {}; 26452 var warnedForNaNValue = false; 26453 26454 var warnHyphenatedStyleName = function (name, owner) { 26455 if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { 26456 return; 26457 } 26458 26459 warnedStyleNames[name] = true; 26460 process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0; 26461 }; 26462 26463 var warnBadVendoredStyleName = function (name, owner) { 26464 if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { 26465 return; 26466 } 26467 26468 warnedStyleNames[name] = true; 26469 process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0; 26470 }; 26471 26472 var warnStyleValueWithSemicolon = function (name, value, owner) { 26473 if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { 26474 return; 26475 } 26476 26477 warnedStyleValues[value] = true; 26478 process.env.NODE_ENV !== 'production' ? warning(false, "Style property values shouldn't contain a semicolon.%s " + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0; 26479 }; 26480 26481 var warnStyleValueIsNaN = function (name, value, owner) { 26482 if (warnedForNaNValue) { 26483 return; 26484 } 26485 26486 warnedForNaNValue = true; 26487 process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0; 26488 }; 26489 26490 var checkRenderMessage = function (owner) { 26491 if (owner) { 26492 var name = owner.getName(); 26493 if (name) { 26494 return ' Check the render method of `' + name + '`.'; 26495 } 26496 } 26497 return ''; 26498 }; 26499 26500 /** 26501 * @param {string} name 26502 * @param {*} value 26503 * @param {ReactDOMComponent} component 26504 */ 26505 var warnValidStyle = function (name, value, component) { 26506 var owner; 26507 if (component) { 26508 owner = component._currentElement._owner; 26509 } 26510 if (name.indexOf('-') > -1) { 26511 warnHyphenatedStyleName(name, owner); 26512 } else if (badVendoredStyleNamePattern.test(name)) { 26513 warnBadVendoredStyleName(name, owner); 26514 } else if (badStyleValueWithSemicolonPattern.test(value)) { 26515 warnStyleValueWithSemicolon(name, value, owner); 26516 } 26517 26518 if (typeof value === 'number' && isNaN(value)) { 26519 warnStyleValueIsNaN(name, value, owner); 26520 } 26521 }; 26522} 26523 26524/** 26525 * Operations for dealing with CSS properties. 26526 */ 26527var CSSPropertyOperations = { 26528 /** 26529 * Serializes a mapping of style properties for use as inline styles: 26530 * 26531 * > createMarkupForStyles({width: '200px', height: 0}) 26532 * "width:200px;height:0;" 26533 * 26534 * Undefined values are ignored so that declarative programming is easier. 26535 * The result should be HTML-escaped before insertion into the DOM. 26536 * 26537 * @param {object} styles 26538 * @param {ReactDOMComponent} component 26539 * @return {?string} 26540 */ 26541 createMarkupForStyles: function (styles, component) { 26542 var serialized = ''; 26543 for (var styleName in styles) { 26544 if (!styles.hasOwnProperty(styleName)) { 26545 continue; 26546 } 26547 var isCustomProperty = styleName.indexOf('--') === 0; 26548 var styleValue = styles[styleName]; 26549 if (process.env.NODE_ENV !== 'production') { 26550 if (!isCustomProperty) { 26551 warnValidStyle(styleName, styleValue, component); 26552 } 26553 } 26554 if (styleValue != null) { 26555 serialized += processStyleName(styleName) + ':'; 26556 serialized += dangerousStyleValue(styleName, styleValue, component, isCustomProperty) + ';'; 26557 } 26558 } 26559 return serialized || null; 26560 }, 26561 26562 /** 26563 * Sets the value for multiple styles on a node. If a value is specified as 26564 * '' (empty string), the corresponding style property will be unset. 26565 * 26566 * @param {DOMElement} node 26567 * @param {object} styles 26568 * @param {ReactDOMComponent} component 26569 */ 26570 setValueForStyles: function (node, styles, component) { 26571 if (process.env.NODE_ENV !== 'production') { 26572 ReactInstrumentation.debugTool.onHostOperation({ 26573 instanceID: component._debugID, 26574 type: 'update styles', 26575 payload: styles 26576 }); 26577 } 26578 26579 var style = node.style; 26580 for (var styleName in styles) { 26581 if (!styles.hasOwnProperty(styleName)) { 26582 continue; 26583 } 26584 var isCustomProperty = styleName.indexOf('--') === 0; 26585 if (process.env.NODE_ENV !== 'production') { 26586 if (!isCustomProperty) { 26587 warnValidStyle(styleName, styles[styleName], component); 26588 } 26589 } 26590 var styleValue = dangerousStyleValue(styleName, styles[styleName], component, isCustomProperty); 26591 if (styleName === 'float' || styleName === 'cssFloat') { 26592 styleName = styleFloatAccessor; 26593 } 26594 if (isCustomProperty) { 26595 style.setProperty(styleName, styleValue); 26596 } else if (styleValue) { 26597 style[styleName] = styleValue; 26598 } else { 26599 var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName]; 26600 if (expansion) { 26601 // Shorthand property that IE8 won't like unsetting, so unset each 26602 // component to placate it 26603 for (var individualStyleName in expansion) { 26604 style[individualStyleName] = ''; 26605 } 26606 } else { 26607 style[styleName] = ''; 26608 } 26609 } 26610 } 26611 } 26612}; 26613 26614module.exports = CSSPropertyOperations; 26615/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 26616 26617/***/ }), 26618/* 476 */ 26619/***/ (function(module, exports, __webpack_require__) { 26620 26621"use strict"; 26622/** 26623 * Copyright (c) 2013-present, Facebook, Inc. 26624 * 26625 * This source code is licensed under the MIT license found in the 26626 * LICENSE file in the root directory of this source tree. 26627 * 26628 * @typechecks 26629 */ 26630 26631 26632
26633var camelize = __webpack_require__(477); 26634 26635var msPattern = /^-ms-/; 26636 26637/** 26638 * Camelcases a hyphenated CSS property name, for example: 26639 * 26640 * > camelizeStyleName('background-color') 26641 * < "backgroundColor" 26642 * > camelizeStyleName('-moz-transition') 26643 * < "MozTransition" 26644 * > camelizeStyleName('-ms-transition') 26645 * < "msTransition" 26646 * 26647 * As Andi Smith suggests 26648 * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix 26649 * is converted to lowercase `ms`. 26650 * 26651 * @param {string} string 26652 * @return {string} 26653 */ 26654function camelizeStyleName(string) { 26655 return camelize(string.replace(msPattern, 'ms-')); 26656} 26657 26658module.exports = camelizeStyleName; 26659 26660/***/ }), 26661/* 477 */ 26662/***/ (function(module, exports, __webpack_require__) { 26663 26664"use strict"; 26665 26666 26667/** 26668 * Copyright (c) 2013-present, Facebook, Inc. 26669 * 26670 * This source code is licensed under the MIT license found in the 26671 * LICENSE file in the root directory of this source tree. 26672 * 26673 * @typechecks 26674 */ 26675 26676var _hyphenPattern = /-(.)/g; 26677 26678/** 26679 * Camelcases a hyphenated string, for example: 26680 * 26681 * > camelize('background-color') 26682 * < "backgroundColor" 26683 * 26684 * @param {string} string 26685 * @return {string} 26686 */ 26687function camelize(string) { 26688 return string.replace(_hyphenPattern, function (_, character) { 26689 return character.toUpperCase(); 26690 }); 26691} 26692 26693module.exports = camelize; 26694 26695/***/ }), 26696/* 478 */ 26697/***/ (function(module, exports, __webpack_require__) { 26698 26699"use strict"; 26700/* WEBPACK VAR INJECTION */(function(process) {/** 26701 * Copyright (c) 2013-present, Facebook, Inc. 26702 * 26703 * This source code is licensed under the MIT license found in the 26704 * LICENSE file in the root directory of this source tree. 26705 * 26706 */ 26707 26708 26709 26710var CSSProperty = __webpack_require__(206); 26711var warning = __webpack_require__(3); 26712 26713var isUnitlessNumber = CSSProperty.isUnitlessNumber; 26714var styleWarnings = {}; 26715 26716/** 26717 * Convert a value into the proper css writable value. The style name `name` 26718 * should be logical (no hyphens), as specified 26719 * in `CSSProperty.isUnitlessNumber`. 26720 * 26721 * @param {string} name CSS property name such as `topMargin`. 26722 * @param {*} value CSS property value such as `10px`. 26723 * @param {ReactDOMComponent} component 26724 * @return {string} Normalized style value with dimensions applied. 26725 */ 26726function dangerousStyleValue(name, value, component, isCustomProperty) { 26727 // Note that we've removed escapeTextForBrowser() calls here since the 26728 // whole string will be escaped when the attribute is injected into 26729 // the markup. If you provide unsafe user data here they can inject 26730 // arbitrary CSS which may be problematic (I couldn't repro this): 26731 // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 26732 // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/ 26733 // This is not an XSS hole but instead a potential CSS injection issue 26734 // which has lead to a greater discussion about how we're going to 26735 // trust URLs moving forward. See #2115901 26736 26737 var isEmpty = value == null || typeof value === 'boolean' || value === ''; 26738 if (isEmpty) { 26739 return ''; 26740 } 26741 26742 var isNonNumeric = isNaN(value); 26743 if (isCustomProperty || isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) { 26744 return '' + value; // cast to string 26745 } 26746 26747 if (typeof value === 'string') { 26748 if (process.env.NODE_ENV !== 'production') { 26749 // Allow '0' to pass through without warning. 0 is already special and 26750 // doesn't require units, so we don't need to warn about it. 26751 if (component && value !== '0') { 26752 var owner = component._currentElement._owner; 26753 var ownerName = owner ? owner.getName() : null; 26754 if (ownerName && !styleWarnings[ownerName]) { 26755 styleWarnings[ownerName] = {}; 26756 } 26757 var warned = false; 26758 if (ownerName) { 26759 var warnings = styleWarnings[ownerName]; 26760 warned = warnings[name]; 26761 if (!warned) { 26762 warnings[name] = true; 26763 } 26764 } 26765 if (!warned) { 26766 process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0; 26767 } 26768 } 26769 } 26770 value = value.trim(); 26771 } 26772 return value + 'px'; 26773} 26774 26775module.exports = dangerousStyleValue; 26776/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 26777 26778/***/ }), 26779/* 479 */ 26780/***/ (function(module, exports, __webpack_require__) { 26781 26782"use strict"; 26783/** 26784 * Copyright (c) 2013-present, Facebook, Inc. 26785 * 26786 * This source code is licensed under the MIT license found in the 26787 * LICENSE file in the root directory of this source tree. 26788 * 26789 * @typechecks 26790 */ 26791 26792 26793 26794var hyphenate = __webpack_require__(480); 26795 26796var msPattern = /^ms-/; 26797 26798/** 26799 * Hyphenates a camelcased CSS property name, for example: 26800 * 26801 * > hyphenateStyleName('backgroundColor') 26802 * < "background-color" 26803 * > hyphenateStyleName('MozTransition') 26804 * < "-moz-transition" 26805 * > hyphenateStyleName('msTransition') 26806 * < "-ms-transition" 26807 * 26808 * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix 26809 * is converted to `-ms-`. 26810 * 26811 * @param {string} string 26812 * @return {string} 26813 */ 26814function hyphenateStyleName(string) { 26815 return hyphenate(string).replace(msPattern, '-ms-'); 26816} 26817 26818module.exports = hyphenateStyleName; 26819 26820/***/ }), 26821/* 480 */ 26822/***/ (function(module, exports, __webpack_require__) { 26823 26824"use strict"; 26825 26826 26827/** 26828 * Copyright (c) 2013-present, Facebook, Inc. 26829 * 26830 * This source code is licensed under the MIT license found in the 26831 * LICENSE file in the root directory of this source tree. 26832 * 26833 * @typechecks 26834 */ 26835 26836var _uppercasePattern = /([A-Z])/g; 26837 26838/** 26839 * Hyphenates a camelcased string, for example: 26840 * 26841 * > hyphenate('backgroundColor') 26842 * < "background-color" 26843 * 26844 * For CSS style names, use `hyphenateStyleName` instead which w
26844orks properly 26845 * with all vendor prefixes, including `ms`. 26846 * 26847 * @param {string} string 26848 * @return {string} 26849 */ 26850function hyphenate(string) { 26851 return string.replace(_uppercasePattern, '-$1').toLowerCase(); 26852} 26853 26854module.exports = hyphenate; 26855 26856/***/ }), 26857/* 481 */ 26858/***/ (function(module, exports, __webpack_require__) { 26859 26860"use strict"; 26861/** 26862 * Copyright (c) 2013-present, Facebook, Inc. 26863 * 26864 * This source code is licensed under the MIT license found in the 26865 * LICENSE file in the root directory of this source tree. 26866 * 26867 * 26868 * @typechecks static-only 26869 */ 26870 26871 26872 26873/** 26874 * Memoizes the return value of a function that accepts one string argument. 26875 */ 26876 26877function memoizeStringOnly(callback) { 26878 var cache = {}; 26879 return function (string) { 26880 if (!cache.hasOwnProperty(string)) { 26881 cache[string] = callback.call(this, string); 26882 } 26883 return cache[string]; 26884 }; 26885} 26886 26887module.exports = memoizeStringOnly; 26888 26889/***/ }), 26890/* 482 */ 26891/***/ (function(module, exports, __webpack_require__) { 26892 26893"use strict"; 26894/** 26895 * Copyright (c) 2013-present, Facebook, Inc. 26896 * 26897 * This source code is licensed under the MIT license found in the 26898 * LICENSE file in the root directory of this source tree. 26899 * 26900 */ 26901 26902 26903 26904var escapeTextContentForBrowser = __webpack_require__(103); 26905 26906/** 26907 * Escapes attribute value to prevent scripting attacks. 26908 * 26909 * @param {*} value Value to escape. 26910 * @return {string} An escaped string. 26911 */ 26912function quoteAttributeValueForBrowser(value) { 26913 return '"' + escapeTextContentForBrowser(value) + '"'; 26914} 26915 26916module.exports = quoteAttributeValueForBrowser; 26917 26918/***/ }), 26919/* 483 */ 26920/***/ (function(module, exports, __webpack_require__) { 26921 26922"use strict"; 26923/** 26924 * Copyright (c) 2013-present, Facebook, Inc. 26925 * 26926 * This source code is licensed under the MIT license found in the 26927 * LICENSE file in the root directory of this source tree. 26928 * 26929 */ 26930 26931 26932 26933var EventPluginHub = __webpack_require__(77); 26934 26935function runEventQueueInBatch(events) { 26936 EventPluginHub.enqueueEvents(events); 26937 EventPluginHub.processEventQueue(false); 26938} 26939 26940var ReactEventEmitterMixin = { 26941 /** 26942 * Streams a fired top-level event to `EventPluginHub` where plugins have the 26943 * opportunity to create `ReactEvent`s to be dispatched. 26944 */ 26945 handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 26946 var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); 26947 runEventQueueInBatch(events); 26948 } 26949}; 26950 26951module.exports = ReactEventEmitterMixin; 26952 26953/***/ }), 26954/* 484 */ 26955/***/ (function(module, exports, __webpack_require__) { 26956 26957"use strict"; 26958/** 26959 * Copyright (c) 2013-present, Facebook, Inc. 26960 * 26961 * This source code is licensed under the MIT license found in the 26962 * LICENSE file in the root directory of this source tree. 26963 * 26964 */ 26965 26966 26967 26968var ExecutionEnvironment = __webpack_require__(16); 26969 26970/** 26971 * Generate a mapping of standard vendor prefixes using the defined style property and event name. 26972 * 26973 * @param {string} styleProp 26974 * @param {string} eventName 26975 * @returns {object} 26976 */ 26977function makePrefixMap(styleProp, eventName) { 26978 var prefixes = {}; 26979 26980 prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); 26981 prefixes['Webkit' + styleProp] = 'webkit' + eventName; 26982 prefixes['Moz' + styleProp] = 'moz' + eventName; 26983 prefixes['ms' + styleProp] = 'MS' + eventName; 26984 prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); 26985 26986 return prefixes; 26987} 26988 26989/** 26990 * A list of event names to a configurable list of vendor prefixes. 26991 */ 26992var vendorPrefixes = { 26993 animationend: makePrefixMap('Animation', 'AnimationEnd'), 26994 animationiteration: makePrefixMap('Animation', 'AnimationIteration'), 26995 animationstart: makePrefixMap('Animation', 'AnimationStart'), 26996 transitionend: makePrefixMap('Transition', 'TransitionEnd') 26997}; 26998 26999/** 27000 * Event names that have already been detected and prefixed (if applicable). 27001 */ 27002var prefixedEventNames = {}; 27003 27004/** 27005 * Element to check for prefixes on. 27006 */ 27007var style = {}; 27008 27009/** 27010 * Bootstrap if a DOM exists. 27011 */ 27012if (ExecutionEnvironment.canUseDOM) { 27013 style = document.createElement('div').style; 27014 27015 // On some platforms, in particular some releases of Android 4.x, 27016 // the un-prefixed "animation" and "transition" properties are defined on the 27017 // style object but the events that fire will still be prefixed, so we need 27018 // to check if the un-prefixed events are usable, and if not remove them from the map. 27019 if (!('AnimationEvent' in window)) { 27020 delete vendorPrefixes.animationend.animation; 27021 delete vendorPrefixes.animationiteration.animation; 27022 delete vendorPrefixes.animationstart.animation; 27023 } 27024 27025 // Same as above 27026 if (!('TransitionEvent' in window)) { 27027 delete vendorPrefixes.transitionend.transition; 27028 } 27029} 27030 27031/** 27032 * Attempts to determine the correct vendor prefixed event name. 27033 * 27034 * @param {string} eventName 27035 * @returns {string} 27036 */ 27037function getVendorPrefixedEventName(eventName) { 27038 if (prefixedEventNames[eventName]) { 27039 return prefixedEventNames[eventName]; 27040 } else if (!vendorPrefixes[eventName]) { 27041 return eventName; 27042 } 27043
27044 var prefixMap = vendorPrefixes[eventName]; 27045 27046 for (var styleProp in prefixMap) { 27047 if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) { 27048 return prefixedEventNames[eventName] = prefixMap[styleProp]; 27049 } 27050 } 27051 27052 return ''; 27053} 27054 27055module.exports = getVendorPrefixedEventName; 27056 27057/***/ }), 27058/* 485 */ 27059/***/ (function(module, exports, __webpack_require__) { 27060 27061"use strict"; 27062/* WEBPACK VAR INJECTION */(function(process) {/** 27063 * Copyright (c) 2013-present, Facebook, Inc. 27064 * 27065 * This source code is licensed under the MIT license found in the 27066 * LICENSE file in the root directory of this source tree. 27067 * 27068 */ 27069 27070 27071 27072var _prodInvariant = __webpack_require__(8), 27073 _assign = __webpack_require__(10); 27074 27075var DOMPropertyOperations = __webpack_require__(207); 27076var LinkedValueUtils = __webpack_require__(145); 27077var ReactDOMComponentTree = __webpack_require__(14); 27078var ReactUpdates = __webpack_require__(40); 27079 27080var invariant = __webpack_require__(2); 27081var warning = __webpack_require__(3); 27082 27083var didWarnValueLink = false; 27084var didWarnCheckedLink = false; 27085var didWarnValueDefaultValue = false; 27086var didWarnCheckedDefaultChecked = false; 27087var didWarnControlledToUncontrolled = false; 27088var didWarnUncontrolledToControlled = false; 27089 27090function forceUpdateIfMounted() { 27091 if (this._rootNodeID) { 27092 // DOM component is still mounted; update 27093 ReactDOMInput.updateWrapper(this); 27094 } 27095} 27096 27097function isControlled(props) { 27098 var usesChecked = props.type === 'checkbox' || props.type === 'radio'; 27099 return usesChecked ? props.checked != null : props.value != null; 27100} 27101 27102/** 27103 * Implements an <input> host component that allows setting these optional 27104 * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. 27105 * 27106 * If `checked` or `value` are not supplied (or null/undefined), user actions 27107 * that affect the checked state or value will trigger updates to the element. 27108 * 27109 * If they are supplied (and not null/undefined), the rendered element will not 27110 * trigger updates to the element. Instead, the props must change in order for 27111 * the rendered element to be updated. 27112 * 27113 * The rendered element will be initialized as unchecked (or `defaultChecked`) 27114 * with an empty value (or `defaultValue`). 27115 * 27116 * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html 27117 */ 27118var ReactDOMInput = { 27119 getHostProps: function (inst, props) { 27120 var value = LinkedValueUtils.getValue(props); 27121 var checked = LinkedValueUtils.getChecked(props); 27122 27123 var hostProps = _assign({ 27124 // Make sure we set .type before any other properties (setting .value 27125 // before .type means .value is lost in IE11 and below) 27126 type: undefined, 27127 // Make sure we set .step before .value (setting .value before .step 27128 // means .value is rounded on mount, based upon step precision) 27129 step: undefined, 27130 // Make sure we set .min & .max before .value (to ensure proper order 27131 // in corner cases such as min or max deriving from value, e.g. Issue #7170) 27132 min: undefined, 27133 max: undefined 27134 }, props, { 27135 defaultChecked: undefined, 27136 defaultValue: undefined, 27137 value: value != null ? value : inst._wrapperState.initialValue, 27138 checked: checked != null ? checked : inst._wrapperState.initialChecked, 27139 onChange: inst._wrapperState.onChange 27140 }); 27141 27142 return hostProps; 27143 }, 27144 27145 mountWrapper: function (inst, props) { 27146 if (process.env.NODE_ENV !== 'production') { 27147 LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner); 27148 27149 var owner = inst._currentElement._owner; 27150 27151 if (props.valueLink !== undefined && !didWarnValueLink) { 27152 process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0; 27153 didWarnValueLink = true; 27154 } 27155 if (props.checkedLink !== undefined && !didWarnCheckedLink) { 27156 process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0; 27157 didWarnCheckedLink = true; 27158 } 27159 if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) { 27160 process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A c
27160omponent', props.type) : void 0; 27161 didWarnCheckedDefaultChecked = true; 27162 } 27163 if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { 27164 process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; 27165 didWarnValueDefaultValue = true; 27166 } 27167 } 27168 27169 var defaultValue = props.defaultValue; 27170 inst._wrapperState = { 27171 initialChecked: props.checked != null ? props.checked : props.defaultChecked, 27172 initialValue: props.value != null ? props.value : defaultValue, 27173 listeners: null, 27174 onChange: _handleChange.bind(inst), 27175 controlled: isControlled(props) 27176 }; 27177 }, 27178 27179 updateWrapper: function (inst) { 27180 var props = inst._currentElement.props; 27181 27182 if (process.env.NODE_ENV !== 'production') { 27183 var controlled = isControlled(props); 27184 var owner = inst._currentElement._owner; 27185 27186 if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { 27187 process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A c
27187omponent', props.type) : void 0; 27188 didWarnUncontrolledToControlled = true; 27189 } 27190 if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { 27191 process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; 27192 didWarnControlledToUncontrolled = true; 27193 } 27194 } 27195 27196 // TODO: Shouldn't this be getChecked(props)? 27197 var checked = props.checked; 27198 if (checked != null) { 27199 DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false); 27200 } 27201 27202 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 27203 var value = LinkedValueUtils.getValue(props); 27204 if (value != null) { 27205 if (value === 0 && node.value === '') { 27206 node.value = '0'; 27207 // Note: IE9 reports a number inputs as 'text', so check props instead. 27208 } else if (props.type === 'number') { 27209 // Simulate `input.valueAsNumber`. IE9 does not support it 27210 var valueAsNumber = parseFloat(node.value, 10) || 0; 27211 27212 if ( 27213 // eslint-disable-next-line 27214 value != valueAsNumber || 27215 // eslint-disable-next-line 27216 value == valueAsNumber && node.value != value) { 27217 // Cast `value` to a string to ensure the value is set correctly. While 27218 // browsers typically do this as necessary, jsdom doesn't. 27219 node.value = '' + value; 27220 } 27221 } else if (node.value !== '' + value) { 27222 // Cast `value` to a string to ensure the value is set correctly. While 27223 // browsers typically do this as necessary, jsdom doesn't. 27224 node.value = '' + value; 27225 } 27226 } else { 27227 if (props.value == null && props.defaultValue != null) { 27228 // In Chrome, assigning defaultValue to certain input types triggers input validation. 27229 // For number inputs, the display value loses trailing decimal points. For email inputs, 27230 // Chrome raises "The specified value <x> is not a valid email address". 27231 // 27232 // Here we check to see if the defaultValue has actually changed, avoiding these problems 27233 // when the user is inputting text 27234 // 27235 // https://github.com/facebook/react/issues/7253 27236 if (node.defaultValue !== '' + props.defaultValue) { 27237 node.defaultValue = '' + props.defaultValue; 27238 } 27239 } 27240 if (props.checked == null && props.defaultChecked != null) { 27241 node.defaultChecked = !!props.defaultChecked; 27242 } 27243 } 27244 }, 27245 27246 postMountWrapper: function (inst) { 27247 var props = inst._currentElement.props; 27248 27249 // This is in postMount because we need access to the DOM node, which is not 27250 // available until after the component has mounted. 27251 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 27252 27253 // Detach value from defaultValue. We won't do anything if we're working on 27254 // submit or reset inputs as those values & defaultValues are linked. They 27255 // are not resetable nodes so this operation doesn't matter and actually 27256 // removes browser-default values (eg "Submit Query") when no value is 27257 // provided. 27258 27259 switch (props.type) { 27260 case 'submit': 27261 case 'reset': 27262 break; 27263 case 'color': 27264 case 'date': 27265 case 'datetime': 27266 case 'datetime-local': 27267 case 'month': 27268 case 'time': 27269 case 'week': 27270 // This fixes the no-show issue on iOS Safari and Android Chrome: 27271 // https://github.com/facebook/react/issues/7233 27272 node.value = ''; 27273 node.value = node.defaultValue; 27274 break; 27275 default: 27276 node.value = node.value; 27277 break; 27278 } 27279 27280 // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug 27281 // this is needed to work around a chrome bug where setting defaultChecked 27282 // will sometimes influence the value of checked (even after detachment). 27283 // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416 27284 // We need to temporarily unset name to avoid disrupting radio button groups. 27285 var name = node.name; 27286 if (name !== '') { 27287 node.name = ''; 27288 } 27289 node.defaultChecked = !node.defaultChecked; 27290 node.defaultChecked = !node.defaultChecked; 27291 if (name !== '') { 27292 node.name = name; 27293 } 27294 } 27295}; 27296 27297function _handleChange(event) { 27298 var props = this._currentElement.props; 27299 27300 var returnValue = LinkedValueUtils.executeOnChange(props, event); 27301 27302 // Here we use asap to wait until all updates have propagated, which 27303 // is important when using controlled components within layers: 27304 // https://github.com/facebook/react/issues/1698 27305 ReactUpdates.asap(forceUpdateIfMounted, this); 27306 27307 var name = props.name; 27308 if (props.type === 'radio' && name != null) { 27309 var rootNode = ReactDOMComponentTree.getNodeFromInstance(this); 27310 var queryRoot = rootNode; 27311 27312 while (queryRoot.parentNode) { 27313 queryRoot = queryRoot.parentNode; 27314 } 27315 27316 // If `rootNode.form` was non-null, then we could try `form.elements`, 27317 // but that sometimes behaves strangely in IE8. We could also try using 27318 // `form.getElementsByName`, but that will only return direct children 27319 // and won't include inputs that use the HTML5 `form=` attribute. Since 27320 // the input might not even be in a form, let's just use the global 27321 // `querySelectorAll` to ensure we don't miss anything. 27322 var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); 27323 27324 for (var i = 0; i < group.length; i++) { 27325 var otherNode = group[i];
27326 if (otherNode === rootNode || otherNode.form !== rootNode.form) { 27327 continue; 27328 } 27329 // This will throw if radio buttons rendered by different copies of React 27330 // and the same name are rendered into the same form (same as #1939). 27331 // That's probably okay; we don't support it just as we don't support 27332 // mixing React radio buttons with non-React ones. 27333 var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode); 27334 !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0; 27335 // If this is a controlled radio button group, forcing the input that 27336 // was previously checked to update will cause it to be come re-checked 27337 // as appropriate. 27338 ReactUpdates.asap(forceUpdateIfMounted, otherInstance); 27339 } 27340 } 27341 27342 return returnValue; 27343} 27344 27345module.exports = ReactDOMInput; 27346/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 27347 27348/***/ }), 27349/* 486 */ 27350/***/ (function(module, exports, __webpack_require__) { 27351 27352"use strict"; 27353/* WEBPACK VAR INJECTION */(function(process) {/** 27354 * Copyright (c) 2013-present, Facebook, Inc. 27355 * 27356 * This source code is licensed under the MIT license found in the 27357 * LICENSE file in the root directory of this source tree. 27358 * 27359 */ 27360 27361 27362 27363var _assign = __webpack_require__(10); 27364 27365var React = __webpack_require__(66); 27366var ReactDOMComponentTree = __webpack_require__(14); 27367var ReactDOMSelect = __webpack_require__(209); 27368 27369var warning = __webpack_require__(3); 27370var didWarnInvalidOptionChildren = false; 27371 27372function flattenChildren(children) { 27373 var content = ''; 27374 27375 // Flatten children and warn if they aren't strings or numbers; 27376 // invalid types are ignored. 27377 React.Children.forEach(children, function (child) { 27378 if (child == null) { 27379 return; 27380 } 27381 if (typeof child === 'string' || typeof child === 'number') { 27382 content += child; 27383 } else if (!didWarnInvalidOptionChildren) { 27384 didWarnInvalidOptionChildren = true; 27385 process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0; 27386 } 27387 }); 27388 27389 return content; 27390} 27391 27392/** 27393 * Implements an <option> host component that warns when `selected` is set. 27394 */ 27395var ReactDOMOption = { 27396 mountWrapper: function (inst, props, hostParent) { 27397 // TODO (yungsters): Remove support for `selected` in <option>. 27398 if (process.env.NODE_ENV !== 'production') { 27399 process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0; 27400 } 27401 27402 // Look up whether this option is 'selected' 27403 var selectValue = null; 27404 if (hostParent != null) { 27405 var selectParent = hostParent; 27406 27407 if (selectParent._tag === 'optgroup') { 27408 selectParent = selectParent._hostParent; 27409 } 27410 27411 if (selectParent != null && selectParent._tag === 'select') { 27412 selectValue = ReactDOMSelect.getSelectValueContext(selectParent); 27413 } 27414 } 27415 27416 // If the value is null (e.g., no specified value or after initial mount) 27417 // or missing (e.g., for <datalist>), we don't change props.selected 27418 var selected = null; 27419 if (selectValue != null) { 27420 var value; 27421 if (props.value != null) { 27422 value = props.value + ''; 27423 } else { 27424 value = flattenChildren(props.children); 27425 } 27426 selected = false; 27427 if (Array.isArray(selectValue)) { 27428 // multiple 27429 for (var i = 0; i < selectValue.length; i++) { 27430 if ('' + selectValue[i] === value) { 27431 selected = true; 27432 break; 27433 } 27434 } 27435 } else { 27436 selected = '' + selectValue === value; 27437 } 27438 } 27439 27440 inst._wrapperState = { selected: selected }; 27441 }, 27442 27443 postMountWrapper: function (inst) { 27444 // value="" should make a value attribute (#6219) 27445 var props = inst._currentElement.props; 27446 if (props.value != null) { 27447 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 27448 node.setAttribute('value', props.value); 27449 } 27450 }, 27451 27452 getHostProps: function (inst, props) { 27453 var hostProps = _assign({ selected: undefined, children: undefined }, props); 27454 27455 // Read state only from initial mount because <select> updates value 27456 // manually; we need the initial state only for server rendering 27457 if (inst._wrapperState.selected != null) { 27458 hostProps.selected = inst._wrapperState.selected; 27459 } 27460 27461 var content = flattenChildren(props.children); 27462 27463 if (content) { 27464 hostProps.children = content; 27465 } 27466 27467 return hostProps; 27468 } 27469}; 27470 27471module.exports = ReactDOMOption;
27472/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 27473 27474/***/ }), 27475/* 487 */ 27476/***/ (function(module, exports, __webpack_require__) { 27477 27478"use strict"; 27479/* WEBPACK VAR INJECTION */(function(process) {/** 27480 * Copyright (c) 2013-present, Facebook, Inc. 27481 * 27482 * This source code is licensed under the MIT license found in the 27483 * LICENSE file in the root directory of this source tree. 27484 * 27485 */ 27486 27487 27488 27489var _prodInvariant = __webpack_require__(8), 27490 _assign = __webpack_require__(10); 27491 27492var LinkedValueUtils = __webpack_require__(145); 27493var ReactDOMComponentTree = __webpack_require__(14); 27494var ReactUpdates = __webpack_require__(40); 27495 27496var invariant = __webpack_require__(2); 27497var warning = __webpack_require__(3); 27498 27499var didWarnValueLink = false; 27500var didWarnValDefaultVal = false; 27501 27502function forceUpdateIfMounted() { 27503 if (this._rootNodeID) { 27504 // DOM component is still mounted; update 27505 ReactDOMTextarea.updateWrapper(this); 27506 } 27507} 27508 27509/** 27510 * Implements a <textarea> host component that allows setting `value`, and 27511 * `defaultValue`. This differs from the traditional DOM API because value is 27512 * usually set as PCDATA children. 27513 * 27514 * If `value` is not supplied (or null/undefined), user actions that affect the 27515 * value will trigger updates to the element. 27516 * 27517 * If `value` is supplied (and not null/undefined), the rendered element will 27518 * not trigger updates to the element. Instead, the `value` prop must change in 27519 * order for the rendered element to be updated. 27520 * 27521 * The rendered element will be initialized with an empty value, the prop 27522 * `defaultValue` if specified, or the children content (deprecated). 27523 */ 27524var ReactDOMTextarea = { 27525 getHostProps: function (inst, props) { 27526 !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0; 27527 27528 // Always set children to the same thing. In IE9, the selection range will 27529 // get reset if `textContent` is mutated. We could add a check in setTextContent 27530 // to only set the value if/when the value differs from the node value (which would 27531 // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution. 27532 // The value can be a boolean or object so that's why it's forced to be a string. 27533 var hostProps = _assign({}, props, { 27534 value: undefined, 27535 defaultValue: undefined, 27536 children: '' + inst._wrapperState.initialValue, 27537 onChange: inst._wrapperState.onChange 27538 }); 27539 27540 return hostProps; 27541 }, 27542 27543 mountWrapper: function (inst, props) { 27544 if (process.env.NODE_ENV !== 'production') { 27545 LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner); 27546 if (props.valueLink !== undefined && !didWarnValueLink) { 27547 process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0; 27548 didWarnValueLink = true; 27549 } 27550 if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) { 27551 process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; 27552 didWarnValDefaultVal = true; 27553 } 27554 } 27555 27556 var value = LinkedValueUtils.getValue(props); 27557 var initialValue = value; 27558 27559 // Only bother fetching default value if we're going to use it 27560 if (value == null) { 27561 var defaultValue = props.defaultValue; 27562 // TODO (yungsters): Remove support for children content in <textarea>. 27563 var children = props.children; 27564 if (children != null) { 27565 if (process.env.NODE_ENV !== 'production') { 27566 process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0; 27567 } 27568 !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0; 27569 if (Array.isArray(children)) { 27570 !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0; 27571 children = children[0]; 27572 } 27573 27574 defaultValue = '' + children; 27575 } 27576 if (defaultValue == null) { 27577 defaultValue = ''; 27578 } 27579 initialValue = defaultValue; 27580 } 27581 27582 inst._wrapperState = { 27583 initialValue: '' + initialValue, 27584 listeners: null, 27585 onChange: _handleChange.bind(inst) 27586 }; 27587 }, 27588 27589 updateWrapper: function (inst) { 27590 var props = inst._currentElement.props; 27591 27592 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 27593 var value = LinkedValueUtils.getValue(props); 27594 if (value != null) { 27595 // Cast `value` to a string to ensure the value is set correctly. While 27596 // browsers typically do this as necessary, jsdom doesn't. 27597 var newValue = '' + value; 27598 27599 // To avoid side effects (such as losing text selection), only set value if changed 27600 if (newValue !== node.value) { 27601 node.value = newValue; 27602 } 27603 if (props.defaultValue == null) { 27604 node.defaultValue = newValue; 27605 } 27606 } 27607 if (props.defaultValue != null) { 27608 node.defaultValue = props.defaultValue; 27609 } 27610 }, 27611 27612 postMountWrapper: function (inst) { 27613 // This is in postMount because we need access to the DOM node, which is not 27614 // available until after the component has mounted. 27615 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 27616 var textContent = node.textContent; 27617 27618 // Only set node.value if textContent is equal to the expected 27619 // initial value. In IE10/IE11 there is a bug where the placeholder attribute 27620 // will populate textContent as well. 27621 // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/ 27622 if (textContent === inst._wrapperState.initialValue) { 27623 node.value = textContent; 27624 } 27625 } 27626}; 27627 27628function _handleChange(event) { 27629 var props = this._currentElement.props; 27630 var returnValue = LinkedValueUtils.executeOnChange(props, event); 27631 ReactUpdates.asap(forceUpdateIfMounted, this); 27632 return returnValue; 27633} 27634 27635module.exports = ReactDOMTextarea;
27636/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 27637 27638/***/ }), 27639/* 488 */ 27640/***/ (function(module, exports, __webpack_require__) { 27641 27642"use strict"; 27643/* WEBPACK VAR INJECTION */(function(process) {/** 27644 * Copyright (c) 2013-present, Facebook, Inc. 27645 * 27646 * This source code is licensed under the MIT license found in the 27647 * LICENSE file in the root directory of this source tree. 27648 * 27649 */ 27650 27651 27652 27653var _prodInvariant = __webpack_require__(8); 27654 27655var ReactComponentEnvironment = __webpack_require__(146); 27656var ReactInstanceMap = __webpack_require__(79); 27657var ReactInstrumentation = __webpack_require__(28); 27658 27659var ReactCurrentOwner = __webpack_require__(39); 27660var ReactReconciler = __webpack_require__(68); 27661var ReactChildReconciler = __webpack_require__(489); 27662 27663var emptyFunction = __webpack_require__(38); 27664var flattenChildren = __webpack_require__(496); 27665var invariant = __webpack_require__(2); 27666 27667/** 27668 * Make an update for markup to be rendered and inserted at a supplied index. 27669 * 27670 * @param {string} markup Markup that renders into an element. 27671 * @param {number} toIndex Destination index. 27672 * @private 27673 */ 27674function makeInsertMarkup(markup, afterNode, toIndex) { 27675 // NOTE: Null values reduce hidden classes. 27676 return { 27677 type: 'INSERT_MARKUP', 27678 content: markup, 27679 fromIndex: null, 27680 fromNode: null, 27681 toIndex: toIndex, 27682 afterNode: afterNode 27683 }; 27684} 27685 27686/** 27687 * Make an update for moving an existing element to another index. 27688 * 27689 * @param {number} fromIndex Source index of the existing element. 27690 * @param {number} toIndex Destination index of the element. 27691 * @private 27692 */ 27693function makeMove(child, afterNode, toIndex) { 27694 // NOTE: Null values reduce hidden classes. 27695 return { 27696 type: 'MOVE_EXISTING', 27697 content: null, 27698 fromIndex: child._mountIndex, 27699 fromNode: ReactReconciler.getHostNode(child), 27700 toIndex: toIndex, 27701 afterNode: afterNode 27702 }; 27703} 27704 27705/** 27706 * Make an update for removing an element at an index. 27707 * 27708 * @param {number} fromIndex Index of the element to remove. 27709 * @private 27710 */ 27711function makeRemove(child, node) { 27712 // NOTE: Null values reduce hidden classes. 27713 return { 27714 type: 'REMOVE_NODE', 27715 content: null, 27716 fromIndex: child._mountIndex, 27717 fromNode: node, 27718 toIndex: null, 27719 afterNode: null 27720 }; 27721} 27722 27723/** 27724 * Make an update for setting the markup of a node. 27725 * 27726 * @param {string} markup Markup that renders into an element. 27727 * @private 27728 */ 27729function makeSetMarkup(markup) { 27730 // NOTE: Null values reduce hidden classes. 27731 return { 27732 type: 'SET_MARKUP', 27733 content: markup, 27734 fromIndex: null, 27735 fromNode: null, 27736 toIndex: null, 27737 afterNode: null 27738 }; 27739} 27740 27741/** 27742 * Make an update for setting the text content. 27743 * 27744 * @param {string} textContent Text content to set. 27745 * @private 27746 */ 27747function makeTextContent(textContent) { 27748 // NOTE: Null values reduce hidden classes. 27749 return { 27750 type: 'TEXT_CONTENT', 27751 content: textContent, 27752 fromIndex: null, 27753 fromNode: null, 27754 toIndex: null, 27755 afterNode: null 27756 }; 27757} 27758 27759/** 27760 * Push an update, if any, onto the queue. Creates a new queue if none is 27761 * passed and always returns the queue. Mutative. 27762 */ 27763function enqueue(queue, update) { 27764 if (update) { 27765 queue = queue || []; 27766 queue.push(update); 27767 } 27768 return queue; 27769} 27770 27771/** 27772 * Processes any enqueued updates. 27773 * 27774 * @private 27775 */ 27776function processQueue(inst, updateQueue) { 27777 ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue); 27778} 27779 27780var setChildrenForInstrumentation = emptyFunction; 27781if (process.env.NODE_ENV !== 'production') { 27782 var getDebugID = function (inst) { 27783 if (!inst._debugID) { 27784 // Check for ART-like instances. TODO: This is silly/gross. 27785 var internal; 27786 if (internal = ReactInstanceMap.get(inst)) { 27787 inst = internal; 27788 } 27789 } 27790 return inst._debugID; 27791 }; 27792 setChildrenForInstrumentation = function (children) { 27793 var debugID = getDebugID(this); 27794 // TODO: React Native empty components are also multichild. 27795 // This means they still get into this method but don't have _debugID. 27796 if (debugID !== 0) { 27797 ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) { 27798 return children[key]._debugID; 27799 }) : []); 27800 } 27801 }; 27802} 27803 27804/** 27805 * ReactMultiChild are capable of reconciling multiple children. 27806 * 27807 * @class ReactMultiChild 27808 * @internal 27809 */ 27810var ReactMultiChild = { 27811 /** 27812 * Provides common functionality for components that must reconcile multiple 27813 * children. This is used by `ReactDOMComponent` to mount, update, and 27814 * unmount child components. 27815 * 27816 * @lends {ReactMultiChild.prototype} 27817 */ 27818 Mixin: { 27819 _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { 27820 if (process.env.NODE_ENV !== 'production') { 27821 var selfDebugID = getDebugID(this); 27822 if (this._currentElement) { 27823 try { 27824 ReactCurrentOwner.current = this._currentElement._owner; 27825 return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID); 27826 } finally { 27827 ReactCurrentOwner.current = null; 27828 } 27829 } 27830 } 27831 return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); 27832 }, 27833 27834 _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) { 27835 var nextChildren; 27836 var selfDebugID = 0; 27837 if (process.env.NODE_ENV !== 'production') { 27838 selfDebugID = getDebugID(this); 27839 if (this._currentElement) { 27840 try { 27841 ReactCurrentOwner.current = this._currentElement._owner; 27842 nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); 27843 } finally { 27844 ReactCurrentOwner.current = null; 27845 } 27846 ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); 27847 return nextChildren; 27848 } 27849 } 27850 nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); 27851 ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); 27852 return nextChildren; 27853 }, 27854 27855 /** 27856 * Generates a "mount image" for each of the supplied children. In the case 27857 * of `ReactDOMComponent`, a mount image is a string of markup. 27858 * 27859 * @param {?object} nestedChildren Nested child maps. 27860 * @return {array} An array of mounted representations. 27861 * @internal 27862 */ 27863 mountChildren: function (nestedChildren, transaction, context) { 27864 var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context); 27865 this._renderedChildren = children; 27866 27867 var mountImages = []; 27868 var index = 0; 27869 for (var name in children) { 27870 if (children.hasOwnProperty(name)) { 27871 var child = children[name]; 27872 var selfDebugID = 0; 27873 if (process.env.NODE_ENV !== 'production') { 27874 selfDebugID = getDebugID(this); 27875 } 27876 var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID); 27877 child._mountIndex = index++; 27878 mountImages.push(mountImage); 27879 } 27880 } 27881 27882 if (process.env.NODE_ENV !== 'production') { 27883 setChildrenForInstrumentation.call(this, children); 27884 } 27885 27886 return mountImages; 27887 }, 27888 27889 /** 27890 * Replaces any rendered children with a text content string. 27891 * 27892 * @param {string} nextContent String of content. 27893 * @internal 27894 */ 27895 updateTextContent: function (nextContent) { 27896 var prevChildren = this._renderedChildren; 27897 // Remove any rendered children. 27898 ReactChildReconciler.unmountChildren(prevChildren, false); 27899 for (var name in prevChildren) { 27900 if (prevChildren.hasOwnProperty(name)) { 27901 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; 27902 } 27903 } 27904 // Set new text content. 27905 var updates = [makeTextContent(nextContent)]; 27906 processQueue(this, updates); 27907 }, 27908 27909 /** 27910 * Replaces any rendered children with a markup string. 27911 * 27912 * @param {string} nextMarkup String of markup. 27913 * @internal 27914 */ 27915 updateMarkup: function (nextMarkup) { 27916 var prevChildren = this._renderedChildren; 27917 // Remove any rendered children. 27918 ReactChildReconciler.unmountChildren(prevChildren, false); 27919 for (var name in prevChildren) { 27920 if (prevChildren.hasOwnProperty(name)) { 27921 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; 27922 } 27923 } 27924 var updates = [makeSetMarkup(nextMarkup)]; 27925 processQueue(this, updates); 27926 }, 27927 27928 /** 27929 * Updates the rendered children with new children. 27930 * 27931 * @param {?object} nextNestedChildrenElements Nested child element maps. 27932 * @param {ReactReconcileTransaction} transaction 27933 * @internal 27934 */ 27935 updateChildren: function (nextNestedChildrenElements, transaction, context) { 27936 // Hook used by React ART 27937 this._updateChildren(nextNestedChildrenElements, transaction, context); 27938 }, 27939 27940 /** 27941 * @param {?object} nextNestedChildrenElements Nested child element maps. 27942 * @param {ReactReconcileTransaction} transaction 27943 * @final 27944 * @protected 27945 */ 27946 _updateChildren: function (nextNestedChildrenElements, transaction, context) { 27947 var prevChildren = this._renderedChildren; 27948 var removedNodes = {}; 27949 var mountImages = []; 27950 var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context); 27951 if (!nextChildren && !prevChildren) { 27952 return; 27953 } 27954 var updates = null; 27955 var name; 27956 // `nextIndex` will increment for each child in `nextChildren`, but 27957 // `lastIndex` will be the last index visited in `prevChildren`. 27958 var nextIndex = 0; 27959 var lastIndex = 0; 27960 // `nextMountIndex` will increment for each newly mounted child. 27961 var nextMountIndex = 0; 27962 var lastPlacedNode = null; 27963 for (name in nextChildren) { 27964 if (!nextChildren.hasOwnProperty(name)) { 27965 continue; 27966 } 27967 var prevChild = prevChildren && prevChildren[name]; 27968 var nextChild = nextChildren[name]; 27969 if (prevChild === nextChild) { 27970 updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex)); 27971 lastIndex = Math.max(prevChild._mountIndex, lastIndex); 27972 prevChild._mountIndex = nextIndex; 27973 } else { 27974 if (prevChild) { 27975 // Update `lastIndex` before `_mountIndex` gets unset by unmounting. 27976 lastIndex = Math.max(prevChild._mountIndex, lastIndex); 27977 // The `removedNodes` loop below will actually remove the child. 27978 } 27979 // The child must be instantiated before it's mounted. 27980 updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context)); 27981 nextMountIndex++; 27982 } 27983 nextIndex++; 27984 lastPlacedNode = ReactReconciler.getHostNode(nextChild); 27985 } 27986 // Remove children that are no longer present.
27987 for (name in removedNodes) { 27988 if (removedNodes.hasOwnProperty(name)) { 27989 updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name])); 27990 } 27991 } 27992 if (updates) { 27993 processQueue(this, updates); 27994 } 27995 this._renderedChildren = nextChildren; 27996 27997 if (process.env.NODE_ENV !== 'production') { 27998 setChildrenForInstrumentation.call(this, nextChildren); 27999 } 28000 }, 28001 28002 /** 28003 * Unmounts all rendered children. This should be used to clean up children 28004 * when this component is unmounted. It does not actually perform any 28005 * backend operations. 28006 * 28007 * @internal 28008 */ 28009 unmountChildren: function (safely) { 28010 var renderedChildren = this._renderedChildren; 28011 ReactChildReconciler.unmountChildren(renderedChildren, safely); 28012 this._renderedChildren = null; 28013 }, 28014 28015 /** 28016 * Moves a child component to the supplied index. 28017 * 28018 * @param {ReactComponent} child Component to move. 28019 * @param {number} toIndex Destination index of the element. 28020 * @param {number} lastIndex Last index visited of the siblings of `child`. 28021 * @protected 28022 */ 28023 moveChild: function (child, afterNode, toIndex, lastIndex) { 28024 // If the index of `child` is less than `lastIndex`, then it needs to 28025 // be moved. Otherwise, we do not need to move it because a child will be 28026 // inserted or moved before `child`. 28027 if (child._mountIndex < lastIndex) { 28028 return makeMove(child, afterNode, toIndex); 28029 } 28030 }, 28031 28032 /** 28033 * Creates a child component. 28034 * 28035 * @param {ReactComponent} child Component to create. 28036 * @param {string} mountImage Markup to insert. 28037 * @protected 28038 */ 28039 createChild: function (child, afterNode, mountImage) { 28040 return makeInsertMarkup(mountImage, afterNode, child._mountIndex); 28041 }, 28042 28043 /** 28044 * Removes a child component. 28045 * 28046 * @param {ReactComponent} child Child to remove. 28047 * @protected 28048 */ 28049 removeChild: function (child, node) { 28050 return makeRemove(child, node); 28051 }, 28052 28053 /** 28054 * Mounts a child with the supplied name. 28055 * 28056 * NOTE: This is part of `updateChildren` and is here for readability. 28057 * 28058 * @param {ReactComponent} child Component to mount. 28059 * @param {string} name Name of the child. 28060 * @param {number} index Index at which to insert the child. 28061 * @param {ReactReconcileTransaction} transaction 28062 * @private 28063 */ 28064 _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) { 28065 child._mountIndex = index; 28066 return this.createChild(child, afterNode, mountImage); 28067 }, 28068 28069 /** 28070 * Unmounts a rendered child. 28071 * 28072 * NOTE: This is part of `updateChildren` and is here for readability. 28073 * 28074 * @param {ReactComponent} child Component to unmount. 28075 * @private 28076 */ 28077 _unmountChild: function (child, node) { 28078 var update = this.removeChild(child, node); 28079 child._mountIndex = null; 28080 return update; 28081 } 28082 } 28083}; 28084 28085module.exports = ReactMultiChild; 28086/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 28087 28088/***/ }), 28089/* 489 */ 28090/***/ (function(module, exports, __webpack_require__) { 28091 28092"use strict"; 28093/* WEBPACK VAR INJECTION */(function(process) {/** 28094 * Copyright (c) 2014-present, Facebook, Inc. 28095 * 28096 * This source code is licensed under the MIT license found in the 28097 * LICENSE file in the root directory of this source tree. 28098 * 28099 */ 28100 28101 28102 28103var ReactReconciler = __webpack_require__(68); 28104 28105var instantiateReactComponent = __webpack_require__(210); 28106var KeyEscapeUtils = __webpack_require__(149); 28107var shouldUpdateReactComponent = __webpack_require__(148); 28108var traverseAllChildren = __webpack_require__(214); 28109var warning = __webpack_require__(3); 28110 28111var ReactComponentTreeHook; 28112 28113if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { 28114 // Temporary hack. 28115 // Inline requires don't work well with Jest: 28116 // https://github.com/facebook/react/issues/7240 28117 // Remove the inline requires when we don't need them anymore: 28118 // https://github.com/facebook/react/pull/7178 28119 ReactComponentTreeHook = __webpack_require__(22); 28120} 28121 28122function instantiateChild(childInstances, child, name, selfDebugID) { 28123 // We found a component instance. 28124 var keyUnique = childInstances[name] === undefined; 28125 if (process.env.NODE_ENV !== 'production') { 28126 if (!ReactComponentTreeHook) { 28127 ReactComponentTreeHook = __webpack_require__(22); 28128 } 28129 if (!keyUnique) { 28130 process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; 28131 } 28132 } 28133 if (child != null && keyUnique) { 28134 childInstances[name] = instantiateReactComponent(child, true); 28135 } 28136} 28137 28138/** 28139 * ReactChildReconciler provides helpers for initializing or updating a set of 28140 * children. Its output is suitable for passing it onto ReactMultiChild which 28141 * does diffed reordering and insertion. 28142 */ 28143var ReactChildReconciler = { 28144 /** 28145 * Generates a "mount image" for each of the supplied children. In the case 28146 * of `ReactDOMComponent`, a mount image is a string of markup. 28147 * 28148 * @param {?object} nestedChildNodes Nested child maps. 28149 * @return {?object} A set of child instances. 28150 * @internal 28151 */ 28152 instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots 28153 { 28154 if (nestedChildNodes == null) { 28155 return null; 28156 } 28157 var childInstances = {}; 28158 28159 if (process.env.NODE_ENV !== 'production') { 28160 traverseAllChildren(nestedChildNodes, function (childInsts, child, name) { 28161 return instantiateChild(childInsts, child, name, selfDebugID); 28162 }, childInstances); 28163 } else { 28164 traverseAllChildren(nestedChildNodes, instantiateChild, childInstances); 28165 } 28166 return childInstances; 28167 }, 28168 28169 /** 28170 * Updates the rendered children and returns a new set of children. 28171 * 28172 * @param {?object} prevChildren Previously initialized set of children. 28173 * @param {?object} nextChildren Flat child element maps. 28174 * @param {ReactReconcileTransaction} transaction 28175 * @param {object} context 28176 * @return {?object} A new set of child instances. 28177 * @internal 28178 */ 28179 updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots 28180 { 28181 // We currently don't have a way to track moves here but if we use iterators 28182 // instead of for..in we can zip the iterators and check if an item has 28183 // moved. 28184 // TODO: If nothing has changed, return the prevChildren object so that we 28185 // can quickly bailout if nothing has changed. 28186 if (!nextChildren && !prevChildren) { 28187 return; 28188 } 28189 var name; 28190 var prevChild; 28191 for (name in nextChildren) { 28192 if (!nextChildren.hasOwnProperty(name)) { 28193 continue; 28194 } 28195 prevChild = prevChildren && prevChildren[name]; 28196 var prevElement = prevChild && prevChild._currentElement; 28197 var nextElement = nextChildren[name]; 28198 if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) { 28199 ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context); 28200 nextChildren[name] = prevChild; 28201 } else { 28202 if (prevChild) { 28203 removedNodes[name] = ReactReconciler.getHostNode(prevChild); 28204 ReactReconciler.unmountComponent(prevChild, false); 28205 } 28206 // The child must be instantiated before it's mounted. 28207 var nextChildInstance = instantiateReactComponent(nextElement, true); 28208 nextChildren[name] = nextChildInstance;
28209 // Creating mount image now ensures refs are resolved in right order 28210 // (see https://github.com/facebook/react/pull/7101 for explanation). 28211 var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID); 28212 mountImages.push(nextChildMountImage); 28213 } 28214 } 28215 // Unmount children that are no longer present. 28216 for (name in prevChildren) { 28217 if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { 28218 prevChild = prevChildren[name]; 28219 removedNodes[name] = ReactReconciler.getHostNode(prevChild); 28220 ReactReconciler.unmountComponent(prevChild, false); 28221 } 28222 } 28223 }, 28224 28225 /** 28226 * Unmounts all rendered children. This should be used to clean up children 28227 * when this component is unmounted. 28228 * 28229 * @param {?object} renderedChildren Previously initialized set of children. 28230 * @internal 28231 */ 28232 unmountChildren: function (renderedChildren, safely) { 28233 for (var name in renderedChildren) { 28234 if (renderedChildren.hasOwnProperty(name)) { 28235 var renderedChild = renderedChildren[name]; 28236 ReactReconciler.unmountComponent(renderedChild, safely); 28237 } 28238 } 28239 } 28240}; 28241 28242module.exports = ReactChildReconciler; 28243/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 28244 28245/***/ }), 28246/* 490 */ 28247/***/ (function(module, exports, __webpack_require__) { 28248 28249"use strict"; 28250/* WEBPACK VAR INJECTION */(function(process) {/** 28251 * Copyright (c) 2013-present, Facebook, Inc. 28252 * 28253 * This source code is licensed under the MIT license found in the 28254 * LICENSE file in the root directory of this source tree. 28255 * 28256 */ 28257 28258 28259 28260var _prodInvariant = __webpack_require__(8), 28261 _assign = __webpack_require__(10); 28262 28263var React = __webpack_require__(66); 28264var ReactComponentEnvironment = __webpack_require__(146); 28265var ReactCurrentOwner = __webpack_require__(39); 28266var ReactErrorUtils = __webpack_require__(138); 28267var ReactInstanceMap = __webpack_require__(79); 28268var ReactInstrumentation = __webpack_require__(28); 28269var ReactNodeTypes = __webpack_require__(211); 28270var ReactReconciler = __webpack_require__(68); 28271 28272if (process.env.NODE_ENV !== 'production') { 28273 var checkReactTypeSpec = __webpack_require__(491); 28274} 28275 28276var emptyObject = __webpack_require__(98); 28277var invariant = __webpack_require__(2); 28278var shallowEqual = __webpack_require__(147); 28279var shouldUpdateReactComponent = __webpack_require__(148); 28280var warning = __webpack_require__(3); 28281 28282var CompositeTypes = { 28283 ImpureClass: 0, 28284 PureClass: 1, 28285 StatelessFunctional: 2 28286}; 28287 28288function StatelessComponent(Component) {} 28289StatelessComponent.prototype.render = function () { 28290 var Component = ReactInstanceMap.get(this)._currentElement.type; 28291 var element = Component(this.props, this.context, this.updater); 28292 warnIfInvalidElement(Component, element); 28293 return element; 28294}; 28295 28296function warnIfInvalidElement(Component, element) { 28297 if (process.env.NODE_ENV !== 'production') { 28298 process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A val
28298id React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0; 28299 process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0; 28300 } 28301} 28302 28303function shouldConstruct(Component) { 28304 return !!(Component.prototype && Component.prototype.isReactComponent); 28305} 28306 28307function isPureComponent(Component) { 28308 return !!(Component.prototype && Component.prototype.isPureReactComponent); 28309} 28310 28311// Separated into a function to contain deoptimizations caused by try/finally. 28312function measureLifeCyclePerf(fn, debugID, timerType) { 28313 if (debugID === 0) { 28314 // Top-level wrappers (see ReactMount) and empty components (see 28315 // ReactDOMEmptyComponent) are invisible to hooks and devtools. 28316 // Both are implementation details that should go away in the future. 28317 return fn(); 28318 } 28319 28320 ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType); 28321 try { 28322 return fn(); 28323 } finally { 28324 ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType); 28325 } 28326} 28327 28328/** 28329 * ------------------ The Life-Cycle of a Composite Component ------------------ 28330 * 28331 * - constructor: Initialization of state. The instance is now retained. 28332 * - componentWillMount 28333 * - render 28334 * - [children's constructors] 28335 * - [children's componentWillMount and render] 28336 * - [children's componentDidMount] 28337 * - componentDidMount 28338 * 28339 * Update Phases: 28340 * - componentWillReceiveProps (only called if parent updated) 28341 * - shouldComponentUpdate 28342 * - componentWillUpdate 28343 * - render 28344 * - [children's constructors or receive props phases] 28345 * - componentDidUpdate 28346 * 28347 * - componentWillUnmount 28348 * - [children's componentWillUnmount] 28349 * - [children destroyed] 28350 * - (destroyed): The instance is now blank, released by React and ready for GC. 28351 * 28352 * ----------------------------------------------------------------------------- 28353 */ 28354 28355/** 28356 * An incrementing ID assigned to each component when it is mounted. This is 28357 * used to enforce the order in which `ReactUpdates` updates dirty components. 28358 * 28359 * @private 28360 */ 28361var nextMountID = 1; 28362 28363/** 28364 * @lends {ReactCompositeComponent.prototype} 28365 */ 28366var ReactCompositeComponent = { 28367 /** 28368 * Base constructor for all composite component. 28369 * 28370 * @param {ReactElement} element 28371 * @final 28372 * @internal 28373 */ 28374 construct: function (element) { 28375 this._currentElement = element; 28376 this._rootNodeID = 0; 28377 this._compositeType = null; 28378 this._instance = null; 28379 this._hostParent = null; 28380 this._hostContainerInfo = null; 28381 28382 // See ReactUpdateQueue 28383 this._updateBatchNumber = null; 28384 this._pendingElement = null; 28385 this._pendingStateQueue = null; 28386 this._pendingReplaceState = false; 28387 this._pendingForceUpdate = false; 28388 28389 this._renderedNodeType = null; 28390 this._renderedComponent = null; 28391 this._context = null; 28392 this._mountOrder = 0; 28393 this._topLevelWrapper = null; 28394 28395 // See ReactUpdates and ReactUpdateQueue. 28396 this._pendingCallbacks = null; 28397 28398 // ComponentWillUnmount shall only be called once 28399 this._calledComponentWillUnmount = false; 28400 28401 if (process.env.NODE_ENV !== 'production') { 28402 this._warnedAboutRefsInRender = false;
28403 } 28404 }, 28405 28406 /** 28407 * Initializes the component, renders markup, and registers event listeners. 28408 * 28409 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 28410 * @param {?object} hostParent 28411 * @param {?object} hostContainerInfo 28412 * @param {?object} context 28413 * @return {?string} Rendered markup to be inserted into the DOM. 28414 * @final 28415 * @internal 28416 */ 28417 mountComponent: function (transaction, hostParent, hostContainerInfo, context) { 28418 var _this = this; 28419 28420 this._context = context; 28421 this._mountOrder = nextMountID++; 28422 this._hostParent = hostParent; 28423 this._hostContainerInfo = hostContainerInfo; 28424 28425 var publicProps = this._currentElement.props; 28426 var publicContext = this._processContext(context); 28427 28428 var Component = this._currentElement.type; 28429 28430 var updateQueue = transaction.getUpdateQueue(); 28431 28432 // Initialize the public class 28433 var doConstruct = shouldConstruct(Component); 28434 var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue); 28435 var renderedElement; 28436 28437 // Support functional components 28438 if (!doConstruct && (inst == null || inst.render == null)) { 28439 renderedElement = inst; 28440 warnIfInvalidElement(Component, renderedElement); 28441 !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A val
28441id React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0; 28442 inst = new StatelessComponent(Component); 28443 this._compositeType = CompositeTypes.StatelessFunctional; 28444 } else { 28445 if (isPureComponent(Component)) { 28446 this._compositeType = CompositeTypes.PureClass; 28447 } else { 28448 this._compositeType = CompositeTypes.ImpureClass; 28449 } 28450 } 28451 28452 if (process.env.NODE_ENV !== 'production') { 28453 // This will throw later in _renderValidatedComponent, but add an early 28454 // warning now to help debugging 28455 if (inst.render == null) { 28456 process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0; 28457 } 28458 28459 var propsMutated = inst.props !== publicProps; 28460 var componentName = Component.displayName || Component.name || 'Component'; 28461 28462 process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", componentName, componentName) : void 0; 28463 } 28464 28465 // These should be set up in the constructor, but as a convenience for 28466 // simpler class abstractions, we set them up after the fact. 28467 inst.props = publicProps; 28468 inst.context = publicContext; 28469 inst.refs = emptyObject; 28470 inst.updater = updateQueue; 28471 28472 this._instance = inst; 28473 28474 // Store a reference from the instance back to the internal representation 28475 ReactInstanceMap.set(inst, this); 28476 28477 if (process.env.NODE_ENV !== 'production') { 28478 // Since plain JS classes are defined without any special initialization 28479 // logic, we can not catch common errors early. Therefore, we have to 28480 // catch them here, at initialization time, instead. 28481 process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0; 28482 process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0; 28483 process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0; 28484 process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0; 28485 process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A c
28485omponent') : void 0; 28486 process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0; 28487 process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0; 28488 } 28489 28490 var initialState = inst.state; 28491 if (initialState === undefined) { 28492 inst.state = initialState = null; 28493 } 28494 !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0; 28495 28496 this._pendingStateQueue = null; 28497 this._pendingReplaceState = false; 28498 this._pendingForceUpdate = false; 28499 28500 var markup; 28501 if (inst.unstable_handleError) { 28502 markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context); 28503 } else { 28504 markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); 28505 } 28506 28507 if (inst.componentDidMount) { 28508 if (process.env.NODE_ENV !== 'production') { 28509 transaction.getReactMountReady().enqueue(function () { 28510 measureLifeCyclePerf(function () { 28511 return inst.componentDidMount(); 28512 }, _this._debugID, 'componentDidMount'); 28513 }); 28514 } else { 28515 transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); 28516 } 28517 } 28518 28519 return markup; 28520 }, 28521 28522 _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) { 28523 if (process.env.NODE_ENV !== 'production' && !doConstruct) { 28524 ReactCurrentOwner.current = this; 28525 try { 28526 return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); 28527 } finally { 28528 ReactCurrentOwner.current = null; 28529 } 28530 } else { 28531 return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); 28532 } 28533 }, 28534 28535 _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) { 28536 var Component = this._currentElement.type; 28537 28538 if (doConstruct) { 28539 if (process.env.NODE_ENV !== 'production') { 28540 return measureLifeCyclePerf(function () { 28541 return new Component(publicProps, publicContext, updateQueue); 28542 }, this._debugID, 'ctor'); 28543 } else { 28544 return new Component(publicProps, publicContext, updateQueue); 28545 } 28546 } 28547 28548 // This can still be an instance in case of factory components 28549 // but we'll count this as time spent rendering as the more common case. 28550 if (process.env.NODE_ENV !== 'production') { 28551 return measureLifeCyclePerf(function () { 28552 return Component(publicProps, publicContext, updateQueue); 28553 }, this._debugID, 'render'); 28554 } else { 28555 return Component(publicProps, publicContext, updateQueue); 28556 } 28557 }, 28558 28559 performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { 28560 var markup; 28561 var checkpoint = transaction.checkpoint(); 28562 try { 28563 markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); 28564 } catch (e) { 28565 // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint 28566 transaction.rollback(checkpoint); 28567 this._instance.unstable_handleError(e); 28568 if (this._pendingStateQueue) { 28569 this._instance.state = this._processPendingState(this._instance.props, this._instance.context); 28570 } 28571 checkpoint = transaction.checkpoint(); 28572 28573 this._renderedComponent.unmountComponent(true); 28574 transaction.rollback(checkpoint); 28575 28576 // Try again - we've informed the component about the error, so they can render an error message this time. 28577 // If this throws again, the error will bubble up (and can be caught by a higher error boundary). 28578 markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); 28579 } 28580 return markup; 28581 }, 28582 28583 performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { 28584 var inst = this._instance; 28585 28586 var debugID = 0; 28587 if (process.env.NODE_ENV !== 'production') { 28588 debugID = this._debugID; 28589 } 28590 28591 if (inst.componentWillMount) { 28592 if (process.env.NODE_ENV !== 'production') { 28593 measureLifeCyclePerf(function () { 28594 return inst.componentWillMount(); 28595 }, debugID, 'componentWillMount'); 28596 } else { 28597 inst.componentWillMount(); 28598 } 28599 // When mounting, calls to `setState` by `componentWillMount` will set 28600 // `this._pendingStateQueue` without triggering a re-render.
28601 if (this._pendingStateQueue) { 28602 inst.state = this._processPendingState(inst.props, inst.context); 28603 } 28604 } 28605 28606 // If not a stateless component, we now render 28607 if (renderedElement === undefined) { 28608 renderedElement = this._renderValidatedComponent(); 28609 } 28610 28611 var nodeType = ReactNodeTypes.getType(renderedElement); 28612 this._renderedNodeType = nodeType; 28613 var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ 28614 ); 28615 this._renderedComponent = child; 28616 28617 var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID); 28618 28619 if (process.env.NODE_ENV !== 'production') { 28620 if (debugID !== 0) { 28621 var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; 28622 ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); 28623 } 28624 } 28625 28626 return markup; 28627 }, 28628 28629 getHostNode: function () { 28630 return ReactReconciler.getHostNode(this._renderedComponent); 28631 }, 28632 28633 /** 28634 * Releases any resources allocated by `mountComponent`. 28635 * 28636 * @final 28637 * @internal 28638 */ 28639 unmountComponent: function (safely) { 28640 if (!this._renderedComponent) { 28641 return; 28642 } 28643 28644 var inst = this._instance; 28645 28646 if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { 28647 inst._calledComponentWillUnmount = true; 28648 28649 if (safely) { 28650 var name = this.getName() + '.componentWillUnmount()'; 28651 ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); 28652 } else { 28653 if (process.env.NODE_ENV !== 'production') { 28654 measureLifeCyclePerf(function () { 28655 return inst.componentWillUnmount(); 28656 }, this._debugID, 'componentWillUnmount'); 28657 } else { 28658 inst.componentWillUnmount(); 28659 } 28660 } 28661 } 28662 28663 if (this._renderedComponent) { 28664 ReactReconciler.unmountComponent(this._renderedComponent, safely); 28665 this._renderedNodeType = null; 28666 this._renderedComponent = null; 28667 this._instance = null; 28668 } 28669 28670 // Reset pending fields 28671 // Even if this component is scheduled for another update in ReactUpdates, 28672 // it would still be ignored because these fields are reset. 28673 this._pendingStateQueue = null; 28674 this._pendingReplaceState = false; 28675 this._pendingForceUpdate = false; 28676 this._pendingCallbacks = null; 28677 this._pendingElement = null; 28678 28679 // These fields do not really need to be reset since this object is no 28680 // longer accessible. 28681 this._context = null; 28682 this._rootNodeID = 0; 28683 this._topLevelWrapper = null; 28684 28685 // Delete the reference from the instance to this internal representation 28686 // which allow the internals to be properly cleaned up even if the user 28687 // leaks a reference to the public instance. 28688 ReactInstanceMap.remove(inst); 28689 28690 // Some existing components rely on inst.props even after they've been 28691 // destroyed (in event handlers). 28692 // TODO: inst.props = null; 28693 // TODO: inst.state = null; 28694 // TODO: inst.context = null; 28695 }, 28696 28697 /** 28698 * Filters the context object to only contain keys specified in 28699 * `contextTypes` 28700 * 28701 * @param {object} context 28702 * @return {?object} 28703 * @private 28704 */ 28705 _maskContext: function (context) { 28706 var Component = this._currentElement.type; 28707 var contextTypes = Component.contextTypes; 28708 if (!contextTypes) { 28709 return emptyObject; 28710 } 28711 var maskedContext = {}; 28712 for (var contextName in contextTypes) { 28713 maskedContext[contextName] = context[contextName]; 28714 } 28715 return maskedContext; 28716 }, 28717 28718 /** 28719 * Filters the context object to only contain keys specified in 28720 * `contextTypes`, and asserts that they are valid. 28721 * 28722 * @param {object} context 28723 * @return {?object} 28724 * @private 28725 */ 28726 _processContext: function (context) { 28727 var maskedContext = this._maskContext(context); 28728 if (process.env.NODE_ENV !== 'production') { 28729 var Component = this._currentElement.type; 28730 if (Component.contextTypes) { 28731 this._checkContextTypes(Component.contextTypes, maskedContext, 'context'); 28732 } 28733 } 28734 return maskedContext; 28735 }, 28736 28737 /** 28738 * @param {object} currentContext 28739 * @return {object} 28740 * @private 28741 */ 28742 _processChildContext: function (currentContext) { 28743 var Component = this._currentElement.type; 28744 var inst = this._instance; 28745 var childContext; 28746 28747 if (inst.getChildContext) { 28748 if (process.env.NODE_ENV !== 'production') { 28749 ReactInstrumentation.debugTool.onBeginProcessingChildContext(); 28750 try { 28751 childContext = inst.getChildContext(); 28752 } finally { 28753 ReactInstrumentation.debugTool.onEndProcessingChildContext(); 28754 } 28755 } else { 28756 childContext = inst.getChildContext(); 28757 } 28758 } 28759 28760 if (childContext) { 28761 !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0; 28762 if (process.env.NODE_ENV !== 'production') { 28763 this._checkContextTypes(Component.childContextTypes, childContext, 'child context'); 28764 } 28765 for (var name in childContext) { 28766 !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0; 28767 } 28768 return _assign({}, currentContext, childContext); 28769 } 28770 return currentContext; 28771 }, 28772 28773 /** 28774 * Assert that the context types are valid 28775 * 28776 * @param {object} typeSpecs Map of context field to a ReactPropType 28777 * @param {object} values Runtime values that need to be type-checked 28778 * @param {string} location e.g. "prop", "context", "child context" 28779 * @private 28780 */ 28781 _checkContextTypes: function (typeSpecs, values, location) { 28782 if (process.env.NODE_ENV !== 'production') { 28783 checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID); 28784 } 28785 }, 28786 28787 receiveComponent: function (nextElement, transaction, nextContext) { 28788 var prevElement = this._currentElement; 28789 var prevContext = this._context; 28790 28791 this._pendingElement = null; 28792 28793 this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext); 28794 }, 28795 28796 /** 28797 * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` 28798 * is set, update the component. 28799 * 28800 * @param {ReactReconcileTransaction} transaction 28801 * @internal 28802 */ 28803 performUpdateIfNecessary: function (transaction) {
28804 if (this._pendingElement != null) { 28805 ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context); 28806 } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) { 28807 this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context); 28808 } else { 28809 this._updateBatchNumber = null; 28810 } 28811 }, 28812 28813 /** 28814 * Perform an update to a mounted component. The componentWillReceiveProps and 28815 * shouldComponentUpdate methods are called, then (assuming the update isn't 28816 * skipped) the remaining update lifecycle methods are called and the DOM 28817 * representation is updated. 28818 * 28819 * By default, this implements React's rendering and reconciliation algorithm. 28820 * Sophisticated clients may wish to override this. 28821 * 28822 * @param {ReactReconcileTransaction} transaction 28823 * @param {ReactElement} prevParentElement 28824 * @param {ReactElement} nextParentElement 28825 * @internal 28826 * @overridable 28827 */ 28828 updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) { 28829 var inst = this._instance; 28830 !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0; 28831 28832 var willReceive = false; 28833 var nextContext; 28834 28835 // Determine if the context has changed or not 28836 if (this._context === nextUnmaskedContext) { 28837 nextContext = inst.context; 28838 } else { 28839 nextContext = this._processContext(nextUnmaskedContext); 28840 willReceive = true; 28841 } 28842 28843 var prevProps = prevParentElement.props; 28844 var nextProps = nextParentElement.props; 28845 28846 // Not a simple state update but a props update 28847 if (prevParentElement !== nextParentElement) { 28848 willReceive = true; 28849 } 28850 28851 // An update here will schedule an update but immediately set 28852 // _pendingStateQueue which will ensure that any state updates gets 28853 // immediately reconciled instead of waiting for the next batch. 28854 if (willReceive && inst.componentWillReceiveProps) { 28855 if (process.env.NODE_ENV !== 'production') { 28856 measureLifeCyclePerf(function () { 28857 return inst.componentWillReceiveProps(nextProps, nextContext); 28858 }, this._debugID, 'componentWillReceiveProps'); 28859 } else { 28860 inst.componentWillReceiveProps(nextProps, nextContext); 28861 } 28862 } 28863 28864 var nextState = this._processPendingState(nextProps, nextContext); 28865 var shouldUpdate = true; 28866 28867 if (!this._pendingForceUpdate) { 28868 if (inst.shouldComponentUpdate) { 28869 if (process.env.NODE_ENV !== 'production') { 28870 shouldUpdate = measureLifeCyclePerf(function () { 28871 return inst.shouldComponentUpdate(nextProps, nextState, nextContext); 28872 }, this._debugID, 'shouldComponentUpdate'); 28873 } else { 28874 shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext); 28875 } 28876 } else { 28877 if (this._compositeType === CompositeTypes.PureClass) { 28878 shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState); 28879 } 28880 } 28881 } 28882 28883 if (process.env.NODE_ENV !== 'production') { 28884 process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0; 28885 } 28886 28887 this._updateBatchNumber = null; 28888 if (shouldUpdate) { 28889 this._pendingForceUpdate = false; 28890 // Will set `this.props`, `this.state` and `this.context`. 28891 this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext); 28892 } else { 28893 // If it's determined that a component should not update, we still want 28894 // to set props and state but we shortcut the rest of the update. 28895 this._currentElement = nextParentElement; 28896 this._context = nextUnmaskedContext; 28897 inst.props = nextProps; 28898 inst.state = nextState; 28899 inst.context = nextContext; 28900 } 28901 }, 28902 28903 _processPendingState: function (props, context) { 28904 var inst = this._instance; 28905 var queue = this._pendingStateQueue; 28906 var replace = this._pendingReplaceState; 28907 this._pendingReplaceState = false;
28908 this._pendingStateQueue = null; 28909 28910 if (!queue) { 28911 return inst.state; 28912 } 28913 28914 if (replace && queue.length === 1) { 28915 return queue[0]; 28916 } 28917 28918 var nextState = _assign({}, replace ? queue[0] : inst.state); 28919 for (var i = replace ? 1 : 0; i < queue.length; i++) { 28920 var partial = queue[i]; 28921 _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial); 28922 } 28923 28924 return nextState; 28925 }, 28926 28927 /** 28928 * Merges new props and state, notifies delegate methods of update and 28929 * performs update. 28930 * 28931 * @param {ReactElement} nextElement Next element 28932 * @param {object} nextProps Next public object to set as properties. 28933 * @param {?object} nextState Next object to set as state. 28934 * @param {?object} nextContext Next public object to set as context. 28935 * @param {ReactReconcileTransaction} transaction 28936 * @param {?object} unmaskedContext 28937 * @private 28938 */ 28939 _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) { 28940 var _this2 = this; 28941 28942 var inst = this._instance; 28943 28944 var hasComponentDidUpdate = Boolean(inst.componentDidUpdate); 28945 var prevProps; 28946 var prevState; 28947 var prevContext; 28948 if (hasComponentDidUpdate) { 28949 prevProps = inst.props; 28950 prevState = inst.state; 28951 prevContext = inst.context; 28952 } 28953 28954 if (inst.componentWillUpdate) { 28955 if (process.env.NODE_ENV !== 'production') { 28956 measureLifeCyclePerf(function () { 28957 return inst.componentWillUpdate(nextProps, nextState, nextContext); 28958 }, this._debugID, 'componentWillUpdate'); 28959 } else { 28960 inst.componentWillUpdate(nextProps, nextState, nextContext); 28961 } 28962 } 28963 28964 this._currentElement = nextElement; 28965 this._context = unmaskedContext; 28966 inst.props = nextProps; 28967 inst.state = nextState; 28968 inst.context = nextContext; 28969 28970 this._updateRenderedComponent(transaction, unmaskedContext); 28971 28972 if (hasComponentDidUpdate) { 28973 if (process.env.NODE_ENV !== 'production') { 28974 transaction.getReactMountReady().enqueue(function () { 28975 measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate'); 28976 }); 28977 } else { 28978 transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); 28979 } 28980 } 28981 }, 28982 28983 /** 28984 * Call the component's `render` method and update the DOM accordingly. 28985 * 28986 * @param {ReactReconcileTransaction} transaction 28987 * @internal 28988 */ 28989 _updateRenderedComponent: function (transaction, context) { 28990 var prevComponentInstance = this._renderedComponent; 28991 var prevRenderedElement = prevComponentInstance._currentElement; 28992 var nextRenderedElement = this._renderValidatedComponent(); 28993 28994 var debugID = 0; 28995 if (process.env.NODE_ENV !== 'production') { 28996 debugID = this._debugID; 28997 } 28998 28999 if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { 29000 ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); 29001 } else { 29002 var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance); 29003 ReactReconciler.unmountComponent(prevComponentInstance, false); 29004 29005 var nodeType = ReactNodeTypes.getType(nextRenderedElement); 29006 this._renderedNodeType = nodeType; 29007 var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ 29008 ); 29009 this._renderedComponent = child; 29010 29011 var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID); 29012 29013 if (process.env.NODE_ENV !== 'production') { 29014 if (debugID !== 0) { 29015 var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; 29016 ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); 29017 } 29018 } 29019 29020 this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance); 29021 } 29022 }, 29023 29024 /** 29025 * Overridden in shallow rendering. 29026 * 29027 * @protected 29028 */ 29029 _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) { 29030 ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance); 29031 }, 29032 29033 /** 29034 * @protected 29035 */ 29036 _renderValidatedComponentWithoutOwnerOrContext: function () { 29037 var inst = this._instance; 29038 var renderedElement; 29039 29040 if (process.env.NODE_ENV !== 'production') { 29041 renderedElement = measureLifeCyclePerf(function () { 29042 return inst.render(); 29043 }, this._debugID, 'render'); 29044 } else { 29045 renderedElement = inst.render(); 29046 } 29047 29048 if (process.env.NODE_ENV !== 'production') { 29049 // We allow auto-mocks to proceed as if they're returning null. 29050 if (renderedElement === undefined && inst.render._isMockFunction) { 29051 // This is probably bad practice. Consider warning here and 29052 // deprecating this convenience. 29053 renderedElement = null; 29054 } 29055 } 29056 29057 return renderedElement; 29058 }, 29059 29060 /** 29061 * @private 29062 */ 29063 _renderValidatedComponent: function () { 29064 var renderedElement; 29065 if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) { 29066 ReactCurrentOwner.current = this;
29067 try { 29068 renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); 29069 } finally { 29070 ReactCurrentOwner.current = null; 29071 } 29072 } else { 29073 renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); 29074 } 29075 !( 29076 // TODO: An `isValidNode` function would probably be more appropriate 29077 renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0; 29078 29079 return renderedElement; 29080 }, 29081 29082 /** 29083 * Lazily allocates the refs object and stores `component` as `ref`. 29084 * 29085 * @param {string} ref Reference name. 29086 * @param {component} component Component to store as `ref`. 29087 * @final 29088 * @private 29089 */ 29090 attachRef: function (ref, component) { 29091 var inst = this.getPublicInstance(); 29092 !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0; 29093 var publicComponentInstance = component.getPublicInstance(); 29094 if (process.env.NODE_ENV !== 'production') { 29095 var componentName = component && component.getName ? component.getName() : 'a component'; 29096 process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0; 29097 } 29098 var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; 29099 refs[ref] = publicComponentInstance; 29100 }, 29101 29102 /** 29103 * Detaches a reference name. 29104 * 29105 * @param {string} ref Name to dereference. 29106 * @final 29107 * @private 29108 */ 29109 detachRef: function (ref) { 29110 var refs = this.getPublicInstance().refs; 29111 delete refs[ref]; 29112 }, 29113 29114 /** 29115 * Get a text description of the component that can be used to identify it 29116 * in error messages. 29117 * @return {string} The name or null. 29118 * @internal 29119 */ 29120 getName: function () { 29121 var type = this._currentElement.type; 29122 var constructor = this._instance && this._instance.constructor; 29123 return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null; 29124 }, 29125 29126 /** 29127 * Get the publicly accessible representation of this component - i.e. what 29128 * is exposed by refs and returned by render. Can be null for stateless 29129 * components. 29130 * 29131 * @return {ReactComponent} the public component instance. 29132 * @internal 29133 */ 29134 getPublicInstance: function () { 29135 var inst = this._instance; 29136 if (this._compositeType === CompositeTypes.StatelessFunctional) { 29137 return null; 29138 } 29139 return inst; 29140 }, 29141 29142 // Stub 29143 _instantiateReactComponent: null 29144}; 29145 29146module.exports = ReactCompositeComponent; 29147/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29148 29149/***/ }), 29150/* 491 */ 29151/***/ (function(module, exports, __webpack_require__) { 29152 29153"use strict"; 29154/* WEBPACK VAR INJECTION */(function(process) {/** 29155 * Copyright (c) 2013-present, Facebook, Inc. 29156 * 29157 * This source code is licensed under the MIT license found in the 29158 * LICENSE file in the root directory of this source tree. 29159 * 29160 */ 29161 29162 29163 29164var _prodInvariant = __webpack_require__(8); 29165 29166var ReactPropTypeLocationNames = __webpack_require__(492); 29167var ReactPropTypesSecret = __webpack_require__(208); 29168 29169var invariant = __webpack_require__(2); 29170var warning = __webpack_require__(3); 29171 29172var ReactComponentTreeHook; 29173 29174if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { 29175 // Temporary hack. 29176 // Inline requires don't work well with Jest: 29177 // https://github.com/facebook/react/issues/7240 29178 // Remove the inline requires when we don't need them anymore: 29179 // https://github.com/facebook/react/pull/7178 29180 ReactComponentTreeHook = __webpack_require__(22); 29181} 29182 29183var loggedTypeFailures = {}; 29184 29185/** 29186 * Assert that the values match with the type specs. 29187 * Error messages are memorized and will only be shown once. 29188 * 29189 * @param {object} typeSpecs Map of name to a ReactPropType 29190 * @param {object} values Runtime values that need to be type-checked 29191 * @param {string} location e.g. "prop", "context", "child context" 29192 * @param {string} componentName Name of the component for error messages. 29193 * @param {?object} element The React element that is being type-checked 29194 * @param {?number} debugID The React component instance that is being type-checked 29195 * @private 29196 */ 29197function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) { 29198 for (var typeSpecName in typeSpecs) { 29199 if (typeSpecs.hasOwnProperty(typeSpecName)) { 29200 var error; 29201 // Prop type validation may throw. In case they do, we don't want to 29202 // fail the render phase where it didn't fail before. So we log it. 29203 // After these have been cleaned up, we'll let them throw.
29204 try { 29205 // This is intentionally an invariant that gets caught. It's the same 29206 // behavior as without this statement except with a better message. 29207 !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; 29208 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); 29209 } catch (ex) { 29210 error = ex; 29211 } 29212 process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0; 29213 if (error instanceof Error && !(error.message in loggedTypeFailures)) { 29214 // Only monitor this failure once because there tends to be a lot of the 29215 // same error. 29216 loggedTypeFailures[error.message] = true; 29217 29218 var componentStackInfo = ''; 29219 29220 if (process.env.NODE_ENV !== 'production') { 29221 if (!ReactComponentTreeHook) { 29222 ReactComponentTreeHook = __webpack_require__(22); 29223 } 29224 if (debugID !== null) { 29225 componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); 29226 } else if (element !== null) { 29227 componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); 29228 } 29229 } 29230 29231 process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; 29232 } 29233 } 29234 } 29235} 29236 29237module.exports = checkReactTypeSpec; 29238/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29239 29240/***/ }), 29241/* 492 */ 29242/***/ (function(module, exports, __webpack_require__) { 29243 29244"use strict"; 29245/* WEBPACK VAR INJECTION */(function(process) {/** 29246 * Copyright (c) 2013-present, Facebook, Inc. 29247 * 29248 * This source code is licensed under the MIT license found in the 29249 * LICENSE file in the root directory of this source tree. 29250 * 29251 * 29252 */ 29253 29254 29255 29256var ReactPropTypeLocationNames = {}; 29257 29258if (process.env.NODE_ENV !== 'production') { 29259 ReactPropTypeLocationNames = { 29260 prop: 'prop', 29261 context: 'context', 29262 childContext: 'child context' 29263 }; 29264} 29265 29266module.exports = ReactPropTypeLocationNames; 29267/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29268 29269/***/ }), 29270/* 493 */ 29271/***/ (function(module, exports, __webpack_require__) { 29272 29273"use strict"; 29274/** 29275 * Copyright (c) 2013-present, Facebook, Inc. 29276 * 29277 * This source code is licensed under the MIT license found in the 29278 * LICENSE file in the root directory of this source tree. 29279 * 29280 * 29281 */ 29282 29283 29284 29285var nextDebugID = 1; 29286 29287function getNextDebugID() { 29288 return nextDebugID++; 29289} 29290 29291module.exports = getNextDebugID; 29292 29293/***/ }), 29294/* 494 */ 29295/***/ (function(module, exports, __webpack_require__) { 29296 29297"use strict"; 29298/** 29299 * Copyright (c) 2014-present, Facebook, Inc. 29300 * 29301 * This source code is licensed under the MIT license found in the 29302 * LICENSE file in the root directory of this source tree. 29303 * 29304 * 29305 */ 29306 29307 29308 29309// The Symbol used to tag the ReactElement type. If there is no native Symbol 29310// nor polyfill, then a plain number is used for performance. 29311 29312var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; 29313 29314module.exports = REACT_ELEMENT_TYPE; 29315 29316/***/ }), 29317/* 495 */ 29318/***/ (function(module, exports, __webpack_require__) { 29319 29320"use strict"; 29321/** 29322 * Copyright (c) 2013-present, Facebook, Inc. 29323 * 29324 * This source code is licensed under the MIT license found in the 29325 * LICENSE file in the root directory of this source tree. 29326 * 29327 * 29328 */ 29329 29330 29331 29332/* global Symbol */ 29333 29334var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; 29335var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. 29336 29337/** 29338 * Returns the iterator method function contained on the iterable object. 29339 * 29340 * Be sure to invoke the function with the iterable as context: 29341 * 29342 * var iteratorFn = getIteratorFn(myIterable); 29343 * if (iteratorFn) { 29344 * var iterator = iteratorFn.call(myIterable); 29345 * ... 29346 * } 29347 * 29348 * @param {?object} maybeIterable 29349 * @return {?function} 29350 */ 29351function getIteratorFn(maybeIterable) { 29352 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); 29353 if (typeof iteratorFn === 'function') { 29354 return iteratorFn; 29355 } 29356} 29357 29358module.exports = getIteratorFn; 29359 29360/***/ }), 29361/* 496 */ 29362/***/ (function(module, exports, __webpack_require__) { 29363 29364"use strict"; 29365/* WEBPACK VAR INJECTION */(function(process) {/** 29366 * Copyright (c) 2013-present, Facebook, Inc. 29367 * 29368 * This source code is licensed under the MIT license found in the 29369 * LICENSE file in the root directory of this source tree. 29370 * 29371 * 29372 */ 29373 29374 29375 29376var KeyEscapeUtils = __webpack_require__(149); 29377var traverseAllChildren = __webpack_require__(214); 29378var warning = __webpack_require__(3); 29379 29380var ReactComponentTreeHook; 29381 29382if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') { 29383 // Temporary hack. 29384 // Inline requires don't work well with Jest: 29385 // https://github.com/facebook/react/issues/7240 29386 // Remove the inline requires when we don't need them anymore: 29387 // https://github.com/facebook/react/pull/7178 29388 ReactComponentTreeHook = __webpack_require__(22); 29389} 29390 29391/** 29392 * @param {function} traverseContext Context passed through traversal. 29393 * @param {?ReactComponent} child React child component. 29394 * @param {!string} name String name of key path to child. 29395 * @param {number=} selfDebugID Optional debugID of the current internal instance. 29396 */ 29397function flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) { 29398 // We found a component instance. 29399 if (traverseContext && typeof traverseContext === 'object') { 29400 var result = traverseContext; 29401 var keyUnique = result[name] === undefined; 29402 if (process.env.NODE_ENV !== 'production') { 29403 if (!ReactComponentTreeHook) { 29404 ReactComponentTreeHook = __webpack_require__(22); 29405 } 29406 if (!keyUnique) { 29407 process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; 29408 } 29409 } 29410 if (keyUnique && child != null) { 29411 result[name] = child; 29412 } 29413 } 29414} 29415 29416/** 29417 * Flattens children that are typically specified as `props.children`. Any null 29418 * children will not be included in the resulting object. 29419 * @return {!object} flattened children keyed by name. 29420 */ 29421function flattenChildren(children, selfDebugID) { 29422 if (children == null) { 29423 return children; 29424 } 29425 var result = {}; 29426 29427 if (process.env.NODE_ENV !== 'production') { 29428 traverseAllChildren(children, function (traverseContext, child, name) { 29429 return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID); 29430 }, result); 29431 } else { 29432 traverseAllChildren(children, flattenSingleChildIntoContext, result); 29433 } 29434 return result; 29435} 29436 29437module.exports = flattenChildren; 29438/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29439 29440/***/ }), 29441/* 497 */ 29442/***/ (function(module, exports, __webpack_require__) { 29443 29444"use strict"; 29445/* WEBPACK VAR INJECTION */(function(process) {/** 29446 * Copyright (c) 2014-present, Facebook, Inc. 29447 * 29448 * This source code is licensed under the MIT license found in the 29449 * LICENSE file in the root directory of this source tree. 29450 * 29451 */ 29452 29453 29454 29455var _assign = __webpack_require__(10); 29456 29457var PooledClass = __webpack_require__(60); 29458var Transaction = __webpack_require__(100); 29459var ReactInstrumentation = __webpack_require__(28); 29460var ReactServerUpdateQueue = __webpack_require__(498); 29461 29462/** 29463 * Executed within the scope of the `Transaction` instance. Consider these as 29464 * being member methods, but with an implied ordering while being isolated from 29465 * each other. 29466 */ 29467var TRANSACTION_WRAPPERS = []; 29468 29469if (process.env.NODE_ENV !== 'production') { 29470 TRANSACTION_WRAPPERS.push({ 29471 initialize: ReactInstrumentation.debugTool.onBeginFlush, 29472 close: ReactInstrumentation.debugTool.onEndFlush 29473 }); 29474} 29475 29476var noopCallbackQueue = { 29477 enqueue: function () {} 29478}; 29479 29480/** 29481 * @class ReactServerRenderingTransaction 29482 * @param {boolean} renderToStaticMarkup 29483 */ 29484function ReactServerRenderingTransaction(renderToStaticMarkup) { 29485 this.reinitializeTransaction(); 29486 this.renderToStaticMarkup = renderToStaticMarkup; 29487 this.useCreateElement = false;
29488 this.updateQueue = new ReactServerUpdateQueue(this); 29489} 29490 29491var Mixin = { 29492 /** 29493 * @see Transaction 29494 * @abstract 29495 * @final 29496 * @return {array} Empty list of operation wrap procedures. 29497 */ 29498 getTransactionWrappers: function () { 29499 return TRANSACTION_WRAPPERS; 29500 }, 29501 29502 /** 29503 * @return {object} The queue to collect `onDOMReady` callbacks with. 29504 */ 29505 getReactMountReady: function () { 29506 return noopCallbackQueue; 29507 }, 29508 29509 /** 29510 * @return {object} The queue to collect React async events. 29511 */ 29512 getUpdateQueue: function () { 29513 return this.updateQueue; 29514 }, 29515 29516 /** 29517 * `PooledClass` looks for this, and will invoke this before allowing this 29518 * instance to be reused. 29519 */ 29520 destructor: function () {}, 29521 29522 checkpoint: function () {}, 29523 29524 rollback: function () {} 29525}; 29526 29527_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin); 29528 29529PooledClass.addPoolingTo(ReactServerRenderingTransaction); 29530 29531module.exports = ReactServerRenderingTransaction; 29532/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29533 29534/***/ }), 29535/* 498 */ 29536/***/ (function(module, exports, __webpack_require__) { 29537 29538"use strict"; 29539/* WEBPACK VAR INJECTION */(function(process) {/** 29540 * Copyright (c) 2015-present, Facebook, Inc. 29541 * 29542 * This source code is licensed under the MIT license found in the 29543 * LICENSE file in the root directory of this source tree. 29544 * 29545 * 29546 */ 29547 29548 29549 29550function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 29551 29552var ReactUpdateQueue = __webpack_require__(150); 29553 29554var warning = __webpack_require__(3); 29555 29556function warnNoop(publicInstance, callerName) { 29557 if (process.env.NODE_ENV !== 'production') { 29558 var constructor = publicInstance.constructor; 29559 process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; 29560 } 29561} 29562 29563/** 29564 * This is the update queue used for server rendering. 29565 * It delegates to ReactUpdateQueue while server rendering is in progress and 29566 * switches to ReactNoopUpdateQueue after the transaction has completed. 29567 * @class ReactServerUpdateQueue 29568 * @param {Transaction} transaction 29569 */ 29570 29571var ReactServerUpdateQueue = function () { 29572 function ReactServerUpdateQueue(transaction) { 29573 _classCallCheck(this, ReactServerUpdateQueue); 29574 29575 this.transaction = transaction; 29576 } 29577 29578 /** 29579 * Checks whether or not this composite component is mounted. 29580 * @param {ReactClass} publicInstance The instance we want to test. 29581 * @return {boolean} True if mounted, false otherwise. 29582 * @protected 29583 * @final 29584 */ 29585 29586 29587 ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) { 29588 return false; 29589 }; 29590 29591 /** 29592 * Enqueue a callback that will be executed after all the pending updates 29593 * have processed. 29594 * 29595 * @param {ReactClass} publicInstance The instance to use as `this` context. 29596 * @param {?function} callback Called after state is updated. 29597 * @internal 29598 */ 29599 29600 29601 ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) { 29602 if (this.transaction.isInTransaction()) { 29603 ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName); 29604 } 29605 }; 29606 29607 /** 29608 * Forces an update. This should only be invoked when it is known with 29609 * certainty that we are **not** in a DOM transaction. 29610 * 29611 * You may want to call this when you know that some deeper aspect of the 29612 * component's state has changed but `setState` was not called. 29613 * 29614 * This will not invoke `shouldComponentUpdate`, but it will invoke 29615 * `componentWillUpdate` and `componentDidUpdate`. 29616 * 29617 * @param {ReactClass} publicInstance The instance that should rerender. 29618 * @internal 29619 */ 29620 29621 29622 ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) { 29623 if (this.transaction.isInTransaction()) { 29624 ReactUpdateQueue.enqueueForceUpdate(publicInstance); 29625 } else { 29626 warnNoop(publicInstance, 'forceUpdate'); 29627 } 29628 }; 29629 29630 /** 29631 * Replaces all of the state. Always use this or `setState` to mutate state. 29632 * You should treat `this.state` as immutable. 29633 * 29634 * There is no guarantee that `this.state` will be immediately updated, so 29635 * accessing `this.state` after calling this method may return the old value. 29636 * 29637 * @param {ReactClass} publicInstance The instance that should rerender. 29638 * @param {object|function} completeState Next state. 29639 * @internal 29640 */ 29641 29642 29643 ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) { 29644 if (this.transaction.isInTransaction()) { 29645 ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState); 29646 } else { 29647 warnNoop(publicInstance, 'replaceState'); 29648 } 29649 }; 29650 29651 /** 29652 * Sets a subset of the state. This only exists because _pendingState is 29653 * internal. This provides a merging strategy that is not available to deep 29654 * properties which is confusing. TODO: Expose pendingState or don't use it 29655 * during the merge. 29656 * 29657 * @param {ReactClass} publicInstance The instance that should rerender. 29658 * @param {object|function} partialState Next partial state to be merged with state. 29659 * @internal 29660 */ 29661 29662 29663 ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) { 29664 if (this.transaction.isInTransaction()) { 29665 ReactUpdateQueue.enqueueSetState(publicInstance, partialState); 29666 } else { 29667 warnNoop(publicInstance, 'setState'); 29668 } 29669 }; 29670 29671 return ReactServerUpdateQueue; 29672}(); 29673 29674module.exports = ReactServerUpdateQueue; 29675/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29676 29677/***/ }), 29678/* 499 */ 29679/***/ (function(module, exports, __webpack_require__) { 29680 29681"use strict"; 29682/** 29683 * Copyright (c) 2014-present, Facebook, Inc. 29684 * 29685 * This source code is licensed under the MIT license found in the 29686 * LICENSE file in the root directory of this source tree. 29687 * 29688 */ 29689 29690 29691 29692var _assign = __webpack_require__(10); 29693 29694var DOMLazyTree = __webpack_require__(69); 29695var ReactDOMComponentTree = __webpack_require__(14); 29696 29697var ReactDOMEmptyComponent = function (instantiate) { 29698 // ReactCompositeComponent uses this: 29699 this._currentElement = null; 29700 // ReactDOMComponentTree uses these: 29701 this._hostNode = null; 29702 this._hostParent = null; 29703 this._hostContainerInfo = null; 29704 this._domID = 0; 29705}; 29706_assign(ReactDOMEmptyComponent.prototype, { 29707 mountComponent: function (transaction, hostParent, hostContainerInfo, context) { 29708 var domID = hostContainerInfo._idCounter++; 29709 this._domID = domID; 29710 this._hostParent = hostParent; 29711 this._hostContainerInfo = hostContainerInfo; 29712 29713 var nodeValue = ' react-empty: ' + this._domID + ' '; 29714 if (transaction.useCreateElement) { 29715 var ownerDocument = hostContainerInfo._ownerDocument; 29716 var node = ownerDocument.createComment(nodeValue); 29717 ReactDOMComponentTree.precacheNode(this, node); 29718 return DOMLazyTree(node); 29719 } else { 29720 if (transaction.renderToStaticMarkup) { 29721 // Normally we'd insert a comment node, but since this is a situation 29722 // where React won't take over (static pages), we can simply return 29723 // nothing. 29724 return ''; 29725 } 29726 return '<!--' + nodeValue + '-->'; 29727 } 29728 }, 29729 receiveComponent: function () {}, 29730 getHostNode: function () { 29731 return ReactDOMComponentTree.getNodeFromInstance(this); 29732 }, 29733 unmountComponent: function () { 29734 ReactDOMComponentTree.uncacheNode(this); 29735 } 29736}); 29737 29738module.exports = ReactDOMEmptyComponent; 29739 29740/***/ }), 29741/* 500 */ 29742/***/ (function(module, exports, __webpack_require__) { 29743 29744"use strict"; 29745/* WEBPACK VAR INJECTION */(function(process) {/** 29746 * Copyright (c) 2015-present, Facebook, Inc. 29747 * 29748 * This source code is licensed under the MIT license found in the 29749 * LICENSE file in the root directory of this source tree. 29750 * 29751 */ 29752 29753 29754 29755var _prodInvariant = __webpack_require__(8); 29756 29757var invariant = __webpack_require__(2); 29758 29759/** 29760 * Return the lowest common ancestor of A and B, or null if they are in 29761 * different trees. 29762 */ 29763function getLowestCommonAncestor(instA, instB) { 29764 !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; 29765 !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; 29766 29767 var depthA = 0; 29768 for (var tempA = instA; tempA; tempA = tempA._hostParent) { 29769 depthA++; 29770 } 29771 var depthB = 0; 29772 for (var tempB = instB; tempB; tempB = tempB._hostParent) { 29773 depthB++; 29774 } 29775 29776 // If A is deeper, crawl up. 29777 while (depthA - depthB > 0) { 29778 instA = instA._hostParent; 29779 depthA--; 29780 } 29781 29782 // If B is deeper, crawl up. 29783 while (depthB - depthA > 0) { 29784 instB = instB._hostParent; 29785 depthB--; 29786 } 29787 29788 // Walk in lockstep until we find a match. 29789 var depth = depthA; 29790 while (depth--) { 29791 if (instA === instB) { 29792 return instA; 29793 } 29794 instA = instA._hostParent; 29795 instB = instB._hostParent; 29796 } 29797 return null; 29798} 29799 29800/** 29801 * Return if A is an ancestor of B. 29802 */ 29803function isAncestor(instA, instB) { 29804 !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0; 29805 !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0; 29806 29807 while (instB) { 29808 if (instB === instA) { 29809 return true; 29810 } 29811 instB = instB._hostParent; 29812 } 29813 return false;
29814} 29815 29816/** 29817 * Return the parent instance of the passed-in instance. 29818 */ 29819function getParentInstance(inst) { 29820 !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0; 29821 29822 return inst._hostParent; 29823} 29824 29825/** 29826 * Simulates the traversal of a two-phase, capture/bubble event dispatch. 29827 */ 29828function traverseTwoPhase(inst, fn, arg) { 29829 var path = []; 29830 while (inst) { 29831 path.push(inst); 29832 inst = inst._hostParent; 29833 } 29834 var i; 29835 for (i = path.length; i-- > 0;) { 29836 fn(path[i], 'captured', arg); 29837 } 29838 for (i = 0; i < path.length; i++) { 29839 fn(path[i], 'bubbled', arg); 29840 } 29841} 29842 29843/** 29844 * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that 29845 * should would receive a `mouseEnter` or `mouseLeave` event. 29846 * 29847 * Does not invoke the callback on the nearest common ancestor because nothing 29848 * "entered" or "left" that element. 29849 */ 29850function traverseEnterLeave(from, to, fn, argFrom, argTo) { 29851 var common = from && to ? getLowestCommonAncestor(from, to) : null; 29852 var pathFrom = []; 29853 while (from && from !== common) { 29854 pathFrom.push(from); 29855 from = from._hostParent; 29856 } 29857 var pathTo = []; 29858 while (to && to !== common) { 29859 pathTo.push(to); 29860 to = to._hostParent; 29861 } 29862 var i; 29863 for (i = 0; i < pathFrom.length; i++) { 29864 fn(pathFrom[i], 'bubbled', argFrom); 29865 } 29866 for (i = pathTo.length; i-- > 0;) { 29867 fn(pathTo[i], 'captured', argTo); 29868 } 29869} 29870 29871module.exports = { 29872 isAncestor: isAncestor, 29873 getLowestCommonAncestor: getLowestCommonAncestor, 29874 getParentInstance: getParentInstance, 29875 traverseTwoPhase: traverseTwoPhase, 29876 traverseEnterLeave: traverseEnterLeave 29877}; 29878/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 29879 29880/***/ }), 29881/* 501 */ 29882/***/ (function(module, exports, __webpack_require__) { 29883 29884"use strict"; 29885/* WEBPACK VAR INJECTION */(function(process) {/** 29886 * Copyright (c) 2013-present, Facebook, Inc. 29887 * 29888 * This source code is licensed under the MIT license found in the 29889 * LICENSE file in the root directory of this source tree. 29890 * 29891 */ 29892 29893 29894 29895var _prodInvariant = __webpack_require__(8), 29896 _assign = __webpack_require__(10); 29897 29898var DOMChildrenOperations = __webpack_require__(142); 29899var DOMLazyTree = __webpack_require__(69); 29900var ReactDOMComponentTree = __webpack_require__(14); 29901 29902var escapeTextContentForBrowser = __webpack_require__(103); 29903var invariant = __webpack_require__(2); 29904var validateDOMNesting = __webpack_require__(151); 29905 29906/** 29907 * Text nodes violate a couple assumptions that React makes about components: 29908 * 29909 * - When mounting text into the DOM, adjacent text nodes are merged. 29910 * - Text nodes cannot be assigned a React root ID. 29911 * 29912 * This component is used to wrap strings between comment nodes so that they 29913 * can undergo the same reconciliation that is applied to elements. 29914 * 29915 * TODO: Investigate representing React components in the DOM with text nodes. 29916 * 29917 * @class ReactDOMTextComponent 29918 * @extends ReactComponent 29919 * @internal 29920 */ 29921var ReactDOMTextComponent = function (text) { 29922 // TODO: This is really a ReactText (ReactNode), not a ReactElement 29923 this._currentElement = text; 29924 this._stringText = '' + text; 29925 // ReactDOMComponentTree uses these: 29926 this._hostNode = null; 29927 this._hostParent = null; 29928 29929 // Properties 29930 this._domID = 0; 29931 this._mountIndex = 0; 29932 this._closingComment = null; 29933 this._commentNodes = null; 29934}; 29935 29936_assign(ReactDOMTextComponent.prototype, { 29937 /** 29938 * Creates the markup for this text node. This node is not intended to have 29939 * any features besides containing text content. 29940 * 29941 * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction 29942 * @return {string} Markup for this text node. 29943 * @internal 29944 */ 29945 mountComponent: function (transaction, hostParent, hostContainerInfo, context) { 29946 if (process.env.NODE_ENV !== 'production') { 29947 var parentInfo; 29948 if (hostParent != null) { 29949 parentInfo = hostParent._ancestorInfo; 29950 } else if (hostContainerInfo != null) { 29951 parentInfo = hostContainerInfo._ancestorInfo; 29952 } 29953 if (parentInfo) { 29954 // parentInfo should always be present except for the top-level 29955 // component when server rendering 29956 validateDOMNesting(null, this._stringText, this, parentInfo); 29957 } 29958 } 29959 29960 var domID = hostContainerInfo._idCounter++; 29961 var openingValue = ' react-text: ' + domID + ' '; 29962 var closingValue = ' /react-text '; 29963 this._domID = domID; 29964 this._hostParent = hostParent; 29965 if (transaction.useCreateElement) { 29966 var ownerDocument = hostContainerInfo._ownerDocument; 29967 var openingComment = ownerDocument.createComment(openingValue); 29968 var closingComment = ownerDocument.createComment(closingValue); 29969 var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment()); 29970 DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment)); 29971 if (this._stringText) { 29972 DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText))); 29973 } 29974 DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment)); 29975 ReactDOMComponentTree.precacheNode(this, openingComment); 29976 this._closingComment = closingComment; 29977 return lazyTree; 29978 } else { 29979 var escapedText = escapeTextContentForBrowser(this._stringText); 29980 29981 if (transaction.renderToStaticMarkup) { 29982 // Normally we'd wrap this between comment nodes for the reasons stated 29983 // above, but since this is a situation where React won't take over 29984 // (static pages), we can simply return the text as it is. 29985 return escapedText; 29986 } 29987 29988 return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->'; 29989 } 29990 }, 29991 29992 /** 29993 * Updates this component by updating the text content. 29994 * 29995 * @param {ReactText} nextText The next text content 29996 * @param {ReactReconcileTransaction} transaction 29997 * @internal 29998 */ 29999 receiveComponent: function (nextText, transaction) { 30000 if (nextText !== this._currentElement) { 30001 this._currentElement = nextText; 30002 var nextStringText = '' + nextText; 30003 if (nextStringText !== this._stringText) { 30004 // TODO: Save this as pending props and use performUpdateIfNecessary 30005 // and/or updateComponent to do the actual update for consistency with 30006 // other component types? 30007 this._stringText = nextStringText; 30008 var commentNodes = this.getHostNode(); 30009 DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText); 30010 } 30011 } 30012 }, 30013 30014 getHostNode: function () { 30015 var hostNode = this._commentNodes; 30016 if (hostNode) { 30017 return hostNode; 30018 } 30019 if (!this._closingComment) { 30020 var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);
30021 var node = openingComment.nextSibling; 30022 while (true) { 30023 !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0; 30024 if (node.nodeType === 8 && node.nodeValue === ' /react-text ') { 30025 this._closingComment = node; 30026 break; 30027 } 30028 node = node.nextSibling; 30029 } 30030 } 30031 hostNode = [this._hostNode, this._closingComment]; 30032 this._commentNodes = hostNode; 30033 return hostNode; 30034 }, 30035 30036 unmountComponent: function () { 30037 this._closingComment = null; 30038 this._commentNodes = null; 30039 ReactDOMComponentTree.uncacheNode(this); 30040 } 30041}); 30042 30043module.exports = ReactDOMTextComponent; 30044/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 30045 30046/***/ }), 30047/* 502 */ 30048/***/ (function(module, exports, __webpack_require__) { 30049 30050"use strict"; 30051/** 30052 * Copyright (c) 2013-present, Facebook, Inc. 30053 * 30054 * This source code is licensed under the MIT license found in the 30055 * LICENSE file in the root directory of this source tree. 30056 * 30057 */ 30058 30059 30060 30061var _assign = __webpack_require__(10); 30062 30063var ReactUpdates = __webpack_require__(40); 30064var Transaction = __webpack_require__(100); 30065 30066var emptyFunction = __webpack_require__(38); 30067 30068var RESET_BATCHED_UPDATES = { 30069 initialize: emptyFunction, 30070 close: function () { 30071 ReactDefaultBatchingStrategy.isBatchingUpdates = false; 30072 } 30073}; 30074 30075var FLUSH_BATCHED_UPDATES = { 30076 initialize: emptyFunction, 30077 close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) 30078}; 30079 30080var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; 30081 30082function ReactDefaultBatchingStrategyTransaction() { 30083 this.reinitializeTransaction(); 30084} 30085 30086_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, { 30087 getTransactionWrappers: function () { 30088 return TRANSACTION_WRAPPERS; 30089 } 30090}); 30091 30092var transaction = new ReactDefaultBatchingStrategyTransaction(); 30093 30094var ReactDefaultBatchingStrategy = { 30095 isBatchingUpdates: false, 30096 30097 /** 30098 * Call the provided function in a context within which calls to `setState` 30099 * and friends are batched such that components aren't updated unnecessarily. 30100 */ 30101 batchedUpdates: function (callback, a, b, c, d, e) { 30102 var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; 30103 30104 ReactDefaultBatchingStrategy.isBatchingUpdates = true; 30105 30106 // The code is written this way to avoid extra allocations 30107 if (alreadyBatchingUpdates) { 30108 return callback(a, b, c, d, e); 30109 } else { 30110 return transaction.perform(callback, null, a, b, c, d, e); 30111 } 30112 } 30113}; 30114 30115module.exports = ReactDefaultBatchingStrategy; 30116 30117/***/ }), 30118/* 503 */ 30119/***/ (function(module, exports, __webpack_require__) { 30120 30121"use strict"; 30122/** 30123 * Copyright (c) 2013-present, Facebook, Inc. 30124 * 30125 * This source code is licensed under the MIT license found in the 30126 * LICENSE file in the root directory of this source tree. 30127 * 30128 */ 30129 30130 30131 30132var _assign = __webpack_require__(10); 30133 30134var EventListener = __webpack_require__(215); 30135var ExecutionEnvironment = __webpack_require__(16); 30136var PooledClass = __webpack_require__(60); 30137var ReactDOMComponentTree = __webpack_require__(14); 30138var ReactUpdates = __webpack_require__(40); 30139 30140var getEventTarget = __webpack_require__(139); 30141var getUnboundedScrollPosition = __webpack_require__(504); 30142 30143/** 30144 * Find the deepest React component completely containing the root of the 30145 * passed-in instance (for use when entire React trees are nested within each 30146 * other). If React trees are not nested, returns null. 30147 */ 30148function findParent(inst) { 30149 // TODO: It may be a good idea to cache this to prevent unnecessary DOM 30150 // traversal, but caching is difficult to do correctly without using a 30151 // mutation observer to listen for all DOM changes. 30152 while (inst._hostParent) { 30153 inst = inst._hostParent; 30154 } 30155 var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst); 30156 var container = rootNode.parentNode; 30157 return ReactDOMComponentTree.getClosestInstanceFromNode(container); 30158} 30159 30160// Used to store ancestor hierarchy in top level callback 30161function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) { 30162 this.topLevelType = topLevelType; 30163 this.nativeEvent = nativeEvent; 30164 this.ancestors = []; 30165}
30166_assign(TopLevelCallbackBookKeeping.prototype, { 30167 destructor: function () { 30168 this.topLevelType = null; 30169 this.nativeEvent = null; 30170 this.ancestors.length = 0; 30171 } 30172}); 30173PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler); 30174 30175function handleTopLevelImpl(bookKeeping) { 30176 var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent); 30177 var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget); 30178 30179 // Loop through the hierarchy, in case there's any nested components. 30180 // It's important that we build the array of ancestors before calling any 30181 // event handlers, because event handlers can modify the DOM, leading to 30182 // inconsistencies with ReactMount's node cache. See #1105. 30183 var ancestor = targetInst; 30184 do { 30185 bookKeeping.ancestors.push(ancestor); 30186 ancestor = ancestor && findParent(ancestor); 30187 } while (ancestor); 30188 30189 for (var i = 0; i < bookKeeping.ancestors.length; i++) { 30190 targetInst = bookKeeping.ancestors[i]; 30191 ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); 30192 } 30193} 30194 30195function scrollValueMonitor(cb) { 30196 var scrollPosition = getUnboundedScrollPosition(window); 30197 cb(scrollPosition); 30198} 30199 30200var ReactEventListener = { 30201 _enabled: true, 30202 _handleTopLevel: null, 30203 30204 WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null, 30205 30206 setHandleTopLevel: function (handleTopLevel) { 30207 ReactEventListener._handleTopLevel = handleTopLevel; 30208 }, 30209 30210 setEnabled: function (enabled) { 30211 ReactEventListener._enabled = !!enabled; 30212 }, 30213 30214 isEnabled: function () { 30215 return ReactEventListener._enabled; 30216 }, 30217 30218 /** 30219 * Traps top-level events by using event bubbling. 30220 * 30221 * @param {string} topLevelType Record from `EventConstants`. 30222 * @param {string} handlerBaseName Event name (e.g. "click"). 30223 * @param {object} element Element on which to attach listener. 30224 * @return {?object} An object with a remove function which will forcefully 30225 * remove the listener. 30226 * @internal 30227 */ 30228 trapBubbledEvent: function (topLevelType, handlerBaseName, element) { 30229 if (!element) { 30230 return null; 30231 } 30232 return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); 30233 }, 30234 30235 /** 30236 * Traps a top-level event by using event capturing. 30237 * 30238 * @param {string} topLevelType Record from `EventConstants`. 30239 * @param {string} handlerBaseName Event name (e.g. "click"). 30240 * @param {object} element Element on which to attach listener. 30241 * @return {?object} An object with a remove function which will forcefully 30242 * remove the listener. 30243 * @internal 30244 */ 30245 trapCapturedEvent: function (topLevelType, handlerBaseName, element) { 30246 if (!element) { 30247 return null; 30248 } 30249 return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); 30250 }, 30251 30252 monitorScrollValue: function (refresh) { 30253 var callback = scrollValueMonitor.bind(null, refresh); 30254 EventListener.listen(window, 'scroll', callback); 30255 }, 30256 30257 dispatchEvent: function (topLevelType, nativeEvent) { 30258 if (!ReactEventListener._enabled) { 30259 return; 30260 } 30261 30262 var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent); 30263 try { 30264 // Event queue being processed in the same cycle allows 30265 // `preventDefault`. 30266 ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping); 30267 } finally { 30268 TopLevelCallbackBookKeeping.release(bookKeeping); 30269 } 30270 } 30271}; 30272 30273module.exports = ReactEventListener; 30274 30275/***/ }), 30276/* 504 */ 30277/***/ (function(module, exports, __webpack_require__) { 30278 30279"use strict"; 30280/** 30281 * Copyright (c) 2013-present, Facebook, Inc. 30282 * 30283 * This source code is licensed under the MIT license found in the 30284 * LICENSE file in the root directory of this source tree. 30285 * 30286 * @typechecks 30287 */ 30288 30289 30290 30291/** 30292 * Gets the scroll position of the supplied element or window. 30293 * 30294 * The return values are unbounded, unlike `getScrollPosition`. This means they 30295 * may be negative or exceed the element boundaries (which is possible using 30296 * inertial scrolling). 30297 * 30298 * @param {DOMWindow|DOMElement} scrollable 30299 * @return {object} Map with `x` and `y` keys. 30300 */ 30301
30302function getUnboundedScrollPosition(scrollable) { 30303 if (scrollable.Window && scrollable instanceof scrollable.Window) { 30304 return { 30305 x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft, 30306 y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop 30307 }; 30308 } 30309 return { 30310 x: scrollable.scrollLeft, 30311 y: scrollable.scrollTop 30312 }; 30313} 30314 30315module.exports = getUnboundedScrollPosition; 30316 30317/***/ }), 30318/* 505 */ 30319/***/ (function(module, exports, __webpack_require__) { 30320 30321"use strict"; 30322/** 30323 * Copyright (c) 2013-present, Facebook, Inc. 30324 * 30325 * This source code is licensed under the MIT license found in the 30326 * LICENSE file in the root directory of this source tree. 30327 * 30328 */ 30329 30330 30331 30332var DOMProperty = __webpack_require__(47); 30333var EventPluginHub = __webpack_require__(77); 30334var EventPluginUtils = __webpack_require__(137); 30335var ReactComponentEnvironment = __webpack_require__(146); 30336var ReactEmptyComponent = __webpack_require__(212); 30337var ReactBrowserEventEmitter = __webpack_require__(104); 30338var ReactHostComponent = __webpack_require__(213); 30339var ReactUpdates = __webpack_require__(40); 30340 30341var ReactInjection = { 30342 Component: ReactComponentEnvironment.injection, 30343 DOMProperty: DOMProperty.injection, 30344 EmptyComponent: ReactEmptyComponent.injection, 30345 EventPluginHub: EventPluginHub.injection, 30346 EventPluginUtils: EventPluginUtils.injection, 30347 EventEmitter: ReactBrowserEventEmitter.injection, 30348 HostComponent: ReactHostComponent.injection, 30349 Updates: ReactUpdates.injection 30350}; 30351 30352module.exports = ReactInjection; 30353 30354/***/ }), 30355/* 506 */ 30356/***/ (function(module, exports, __webpack_require__) { 30357 30358"use strict"; 30359/* WEBPACK VAR INJECTION */(function(process) {/** 30360 * Copyright (c) 2013-present, Facebook, Inc. 30361 * 30362 * This source code is licensed under the MIT license found in the 30363 * LICENSE file in the root directory of this source tree. 30364 * 30365 */ 30366 30367 30368 30369var _assign = __webpack_require__(10); 30370 30371var CallbackQueue = __webpack_require__(199); 30372var PooledClass = __webpack_require__(60); 30373var ReactBrowserEventEmitter = __webpack_require__(104); 30374var ReactInputSelection = __webpack_require__(216); 30375var ReactInstrumentation = __webpack_require__(28); 30376var Transaction = __webpack_require__(100); 30377var ReactUpdateQueue = __webpack_require__(150); 30378 30379/** 30380 * Ensures that, when possible, the selection range (currently selected text 30381 * input) is not disturbed by performing the transaction. 30382 */ 30383var SELECTION_RESTORATION = { 30384 /** 30385 * @return {Selection} Selection information. 30386 */ 30387 initialize: ReactInputSelection.getSelectionInformation, 30388 /** 30389 * @param {Selection} sel Selection information returned from `initialize`. 30390 */ 30391 close: ReactInputSelection.restoreSelection 30392}; 30393 30394/** 30395 * Suppresses events (blur/focus) that could be inadvertently dispatched due to 30396 * high level DOM manipulations (like temporarily removing a text input from the 30397 * DOM). 30398 */ 30399var EVENT_SUPPRESSION = { 30400 /** 30401 * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before 30402 * the reconciliation. 30403 */ 30404 initialize: function () { 30405 var currentlyEnabled = ReactBrowserEventEmitter.isEnabled(); 30406 ReactBrowserEventEmitter.setEnabled(false); 30407 return currentlyEnabled; 30408 }, 30409 30410 /** 30411 * @param {boolean} previouslyEnabled Enabled status of 30412 * `ReactBrowserEventEmitter` before the reconciliation occurred. `close` 30413 * restores the previous value. 30414 */ 30415 close: function (previouslyEnabled) { 30416 ReactBrowserEventEmitter.setEnabled(previouslyEnabled); 30417 } 30418}; 30419 30420/** 30421 * Provides a queue for collecting `componentDidMount` and 30422 * `componentDidUpdate` callbacks during the transaction. 30423 */ 30424var ON_DOM_READY_QUEUEING = { 30425 /** 30426 * Initializes the internal `onDOMReady` queue. 30427 */ 30428 initialize: function () { 30429 this.reactMountReady.reset(); 30430 }, 30431 30432 /** 30433 * After DOM is flushed, invoke all registered `onDOMReady` callbacks. 30434 */ 30435 close: function () { 30436 this.reactMountReady.notifyAll(); 30437 } 30438}; 30439 30440/** 30441 * Executed within the scope of the `Transaction` instance. Consider these as 30442 * being member methods, but with an implied ordering while being isolated from 30443 * each other. 30444 */ 30445var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING]; 30446 30447if (process.env.NODE_ENV !== 'production') { 30448 TRANSACTION_WRAPPERS.push({ 30449 initialize: ReactInstrumentation.debugTool.onBeginFlush, 30450 close: ReactInstrumentation.debugTool.onEndFlush 30451 }); 30452} 30453 30454/** 30455 * Currently: 30456 * - The order that these are listed in the transaction is critical: 30457 * - Suppresses events. 30458 * - Restores selection range. 30459 * 30460 * Future: 30461 * - Restore document/overflow scroll positions that were unintentionally 30462 * modified via DOM insertions above the top viewport boundary. 30463 * - Implement/integrate with customized constraint based layout system and keep 30464 * track of which dimensions must be remeasured. 30465 * 30466 * @class ReactReconcileTransaction 30467 */ 30468function ReactReconcileTransaction(useCreateElement) { 30469 this.reinitializeTransaction(); 30470 // Only server-side rendering really needs this option (see 30471 // `ReactServerRendering`), but server-side uses 30472 // `ReactServerRenderingTransaction` instead. This option is here so that it's 30473 // accessible and defaults to false when `ReactDOMComponent` and 30474 // `ReactDOMTextComponent` checks it in `mountComponent`.` 30475 this.renderToStaticMarkup = false;
30476 this.reactMountReady = CallbackQueue.getPooled(null); 30477 this.useCreateElement = useCreateElement; 30478} 30479 30480var Mixin = { 30481 /** 30482 * @see Transaction 30483 * @abstract 30484 * @final 30485 * @return {array<object>} List of operation wrap procedures. 30486 * TODO: convert to array<TransactionWrapper> 30487 */ 30488 getTransactionWrappers: function () { 30489 return TRANSACTION_WRAPPERS; 30490 }, 30491 30492 /** 30493 * @return {object} The queue to collect `onDOMReady` callbacks with. 30494 */ 30495 getReactMountReady: function () { 30496 return this.reactMountReady; 30497 }, 30498 30499 /** 30500 * @return {object} The queue to collect React async events. 30501 */ 30502 getUpdateQueue: function () { 30503 return ReactUpdateQueue; 30504 }, 30505 30506 /** 30507 * Save current transaction state -- if the return value from this method is 30508 * passed to `rollback`, the transaction will be reset to that state. 30509 */ 30510 checkpoint: function () { 30511 // reactMountReady is the our only stateful wrapper 30512 return this.reactMountReady.checkpoint(); 30513 }, 30514 30515 rollback: function (checkpoint) { 30516 this.reactMountReady.rollback(checkpoint); 30517 }, 30518 30519 /** 30520 * `PooledClass` looks for this, and will invoke this before allowing this 30521 * instance to be reused. 30522 */ 30523 destructor: function () { 30524 CallbackQueue.release(this.reactMountReady); 30525 this.reactMountReady = null; 30526 } 30527}; 30528 30529_assign(ReactReconcileTransaction.prototype, Transaction, Mixin); 30530 30531PooledClass.addPoolingTo(ReactReconcileTransaction); 30532 30533module.exports = ReactReconcileTransaction; 30534/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 30535 30536/***/ }), 30537/* 507 */ 30538/***/ (function(module, exports, __webpack_require__) { 30539 30540"use strict"; 30541/** 30542 * Copyright (c) 2013-present, Facebook, Inc. 30543 * 30544 * This source code is licensed under the MIT license found in the 30545 * LICENSE file in the root directory of this source tree. 30546 * 30547 */ 30548 30549 30550 30551var ExecutionEnvironment = __webpack_require__(16); 30552 30553var getNodeForCharacterOffset = __webpack_require__(508); 30554var getTextContentAccessor = __webpack_require__(198); 30555 30556/** 30557 * While `isCollapsed` is available on the Selection object and `collapsed` 30558 * is available on the Range object, IE11 sometimes gets them wrong. 30559 * If the anchor/focus nodes and offsets are the same, the range is collapsed. 30560 */ 30561function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) { 30562 return anchorNode === focusNode && anchorOffset === focusOffset; 30563} 30564 30565/** 30566 * Get the appropriate anchor and focus node/offset pairs for IE. 30567 * 30568 * The catch here is that IE's selection API doesn't provide information 30569 * about whether the selection is forward or backward, so we have to 30570 * behave as though it's always forward. 30571 * 30572 * IE text differs from modern selection in that it behaves as though 30573 * block elements end with a new line. This means character offsets will 30574 * differ between the two APIs. 30575 * 30576 * @param {DOMElement} node 30577 * @return {object} 30578 */ 30579function getIEOffsets(node) { 30580 var selection = document.selection; 30581 var selectedRange = selection.createRange(); 30582 var selectedLength = selectedRange.text.length; 30583 30584 // Duplicate selection so we can move range without breaking user selection. 30585 var fromStart = selectedRange.duplicate(); 30586 fromStart.moveToElementText(node); 30587 fromStart.setEndPoint('EndToStart', selectedRange); 30588 30589 var startOffset = fromStart.text.length; 30590 var endOffset = startOffset + selectedLength; 30591 30592 return { 30593 start: startOffset, 30594 end: endOffset 30595 }; 30596} 30597 30598/** 30599 * @param {DOMElement} node 30600 * @return {?object} 30601 */ 30602function getModernOffsets(node) { 30603 var selection = window.getSelection && window.getSelection(); 30604 30605 if (!selection || selection.rangeCount === 0) { 30606 return null; 30607 } 30608 30609 var anchorNode = selection.anchorNode; 30610 var anchorOffset = selection.anchorOffset; 30611 var focusNode = selection.focusNode; 30612 var focusOffset = selection.focusOffset; 30613 30614 var currentRange = selection.getRangeAt(0); 30615 30616 // In Firefox, range.startContainer and range.endContainer can be "anonymous 30617 // divs", e.g. the up/down buttons on an <input type="number">. Anonymous 30618 // divs do not seem to expose properties, triggering a "Permission denied 30619 // error" if any of its properties are accessed. The only seemingly possible 30620 // way to avoid erroring is to access a property that typically works for 30621 // non-anonymous divs and catch any error that may otherwise arise. See 30622 // https://bugzilla.mozilla.org/show_bug.cgi?id=208427 30623 try { 30624 /* eslint-disable no-unused-expressions */ 30625 currentRange.startContainer.nodeType; 30626 currentRange.endContainer.nodeType; 30627 /* eslint-enable no-unused-expressions */ 30628 } catch (e) { 30629 return null; 30630 } 30631 30632 // If the node and offset values are the same, the selection is collapsed. 30633 // `Selection.isCollapsed` is available natively, but IE sometimes gets 30634 // this value wrong. 30635 var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset); 30636 30637 var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length; 30638 30639 var tempRange = currentRange.cloneRange(); 30640 tempRange.selectNodeContents(node); 30641 tempRange.setEnd(currentRange.startContainer, currentRange.startOffset); 30642 30643 var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset); 30644 30645 var start = isTempRangeCollapsed ? 0 : tempRange.toString().length; 30646 var end = start + rangeLength; 30647 30648 // Detect whether the selection is backward. 30649 var detectionRange = document.createRange(); 30650 detectionRange.setStart(anchorNode, anchorOffset); 30651 detectionRange.setEnd(focusNode, focusOffset); 30652 var isBackward = detectionRange.collapsed; 30653 30654 return { 30655 start: isBackward ? end : start, 30656 end: isBackward ? start : end 30657 }; 30658} 30659 30660/** 30661 * @param {DOMElement|DOMTextNode} node 30662 * @param {object} offsets 30663 */ 30664function setIEOffsets(node, offsets) { 30665 var range = document.selection.createRange().duplicate(); 30666 var start, end; 30667 30668 if (offsets.end === undefined) { 30669 start = offsets.start; 30670 end = start; 30671 } else if (offsets.start > offsets.end) { 30672 start = offsets.end; 30673 end = offsets.start; 30674 } else { 30675 start = offsets.start; 30676 end = offsets.end; 30677 } 30678 30679 range.moveToElementText(node); 30680 range.moveStart('character', start); 30681 range.setEndPoint('EndToStart', range); 30682 range.moveEnd('character', end - start); 30683 range.select(); 30684} 30685 30686/** 30687 * In modern non-IE browsers, we can support both forward and backward 30688 * selections. 30689 *
30690 * Note: IE10+ supports the Selection object, but it does not support 30691 * the `extend` method, which means that even in modern IE, it's not possible 30692 * to programmatically create a backward selection. Thus, for all IE 30693 * versions, we use the old IE API to create our selections. 30694 * 30695 * @param {DOMElement|DOMTextNode} node 30696 * @param {object} offsets 30697 */ 30698function setModernOffsets(node, offsets) { 30699 if (!window.getSelection) { 30700 return; 30701 } 30702 30703 var selection = window.getSelection(); 30704 var length = node[getTextContentAccessor()].length; 30705 var start = Math.min(offsets.start, length); 30706 var end = offsets.end === undefined ? start : Math.min(offsets.end, length); 30707 30708 // IE 11 uses modern selection, but doesn't support the extend method. 30709 // Flip backward selections, so we can set with a single range. 30710 if (!selection.extend && start > end) { 30711 var temp = end; 30712 end = start; 30713 start = temp; 30714 } 30715 30716 var startMarker = getNodeForCharacterOffset(node, start); 30717 var endMarker = getNodeForCharacterOffset(node, end); 30718 30719 if (startMarker && endMarker) { 30720 var range = document.createRange(); 30721 range.setStart(startMarker.node, startMarker.offset); 30722 selection.removeAllRanges(); 30723 30724 if (start > end) { 30725 selection.addRange(range); 30726 selection.extend(endMarker.node, endMarker.offset); 30727 } else { 30728 range.setEnd(endMarker.node, endMarker.offset); 30729 selection.addRange(range); 30730 } 30731 } 30732} 30733 30734var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window); 30735 30736var ReactDOMSelection = { 30737 /** 30738 * @param {DOMElement} node 30739 */ 30740 getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets, 30741 30742 /** 30743 * @param {DOMElement|DOMTextNode} node 30744 * @param {object} offsets 30745 */ 30746 setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets 30747}; 30748 30749module.exports = ReactDOMSelection; 30750 30751/***/ }), 30752/* 508 */ 30753/***/ (function(module, exports, __webpack_require__) { 30754 30755"use strict"; 30756/** 30757 * Copyright (c) 2013-present, Facebook, Inc. 30758 * 30759 * This source code is licensed under the MIT license found in the 30760 * LICENSE file in the root directory of this source tree. 30761 * 30762 */ 30763 30764 30765 30766/** 30767 * Given any node return the first leaf node without children. 30768 * 30769 * @param {DOMElement|DOMTextNode} node 30770 * @return {DOMElement|DOMTextNode} 30771 */ 30772 30773function getLeafNode(node) { 30774 while (node && node.firstChild) { 30775 node = node.firstChild; 30776 } 30777 return node; 30778} 30779 30780/** 30781 * Get the next sibling within a container. This will walk up the 30782 * DOM if a node's siblings have been exhausted. 30783 * 30784 * @param {DOMElement|DOMTextNode} node 30785 * @return {?DOMElement|DOMTextNode} 30786 */ 30787function getSiblingNode(node) { 30788 while (node) { 30789 if (node.nextSibling) { 30790 return node.nextSibling; 30791 } 30792 node = node.parentNode; 30793 } 30794} 30795 30796/** 30797 * Get object describing the nodes which contain characters at offset. 30798 * 30799 * @param {DOMElement|DOMTextNode} root 30800 * @param {number} offset 30801 * @return {?object} 30802 */ 30803function getNodeForCharacterOffset(root, offset) { 30804 var node = getLeafNode(root); 30805 var nodeStart = 0; 30806 var nodeEnd = 0; 30807 30808 while (node) { 30809 if (node.nodeType === 3) { 30810 nodeEnd = nodeStart + node.textContent.length; 30811 30812 if (nodeStart <= offset && nodeEnd >= offset) { 30813 return { 30814 node: node, 30815 offset: offset - nodeStart 30816 }; 30817 } 30818 30819 nodeStart = nodeEnd; 30820 } 30821 30822 node = getLeafNode(getSiblingNode(node)); 30823 } 30824} 30825 30826module.exports = getNodeForCharacterOffset; 30827 30828/***/ }), 30829/* 509 */ 30830/***/ (function(module, exports, __webpack_require__) { 30831 30832"use strict"; 30833 30834 30835/** 30836 * Copyright (c) 2013-present, Facebook, Inc. 30837 * 30838 * This source code is licensed under the MIT license found in the 30839 * LICENSE file in the root directory of this source tree. 30840 * 30841 * 30842 */ 30843 30844var isTextNode = __webpack_require__(510); 30845 30846/*eslint-disable no-bitwise */ 30847 30848/** 30849 * Checks if a given DOM node contains or is another DOM node. 30850 */ 30851function containsNode(outerNode, innerNode) { 30852 if (!outerNode || !innerNode) { 30853 return false; 30854 } else if (outerNode === innerNode) { 30855 return true; 30856 } else if (isTextNode(outerNode)) { 30857 return false; 30858 } else if (isTextNode(innerNode)) {
30859 return containsNode(outerNode, innerNode.parentNode); 30860 } else if ('contains' in outerNode) { 30861 return outerNode.contains(innerNode); 30862 } else if (outerNode.compareDocumentPosition) { 30863 return !!(outerNode.compareDocumentPosition(innerNode) & 16); 30864 } else { 30865 return false; 30866 } 30867} 30868 30869module.exports = containsNode; 30870 30871/***/ }), 30872/* 510 */ 30873/***/ (function(module, exports, __webpack_require__) { 30874 30875"use strict"; 30876 30877 30878/** 30879 * Copyright (c) 2013-present, Facebook, Inc. 30880 * 30881 * This source code is licensed under the MIT license found in the 30882 * LICENSE file in the root directory of this source tree. 30883 * 30884 * @typechecks 30885 */ 30886 30887var isNode = __webpack_require__(511); 30888 30889/** 30890 * @param {*} object The object to check. 30891 * @return {boolean} Whether or not the object is a DOM text node. 30892 */ 30893function isTextNode(object) { 30894 return isNode(object) && object.nodeType == 3; 30895} 30896 30897module.exports = isTextNode; 30898 30899/***/ }), 30900/* 511 */ 30901/***/ (function(module, exports, __webpack_require__) { 30902 30903"use strict"; 30904 30905 30906/** 30907 * Copyright (c) 2013-present, Facebook, Inc. 30908 * 30909 * This source code is licensed under the MIT license found in the 30910 * LICENSE file in the root directory of this source tree. 30911 * 30912 * @typechecks 30913 */ 30914 30915/** 30916 * @param {*} object The object to check. 30917 * @return {boolean} Whether or not the object is a DOM node. 30918 */ 30919function isNode(object) { 30920 var doc = object ? object.ownerDocument || object : document; 30921 var defaultView = doc.defaultView || window; 30922 return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string')); 30923} 30924 30925module.exports = isNode; 30926 30927/***/ }), 30928/* 512 */ 30929/***/ (function(module, exports, __webpack_require__) { 30930 30931"use strict"; 30932/** 30933 * Copyright (c) 2013-present, Facebook, Inc. 30934 * 30935 * This source code is licensed under the MIT license found in the 30936 * LICENSE file in the root directory of this source tree. 30937 * 30938 */ 30939 30940 30941 30942var NS = { 30943 xlink: 'http://www.w3.org/1999/xlink', 30944 xml: 'http://www.w3.org/XML/1998/namespace' 30945}; 30946 30947// We use attributes for everything SVG so let's avoid some duplication and run 30948// code instead. 30949// The following are all specified in the HTML config already so we exclude here. 30950// - class (as className) 30951// - color 30952// - height 30953// - id 30954// - lang 30955// - max 30956// - media 30957// - method 30958// - min 30959// - name 30960// - style 30961// - target 30962// - type 30963// - width 30964var ATTRS = { 30965 accentHeight: 'accent-height', 30966 accumulate: 0, 30967 additive: 0, 30968 alignmentBaseline: 'alignment-baseline', 30969 allowReorder: 'allowReorder', 30970 alphabetic: 0, 30971 amplitude: 0, 30972 arabicForm: 'arabic-form', 30973 ascent: 0, 30974 attributeName: 'attributeName', 30975 attributeType: 'attributeType', 30976 autoReverse: 'autoReverse', 30977 azimuth: 0, 30978 baseFrequency: 'baseFrequency', 30979 baseProfile: 'baseProfile', 30980 baselineShift: 'baseline-shift', 30981 bbox: 0, 30982 begin: 0, 30983 bias: 0, 30984 by: 0, 30985 calcMode: 'calcMode', 30986 capHeight: 'cap-height', 30987 clip: 0, 30988 clipPath: 'clip-path', 30989 clipRule: 'clip-rule', 30990 clipPathUnits: 'clipPathUnits', 30991 colorInterpolation: 'color-interpolation', 30992 colorInterpolationFilters: 'color-interpolation-filters', 30993 colorProfile: 'color-profile', 30994 colorRendering: 'color-rendering', 30995 contentScriptType: 'contentScriptType', 30996 contentStyleType: 'contentStyleType', 30997 cursor: 0, 30998 cx: 0, 30999 cy: 0, 31000 d: 0, 31001 decelerate: 0, 31002 descent: 0, 31003 diffuseConstant: 'diffuseConstant', 31004 direction: 0, 31005 display: 0, 31006 divisor: 0, 31007 dominantBaseline: 'dominant-baseline', 31008 dur: 0, 31009 dx: 0, 31010 dy: 0, 31011 edgeMode: 'edgeMode', 31012 elevation: 0, 31013 enableBackground: 'enable-background', 31014 end: 0, 31015 exponent: 0, 31016 externalResourcesRequired: 'externalResourcesRequired', 31017 fill: 0, 31018 fillOpacity: 'fill-opacity', 31019 fillRule: 'fill-rule', 31020 filter: 0, 31021 filterRes: 'filterRes', 31022 filterUnits: 'filterUnits', 31023 floodColor: 'flood-color', 31024 floodOpacity: 'flood-opacity', 31025 focusable: 0, 31026 fontFamily: 'font-family', 31027 fontSize: 'font-size', 31028 fontSizeAdjust: 'font-size-adjust', 31029 fontStretch: 'font-stretch', 31030 fontStyle: 'font-style', 31031 fontVariant: 'font-variant', 31032 fontWeight: 'font-weight', 31033 format: 0, 31034 from: 0, 31035 fx: 0, 31036 fy: 0, 31037 g1: 0, 31038 g2: 0, 31039 glyphName: 'glyph-name', 31040 glyphOrientationHorizontal: 'glyph-orientation-horizontal', 31041 glyphOrientationVertical: 'glyph-orientation-vertical', 31042 glyphRef: 'glyphRef', 31043 gradientTransform: 'gradientTransform', 31044 gradientUnits: 'gradientUnits', 31045 hanging: 0, 31046 horizAdvX: 'horiz-adv-x', 31047 horizOriginX: 'horiz-origin-x', 31048 ideographic: 0, 31049 imageRendering: 'image-rendering', 31050 'in': 0, 31051 in2: 0, 31052 intercept: 0, 31053 k: 0, 31054 k1: 0, 31055 k2: 0, 31056 k3: 0, 31057 k4: 0, 31058 kernelMatrix: 'kernelMatrix', 31059 kernelUnitLength: 'kernelUnitLength', 31060 kerning: 0, 31061 keyPoints: 'keyPoints', 31062 keySplines: 'keySplines', 31063 keyTimes: 'keyTimes', 31064 lengthAdjust: 'lengthAdjust', 31065 letterSpacing: 'letter-spacing', 31066 lightingColor: 'lighting-color', 31067 limitingConeAngle: 'limitingConeAngle', 31068 local: 0, 31069 markerEnd: 'marker-end', 31070 markerMid: 'marker-mid', 31071 markerStart: 'marker-start', 31072 markerHeight: 'markerHeight', 31073 markerUnits: 'markerUnits', 31074 markerWidth: 'markerWidth', 31075 mask: 0, 31076 maskContentUnits: 'maskContentUnits', 31077 maskUnits: 'maskUnits', 31078 mathematical: 0, 31079 mode: 0, 31080 numOctaves: 'numOctaves', 31081 offset: 0, 31082 opacity: 0, 31083 operator: 0, 31084 order: 0, 31085 orient: 0, 31086 orientation: 0, 31087 origin: 0, 31088 overflow: 0, 31089 overlinePosition: 'overline-position', 31090 overlineThickness: 'overline-thickness', 31091 paintOrder: 'paint-order', 31092 panose1: 'panose-1', 31093 pathLength: 'pathLength', 31094 patternContentUnits: 'patternContentUnits', 31095 patternTransform: 'patternTransform', 31096 patternUnits: 'patternUnits', 31097 pointerEvents: 'pointer-events', 31098 points: 0, 31099 pointsAtX: 'pointsAtX', 31100 pointsAtY: 'pointsAtY', 31101 pointsAtZ: 'pointsAtZ', 31102 preserveAlpha: 'preserveAlpha', 31103 preserveAspectRatio: 'preserveAspectRatio', 31104 primitiveUnits: 'primitiveUnits', 31105 r: 0, 31106 radius: 0, 31107 refX: 'refX', 31108 refY: 'refY', 31109 renderingIntent: 'rendering-intent', 31110 repeatCount: 'repeatCount', 31111 repeatDur: 'repeatDur', 31112 requiredExtensions: 'requiredExtensions', 31113 requiredFeatures: 'requiredFeatures', 31114 restart: 0, 31115 result: 0, 31116 rotate: 0, 31117 rx: 0, 31118 ry: 0, 31119 scale: 0, 31120 seed: 0, 31121 shapeRendering: 'shape-rendering', 31122 slope: 0, 31123 spacing: 0, 31124 specularConstant: 'specularConstant', 31125 specularExponent: 'specularExponent', 31126 speed: 0, 31127 spreadMethod: 'spreadMethod', 31128 startOffset: 'startOffset', 31129 stdDeviation: 'stdDeviation', 31130 stemh: 0, 31131 stemv: 0, 31132 stitchTiles: 'stitchTiles', 31133 stopColor: 'stop-color', 31134 stopOpacity: 'stop-opacity', 31135 strikethroughPosition: 'strikethrough-position', 31136 strikethroughThickness: 'strikethrough-thickness', 31137 string: 0, 31138 stroke: 0, 31139 strokeDasharray: 'stroke-dasharray', 31140 strokeDashoffset: 'stroke-dashoffset', 31141 strokeLinecap: 'stroke-linecap', 31142 strokeLinejoin: 'stroke-linejoin', 31143 strokeMiterlimit: 'stroke-miterlimit', 31144 strokeOpacity: 'stroke-opacity', 31145 strokeWidth: 'stroke-width', 31146 surfaceScale: 'surfaceScale', 31147 systemLanguage: 'systemLanguage', 31148 tableValues: 'tableValues', 31149 targetX: 'targetX', 31150 targetY: 'targetY', 31151 textAnchor: 'text-anchor', 31152 textDecoration: 'text-decoration', 31153 textRendering: 'text-rendering', 31154 textLength: 'textLength', 31155 to: 0, 31156 transform: 0, 31157 u1: 0, 31158 u2: 0, 31159 underlinePosition: 'underline-position', 31160 underlineThickness: 'underline-thickness', 31161 unicode: 0,
31162 unicodeBidi: 'unicode-bidi', 31163 unicodeRange: 'unicode-range', 31164 unitsPerEm: 'units-per-em', 31165 vAlphabetic: 'v-alphabetic', 31166 vHanging: 'v-hanging', 31167 vIdeographic: 'v-ideographic', 31168 vMathematical: 'v-mathematical', 31169 values: 0, 31170 vectorEffect: 'vector-effect', 31171 version: 0, 31172 vertAdvY: 'vert-adv-y', 31173 vertOriginX: 'vert-origin-x', 31174 vertOriginY: 'vert-origin-y', 31175 viewBox: 'viewBox', 31176 viewTarget: 'viewTarget', 31177 visibility: 0, 31178 widths: 0, 31179 wordSpacing: 'word-spacing', 31180 writingMode: 'writing-mode', 31181 x: 0, 31182 xHeight: 'x-height', 31183 x1: 0, 31184 x2: 0, 31185 xChannelSelector: 'xChannelSelector', 31186 xlinkActuate: 'xlink:actuate', 31187 xlinkArcrole: 'xlink:arcrole', 31188 xlinkHref: 'xlink:href', 31189 xlinkRole: 'xlink:role', 31190 xlinkShow: 'xlink:show', 31191 xlinkTitle: 'xlink:title', 31192 xlinkType: 'xlink:type', 31193 xmlBase: 'xml:base', 31194 xmlns: 0, 31195 xmlnsXlink: 'xmlns:xlink', 31196 xmlLang: 'xml:lang', 31197 xmlSpace: 'xml:space', 31198 y: 0, 31199 y1: 0, 31200 y2: 0, 31201 yChannelSelector: 'yChannelSelector', 31202 z: 0, 31203 zoomAndPan: 'zoomAndPan' 31204}; 31205 31206var SVGDOMPropertyConfig = { 31207 Properties: {}, 31208 DOMAttributeNamespaces: { 31209 xlinkActuate: NS.xlink, 31210 xlinkArcrole: NS.xlink, 31211 xlinkHref: NS.xlink, 31212 xlinkRole: NS.xlink, 31213 xlinkShow: NS.xlink, 31214 xlinkTitle: NS.xlink, 31215 xlinkType: NS.xlink, 31216 xmlBase: NS.xml, 31217 xmlLang: NS.xml, 31218 xmlSpace: NS.xml 31219 }, 31220 DOMAttributeNames: {} 31221}; 31222 31223Object.keys(ATTRS).forEach(function (key) { 31224 SVGDOMPropertyConfig.Properties[key] = 0; 31225 if (ATTRS[key]) { 31226 SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key]; 31227 } 31228}); 31229 31230module.exports = SVGDOMPropertyConfig; 31231 31232/***/ }), 31233/* 513 */ 31234/***/ (function(module, exports, __webpack_require__) { 31235 31236"use strict"; 31237/** 31238 * Copyright (c) 2013-present, Facebook, Inc. 31239 * 31240 * This source code is licensed under the MIT license found in the 31241 * LICENSE file in the root directory of this source tree. 31242 * 31243 */ 31244 31245 31246 31247var EventPropagators = __webpack_require__(76); 31248var ExecutionEnvironment = __webpack_require__(16); 31249var ReactDOMComponentTree = __webpack_require__(14); 31250var ReactInputSelection = __webpack_require__(216); 31251var SyntheticEvent = __webpack_require__(43); 31252 31253var getActiveElement = __webpack_require__(217); 31254var isTextInputElement = __webpack_require__(202); 31255var shallowEqual = __webpack_require__(147); 31256 31257var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11; 31258 31259var eventTypes = { 31260 select: { 31261 phasedRegistrationNames: { 31262 bubbled: 'onSelect', 31263 captured: 'onSelectCapture' 31264 }, 31265 dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange'] 31266 } 31267}; 31268 31269var activeElement = null; 31270var activeElementInst = null; 31271var lastSelection = null; 31272var mouseDown = false; 31273 31274// Track whether a listener exists for this plugin. If none exist, we do 31275// not extract events. See #3639. 31276var hasListener = false;
31277 31278/** 31279 * Get an object which is a unique representation of the current selection. 31280 * 31281 * The return value will not be consistent across nodes or browsers, but 31282 * two identical selections on the same node will return identical objects. 31283 * 31284 * @param {DOMElement} node 31285 * @return {object} 31286 */ 31287function getSelection(node) { 31288 if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) { 31289 return { 31290 start: node.selectionStart, 31291 end: node.selectionEnd 31292 }; 31293 } else if (window.getSelection) { 31294 var selection = window.getSelection(); 31295 return { 31296 anchorNode: selection.anchorNode, 31297 anchorOffset: selection.anchorOffset, 31298 focusNode: selection.focusNode, 31299 focusOffset: selection.focusOffset 31300 }; 31301 } else if (document.selection) { 31302 var range = document.selection.createRange(); 31303 return { 31304 parentElement: range.parentElement(), 31305 text: range.text, 31306 top: range.boundingTop, 31307 left: range.boundingLeft 31308 }; 31309 } 31310} 31311 31312/** 31313 * Poll selection to see whether it's changed. 31314 * 31315 * @param {object} nativeEvent 31316 * @return {?SyntheticEvent} 31317 */ 31318function constructSelectEvent(nativeEvent, nativeEventTarget) { 31319 // Ensure we have the right element, and that the user is not dragging a 31320 // selection (this matches native `select` event behavior). In HTML5, select 31321 // fires only on input and textarea thus if there's no focused element we 31322 // won't dispatch. 31323 if (mouseDown || activeElement == null || activeElement !== getActiveElement()) { 31324 return null; 31325 } 31326 31327 // Only fire when selection has actually changed. 31328 var currentSelection = getSelection(activeElement); 31329 if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) { 31330 lastSelection = currentSelection; 31331 31332 var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget); 31333 31334 syntheticEvent.type = 'select'; 31335 syntheticEvent.target = activeElement; 31336 31337 EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent); 31338 31339 return syntheticEvent; 31340 } 31341 31342 return null; 31343} 31344 31345/** 31346 * This plugin creates an `onSelect` event that normalizes select events 31347 * across form elements. 31348 * 31349 * Supported elements are: 31350 * - input (see `isTextInputElement`) 31351 * - textarea 31352 * - contentEditable 31353 * 31354 * This differs from native browser implementations in the following ways: 31355 * - Fires on contentEditable fields as well as inputs. 31356 * - Fires for collapsed selection. 31357 * - Fires after user input. 31358 */ 31359var SelectEventPlugin = { 31360 eventTypes: eventTypes, 31361 31362 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 31363 if (!hasListener) { 31364 return null; 31365 } 31366 31367 var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; 31368 31369 switch (topLevelType) { 31370 // Track the input node that has focus. 31371 case 'topFocus': 31372 if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') { 31373 activeElement = targetNode; 31374 activeElementInst = targetInst; 31375 lastSelection = null; 31376 } 31377 break; 31378 case 'topBlur': 31379 activeElement = null; 31380 activeElementInst = null; 31381 lastSelection = null; 31382 break; 31383 // Don't fire the event while the user is dragging. This matches the 31384 // semantics of the native select event. 31385 case 'topMouseDown': 31386 mouseDown = true; 31387 break; 31388 case 'topContextMenu': 31389 case 'topMouseUp': 31390 mouseDown = false; 31391 return constructSelectEvent(nativeEvent, nativeEventTarget); 31392 // Chrome and IE fire non-standard event when selection is changed (and 31393 // sometimes when it hasn't). IE's event fires out of order with respect 31394 // to key and input events on deletion, so we discard it. 31395 // 31396 // Firefox doesn't support selectionchange, so check selection status 31397 // after each key entry. The selection changes after keydown and before 31398 // keyup, but we check on keydown as well in the case of holding down a 31399 // key, when multiple keydown events are fired but only one keyup is. 31400 // This is also our approach for IE handling, for the reason above. 31401 case 'topSelectionChange': 31402 if (skipSelectionChangeEvent) { 31403 break; 31404 } 31405 // falls through 31406 case 'topKeyDown': 31407 case 'topKeyUp': 31408 return constructSelectEvent(nativeEvent, nativeEventTarget); 31409 } 31410 31411 return null; 31412 }, 31413 31414 didPutListener: function (inst, registrationName, listener) { 31415 if (registrationName === 'onSelect') { 31416 hasListener = true; 31417 } 31418 } 31419}; 31420 31421module.exports = SelectEventPlugin; 31422 31423/***/ }), 31424/* 514 */ 31425/***/ (function(module, exports, __webpack_require__) { 31426 31427"use strict"; 31428/* WEBPACK VAR INJECTION */(function(process) {/** 31429 * Copyright (c) 2013-present, Facebook, Inc. 31430 * 31431 * This source code is licensed under the MIT license found in the 31432 * LICENSE file in the root directory of this source tree. 31433 * 31434 * 31435 */ 31436 31437 31438 31439var _prodInvariant = __webpack_require__(8); 31440 31441var EventListener = __webpack_require__(215); 31442var EventPropagators = __webpack_require__(76); 31443var ReactDOMComponentTree = __webpack_require__(14); 31444var SyntheticAnimationEvent = __webpack_require__(515); 31445var SyntheticClipboardEvent = __webpack_require__(516); 31446var SyntheticEvent = __webpack_require__(43); 31447var SyntheticFocusEvent = __webpack_require__(517); 31448var SyntheticKeyboardEvent = __webpack_require__(518); 31449var SyntheticMouseEvent = __webpack_require__(101); 31450var SyntheticDragEvent = __webpack_require__(520); 31451var SyntheticTouchEvent = __webpack_require__(521); 31452var SyntheticTransitionEvent = __webpack_require__(522); 31453var SyntheticUIEvent = __webpack_require__(78); 31454var SyntheticWheelEvent = __webpack_require__(523); 31455 31456var emptyFunction = __webpack_require__(38);
31457var getEventCharCode = __webpack_require__(152); 31458var invariant = __webpack_require__(2); 31459 31460/** 31461 * Turns 31462 * ['abort', ...] 31463 * into 31464 * eventTypes = { 31465 * 'abort': { 31466 * phasedRegistrationNames: { 31467 * bubbled: 'onAbort', 31468 * captured: 'onAbortCapture', 31469 * }, 31470 * dependencies: ['topAbort'], 31471 * }, 31472 * ... 31473 * }; 31474 * topLevelEventsToDispatchConfig = { 31475 * 'topAbort': { sameConfig } 31476 * }; 31477 */ 31478var eventTypes = {}; 31479var topLevelEventsToDispatchConfig = {}; 31480['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) { 31481 var capitalizedEvent = event[0].toUpperCase() + event.slice(1); 31482 var onEvent = 'on' + capitalizedEvent; 31483 var topEvent = 'top' + capitalizedEvent; 31484 31485 var type = { 31486 phasedRegistrationNames: { 31487 bubbled: onEvent, 31488 captured: onEvent + 'Capture' 31489 }, 31490 dependencies: [topEvent] 31491 }; 31492 eventTypes[event] = type; 31493 topLevelEventsToDispatchConfig[topEvent] = type; 31494}); 31495 31496var onClickListeners = {}; 31497 31498function getDictionaryKey(inst) { 31499 // Prevents V8 performance issue: 31500 // https://github.com/facebook/react/pull/7232 31501 return '.' + inst._rootNodeID; 31502} 31503 31504function isInteractive(tag) { 31505 return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; 31506} 31507 31508var SimpleEventPlugin = { 31509 eventTypes: eventTypes, 31510 31511 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { 31512 var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType]; 31513 if (!dispatchConfig) { 31514 return null; 31515 } 31516 var EventConstructor; 31517 switch (topLevelType) { 31518 case 'topAbort': 31519 case 'topCanPlay': 31520 case 'topCanPlayThrough': 31521 case 'topDurationChange': 31522 case 'topEmptied': 31523 case 'topEncrypted': 31524 case 'topEnded': 31525 case 'topError': 31526 case 'topInput': 31527 case 'topInvalid': 31528 case 'topLoad': 31529 case 'topLoadedData': 31530 case 'topLoadedMetadata': 31531 case 'topLoadStart': 31532 case 'topPause': 31533 case 'topPlay': 31534 case 'topPlaying': 31535 case 'topProgress': 31536 case 'topRateChange': 31537 case 'topReset': 31538 case 'topSeeked': 31539 case 'topSeeking': 31540 case 'topStalled': 31541 case 'topSubmit': 31542 case 'topSuspend': 31543 case 'topTimeUpdate': 31544 case 'topVolumeChange': 31545 case 'topWaiting': 31546 // HTML Events 31547 // @see http://www.w3.org/TR/html5/index.html#events-0 31548 EventConstructor = SyntheticEvent; 31549 break; 31550 case 'topKeyPress': 31551 // Firefox creates a keypress event for function keys too. This removes 31552 // the unwanted keypress events. Enter is however both printable and 31553 // non-printable. One would expect Tab to be as well (but it isn't). 31554 if (getEventCharCode(nativeEvent) === 0) { 31555 return null; 31556 } 31557 /* falls through */ 31558 case 'topKeyDown': 31559 case 'topKeyUp': 31560 EventConstructor = SyntheticKeyboardEvent; 31561 break; 31562 case 'topBlur': 31563 case 'topFocus': 31564 EventConstructor = SyntheticFocusEvent; 31565 break; 31566 case 'topClick': 31567 // Firefox creates a click event on right mouse clicks. This removes the 31568 // unwanted click events. 31569 if (nativeEvent.button === 2) { 31570 return null; 31571 } 31572 /* falls through */ 31573 case 'topDoubleClick': 31574 case 'topMouseDown': 31575 case 'topMouseMove': 31576 case 'topMouseUp': 31577 // TODO: Disabled elements should not respond to mouse events 31578 /* falls through */ 31579 case 'topMouseOut': 31580 case 'topMouseOver': 31581 case 'topContextMenu': 31582 EventConstructor = SyntheticMouseEvent; 31583 break; 31584 case 'topDrag': 31585 case 'topDragEnd': 31586 case 'topDragEnter': 31587 case 'topDragExit': 31588 case 'topDragLeave': 31589 case 'topDragOver': 31590 case 'topDragStart': 31591 case 'topDrop': 31592 EventConstructor = SyntheticDragEvent; 31593 break; 31594 case 'topTouchCancel': 31595 case 'topTouchEnd': 31596 case 'topTouchMove': 31597 case 'topTouchStart': 31598 EventConstructor = SyntheticTouchEvent; 31599 break; 31600 case 'topAnimationEnd': 31601 case 'topAnimationIteration': 31602 case 'topAnimationStart': 31603 EventConstructor = SyntheticAnimationEvent; 31604 break; 31605 case 'topTransitionEnd': 31606 EventConstructor = SyntheticTransitionEvent; 31607 break; 31608 case 'topScroll': 31609 EventConstructor = SyntheticUIEvent; 31610 break; 31611 case 'topWheel': 31612 EventConstructor = SyntheticWheelEvent; 31613 break; 31614 case 'topCopy': 31615 case 'topCut': 31616 case 'topPaste': 31617 EventConstructor = SyntheticClipboardEvent; 31618 break; 31619 } 31620 !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;
31621 var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget); 31622 EventPropagators.accumulateTwoPhaseDispatches(event); 31623 return event; 31624 }, 31625 31626 didPutListener: function (inst, registrationName, listener) { 31627 // Mobile Safari does not fire properly bubble click events on 31628 // non-interactive elements, which means delegated click listeners do not 31629 // fire. The workaround for this bug involves attaching an empty click 31630 // listener on the target node. 31631 // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html 31632 if (registrationName === 'onClick' && !isInteractive(inst._tag)) { 31633 var key = getDictionaryKey(inst); 31634 var node = ReactDOMComponentTree.getNodeFromInstance(inst); 31635 if (!onClickListeners[key]) { 31636 onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction); 31637 } 31638 } 31639 }, 31640 31641 willDeleteListener: function (inst, registrationName) { 31642 if (registrationName === 'onClick' && !isInteractive(inst._tag)) { 31643 var key = getDictionaryKey(inst); 31644 onClickListeners[key].remove(); 31645 delete onClickListeners[key]; 31646 } 31647 } 31648}; 31649 31650module.exports = SimpleEventPlugin; 31651/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 31652 31653/***/ }), 31654/* 515 */ 31655/***/ (function(module, exports, __webpack_require__) { 31656 31657"use strict"; 31658/** 31659 * Copyright (c) 2013-present, Facebook, Inc. 31660 * 31661 * This source code is licensed under the MIT license found in the 31662 * LICENSE file in the root directory of this source tree. 31663 * 31664 */ 31665 31666 31667 31668var SyntheticEvent = __webpack_require__(43); 31669 31670/** 31671 * @interface Event 31672 * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface 31673 * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent 31674 */ 31675var AnimationEventInterface = { 31676 animationName: null, 31677 elapsedTime: null, 31678 pseudoElement: null 31679}; 31680 31681/** 31682 * @param {object} dispatchConfig Configuration used to dispatch this event. 31683 * @param {string} dispatchMarker Marker identifying the event target. 31684 * @param {object} nativeEvent Native browser event. 31685 * @extends {SyntheticEvent} 31686 */ 31687function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 31688 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 31689} 31690 31691SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface); 31692 31693module.exports = SyntheticAnimationEvent; 31694 31695/***/ }), 31696/* 516 */ 31697/***/ (function(module, exports, __webpack_require__) { 31698 31699"use strict"; 31700/** 31701 * Copyright (c) 2013-present, Facebook, Inc. 31702 * 31703 * This source code is licensed under the MIT license found in the 31704 * LICENSE file in the root directory of this source tree. 31705 * 31706 */ 31707 31708 31709 31710var SyntheticEvent = __webpack_require__(43); 31711 31712/** 31713 * @interface Event 31714 * @see http://www.w3.org/TR/clipboard-apis/ 31715 */ 31716var ClipboardEventInterface = { 31717 clipboardData: function (event) { 31718 return 'clipboardData' in event ? event.clipboardData : window.clipboardData; 31719 } 31720}; 31721 31722/** 31723 * @param {object} dispatchConfig Configuration used to dispatch this event. 31724 * @param {string} dispatchMarker Marker identifying the event target. 31725 * @param {object} nativeEvent Native browser event. 31726 * @extends {SyntheticUIEvent} 31727 */ 31728function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 31729 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 31730} 31731 31732SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); 31733 31734module.exports = SyntheticClipboardEvent; 31735 31736/***/ }), 31737/* 517 */ 31738/***/ (function(module, exports, __webpack_require__) { 31739 31740"use strict"; 31741/** 31742 * Copyright (c) 2013-present, Facebook, Inc. 31743 * 31744 * This source code is licensed under the MIT license found in the 31745 * LICENSE file in the root directory of this source tree. 31746 * 31747 */ 31748 31749 31750 31751var SyntheticUIEvent = __webpack_require__(78); 31752 31753/** 31754 * @interface FocusEvent 31755 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 31756 */ 31757var FocusEventInterface = { 31758 relatedTarget: null 31759}; 31760 31761/** 31762 * @param {object} dispatchConfig Configuration used to dispatch this event. 31763 * @param {string} dispatchMarker Marker identifying the event target. 31764 * @param {object} nativeEvent Native browser event. 31765 * @extends {SyntheticUIEvent} 31766 */
31767function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 31768 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 31769} 31770 31771SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); 31772 31773module.exports = SyntheticFocusEvent; 31774 31775/***/ }), 31776/* 518 */ 31777/***/ (function(module, exports, __webpack_require__) { 31778 31779"use strict"; 31780/** 31781 * Copyright (c) 2013-present, Facebook, Inc. 31782 * 31783 * This source code is licensed under the MIT license found in the 31784 * LICENSE file in the root directory of this source tree. 31785 * 31786 */ 31787 31788 31789 31790var SyntheticUIEvent = __webpack_require__(78); 31791 31792var getEventCharCode = __webpack_require__(152); 31793var getEventKey = __webpack_require__(519); 31794var getEventModifierState = __webpack_require__(141); 31795 31796/** 31797 * @interface KeyboardEvent 31798 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 31799 */ 31800var KeyboardEventInterface = { 31801 key: getEventKey, 31802 location: null, 31803 ctrlKey: null, 31804 shiftKey: null, 31805 altKey: null, 31806 metaKey: null, 31807 repeat: null, 31808 locale: null, 31809 getModifierState: getEventModifierState, 31810 // Legacy Interface 31811 charCode: function (event) { 31812 // `charCode` is the result of a KeyPress event and represents the value of 31813 // the actual printable character. 31814 31815 // KeyPress is deprecated, but its replacement is not yet final and n
31815ot 31816 // implemented in any major browser. Only KeyPress has charCode. 31817 if (event.type === 'keypress') { 31818 return getEventCharCode(event); 31819 } 31820 return 0; 31821 }, 31822 keyCode: function (event) { 31823 // `keyCode` is the result of a KeyDown/Up event and represents the value of 31824 // physical keyboard key. 31825 31826 // The actual meaning of the value depends on the users' keyboard layout 31827 // which cannot be detected. Assuming that it is a US keyboard layout 31828 // provides a surprisingly accurate mapping for US and European users. 31829 // Due to this, it is left to the user to implement at this time. 31830 if (event.type === 'keydown' || event.type === 'keyup') { 31831 return event.keyCode; 31832 } 31833 return 0; 31834 }, 31835 which: function (event) { 31836 // `which` is an alias for either `keyCode` or `charCode` depending on the 31837 // type of the event. 31838 if (event.type === 'keypress') { 31839 return getEventCharCode(event); 31840 } 31841 if (event.type === 'keydown' || event.type === 'keyup') { 31842 return event.keyCode; 31843 } 31844 return 0; 31845 } 31846}; 31847 31848/** 31849 * @param {object} dispatchConfig Configuration used to dispatch this event. 31850 * @param {string} dispatchMarker Marker identifying the event target. 31851 * @param {object} nativeEvent Native browser event. 31852 * @extends {SyntheticUIEvent} 31853 */ 31854function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 31855 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 31856} 31857 31858SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); 31859 31860module.exports = SyntheticKeyboardEvent; 31861 31862/***/ }), 31863/* 519 */ 31864/***/ (function(module, exports, __webpack_require__) { 31865 31866"use strict"; 31867/** 31868 * Copyright (c) 2013-present, Facebook, Inc. 31869 * 31870 * This source code is licensed under the MIT license found in the 31871 * LICENSE file in the root directory of this source tree. 31872 * 31873 */ 31874 31875 31876 31877var getEventCharCode = __webpack_require__(152); 31878 31879/** 31880 * Normalization of deprecated HTML5 `key` values 31881 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names 31882 */ 31883var normalizeKey = { 31884 Esc: 'Escape', 31885 Spacebar: ' ', 31886 Left: 'ArrowLeft', 31887 Up: 'ArrowUp', 31888 Right: 'ArrowRight', 31889 Down: 'ArrowDown', 31890 Del: 'Delete', 31891 Win: 'OS', 31892 Menu: 'ContextMenu', 31893 Apps: 'ContextMenu', 31894 Scroll: 'ScrollLock', 31895 MozPrintableKey: 'Unidentified' 31896}; 31897 31898/** 31899 * Translation from legacy `keyCode` to HTML5 `key` 31900 * Only special keys supported, all others depend on keyboard layout or browser 31901 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names 31902 */ 31903var translateToKey = { 31904 8: 'Backspace', 31905 9: 'Tab', 31906 12: 'Clear', 31907 13: 'Enter', 31908 16: 'Shift', 31909 17: 'Control', 31910 18: 'Alt', 31911 19: 'Pause', 31912 20: 'CapsLock', 31913 27: 'Escape', 31914 32: ' ', 31915 33: 'PageUp', 31916 34: 'PageDown', 31917 35: 'End', 31918 36: 'Home', 31919 37: 'ArrowLeft', 31920 38: 'ArrowUp', 31921 39: 'ArrowRight', 31922 40: 'ArrowDown', 31923 45: 'Insert', 31924 46: 'Delete', 31925 112: 'F1', 31926 113: 'F2', 31927 114: 'F3', 31928 115: 'F4', 31929 116: 'F5', 31930 117: 'F6', 31931 118: 'F7', 31932 119: 'F8', 31933 120: 'F9', 31934 121: 'F10', 31935 122: 'F11', 31936 123: 'F12', 31937 144: 'NumLock', 31938 145: 'ScrollLock', 31939 224: 'Meta' 31940}; 31941 31942/** 31943 * @param {object} nativeEvent Native browser event. 31944 * @return {string} Normalized `key` property. 31945 */ 31946function getEventKey(nativeEvent) { 31947 if (nativeEvent.key) { 31948 // Normalize inconsistent values reported by browsers due to 31949 // implementations of a working draft specification. 31950 31951 // FireFox implements `key` but returns `MozPrintableKey` for all 31952 // printable characters (normalized to `Unidentified`), ignore it. 31953 var key = normalizeKey[nativeEvent.key] || nativeEvent.key; 31954 if (key !== 'Unidentified') { 31955 return key; 31956 } 31957 } 31958 31959 // Browser does not implement `key`, polyfill as much of it as we can. 31960 if (nativeEvent.type === 'keypress') { 31961 var charCode = getEventCharCode(nativeEvent); 31962 31963 // The enter-key is technically both printable and non-printable and can 31964 // thus be captured by `keypress`, no other non-printable key should. 31965 return charCode === 13 ? 'Enter' : String.fromCharCode(charCode); 31966 } 31967 if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') { 31968 // While user keyboard layout determines the actual meaning of each 31969 // `keyCode` value, almost all function keys have a universal value. 31970 return translateToKey[nativeEvent.keyCode] || 'Unidentified'; 31971 } 31972 return ''; 31973} 31974 31975module.exports = getEventKey; 31976 31977/***/ }), 31978/* 520 */ 31979/***/ (function(module, exports, __webpack_require__) { 31980 31981"use strict"; 31982/** 31983 * Copyright (c) 2013-present, Facebook, Inc. 31984 * 31985 * This source code is licensed under the MIT license found in the 31986 * LICENSE file in the root directory of this source tree. 31987 * 31988 */ 31989 31990 31991 31992var SyntheticMouseEvent = __webpack_require__(101); 31993 31994/** 31995 * @interface DragEvent 31996 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 31997 */ 31998var DragEventInterface = { 31999 dataTransfer: null 32000}; 32001 32002/** 32003 * @param {object} dispatchConfig Configuration used to dispatch this event. 32004 * @param {string} dispatchMarker Marker identifying the event target. 32005 * @param {object} nativeEvent Native browser event. 32006 * @extends {SyntheticUIEvent} 32007 */
32008function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 32009 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 32010} 32011 32012SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); 32013 32014module.exports = SyntheticDragEvent; 32015 32016/***/ }), 32017/* 521 */ 32018/***/ (function(module, exports, __webpack_require__) { 32019 32020"use strict"; 32021/** 32022 * Copyright (c) 2013-present, Facebook, Inc. 32023 * 32024 * This source code is licensed under the MIT license found in the 32025 * LICENSE file in the root directory of this source tree. 32026 * 32027 */ 32028 32029 32030 32031var SyntheticUIEvent = __webpack_require__(78); 32032 32033var getEventModifierState = __webpack_require__(141); 32034 32035/** 32036 * @interface TouchEvent 32037 * @see http://www.w3.org/TR/touch-events/ 32038 */ 32039var TouchEventInterface = { 32040 touches: null, 32041 targetTouches: null, 32042 changedTouches: null, 32043 altKey: null, 32044 metaKey: null, 32045 ctrlKey: null, 32046 shiftKey: null, 32047 getModifierState: getEventModifierState 32048}; 32049 32050/** 32051 * @param {object} dispatchConfig Configuration used to dispatch this event. 32052 * @param {string} dispatchMarker Marker identifying the event target. 32053 * @param {object} nativeEvent Native browser event. 32054 * @extends {SyntheticUIEvent} 32055 */ 32056function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 32057 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 32058} 32059 32060SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); 32061 32062module.exports = SyntheticTouchEvent; 32063 32064/***/ }), 32065/* 522 */ 32066/***/ (function(module, exports, __webpack_require__) { 32067 32068"use strict"; 32069/** 32070 * Copyright (c) 2013-present, Facebook, Inc. 32071 * 32072 * This source code is licensed under the MIT license found in the 32073 * LICENSE file in the root directory of this source tree. 32074 * 32075 */ 32076 32077 32078 32079var SyntheticEvent = __webpack_require__(43); 32080 32081/** 32082 * @interface Event 32083 * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events- 32084 * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent 32085 */ 32086var TransitionEventInterface = { 32087 propertyName: null, 32088 elapsedTime: null, 32089 pseudoElement: null 32090}; 32091 32092/** 32093 * @param {object} dispatchConfig Configuration used to dispatch this event. 32094 * @param {string} dispatchMarker Marker identifying the event target. 32095 * @param {object} nativeEvent Native browser event. 32096 * @extends {SyntheticEvent} 32097 */ 32098function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 32099 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 32100} 32101 32102SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface); 32103 32104module.exports = SyntheticTransitionEvent; 32105 32106/***/ }), 32107/* 523 */ 32108/***/ (function(module, exports, __webpack_require__) { 32109 32110"use strict"; 32111/** 32112 * Copyright (c) 2013-present, Facebook, Inc. 32113 * 32114 * This source code is licensed under the MIT license found in the 32115 * LICENSE file in the root directory of this source tree. 32116 * 32117 */ 32118 32119 32120 32121var SyntheticMouseEvent = __webpack_require__(101); 32122 32123/** 32124 * @interface WheelEvent 32125 * @see http://www.w3.org/TR/DOM-Level-3-Events/ 32126 */ 32127var WheelEventInterface = { 32128 deltaX: function (event) { 32129 return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive). 32130 'wheelDeltaX' in event ? -event.wheelDeltaX : 0; 32131 }, 32132 deltaY: function (event) { 32133 return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive). 32134 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive). 32135 'wheelDelta' in event ? -event.wheelDelta : 0; 32136 }, 32137 deltaZ: null, 32138 32139 // Browsers without "deltaMode" is reporting in raw wheel delta where one 32140 // notch on the scroll is always +/- 120, roughly equivalent to pixels. 32141 // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or 32142 // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size. 32143 deltaMode: null 32144}; 32145 32146/** 32147 * @param {object} dispatchConfig Configuration used to dispatch this event. 32148 * @param {string} dispatchMarker Marker identifying the event target. 32149 * @param {object} nativeEvent Native browser event. 32150 * @extends {SyntheticMouseEvent} 32151 */
32152function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { 32153 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); 32154} 32155 32156SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); 32157 32158module.exports = SyntheticWheelEvent; 32159 32160/***/ }), 32161/* 524 */ 32162/***/ (function(module, exports, __webpack_require__) { 32163 32164"use strict"; 32165/* WEBPACK VAR INJECTION */(function(process) {/** 32166 * Copyright (c) 2013-present, Facebook, Inc. 32167 * 32168 * This source code is licensed under the MIT license found in the 32169 * LICENSE file in the root directory of this source tree. 32170 * 32171 */ 32172 32173 32174 32175var validateDOMNesting = __webpack_require__(151); 32176 32177var DOC_NODE_TYPE = 9; 32178 32179function ReactDOMContainerInfo(topLevelWrapper, node) { 32180 var info = { 32181 _topLevelWrapper: topLevelWrapper, 32182 _idCounter: 1, 32183 _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null, 32184 _node: node, 32185 _tag: node ? node.nodeName.toLowerCase() : null, 32186 _namespaceURI: node ? node.namespaceURI : null 32187 }; 32188 if (process.env.NODE_ENV !== 'production') { 32189 info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null; 32190 } 32191 return info; 32192} 32193 32194module.exports = ReactDOMContainerInfo; 32195/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 32196 32197/***/ }), 32198/* 525 */ 32199/***/ (function(module, exports, __webpack_require__) { 32200 32201"use strict"; 32202/** 32203 * Copyright (c) 2013-present, Facebook, Inc. 32204 * 32205 * This source code is licensed under the MIT license found in the 32206 * LICENSE file in the root directory of this source tree. 32207 * 32208 */ 32209 32210 32211 32212var ReactDOMFeatureFlags = { 32213 useCreateElement: true, 32214 useFiber: false 32215}; 32216 32217module.exports = ReactDOMFeatureFlags; 32218 32219/***/ }), 32220/* 526 */ 32221/***/ (function(module, exports, __webpack_require__) { 32222 32223"use strict"; 32224/** 32225 * Copyright (c) 2013-present, Facebook, Inc. 32226 * 32227 * This source code is licensed under the MIT license found in the 32228 * LICENSE file in the root directory of this source tree. 32229 * 32230 */ 32231 32232 32233 32234var adler32 = __webpack_require__(527); 32235 32236var TAG_END = /\/?>/; 32237var COMMENT_START = /^<\!\-\-/; 32238 32239var ReactMarkupChecksum = { 32240 CHECKSUM_ATTR_NAME: 'data-react-checksum', 32241 32242 /** 32243 * @param {string} markup Markup string 32244 * @return {string} Markup string with checksum attribute attached 32245 */ 32246 addChecksumToMarkup: function (markup) { 32247 var checksum = adler32(markup); 32248 32249 // Add checksum (handle both parent tags, comments and self-closing tags) 32250 if (COMMENT_START.test(markup)) { 32251 return markup; 32252 } else { 32253 return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'); 32254 } 32255 }, 32256 32257 /** 32258 * @param {string} markup to use 32259 * @param {DOMElement} element root React element 32260 * @returns {boolean} whether or not the markup is the same 32261 */ 32262 canReuseMarkup: function (markup, element) { 32263 var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); 32264 existingChecksum = existingChecksum && parseInt(existingChecksum, 10); 32265 var markupChecksum = adler32(markup); 32266 return markupChecksum === existingChecksum; 32267 } 32268}; 32269 32270module.exports = ReactMarkupChecksum; 32271 32272/***/ }), 32273/* 527 */ 32274/***/ (function(module, exports, __webpack_require__) { 32275 32276"use strict"; 32277/** 32278 * Copyright (c) 2013-present, Facebook, Inc. 32279 * 32280 * This source code is licensed under the MIT license found in the 32281 * LICENSE file in the root directory of this source tree. 32282 * 32283 * 32284 */ 32285 32286 32287 32288var MOD = 65521; 32289 32290// adler32 is not cryptographically strong, and is only used to sanity check that 32291// markup generated on the server matches the markup generated on the client. 32292// This implementation (a modified version of the SheetJS version) has been optimized 32293// for our use case, at the expense of conforming to the adler32 specification 32294// for non-ascii inputs. 32295function adler32(data) { 32296 var a = 1; 32297 var b = 0; 32298 var i = 0; 32299 var l = data.length; 32300 var m = l & ~0x3; 32301 while (i < m) { 32302 var n = Math.min(i + 4096, m); 32303 for (; i < n; i += 4) { 32304 b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3)); 32305 } 32306 a %= MOD; 32307 b %= MOD; 32308 } 32309 for (; i < l; i++) { 32310 b += a += data.charCodeAt(i); 32311 } 32312 a %= MOD; 32313 b %= MOD; 32314 return a | b << 16; 32315} 32316 32317module.exports = adler32; 32318 32319/***/ }), 32320/* 528 */ 32321/***/ (function(module, exports, __webpack_require__) { 32322 32323"use strict"; 32324/** 32325 * Copyright (c) 2013-present, Facebook, Inc. 32326 * 32327 * This source code is licensed under the MIT license found in the 32328 * LICENSE file in the root directory of this source tree. 32329 * 32330 */ 32331 32332 32333 32334module.exports = '15.6.2'; 32335 32336/***/ }), 32337/* 529 */ 32338/***/ (function(module, exports, __webpack_require__) { 32339 32340"use strict"; 32341/* WEBPACK VAR INJECTION */(function(process) {/** 32342 * Copyright (c) 2013-present, Facebook, Inc. 32343 * 32344 * This source code is licensed under the MIT license found in the 32345 * LICENSE file in the root directory of this source tree. 32346 * 32347 */ 32348 32349 32350 32351var _prodInvariant = __webpack_require__(8); 32352 32353var ReactCurrentOwner = __webpack_require__(39); 32354var ReactDOMComponentTree = __webpack_require__(14); 32355var ReactInstanceMap = __webpack_require__(79); 32356 32357var getHostComponentFromComposite = __webpack_require__(219); 32358var invariant = __webpack_require__(2); 32359var warning = __webpack_require__(3); 32360 32361/** 32362 * Returns the DOM node rendered by this element. 32363 * 32364 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode 32365 * 32366 * @param {ReactComponent|DOMElement} componentOrElement 32367 * @return {?DOMElement} The root node of this element. 32368 */ 32369function findDOMNode(componentOrElement) { 32370 if (process.env.NODE_ENV !== 'production') { 32371 var owner = ReactCurrentOwner.current; 32372 if (owner !== null) { 32373 process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A c
32373omponent') : void 0; 32374 owner._warnedAboutRefsInRender = true; 32375 } 32376 } 32377 if (componentOrElement == null) { 32378 return null; 32379 } 32380 if (componentOrElement.nodeType === 1) { 32381 return componentOrElement; 32382 } 32383 32384 var inst = ReactInstanceMap.get(componentOrElement); 32385 if (inst) { 32386 inst = getHostComponentFromComposite(inst); 32387 return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null; 32388 } 32389 32390 if (typeof componentOrElement.render === 'function') { 32391 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0; 32392 } else { 32393 true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0; 32394 } 32395} 32396 32397module.exports = findDOMNode; 32398/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 32399 32400/***/ }), 32401/* 530 */ 32402/***/ (function(module, exports, __webpack_require__) { 32403 32404"use strict"; 32405/** 32406 * Copyright (c) 2013-present, Facebook, Inc. 32407 * 32408 * This source code is licensed under the MIT license found in the 32409 * LICENSE file in the root directory of this source tree. 32410 * 32411 */ 32412 32413 32414 32415var ReactMount = __webpack_require__(218); 32416 32417module.exports = ReactMount.renderSubtreeIntoContainer; 32418 32419/***/ }), 32420/* 531 */ 32421/***/ (function(module, exports, __webpack_require__) { 32422 32423"use strict"; 32424/* WEBPACK VAR INJECTION */(function(process) {/** 32425 * Copyright (c) 2013-present, Facebook, Inc. 32426 * 32427 * This source code is licensed under the MIT license found in the 32428 * LICENSE file in the root directory of this source tree. 32429 * 32430 */ 32431 32432 32433 32434var DOMProperty = __webpack_require__(47); 32435var EventPluginRegistry = __webpack_require__(99); 32436var ReactComponentTreeHook = __webpack_require__(22); 32437 32438var warning = __webpack_require__(3); 32439 32440if (process.env.NODE_ENV !== 'production') { 32441 var reactProps = { 32442 children: true, 32443 dangerouslySetInnerHTML: true, 32444 key: true, 32445 ref: true, 32446 32447 autoFocus: true, 32448 defaultValue: true, 32449 valueLink: true, 32450 defaultChecked: true, 32451 checkedLink: true, 32452 innerHTML: true, 32453 suppressContentEditableWarning: true, 32454 onFocusIn: true, 32455 onFocusOut: true 32456 }; 32457 var warnedProperties = {}; 32458 32459 var validateProperty = function (tagName, name, debugID) { 32460 if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) { 32461 return true; 32462 } 32463 if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { 32464 return true; 32465 } 32466 if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) { 32467 return true; 32468 } 32469 warnedProperties[name] = true; 32470 var lowerCasedName = name.toLowerCase(); 32471 32472 // data-* attributes should be lowercase; suggest the lowercase version 32473 var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; 32474 32475 var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null; 32476 32477 if (standardName != null) { 32478 process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32479 return true; 32480 } else if (registrationName != null) { 32481 process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32482 return true; 32483 } else { 32484 // We were unable to guess which prop the user intended. 32485 // It is likely that the user was just blindly spreading/forwarding props 32486 // Components should be careful to only render valid props/attributes. 32487 // Warning will be invoked in warnUnknownProperties to allow grouping. 32488 return false;
32489 } 32490 }; 32491} 32492 32493var warnUnknownProperties = function (debugID, element) { 32494 var unknownProps = []; 32495 for (var key in element.props) { 32496 var isValid = validateProperty(element.type, key, debugID); 32497 if (!isValid) { 32498 unknownProps.push(key); 32499 } 32500 } 32501 32502 var unknownPropString = unknownProps.map(function (prop) { 32503 return '`' + prop + '`'; 32504 }).join(', '); 32505 32506 if (unknownProps.length === 1) { 32507 process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32508 } else if (unknownProps.length > 1) { 32509 process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32510 } 32511}; 32512 32513function handleElement(debugID, element) { 32514 if (element == null || typeof element.type !== 'string') { 32515 return; 32516 } 32517 if (element.type.indexOf('-') >= 0 || element.props.is) { 32518 return; 32519 } 32520 warnUnknownProperties(debugID, element); 32521} 32522 32523var ReactDOMUnknownPropertyHook = { 32524 onBeforeMountComponent: function (debugID, element) { 32525 handleElement(debugID, element); 32526 }, 32527 onBeforeUpdateComponent: function (debugID, element) { 32528 handleElement(debugID, element); 32529 } 32530}; 32531 32532module.exports = ReactDOMUnknownPropertyHook; 32533/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 32534 32535/***/ }), 32536/* 532 */ 32537/***/ (function(module, exports, __webpack_require__) { 32538 32539"use strict"; 32540/* WEBPACK VAR INJECTION */(function(process) {/** 32541 * Copyright (c) 2013-present, Facebook, Inc. 32542 * 32543 * This source code is licensed under the MIT license found in the 32544 * LICENSE file in the root directory of this source tree. 32545 * 32546 */ 32547 32548 32549 32550var ReactComponentTreeHook = __webpack_require__(22); 32551 32552var warning = __webpack_require__(3); 32553 32554var didWarnValueNull = false; 32555 32556function handleElement(debugID, element) { 32557 if (element == null) { 32558 return; 32559 } 32560 if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') { 32561 return; 32562 } 32563 if (element.props != null && element.props.value === null && !didWarnValueNull) { 32564 process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32565 32566 didWarnValueNull = true; 32567 } 32568} 32569 32570var ReactDOMNullInputValuePropHook = { 32571 onBeforeMountComponent: function (debugID, element) { 32572 handleElement(debugID, element); 32573 }, 32574 onBeforeUpdateComponent: function (debugID, element) { 32575 handleElement(debugID, element); 32576 } 32577}; 32578 32579module.exports = ReactDOMNullInputValuePropHook; 32580/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 32581 32582/***/ }), 32583/* 533 */ 32584/***/ (function(module, exports, __webpack_require__) { 32585 32586"use strict"; 32587/* WEBPACK VAR INJECTION */(function(process) {/** 32588 * Copyright (c) 2013-present, Facebook, Inc. 32589 * 32590 * This source code is licensed under the MIT license found in the 32591 * LICENSE file in the root directory of this source tree. 32592 * 32593 */ 32594 32595 32596 32597var DOMProperty = __webpack_require__(47); 32598var ReactComponentTreeHook = __webpack_require__(22); 32599 32600var warning = __webpack_require__(3); 32601 32602var warnedProperties = {}; 32603var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); 32604 32605function validateProperty(tagName, name, debugID) { 32606 if (warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { 32607 return true; 32608 } 32609 32610 if (rARIA.test(name)) { 32611 var lowerCasedName = name.toLowerCase(); 32612 var standardName = DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; 32613 32614 // If this is an aria-* attribute, but is not listed in the known DOM 32615 // DOM properties, then it is an invalid aria-* attribute. 32616 if (standardName == null) { 32617 warnedProperties[name] = true; 32618 return false;
32619 } 32620 // aria-* attributes should be lowercase; suggest the lowercase version. 32621 if (name !== standardName) { 32622 process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown ARIA attribute %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32623 warnedProperties[name] = true; 32624 return true; 32625 } 32626 } 32627 32628 return true; 32629} 32630 32631function warnInvalidARIAProps(debugID, element) { 32632 var invalidProps = []; 32633 32634 for (var key in element.props) { 32635 var isValid = validateProperty(element.type, key, debugID); 32636 if (!isValid) { 32637 invalidProps.push(key); 32638 } 32639 } 32640 32641 var unknownPropString = invalidProps.map(function (prop) { 32642 return '`' + prop + '`'; 32643 }).join(', '); 32644 32645 if (invalidProps.length === 1) { 32646 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32647 } else if (invalidProps.length > 1) { 32648 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; 32649 } 32650} 32651 32652function handleElement(debugID, element) { 32653 if (element == null || typeof element.type !== 'string') { 32654 return; 32655 } 32656 if (element.type.indexOf('-') >= 0 || element.props.is) { 32657 return; 32658 } 32659 32660 warnInvalidARIAProps(debugID, element); 32661} 32662 32663var ReactDOMInvalidARIAHook = { 32664 onBeforeMountComponent: function (debugID, element) { 32665 if (process.env.NODE_ENV !== 'production') { 32666 handleElement(debugID, element); 32667 } 32668 }, 32669 onBeforeUpdateComponent: function (debugID, element) { 32670 if (process.env.NODE_ENV !== 'production') { 32671 handleElement(debugID, element); 32672 } 32673 } 32674}; 32675 32676module.exports = ReactDOMInvalidARIAHook; 32677/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 32678 32679/***/ }), 32680/* 534 */ 32681/***/ (function(module, exports, __webpack_require__) { 32682 32683"use strict"; 32684 32685 32686Object.defineProperty(exports, "__esModule", { 32687 value: true 32688}); 32689 32690var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 32691 32692var _react = __webpack_require__(32); 32693 32694var _react2 = _interopRequireDefault(_react); 32695 32696var _Search = __webpack_require__(535); 32697 32698var _Search2 = _interopRequireDefault(_Search); 32699 32700function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 32701 32702function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 32703 32704function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 32705 32706function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 32707 32708var SubHeader = function (_Component) { 32709 _inherits(SubHeader, _Component); 32710 32711 function SubHeader(props) { 32712 _classCallCheck(this, SubHeader); 32713 32714 // Initialize state 32715 var _this = _possibleConstructorReturn(this, (SubHeader.__proto__ || Object.getPrototypeOf(SubHeader)).call(this, props)); 32716 32717 _this.state = { 32718 children: _this.parseInitialChildren(), 32719 term: null // @todo: set inital term based on url ? 32720 }; 32721 // Bind event handler for open, close and search 32722 _this.handleClose = _this.handleClose.bind(_this);
32723 _this.handleItemClick = _this.handleItemClick.bind(_this); 32724 _this.handleSearch = _this.handleSearch.bind(_this); 32725 _this.handleGlobalKeyup = _this.handleGlobalKeyup.bind(_this); 32726 return _this; 32727 } 32728 32729 _createClass(SubHeader, [{ 32730 key: 'parseInitialChildren', 32731 value: function parseInitialChildren() { 32732 var children = { 32733 current: 0, 32734 all: {} 32735 }; 32736 // Iterate over initial DOM sub header elements, and store it 32737 [].slice.call(this.props.initialChildren).forEach(function (child) { 32738 var id = child.dataset.headerSubId; 32739 var content = child.innerHTML; 32740 children.all[id] = { 32741 content: { __html: content }, 32742 className: child.className 32743 // Mark as current any visible sub header item 32744 };if ('none' !== child.style.display) { 32745 children.current = id; 32746 } 32747 }); 32748 32749 return children; 32750 } 32751 // On close event triggered, set children.current state to 0 32752 32753 }, { 32754 key: 'handleClose', 32755 value: function handleClose(e) { 32756 e.preventDefault(); 32757 var newState = this.state; 32758 newState.children.current = 0; 32759 this.setState(newState); 32760 } 32761 // On click on a menu item, toggle the relevant subheader item as current 32762 32763 }, { 32764 key: 'handleItemClick', 32765 value: function handleItemClick(e) { 32766 var newState = this.state; 32767 if (e.detail.itemId === this.state.children.current) { 32768 newState.children.current = 0; 32769 } else { 32770 newState.children.current = e.detail.itemId; 32771 } 32772 this.setState(newState); 32773 } 32774 // On search term is entered, set children.current state to "search" 32775 32776 }, { 32777 key: 'handleSearch', 32778 value: function handleSearch(e) { 32779 var newState = this.state; 32780 // If search term is empty, reset children.current state to 0 32781 if ('' !== e.detail.search) { 32782 newState.children.current = 'search'; 32783 newState.term = e.detail.search; 32784 } else { 32785 newState.children.current = 0; 32786 newState.term = null; 32787 } 32788 this.setState(newState); 32789 } 32790 }, { 32791 key: 'handleGlobalKeyup', 32792 value: function handleGlobalKeyup(e) { 32793 if (27 == e.keyCode) { 32794 this.handleClose(e); 32795 } 32796 } 32797 // Bind event listener 32798 32799 }, { 32800 key: 'componentDidMount', 32801 value: function componentDidMount() { 32802 var headerWrapper = document.querySelector('[data-header-role=sub-header-wrapper]'); 32803 headerWrapper.addEventListener('CapComMenuItemClick', this.handleItemClick); 32804 headerWrapper.addEventListener('CapComSearch', this.handleSearch); 32805 document.addEventListener('keyup', this.handleGlobalKeyup); 32806 } 32807 // Unbind event listener 32808 32809 }, { 32810 key: 'componentWillUnmount', 32811 value: function componentWillUnmount() { 32812 document.removeEventListener('CapComMenuItemClick', this.handleItemClick); 32813 document.removeEventListener('CapComSearch', this.handleSearch); 32814 document.removeEventListener('keyup', this.handleGlobalKeyup); 32815 } 32816 // When state change, trigger an event based on children current state for external js logic 32817 32818 }, { 32819 key: 'componentWillUpdate', 32820 value: function componentWillUpdate(nextProps, nextState) { 32821 if (0 === nextState.children.current) { 32822 var closeEvent = new CustomEvent('CapComMenuClose'); 32823 document.dispatchEvent(closeEvent); 32824 // @todo: update url ? 32825 } 32826 if (0 !== nextState.children.current) { 32827 var openEvent = new CustomEvent('CapComMenuOpen'); 32828 document.dispatchEvent(openEvent); 32829 // @todo: update url ? 32830 } 32831 } 32832 }, {
32833 key: 'render', 32834 value: function render() { 32835 var subHeaderClasses = ['cpcSubHeader']; 32836 var current = this.state.children.current; 32837 var children = this.state.children.all; 32838 if (0 !== current) { 32839 subHeaderClasses.push('is-visible'); 32840 } 32841 return _react2.default.createElement( 32842 'div', 32843 { className: subHeaderClasses.join(' ') }, 32844 _react2.default.createElement( 32845 'div', 32846 null, 32847 _react2.default.createElement('a', { 32848 href: '/', 32849 dangerouslySetInnerHTML: { __html: this.props.close.innerHTML }, 32850 className: this.props.close.className, 32851 onClick: this.handleClose, 32852 'data-header-role': 'close-button' 32853 }), 32854 'search' === current ? _react2.default.createElement( 32855 'div', 32856 { className: 'cpcSubHeader_category has-search-results' }, 32857 _react2.default.createElement( 32858 'div', 32859 { className: 'cpcSubHeader_wrapper' }, 32860 _react2.default.createElement(_Search2.default, { query: this.state.term }) 32861 ) 32862 ) : _react2.default.createElement( 32863 'div', 32864 null, 32865 Object.keys(children).map(function (id) { 32866 var style = { 32867 display: id === current ? 'block' : 'none' 32868 }; 32869 return _react2.default.createElement('div', { 32870 className: children[id].className, 32871 dangerouslySetInnerHTML: children[id].content, 32872 style: style, 32873 key: id 32874 }); 32875 }) 32876 ) 32877 ) 32878 ); 32879 } 32880 }]); 32881 32882 return SubHeader; 32883}(_react.Component); 32884 32885exports.default = SubHeader; 32886 32887/***/ }), 32888/* 535 */ 32889/***/ (function(module, exports, __webpack_require__) { 32890 32891"use strict"; 32892 32893 32894Object.defineProperty(exports, "__esModule", { 32895 value: true 32896}); 32897 32898var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 32899 32900var _react = __webpack_require__(32); 32901 32902var _react2 = _interopRequireDefault(_react); 32903 32904var _algolia = __webpack_require__(536); 32905 32906var _SearchResult = __webpack_require__(556); 32907 32908var _SearchResult2 = _interopRequireDefault(_SearchResult); 32909 32910function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 32911 32912function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 32913 32914function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 32915 32916function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 32917 32918var facets = { 32919 0: { 32920 class: 'has-no-items', 32921 maxResults: 0 32922 }, 32923 1: { 32924 class: 'has-one-item', 32925 maxResults: 20 32926 }, 32927 2: { 32928 class: 'has-two-items', 32929 maxResults: 10 32930 }, 32931 3: { 32932 class: 'has-three-items', 32933 maxResults: 6 32934 }, 32935 4: { 32936 class: 'has-four-items', 32937 maxResults: 6 32938 }, 32939 5: { 32940 class: 'has-five-items', 32941 maxResults: 6 32942 }, 32943 default: { 32944 class: 'has-many-items', 32945 maxResults: 6 32946 } 32947}; 32948 32949var Search = function (_Component) { 32950 _inherits(Search, _Component); 32951 32952 function Search(props) { 32953 _classCallCheck(this, Search); 32954 32955 var _this = _possibleConstructorReturn(this, (Search.__proto__ || Object.getPrototypeOf(Search)).call(this, props)); 32956 32957 _this.state = { 32958 results: [], 32959 facettes: 0 32960 }; 32961 return _this; 32962 } 32963 32964 _createClass(Search, [{ 32965 key: 'componentWillReceiveProps', 32966 value: function componentWillReceiveProps(nextProps) { 32967 var _this2 = this; 32968 32969 (0, _algolia.indexSearch)(nextProps.query).then(function (response) { 32970 _this2.setState({ results: response.hits, facets: response.facets }); 32971 }); 32972 } 32973 }, { 32974 key: 'render', 32975 value: function render() { 32976 // Get facet configuration with fallback to default. 32977 var facetConfig = facets[this.state.facets] || facets.default; 32978 32979 return 0 < Object.keys(this.state.results).length ? _react2.default.createElement( 32980 'ul', 32981 { className: "cpcSearch_results " + facetConfig.class }, 32982 this.state.results.map(function (item, i) { 32983 return _react2.default.createElement( 32984 'li', 32985 { className: "cpcSearch_results_item cat-" + item.field_univers, key: i }, 32986 _react2.default.createElement( 32987 'div', 32988 { className: 'cpcSearch_results_block' }, 32989 _react2.default.createElement( 32990 'div', 32991 { className: 'cpcSearch_results_title' }, 32992 item.field_univers_name 32993 ), 32994 _react2.default.createElement( 32995 'div', 32996 { className: 'cpcSearch_results_content' }, 32997 _react2.default.createElement( 32998 'ul', 32999 { className: 'cpcTeaserSmall_list' }, 33000 item.results.map(function (result, j) { 33001 return _react2.default.createElement(_SearchResult2.default, { key: j, item: result }); 33002 }) 33003 ) 33004 ), 33005 _react2.default.createElement( 33006 'div', 33007 { className: 'cpcSearch_results_sponsor' }, 33008 _react2.default.createElement('img', { src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAAAYCAYAAABugbbBAAAAAXNSR0IArs4c6QAAEKlJREFUaAXtWwl4VNUVPvfNJCEgkICsIoIbKOCGYrVUaW1L7efWyrCaRUwmK0gUKlYt+dSqoKA2zIQkQEiQCgm2pYi2bqB1QdsqKpsKEtGEkIUtM1lm5r3b/7zJSybDZDKTxBYr5+Plvnvvuedu/z3n3PMGQaepUyuQnS2VXQ3Uu1ONmxv1UMmz9inh7IqMYG15jNnZQgvG823UWUqkqXSqULtDtugOId8nGZYsGU2N9AzmPEtK6tXVuWMD9itE8zasEC92VRa3n5omb5NEv8XYRpsUumGDXfyzO+R2JGNamvwBELlUoF/0n7FxhVjfUZtQ6rE2pymsFWigx7H51u4AJ/eLzTxPFbRxRqYcHdY42mcehbFdheouaff2xQeu0QQNw2SuxXz6+XNY0uQtU1Jl/vR0ea1/XUf50wDtaIX86wVZ/Iu6nJcU5dboli7LOQUFWNLlYID2BQwtWdVoM7sd4QzTHA7zaV6sgKQBHa3DhecSzbyVKDKCyO0h2rCZaP
33008cXwVth1wYG5/iO1poInjYeIjMJci1aRDI7O/S5hIXm0MV2nTPp7oJBccm5k9PS7LGhSotLt13EbULl/7b4rv8BEYO0bx/Y73OIJl3zbfV06sstzRHV8LMnA5yLyUQ/FwJeahika1AppUi02ixoOQvPMCHFUQh6vagg/fEwZHUrq7veM5GkurHBrVwHwf8IRbhwU7qUaiZ4/6uXv0suIrrqEqLSLUQnHF6Nuf1Doj5nENU5iQ6WhzL60Hni5ste551BDV29obOcRpW00qdFQ0e9M0amZtCgMQOpKtx+S3PFm5D/Ji6YJ/mn3K/lPtnXVEd91ElU4X/71wGakGJfBMd6EQlRg519B9vbX5PaA2j7PwMoD/y7QFGRRPelEVXXEr34OtHPcJx+BR3O5QZ5YOBe3kr0/CavyTfKw0nhy90tNUoVgs5pcFD0Tic1WVLlfuTXxVxGT+an4HiGQInzZEx9Ez0MRWSBnMHcBHKOIzmI59+k0LOldrGDy5lmpMlL4KUsnZpOE4CRPrsOkxOXno+EiRaWLBfveLmC/wX/q2h7NTXQTnDqF6U5c2RUpZuwKnQ5eu+BPki8QW6MZS/w9yBA/VeWauaTkWC1z0Ph7mhhviw/P0Wf6OzMVUOZwZdKSkpMW147OqJfr9iKp5+e2ubUsZykTNtw6THHiJ7mr1c9nXTEaGu15kUoihYbEXHO8ZycXzbFW/OGF+en8ILoxHL/trXmfDJF1a1efleFUe6bJqbmjjBFR5zwletb7/+enb3VXHbos5Ejhow6kJ39Y54/ZWeXRFZW1sZomuLAPOuNNkZ5dHT/Ov95GTztpU0uorc/INoMcGYleU16YxPRx7uJvqkkGgLPctR5RDf/lOiKsUSP/IGo9mh70oKUSxqO2tHYaC/hYoXXi5H//ZEdNB6Ft3MFbtOSQwOBaHqGvNrRSH9G3RDferD3RX4cPzDA7yHVAQqwxHkkrUR9y3FDfxxamwiv8i0AbwGAtAx5QrS1ZWic9yW0h31pG1XIyRF8wEahrofBi3d47RiHpE1TM+S0EpsoUebOfRmdy94w6w15eVZ9I7mBP1ASrLasF1+tPqFp7n21jipHfJLdzhvLvAyw+GT7PlcTlblVzw5XXWNtfJJtLZdzvUvRfuj0qIePNR3IRPlBKT36AngPhy1r8ytVx91uba+7saE8Pmn5u9zGIKz2hXFJtjLVox5wOxqr4622bKPOP5WYBJfFW+0z93+z65iqej7/snz38YQku5XLy6qq+9Wr2jcN0r2K8wYdKK+ey+OrbajtVKgn9zmv1mR/c9fnAOrDRI/mEH26l+jrCqLHlhP982Ois6Cv0uKMXsNMJW2BEpmL2OZks5muUgTFYbJluhRJv2ZNx++KBFcAYo2FW3QRqhicUij0hMlE46GBR0Nr3uffZHqmHArA2PBEQuBx9JcYYaaL0I6jGIeARgVAesIIj+FuHrBflouKgHWQtRDPjREmGisiaIyi0AIw6gpSqvQgtzXrGi3ZthlAuBWadMvslBX3r85LxXK2Em+4pmnL4Jc+ZVIiVknNMwEHZs2BiuoycC3ZvXuAUET1Kxjy85oJTrFbJgF892x5veYN1BcaknDKFknIUJpPaGKKfYGmycWQu9EklVwptDpYw8uYX0roAk6x1xC+EJlDmpSPk0a/w2Vow1p7xh6uD0Rou9gkTElwyitVVX0Ic8uDBv58jT1tW1yy7S/A8W18+crNTdd1GeYyAxv1afGKtI8Cyeuo7BLA+rqriQ7XED1hJ2INyjR0ENGtPye64YdezXlmLNGl8FeZ9633vTyh/i1dAQNIxI9B/0JQvhJAeZULPEKPfX7SngaFOZ2NtRzV3PgZmPH7DUGQ86FmZJpTTaWFeNVjqVibxJJc8Zfmqr3T0uVXAPsHkBcB9yUb5dM70KBgPZlK7KLAr3T3lDQ5FpueAEiPseZJnAmQObZHnOdIQw4mGw8NeCM01ubIKDlnlS3zK12AJucDIB8UF2QsaBa4Nz7ZlgyfaDryS5pNKDwxL2HzH3W45d2kyQkoKTTK2V8qLkiHfoGWySqJrnVULwI4t0Iun0qD9C8fQijAOOBKcllxfkYRVyYkL48BmDaQR4GxpJMACuBhCpJMikhfk5eG4A5R4rzCHarT+ZWmqlnIbjNLZQWiHhanh2Ygb09MWXEBNO0VUhHzmb8zNJFnCeJLkgFOb4n3LwZFw+Ew/RFe1QOZsI9Xhg9QlqR/Xq2hMTikZ/E0IdZh9IO9GGa8B0rB+yOjHLueb7y3l2LMV+h1gmo32GlTSW4rJ3+dgnn+FDLZHGM2wQnYaffqPmuOHObx0DjIGghZDhwUfU7oXznxMQ3WAbp6yV116CIRmmmxcCv3QwPFuZtofGK6bXyhLf0wNCufvIMwv2tahiKpP8ADD8tLMKPjgY/Z6GSEw6PBr4AzJGUfo15PJb1l5Gvqj4wBQ08SSolRFjAVSotW0xTzl6R6cJejqEC8uonHTCOluaWfNc/ceQxuxQ4MB7oLp2Vl2hs4gJ+h7wRk7bAG0zBW1WSmdYFkhlLGmpLpiwPe1Phbh6XmGChfnhi4vXp6awx+gy+UFFouYVelfrkZHogfJljfy0B1zWVDOMXaab3H0f4gfEaVrm0BrjIoEayqHwnIkACooJHWbNnzWKVfvU8WjU9qz5c1ZxMVuTx0E4Oxhd2XMxK6pqUCL2w2oeHiSREPgm+odInbeXDQSh7cgQRm52p96G0MbiW3h184URPadgxjItjfg/Z7HmmLP6uqEAGCqW7glMkMe84pYNxmDFzmS/CpsLWhEWvQZk52tv3IOwYuhK+TB8YJida80ZoU07AJf19jzwiyxH6iQsxu20608aVWrYp+OkW4wU/RJBVizMOxYMfwlGLR8iAP0kMjBiZzYhUU1yE4Px0QvHkD8IGVAQIVhjxPfXB5GOdJU3c20iaM5RYeDyrfwnyWYIxPgrNFIbF8fRB3Za3s1+Z2LKSXSZGR+jwkfQjAnd3/jIF3B7zlSpoCcJpNJtOMwrzU3TCrMTCrucaoTCYhoPjaUEyv2D01dVVOFOqmtk1lJzOGBm2SnskQoWtEDvg3OZvG43S9bIg194oqctc1PaZJ92MoG4uFecSo60xaDmiPOhfB+ZFEFYfbl3A+6pnKg/B4Odr+hfnOQAl0BTkizTRuXY74hjlmpslYl6Qjbblbczj63v3zFrUcwIYq4pHsMTj1Cw57Uz6Eo74HB+IaFJ03+zey9+olgq2sTvxrJfmGfuvHoKiC66amGroBLG37bW7VmsycKy9wueg6vURQESIBiUYtRwYg6XIjb+ab9uZXqw7ApywGendCUw4jTUvEewOApZ9QM25bqqR3axzVWxOSbM9CmVYLoV1M0lReVJD2Ak7b16zEVc2TisvInzRnvZUBa3QSKGWg4+b/O7gTS+OTl28iMhUgVuHEwowvKsh4KlCbUMugKpbFJdkHKEKrcDldcPZFTxiLJ432fBhxWSrBGONxiI716XEu+u88vQ2v+SfXIp54E9F2HO1AfijbKv78yfQPhKXCpDN0fklqr7EUHN6Sqg3ZAPYkvL/DeWwP9DnN5HdccJKR3MPv7RFAWwSdew00XLTDgRg50fwW3m0ET9rr80LuWi4HBmq4EyZYvUlIivk9EKmuVhcN6x/UQpotFov24iu2P0NQAnxGvrVxoOITmMHE1bnpn3EHhfmZ79+ZbPsRDtlSaKlC8EWBq0KaVJ4omYb2tGnl9RPwmopbcwIAsQpHq4rtSTCCO7EM7oETbA/jq9EtkOkC+PlQdAqgrZckStBUmQ+zeDZOeDlO9BTc0NvAwiTFSpVkPNTSeo5kBBtnR3UcTnoT28+fOBemIzZThMC9j17ri1VNvYNo5NlEH+1C3BSADocwh4+xRldiNfse+YjehZZ5CXt0ENpziL+ciEh6ydNE0Ccwuxo9CN5+0FD39htEq45W0nyUD0ebLNyWxwBIb+PWPwh8t/vLGTuQCnYephTsyeWaRveCfxzAtB3txwL4v2Z+1p4Yx6P8PmYQvQP+WvDjIw8lwmc2DTKTleOdXO9LAyPoC0QVjvN8MK9kjPEc1L/PYEWerV8LoayV2DTHil5NAc14Mxtr3NdeOxrlG+g2JHBwfNGiSSr7rUZZqCmb4t5K3xPB+g5VlsE3Z85zfXJy7jhh5H1ThM6WkNTuxZXqouIC6+e+dcHecXsFLvSAchu2ntFED80lOn8EVtlF9Nn+5kD9AG+gnuu/PoSY2bNER463aapnoBCWIuzSqqV8WO6YJ4c0NhIfsGE+xW1e4cg9ilDQQ1wIn/UBgEgHDgBUuzFXnMnl09MkK5n1AMFQzgcigC4FgM7nOkumHIkfeqzDfK8JwLsXcdRZG2ziQ6NuSrqchZtFEfh1H1f0pZjSxeI4wH0YwB0IsL2HcNm1uuwM+SsEaV7AexsMGrI4Nfegke1W+jL+P71DY7NWgLGVk7GQi9cWZP42nPm1B1CWwd7+rTj/t9/Y9lOnG6HnLVu9N3qEVAJSMIByA8scOQDXzhR0cT3GPxQmFf/oKKpYV++DC1Gy3ibeZ14mfDW6AZovHu5OPwD0Zm8p5OC7N7zJ2dByl6J9P4B1H+r4yGQzD8YxEwfleX5nYn+TtlEitOwvkD0La1YFSG0TPSgv0Dd8BPiv1DyUhH5HIQh/M+KtDvwW9DX0FYv2nwCgd7JcJg7yI47KVpi/KJ2JeTl4TpjYYXhEe2IGUSHy3y+Cv/sn+DDDoCmKi/LSbeFq+2AANVaSf2bHmpRNO/9YZF9ZYL/U4Oe0I4D68nb3Oy44cwEo6HZoLXylWr9c/Ku7++isvKAXmc4KPZXbFRdk6v4TjxEfAMIfqoBTL0828b6CXNCYHf3+05ef36HRTvLV/Hm6mmdtWGLB53ofF2zaHHmp6qYFLBuH1oELFDzqU4e+dwDt6tLDJLJ2mdRVOf7tYdLCvDr5S+g4j4+lt1m20jr4hOUwnfWYS3+AczBa6pYUN4cH4Mfi88KpQ1iX0xTOCsCvysJu1oTTpiNeyNvInxM74utqPUJHV0L7cwTmXIBzLORxFACKE/MRlHXxYFre1T66u71+crpb6P+7vBn3yjM9TroRG84b3GmCxvIALDuafwjSaTmhNuTPi40uuhj3tPPRb18gs8okqCwimnZ+m//9OdTxBeL7D+PNyZgZJdixAAAAAElFTkSuQmCC', alt: 'Search by Algolia' }) 33009 ) 33010 ) 33011 ); 33012 }) 33013 ) : _react2.default.createElement( 33014 'div', 33015 null, 33016 'La recherche n\'a donn\xE9 aucun resultat' 33017 ); 33018 } 33019 }]); 33020 33021 return Search; 33022}(_react.Component); 33023 33024exports.default = Search; 33025 33026/***/ }), 33027/* 536 */ 33028/***/ (function(module, exports, __webpack_require__) { 33029 33030"use strict"; 33031 33032 33033Object.defineProperty(exports, "__esModule", { 33034 value: true 33035}); 33036exports.indexSearch = undefined; 33037 33038var _algoliasearch = __webpack_require__(153); 33039 33040var _algoliasearch2 = _interopRequireDefault(_algoliasearch); 33041 33042var _api_data = __webpack_require__(225); 33043 33044function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 33045
33046var client = (0, _algoliasearch2.default)(_api_data.appId, _api_data.apiKey); 33047 33048// Config 33049 33050var index = client.initIndex(_api_data.indexName); 33051 33052var indexSearch = exports.indexSearch = function indexSearch(query) { 33053 return index.search(query, { 33054 'facets': 'field_univers' 33055 }).then(function (response) { 33056 // Sort results by facets. 33057 var results = []; 33058 response.hits.forEach(function (element) { 33059 // Filter out results without field_univers. 33060 if (!element.field_univers) { 33061 console.warn('Result without field_univers:', element.objectID); 33062 return; 33063 } 33064 33065 // Si le tableau de resulat à dejà un object contenant les hits du type {elem.field_univers}. 33066 var resultsIndex = results.findIndex(function (elem) { 33067 return elem.field_univers === element.field_univers; 33068 }); 33069 if (-1 != resultsIndex) { 33070 // On ajoute le hit. 33071 results[resultsIndex].results.push(element); 33072 } else { 33073 // Sinon : on créer l'object du field_univers et on le remplit. 33074 results.push({ 33075 field_univers: element.field_univers, 33076 field_univers_name: element.field_univers_name, 33077 results: [element] 33078 }); 33079 } 33080 }, undefined); 33081 33082 // Count actual facets based on filtered results. 33083 var datas = { 33084 hits: results, 33085 facets: results.length 33086 }; 33087 33088 return datas; 33089 }).catch(function (error) { 33090 console.log("Oups, something wrong happened when algolia searched"); 33091 console.log(error); 33092 }); 33093}; 33094 33095/***/ }), 33096/* 537 */ 33097/***/ (function(module, exports, __webpack_require__) { 33098 33099module.exports = AlgoliaSearch; 33100 33101var Index = __webpack_require__(538); 33102var deprecate = __webpack_require__(154); 33103var deprecatedMessage = __webpack_require__(155); 33104var AlgoliaSearchCore = __webpack_require__(543); 33105var inherits = __webpack_require__(80); 33106var errors = __webpack_require__(70); 33107 33108function AlgoliaSearch() { 33109 AlgoliaSearchCore.apply(this, arguments); 33110} 33111 33112inherits(AlgoliaSearch, AlgoliaSearchCore); 33113 33114/* 33115 * Delete an index 33116 * 33117 * @param indexName the name of index to delete 33118 * @param callback the result callback called with two arguments 33119 * error: null or Error('message') 33120 * content: the server answer that contains the task ID 33121 */ 33122AlgoliaSearch.prototype.deleteIndex = function(indexName, callback) { 33123 return this._jsonRequest({ 33124 method: 'DELETE', 33125 url: '/1/indexes/' + encodeURIComponent(indexName), 33126 hostType: 'write', 33127 callback: callback 33128 }); 33129}; 33130 33131/** 33132 * Move an existing index. 33133 * @param srcIndexName the name of index to copy. 33134 * @param dstIndexName the new index name that will contains a copy of 33135 * srcIndexName (destination will be overriten if it already exist). 33136 * @param callback the result callback called with two arguments 33137 * error: null or Error('message') 33138 * content: the server answer that contains the task ID 33139 */ 33140AlgoliaSearch.prototype.moveIndex = function(srcIndexName, dstIndexName, callback) { 33141 var postObj = { 33142 operation: 'move', destination: dstIndexName 33143 }; 33144 return this._jsonRequest({ 33145 method: 'POST', 33146 url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation', 33147 body: postObj, 33148 hostType: 'write', 33149 callback: callback 33150 }); 33151}; 33152 33153/** 33154 * Copy an existing index. 33155 * @param srcIndexName the name of index to copy. 33156 * @param dstIndexName the new index name that will contains a copy 33157 * of srcIndexName (destination will be overriten if it already exist). 33158 * @param scope an array of scopes to copy: ['settings', 'synonyms', 'rules'] 33159 * @param callback the result callback called with two arguments 33160 * error: null or Error('message') 33161 * content: the server answer that contains the task ID 33162 */ 33163AlgoliaSearch.prototype.copyIndex = function(srcIndexName, dstIndexName, scopeOrCallback, _callback) { 33164 var postObj = { 33165 operation: 'copy', 33166 destination: dstIndexName 33167 }; 33168 var callback = _callback; 33169 if (typeof scopeOrCallback === 'function') { 33170 // oops, old behaviour of third argument being a function 33171 callback = scopeOrCallback; 33172 } else if (Array.isArray(scopeOrCallback) && scopeOrCallback.length > 0) { 33173 postObj.scope = scopeOrCallback; 33174 } else if (typeof scopeOrCallback !== 'undefined') { 33175 throw new Error('the scope given to `copyIndex` was not an array with settings, synonyms or rules'); 33176 } 33177 return this._jsonRequest({ 33178 method: 'POST', 33179 url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation', 33180 body: postObj, 33181 hostType: 'write', 33182 callback: callback 33183 }); 33184}; 33185 33186/** 33187 * Return last log entries. 33188 * @param offset Specify the first entry to retrieve (0-based, 0 is the most recent log entry). 33189 * @param length Specify the maximum number of entries to retrieve starting 33190 * at offset. Maximum allowed value: 1000. 33191 * @param type Specify the maximum number of entries to retrieve starting 33192 * at offset. Maximum allowed value: 1000. 33193 * @param callback the result callback called with two arguments 33194 * error: null or Error('message')
33195 * content: the server answer that contains the task ID 33196 */ 33197AlgoliaSearch.prototype.getLogs = function(offset, length, callback) { 33198 var clone = __webpack_require__(48); 33199 var params = {}; 33200 if (typeof offset === 'object') { 33201 // getLogs(params) 33202 params = clone(offset); 33203 callback = length; 33204 } else if (arguments.length === 0 || typeof offset === 'function') { 33205 // getLogs([cb]) 33206 callback = offset; 33207 } else if (arguments.length === 1 || typeof length === 'function') { 33208 // getLogs(1, [cb)] 33209 callback = length; 33210 params.offset = offset; 33211 } else { 33212 // getLogs(1, 2, [cb]) 33213 params.offset = offset; 33214 params.length = length; 33215 } 33216 33217 if (params.offset === undefined) params.offset = 0; 33218 if (params.length === undefined) params.length = 10; 33219 33220 return this._jsonRequest({ 33221 method: 'GET', 33222 url: '/1/logs?' + this._getSearchParams(params, ''), 33223 hostType: 'read', 33224 callback: callback 33225 }); 33226}; 33227 33228/* 33229 * List all existing indexes (paginated) 33230 * 33231 * @param page The page to retrieve, starting at 0. 33232 * @param callback the result callback called with two arguments 33233 * error: null or Error('message') 33234 * content: the server answer with index list 33235 */ 33236AlgoliaSearch.prototype.listIndexes = function(page, callback) { 33237 var params = ''; 33238 33239 if (page === undefined || typeof page === 'function') { 33240 callback = page; 33241 } else { 33242 params = '?page=' + page; 33243 } 33244 33245 return this._jsonRequest({ 33246 method: 'GET', 33247 url: '/1/indexes' + params, 33248 hostType: 'read', 33249 callback: callback 33250 }); 33251}; 33252 33253/* 33254 * Get the index object initialized 33255 * 33256 * @param indexName the name of index 33257 * @param callback the result callback with one argument (the Index instance) 33258 */ 33259AlgoliaSearch.prototype.initIndex = function(indexName) { 33260 return new Index(this, indexName); 33261}; 33262 33263AlgoliaSearch.prototype.initAnalytics = function(opts) { 33264 // the actual require must be inside the function, when put outside then you have a cyclic dependency 33265 // not well resolved that ends up making the main "./index.js" (main module, the agloliasearch function) 33266 // export an object instead of a function 33267 // Other workarounds: 33268 // - rewrite the lib in ES6, cyclic dependencies may be better supported 33269 // - move initAnalytics to a property on the main module (algoliasearch.initAnalytics), 33270 // same as places. 33271 // The current API was made mostly to mimic the one made in PHP 33272 var createAnalyticsClient = __webpack_require__(547); 33273 return createAnalyticsClient(this.applicationID, this.apiKey, opts); 33274}; 33275 33276/* 33277 * @deprecated use client.listApiKeys 33278 */ 33279AlgoliaSearch.prototype.listUserKeys = deprecate(function(callback) { 33280 return this.listApiKeys(callback); 33281}, deprecatedMessage('client.listUserKeys()', 'client.listApiKeys()')); 33282 33283/* 33284 * List all existing api keys with their associated ACLs 33285 * 33286 * @param callback the result callback called with two arguments 33287 * error: null or Error('message') 33288 * content: the server answer with api keys list 33289 */ 33290AlgoliaSearch.prototype.listApiKeys = function(callback) { 33291 return this._jsonRequest({ 33292 method: 'GET', 33293 url: '/1/keys', 33294 hostType: 'read', 33295 callback: callback 33296 }); 33297}; 33298 33299/* 33300 * @deprecated see client.getApiKey 33301 */ 33302AlgoliaSearch.prototype.getUserKeyACL = deprecate(function(key, callback) { 33303 return this.getApiKey(key, callback); 33304}, deprecatedMessage('client.getUserKeyACL()', 'client.getApiKey()')); 33305 33306/* 33307 * Get an API key 33308 * 33309 * @param key 33310 * @param callback the result callback called with two arguments 33311 * error: null or Error('message') 33312 * content: the server answer with the right API key 33313 */ 33314AlgoliaSearch.prototype.getApiKey = function(key, callback) { 33315 return this._jsonRequest({ 33316 method: 'GET', 33317 url: '/1/keys/' + key, 33318 hostType: 'read', 33319 callback: callback 33320 }); 33321}; 33322 33323/* 33324 * @deprecated see client.deleteApiKey 33325 */ 33326AlgoliaSearch.prototype.deleteUserKey = deprecate(function(key, callback) { 33327 return this.deleteApiKey(key, callback); 33328}, deprecatedMessage('client.deleteUserKey()', 'client.deleteApiKey()')); 33329 33330/* 33331 * Delete an existing API key 33332 * @param key 33333 * @param callback the result callback called with two arguments 33334 * error: null or Error('message')
33335 * content: the server answer with the date of deletion 33336 */ 33337AlgoliaSearch.prototype.deleteApiKey = function(key, callback) { 33338 return this._jsonRequest({ 33339 method: 'DELETE', 33340 url: '/1/keys/' + key, 33341 hostType: 'write', 33342 callback: callback 33343 }); 33344}; 33345 33346/* 33347 @deprecated see client.addApiKey 33348 */ 33349AlgoliaSearch.prototype.addUserKey = deprecate(function(acls, params, callback) { 33350 return this.addApiKey(acls, params, callback); 33351}, deprecatedMessage('client.addUserKey()', 'client.addApiKey()')); 33352 33353/* 33354 * Add a new global API key 33355 * 33356 * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that 33357 * can contains the following values: 33358 * - search: allow to search (https and http) 33359 * - addObject: allows to add/update an object in the index (https only) 33360 * - deleteObject : allows to delete an existing object (https only) 33361 * - deleteIndex : allows to delete index content (https only) 33362 * - settings : allows to get index settings (https only) 33363 * - editSettings : allows to change index settings (https only) 33364 * @param {Object} [params] - Optionnal parameters to set for the key 33365 * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key) 33366 * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour 33367 * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call 33368 * @param {string[]} params.indexes - Allowed targeted indexes for this key 33369 * @param {string} params.description - A description for your key 33370 * @param {string[]} params.referers - A list of authorized referers 33371 * @param {Object} params.queryParameters - Force the key to use specific query parameters 33372 * @param {Function} callback - The result callback called with two arguments 33373 * error: null or Error('message') 33374 * content: the server answer with the added API key 33375 * @return {Promise|undefined} Returns a promise if no callback given 33376 * @example 33377 * client.addApiKey(['search'], { 33378 * validity: 300, 33379 * maxQueriesPerIPPerHour: 2000, 33380 * maxHitsPerQuery: 3, 33381 * indexes: ['fruits'], 33382 * description: 'Eat three fruits', 33383 * referers: ['*.algolia.com'], 33384 * queryParameters: { 33385 * tagFilters: ['public'], 33386 * } 33387 * }) 33388 * @see {@link https://www.algolia.com/doc/rest_api#AddKey|Algolia REST API Documentation} 33389 */ 33390AlgoliaSearch.prototype.addApiKey = function(acls, params, callback) { 33391 var isArray = __webpack_require__(23); 33392 var usage = 'Usage: client.addApiKey(arrayOfAcls[, params, callback])'; 33393 33394 if (!isArray(acls)) { 33395 throw new Error(usage); 33396 } 33397 33398 if (arguments.length === 1 || typeof params === 'function') { 33399 callback = params; 33400 params = null; 33401 } 33402 33403 var postObj = { 33404 acl: acls 33405 }; 33406 33407 if (params) { 33408 postObj.validity = params.validity; 33409 postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour; 33410 postObj.maxHitsPerQuery = params.maxHitsPerQuery; 33411 postObj.indexes = params.indexes; 33412 postObj.description = params.description; 33413 33414 if (params.queryParameters) { 33415 postObj.queryParameters = this._getSearchParams(params.queryParameters, ''); 33416 } 33417 33418 postObj.referers = params.referers; 33419 } 33420 33421 return this._jsonRequest({ 33422 method: 'POST', 33423 url: '/1/keys', 33424 body: postObj, 33425 hostType: 'write', 33426 callback: callback 33427 }); 33428}; 33429 33430/** 33431 * @deprecated Please use client.addApiKey() 33432 */ 33433AlgoliaSearch.prototype.addUserKeyWithValidity = deprecate(function(acls, params, callback) { 33434 return this.addApiKey(acls, params, callback); 33435}, deprecatedMessage('client.addUserKeyWithValidity()', 'client.addApiKey()')); 33436 33437/** 33438 * @deprecated Please use client.updateApiKey() 33439 */ 33440AlgoliaSearch.prototype.updateUserKey = deprecate(function(key, acls, params, callback) { 33441 return this.updateApiKey(key, acls, params, callback); 33442}, deprecatedMessage('client.updateUserKey()', 'client.updateApiKey()')); 33443 33444/** 33445 * Update an existing API key 33446 * @param {string} key - The key to update 33447 * @param {string[]} acls - The list of ACL for this key. Defined by an array of str
33447ings that 33448 * can contains the following values: 33449 * - search: allow to search (https and http) 33450 * - addObject: allows to add/update an object in the index (https only) 33451 * - deleteObject : allows to delete an existing object (https only) 33452 * - deleteIndex : allows to delete index content (https only) 33453 * - settings : allows to get index settings (https only) 33454 * - editSettings : allows to change index settings (https only) 33455 * @param {Object} [params] - Optionnal parameters to set for the key 33456 * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key) 33457 * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour 33458 * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call 33459 * @param {string[]} params.indexes - Allowed targeted indexes for this key 33460 * @param {string} params.description - A description for your key 33461 * @param {string[]} params.referers - A list of authorized referers 33462 * @param {Object} params.queryParameters - Force the key to use specific query parameters 33463 * @param {Function} callback - The result callback called with two arguments 33464 * error: null or Error('message') 33465 * content: the server answer with the modified API key 33466 * @return {Promise|undefined} Returns a promise if no callback given 33467 * @example 33468 * client.updateApiKey('APIKEY', ['search'], { 33469 * validity: 300, 33470 * maxQueriesPerIPPerHour: 2000, 33471 * maxHitsPerQuery: 3, 33472 * indexes: ['fruits'], 33473 * description: 'Eat three fruits', 33474 * referers: ['*.algolia.com'], 33475 * queryParameters: { 33476 * tagFilters: ['public'], 33477 * } 33478 * }) 33479 * @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation} 33480 */ 33481AlgoliaSearch.prototype.updateApiKey = function(key, acls, params, callback) { 33482 var isArray = __webpack_require__(23); 33483 var usage = 'Usage: client.updateApiKey(key, arrayOfAcls[, params, callback])'; 33484 33485 if (!isArray(acls)) { 33486 throw new Error(usage); 33487 } 33488 33489 if (arguments.length === 2 || typeof params === 'function') { 33490 callback = params; 33491 params = null; 33492 } 33493 33494 var putObj = { 33495 acl: acls 33496 }; 33497 33498 if (params) { 33499 putObj.validity = params.validity; 33500 putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour; 33501 putObj.maxHitsPerQuery = params.maxHitsPerQuery; 33502 putObj.indexes = params.indexes; 33503 putObj.description = params.description; 33504 33505 if (params.queryParameters) { 33506 putObj.queryParameters = this._getSearchParams(params.queryParameters, ''); 33507 } 33508 33509 putObj.referers = params.referers; 33510 } 33511 33512 return this._jsonRequest({ 33513 method: 'PUT', 33514 url: '/1/keys/' + key, 33515 body: putObj, 33516 hostType: 'write', 33517 callback: callback 33518 }); 33519}; 33520 33521/** 33522 * Initialize a new batch of search queries 33523 * @deprecated use client.search() 33524 */ 33525AlgoliaSearch.prototype.startQueriesBatch = deprecate(function startQueriesBatchDeprecated() { 33526 this._batch = []; 33527}, deprecatedMessage('client.startQueriesBatch()', 'client.search()')); 33528 33529/** 33530 * Add a search query in the batch 33531 * @deprecated use client.search() 33532 */ 33533AlgoliaSearch.prototype.addQueryInBatch = deprecate(function addQueryInBatchDeprecated(indexName, query, args) { 33534 this._batch.push({ 33535 indexName: indexName, 33536 query: query, 33537 params: args 33538 }); 33539}, deprecatedMessage('client.addQueryInBatch()', 'client.search()')); 33540 33541/** 33542 * Launch the batch of queries using XMLHttpRequest. 33543 * @deprecated use client.search() 33544 */ 33545AlgoliaSearch.prototype.sendQueriesBatch = deprecate(function sendQueriesBatchDeprecated(callback) { 33546 return this.search(this._batch, callback); 33547}, deprecatedMessage('client.sendQueriesBatch()', 'client.search()')); 33548 33549/** 33550 * Perform write operations accross multiple indexes. 33551 * 33552 * To reduce the amount of time spent on network round trips, 33553 * you can create, update, or delete several objects in one call, 33554 * using the batch endpoint (all operations are done in the given order). 33555 * 33556 * Available actions: 33557 * - addObject 33558 * - updateObject 33559 * - partialUpdateObject 33560 * - partialUpdateObjectNoCreate 33561 * - deleteObject 33562 * 33563 * https://www.algolia.com/doc/rest_api#Indexes 33564 * @param {Object[]} operations An array of operations to perform 33565 * @return {Promise|undefined} Returns a promise if no callback given 33566 * @example 33567 * client.batch([{ 33568 * action: 'addObject', 33569 * indexName: 'clients', 33570 * body: { 33571 * name: 'Bill' 33572 * } 33573 * }, { 33574 * action: 'udpateObject', 33575 * indexName: 'fruits', 33576 * body: { 33577 * objectID: '29138', 33578 * name: 'banana' 33579 * } 33580 * }], cb) 33581 */ 33582AlgoliaSearch.prototype.batch = function(operations, callback) { 33583 var isArray = __webpack_require__(23); 33584 var usage = 'Usage: client.batch(operations[, callback])'; 33585 33586 if (!isArray(operations)) { 33587 throw new Error(usage); 33588 } 33589 33590 return this._jsonRequest({ 33591 method: 'POST', 33592 url: '/1/indexes/*/batch', 33593 body: { 33594 requests: operations 33595 }, 33596 hostType: 'write', 33597 callback: callback 33598 }); 33599}; 33600 33601/** 33602 * Assign or Move a userID to a cluster 33603 * 33604 * @param {string} data.userID The userID to assign to a new cluster 33605 * @param {string} data.cluster The cluster to assign the user to 33606 * @return {Promise|undefined} Returns a promise if no callback given 33607 * @example 33608 * client.assignUserID({ cluster: 'c1-test', userID: 'some-user' }); 33609 */ 33610AlgoliaSearch.prototype.assignUserID = function(data, callback) { 33611 if (!data.userID || !data.cluster) { 33612 throw new errors.AlgoliaSearchError('You have to provide both a userID and cluster', data); 33613 } 33614 return this._jsonRequest({ 33615 method: 'POST', 33616 url: '/1/clusters/mapping', 33617 hostType: 'write', 33618 body: {cluster: data.cluster}, 33619 callback: callback, 33620 headers: { 33621 'x-algolia-user-id': data.userID 33622 } 33623 }); 33624}; 33625 33626/** 33627 * Get the top userIDs 33628 * 33629 * (the callback is the second argument) 33630 * 33631 * @return {Promise|undefined} Returns a promise if no callback given 33632 * @example 33633 * client.getTopUserID(); 33634 */ 33635AlgoliaSearch.prototype.getTopUserID = function(callback) { 33636 return this._jsonRequest({ 33637 method: 'GET', 33638 url: '/1/clusters/mapping/top', 33639 hostType: 'read', 33640 callback: callback 33641 }); 33642}; 33643 33644/** 33645 * Get userID 33646 * 33647 * @param {string} data.userID The userID to get info about 33648 * @return {Promise|undefined} Returns a promise if no callback given 33649 * @example 33650 * client.getUserID({ userID: 'some-user' }); 33651 */ 33652AlgoliaSearch.prototype.getUserID = function(data, callback) { 33653 if (!data.userID) { 33654 throw new errors.AlgoliaSearchError('You have to provide a userID', {debugData: data}); 33655 } 33656 return this._jsonRequest({ 33657 method: 'GET', 33658 url: '/1/clusters/mapping/' + data.userID, 33659 hostType: 'read', 33660 callback: callback 33661 }); 33662}; 33663 33664/**
33665 * List all the clusters 33666 * 33667 * (the callback is the second argument) 33668 * 33669 * @return {Promise|undefined} Returns a promise if no callback given 33670 * @example 33671 * client.listClusters(); 33672 */ 33673AlgoliaSearch.prototype.listClusters = function(callback) { 33674 return this._jsonRequest({ 33675 method: 'GET', 33676 url: '/1/clusters', 33677 hostType: 'read', 33678 callback: callback 33679 }); 33680}; 33681 33682/** 33683 * List the userIDs 33684 * 33685 * (the callback is the second argument) 33686 * 33687 * @param {string} data.hitsPerPage How many hits on every page 33688 * @param {string} data.page The page to retrieve 33689 * @return {Promise|undefined} Returns a promise if no callback given 33690 * @example 33691 * client.listClusters(); 33692 * client.listClusters({ page: 3, hitsPerPage: 30}); 33693 */ 33694AlgoliaSearch.prototype.listUserIDs = function(data, callback) { 33695 return this._jsonRequest({ 33696 method: 'GET', 33697 url: '/1/clusters/mapping', 33698 body: data, 33699 hostType: 'read', 33700 callback: callback 33701 }); 33702}; 33703 33704/** 33705 * Remove an userID 33706 * 33707 * @param {string} data.userID The userID to assign to a new cluster 33708 * @return {Promise|undefined} Returns a promise if no callback given 33709 * @example 33710 * client.removeUserID({ userID: 'some-user' }); 33711 */ 33712AlgoliaSearch.prototype.removeUserID = function(data, callback) { 33713 if (!data.userID) { 33714 throw new errors.AlgoliaSearchError('You have to provide a userID', {debugData: data}); 33715 } 33716 return this._jsonRequest({ 33717 method: 'DELETE', 33718 url: '/1/clusters/mapping', 33719 hostType: 'write', 33720 callback: callback, 33721 headers: { 33722 'x-algolia-user-id': data.userID 33723 } 33724 }); 33725}; 33726 33727/** 33728 * Search for userIDs 33729 * 33730 * @param {string} data.cluster The cluster to target 33731 * @param {string} data.query The query to execute 33732 * @param {string} data.hitsPerPage How many hits on every page 33733 * @param {string} data.page The page to retrieve 33734 * @return {Promise|undefined} Returns a promise if no callback given 33735 * @example 33736 * client.searchUserIDs({ cluster: 'c1-test', query: 'some-user' }); 33737 * client.searchUserIDs({ 33738 * cluster: "c1-test", 33739 * query: "some-user", 33740 * page: 3, 33741 * hitsPerPage: 2 33742 * }); 33743 */ 33744AlgoliaSearch.prototype.searchUserIDs = function(data, callback) { 33745 return this._jsonRequest({ 33746 method: 'POST', 33747 url: '/1/clusters/mapping/search', 33748 body: data, 33749 hostType: 'read', 33750 callback: callback 33751 }); 33752}; 33753 33754// environment specific methods 33755AlgoliaSearch.prototype.destroy = notImplemented; 33756AlgoliaSearch.prototype.enableRateLimitForward = notImplemented; 33757AlgoliaSearch.prototype.disableRateLimitForward = notImplemented; 33758AlgoliaSearch.prototype.useSecuredAPIKey = notImplemented; 33759AlgoliaSearch.prototype.disableSecuredAPIKey = notImplemented; 33760AlgoliaSearch.prototype.generateSecuredApiKey = notImplemented; 33761 33762function notImplemented() { 33763 var message = 'Not implemented in this environment.\n' + 33764 'If you feel this is a mistake, write to [email protected]'; 33765 33766 throw new errors.AlgoliaSearchError(message); 33767} 33768 33769 33770/***/ }), 33771/* 538 */ 33772/***/ (function(module, exports, __webpack_require__) { 33773 33774var inherits = __webpack_require__(80); 33775var IndexCore = __webpack_require__(220); 33776var deprecate = __webpack_require__(154); 33777var deprecatedMessage = __webpack_require__(155); 33778var exitPromise = __webpack_require__(224); 33779var errors = __webpack_require__(70); 33780 33781var deprecateForwardToSlaves = deprecate( 33782 function() {}, 33783 deprecatedMessage('forwardToSlaves', 'forwardToReplicas') 33784); 33785 33786module.exports = Index; 33787 33788function Index() { 33789 IndexCore.apply(this, arguments); 33790} 33791 33792inherits(Index, IndexCore); 33793 33794/* 33795* Add an object in this index 33796* 33797* @param content contains the javascript object to add inside the index 33798* @param objectID (optional) an objectID you want to attribute to this object 33799* (if the attribute already exist the old object will be overwrite) 33800* @param callback (optional) the result callback called with two arguments: 33801* error: null or Error('message') 33802* content: the server answer that contains 3 elements: createAt, taskId and objectID 33803*/ 33804Index.prototype.addObject = function(content, objectID, callback) { 33805 var indexObj = this; 33806 33807 if (arguments.length === 1 || typeof objectID === 'function') { 33808 callback = objectID; 33809 objectID = undefined; 33810 } 33811 33812 return this.as._jsonRequest({ 33813 method: objectID !== undefined ? 33814 'PUT' : // update or create 33815 'POST', // create (API generates an objectID) 33816 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + // create 33817 (objectID !== undefined ? '/' + encodeURIComponent(objectID) : ''), // update or create 33818 body: content, 33819 hostType: 'write', 33820 callback: callback 33821 }); 33822}; 33823 33824/* 33825* Add several objects 33826* 33827* @param objects contains an array of objects to add 33828* @param callback (optional) the result callback called with two arguments: 33829* error: null or Error('message') 33830* content: the server answer that updateAt and taskID 33831*/ 33832Index.prototype.addObjects = function(objects, callback) { 33833 var isArray = __webpack_require__(23); 33834 var usage = 'Usage: index.addObjects(arrayOfObjects[, callback])'; 33835 33836 if (!isArray(objects)) { 33837 throw new Error(usage); 33838 } 33839 33840 var indexObj = this; 33841 var postObj = { 33842 requests: [] 33843 }; 33844 for (var i = 0; i < objects.length; ++i) { 33845 var request = { 33846 action: 'addObject', 33847 body: objects[i] 33848 }; 33849 postObj.requests.push(request); 33850 } 33851 return this.as._jsonRequest({ 33852 method: 'POST', 33853 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch', 33854 body: postObj, 33855 hostType: 'write', 33856 callback: callback 33857 }); 33858}; 33859 33860/* 33861* Update partially an object (only update attributes passed in argument) 33862* 33863* @param partialObject contains the javascript attributes to override, the 33864* object must contains an objectID attribute 33865* @param createIfNotExists (optional) if false, avoid an automatic creation of the object 33866* @param callback (optional) the result callback called with two arguments: 33867* error: null or Error('message')
33868* content: the server answer that contains 3 elements: createAt, taskId and objectID 33869*/ 33870Index.prototype.partialUpdateObject = function(partialObject, createIfNotExists, callback) { 33871 if (arguments.length === 1 || typeof createIfNotExists === 'function') { 33872 callback = createIfNotExists; 33873 createIfNotExists = undefined; 33874 } 33875 33876 var indexObj = this; 33877 var url = '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(partialObject.objectID) + '/partial'; 33878 if (createIfNotExists === false) { 33879 url += '?createIfNotExists=false'; 33880 } 33881 33882 return this.as._jsonRequest({ 33883 method: 'POST', 33884 url: url, 33885 body: partialObject, 33886 hostType: 'write', 33887 callback: callback 33888 }); 33889}; 33890 33891/* 33892* Partially Override the content of several objects 33893* 33894* @param objects contains an array of objects to update (each object must contains a objectID attribute) 33895* @param callback (optional) the result callback called with two arguments: 33896* error: null or Error('message') 33897* content: the server answer that updateAt and taskID 33898*/ 33899Index.prototype.partialUpdateObjects = function(objects, createIfNotExists, callback) { 33900 if (arguments.length === 1 || typeof createIfNotExists === 'function') { 33901 callback = createIfNotExists; 33902 createIfNotExists = true; 33903 } 33904 33905 var isArray = __webpack_require__(23); 33906 var usage = 'Usage: index.partialUpdateObjects(arrayOfObjects[, callback])'; 33907 33908 if (!isArray(objects)) { 33909 throw new Error(usage); 33910 } 33911 33912 var indexObj = this; 33913 var postObj = { 33914 requests: [] 33915 }; 33916 for (var i = 0; i < objects.length; ++i) { 33917 var request = { 33918 action: createIfNotExists === true ? 'partialUpdateObject' : 'partialUpdateObjectNoCreate', 33919 objectID: objects[i].objectID, 33920 body: objects[i] 33921 }; 33922 postObj.requests.push(request); 33923 } 33924 return this.as._jsonRequest({ 33925 method: 'POST', 33926 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch', 33927 body: postObj, 33928 hostType: 'write', 33929 callback: callback 33930 }); 33931}; 33932 33933/* 33934* Override the content of object 33935* 33936* @param object contains the javascript object to save, the object must contains an objectID attribute 33937* @param callback (optional) the result callback called with two arguments: 33938* error: null or Error('message') 33939* content: the server answer that updateAt and taskID 33940*/ 33941Index.prototype.saveObject = function(object, callback) { 33942 var indexObj = this; 33943 return this.as._jsonRequest({ 33944 method: 'PUT', 33945 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(object.objectID), 33946 body: object, 33947 hostType: 'write', 33948 callback: callback 33949 }); 33950}; 33951 33952/* 33953* Override the content of several objects 33954* 33955* @param objects contains an array of objects to update (each object must contains a objectID attribute) 33956* @param callback (optional) the result callback called with two arguments: 33957* error: null or Error('message') 33958* content: the server answer that updateAt and taskID 33959*/ 33960Index.prototype.saveObjects = function(objects, callback) { 33961 var isArray = __webpack_require__(23); 33962 var usage = 'Usage: index.saveObjects(arrayOfObjects[, callback])'; 33963 33964 if (!isArray(objects)) { 33965 throw new Error(usage); 33966 } 33967 33968 var indexObj = this; 33969 var postObj = { 33970 requests: [] 33971 }; 33972 for (var i = 0; i < objects.length; ++i) { 33973 var request = { 33974 action: 'updateObject', 33975 objectID: objects[i].objectID, 33976 body: objects[i] 33977 }; 33978 postObj.requests.push(request); 33979 } 33980 return this.as._jsonRequest({ 33981 method: 'POST', 33982 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch', 33983 body: postObj, 33984 hostType: 'write', 33985 callback: callback 33986 }); 33987}; 33988 33989/* 33990* Delete an object from the index 33991* 33992* @param objectID the unique identifier of object to delete 33993* @param callback (optional) the result callback called with two arguments: 33994* error: null or Error('message') 33995* content: the server answer that contains 3 elements: createAt, taskId and objectID 33996*/ 33997Index.prototype.deleteObject = function(objectID, callback) { 33998 if (typeof objectID === 'function' || typeof objectID !== 'string' && typeof objectID !== 'number') { 33999 var err = new errors.AlgoliaSearchError( 34000 objectID && typeof objectID !== 'function' 34001 ? 'ObjectID must be a string' 34002 : 'Cannot delete an object without an objectID' 34003 ); 34004 callback = objectID; 34005 if (typeof callback === 'function') { 34006 return callback(err); 34007 } 34008 34009 return this.as._promise.reject(err); 34010 } 34011 34012 var indexObj = this; 34013 return this.as._jsonRequest({ 34014 method: 'DELETE', 34015 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID), 34016 hostType: 'write', 34017 callback: callback 34018 }); 34019}; 34020 34021/* 34022* Delete several objects from an index 34023* 34024* @param objectIDs contains an array of objectID to delete
34025* @param callback (optional) the result callback called with two arguments: 34026* error: null or Error('message') 34027* content: the server answer that contains 3 elements: createAt, taskId and objectID 34028*/ 34029Index.prototype.deleteObjects = function(objectIDs, callback) { 34030 var isArray = __webpack_require__(23); 34031 var map = __webpack_require__(72); 34032 34033 var usage = 'Usage: index.deleteObjects(arrayOfObjectIDs[, callback])'; 34034 34035 if (!isArray(objectIDs)) { 34036 throw new Error(usage); 34037 } 34038 34039 var indexObj = this; 34040 var postObj = { 34041 requests: map(objectIDs, function prepareRequest(objectID) { 34042 return { 34043 action: 'deleteObject', 34044 objectID: objectID, 34045 body: { 34046 objectID: objectID 34047 } 34048 }; 34049 }) 34050 }; 34051 34052 return this.as._jsonRequest({ 34053 method: 'POST', 34054 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch', 34055 body: postObj, 34056 hostType: 'write', 34057 callback: callback 34058 }); 34059}; 34060 34061/* 34062* Delete all objects matching a query 34063* 34064* @param query the query string 34065* @param params the optional query parameters 34066* @param callback (optional) the result callback called with one argument 34067* error: null or Error('message') 34068* @deprecated see index.deleteBy 34069*/ 34070Index.prototype.deleteByQuery = deprecate(function(query, params, callback) { 34071 var clone = __webpack_require__(48); 34072 var map = __webpack_require__(72); 34073 34074 var indexObj = this; 34075 var client = indexObj.as; 34076 34077 if (arguments.length === 1 || typeof params === 'function') { 34078 callback = params; 34079 params = {}; 34080 } else { 34081 params = clone(params); 34082 } 34083 34084 params.attributesToRetrieve = 'objectID'; 34085 params.hitsPerPage = 1000; 34086 params.distinct = false; 34087 34088 // when deleting, we should never use cache to get the 34089 // search results 34090 this.clearCache(); 34091 34092 // there's a problem in how we use the promise chain, 34093 // see how waitTask is done 34094 var promise = this 34095 .search(query, params) 34096 .then(stopOrDelete); 34097 34098 function stopOrDelete(searchContent) { 34099 // stop here 34100 if (searchContent.nbHits === 0) { 34101 // return indexObj.as._request.resolve(); 34102 return searchContent; 34103 } 34104 34105 // continue and do a recursive call 34106 var objectIDs = map(searchContent.hits, function getObjectID(object) { 34107 return object.objectID; 34108 }); 34109 34110 return indexObj 34111 .deleteObjects(objectIDs) 34112 .then(waitTask) 34113 .then(doDeleteByQuery); 34114 } 34115 34116 function waitTask(deleteObjectsContent) { 34117 return indexObj.waitTask(deleteObjectsContent.taskID); 34118 } 34119 34120 function doDeleteByQuery() { 34121 return indexObj.deleteByQuery(query, params); 34122 } 34123 34124 if (!callback) { 34125 return promise; 34126 } 34127 34128 promise.then(success, failure); 34129 34130 function success() { 34131 exitPromise(function exit() { 34132 callback(null); 34133 }, client._setTimeout || setTimeout); 34134 } 34135 34136 function failure(err) { 34137 exitPromise(function exit() { 34138 callback(err); 34139 }, client._setTimeout || setTimeout); 34140 } 34141}, deprecatedMessage('index.deleteByQuery()', 'index.deleteBy()')); 34142 34143/** 34144* Delete all objects matching a query 34145* 34146* the query parameters that can be used are: 34147* - filters (numeric, facet, tag) 34148* - geo 34149* 34150* you can not send an empty query or filters 34151* 34152* @param params the optional query parameters 34153* @param callback (optional) the result callback called with one argument 34154* error: null or Error('message') 34155*/ 34156Index.prototype.deleteBy = function(params, callback) { 34157 var indexObj = this; 34158 return this.as._jsonRequest({ 34159 method: 'POST', 34160 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/deleteByQuery', 34161 body: {params: indexObj.as._getSearchParams(params, '')}, 34162 hostType: 'write', 34163 callback: callback 34164 }); 34165}; 34166 34167/* 34168* Browse all content from an index using events. Basically this will do 34169* .browse() -> .browseFrom -> .browseFrom -> .. until all the results are returned 34170* 34171* @param {string} query - The full text query 34172* @param {Object} [queryParameters] - Any search query parameter 34173* @return {EventEmitter} 34174* @example 34175* var browser = index.browseAll('cool songs', { 34176* tagFilters: 'public,comments', 34177* hitsPerPage: 500 34178* }); 34179* 34180* browser.on('result', function resultCallback(content) { 34181* console.log(content.hits); 34182* }); 34183* 34184* // if any error occurs, you get it 34185* browser.on('error', function(err) { 34186* throw err; 34187* }); 34188* 34189* // when you have browsed the whole index, you get this event 34190* browser.on('end', function() { 34191* console.log('finished'); 34192* }); 34193* 34194* // at any point if you want to stop the browsing process, you can stop it manually 34195* // otherwise it will go on and on 34196* browser.stop(); 34197* 34198* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation} 34199*/ 34200Index.prototype.browseAll = function(query, queryParameters) { 34201 if (typeof query === 'object') { 34202 queryParameters = query; 34203 query = undefined; 34204 } 34205 34206 var merge = __webpack_require__(222); 34207 34208 var IndexBrowser = __webpack_require__(541); 34209 34210 var browser = new IndexBrowser(); 34211 var client = this.as; 34212 var index = this; 34213 var params = client._getSearchParams( 34214 merge({}, queryParameters || {}, { 34215 query: query 34216 }), '' 34217 ); 34218 34219 // start browsing 34220 browseLoop(); 34221 34222 function browseLoop(cursor) { 34223 if (browser._stopped) { 34224 return; 34225 } 34226 34227 var body; 34228 34229 if (cursor !== undefined) { 34230 body = {
34231 cursor: cursor 34232 }; 34233 } else { 34234 body = { 34235 params: params 34236 }; 34237 } 34238 34239 client._jsonRequest({ 34240 method: 'POST', 34241 url: '/1/indexes/' + encodeURIComponent(index.indexName) + '/browse', 34242 hostType: 'read', 34243 body: body, 34244 callback: browseCallback 34245 }); 34246 } 34247 34248 function browseCallback(err, content) { 34249 if (browser._stopped) { 34250 return; 34251 } 34252 34253 if (err) { 34254 browser._error(err); 34255 return; 34256 } 34257 34258 browser._result(content); 34259 34260 // no cursor means we are finished browsing 34261 if (content.cursor === undefined) { 34262 browser._end(); 34263 return; 34264 } 34265 34266 browseLoop(content.cursor); 34267 } 34268 34269 return browser; 34270}; 34271 34272/* 34273* Get a Typeahead.js adapter 34274* @param searchParams contains an object with query parameters (see search for details) 34275*/ 34276Index.prototype.ttAdapter = deprecate(function(params) { 34277 var self = this; 34278 return function ttAdapter(query, syncCb, asyncCb) { 34279 var cb; 34280 34281 if (typeof asyncCb === 'function') { 34282 // typeahead 0.11 34283 cb = asyncCb; 34284 } else { 34285 // pre typeahead 0.11 34286 cb = syncCb; 34287 } 34288 34289 self.search(query, params, function searchDone(err, content) { 34290 if (err) { 34291 cb(err); 34292 return; 34293 } 34294 34295 cb(content.hits); 34296 }); 34297 }; 34298}, 34299'ttAdapter is not necessary anymore and will be removed in the next version,\n' + 34300'have a look at autocomplete.js (https://github.com/algolia/autocomplete.js)'); 34301 34302/* 34303* Wait the publication of a task on the server. 34304* All server task are asynchronous and you can check with this method that the task is published. 34305* 34306* @param taskID the id of the task returned by server 34307* @param callback the result callback with with two arguments: 34308* error: null or Error('message') 34309* content: the server answer that contains the list of results 34310*/ 34311Index.prototype.waitTask = function(taskID, callback) { 34312 // wait minimum 100ms before retrying 34313 var baseDelay = 100; 34314 // wait maximum 5s before retrying 34315 var maxDelay = 5000; 34316 var loop = 0; 34317 34318 // waitTask() must be handled differently from other methods, 34319 // it's a recursive method using a timeout 34320 var indexObj = this; 34321 var client = indexObj.as; 34322 34323 var promise = retryLoop(); 34324 34325 function retryLoop() { 34326 return client._jsonRequest({ 34327 method: 'GET', 34328 hostType: 'read', 34329 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/task/' + taskID 34330 }).then(function success(content) { 34331 loop++; 34332 var delay = baseDelay * loop * loop; 34333 if (delay > maxDelay) { 34334 delay = maxDelay; 34335 } 34336 34337 if (content.status !== 'published') { 34338 return client._promise.delay(delay).then(retryLoop); 34339 } 34340 34341 return content; 34342 }); 34343 } 34344 34345 if (!callback) { 34346 return promise; 34347 } 34348 34349 promise.then(successCb, failureCb); 34350 34351 function successCb(content) { 34352 exitPromise(function exit() { 34353 callback(null, content); 34354 }, client._setTimeout || setTimeout); 34355 } 34356 34357 function failureCb(err) { 34358 exitPromise(function exit() { 34359 callback(err); 34360 }, client._setTimeout || setTimeout); 34361 } 34362}; 34363 34364/* 34365* This function deletes the index content. Settings and index specific API keys are kept untouched. 34366* 34367* @param callback (optional) the result callback called with two arguments 34368* error: null or Error('message') 34369* content: the settings object or the error message if a failure occured 34370*/ 34371Index.prototype.clearIndex = function(callback) { 34372 var indexObj = this; 34373 return this.as._jsonRequest({ 34374 method: 'POST', 34375 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/clear', 34376 hostType: 'write', 34377 callback: callback 34378 }); 34379}; 34380 34381/* 34382* Get settings of this index 34383* 34384* @param opts an object of options to add 34385* @param opts.advanced get more settings like nbShards (useful for Enterprise) 34386* @param callback (optional) the result callback called with two arguments 34387* error: null or Error('message') 34388* content: the settings object or the error message if a failure occurred 34389*/ 34390Index.prototype.getSettings = function(opts, callback) { 34391 if (arguments.length === 1 && typeof opts === 'function') { 34392 callback = opts; 34393 opts = {}; 34394 } 34395 opts = opts || {}; 34396 34397 var indexName = encodeURIComponent(this.indexName); 34398 return this.as._jsonRequest({ 34399 method: 'GET', 34400 url: 34401 '/1/indexes/' + 34402 indexName + 34403 '/settings?getVersion=2' + 34404 (opts.advanced ? '&advanced=' + opts.advanced : ''), 34405 hostType: 'read', 34406 callback: callback 34407 }); 34408}; 34409 34410Index.prototype.searchSynonyms = function(params, callback) { 34411 if (typeof params === 'function') { 34412 callback = params; 34413 params = {}; 34414 } else if (params === undefined) { 34415 params = {}; 34416 } 34417 34418 return this.as._jsonRequest({ 34419 method: 'POST', 34420 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/search', 34421 body: params, 34422 hostType: 'read', 34423 callback: callback 34424 }); 34425}; 34426 34427function exportData(method, _hitsPerPage, callback) { 34428 function search(page, _previous) { 34429 var options = { 34430 page: page || 0, 34431 hitsPerPage: _hitsPerPage || 100 34432 }; 34433 var previous = _previous || []; 34434 34435 return method(options).then(function(result) { 34436 var hits = result.hits; 34437 var nbHits = result.nbHits; 34438 var current = hits.map(function(s) { 34439 delete s._highlightResult; 34440 return s; 34441 }); 34442 var synonyms = previous.concat(current); 34443 if (synonyms.length < nbHits) { 34444 return search(options.page + 1, synonyms); 34445 } 34446 return synonyms; 34447 }); 34448 } 34449 return search().then(function(data) { 34450 if (typeof callback === 'function') { 34451 callback(data); 34452 return undefined; 34453 } 34454 return data; 34455 }); 34456} 34457 34458/** 34459 * Retrieve all the synonyms in an index 34460 * @param [number=100] hitsPerPage The amount of synonyms to retrieve per batch 34461 * @param [function] callback will be called after all synonyms are retrieved 34462 */
34463Index.prototype.exportSynonyms = function(hitsPerPage, callback) { 34464 return exportData(this.searchSynonyms.bind(this), hitsPerPage, callback); 34465}; 34466 34467Index.prototype.saveSynonym = function(synonym, opts, callback) { 34468 if (typeof opts === 'function') { 34469 callback = opts; 34470 opts = {}; 34471 } else if (opts === undefined) { 34472 opts = {}; 34473 } 34474 34475 if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves(); 34476 var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false'; 34477 34478 return this.as._jsonRequest({ 34479 method: 'PUT', 34480 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(synonym.objectID) + 34481 '?forwardToReplicas=' + forwardToReplicas, 34482 body: synonym, 34483 hostType: 'write', 34484 callback: callback 34485 }); 34486}; 34487 34488Index.prototype.getSynonym = function(objectID, callback) { 34489 return this.as._jsonRequest({ 34490 method: 'GET', 34491 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(objectID), 34492 hostType: 'read', 34493 callback: callback 34494 }); 34495}; 34496 34497Index.prototype.deleteSynonym = function(objectID, opts, callback) { 34498 if (typeof opts === 'function') { 34499 callback = opts; 34500 opts = {}; 34501 } else if (opts === undefined) { 34502 opts = {}; 34503 } 34504 34505 if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves(); 34506 var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false'; 34507 34508 return this.as._jsonRequest({ 34509 method: 'DELETE', 34510 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(objectID) + 34511 '?forwardToReplicas=' + forwardToReplicas, 34512 hostType: 'write', 34513 callback: callback 34514 }); 34515}; 34516 34517Index.prototype.clearSynonyms = function(opts, callback) { 34518 if (typeof opts === 'function') { 34519 callback = opts; 34520 opts = {}; 34521 } else if (opts === undefined) { 34522 opts = {}; 34523 } 34524 34525 if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves(); 34526 var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false'; 34527 34528 return this.as._jsonRequest({ 34529 method: 'POST', 34530 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/clear' + 34531 '?forwardToReplicas=' + forwardToReplicas, 34532 hostType: 'write', 34533 callback: callback 34534 }); 34535}; 34536 34537Index.prototype.batchSynonyms = function(synonyms, opts, callback) { 34538 if (typeof opts === 'function') { 34539 callback = opts; 34540 opts = {}; 34541 } else if (opts === undefined) { 34542 opts = {}; 34543 } 34544 34545 if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves(); 34546 var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false'; 34547 34548 return this.as._jsonRequest({ 34549 method: 'POST', 34550 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/batch' + 34551 '?forwardToReplicas=' + forwardToReplicas + 34552 '&replaceExistingSynonyms=' + (opts.replaceExistingSynonyms ? 'true' : 'false'), 34553 hostType: 'write', 34554 body: synonyms, 34555 callback: callback 34556 }); 34557}; 34558 34559Index.prototype.searchRules = function(params, callback) { 34560 if (typeof params === 'function') { 34561 callback = params; 34562 params = {}; 34563 } else if (params === undefined) { 34564 params = {}; 34565 } 34566 34567 return this.as._jsonRequest({ 34568 method: 'POST', 34569 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/search', 34570 body: params, 34571 hostType: 'read', 34572 callback: callback 34573 }); 34574}; 34575/** 34576 * Retrieve all the query rules in an index 34577 * @param [number=100] hitsPerPage The amount of query rules to retrieve per batch 34578 * @param [function] callback will be called after all query rules are retrieved 34579 * error: null or Error('message') 34580 */ 34581Index.prototype.exportRules = function(hitsPerPage, callback) { 34582 return exportData(this.searchRules.bind(this), hitsPerPage, callback); 34583}; 34584 34585Index.prototype.saveRule = function(rule, opts, callback) { 34586 if (typeof opts === 'function') { 34587 callback = opts; 34588 opts = {}; 34589 } else if (opts === undefined) { 34590 opts = {}; 34591 } 34592 34593 if (!rule.objectID) { 34594 throw new errors.AlgoliaSearchError('Missing or empty objectID field for rule'); 34595 } 34596 34597 var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false'; 34598 34599 return this.as._jsonRequest({ 34600 method: 'PUT', 34601 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(rule.objectID) + 34602 '?forwardToReplicas=' + forwardToReplicas, 34603 body: rule, 34604 hostType: 'write', 34605 callback: callback 34606 }); 34607}; 34608 34609Index.prototype.getRule = function(objectID, callback) { 34610 return this.as._jsonRequest({ 34611 method: 'GET', 34612 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(objectID), 34613 hostType: 'read', 34614 callback: callback 34615 }); 34616}; 34617 34618Index.prototype.deleteRule = function(objectID, opts, callback) { 34619 if (typeof opts === 'function') { 34620 callback = opts; 34621 opts = {}; 34622 } else if (opts === undefined) { 34623 opts = {}; 34624 } 34625 34626 var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false'; 34627 34628 return this.as._jsonRequest({ 34629 method: 'DELETE', 34630 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(objectID) + 34631 '?forwardToReplicas=' + forwardToReplicas, 34632 hostType: 'write', 34633 callback: callback 34634 }); 34635}; 34636 34637Index.prototype.clearRules = function(opts, callback) { 34638 if (typeof opts === 'function') { 34639 callback = opts; 34640 opts = {}; 34641 } else if (opts === undefined) { 34642 opts = {}; 34643 } 34644 34645 var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false'; 34646 34647 return this.as._jsonRequest({ 34648 method: 'POST', 34649 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/clear' + 34650 '?forwardToReplicas=' + forwardToReplicas, 34651 hostType: 'write', 34652 callback: callback 34653 }); 34654}; 34655 34656Index.prototype.batchRules = function(rules, opts, callback) { 34657 if (typeof opts === 'function') { 34658 callback = opts; 34659 opts = {}; 34660 } else if (opts === undefined) { 34661 opts = {}; 34662 } 34663 34664 var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false'; 34665 34666 return this.as._jsonRequest({ 34667 method: 'POST', 34668 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/batch' + 34669 '?forwardToReplicas=' + forwardToReplicas + 34670 '&clearExistingRules=' + (opts.clearExistingRules === true ? 'true' : 'false'), 34671 hostType: 'write', 34672 body: rules, 34673 callback: callback 34674 }); 34675}; 34676 34677/* 34678* Set settings for this index 34679* 34680* @param settigns the settings object that can contains : 34681* - minWordSizefor1Typo: (integer) the minimum number of characters to accept one typo (default = 3). 34682* - minWordSizefor2Typos: (integer) the minimum number of characters to accept two typos (default = 7). 34683* - hitsPerPage: (integer) the number of hits per page (default = 10).
34684* - attributesToRetrieve: (array of strings) default list of attributes to retrieve in objects. 34685* If set to null, all attributes are retrieved. 34686* - attributesToHighlight: (array of strings) default list of attributes to highlight. 34687* If set to null, all indexed attributes are highlighted. 34688* - attributesToSnippet**: (array of strings) default list of attributes to snippet alongside the number 34689* of words to return (syntax is attributeName:nbWords). 34690* By default no snippet is computed. If set to null, no snippet is computed. 34691* - attributesToIndex: (array of strings) the list of fields you want to index. 34692* If set to null, all textual and numerical attributes of your objects are indexed, 34693* but you should update it to get optimal results. 34694* This parameter has two important uses: 34695* - Limit the attributes to index: For example if you store a binary image in base64, 34696* you want to store it and be able to 34697* retrieve it but you don't want to search in the base64 string. 34698* - Control part of the ranking*: (see the ranking parameter for full explanation) 34699* Matches in attributes at the beginning of 34700* the list will be considered more important than matches in attributes further down the list. 34701* In one attribute, matching text at the beginning of the attribute will be 34702* considered more important than text after, you can disable 34703* this behavior if you add your attribute inside `unordered(AttributeName)`, 34704* for example attributesToIndex: ["title", "unordered(text)"]. 34705* - attributesForFaceting: (array of strings) The list of fields you want to use for faceting. 34706* All strings in the attribute selected for faceting are extracted and added as a facet. 34707* If set to null, no attribute is used for faceting. 34708* - attributeForDistinct: (string) The attribute name used for the Distinct feature. 34709* This feature is similar to the SQL "distinct" keyword: when enabled 34710* in query with the distinct=1 parameter, all hits containing a duplicate 34711* value for this attribute are removed from results. 34712* For example, if the chosen attribute is show_name and several hits have 34713* the same value for show_name, then only the best one is kept and others are removed. 34714* - ranking: (array of strings) controls the way results are sorted. 34715* We have six available criteria: 34716* - typo: sort according to number of typos, 34717* - geo: sort according to decreassing distance when performing a geo-location based search, 34718* - proximity: sort according to the proximity of query words in hits, 34719* - attribute: sort according to the order of attributes defined by attributesToIndex, 34720* - exact: 34721* - if the user query contains one word: sort objects having an attribute 34722* that is exactly the query word before others. 34723* For example if you search for the "V" TV show, you want to find it 34724* with the "V" query and avoid to have all popular TV 34725* show starting by the v letter before it. 34726* - if the user query contains multiple words: sort according to the 34727* number of words that matched exactly (and not as a prefix). 34728* - custom: sort according to a user defined formula set in **customRanking** attribute. 34729* The standard order is ["typo", "geo", "proximity", "attribute", "exact", "custom"] 34730* - customRanking: (array of strings) lets you specify part of the ranking. 34731* The syntax of this condition is an array of strings containing attributes 34732* prefixed by asc (ascending order) or desc (descending order) operator. 34733* For example `"customRanking" => ["desc(population)", "asc(name)"]` 34734* - queryType: Select how the query words are interpreted, it can be one of the following value: 34735* - prefixAll: all query words are interpreted as prefixes, 34736* - prefixLast: only the last word is interpreted as a prefix (default behavior), 34737* - prefixNone: no query word is interpreted as a prefix. This option is not recommended. 34738* - highlightPreTag: (string) Specify the string that is inserted before 34739* the highlighted parts in the query result (default to "<em>"). 34740* - highlightPostTag: (string) Specify the string that is inserted after 34741* the highlighted parts in the query result (default to "</em>").
34742* - optionalWords: (array of strings) Specify a list of words that should 34743* be considered as optional when found in the query. 34744* @param callback (optional) the result callback called with two arguments 34745* error: null or Error('message') 34746* content: the server answer or the error message if a failure occured 34747*/ 34748Index.prototype.setSettings = function(settings, opts, callback) { 34749 if (arguments.length === 1 || typeof opts === 'function') { 34750 callback = opts; 34751 opts = {}; 34752 } 34753 34754 if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves(); 34755 var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false'; 34756 34757 var indexObj = this; 34758 return this.as._jsonRequest({ 34759 method: 'PUT', 34760 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/settings?forwardToReplicas=' 34761 + forwardToReplicas, 34762 hostType: 'write', 34763 body: settings, 34764 callback: callback 34765 }); 34766}; 34767 34768/* 34769* @deprecated see client.listApiKeys() 34770*/ 34771Index.prototype.listUserKeys = deprecate(function(callback) { 34772 return this.listApiKeys(callback); 34773}, deprecatedMessage('index.listUserKeys()', 'client.listApiKeys()')); 34774 34775/* 34776* List all existing API keys to this index 34777* 34778* @param callback the result callback called with two arguments 34779* error: null or Error('message') 34780* content: the server answer with API keys belonging to the index 34781* 34782* @deprecated see client.listApiKeys() 34783*/ 34784Index.prototype.listApiKeys = deprecate(function(callback) { 34785 var indexObj = this; 34786 return this.as._jsonRequest({ 34787 method: 'GET', 34788 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys', 34789 hostType: 'read', 34790 callback: callback 34791 }); 34792}, deprecatedMessage('index.listApiKeys()', 'client.listApiKeys()')); 34793 34794/* 34795* @deprecated see client.getApiKey() 34796*/ 34797Index.prototype.getUserKeyACL = deprecate(function(key, callback) { 34798 return this.getApiKey(key, callback); 34799}, deprecatedMessage('index.getUserKeyACL()', 'client.getApiKey()')); 34800 34801 34802/* 34803* Get an API key from this index 34804* 34805* @param key 34806* @param callback the result callback called with two arguments 34807* error: null or Error('message') 34808* content: the server answer with the right API key 34809* 34810* @deprecated see client.getApiKey() 34811*/ 34812Index.prototype.getApiKey = deprecate(function(key, callback) { 34813 var indexObj = this; 34814 return this.as._jsonRequest({ 34815 method: 'GET', 34816 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key, 34817 hostType: 'read', 34818 callback: callback 34819 }); 34820}, deprecatedMessage('index.getApiKey()', 'client.getApiKey()')); 34821 34822/* 34823* @deprecated see client.deleteApiKey() 34824*/ 34825Index.prototype.deleteUserKey = deprecate(function(key, callback) { 34826 return this.deleteApiKey(key, callback); 34827}, deprecatedMessage('index.deleteUserKey()', 'client.deleteApiKey()')); 34828 34829/* 34830* Delete an existing API key associated to this index 34831* 34832* @param key 34833* @param callback the result callback called with two arguments 34834* error: null or Error('message') 34835* content: the server answer with the deletion date 34836* 34837* @deprecated see client.deleteApiKey() 34838*/ 34839Index.prototype.deleteApiKey = deprecate(function(key, callback) { 34840 var indexObj = this; 34841 return this.as._jsonRequest({ 34842 method: 'DELETE', 34843 url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key, 34844 hostType: 'write', 34845 callback: callback 34846 }); 34847}, deprecatedMessage('index.deleteApiKey()', 'client.deleteApiKey()')); 34848 34849/* 34850* @deprecated see client.addApiKey() 34851*/ 34852Index.prototype.addUserKey = deprecate(function(acls, params, callback) { 34853 return this.addApiKey(acls, params, callback); 34854}, deprecatedMessage('index.addUserKey()', 'client.addApiKey()')); 34855 34856/* 34857* Add a new API key to this index 34858* 34859* @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that 34860* can contains the following values: 34861* - search: allow to search (https and http) 34862* - addObject: allows to add/update an object in the index (https only) 34863* - deleteObject : allows to delete an existing object (https only) 34864* - deleteIndex : allows to delete index content (https only) 34865* - settings : allows to get index settings (https only) 34866* - editSettings : allows to change index settings (https only) 34867* @param {Object}
34867 [params] - Optionnal parameters to set for the key 34868* @param {number} params.validity - Number of seconds after which the key will 34869* be automatically removed (0 means no time limit for this key) 34870* @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour 34871* @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call 34872* @param {string} params.description - A description for your key 34873* @param {string[]} params.referers - A list of authorized referers 34874* @param {Object} params.queryParameters - Force the key to use specific query parameters 34875* @param {Function} callback - The result callback called with two arguments 34876* error: null or Error('message') 34877* content: the server answer with the added API key 34878* @return {Promise|undefined} Returns a promise if no callback given 34879* @example 34880* index.addUserKey(['search'], { 34881* validity: 300, 34882* maxQueriesPerIPPerHour: 2000, 34883* maxHitsPerQuery: 3, 34884* description: 'Eat three fruits', 34885* referers: ['*.algolia.com'], 34886* queryParameters: { 34887* tagFilters: ['public'], 34888* } 34889* }) 34890* @see {@link https://www.algolia.com/doc/rest_api#AddIndexKey|Algolia REST API Documentation} 34891* 34892* @deprecated see client.addApiKey() 34893*/ 34894Index.prototype.addApiKey = deprecate(function(acls, params, callback) { 34895 var isArray = __webpack_require__(23); 34896 var usage = 'Usage: index.addApiKey(arrayOfAcls[, params, callback])'; 34897 34898 if (!isArray(acls)) { 34899 throw new Error(usage); 34900 } 34901 34902 if (arguments.length === 1 || typeof params === 'function') { 34903 callback = params; 34904 params = null; 34905 } 34906 34907 var postObj = { 34908 acl: acls 34909 }; 34910 34911 if (params) { 34912 postObj.validity = params.validity; 34913 postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour; 34914 postObj.maxHitsPerQuery = params.maxHitsPerQuery; 34915 postObj.description = params.description; 34916 34917 if (params.queryParameters) { 34918 postObj.queryParameters = this.as._getSearchParams(params.queryParameters, ''); 34919 } 34920 34921 postObj.referers = params.referers; 34922 } 34923 34924 return this.as._jsonRequest({ 34925 method: 'POST', 34926 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys', 34927 body: postObj, 34928 hostType: 'write', 34929 callback: callback 34930 }); 34931}, deprecatedMessage('index.addApiKey()', 'client.addApiKey()')); 34932 34933/** 34934* @deprecated use client.addApiKey() 34935*/ 34936Index.prototype.addUserKeyWithValidity = deprecate(function deprecatedAddUserKeyWithValidity(acls, params, callback) { 34937 return this.addApiKey(acls, params, callback); 34938}, deprecatedMessage('index.addUserKeyWithValidity()', 'client.addApiKey()')); 34939 34940/* 34941* @deprecated see client.updateApiKey() 34942*/ 34943Index.prototype.updateUserKey = deprecate(function(key, acls, params, callback) { 34944 return this.updateApiKey(key, acls, params, callback); 34945}, deprecatedMessage('index.updateUserKey()', 'client.updateApiKey()')); 34946 34947/** 34948* Update an existing API key of this index 34949* @param {string} key - The key to update 34950* @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that 34951* can contains the following values: 34952* - search: allow to search (https and http) 34953* - addObject: allows to add/update an object in the index (https only) 34954* - deleteObject : allows to delete an existing object (https only) 34955* - deleteIndex : allows to delete index content (https only) 34956* - settings : allows to get index settings (https only) 34957* - editSettings : allows to change index settings (https only) 34958* @param {Object} [params] - Optionnal parameters to set for the key 34959* @param {number} params.validity - Number of seconds after which the key will 34960* be automatically removed (0 means no time limit for this key) 34961* @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour 34962* @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call 34963* @param {string} params.description - A description for your key 34964* @param {string[]} params.referers - A list of authorized referers 34965* @param {Object} params.queryParameters - Force the key to use specific query parameters 34966* @param {Function} callback - The result callback called with two arguments 34967* error: null or Error('message') 34968* content: the server answer with user keys list 34969* @return {Promise|undefined} Returns a promise if no callback given 34970* @example 34971* index.updateApiKey('APIKEY', ['search'], {
vendor: 6,071 bytes, lines 34972-35221
34972* validity: 300, 34973* maxQueriesPerIPPerHour: 2000, 34974* maxHitsPerQuery: 3, 34975* description: 'Eat three fruits', 34976* referers: ['*.algolia.com'], 34977* queryParameters: { 34978* tagFilters: ['public'], 34979* } 34980* }) 34981* @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation} 34982* 34983* @deprecated see client.updateApiKey() 34984*/ 34985Index.prototype.updateApiKey = deprecate(function(key, acls, params, callback) { 34986 var isArray = __webpack_require__(23); 34987 var usage = 'Usage: index.updateApiKey(key, arrayOfAcls[, params, callback])'; 34988 34989 if (!isArray(acls)) { 34990 throw new Error(usage); 34991 } 34992 34993 if (arguments.length === 2 || typeof params === 'function') { 34994 callback = params; 34995 params = null; 34996 } 34997 34998 var putObj = { 34999 acl: acls 35000 }; 35001 35002 if (params) { 35003 putObj.validity = params.validity; 35004 putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour; 35005 putObj.maxHitsPerQuery = params.maxHitsPerQuery; 35006 putObj.description = params.description; 35007 35008 if (params.queryParameters) { 35009 putObj.queryParameters = this.as._getSearchParams(params.queryParameters, ''); 35010 } 35011 35012 putObj.referers = params.referers; 35013 } 35014 35015 return this.as._jsonRequest({ 35016 method: 'PUT', 35017 url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys/' + key, 35018 body: putObj, 35019 hostType: 'write', 35020 callback: callback 35021 }); 35022}, deprecatedMessage('index.updateApiKey()', 'client.updateApiKey()')); 35023 35024 35025/***/ }), 35026/* 539 */ 35027/***/ (function(module, exports, __webpack_require__) { 35028 35029"use strict"; 35030 35031 35032// modified from https://github.com/es-shims/es5-shim 35033var has = Object.prototype.hasOwnProperty; 35034var toStr = Object.prototype.toString; 35035var slice = Array.prototype.slice; 35036var isArgs = __webpack_require__(540); 35037var isEnumerable = Object.prototype.propertyIsEnumerable; 35038var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); 35039var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); 35040var dontEnums = [ 35041 'toString', 35042 'toLocaleString', 35043 'valueOf', 35044 'hasOwnProperty', 35045 'isPrototypeOf', 35046 'propertyIsEnumerable', 35047 'constructor' 35048]; 35049var equalsConstructorPrototype = function (o) { 35050 var ctor = o.constructor; 35051 return ctor && ctor.prototype === o; 35052}; 35053var excludedKeys = { 35054 $applicationCache: true, 35055 $console: true, 35056 $external: true, 35057 $frame: true, 35058 $frameElement: true, 35059 $frames: true, 35060 $innerHeight: true, 35061 $innerWidth: true, 35062 $outerHeight: true, 35063 $outerWidth: true, 35064 $pageXOffset: true, 35065 $pageYOffset: true, 35066 $parent: true, 35067 $scrollLeft: true, 35068 $scrollTop: true, 35069 $scrollX: true, 35070 $scrollY: true, 35071 $self: true, 35072 $webkitIndexedDB: true, 35073 $webkitStorageInfo: true, 35074 $window: true 35075}; 35076var hasAutomationEqualityBug = (function () { 35077 /* global window */ 35078 if (typeof window === 'undefined') { return false; } 35079 for (var k in window) { 35080 try { 35081 if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { 35082 try { 35083 equalsConstructorPrototype(window[k]); 35084 } catch (e) { 35085 return true; 35086 } 35087 } 35088 } catch (e) { 35089 return true; 35090 } 35091 } 35092 return false; 35093}()); 35094var equalsConstructorPrototypeIfNotBuggy = function (o) { 35095 /* global window */ 35096 if (typeof window === 'undefined' || !hasAutomationEqualityBug) { 35097 return equalsConstructorPrototype(o); 35098 } 35099 try { 35100 return equalsConstructorPrototype(o); 35101 } catch (e) { 35102 return false; 35103 } 35104}; 35105 35106var keysShim = function keys(object) { 35107 var isObject = object !== null && typeof object === 'object'; 35108 var isFunction = toStr.call(object) === '[object Function]'; 35109 var isArguments = isArgs(object); 35110 var isString = isObject && toStr.call(object) === '[object String]'; 35111 var theKeys = []; 35112 35113 if (!isObject && !isFunction && !isArguments) { 35114 throw new TypeError('Object.keys called on a non-object'); 35115 } 35116 35117 var skipProto = hasProtoEnumBug && isFunction; 35118 if (isString && object.length > 0 && !has.call(object, 0)) { 35119 for (var i = 0; i < object.length; ++i) { 35120 theKeys.push(String(i)); 35121 } 35122 } 35123 35124 if (isArguments && object.length > 0) { 35125 for (var j = 0; j < object.length; ++j) { 35126 theKeys.push(String(j)); 35127 } 35128 } else { 35129 for (var name in object) { 35130 if (!(skipProto && name === 'prototype') && has.call(object, name)) { 35131 theKeys.push(String(name)); 35132 } 35133 } 35134 } 35135 35136 if (hasDontEnumBug) { 35137 var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); 35138 35139 for (var k = 0; k < dontEnums.length; ++k) { 35140 if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { 35141 theKeys.push(dontEnums[k]); 35142 } 35143 } 35144 } 35145 return theKeys; 35146}; 35147 35148keysShim.shim = function shimObjectKeys() { 35149 if (Object.keys) { 35150 var keysWorksWithArguments = (function () { 35151 // Safari 5.0 bug 35152 return (Object.keys(arguments) || '').length === 2; 35153 }(1, 2)); 35154 if (!keysWorksWithArguments) { 35155 var originalKeys = Object.keys; 35156 Object.keys = function keys(object) { // eslint-disable-line func-name-matching 35157 if (isArgs(object)) { 35158 return originalKeys(slice.call(object)); 35159 } else { 35160 return originalKeys(object); 35161 } 35162 }; 35163 } 35164 } else { 35165 Object.keys = keysShim; 35166 } 35167 return Object.keys || keysShim; 35168}; 35169 35170module.exports = keysShim; 35171 35172 35173/***/ }), 35174/* 540 */ 35175/***/ (function(module, exports, __webpack_require__) { 35176 35177"use strict"; 35178 35179 35180var toStr = Object.prototype.toString; 35181 35182module.exports = function isArguments(value) { 35183 var str = toStr.call(value); 35184 var isArgs = str === '[object Arguments]'; 35185 if (!isArgs) { 35186 isArgs = str !== '[object Array]' && 35187 value !== null && 35188 typeof value === 'object' && 35189 typeof value.length === 'number' && 35190 value.length >= 0 && 35191 toStr.call(value.callee) === '[object Function]'; 35192 } 35193 return isArgs; 35194}; 35195 35196 35197/***/ }), 35198/* 541 */ 35199/***/ (function(module, exports, __webpack_require__) { 35200 35201"use strict"; 35202 35203 35204// This is the object returned by the `index.browseAll()` method 35205 35206module.exports = IndexBrowser; 35207 35208var inherits = __webpack_require__(80); 35209var EventEmitter = __webpack_require__(542).EventEmitter; 35210 35211function IndexBrowser() { 35212} 35213 35214inherits(IndexBrowser, EventEmitter); 35215 35216IndexBrowser.prototype.stop = function() { 35217 this._stopped = true; 35218 this._clean(); 35219}; 35220 35221IndexBrowser.prototype._end = function() {
vendor: 4,201 bytes, lines 35222-35359
35222 this.emit('end'); 35223 this._clean(); 35224}; 35225 35226IndexBrowser.prototype._error = function(err) { 35227 this.emit('error', err); 35228 this._clean(); 35229}; 35230 35231IndexBrowser.prototype._result = function(content) { 35232 this.emit('result', content); 35233}; 35234 35235IndexBrowser.prototype._clean = function() { 35236 this.removeAllListeners('stop'); 35237 this.removeAllListeners('end'); 35238 this.removeAllListeners('error'); 35239 this.removeAllListeners('result'); 35240}; 35241 35242 35243/***/ }), 35244/* 542 */ 35245/***/ (function(module, exports) { 35246 35247// Copyright Joyent, Inc. and other Node contributors. 35248// 35249// Permission is hereby granted, free of charge, to any person obtaining a 35250// copy of this software and associated documentation files (the 35251// "Software"), to deal in the Software without restriction, including 35252// without limitation the rights to use, copy, modify, merge, publish, 35253// distribute, sublicense, and/or sell copies of the Software, and to permit 35254// persons to whom the Software is furnished to do so, subject to the 35255// following conditions: 35256// 35257// The above copyright notice and this permission notice shall be included 35258// in all copies or substantial portions of the Software. 35259// 35260// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 35261// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 35262// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 35263// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 35264// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 35265// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 35266// USE OR OTHER DEALINGS IN THE SOFTWARE. 35267 35268function EventEmitter() { 35269 this._events = this._events || {}; 35270 this._maxListeners = this._maxListeners || undefined; 35271} 35272module.exports = EventEmitter; 35273 35274// Backwards-compat with node 0.10.x 35275EventEmitter.EventEmitter = EventEmitter; 35276 35277EventEmitter.prototype._events = undefined; 35278EventEmitter.prototype._maxListeners = undefined; 35279 35280// By default EventEmitters will print a warning if more than 10 listeners are 35281// added to it. This is a useful default which helps finding memory leaks. 35282EventEmitter.defaultMaxListeners = 10; 35283 35284// Obviously not all Emitters should be limited to 10. This function allows 35285// that to be increased. Set to zero for unlimited. 35286EventEmitter.prototype.setMaxListeners = function(n) { 35287 if (!isNumber(n) || n < 0 || isNaN(n)) 35288 throw TypeError('n must be a positive number'); 35289 this._maxListeners = n; 35290 return this; 35291}; 35292 35293EventEmitter.prototype.emit = function(type) { 35294 var er, handler, len, args, i, listeners; 35295 35296 if (!this._events) 35297 this._events = {}; 35298 35299 // If there is no 'error' event listener then throw. 35300 if (type === 'error') { 35301 if (!this._events.error || 35302 (isObject(this._events.error) && !this._events.error.length)) { 35303 er = arguments[1]; 35304 if (er instanceof Error) { 35305 throw er; // Unhandled 'error' event 35306 } else { 35307 // At least give some kind of context to the user 35308 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); 35309 err.context = er; 35310 throw err; 35311 } 35312 } 35313 } 35314 35315 handler = this._events[type]; 35316 35317 if (isUndefined(handler)) 35318 return false; 35319 35320 if (isFunction(handler)) { 35321 switch (arguments.length) { 35322 // fast cases 35323 case 1: 35324 handler.call(this); 35325 break; 35326 case 2: 35327 handler.call(this, arguments[1]); 35328 break; 35329 case 3: 35330 handler.call(this, arguments[1], arguments[2]); 35331 break; 35332 // slower 35333 default: 35334 args = Array.prototype.slice.call(arguments, 1); 35335 handler.apply(this, args); 35336 } 35337 } else if (isObject(handler)) { 35338 args = Array.prototype.slice.call(arguments, 1); 35339 listeners = handler.slice(); 35340 len = listeners.length; 35341 for (i = 0; i < len; i++) 35342 listeners[i].apply(this, args); 35343 } 35344 35345 return true; 35346}; 35347 35348EventEmitter.prototype.addListener = function(type, listener) { 35349 var m; 35350 35351 if (!isFunction(listener)) 35352 throw TypeError('listener must be a function'); 35353 35354 if (!this._events) 35355 this._events = {}; 35356 35357 // To avoid recursion in the case that type === "newListener"! Before 35358 // adding it to the listeners, first emit "newListener". 35359 if (this._events.newListener)
vendor: 8,040 bytes, lines 35360-35640
35360 this.emit('newListener', type, 35361 isFunction(listener.listener) ? 35362 listener.listener : listener); 35363 35364 if (!this._events[type]) 35365 // Optimize the case of one listener. Don't need the extra array object. 35366 this._events[type] = listener; 35367 else if (isObject(this._events[type])) 35368 // If we've already got an array, just append. 35369 this._events[type].push(listener); 35370 else 35371 // Adding the second element, need to change to array. 35372 this._events[type] = [this._events[type], listener]; 35373 35374 // Check for listener leak 35375 if (isObject(this._events[type]) && !this._events[type].warned) { 35376 if (!isUndefined(this._maxListeners)) { 35377 m = this._maxListeners; 35378 } else { 35379 m = EventEmitter.defaultMaxListeners; 35380 } 35381 35382 if (m && m > 0 && this._events[type].length > m) { 35383 this._events[type].warned = true; 35384 console.error('(node) warning: possible EventEmitter memory ' + 35385 'leak detected. %d listeners added. ' + 35386 'Use emitter.setMaxListeners() to increase limit.', 35387 this._events[type].length); 35388 if (typeof console.trace === 'function') { 35389 // not supported in IE 10 35390 console.trace(); 35391 } 35392 } 35393 } 35394 35395 return this; 35396}; 35397 35398EventEmitter.prototype.on = EventEmitter.prototype.addListener; 35399 35400EventEmitter.prototype.once = function(type, listener) { 35401 if (!isFunction(listener)) 35402 throw TypeError('listener must be a function'); 35403 35404 var fired = false; 35405 35406 function g() { 35407 this.removeListener(type, g); 35408 35409 if (!fired) { 35410 fired = true; 35411 listener.apply(this, arguments); 35412 } 35413 } 35414 35415 g.listener = listener; 35416 this.on(type, g); 35417 35418 return this; 35419}; 35420 35421// emits a 'removeListener' event iff the listener was removed 35422EventEmitter.prototype.removeListener = function(type, listener) { 35423 var list, position, length, i; 35424 35425 if (!isFunction(listener)) 35426 throw TypeError('listener must be a function'); 35427 35428 if (!this._events || !this._events[type]) 35429 return this; 35430 35431 list = this._events[type]; 35432 length = list.length; 35433 position = -1; 35434 35435 if (list === listener || 35436 (isFunction(list.listener) && list.listener === listener)) { 35437 delete this._events[type]; 35438 if (this._events.removeListener) 35439 this.emit('removeListener', type, listener); 35440 35441 } else if (isObject(list)) { 35442 for (i = length; i-- > 0;) { 35443 if (list[i] === listener || 35444 (list[i].listener && list[i].listener === listener)) { 35445 position = i; 35446 break; 35447 } 35448 } 35449 35450 if (position < 0) 35451 return this; 35452 35453 if (list.length === 1) { 35454 list.length = 0; 35455 delete this._events[type]; 35456 } else { 35457 list.splice(position, 1); 35458 } 35459 35460 if (this._events.removeListener) 35461 this.emit('removeListener', type, listener); 35462 } 35463 35464 return this; 35465}; 35466 35467EventEmitter.prototype.removeAllListeners = function(type) { 35468 var key, listeners; 35469 35470 if (!this._events) 35471 return this; 35472 35473 // not listening for removeListener, no need to emit 35474 if (!this._events.removeListener) { 35475 if (arguments.length === 0) 35476 this._events = {}; 35477 else if (this._events[type]) 35478 delete this._events[type]; 35479 return this; 35480 } 35481 35482 // emit removeListener for all listeners on all events 35483 if (arguments.length === 0) { 35484 for (key in this._events) { 35485 if (key === 'removeListener') continue; 35486 this.removeAllListeners(key); 35487 } 35488 this.removeAllListeners('removeListener'); 35489 this._events = {}; 35490 return this; 35491 } 35492 35493 listeners = this._events[type]; 35494 35495 if (isFunction(listeners)) { 35496 this.removeListener(type, listeners); 35497 } else if (listeners) { 35498 // LIFO order 35499 while (listeners.length) 35500 this.removeListener(type, listeners[listeners.length - 1]); 35501 } 35502 delete this._events[type]; 35503 35504 return this; 35505}; 35506 35507EventEmitter.prototype.listeners = function(type) { 35508 var ret; 35509 if (!this._events || !this._events[type]) 35510 ret = []; 35511 else if (isFunction(this._events[type])) 35512 ret = [this._events[type]]; 35513 else 35514 ret = this._events[type].slice(); 35515 return ret; 35516}; 35517 35518EventEmitter.prototype.listenerCount = function(type) { 35519 if (this._events) { 35520 var evlistener = this._events[type]; 35521 35522 if (isFunction(evlistener)) 35523 return 1; 35524 else if (evlistener) 35525 return evlistener.length; 35526 } 35527 return 0; 35528}; 35529 35530EventEmitter.listenerCount = function(emitter, type) { 35531 return emitter.listenerCount(type); 35532}; 35533 35534function isFunction(arg) { 35535 return typeof arg === 'function'; 35536} 35537 35538function isNumber(arg) { 35539 return typeof arg === 'number'; 35540} 35541 35542function isObject(arg) { 35543 return typeof arg === 'object' && arg !== null; 35544} 35545 35546function isUndefined(arg) { 35547 return arg === void 0; 35548} 35549 35550 35551/***/ }), 35552/* 543 */ 35553/***/ (function(module, exports, __webpack_require__) { 35554 35555/* WEBPACK VAR INJECTION */(function(process) {module.exports = AlgoliaSearchCore; 35556 35557var errors = __webpack_require__(70); 35558var exitPromise = __webpack_require__(224); 35559var IndexCore = __webpack_require__(220); 35560var store = __webpack_require__(544); 35561 35562// We will always put the API KEY in the JSON body in case of too long API KEY, 35563// to avoid query string being too long and failing in various conditions (our server limit, browser limit, 35564// proxies limit) 35565var MAX_API_KEY_LENGTH = 500; 35566var RESET_APP_DATA_TIMER = 35567 process.env.RESET_APP_DATA_TIMER && parseInt(process.env.RESET_APP_DATA_TIMER, 10) || 35568 60 * 2 * 1000; // after 2 minutes reset to first host 35569 35570/* 35571 * Algolia Search library initialization 35572 * https://www.algolia.com/ 35573 * 35574 * @param {string} applicationID - Your applicationID, found in your dashboard 35575 * @param {string} apiKey - Your API key, found in your dashboard 35576 * @param {Object} [opts] 35577 * @param {number} [opts.timeout=2000] - The request timeout set in milliseconds, 35578 * another request will be issued after this timeout 35579 * @param {string} [opts.protocol='https:'] - The protocol used to query Algolia Search API. 35580 * Set to 'http:' to force using http. 35581 * @param {Object|Array} [opts.hosts={ 35582 * read: [this.applicationID + '-dsn.algolia.net'].concat([ 35583 * this.applicationID + '-1.algolianet.com', 35584 * this.applicationID + '-2.algolianet.com', 35585 * this.applicationID + '-3.algolianet.com'] 35586 * ]), 35587 * write: [this.applicationID + '.algolia.net'].concat([ 35588 * this.applicationID + '-1.algolianet.com', 35589 * this.applicationID + '-2.algolianet.com', 35590 * this.applicationID + '-3.algolianet.com'] 35591 * ]) - The hosts to use for Algolia Search API. 35592 * If you provide them, you will less benefit from our HA implementation 35593 */ 35594function AlgoliaSearchCore(applicationID, apiKey, opts) { 35595 var debug = __webpack_require__(81)('algoliasearch'); 35596 35597 var clone = __webpack_require__(48); 35598 var isArray = __webpack_require__(23); 35599 var map = __webpack_require__(72); 35600 35601 var usage = 'Usage: algoliasearch(applicationID, apiKey, opts)'; 35602 35603 if (opts._allowEmptyCredentials !== true && !applicationID) { 35604 throw new errors.AlgoliaSearchError('Please provide an application ID. ' + usage); 35605 } 35606 35607 if (opts._allowEmptyCredentials !== true && !apiKey) { 35608 throw new errors.AlgoliaSearchError('Please provide an API key. ' + usage); 35609 } 35610 35611 this.applicationID = applicationID; 35612 this.apiKey = apiKey; 35613 35614 this.hosts = { 35615 read: [], 35616 write: [] 35617 }; 35618 35619 opts = opts || {}; 35620 35621 this._timeouts = opts.timeouts || { 35622 connect: 1 * 1000, // 500ms connect is GPRS latency 35623 read: 2 * 1000, 35624 write: 30 * 1000 35625 }; 35626 35627 // backward compat, if opts.timeout is passed, we use it to configure all timeouts like before 35628 if (opts.timeout) { 35629 this._timeouts.connect = this._timeouts.read = this._timeouts.write = opts.timeout; 35630 } 35631 35632 var protocol = opts.protocol || 'https:'; 35633 // while we advocate for colon-at-the-end values: 'http:' for `opts.protocol` 35634 // we also accept `http` and `https`. It's a common error. 35635 if (!/:$/.test(protocol)) { 35636 protocol = protocol + ':'; 35637 } 35638 35639 if (protocol !== 'http:' && protocol !== 'https:') { 35640 throw new errors.AlgoliaSearchError('protocol must be `http:` or `https:`
vendor: 37,629 bytes, lines 35640-37002
35640(was `' + opts.protocol + '`)'); 35641 } 35642 35643 this._checkAppIdData(); 35644 35645 if (!opts.hosts) { 35646 var defaultHosts = map(this._shuffleResult, function(hostNumber) { 35647 return applicationID + '-' + hostNumber + '.algolianet.com'; 35648 }); 35649 35650 // no hosts given, compute defaults 35651 var mainSuffix = (opts.dsn === false ? '' : '-dsn') + '.algolia.net'; 35652 this.hosts.read = [this.applicationID + mainSuffix].concat(defaultHosts); 35653 this.hosts.write = [this.applicationID + '.algolia.net'].concat(defaultHosts); 35654 } else if (isArray(opts.hosts)) { 35655 // when passing custom hosts, we need to have a different host index if the number 35656 // of write/read hosts are different. 35657 this.hosts.read = clone(opts.hosts); 35658 this.hosts.write = clone(opts.hosts); 35659 } else { 35660 this.hosts.read = clone(opts.hosts.read); 35661 this.hosts.write = clone(opts.hosts.write); 35662 } 35663 35664 // add protocol and lowercase hosts 35665 this.hosts.read = map(this.hosts.read, prepareHost(protocol)); 35666 this.hosts.write = map(this.hosts.write, prepareHost(protocol)); 35667 35668 this.extraHeaders = {}; 35669 35670 // In some situations you might want to warm the cache 35671 this.cache = opts._cache || {}; 35672 35673 this._ua = opts._ua; 35674 this._useCache = opts._useCache === undefined || opts._cache ? true : opts._useCache; 35675 this._useRequestCache = this._useCache && opts._useRequestCache; 35676 this._useFallback = opts.useFallback === undefined ? true : opts.useFallback; 35677 35678 this._setTimeout = opts._setTimeout; 35679 35680 debug('init done, %j', this); 35681} 35682 35683/* 35684 * Get the index object initialized 35685 * 35686 * @param indexName the name of index 35687 * @param callback the result callback with one argument (the Index instance) 35688 */ 35689AlgoliaSearchCore.prototype.initIndex = function(indexName) { 35690 return new IndexCore(this, indexName); 35691}; 35692 35693/** 35694* Add an extra field to the HTTP request 35695* 35696* @param name the header field name 35697* @param value the header field value 35698*/ 35699AlgoliaSearchCore.prototype.setExtraHeader = function(name, value) { 35700 this.extraHeaders[name.toLowerCase()] = value; 35701}; 35702 35703/** 35704* Get the value of an extra HTTP header 35705* 35706* @param name the header field name 35707*/ 35708AlgoliaSearchCore.prototype.getExtraHeader = function(name) { 35709 return this.extraHeaders[name.toLowerCase()]; 35710}; 35711 35712/** 35713* Remove an extra field from the HTTP request 35714* 35715* @param name the header field name 35716*/ 35717AlgoliaSearchCore.prototype.unsetExtraHeader = function(name) { 35718 delete this.extraHeaders[name.toLowerCase()]; 35719}; 35720 35721/** 35722* Augment sent x-algolia-agent with more data, each agent part 35723* is automatically separated from the others by a semicolon; 35724* 35725* @param algoliaAgent the agent to add 35726*/ 35727AlgoliaSearchCore.prototype.addAlgoliaAgent = function(algoliaAgent) { 35728 if (this._ua.indexOf(';' + algoliaAgent) === -1) { 35729 this._ua += ';' + algoliaAgent; 35730 } 35731}; 35732 35733/* 35734 * Wrapper that try all hosts to maximize the quality of service 35735 */ 35736AlgoliaSearchCore.prototype._jsonRequest = function(initialOpts) { 35737 this._checkAppIdData(); 35738 35739 var requestDebug = __webpack_require__(81)('algoliasearch:' + initialOpts.url); 35740 35741 35742 var body; 35743 var cacheID; 35744 var additionalUA = initialOpts.additionalUA || ''; 35745 var cache = initialOpts.cache; 35746 var client = this; 35747 var tries = 0; 35748 var usingFallback = false; 35749 var hasFallback = client._useFallback && client._request.fallback && initialOpts.fallback; 35750 var headers; 35751 35752 if ( 35753 this.apiKey.length > MAX_API_KEY_LENGTH && 35754 initialOpts.body !== undefined && 35755 (initialOpts.body.params !== undefined || // index.search() 35756 initialOpts.body.requests !== undefined) // client.search() 35757 ) { 35758 initialOpts.body.apiKey = this.apiKey; 35759 headers = this._computeRequestHeaders({ 35760 additionalUA: additionalUA, 35761 withApiKey: false, 35762 headers: initialOpts.headers 35763 }); 35764 } else { 35765 headers = this._computeRequestHeaders({ 35766 additionalUA: additionalUA, 35767 headers: initialOpts.headers 35768 }); 35769 } 35770 35771 if (initialOpts.body !== undefined) { 35772 body = safeJSONStringify(initialOpts.body); 35773 } 35774 35775 requestDebug('request start'); 35776 var debugData = []; 35777 35778 35779 function doRequest(requester, reqOpts) { 35780 client._checkAppIdData(); 35781 35782 var startTime = new Date(); 35783 35784 if (client._useCache && !client._useRequestCache) { 35785 cacheID = initialOpts.url; 35786 } 35787 35788 // as we sometime use POST requests to pass parameters (like query='aa'), 35789 // the cacheID must also include the body to be different between calls 35790 if (client._useCache && !client._useRequestCache && body) { 35791 cacheID += '_body_' + reqOpts.body; 35792 } 35793 35794 // handle cache existence 35795 if (isCacheValidWithCurrentID(!client._useRequestCache, cache, cacheID)) { 35796 requestDebug('serving response from cache'); 35797 35798 var responseText = cache[cacheID]; 35799 35800 // Cache response must match the type of the original one 35801 return client._promise.resolve({ 35802 body: JSON.parse(responseText), 35803 responseText: responseText 35804 }); 35805 } 35806 35807 // if we reached max tries 35808 if (tries >= client.hosts[initialOpts.hostType].length) { 35809 if (!hasFallback || usingFallback) { 35810 requestDebug('could not get any response'); 35811 // then stop 35812 return client._promise.reject(new errors.AlgoliaSearchError( 35813 'Cannot connect to the AlgoliaSearch API.' + 35814 ' Send an email to [email protected] to report and resolve the issue.' + 35815 ' Application id was: ' + client.applicationID, {debugData: debugData} 35816 )); 35817 } 35818 35819 requestDebug('switching to fallback'); 35820 35821 // let's try the fallback starting from here 35822 tries = 0; 35823 35824 // method, url and body are fallback dependent 35825 reqOpts.method = initialOpts.fallback.method; 35826 reqOpts.url = initialOpts.fallback.url; 35827 reqOpts.jsonBody = initialOpts.fallback.body; 35828 if (reqOpts.jsonBody) { 35829 reqOpts.body = safeJSONStringify(reqOpts.jsonBody); 35830 } 35831 // re-compute headers, they could be omitting the API KEY 35832 headers = client._computeRequestHeaders({ 35833 additionalUA: additionalUA, 35834 headers: initialOpts.headers 35835 }); 35836 35837 reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType); 35838 client._setHostIndexByType(0, initialOpts.hostType); 35839 usingFallback = true; // the current request is now using fallback 35840 return doRequest(client._request.fallback, reqOpts); 35841 } 35842 35843 var currentHost = client._getHostByType(initialOpts.hostType); 35844 35845 var url = currentHost + reqOpts.url; 35846 var options = { 35847 body: reqOpts.body, 35848 jsonBody: reqOpts.jsonBody, 35849 method: reqOpts.method, 35850 headers: headers, 35851 timeouts: reqOpts.timeouts, 35852 debug: requestDebug, 35853 forceAuthHeaders: reqOpts.forceAuthHeaders 35854 }; 35855 35856 requestDebug('method: %s, url: %s, headers: %j, timeouts: %d', 35857 options.method, url, options.headers, options.timeouts); 35858 35859 if (requester === client._request.fallback) { 35860 requestDebug('using fallback'); 35861 } 35862 35863 // `requester` is any of this._request or this._request.fallback 35864 // thus it needs to be called using the client as context 35865 return requester.call(client, url, options).then(success, tryFallback); 35866 35867 function success(httpResponse) { 35868 // compute the status of the response, 35869 // 35870 // When in browser mode, using XDR or JSONP, we have no statusCode available 35871 // So we rely on our API response `status` property. 35872 // But `waitTask` can set a `status` property which is not the statusCode (it's the task status) 35873 // So we check if there's a `message` along `status` and it means it's an error 35874 // 35875 // That's the only case where we have a response.status that's not the http statusCode 35876 var status = httpResponse && httpResponse.body && httpResponse.body.message && httpResponse.body.status || 35877 35878 // this is important to check the request statusCode AFTER the body eventual 35879 // statusCode because some implementations (jQuery XDomainRequest transport) may 35880 // send statusCode 200 while we had an error 35881 httpResponse.statusCode || 35882 35883 // When in browser mode, using XDR or JSONP 35884 // we default to success when no error (no response.status && response.message) 35885 // If there was a JSON.parse() error then body is null and it fails 35886 httpResponse && httpResponse.body && 200; 35887 35888 requestDebug('received response: statusCode: %s, computed statusCode: %d, headers: %j', 35889 httpResponse.statusCode, status, httpResponse.headers); 35890 35891 var httpResponseOk = Math.floor(status / 100) === 2; 35892 35893 var endTime = new Date(); 35894 debugData.push({ 35895 currentHost: currentHost, 35896 headers: removeCredentials(headers), 35897 content: body || null, 35898 contentLength: body !== undefined ? body.length : null, 35899 method: reqOpts.method, 35900 timeouts: reqOpts.timeouts, 35901 url: reqOpts.url, 35902 startTime: startTime, 35903 endTime: endTime, 35904 duration: endTime - startTime, 35905 statusCode: status 35906 }); 35907 35908 if (httpResponseOk) { 35909 if (client._useCache && !client._useRequestCache && cache) { 35910 cache[cacheID] = httpResponse.responseText; 35911 } 35912 35913 return { 35914 responseText: httpResponse.responseText, 35915 body: httpResponse.body 35916 }; 35917 } 35918 35919 var shouldRetry = Math.floor(status / 100) !== 4; 35920 35921 if (shouldRetry) { 35922 tries += 1; 35923 return retryRequest(); 35924 } 35925 35926 requestDebug('unrecoverable error'); 35927 35928 // no success and no retry => fail 35929 var unrecoverableError = new errors.AlgoliaSearchError( 35930 httpResponse.body && httpResponse.body.message, {debugData: debugData, statusCode: status} 35931 ); 35932 35933 return client._promise.reject(unrecoverableError); 35934 } 35935 35936 function tryFallback(err) { 35937 // error cases: 35938 // While not in fallback mode: 35939 // - CORS not supported 35940 // - network error 35941 // While in fallback mode: 35942 // - timeout 35943 // - network error 35944 // - badly formatted JSONP (script loaded, did not call our callback) 35945 // In both cases: 35946 // - uncaught exception occurs (TypeError) 35947 requestDebug('error: %s, stack: %s', err.message, err.stack); 35948 35949 var endTime = new Date(); 35950 debugData.push({ 35951 currentHost: currentHost, 35952 headers: removeCredentials(headers), 35953 content: body || null, 35954 contentLength: body !== undefined ? body.length : null, 35955 method: reqOpts.method, 35956 timeouts: reqOpts.timeouts, 35957 url: reqOpts.url, 35958 startTime: startTime, 35959 endTime: endTime, 35960 duration: endTime - startTime 35961 }); 35962 35963 if (!(err instanceof errors.AlgoliaSearchError)) { 35964 err = new errors.Unknown(err && err.message, err); 35965 } 35966 35967 tries += 1; 35968 35969 // stop the request implementation when: 35970 if ( 35971 // we did not generate this error, 35972 // it comes from a throw in some other piece of code 35973 err instanceof errors.Unknown || 35974 35975 // server sent unparsable JSON 35976 err instanceof errors.UnparsableJSON || 35977 35978 // max tries and already using fallback or no fallback 35979 tries >= client.hosts[initialOpts.hostType].length && 35980 (usingFallback || !hasFallback)) { 35981 // stop request implementation for this command 35982 err.debugData = debugData; 35983 return client._promise.reject(err); 35984 } 35985 35986 // When a timeout occured, retry by raising timeout 35987 if (err instanceof errors.RequestTimeout) { 35988 return retryRequestWithHigherTimeout(); 35989 } 35990 35991 return retryRequest(); 35992 } 35993 35994 function retryRequest() { 35995 requestDebug('retrying request'); 35996 client._incrementHostIndex(initialOpts.hostType); 35997 return doRequest(requester, reqOpts); 35998 } 35999 36000 function retryRequestWithHigherTimeout() { 36001 requestDebug('retrying request with higher timeout'); 36002 client._incrementHostIndex(initialOpts.hostType); 36003 client._incrementTimeoutMultipler(); 36004 reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType); 36005 return doRequest(requester, reqOpts); 36006 } 36007 } 36008 36009 function isCacheValidWithCurrentID( 36010 useRequestCache, 36011 currentCache, 36012 currentCacheID 36013 ) { 36014 return ( 36015 client._useCache && 36016 useRequestCache && 36017 currentCache && 36018 currentCache[currentCacheID] !== undefined 36019 ); 36020 } 36021 36022 36023 function interopCallbackReturn(request, callback) { 36024 if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) { 36025 request.catch(function() { 36026 // Release the cache on error 36027 delete cache[cacheID]; 36028 }); 36029 } 36030 36031 if (typeof initialOpts.callback === 'function') { 36032 // either we have a callback 36033 request.then(function okCb(content) { 36034 exitPromise(function() { 36035 initialOpts.callback(null, callback(content)); 36036 }, client._setTimeout || setTimeout); 36037 }, function nookCb(err) { 36038 exitPromise(function() { 36039 initialOpts.callback(err); 36040 }, client._setTimeout || setTimeout); 36041 }); 36042 } else { 36043 // either we are using promises 36044 return request.then(callback); 36045 } 36046 } 36047 36048 if (client._useCache && client._useRequestCache) { 36049 cacheID = initialOpts.url; 36050 } 36051 36052 // as we sometime use POST requests to pass parameters (like query='aa'), 36053 // the cacheID must also include the body to be different between calls 36054 if (client._useCache && client._useRequestCache && body) { 36055 cacheID += '_body_' + body; 36056 } 36057 36058 if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) { 36059 requestDebug('serving request from cache'); 36060 36061 var maybePromiseForCache = cache[cacheID]; 36062 36063 // In case the cache is warmup with value that is not a promise 36064 var promiseForCache = typeof maybePromiseForCache.then !== 'function' 36065 ? client._promise.resolve({responseText: maybePromiseForCache}) 36066 : maybePromiseForCache; 36067 36068 return interopCallbackReturn(promiseForCache, function(content) { 36069 // In case of the cache request, return the original value 36070 return JSON.parse(content.responseText); 36071 }); 36072 } 36073 36074 var request = doRequest( 36075 client._request, { 36076 url: initialOpts.url, 36077 method: initialOpts.method, 36078 body: body, 36079 jsonBody: initialOpts.body, 36080 timeouts: client._getTimeoutsForRequest(initialOpts.hostType), 36081 forceAuthHeaders: initialOpts.forceAuthHeaders 36082 } 36083 ); 36084 36085 if (client._useCache && client._useRequestCache && cache) { 36086 cache[cacheID] = request; 36087 } 36088 36089 return interopCallbackReturn(request, function(content) { 36090 // In case of the first request, return the JSON value 36091 return content.body; 36092 }); 36093}; 36094 36095/* 36096* Transform search param object in query string 36097* @param {object} args arguments to add to the current query string 36098* @param {string} params current query string 36099* @return {string} the final query string 36100*/ 36101AlgoliaSearchCore.prototype._getSearchParams = function(args, params) { 36102 if (args === undefined || args === null) { 36103 return params; 36104 } 36105 for (var key in args) { 36106 if (key !== null && args[key] !== undefined && args.hasOwnProperty(key)) { 36107 params += params === '' ? '' : '&'; 36108 params += key + '=' + encodeURIComponent(Object.prototype.toString.call(args[key]) === '[object Array]' ? safeJSONStringify(args[key]) : args[key]); 36109 } 36110 } 36111 return params; 36112}; 36113 36114/** 36115 * Compute the headers for a request 36116 * 36117 * @param [string] options.additionalUA semi-colon separated string with other user agents to add 36118 * @param [boolean=true] options.withApiKey Send the api key as a header 36119 * @param [Object] options.headers Extra headers to send 36120 */ 36121AlgoliaSearchCore.prototype._computeRequestHeaders = function(options) { 36122 var forEach = __webpack_require__(71); 36123 36124 var ua = options.additionalUA ? 36125 this._ua + ';' + options.additionalUA : 36126 this._ua; 36127 36128 var requestHeaders = { 36129 'x-algolia-agent': ua, 36130 'x-algolia-application-id': this.applicationID 36131 }; 36132 36133 // browser will inline headers in the url, node.js will use http headers 36134 // but in some situations, the API KEY will be too long (big secured API keys) 36135 // so if the request is a POST and the KEY is very long, we will be asked to not put 36136 // it into headers but in the JSON body 36137 if (options.withApiKey !== false) { 36138 requestHeaders['x-algolia-api-key'] = this.apiKey; 36139 } 36140 36141 if (this.userToken) { 36142 requestHeaders['x-algolia-usertoken'] = this.userToken; 36143 } 36144 36145 if (this.securityTags) { 36146 requestHeaders['x-algolia-tagfilters'] = this.securityTags; 36147 } 36148 36149 forEach(this.extraHeaders, function addToRequestHeaders(value, key) { 36150 requestHeaders[key] = value; 36151 }); 36152 36153 if (options.headers) { 36154 forEach(options.headers, function addToRequestHeaders(value, key) { 36155 requestHeaders[key] = value; 36156 }); 36157 } 36158 36159 return requestHeaders; 36160}; 36161 36162/** 36163 * Search through multiple indices at the same time 36164 * @param {Object[]} queries An array of queries you want to run. 36165 * @param {string} queries[].indexName The index name you want to target 36166 * @param {string} [queries[].query] The query to issue on this index. Can also be passed into `params` 36167 * @param {Object} queries[].params Any search param like hitsPerPage, .. 36168 * @param {Function} callback Callback to be called 36169 * @return {Promise|undefined} Returns a promise if no callback given 36170 */ 36171AlgoliaSearchCore.prototype.search = function(queries, opts, callback) { 36172 var isArray = __webpack_require__(23); 36173 var map = __webpack_require__(72); 36174 36175 var usage = 'Usage: client.search(arrayOfQueries[, callback])'; 36176 36177 if (!isArray(queries)) { 36178 throw new Error(usage); 36179 } 36180 36181 if (typeof opts === 'function') { 36182 callback = opts; 36183 opts = {}; 36184 } else if (opts === undefined) { 36185 opts = {}; 36186 } 36187 36188 var client = this; 36189 36190 var postObj = { 36191 requests: map(queries, function prepareRequest(query) { 36192 var params = ''; 36193 36194 // allow query.query 36195 // so we are mimicing the index.search(query, params) method 36196 // {indexName:, query:, params:} 36197 if (query.query !== undefined) { 36198 params += 'query=' + encodeURIComponent(query.query); 36199 } 36200 36201 return { 36202 indexName: query.indexName, 36203 params: client._getSearchParams(query.params, params) 36204 }; 36205 }) 36206 }; 36207 36208 var JSONPParams = map(postObj.requests, function prepareJSONPParams(request, requestId) { 36209 return requestId + '=' + 36210 encodeURIComponent( 36211 '/1/indexes/' + encodeURIComponent(request.indexName) + '?' + 36212 request.params 36213 ); 36214 }).join('&'); 36215 36216 var url = '/1/indexes/*/queries'; 36217 36218 if (opts.strategy !== undefined) { 36219 postObj.strategy = opts.strategy; 36220 } 36221 36222 return this._jsonRequest({ 36223 cache: this.cache, 36224 method: 'POST', 36225 url: url, 36226 body: postObj, 36227 hostType: 'read', 36228 fallback: { 36229 method: 'GET', 36230 url: '/1/indexes/*', 36231 body: { 36232 params: JSONPParams 36233 } 36234 }, 36235 callback: callback 36236 }); 36237}; 36238 36239/** 36240* Search for facet values 36241* https://www.algolia.com/doc/rest-api/search#search-for-facet-values 36242* This is the top-level API for SFFV. 36243* 36244* @param {object[]} queries An array of queries to run. 36245* @param {string} queries[].indexName Index name, name of the index to search. 36246* @param {object} queries[].params Query parameters. 36247* @param {string} queries[].params.facetName Facet name, name of the attribute to search for values in. 36248* Must be declared as a facet 36249* @param {string} queries[].params.facetQuery Query for the facet search 36250* @param {string} [queries[].params.*] Any search parameter of Algolia, 36251* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters 36252* Pagination is not supported. The page and hitsPerPage parameters will be ignored. 36253*/ 36254AlgoliaSearchCore.prototype.searchForFacetValues = function(queries) { 36255 var isArray = __webpack_require__(23); 36256 var map = __webpack_require__(72); 36257 36258 var usage = 'Usage: client.searchForFacetValues([{indexName, params: {facetName, facetQuery, ...params}}, ...queries])'; // eslint-disable-line max-len 36259 36260 if (!isArray(queries)) { 36261 throw new Error(usage); 36262 } 36263 36264 var client = this; 36265 36266 return client._promise.all(map(queries, function performQuery(query) { 36267 if ( 36268 !query || 36269 query.indexName === undefined || 36270 query.params.facetName === undefined || 36271 query.params.facetQuery === undefined 36272 ) { 36273 throw new Error(usage); 36274 } 36275 36276 var clone = __webpack_require__(48); 36277 var omit = __webpack_require__(223); 36278 36279 var indexName = query.indexName; 36280 var params = query.params; 36281 36282 var facetName = params.facetName; 36283 var filteredParams = omit(clone(params), function(keyName) { 36284 return keyName === 'facetName'; 36285 }); 36286 var searchParameters = client._getSearchParams(filteredParams, ''); 36287 36288 return client._jsonRequest({ 36289 cache: client.cache, 36290 method: 'POST', 36291 url: 36292 '/1/indexes/' + 36293 encodeURIComponent(indexName) + 36294 '/facets/' + 36295 encodeURIComponent(facetName) + 36296 '/query', 36297 hostType: 'read', 36298 body: {params: searchParameters} 36299 }); 36300 })); 36301}; 36302 36303/** 36304 * Set the extra security tagFilters header 36305 * @param {string|array} tags The list of tags defining the current security filters 36306 */ 36307AlgoliaSearchCore.prototype.setSecurityTags = function(tags) { 36308 if (Object.prototype.toString.call(tags) === '[object Array]') { 36309 var strTags = []; 36310 for (var i = 0; i < tags.length; ++i) { 36311 if (Object.prototype.toString.call(tags[i]) === '[object Array]') { 36312 var oredTags = []; 36313 for (var j = 0; j < tags[i].length; ++j) { 36314 oredTags.push(tags[i][j]); 36315 } 36316 strTags.push('(' + oredTags.join(',') + ')'); 36317 } else { 36318 strTags.push(tags[i]); 36319 } 36320 } 36321 tags = strTags.join(','); 36322 } 36323 36324 this.securityTags = tags; 36325}; 36326 36327/** 36328 * Set the extra user token header 36329 * @param {string} userToken The token identifying a uniq user (used to apply rate limits) 36330 */ 36331AlgoliaSearchCore.prototype.setUserToken = function(userToken) { 36332 this.userToken = userToken; 36333}; 36334 36335/** 36336 * Clear all queries in client's cache 36337 * @return undefined 36338 */ 36339AlgoliaSearchCore.prototype.clearCache = function() { 36340 this.cache = {}; 36341}; 36342 36343/** 36344* Set the number of milliseconds a request can take before automatically being terminated. 36345* @deprecated 36346* @param {Number} milliseconds 36347*/ 36348AlgoliaSearchCore.prototype.setRequestTimeout = function(milliseconds) { 36349 if (milliseconds) { 36350 this._timeouts.connect = this._timeouts.read = this._timeouts.write = milliseconds; 36351 } 36352}; 36353 36354/** 36355* Set the three different (connect, read, write) timeouts to be used when requesting 36356* @param {Object} timeouts 36357*/ 36358AlgoliaSearchCore.prototype.setTimeouts = function(timeouts) { 36359 this._timeouts = timeouts; 36360}; 36361 36362/** 36363* Get the three different (connect, read, write) timeouts to be used when requesting 36364* @param {Object} timeouts 36365*/ 36366AlgoliaSearchCore.prototype.getTimeouts = function() { 36367 return this._timeouts; 36368}; 36369 36370AlgoliaSearchCore.prototype._getAppIdData = function() { 36371 var data = store.get(this.applicationID); 36372 if (data !== null) this._cacheAppIdData(data); 36373 return data; 36374}; 36375 36376AlgoliaSearchCore.prototype._setAppIdData = function(data) { 36377 data.lastChange = (new Date()).getTime(); 36378 this._cacheAppIdData(data); 36379 return store.set(this.applicationID, data); 36380}; 36381 36382AlgoliaSearchCore.prototype._checkAppIdData = function() { 36383 var data = this._getAppIdData(); 36384 var now = (new Date()).getTime(); 36385 if (data === null || now - data.lastChange > RESET_APP_DATA_TIMER) { 36386 return this._resetInitialAppIdData(data); 36387 } 36388 36389 return data; 36390}; 36391 36392AlgoliaSearchCore.prototype._resetInitialAppIdData = function(data) { 36393 var newData = data || {}; 36394 newData.hostIndexes = {read: 0, write: 0}; 36395 newData.timeoutMultiplier = 1; 36396 newData.shuffleResult = newData.shuffleResult || shuffle([1, 2, 3]); 36397 return this._setAppIdData(newData); 36398}; 36399 36400AlgoliaSearchCore.prototype._cacheAppIdData = function(data) { 36401 this._hostIndexes = data.hostIndexes; 36402 this._timeoutMultiplier = data.timeoutMultiplier; 36403 this._shuffleResult = data.shuffleResult; 36404}; 36405 36406AlgoliaSearchCore.prototype._partialAppIdDataUpdate = function(newData) { 36407 var foreach = __webpack_require__(71); 36408 var currentData = this._getAppIdData(); 36409 foreach(newData, function(value, key) { 36410 currentData[key] = value; 36411 }); 36412 36413 return this._setAppIdData(currentData); 36414}; 36415 36416AlgoliaSearchCore.prototype._getHostByType = function(hostType) { 36417 return this.hosts[hostType][this._getHostIndexByType(hostType)]; 36418}; 36419 36420AlgoliaSearchCore.prototype._getTimeoutMultiplier = function() { 36421 return this._timeoutMultiplier; 36422}; 36423 36424AlgoliaSearchCore.prototype._getHostIndexByType = function(hostType) { 36425 return this._hostIndexes[hostType]; 36426}; 36427 36428AlgoliaSearchCore.prototype._setHostIndexByType = function(hostIndex, hostType) { 36429 var clone = __webpack_require__(48); 36430 var newHostIndexes = clone(this._hostIndexes); 36431 newHostIndexes[hostType] = hostIndex; 36432 this._partialAppIdDataUpdate({hostIndexes: newHostIndexes}); 36433 return hostIndex; 36434}; 36435 36436AlgoliaSearchCore.prototype._incrementHostIndex = function(hostType) { 36437 return this._setHostIndexByType( 36438 (this._getHostIndexByType(hostType) + 1) % this.hosts[hostType].length, hostType 36439 ); 36440}; 36441 36442AlgoliaSearchCore.prototype._incrementTimeoutMultipler = function() { 36443 var timeoutMultiplier = Math.max(this._timeoutMultiplier + 1, 4); 36444 return this._partialAppIdDataUpdate({timeoutMultiplier: timeoutMultiplier}); 36445}; 36446 36447AlgoliaSearchCore.prototype._getTimeoutsForRequest = function(hostType) { 36448 return { 36449 connect: this._timeouts.connect * this._timeoutMultiplier, 36450 complete: this._timeouts[hostType] * this._timeoutMultiplier 36451 }; 36452}; 36453 36454function prepareHost(protocol) { 36455 return function prepare(host) { 36456 return protocol + '//' + host.toLowerCase(); 36457 }; 36458} 36459 36460// Prototype.js < 1.7, a widely used library, defines a weird 36461// Array.prototype.toJSON function that will fail to stringify our content 36462// appropriately 36463// refs: 36464// - https://groups.google.com/forum/#!topic/prototype-core/E-SAVvV_V9Q 36465// - https://github.com/sstephenson/prototype/commit/038a2985a70593c1a86c230fadbdfe2e4898a48c 36466// - http://stackoverflow.com/a/3148441/147079 36467function safeJSONStringify(obj) { 36468 /* eslint no-extend-native:0 */ 36469 36470 if (Array.prototype.toJSON === undefined) { 36471 return JSON.stringify(obj); 36472 } 36473 36474 var toJSON = Array.prototype.toJSON; 36475 delete Array.prototype.toJSON; 36476 var out = JSON.stringify(obj); 36477 Array.prototype.toJSON = toJSON; 36478 36479 return out; 36480} 36481 36482function shuffle(array) { 36483 var currentIndex = array.length; 36484 var temporaryValue; 36485 var randomIndex; 36486 36487 // While there remain elements to shuffle... 36488 while (currentIndex !== 0) { 36489 // Pick a remaining element... 36490 randomIndex = Math.floor(Math.random() * currentIndex); 36491 currentIndex -= 1; 36492 36493 // And swap it with the current element. 36494 temporaryValue = array[currentIndex]; 36495 array[currentIndex] = array[randomIndex]; 36496 array[randomIndex] = temporaryValue; 36497 } 36498 36499 return array; 36500} 36501 36502function removeCredentials(headers) { 36503 var newHeaders = {}; 36504 36505 for (var headerName in headers) { 36506 if (Object.prototype.hasOwnProperty.call(headers, headerName)) { 36507 var value; 36508 36509 if (headerName === 'x-algolia-api-key' || headerName === 'x-algolia-application-id') { 36510 value = '**hidden for security purposes**'; 36511 } else { 36512 value = headers[headerName]; 36513 } 36514 36515 newHeaders[headerName] = value; 36516 } 36517 } 36518 36519 return newHeaders; 36520} 36521 36522/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 36523 36524/***/ }), 36525/* 544 */ 36526/***/ (function(module, exports, __webpack_require__) { 36527 36528/* WEBPACK VAR INJECTION */(function(global) {var debug = __webpack_require__(81)('algoliasearch:src/hostIndexState.js'); 36529var localStorageNamespace = 'algoliasearch-client-js'; 36530 36531var store; 36532var moduleStore = { 36533 state: {}, 36534 set: function(key, data) { 36535 this.state[key] = data; 36536 return this.state[key]; 36537 }, 36538 get: function(key) { 36539 return this.state[key] || null; 36540 } 36541}; 36542 36543var localStorageStore = { 36544 set: function(key, data) { 36545 moduleStore.set(key, data); // always replicate localStorageStore to moduleStore in case of failure 36546 36547 try { 36548 var namespace = JSON.parse(global.localStorage[localStorageNamespace]); 36549 namespace[key] = data; 36550 global.localStorage[localStorageNamespace] = JSON.stringify(namespace); 36551 return namespace[key]; 36552 } catch (e) { 36553 return localStorageFailure(key, e); 36554 } 36555 }, 36556 get: function(key) { 36557 try { 36558 return JSON.parse(global.localStorage[localStorageNamespace])[key] || null; 36559 } catch (e) { 36560 return localStorageFailure(key, e); 36561 } 36562 } 36563}; 36564 36565function localStorageFailure(key, e) { 36566 debug('localStorage failed with', e); 36567 cleanup(); 36568 store = moduleStore; 36569 return store.get(key); 36570} 36571 36572store = supportsLocalStorage() ? localStorageStore : moduleStore; 36573 36574module.exports = { 36575 get: getOrSet, 36576 set: getOrSet, 36577 supportsLocalStorage: supportsLocalStorage 36578}; 36579 36580function getOrSet(key, data) { 36581 if (arguments.length === 1) { 36582 return store.get(key); 36583 } 36584 36585 return store.set(key, data); 36586} 36587 36588function supportsLocalStorage() { 36589 try { 36590 if ('localStorage' in global && 36591 global.localStorage !== null) { 36592 if (!global.localStorage[localStorageNamespace]) { 36593 // actual creation of the namespace 36594 global.localStorage.setItem(localStorageNamespace, JSON.stringify({})); 36595 } 36596 return true; 36597 } 36598 36599 return false; 36600 } catch (_) { 36601 return false; 36602 } 36603} 36604 36605// In case of any error on localStorage, we clean our own namespace, this should handle 36606// quota errors when a lot of keys + data are used 36607function cleanup() { 36608 try { 36609 global.localStorage.removeItem(localStorageNamespace); 36610 } catch (_) { 36611 // nothing to do 36612 } 36613} 36614 36615/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64))) 36616 36617/***/ }), 36618/* 545 */ 36619/***/ (function(module, exports, __webpack_require__) { 36620 36621 36622/** 36623 * This is the common logic for both the Node.js and web browser 36624 * implementations of `debug()`. 36625 * 36626 * Expose `debug()` as the module. 36627 */ 36628 36629exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; 36630exports.coerce = coerce; 36631exports.disable = disable; 36632exports.enable = enable; 36633exports.enabled = enabled; 36634exports.humanize = __webpack_require__(546); 36635 36636/** 36637 * The currently active debug mode names, and names to skip. 36638 */ 36639 36640exports.names = []; 36641exports.skips = []; 36642 36643/** 36644 * Map of special "%n" handling functions, for the debug "format" argument. 36645 * 36646 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". 36647 */ 36648 36649exports.formatters = {}; 36650 36651/** 36652 * Previous log timestamp. 36653 */ 36654 36655var prevTime; 36656 36657/** 36658 * Select a color. 36659 * @param {String} namespace 36660 * @return {Number} 36661 * @api private 36662 */ 36663 36664function selectColor(namespace) { 36665 var hash = 0, i; 36666 36667 for (i in namespace) { 36668 hash = ((hash << 5) - hash) + namespace.charCodeAt(i); 36669 hash |= 0; // Convert to 32bit integer 36670 } 36671 36672 return exports.colors[Math.abs(hash) % exports.colors.length]; 36673} 36674 36675/** 36676 * Create a debugger with the given `namespace`. 36677 * 36678 * @param {String} namespace 36679 * @return {Function} 36680 * @api public 36681 */ 36682 36683function createDebug(namespace) { 36684 36685 function debug() { 36686 // disabled? 36687 if (!debug.enabled) return; 36688 36689 var self = debug; 36690 36691 // set `diff` timestamp 36692 var curr = +new Date(); 36693 var ms = curr - (prevTime || curr); 36694 self.diff = ms; 36695 self.prev = prevTime; 36696 self.curr = curr; 36697 prevTime = curr; 36698 36699 // turn the `arguments` into a proper Array 36700 var args = new Array(arguments.length); 36701 for (var i = 0; i < args.length; i++) { 36702 args[i] = arguments[i]; 36703 } 36704 36705 args[0] = exports.coerce(args[0]); 36706 36707 if ('string' !== typeof args[0]) { 36708 // anything else let's inspect with %O 36709 args.unshift('%O'); 36710 } 36711 36712 // apply any `formatters` transformations 36713 var index = 0; 36714 args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { 36715 // if we encounter an escaped % then don't increase the array index 36716 if (match === '%%') return match; 36717 index++; 36718 var formatter = exports.formatters[format]; 36719 if ('function' === typeof formatter) { 36720 var val = args[index]; 36721 match = formatter.call(self, val); 36722 36723 // now we need to remove `args[index]` since it's inlined in the `format` 36724 args.splice(index, 1); 36725 index--; 36726 } 36727 return match; 36728 }); 36729 36730 // apply env-specific formatting (colors, etc.) 36731 exports.formatArgs.call(self, args); 36732 36733 var logFn = debug.log || exports.log || console.log.bind(console); 36734 logFn.apply(self, args); 36735 } 36736 36737 debug.namespace = namespace; 36738 debug.enabled = exports.enabled(namespace); 36739 debug.useColors = exports.useColors(); 36740 debug.color = selectColor(namespace); 36741 36742 // env-specific initialization logic for debug instances 36743 if ('function' === typeof exports.init) { 36744 exports.init(debug); 36745 } 36746 36747 return debug; 36748} 36749 36750/** 36751 * Enables a debug mode by namespaces. This can include modes 36752 * separated by a colon and wildcards. 36753 * 36754 * @param {String} namespaces 36755 * @api public 36756 */ 36757 36758function enable(namespaces) { 36759 exports.save(namespaces); 36760 36761 exports.names = []; 36762 exports.skips = []; 36763 36764 var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); 36765 var len = split.length; 36766 36767 for (var i = 0; i < len; i++) { 36768 if (!split[i]) continue; // ignore empty strings 36769 namespaces = split[i].replace(/\*/g, '.*?'); 36770 if (namespaces[0] === '-') { 36771 exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); 36772 } else { 36773 exports.names.push(new RegExp('^' + namespaces + '$')); 36774 } 36775 } 36776} 36777 36778/** 36779 * Disable debug output. 36780 * 36781 * @api public 36782 */ 36783 36784function disable() { 36785 exports.enable(''); 36786} 36787 36788/** 36789 * Returns true if the given mode name is enabled, false otherwise. 36790 * 36791 * @param {String} name 36792 * @return {Boolean} 36793 * @api public 36794 */ 36795 36796function enabled(name) { 36797 var i, len; 36798 for (i = 0, len = exports.skips.length; i < len; i++) { 36799 if (exports.skips[i].test(name)) { 36800 return false; 36801 } 36802 } 36803 for (i = 0, len = exports.names.length; i < len; i++) { 36804 if (exports.names[i].test(name)) { 36805 return true; 36806 } 36807 } 36808 return false; 36809} 36810 36811/** 36812 * Coerce `val`. 36813 * 36814 * @param {Mixed} val 36815 * @return {Mixed} 36816 * @api private 36817 */ 36818 36819function coerce(val) { 36820 if (val instanceof Error) return val.stack || val.message; 36821 return val; 36822} 36823 36824 36825/***/ }), 36826/* 546 */ 36827/***/ (function(module, exports) { 36828 36829/** 36830 * Helpers. 36831 */ 36832 36833var s = 1000; 36834var m = s * 60; 36835var h = m * 60; 36836var d = h * 24; 36837var y = d * 365.25; 36838 36839/** 36840 * Parse or format the given `val`. 36841 * 36842 * Options: 36843 * 36844 * - `long` verbose formatting [false] 36845 * 36846 * @param {String|Number} val 36847 * @param {Object} [options] 36848 * @throws {Error} throw an error if val is not a non-empty string or a number 36849 * @return {String|Number} 36850 * @api public 36851 */ 36852 36853module.exports = function(val, options) { 36854 options = options || {}; 36855 var type = typeof val; 36856 if (type === 'string' && val.length > 0) { 36857 return parse(val); 36858 } else if (type === 'number' && isNaN(val) === false) { 36859 return options.long ? fmtLong(val) : fmtShort(val); 36860 } 36861 throw new Error( 36862 'val is not a non-empty string or a valid number. val=' + 36863 JSON.stringify(val) 36864 ); 36865}; 36866 36867/** 36868 * Parse the given `str` and return milliseconds. 36869 * 36870 * @param {String} str 36871 * @return {Number} 36872 * @api private 36873 */ 36874 36875function parse(str) { 36876 str = String(str); 36877 if (str.length > 100) { 36878 return; 36879 } 36880 var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( 36881 str 36882 ); 36883 if (!match) { 36884 return; 36885 } 36886 var n = parseFloat(match[1]); 36887 var type = (match[2] || 'ms').toLowerCase(); 36888 switch (type) { 36889 case 'years': 36890 case 'year': 36891 case 'yrs': 36892 case 'yr': 36893 case 'y': 36894 return n * y; 36895 case 'days': 36896 case 'day': 36897 case 'd': 36898 return n * d; 36899 case 'hours': 36900 case 'hour': 36901 case 'hrs': 36902 case 'hr': 36903 case 'h': 36904 return n * h; 36905 case 'minutes': 36906 case 'minute': 36907 case 'mins': 36908 case 'min': 36909 case 'm': 36910 return n * m; 36911 case 'seconds': 36912 case 'second': 36913 case 'secs': 36914 case 'sec': 36915 case 's': 36916 return n * s; 36917 case 'milliseconds': 36918 case 'millisecond': 36919 case 'msecs': 36920 case 'msec': 36921 case 'ms': 36922 return n; 36923 default: 36924 return undefined; 36925 } 36926} 36927 36928/** 36929 * Short format for `ms`. 36930 * 36931 * @param {Number} ms 36932 * @return {String} 36933 * @api private 36934 */ 36935 36936function fmtShort(ms) { 36937 if (ms >= d) { 36938 return Math.round(ms / d) + 'd'; 36939 } 36940 if (ms >= h) { 36941 return Math.round(ms / h) + 'h'; 36942 } 36943 if (ms >= m) { 36944 return Math.round(ms / m) + 'm'; 36945 } 36946 if (ms >= s) { 36947 return Math.round(ms / s) + 's'; 36948 } 36949 return ms + 'ms'; 36950} 36951 36952/** 36953 * Long format for `ms`. 36954 * 36955 * @param {Number} ms 36956 * @return {String} 36957 * @api private 36958 */ 36959 36960function fmtLong(ms) { 36961 return plural(ms, d, 'day') || 36962 plural(ms, h, 'hour') || 36963 plural(ms, m, 'minute') || 36964 plural(ms, s, 'second') || 36965 ms + ' ms'; 36966} 36967 36968/** 36969 * Pluralization helper. 36970 */ 36971 36972function plural(ms, n, name) { 36973 if (ms < n) { 36974 return; 36975 } 36976 if (ms < n * 1.5) { 36977 return Math.floor(ms / n) + ' ' + name; 36978 } 36979 return Math.ceil(ms / n) + ' ' + name + 's'; 36980} 36981 36982 36983/***/ }), 36984/* 547 */ 36985/***/ (function(module, exports, __webpack_require__) { 36986 36987module.exports = createAnalyticsClient; 36988 36989var algoliasearch = __webpack_require__(153); 36990 36991function createAnalyticsClient(appId, apiKey, opts) { 36992 var analytics = {}; 36993 36994 opts = opts || {}; 36995 // there need to be 4 hosts, like on the client, since if requests fail, 36996 // the counter goes up by 1, so we need to have the same amount of hosts 36997 // 4 because: -dsn, -1, -2, -3 36998 // This is done because the APPID used for search will be the same for the analytics client created, 36999 // and since the state of available hosts is shared by APPID globally for the module, we had issues 37000 // where the hostIndex would be 1 while the array was only one entry (you got an empty host) 37001 opts.hosts = opts.hosts || [ 37002 'analytics.algolia.com',
37003 'analytics.algolia.com', 37004 'analytics.algolia.com', 37005 'analytics.algolia.com' 37006 ]; 37007 opts.protocol = opts.protocol || 'https:'; 37008 37009 analytics.as = algoliasearch(appId, apiKey, opts); 37010 37011 analytics.getABTests = function(_params, callback) { 37012 var params = params || {}; 37013 var offset = params.offset || 0; 37014 var limit = params.limit || 10; 37015 37016 return this.as._jsonRequest({ 37017 method: 'GET', 37018 url: '/2/abtests?offset=' + encodeURIComponent(offset) + '&limit=' + encodeURIComponent(limit), 37019 hostType: 'read', 37020 forceAuthHeaders: true, 37021 callback: callback 37022 }); 37023 }; 37024 37025 analytics.getABTest = function(abTestID, callback) { 37026 return this.as._jsonRequest({ 37027 method: 'GET', 37028 url: '/2/abtests/' + encodeURIComponent(abTestID), 37029 hostType: 'read', 37030 forceAuthHeaders: true, 37031 callback: callback 37032 }); 37033 }; 37034 37035 analytics.addABTest = function(abTest, callback) { 37036 return this.as._jsonRequest({ 37037 method: 'POST', 37038 url: '/2/abtests', 37039 body: abTest, 37040 hostType: 'read', 37041 forceAuthHeaders: true, 37042 callback: callback 37043 }); 37044 }; 37045 37046 analytics.stopABTest = function(abTestID, callback) { 37047 return this.as._jsonRequest({ 37048 method: 'POST', 37049 url: '/2/abtests/' + encodeURIComponent(abTestID) + '/stop', 37050 hostType: 'read', 37051 forceAuthHeaders: true, 37052 callback: callback 37053 }); 37054 }; 37055 37056 analytics.deleteABTest = function(abTestID, callback) { 37057 return this.as._jsonRequest({ 37058 method: 'DELETE', 37059 url: '/2/abtests/' + encodeURIComponent(abTestID), 37060 hostType: 'write', 37061 forceAuthHeaders: true, 37062 callback: callback 37063 }); 37064 }; 37065 37066 analytics.waitTask = function(indexName, taskID, callback) { 37067 return this.as.initIndex(indexName).waitTask(taskID, callback); 37068 }; 37069 37070 return analytics; 37071} 37072 37073 37074/***/ }), 37075/* 548 */ 37076/***/ (function(module, exports, __webpack_require__) { 37077 37078"use strict"; 37079/* WEBPACK VAR INJECTION */(function(process) { 37080 37081var global = __webpack_require__(549); 37082var Promise = global.Promise || __webpack_require__(550).Promise; 37083 37084// This is the standalone browser build entry point 37085// Browser implementation of the Algolia Search JavaScript client, 37086// using XMLHttpRequest, XDomainRequest and JSONP as fallback 37087module.exports = function createAlgoliasearch(AlgoliaSearch, uaSuffix) { 37088 var inherits = __webpack_require__(80); 37089 var errors = __webpack_require__(70); 37090 var inlineHeaders = __webpack_require__(551); 37091 var jsonpRequest = __webpack_require__(553); 37092 var places = __webpack_require__(554); 37093 uaSuffix = uaSuffix || ''; 37094 37095 if (process.env.NODE_ENV === 'debug') { 37096 __webpack_require__(81).enable('algoliasearch*'); 37097 } 37098 37099 function algoliasearch(applicationID, apiKey, opts) { 37100 var cloneDeep = __webpack_require__(48); 37101 37102 opts = cloneDeep(opts || {}); 37103 37104 opts._ua = opts._ua || algoliasearch.ua; 37105 37106 return new AlgoliaSearchBrowser(applicationID, apiKey, opts); 37107 } 37108 37109 algoliasearch.version = __webpack_require__(555); 37110 algoliasearch.ua = 'Algolia for vanilla JavaScript ' + uaSuffix + algoliasearch.version; 37111 algoliasearch.initPlaces = places(algoliasearch); 37112 37113 // we expose into window no matter how we are used, this will allow 37114 // us to easily debug any website running algolia 37115 global.__algolia = { 37116 debug: __webpack_require__(81), 37117 algoliasearch: algoliasearch 37118 }; 37119 37120 var support = { 37121 hasXMLHttpRequest: 'XMLHttpRequest' in global, 37122 hasXDomainRequest: 'XDomainRequest' in global 37123 }; 37124 37125 if (support.hasXMLHttpRequest) { 37126 support.cors = 'withCredentials' in new XMLHttpRequest(); 37127 } 37128 37129 function AlgoliaSearchBrowser() { 37130 // call AlgoliaSearch constructor 37131 AlgoliaSearch.apply(this, arguments); 37132 } 37133 37134 inherits(AlgoliaSearchBrowser, AlgoliaSearch); 37135 37136 AlgoliaSearchBrowser.prototype._request = function request(url, opts) { 37137 return new Promise(function wrapRequest(resolve, reject) { 37138 // no cors or XDomainRequest, no request 37139 if (!support.cors && !support.hasXDomainRequest) { 37140 // very old browser, not supported 37141 reject(new errors.Network('CORS not supported')); 37142 return; 37143 } 37144 37145 url = inlineHeaders(url, opts.headers); 37146 37147 var body = opts.body; 37148 var req = support.cors ? new XMLHttpRequest() : new XDomainRequest(); 37149 var reqTimeout; 37150 var timedOut; 37151 var connected = false;
vendor: 5,802 bytes, lines 37152-37350
37152 37153 reqTimeout = setTimeout(onTimeout, opts.timeouts.connect); 37154 // we set an empty onprogress listener 37155 // so that XDomainRequest on IE9 is not aborted 37156 // refs: 37157 // - https://github.com/algolia/algoliasearch-client-js/issues/76 37158 // - https://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment 37159 req.onprogress = onProgress; 37160 if ('onreadystatechange' in req) req.onreadystatechange = onReadyStateChange; 37161 req.onload = onLoad; 37162 req.onerror = onError; 37163 37164 // do not rely on default XHR async flag, as some analytics code like hotjar 37165 // breaks it and set it to false by default 37166 if (req instanceof XMLHttpRequest) { 37167 req.open(opts.method, url, true); 37168 37169 // The Analytics API never accepts Auth headers as query string 37170 // this option exists specifically for them. 37171 if (opts.forceAuthHeaders) { 37172 req.setRequestHeader( 37173 'x-algolia-application-id', 37174 opts.headers['x-algolia-application-id'] 37175 ); 37176 req.setRequestHeader( 37177 'x-algolia-api-key', 37178 opts.headers['x-algolia-api-key'] 37179 ); 37180 } 37181 } else { 37182 req.open(opts.method, url); 37183 } 37184 37185 // headers are meant to be sent after open 37186 if (support.cors) { 37187 if (body) { 37188 if (opts.method === 'POST') { 37189 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests 37190 req.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); 37191 } else { 37192 req.setRequestHeader('content-type', 'application/json'); 37193 } 37194 } 37195 req.setRequestHeader('accept', 'application/json'); 37196 } 37197 37198 if (body) { 37199 req.send(body); 37200 } else { 37201 req.send(); 37202 } 37203 37204 // event object not received in IE8, at least 37205 // but we do not use it, still important to note 37206 function onLoad(/* event */) { 37207 // When browser does not supports req.timeout, we can 37208 // have both a load and timeout event, since handled by a dumb setTimeout 37209 if (timedOut) { 37210 return; 37211 } 37212 37213 clearTimeout(reqTimeout); 37214 37215 var out; 37216 37217 try { 37218 out = { 37219 body: JSON.parse(req.responseText), 37220 responseText: req.responseText, 37221 statusCode: req.status, 37222 // XDomainRequest does not have any response headers 37223 headers: req.getAllResponseHeaders && req.getAllResponseHeaders() || {} 37224 }; 37225 } catch (e) { 37226 out = new errors.UnparsableJSON({ 37227 more: req.responseText 37228 }); 37229 } 37230 37231 if (out instanceof errors.UnparsableJSON) { 37232 reject(out); 37233 } else { 37234 resolve(out); 37235 } 37236 } 37237 37238 function onError(event) { 37239 if (timedOut) { 37240 return; 37241 } 37242 37243 clearTimeout(reqTimeout); 37244 37245 // error event is trigerred both with XDR/XHR on: 37246 // - DNS error 37247 // - unallowed cross domain request 37248 reject( 37249 new errors.Network({ 37250 more: event 37251 }) 37252 ); 37253 } 37254 37255 function onTimeout() { 37256 timedOut = true; 37257 req.abort(); 37258 37259 reject(new errors.RequestTimeout()); 37260 } 37261 37262 function onConnect() { 37263 connected = true; 37264 clearTimeout(reqTimeout); 37265 reqTimeout = setTimeout(onTimeout, opts.timeouts.complete); 37266 } 37267 37268 function onProgress() { 37269 if (!connected) onConnect(); 37270 } 37271 37272 function onReadyStateChange() { 37273 if (!connected && req.readyState > 1) onConnect(); 37274 } 37275 }); 37276 }; 37277 37278 AlgoliaSearchBrowser.prototype._request.fallback = function requestFallback(url, opts) { 37279 url = inlineHeaders(url, opts.headers); 37280 37281 return new Promise(function wrapJsonpRequest(resolve, reject) { 37282 jsonpRequest(url, opts, function jsonpRequestDone(err, content) { 37283 if (err) { 37284 reject(err); 37285 return; 37286 } 37287 37288 resolve(content); 37289 }); 37290 }); 37291 }; 37292 37293 AlgoliaSearchBrowser.prototype._promise = { 37294 reject: function rejectPromise(val) { 37295 return Promise.reject(val); 37296 }, 37297 resolve: function resolvePromise(val) { 37298 return Promise.resolve(val); 37299 }, 37300 delay: function delayPromise(ms) { 37301 return new Promise(function resolveOnTimeout(resolve/* , reject*/) { 37302 setTimeout(resolve, ms); 37303 }); 37304 }, 37305 all: function all(promises) { 37306 return Promise.all(promises); 37307 } 37308 }; 37309 37310 return algoliasearch; 37311}; 37312 37313/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) 37314 37315/***/ }), 37316/* 549 */ 37317/***/ (function(module, exports, __webpack_require__) { 37318 37319/* WEBPACK VAR INJECTION */(function(global) {var win; 37320 37321if (typeof window !== "undefined") { 37322 win = window; 37323} else if (typeof global !== "undefined") { 37324 win = global; 37325} else if (typeof self !== "undefined"){ 37326 win = self; 37327} else { 37328 win = {}; 37329} 37330 37331module.exports = win; 37332 37333/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64))) 37334 37335/***/ }), 37336/* 550 */ 37337/***/ (function(module, exports, __webpack_require__) { 37338 37339/* WEBPACK VAR INJECTION */(function(process, global) {/*! 37340 * @overview es6-promise - a tiny implementation of Promises/A+. 37341 * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) 37342 * @license Licensed under MIT license 37343 * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE 37344 * @version v4.2.5+7f2b526d 37345 */ 37346 37347(function (global, factory) { 37348 true ? module.exports = factory() : 37349 typeof define === 'function' && define.amd ? define(factory) : 37350 (global.ES6Promise = factory())
vendor: 5,184 bytes, lines 37350-37570
37350; 37351}(this, (function () { 'use strict'; 37352 37353function objectOrFunction(x) { 37354 var type = typeof x; 37355 return x !== null && (type === 'object' || type === 'function'); 37356} 37357 37358function isFunction(x) { 37359 return typeof x === 'function'; 37360} 37361 37362 37363 37364var _isArray = void 0; 37365if (Array.isArray) { 37366 _isArray = Array.isArray; 37367} else { 37368 _isArray = function (x) { 37369 return Object.prototype.toString.call(x) === '[object Array]'; 37370 }; 37371} 37372 37373var isArray = _isArray; 37374 37375var len = 0; 37376var vertxNext = void 0; 37377var customSchedulerFn = void 0; 37378 37379var asap = function asap(callback, arg) { 37380 queue[len] = callback; 37381 queue[len + 1] = arg; 37382 len += 2; 37383 if (len === 2) { 37384 // If len is 2, that means that we need to schedule an async flush. 37385 // If additional callbacks are queued before the queue is flushed, they 37386 // will be processed by this flush that we are scheduling. 37387 if (customSchedulerFn) { 37388 customSchedulerFn(flush); 37389 } else { 37390 scheduleFlush(); 37391 } 37392 } 37393}; 37394 37395function setScheduler(scheduleFn) { 37396 customSchedulerFn = scheduleFn; 37397} 37398 37399function setAsap(asapFn) { 37400 asap = asapFn; 37401} 37402 37403var browserWindow = typeof window !== 'undefined' ? window : undefined; 37404var browserGlobal = browserWindow || {}; 37405var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; 37406var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; 37407 37408// test for web worker but not in IE10 37409var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; 37410 37411// node 37412function useNextTick() { 37413 // node version 0.10.x displays a deprecation warning when nextTick is used recursively 37414 // see https://github.com/cujojs/when/issues/410 for details 37415 return function () { 37416 return process.nextTick(flush); 37417 }; 37418} 37419 37420// vertx 37421function useVertxTimer() { 37422 if (typeof vertxNext !== 'undefined') { 37423 return function () { 37424 vertxNext(flush); 37425 }; 37426 } 37427 37428 return useSetTimeout(); 37429} 37430 37431function useMutationObserver() { 37432 var iterations = 0; 37433 var observer = new BrowserMutationObserver(flush); 37434 var node = document.createTextNode(''); 37435 observer.observe(node, { characterData: true }); 37436 37437 return function () { 37438 node.data = iterations = ++iterations % 2; 37439 }; 37440} 37441 37442// web worker 37443function useMessageChannel() { 37444 var channel = new MessageChannel(); 37445 channel.port1.onmessage = flush; 37446 return function () { 37447 return channel.port2.postMessage(0); 37448 }; 37449} 37450 37451function useSetTimeout() { 37452 // Store setTimeout reference so es6-promise will be unaffected by 37453 // other code modifying setTimeout (like sinon.useFakeTimers()) 37454 var globalSetTimeout = setTimeout; 37455 return function () { 37456 return globalSetTimeout(flush, 1); 37457 }; 37458} 37459 37460var queue = new Array(1000); 37461function flush() { 37462 for (var i = 0; i < len; i += 2) { 37463 var callback = queue[i]; 37464 var arg = queue[i + 1]; 37465 37466 callback(arg); 37467 37468 queue[i] = undefined; 37469 queue[i + 1] = undefined; 37470 } 37471 37472 len = 0; 37473} 37474 37475function attemptVertx() { 37476 try { 37477 var vertx = Function('return this')().require('vertx'); 37478 vertxNext = vertx.runOnLoop || vertx.runOnContext; 37479 return useVertxTimer(); 37480 } catch (e) { 37481 return useSetTimeout(); 37482 } 37483} 37484 37485var scheduleFlush = void 0; 37486// Decide what async method to use to triggering processing of queued callbacks: 37487if (isNode) { 37488 scheduleFlush = useNextTick(); 37489} else if (BrowserMutationObserver) { 37490 scheduleFlush = useMutationObserver(); 37491} else if (isWorker) { 37492 scheduleFlush = useMessageChannel(); 37493} else if (browserWindow === undefined && "function" === 'function') { 37494 scheduleFlush = attemptVertx(); 37495} else { 37496 scheduleFlush = useSetTimeout(); 37497} 37498 37499function then(onFulfillment, onRejection) { 37500 var parent = this; 37501 37502 var child = new this.constructor(noop); 37503 37504 if (child[PROMISE_ID] === undefined) { 37505 makePromise(child); 37506 } 37507 37508 var _state = parent._state; 37509 37510 37511 if (_state) { 37512 var callback = arguments[_state - 1]; 37513 asap(function () { 37514 return invokeCallback(_state, child, callback, parent._result); 37515 }); 37516 } else { 37517 subscribe(parent, child, onFulfillment, onRejection); 37518 } 37519 37520 return child; 37521} 37522 37523/** 37524 `Promise.resolve` returns a promise that will become resolved with the 37525 passed `value`. It is shorthand for the following: 37526 37527 ```javascript 37528 let promise = new Promise(function(resolve, reject){ 37529 resolve(1); 37530 }); 37531 37532 promise.then(function(value){ 37533 // value === 1 37534 }); 37535 ``` 37536 37537 Instead of writing the above, your code now simply becomes the following: 37538 37539 ```javascript 37540 let promise = Promise.resolve(1); 37541 37542 promise.then(function(value){ 37543 // value === 1 37544 }); 37545 ``` 37546 37547 @method resolve 37548 @static 37549 @param {Any} value value that the returned promise will be resolved with 37550 Useful for tooling. 37551 @return {Promise} a promise that will become fulfilled with the given 37552 `value` 37553*/ 37554function resolve$1(object) { 37555 /*jshint validthis:true */ 37556 var Constructor = this; 37557 37558 if (object && typeof object === 'object' && object.constructor === Constructor) { 37559 return object; 37560 } 37561 37562 var promise = new Constructor(noop); 37563 resolve(promise, object); 37564 return promise; 37565} 37566 37567var PROMISE_ID = Math.random().toString(36).substring(2); 37568 37569function noop() {} 37570
vendor: 7,086 bytes, lines 37571-37874
37571var PENDING = void 0; 37572var FULFILLED = 1; 37573var REJECTED = 2; 37574 37575var TRY_CATCH_ERROR = { error: null }; 37576 37577function selfFulfillment() { 37578 return new TypeError("You cannot resolve a promise with itself"); 37579} 37580 37581function cannotReturnOwn() { 37582 return new TypeError('A promises callback cannot return that same promise.'); 37583} 37584 37585function getThen(promise) { 37586 try { 37587 return promise.then; 37588 } catch (error) { 37589 TRY_CATCH_ERROR.error = error; 37590 return TRY_CATCH_ERROR; 37591 } 37592} 37593 37594function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) { 37595 try { 37596 then$$1.call(value, fulfillmentHandler, rejectionHandler); 37597 } catch (e) { 37598 return e; 37599 } 37600} 37601 37602function handleForeignThenable(promise, thenable, then$$1) { 37603 asap(function (promise) { 37604 var sealed = false; 37605 var error = tryThen(then$$1, thenable, function (value) { 37606 if (sealed) { 37607 return; 37608 } 37609 sealed = true; 37610 if (thenable !== value) { 37611 resolve(promise, value); 37612 } else { 37613 fulfill(promise, value); 37614 } 37615 }, function (reason) { 37616 if (sealed) { 37617 return; 37618 } 37619 sealed = true; 37620 37621 reject(promise, reason); 37622 }, 'Settle: ' + (promise._label || ' unknown promise')); 37623 37624 if (!sealed && error) { 37625 sealed = true; 37626 reject(promise, error); 37627 } 37628 }, promise); 37629} 37630 37631function handleOwnThenable(promise, thenable) { 37632 if (thenable._state === FULFILLED) { 37633 fulfill(promise, thenable._result); 37634 } else if (thenable._state === REJECTED) { 37635 reject(promise, thenable._result); 37636 } else { 37637 subscribe(thenable, undefined, function (value) { 37638 return resolve(promise, value); 37639 }, function (reason) { 37640 return reject(promise, reason); 37641 }); 37642 } 37643} 37644 37645function handleMaybeThenable(promise, maybeThenable, then$$1) { 37646 if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) { 37647 handleOwnThenable(promise, maybeThenable); 37648 } else { 37649 if (then$$1 === TRY_CATCH_ERROR) { 37650 reject(promise, TRY_CATCH_ERROR.error); 37651 TRY_CATCH_ERROR.error = null; 37652 } else if (then$$1 === undefined) { 37653 fulfill(promise, maybeThenable); 37654 } else if (isFunction(then$$1)) { 37655 handleForeignThenable(promise, maybeThenable, then$$1); 37656 } else { 37657 fulfill(promise, maybeThenable); 37658 } 37659 } 37660} 37661 37662function resolve(promise, value) { 37663 if (promise === value) { 37664 reject(promise, selfFulfillment()); 37665 } else if (objectOrFunction(value)) { 37666 handleMaybeThenable(promise, value, getThen(value)); 37667 } else { 37668 fulfill(promise, value); 37669 } 37670} 37671 37672function publishRejection(promise) { 37673 if (promise._onerror) { 37674 promise._onerror(promise._result); 37675 } 37676 37677 publish(promise); 37678} 37679 37680function fulfill(promise, value) { 37681 if (promise._state !== PENDING) { 37682 return; 37683 } 37684 37685 promise._result = value; 37686 promise._state = FULFILLED; 37687 37688 if (promise._subscribers.length !== 0) { 37689 asap(publish, promise); 37690 } 37691} 37692 37693function reject(promise, reason) { 37694 if (promise._state !== PENDING) { 37695 return; 37696 } 37697 promise._state = REJECTED; 37698 promise._result = reason; 37699 37700 asap(publishRejection, promise); 37701} 37702 37703function subscribe(parent, child, onFulfillment, onRejection) { 37704 var _subscribers = parent._subscribers; 37705 var length = _subscribers.length; 37706 37707 37708 parent._onerror = null; 37709 37710 _subscribers[length] = child; 37711 _subscribers[length + FULFILLED] = onFulfillment; 37712 _subscribers[length + REJECTED] = onRejection; 37713 37714 if (length === 0 && parent._state) { 37715 asap(publish, parent); 37716 } 37717} 37718 37719function publish(promise) { 37720 var subscribers = promise._subscribers; 37721 var settled = promise._state; 37722 37723 if (subscribers.length === 0) { 37724 return; 37725 } 37726 37727 var child = void 0, 37728 callback = void 0, 37729 detail = promise._result; 37730 37731 for (var i = 0; i < subscribers.length; i += 3) { 37732 child = subscribers[i]; 37733 callback = subscribers[i + settled]; 37734 37735 if (child) { 37736 invokeCallback(settled, child, callback, detail); 37737 } else { 37738 callback(detail); 37739 } 37740 } 37741 37742 promise._subscribers.length = 0; 37743} 37744 37745function tryCatch(callback, detail) { 37746 try { 37747 return callback(detail); 37748 } catch (e) { 37749 TRY_CATCH_ERROR.error = e; 37750 return TRY_CATCH_ERROR; 37751 } 37752} 37753 37754function invokeCallback(settled, promise, callback, detail) { 37755 var hasCallback = isFunction(callback), 37756 value = void 0, 37757 error = void 0, 37758 succeeded = void 0, 37759 failed = void 0; 37760 37761 if (hasCallback) { 37762 value = tryCatch(callback, detail); 37763 37764 if (value === TRY_CATCH_ERROR) { 37765 failed = true; 37766 error = value.error; 37767 value.error = null; 37768 } else { 37769 succeeded = true; 37770 } 37771 37772 if (promise === value) { 37773 reject(promise, cannotReturnOwn()); 37774 return; 37775 } 37776 } else { 37777 value = detail; 37778 succeeded = true; 37779 } 37780 37781 if (promise._state !== PENDING) { 37782 // noop 37783 } else if (hasCallback && succeeded) { 37784 resolve(promise, value); 37785 } else if (failed) { 37786 reject(promise, error); 37787 } else if (settled === FULFILLED) { 37788 fulfill(promise, value); 37789 } else if (settled === REJECTED) { 37790 reject(promise, value); 37791 } 37792} 37793 37794function initializePromise(promise, resolver) { 37795 try { 37796 resolver(function resolvePromise(value) { 37797 resolve(promise, value); 37798 }, function rejectPromise(reason) { 37799 reject(promise, reason); 37800 }); 37801 } catch (e) { 37802 reject(promise, e); 37803 } 37804} 37805 37806var id = 0; 37807function nextId() { 37808 return id++; 37809} 37810 37811function makePromise(promise) { 37812 promise[PROMISE_ID] = id++; 37813 promise._state = undefined; 37814 promise._result = undefined; 37815 promise._subscribers = []; 37816} 37817 37818function validationError() { 37819 return new Error('Array Methods must be provided an Array'); 37820} 37821 37822var Enumerator = function () { 37823 function Enumerator(Constructor, input) { 37824 this._instanceConstructor = Constructor; 37825 this.promise = new Constructor(noop); 37826 37827 if (!this.promise[PROMISE_ID]) { 37828 makePromise(this.promise); 37829 } 37830 37831 if (isArray(input)) { 37832 this.length = input.length; 37833 this._remaining = input.length; 37834 37835 this._result = new Array(this.length); 37836 37837 if (this.length === 0) { 37838 fulfill(this.promise, this._result); 37839 } else { 37840 this.length = this.length || 0; 37841 this._enumerate(input); 37842 if (this._remaining === 0) { 37843 fulfill(this.promise, this._result); 37844 } 37845 } 37846 } else { 37847 reject(this.promise, validationError()); 37848 } 37849 } 37850 37851 Enumerator.prototype._enumerate = function _enumerate(input) { 37852 for (var i = 0; this._state === PENDING && i < input.length; i++) { 37853 this._eachEntry(input[i], i); 37854 } 37855 }; 37856 37857 Enumerator.prototype._eachEntry = function _eachEntry(entry, i) { 37858 var c = this._instanceConstructor; 37859 var resolve$$1 = c.resolve; 37860 37861 37862 if (resolve$$1 === resolve$1) { 37863 var _then = getThen(entry); 37864 37865 if (_then === then && entry._state !== PENDING) { 37866 this._settledAt(entry._state, i, entry._result); 37867 } else if (typeof _then !== 'function') { 37868 this._remaining--; 37869 this._result[i] = entry; 37870 } else if (c === Promise$1) { 37871 var promise = new c(noop); 37872 handleMaybeThenable(promise, entry, _then); 37873 this._willSettleAt(promise, i); 37874 } else {
vendor: 16,494 bytes, lines 37875-38520
37875 this._willSettleAt(new c(function (resolve$$1) { 37876 return resolve$$1(entry); 37877 }), i); 37878 } 37879 } else { 37880 this._willSettleAt(resolve$$1(entry), i); 37881 } 37882 }; 37883 37884 Enumerator.prototype._settledAt = function _settledAt(state, i, value) { 37885 var promise = this.promise; 37886 37887 37888 if (promise._state === PENDING) { 37889 this._remaining--; 37890 37891 if (state === REJECTED) { 37892 reject(promise, value); 37893 } else { 37894 this._result[i] = value; 37895 } 37896 } 37897 37898 if (this._remaining === 0) { 37899 fulfill(promise, this._result); 37900 } 37901 }; 37902 37903 Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) { 37904 var enumerator = this; 37905 37906 subscribe(promise, undefined, function (value) { 37907 return enumerator._settledAt(FULFILLED, i, value); 37908 }, function (reason) { 37909 return enumerator._settledAt(REJECTED, i, reason); 37910 }); 37911 }; 37912 37913 return Enumerator; 37914}(); 37915 37916/** 37917 `Promise.all` accepts an array of promises, and returns a new promise which 37918 is fulfilled with an array of fulfillment values for the passed promises, or 37919 rejected with the reason of the first passed promise to be rejected. It casts all 37920 elements of the passed iterable to promises as it runs this algorithm. 37921 37922 Example: 37923 37924 ```javascript 37925 let promise1 = resolve(1); 37926 let promise2 = resolve(2); 37927 let promise3 = resolve(3); 37928 let promises = [ promise1, promise2, promise3 ]; 37929 37930 Promise.all(promises).then(function(array){ 37931 // The array here would be [ 1, 2, 3 ]; 37932 }); 37933 ``` 37934 37935 If any of the `promises` given to `all` are rejected, the first promise 37936 that is rejected will be given as an argument to the returned promises's 37937 rejection handler. For example: 37938 37939 Example: 37940 37941 ```javascript 37942 let promise1 = resolve(1); 37943 let promise2 = reject(new Error("2")); 37944 let promise3 = reject(new Error("3")); 37945 let promises = [ promise1, promise2, promise3 ]; 37946 37947 Promise.all(promises).then(function(array){ 37948 // Code here never runs because there are rejected promises! 37949 }, function(error) { 37950 // error.message === "2" 37951 }); 37952 ``` 37953 37954 @method all 37955 @static 37956 @param {Array} entries array of promises 37957 @param {String} label optional string for labeling the promise. 37958 Useful for tooling. 37959 @return {Promise} promise that is fulfilled when all `promises` have been 37960 fulfilled, or rejected if any of them become rejected. 37961 @static 37962*/ 37963function all(entries) { 37964 return new Enumerator(this, entries).promise; 37965} 37966 37967/** 37968 `Promise.race` returns a new promise which is settled in the same way as the 37969 first passed promise to settle. 37970 37971 Example: 37972 37973 ```javascript 37974 let promise1 = new Promise(function(resolve, reject){ 37975 setTimeout(function(){ 37976 resolve('promise 1'); 37977 }, 200); 37978 }); 37979 37980 let promise2 = new Promise(function(resolve, reject){ 37981 setTimeout(function(){ 37982 resolve('promise 2'); 37983 }, 100); 37984 }); 37985 37986 Promise.race([promise1, promise2]).then(function(result){ 37987 // result === 'promise 2' because it was resolved before promise1 37988 // was resolved. 37989 }); 37990 ``` 37991 37992 `Promise.race` is deterministic in that only the state of the first 37993 settled promise matters. For example, even if other promises given to the 37994 `promises` array argument are resolved, but the first settled promise has 37995 become rejected before the other promises became fulfilled, the returned 37996 promise will become rejected: 37997 37998 ```javascript 37999 let promise1 = new Promise(function(resolve, reject){ 38000 setTimeout(function(){ 38001 resolve('promise 1'); 38002 }, 200); 38003 }); 38004 38005 let promise2 = new Promise(function(resolve, reject){ 38006 setTimeout(function(){ 38007 reject(new Error('promise 2')); 38008 }, 100); 38009 }); 38010 38011 Promise.race([promise1, promise2]).then(function(result){ 38012 // Code here never runs 38013 }, function(reason){ 38014 // reason.message === 'promise 2' because promise 2 became rejected before 38015 // promise 1 became fulfilled 38016 }); 38017 ``` 38018 38019 An example real-world use case is implementing timeouts: 38020 38021 ```javascript 38022 Promise.race([ajax('foo.json'), timeout(5000)]) 38023 ``` 38024 38025 @method race 38026 @static 38027 @param {Array} promises array of promises to observe 38028 Useful for tooling. 38029 @return {Promise} a promise which settles in the same way as the first passed 38030 promise to settle. 38031*/ 38032function race(entries) { 38033 /*jshint validthis:true */ 38034 var Constructor = this; 38035 38036 if (!isArray(entries)) { 38037 return new Constructor(function (_, reject) { 38038 return reject(new TypeError('You must pass an array to race.')); 38039 }); 38040 } else { 38041 return new Constructor(function (resolve, reject) { 38042 var length = entries.length; 38043 for (var i = 0; i < length; i++) { 38044 Constructor.resolve(entries[i]).then(resolve, reject); 38045 } 38046 }); 38047 } 38048} 38049 38050/** 38051 `Promise.reject` returns a promise rejected with the passed `reason`. 38052 It is shorthand for the following: 38053 38054 ```javascript 38055 let promise = new Promise(function(resolve, reject){ 38056 reject(new Error('WHOOPS')); 38057 }); 38058 38059 promise.then(function(value){ 38060 // Code here doesn't run because the promise is rejected! 38061 }, function(reason){ 38062 // reason.message === 'WHOOPS' 38063 }); 38064 ``` 38065 38066 Instead of writing the above, your code now simply becomes the following: 38067 38068 ```javascript 38069 let promise = Promise.reject(new Error('WHOOPS')); 38070 38071 promise.then(function(value){ 38072 // Code here doesn't run because the promise is rejected! 38073 }, function(reason){ 38074 // reason.message === 'WHOOPS' 38075 }); 38076 ``` 38077 38078 @method reject 38079 @static 38080 @param {Any} reason value that the returned promise will be rejected with. 38081 Useful for tooling. 38082 @return {Promise} a promise rejected with the given `reason`. 38083*/ 38084function reject$1(reason) { 38085 /*jshint validthis:true */ 38086 var Constructor = this; 38087 var promise = new Constructor(noop); 38088 reject(promise, reason); 38089 return promise; 38090} 38091 38092function needsResolver() { 38093 throw new TypeError('You must pass a resolver function as the first argument to the promise constructor'); 38094} 38095 38096function needsNew() { 38097 throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); 38098} 38099 38100/** 38101 Promise objects represent the eventual result of an asynchronous operation. The 38102 primary way of interacting with a promise is through its `then` method, which 38103 registers callbacks to receive either a promise's eventual value or the reason 38104 why the promise cannot be fulfilled. 38105 38106 Terminology 38107 ----------- 38108 38109 - `promise` is an object or function with a `then` method whose behavior conforms to this specification. 38110 - `thenable` is an object or function that defines a `then` method. 38111 - `value` is any legal JavaScript value (including undefined, a thenable, or a promise). 38112 - `exception` is a value that is thrown using the throw statement. 38113 - `reason` is a value that indicates why a promise was rejected. 38114 - `settled` the final resting state of a promise, fulfilled or rejected. 38115 38116 A promise can be in one of three states: pending, fulfilled, or rejected. 38117 38118 Promises that are fulfilled have a fulfillment value and are in the fulfilled 38119 state. Promises that are rejected have a rejection reason and are in the 38120 rejected state. A fulfillment value is never a thenable. 38121 38122 Promises can also be said to *resolve* a value. If this value is also a 38123 promise, then the original promise's settled state will match the value's 38124 settled state. So a promise that *resolves* a promise that rejects will 38125 itself reject, and a promise that *resolves* a promise that fulfills will 38126 itself fulfill. 38127 38128 38129 Basic Usage: 38130 ------------ 38131 38132 ```js 38133 let promise = new Promise(function(resolve, reject) { 38134 // on success 38135 resolve(value); 38136 38137 // on failure 38138 reject(reason); 38139 }); 38140 38141 promise.then(function(value) { 38142 // on fulfillment 38143 }, function(reason) { 38144 // on rejection 38145 }); 38146 ``` 38147 38148 Advanced Usage: 38149 --------------- 38150 38151 Promises shine when abstracting away asynchronous interactions such as 38152 `XMLHttpRequest`s. 38153 38154 ```js 38155 function getJSON(url) { 38156 return new Promise(function(resolve, reject){ 38157 let xhr = new XMLHttpRequest(); 38158 38159 xhr.open('GET', url); 38160 xhr.onreadystatechange = handler; 38161 xhr.responseType = 'json'; 38162 xhr.setRequestHeader('Accept', 'application/json'); 38163 xhr.send(); 38164 38165 function handler() { 38166 if (this.readyState === this.DONE) { 38167 if (this.status === 200) { 38168 resolve(this.response); 38169 } else { 38170 reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']')); 38171 } 38172 } 38173 }; 38174 }); 38175 } 38176 38177 getJSON('/posts.json').then(function(json) { 38178 // on fulfillment 38179 }, function(reason) { 38180 // on rejection 38181 }); 38182 ``` 38183 38184 Unlike callbacks, promises are great composable primitives. 38185 38186 ```js 38187 Promise.all([ 38188 getJSON('/posts'), 38189 getJSON('/comments') 38190 ]).then(function(values){ 38191 values[0] // => postsJSON 38192 values[1] // => commentsJSON 38193 38194 return values; 38195 }); 38196 ``` 38197 38198 @class Promise 38199 @param {Function} resolver 38200 Useful for tooling. 38201 @constructor 38202*/ 38203 38204var Promise$1 = function () { 38205 function Promise(resolver) { 38206 this[PROMISE_ID] = nextId(); 38207 this._result = this._state = undefined; 38208 this._subscribers = []; 38209 38210 if (noop !== resolver) { 38211 typeof resolver !== 'function' && needsResolver(); 38212 this instanceof Promise ? initializePromise(this, resolver) : needsNew(); 38213 } 38214 } 38215 38216 /** 38217 The primary way of interacting with a promise is through its `then` method, 38218 which registers callbacks to receive either a promise's eventual value or the 38219 reason why the promise cannot be fulfilled. 38220 ```js 38221 findUser().then(function(user){ 38222 // user is available 38223 }, function(reason){ 38224 // user is unavailable, and you are given the reason why 38225 }); 38226 ``` 38227 Chaining 38228 -------- 38229 The return value of `then` is itself a promise. This second, 'downstream' 38230 promise is resolved with the return value of the first promise's fulfillment 38231 or rejection handler, or rejected if the handler throws an exception. 38232 ```js 38233 findUser().then(function (user) { 38234 return user.name; 38235 }, function (reason) { 38236 return 'default name'; 38237 }).then(function (userName) { 38238 // If `findUser` fulfilled, `userName` will be the user's name, otherwise it 38239 // will be `'default name'` 38240 }); 38241 findUser().then(function (user) { 38242 throw new Error('Found user, but still unhappy'); 38243 }, function (reason) { 38244 throw new Error('`findUser` rejected and we're unhappy'); 38245 }).then(function (value) { 38246 // never reached 38247 }, function (reason) { 38248 // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'. 38249 // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'. 38250 }); 38251 ``` 38252 If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream. 38253 ```js 38254 findUser().then(function (user) { 38255 throw new PedagogicalException('Upstream error'); 38256 }).then(function (value) { 38257 // never reached 38258 }).then(function (value) { 38259 // never reached 38260 }, function (reason) { 38261 // The `PedgagocialException` is propagated all the way down to here 38262 }); 38263 ``` 38264 Assimilation 38265 ------------ 38266 Sometimes the value you want to propagate to a downstream promise can only be 38267 retrieved asynchronously. This can be achieved by returning a promise in the 38268 fulfillment or rejection handler. The downstream promise will then be pending 38269 until the returned promise is settled. This is called *assimilation*. 38270 ```js 38271 findUser().then(function (user) { 38272 return findCommentsByAuthor(user); 38273 }).then(function (comments) { 38274 // The user's comments are now available 38275 }); 38276 ``` 38277 If the assimliated promise rejects, then the downstream promise will also reject. 38278 ```js 38279 findUser().then(function (user) { 38280 return findCommentsByAuthor(user); 38281 }).then(function (comments) { 38282 // If `findCommentsByAuthor` fulfills, we'll have the value here 38283 }, function (reason) { 38284 // If `findCommentsByAuthor` rejects, we'll have the reason here 38285 }); 38286 ``` 38287 Simple Example 38288 -------------- 38289 Synchronous Example 38290 ```javascript 38291 let result; 38292 try { 38293 result = findResult(); 38294 // success 38295 } catch(reason) { 38296 // failure 38297 } 38298 ``` 38299 Errback Example 38300 ```js 38301 findResult(function(result, err){ 38302 if (err) { 38303 // failure 38304 } else { 38305 // success 38306 } 38307 }); 38308 ``` 38309 Promise Example; 38310 ```javascript 38311 findResult().then(function(result){ 38312 // success 38313 }, function(reason){ 38314 // failure 38315 }); 38316 ``` 38317 Advanced Example 38318 -------------- 38319 Synchronous Example 38320 ```javascript 38321 let author, books; 38322 try { 38323 author = findAuthor(); 38324 books = findBooksByAuthor(author); 38325 // success 38326 } catch(reason) { 38327 // failure 38328 } 38329 ``` 38330 Errback Example 38331 ```js 38332 function foundBooks(books) { 38333 } 38334 function failure(reason) { 38335 } 38336 findAuthor(function(author, err){ 38337 if (err) { 38338 failure(err); 38339 // failure 38340 } else { 38341 try { 38342 findBoooksByAuthor(author, function(books, err) { 38343 if (err) { 38344 failure(err); 38345 } else { 38346 try { 38347 foundBooks(books); 38348 } catch(reason) { 38349 failure(reason); 38350 } 38351 } 38352 }); 38353 } catch(error) { 38354 failure(err); 38355 } 38356 // success 38357 } 38358 }); 38359 ``` 38360 Promise Example; 38361 ```javascript 38362 findAuthor(). 38363 then(findBooksByAuthor). 38364 then(function(books){ 38365 // found books 38366 }).catch(function(reason){ 38367 // something went wrong 38368 }); 38369 ``` 38370 @method then 38371 @param {Function} onFulfilled 38372 @param {Function} onRejected 38373 Useful for tooling. 38374 @return {Promise} 38375 */ 38376 38377 /** 38378 `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same 38379 as the catch block of a try/catch statement. 38380 ```js 38381 function findAuthor(){ 38382 throw new Error('couldn't find that author'); 38383 } 38384 // synchronous 38385 try { 38386 findAuthor(); 38387 } catch(reason) { 38388 // something went wrong 38389 } 38390 // async with promises 38391 findAuthor().catch(function(reason){ 38392 // something went wrong 38393 }); 38394 ``` 38395 @method catch 38396 @param {Function} onRejection 38397 Useful for tooling. 38398 @return {Promise} 38399 */ 38400 38401 38402 Promise.prototype.catch = function _catch(onRejection) { 38403 return this.then(null, onRejection); 38404 }; 38405 38406 /** 38407 `finally` will be invoked regardless of the promise's fate just as native 38408 try/catch/finally behaves 38409 38410 Synchronous example: 38411 38412 ```js 38413 findAuthor() { 38414 if (Math.random() > 0.5) { 38415 throw new Error(); 38416 } 38417 return new Author(); 38418 } 38419 38420 try { 38421 return findAuthor(); // succeed or fail 38422 } catch(error) { 38423 return findOtherAuther(); 38424 } finally { 38425 // always runs 38426 // doesn't affect the return value 38427 } 38428 ``` 38429 38430 Asynchronous example: 38431 38432 ```js 38433 findAuthor().catch(function(reason){ 38434 return findOtherAuther(); 38435 }).finally(function(){ 38436 // author was either found, or not 38437 }); 38438 ``` 38439 38440 @method finally 38441 @param {Function} callback 38442 @return {Promise} 38443 */ 38444 38445 38446 Promise.prototype.finally = function _finally(callback) { 38447 var promise = this; 38448 var constructor = promise.constructor; 38449 38450 if (isFunction(callback)) { 38451 return promise.then(function (value) { 38452 return constructor.resolve(callback()).then(function () { 38453 return value; 38454 }); 38455 }, function (reason) { 38456 return constructor.resolve(callback()).then(function () { 38457 throw reason; 38458 }); 38459 }); 38460 } 38461 38462 return promise.then(callback, callback); 38463 }; 38464 38465 return Promise; 38466}(); 38467 38468Promise$1.prototype.then = then; 38469Promise$1.all = all; 38470Promise$1.race = race; 38471Promise$1.resolve = resolve$1; 38472Promise$1.reject = reject$1; 38473Promise$1._setScheduler = setScheduler; 38474Promise$1._setAsap = setAsap; 38475Promise$1._asap = asap; 38476 38477/*global self*/ 38478function polyfill() { 38479 var local = void 0; 38480 38481 if (typeof global !== 'undefined') { 38482 local = global; 38483 } else if (typeof self !== 'undefined') { 38484 local = self; 38485 } else { 38486 try { 38487 local = Function('return this')(); 38488 } catch (e) { 38489 throw new Error('polyfill failed because global object is unavailable in this environment'); 38490 } 38491 } 38492 38493 var P = local.Promise; 38494 38495 if (P) { 38496 var promiseToString = null; 38497 try { 38498 promiseToString = Object.prototype.toString.call(P.resolve()); 38499 } catch (e) { 38500 // silently ignored 38501 } 38502 38503 if (promiseToString === '[object Promise]' && !P.cast) { 38504 return; 38505 } 38506 } 38507 38508 local.Promise = Promise$1; 38509} 38510 38511// Strange compat.. 38512Promise$1.polyfill = polyfill; 38513Promise$1.Promise = Promise$1; 38514 38515return Promise$1; 38516 38517}))); 38518 38519 38520
38521 38522/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(64))) 38523 38524/***/ }), 38525/* 551 */ 38526/***/ (function(module, exports, __webpack_require__) { 38527 38528"use strict"; 38529 38530 38531module.exports = inlineHeaders; 38532 38533var encode = __webpack_require__(552); 38534 38535function inlineHeaders(url, headers) { 38536 if (/\?/.test(url)) { 38537 url += '&'; 38538 } else { 38539 url += '?'; 38540 } 38541 38542 return url + encode(headers); 38543} 38544 38545 38546/***/ }), 38547/* 552 */ 38548/***/ (function(module, exports, __webpack_require__) { 38549 38550"use strict";
vendor: 5,866 bytes, lines 38551-38790
38551// Copyright Joyent, Inc. and other Node contributors. 38552// 38553// Permission is hereby granted, free of charge, to any person obtaining a 38554// copy of this software and associated documentation files (the 38555// "Software"), to deal in the Software without restriction, including 38556// without limitation the rights to use, copy, modify, merge, publish, 38557// distribute, sublicense, and/or sell copies of the Software, and to permit 38558// persons to whom the Software is furnished to do so, subject to the 38559// following conditions: 38560// 38561// The above copyright notice and this permission notice shall be included 38562// in all copies or substantial portions of the Software. 38563// 38564// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 38565// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 38566// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 38567// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 38568// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 38569// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 38570// USE OR OTHER DEALINGS IN THE SOFTWARE. 38571 38572 38573 38574var stringifyPrimitive = function(v) { 38575 switch (typeof v) { 38576 case 'string': 38577 return v; 38578 38579 case 'boolean': 38580 return v ? 'true' : 'false'; 38581 38582 case 'number': 38583 return isFinite(v) ? v : ''; 38584 38585 default: 38586 return ''; 38587 } 38588}; 38589 38590module.exports = function(obj, sep, eq, name) { 38591 sep = sep || '&'; 38592 eq = eq || '='; 38593 if (obj === null) { 38594 obj = undefined; 38595 } 38596 38597 if (typeof obj === 'object') { 38598 return map(objectKeys(obj), function(k) { 38599 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 38600 if (isArray(obj[k])) { 38601 return map(obj[k], function(v) { 38602 return ks + encodeURIComponent(stringifyPrimitive(v)); 38603 }).join(sep); 38604 } else { 38605 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 38606 } 38607 }).join(sep); 38608 38609 } 38610 38611 if (!name) return ''; 38612 return encodeURIComponent(stringifyPrimitive(name)) + eq + 38613 encodeURIComponent(stringifyPrimitive(obj)); 38614}; 38615 38616var isArray = Array.isArray || function (xs) { 38617 return Object.prototype.toString.call(xs) === '[object Array]'; 38618}; 38619 38620function map (xs, f) { 38621 if (xs.map) return xs.map(f); 38622 var res = []; 38623 for (var i = 0; i < xs.length; i++) { 38624 res.push(f(xs[i], i)); 38625 } 38626 return res; 38627} 38628 38629var objectKeys = Object.keys || function (obj) { 38630 var res = []; 38631 for (var key in obj) { 38632 if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); 38633 } 38634 return res; 38635}; 38636 38637 38638/***/ }), 38639/* 553 */ 38640/***/ (function(module, exports, __webpack_require__) { 38641 38642"use strict"; 38643 38644 38645module.exports = jsonpRequest; 38646 38647var errors = __webpack_require__(70); 38648 38649var JSONPCounter = 0; 38650 38651function jsonpRequest(url, opts, cb) { 38652 if (opts.method !== 'GET') { 38653 cb(new Error('Method ' + opts.method + ' ' + url + ' is not supported by JSONP.')); 38654 return; 38655 } 38656 38657 opts.debug('JSONP: start'); 38658 38659 var cbCalled = false; 38660 var timedOut = false; 38661 38662 JSONPCounter += 1; 38663 var head = document.getElementsByTagName('head')[0]; 38664 var script = document.createElement('script'); 38665 var cbName = 'algoliaJSONP_' + JSONPCounter; 38666 var done = false; 38667 38668 window[cbName] = function(data) { 38669 removeGlobals(); 38670 38671 if (timedOut) { 38672 opts.debug('JSONP: Late answer, ignoring'); 38673 return; 38674 } 38675 38676 cbCalled = true; 38677 38678 clean(); 38679 38680 cb(null, { 38681 body: data, 38682 responseText: JSON.stringify(data)/* , 38683 // We do not send the statusCode, there's no statusCode in JSONP, it will be 38684 // computed using data.status && data.message like with XDR 38685 statusCode*/ 38686 }); 38687 }; 38688 38689 // add callback by hand 38690 url += '&callback=' + cbName; 38691 38692 // add body params manually 38693 if (opts.jsonBody && opts.jsonBody.params) { 38694 url += '&' + opts.jsonBody.params; 38695 } 38696 38697 var ontimeout = setTimeout(timeout, opts.timeouts.complete); 38698 38699 // script onreadystatechange needed only for 38700 // <= IE8 38701 // https://github.com/angular/angular.js/issues/4523 38702 script.onreadystatechange = readystatechange; 38703 script.onload = success; 38704 script.onerror = error; 38705 38706 script.async = true; 38707 script.defer = true; 38708 script.src = url; 38709 head.appendChild(script); 38710 38711 function success() { 38712 opts.debug('JSONP: success'); 38713 38714 if (done || timedOut) { 38715 return; 38716 } 38717 38718 done = true; 38719 38720 // script loaded but did not call the fn => script loading error 38721 if (!cbCalled) { 38722 opts.debug('JSONP: Fail. Script loaded but did not call the callback'); 38723 clean(); 38724 cb(new errors.JSONPScriptFail()); 38725 } 38726 } 38727 38728 function readystatechange() { 38729 if (this.readyState === 'loaded' || this.readyState === 'complete') { 38730 success(); 38731 } 38732 } 38733 38734 function clean() { 38735 clearTimeout(ontimeout); 38736 script.onload = null; 38737 script.onreadystatechange = null; 38738 script.onerror = null; 38739 head.removeChild(script); 38740 } 38741 38742 function removeGlobals() { 38743 try { 38744 delete window[cbName]; 38745 delete window[cbName + '_loaded']; 38746 } catch (e) { 38747 window[cbName] = window[cbName + '_loaded'] = undefined; 38748 } 38749 } 38750 38751 function timeout() { 38752 opts.debug('JSONP: Script timeout'); 38753 timedOut = true; 38754 clean(); 38755 cb(new errors.RequestTimeout()); 38756 } 38757 38758 function error() { 38759 opts.debug('JSONP: Script error'); 38760 38761 if (done || timedOut) { 38762 return; 38763 } 38764 38765 clean(); 38766 cb(new errors.JSONPScriptError()); 38767 } 38768} 38769 38770 38771/***/ }), 38772/* 554 */ 38773/***/ (function(module, exports, __webpack_require__) { 38774 38775module.exports = createPlacesClient; 38776 38777var buildSearchMethod = __webpack_require__(221); 38778 38779function createPlacesClient(algoliasearch) { 38780 return function places(appID, apiKey, opts) { 38781 var cloneDeep = __webpack_require__(48); 38782 38783 opts = opts && cloneDeep(opts) || {}; 38784 opts.hosts = opts.hosts || [ 38785 'places-dsn.algolia.net', 38786 'places-1.algolianet.com', 38787 'places-2.algolianet.com', 38788 'places-3.algolianet.com' 38789 ]; 38790
38791 // allow initPlaces() no arguments => community rate limited 38792 if (arguments.length === 0 || typeof appID === 'object' || appID === undefined) { 38793 appID = ''; 38794 apiKey = ''; 38795 opts._allowEmptyCredentials = true; 38796 } 38797 38798 var client = algoliasearch(appID, apiKey, opts); 38799 var index = client.initIndex('places'); 38800 index.search = buildSearchMethod('query', '/1/places/query'); 38801 index.getObject = function(objectID, callback) { 38802 return this.as._jsonRequest({ 38803 method: 'GET', 38804 url: '/1/places/' + encodeURIComponent(objectID), 38805 hostType: 'read', 38806 callback: callback 38807 }); 38808 }; 38809 return index; 38810 }; 38811} 38812 38813 38814/***/ }), 38815/* 555 */ 38816/***/ (function(module, exports, __webpack_require__) { 38817 38818"use strict"; 38819 38820 38821module.exports = '3.30.0'; 38822 38823 38824/***/ }), 38825/* 556 */ 38826/***/ (function(module, exports, __webpack_require__) { 38827 38828"use strict"; 38829 38830 38831Object.defineProperty(exports, "__esModule", { 38832 value: true 38833}); 38834 38835var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 38836 38837var _react = __webpack_require__(32); 38838 38839var _react2 = _interopRequireDefault(_react); 38840 38841var _algolia = __webpack_require__(226); 38842 38843function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 38844 38845function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 38846 38847function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 38848 38849function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 38850 38851var SearchResult = function (_Component) { 38852 _inherits(SearchResult, _Component); 38853 38854 function SearchResult() { 38855 _classCallCheck(this, SearchResult); 38856 38857 return _possibleConstructorReturn(this, (SearchResult.__proto__ || Object.getPrototypeOf(SearchResult)).apply(this, arguments)); 38858 } 38859 38860 _createClass(SearchResult, [{ 38861 key: 'render', 38862 value: function render() { 38863 var title = (0, _algolia.renderAlgoliaHightligthed)(this.props.item, 'title'); 38864 return _react2.default.createElement( 38865 'li', 38866 { className: 'cpcTeaserSmall_list_item' }, 38867 _react2.default.createElement( 38868 'a', 38869 { href: this.props.item.url, className: 'cpcTeaserSmall' }, 38870 _react2.default.createElement('div', { className: 'cpcTeaserSmall_img', dangerouslySetInnerHTML: { __html: this.props.item.image } }), 38871 _react2.default.createElement('h3', { className: 'cpcTeaserSmall_title', dangerouslySetInnerHTML: title }), 38872 _react2.default.createElement( 38873 'div', 38874 { className: 'cpcTeaserSmall_action' }, 38875 _react2.default.createElement( 38876 'span', 38877 { className: 'sr-only' }, 38878 'Voir le r\xE9sultat' 38879 ), 38880 _react2.default.createElement('i', { className: 'cpcico cpcico-angle-right', 'aria-hidden': 'true' }) 38881 ) 38882 ) 38883 ); 38884 } 38885 }]); 38886 38887 return SearchResult; 38888}(_react.Component); 38889 38890exports.default = SearchResult; 38891 38892/***/ }), 38893/* 557 */ 38894/***/ (function(module, exports, __webpack_require__) { 38895 38896"use strict"; 38897 38898 38899Object.defineProperty(exports, "__esModule", { 38900 value: true 38901}); 38902 38903var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 38904 38905var _react = __webpack_require__(32); 38906 38907var _react2 = _interopRequireDefault(_react); 38908 38909var _BenchmarkSearch = __webpack_require__(558); 38910 38911var _BenchmarkSearch2 = _interopRequireDefault(_BenchmarkSearch); 38912 38913var _BenchmarkResults = __webpack_require__(559); 38914 38915var _BenchmarkResults2 = _interopRequireDefault(_BenchmarkResults); 38916 38917var _BenchmarkFacets = __webpack_require__(561); 38918 38919var _BenchmarkFacets2 = _interopRequireDefault(_BenchmarkFacets); 38920 38921var _BenchmarkPager = __webpack_require__(562); 38922 38923var _BenchmarkPager2 = _interopRequireDefault(_BenchmarkPager); 38924 38925var _benchmark_algolia = __webpack_require__(563); 38926 38927var _query = __webpack_require__(564); 38928 38929function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 38930 38931function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
38931y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 38932 38933function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 38934 38935function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 38936 38937function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 38938 38939var BenchmarkSearchPage = function (_Component) { 38940 _inherits(BenchmarkSearchPage, _Component); 38941 38942 function BenchmarkSearchPage(props) { 38943 _classCallCheck(this, BenchmarkSearchPage); 38944 38945 var _this = _possibleConstructorReturn(this, (BenchmarkSearchPage.__proto__ || Object.getPrototypeOf(BenchmarkSearchPage)).call(this, props)); 38946 38947 _this.state = { 38948 term: (0, _query.getParameterByName)('search_input') || '', 38949 results: [], 38950 facets: {}, 38951 facetsList: {}, 38952 page: 0, 38953 nbPages: 0 38954 }; 38955 38956 _this.handleTermChange = _this.handleTermChange.bind(_this); 38957 _this.handleFacetChange = _this.handleFacetChange.bind(_this); 38958 _this.handlePageChange = _this.handlePageChange.bind(_this); 38959 _this.handleThemeClick = _this.handleThemeClick.bind(_this); 38960 return _this; 38961 } 38962 38963 _createClass(BenchmarkSearchPage, [{ 38964 key: 'handleThemeClick', 38965 value: function handleThemeClick(e) { 38966 var _this2 = this; 38967 38968 var newFacets = Object.assign(this.state.facets, {}); 38969 newFacets[e.detail.value].checked = true; 38970 this.setState({ facets: newFacets }, function () { 38971 _this2.performSearch(); 38972 }); 38973 } 38974 }, { 38975 key: 'componentDidMount', 38976 value: function componentDidMount() { 38977 var _this3 = this; 38978 38979 var term = this.state.term; 38980 38981 if ('' !== term) { 38982 this.performSearch(term); 38983 } else { 38984 (0, _benchmark_algolia.defaultSearch)().then(function (response) { 38985 var facets = _this3.getFacetsFromResponse(response); 38986 _this3.setState({ 38987 facets: facets, 38988 facetsList: facets, 38989 results: response.hits, 38990 nbPages: response.nbPages 38991 }); 38992 }); 38993 } 38994 document.addEventListener('CapComThemeClick', this.handleThemeClick); 38995 } 38996 }, { 38997 key: 'getFacetsFromResponse', 38998 value: function getFacetsFromResponse(algoliaResponse) { 38999 var _this4 = this; 39000 39001 var facets = {}; 39002 var algoliaFacets = algoliaResponse.facets.field_thematics; 39003 if (undefined === algoliaFacets) { 39004 return {}; 39005 } 39006 Object.keys(algoliaFacets).forEach(function (facetId) { 39007 var checked = false; 39008 if (_this4.state.facets.hasOwnProperty(facetId)) { 39009 checked = _this4.state.facets[facetId].checked; 39010 } 39011 facets[facetId] = { 39012 id: facetId, 39013 count: algoliaFacets[facetId], 39014 checked: checked 39015 }; 39016 }); 39017 39018 return facets; 39019 } 39020 }, { 39021 key: 'getFacetsString', 39022 value: function getFacetsString() { 39023 var _this5 = this; 39024 39025 var facetsString = []; 39026 Object.keys(this.state.facets).forEach(function (facetId) { 39027 if (_this5.state.facets[facetId].checked) { 39028 facetsString.push('field_thematics:"' + facetId + '"'); 39029 } 39030 }); 39031 facetsString = facetsString.join(' OR '); 39032 39033 return facetsString; 39034 } 39035 }, { 39036 key: 'handleFacetChange', 39037 value: function handleFacetChange(e) { 39038 var _this6 = this; 39039 39040 var newFacets = Object.assign({}, this.state.facets);
39041 Object.keys(this.state.facets).forEach(function (facetId) { 39042 if (facetId === e.target.value) { 39043 newFacets[facetId].checked = e.target.checked; 39044 } 39045 }); 39046 this.setState({ 39047 facets: newFacets 39048 }, function () { 39049 _this6.performSearch(); 39050 }); 39051 } 39052 }, { 39053 key: 'handleTermChange', 39054 value: function handleTermChange(term) { 39055 var _this7 = this; 39056 39057 this.setState({ 39058 term: term 39059 }, function () { 39060 _this7.performSearch(term); 39061 }); 39062 } 39063 }, { 39064 key: 'performSearch', 39065 value: function () { 39066 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(term) { 39067 var termResponse, facetFilteredResponse, facets; 39068 return regeneratorRuntime.wrap(function _callee$(_context) { 39069 while (1) { 39070 switch (_context.prev = _context.next) { 39071 case 0: 39072 if (undefined === term) { 39073 term = this.state.term; 39074 } 39075 _context.next = 3; 39076 return (0, _benchmark_algolia.indexSearch)(term, ''); 39077 39078 case 3: 39079 termResponse = _context.sent; 39080 _context.next = 6; 39081 return (0, _benchmark_algolia.indexSearch)(term, this.getFacetsString()); 39082 39083 case 6: 39084 facetFilteredResponse = _context.sent; 39085 facets = Object.assign({}, this.getFacetsFromResponse(termResponse)); 39086 39087 this.setState({ 39088 results: facetFilteredResponse.hits, 39089 facets: facets, 39090 nbPages: facetFilteredResponse.nbPages, 39091 page: 0 39092 }); 39093 39094 case 9: 39095 case 'end': 39096 return _context.stop(); 39097 } 39098 } 39099 }, _callee, this); 39100 })); 39101 39102 function performSearch(_x) { 39103 return _ref.apply(this, arguments); 39104 } 39105 39106 return performSearch; 39107 }() 39108 }, { 39109 key: 'handlePageChange', 39110 value: function () { 39111 var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(newPage) { 39112 var facetFilteredResponse, event; 39113 return regeneratorRuntime.wrap(function _callee2$(_context2) { 39114 while (1) { 39115 switch (_context2.prev = _context2.next) { 39116 case 0: 39117 _context2.next = 2; 39118 return (0, _benchmark_algolia.indexSearch)(this.state.term, this.getFacetsString(), newPage); 39119 39120 case 2: 39121 facetFilteredResponse = _context2.sent; 39122 event = new CustomEvent('newStateLoad', { 39123 detail: { 39124 destination: '[data-role=benchmark-search]' 39125 } 39126 }); 39127 _context2.next = 6; 39128 return document.dispatchEvent(event); 39129 39130 case 6: 39131 this.setState({ 39132 results: facetFilteredResponse.hits, 39133 page: newPage 39134 }); 39135 39136 case 7: 39137 case 'end': 39138 return _context2.stop(); 39139 } 39140 } 39141 }, _callee2, this); 39142 })); 39143 39144 function handlePageChange(_x2) { 39145 return _ref2.apply(this, arguments); 39146 } 39147 39148 return handlePageChange; 39149 }() 39150 }, { 39151 key: 'render', 39152 value: function render() { 39153 return _react2.default.createElement( 39154 'div', 39155 { className: 'benchmark_wrapper' }, 39156 _react2.default.createElement( 39157 'div', 39158 { className: 'benchmark_search_bar' }, 39159 _react2.default.createElement(_BenchmarkSearch2.default, { 39160 term: this.state.term, 39161 onTermChange: this.handleTermChange 39162 }) 39163 ), 39164 _react2.default.createElement( 39165 'div', 39166 { className: 'benchmark_search_wrapper' }, 39167 _react2.default.createElement( 39168 'div', 39169 { className: 'benchmark_search_facets' }, 39170 _react2.default.createElement(_BenchmarkFacets2.default, { 39171 facets: this.state.facets, 39172 onFacetChange: this.handleFacetChange 39173 }) 39174 ), 39175 _react2.default.createElement( 39176 'div', 39177 { className: 'benchmark_search_results is-l' }, 39178 _react2.default.createElement(_BenchmarkResults2.default, { 39179 results: this.state.results 39180 }), 39181 _react2.default.createElement(_BenchmarkPager2.default, { 39182 page: this.state.page, 39183 nbPages: this.state.nbPages, 39184 handlePageChange: this.handlePageChange 39185 }) 39186 ) 39187 ) 39188 ); 39189 } 39190 }]); 39191 39192 return BenchmarkSearchPage; 39193}(_react.Component); 39194 39195exports.default = BenchmarkSearchPage; 39196 39197/***/ }), 39198/* 558 */ 39199/***/ (function(module, exports, __webpack_require__) { 39200 39201"use strict"; 39202 39203 39204Object.defineProperty(exports, "__esModule", { 39205 value: true 39206}); 39207 39208var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39209 39210var _react = __webpack_require__(32); 39211 39212var _react2 = _interopRequireDefault(_react); 39213 39214function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39215 39216function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39217 39218function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39219 39220function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39220onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39221 39222var BenchmarkSearch = function (_Component) { 39223 _inherits(BenchmarkSearch, _Component); 39224 39225 function BenchmarkSearch(props) { 39226 _classCallCheck(this, BenchmarkSearch); 39227 39228 var _this = _possibleConstructorReturn(this, (BenchmarkSearch.__proto__ || Object.getPrototypeOf(BenchmarkSearch)).call(this, props)); 39229 39230 _this.handleTermChange = _this.handleTermChange.bind(_this); 39231 return _this; 39232 } 39233 39234 _createClass(BenchmarkSearch, [{ 39235 key: "handleTermChange", 39236 value: function handleTermChange(e) { 39237 this.props.onTermChange(e.target.value); 39238 } 39239 }, { 39240 key: "render", 39241 value: function render() { 39242 return _react2.default.createElement( 39243 "form", 39244 null, 39245 _react2.default.createElement("input", { 39246 placeholder: "Rechercher", 39247 className: "cpcHeader_search_input", 39248 name: "search_input", 39249 "data-header-role": "algolia-search-input", 39250 value: this.props.term, 39251 onChange: this.handleTermChange, 39252 type: "search" }) 39253 ); 39254 } 39255 }]); 39256 39257 return BenchmarkSearch; 39258}(_react.Component); 39259 39260exports.default = BenchmarkSearch; 39261 39262/***/ }), 39263/* 559 */ 39264/***/ (function(module, exports, __webpack_require__) { 39265 39266"use strict"; 39267 39268 39269Object.defineProperty(exports, "__esModule", { 39270 value: true 39271}); 39272 39273var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39274 39275var _react = __webpack_require__(32); 39276 39277var _react2 = _interopRequireDefault(_react); 39278 39279var _BenchmarkResult = __webpack_require__(560); 39280 39281var _BenchmarkResult2 = _interopRequireDefault(_BenchmarkResult); 39282 39283function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39284 39285function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39286 39287function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39288 39289function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39290 39291var BenchmarkResults = function (_Component) { 39292 _inherits(BenchmarkResults, _Component); 39293 39294 function BenchmarkResults() { 39295 _classCallCheck(this, BenchmarkResults); 39296 39297 return _possibleConstructorReturn(this, (BenchmarkResults.__proto__ || Object.getPrototypeOf(BenchmarkResults)).apply(this, arguments)); 39298 } 39299 39300 _createClass(BenchmarkResults, [{ 39301 key: 'render', 39302 value: function render() { 39303 return 0 < Object.keys(this.props.results).length ? _react2.default.createElement( 39304 'div', 39305 null, 39306 this.props.results.map(function (result, i) { 39307 return _react2.default.createElement(_BenchmarkResult2.default, { item: result, key: i }); 39308 }) 39309 ) : _react2.default.createElement( 39310 'div', 39311 null, 39312 'La recherche n\'a donn\xE9 aucun resultat' 39313 ); 39314 } 39315 }]); 39316 39317 return BenchmarkResults; 39318}(_react.Component); 39319 39320exports.default = BenchmarkResults; 39321 39322/***/ }), 39323/* 560 */ 39324/***/ (function(module, exports, __webpack_require__) { 39325 39326"use strict"; 39327 39328 39329Object.defineProperty(exports, "__esModule", { 39330 value: true 39331}); 39332 39333var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39334 39335var _react = __webpack_require__(32); 39336 39337var _react2 = _interopRequireDefault(_react); 39338 39339var _algolia = __webpack_require__(226); 39340 39341function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39342 39343function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39344 39345function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39346 39347function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39347onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39348 39349var BenchmarkResult = function (_Component) { 39350 _inherits(BenchmarkResult, _Component); 39351 39352 function BenchmarkResult(props) { 39353 _classCallCheck(this, BenchmarkResult); 39354 39355 var _this = _possibleConstructorReturn(this, (BenchmarkResult.__proto__ || Object.getPrototypeOf(BenchmarkResult)).call(this, props)); 39356 39357 _this.handleThemeClick = _this.handleThemeClick.bind(_this); 39358 return _this; 39359 } 39360 39361 _createClass(BenchmarkResult, [{ 39362 key: 'handleThemeClick', 39363 value: function handleThemeClick(e) { 39364 var themeClickEvent = new CustomEvent('CapComThemeClick', { detail: { value: e.target.innerHTML } }); 39365 document.dispatchEvent(themeClickEvent); 39366 } 39367 }, { 39368 key: 'render', 39369 value: function render() { 39370 var _this2 = this; 39371 39372 var item = this.props.item; 39373 39374 var title = (0, _algolia.renderAlgoliaHightligthed)(item, 'title'); 39375 return _react2.default.createElement( 39376 'div', 39377 { className: 'cpcArticle-teaser' }, 39378 _react2.default.createElement('div', { className: 'cpcArticle-teaser_img', dangerouslySetInnerHTML: { __html: item.image } }), 39379 _react2.default.createElement( 39380 'div', 39381 { className: 'cpcArticle-teaser_preview' }, 39382 _react2.default.createElement( 39383 'div', 39384 { className: 'cpcArticle_title' }, 39385 _react2.default.createElement('h3', { dangerouslySetInnerHTML: title }) 39386 ), 39387 false ? _react2.default.createElement( 39388 'div', 39389 { className: 'cpcArticle_details' }, 39390 _react2.default.createElement('span', { className: 'date', dangerouslySetInnerHTML: { __html: item.contentDate } }) 39391 ) : null, 39392 _react2.default.createElement( 39393 'div', 39394 { className: 'cpcArticle_label' }, 39395 _react2.default.createElement( 39396 'ul', 39397 { className: 'themeLabel-list' }, 39398 item.field_thematics.map(function (thematic) { 39399 return _react2.default.createElement( 39400 'li', 39401 { key: thematic }, 39402 _react2.default.createElement( 39403 'span', 39404 { className: 'themeLabel', onClick: _this2.handleThemeClick }, 39405 thematic 39406 ) 39407 ); 39408 }) 39409 ) 39410 ), 39411 _react2.default.createElement('div', { className: 'cpcArticle_preview', dangerouslySetInnerHTML: { __html: item.teaser } }), 39412 _react2.default.createElement( 39413 'a', 39414 { className: 'cpcArticle_read-more', href: item.url }, 39415 'Lire la suite' 39416 ) 39417 ) 39418 ); 39419 } 39420 }]); 39421 39422 return BenchmarkResult; 39423}(_react.Component); 39424 39425exports.default = BenchmarkResult; 39426 39427/***/ }), 39428/* 561 */ 39429/***/ (function(module, exports, __webpack_require__) { 39430 39431"use strict"; 39432 39433 39434Object.defineProperty(exports, "__esModule", { 39435 value: true 39436}); 39437 39438var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39439 39440var _react = __webpack_require__(32); 39441 39442var _react2 = _interopRequireDefault(_react); 39443 39444function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39445 39446function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39447 39448function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39449 39450function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39450onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39451 39452var BenchmarkSearch = function (_Component) { 39453 _inherits(BenchmarkSearch, _Component); 39454 39455 function BenchmarkSearch(props) { 39456 _classCallCheck(this, BenchmarkSearch); 39457 39458 var _this = _possibleConstructorReturn(this, (BenchmarkSearch.__proto__ || Object.getPrototypeOf(BenchmarkSearch)).call(this, props)); 39459 39460 _this.state = { width: 0, height: 0, breakpoint: 0 }; 39461 _this.updateWindowDimensions = _this.updateWindowDimensions.bind(_this); 39462 return _this; 39463 } 39464 39465 _createClass(BenchmarkSearch, [{ 39466 key: 'componentDidMount', 39467 value: function componentDidMount() { 39468 this.updateWindowDimensions(); 39469 window.addEventListener('resize', this.updateWindowDimensions); 39470 } 39471 }, { 39472 key: 'componentWillUnmount', 39473 value: function componentWillUnmount() { 39474 window.removeEventListener('resize', this.updateWindowDimensions); 39475 } 39476 }, { 39477 key: 'updateWindowDimensions', 39478 value: function updateWindowDimensions() { 39479 this.setState({ 39480 width: window.innerWidth, 39481 height: window.innerHeight, 39482 breakpoint: parseInt(getComputedStyle(document.documentElement).getPropertyValue("--mediaquery-smallscreen-layout")) 39483 }); 39484 } 39485 }, { 39486 key: 'render', 39487 value: function render() { 39488 var _this2 = this; 39489 39490 if (0 >= Object.keys(this.props.facets).length) { 39491 return null; 39492 } 39493 39494 return !isNaN(this.state.breakpoint) && this.state.breakpoint > this.state.width ? _react2.default.createElement( 39495 'details', 39496 { className: 'cpcItem cpcSubscribeContainer has-full-border' }, 39497 _react2.default.createElement( 39498 'summary', 39499 { className: 'cpcItem_title' }, 39500 'Filtrer par th\xE9matique' 39501 ), 39502 _react2.default.createElement( 39503 'ul', 39504 { className: 'cpcList' }, 39505 Object.values(this.props.facets).map(function (facet, id) { 39506 return _react2.default.createElement( 39507 'li', 39508 { key: id }, 39509 _react2.default.createElement( 39510 'span', 39511 { className: 'facetselector' }, 39512 _react2.default.createElement('input', { 39513 id: facet.id, 39514 value: facet.id, 39515 type: 'checkbox', 39516 checked: facet.checked, 39517 onChange: _this2.props.onFacetChange }), 39518 _react2.default.createElement( 39519 'label', 39520 { htmlFor: facet.id }, 39521 facet.id, 39522 ' (', 39523 facet.count, 39524 ')' 39525 ) 39526 ) 39527 ); 39528 }) 39529 ) 39530 ) : _react2.default.createElement( 39531 'div', 39532 { className: 'cpcItem cpcSubscribeContainer has-full-border' }, 39533 _react2.default.createElement( 39534 'div', 39535 { className: 'cpcItem_title' }, 39536 'Filtrer par th\xE9matique' 39537 ), 39538 _react2.default.createElement( 39539 'ul', 39540 { className: 'cpcList' }, 39541 Object.values(this.props.facets).map(function (facet, id) { 39542 return _react2.default.createElement( 39543 'li', 39544 { key: id }, 39545 _react2.default.createElement( 39546 'span', 39547 { className: 'facetselector' }, 39548 _react2.default.createElement('input', { 39549 id: facet.id, 39550 value: facet.id, 39551 type: 'checkbox', 39552 checked: facet.checked, 39553 onChange: _this2.props.onFacetChange }), 39554 _react2.default.createElement( 39555 'label', 39556 { htmlFor: facet.id }, 39557 facet.id, 39558 ' (', 39559 facet.count, 39560 ')' 39561 ) 39562 ) 39563 ); 39564 }) 39565 ) 39566 ); 39567 } 39568 }]); 39569 39570 return BenchmarkSearch; 39571}(_react.Component); 39572 39573exports.default = BenchmarkSearch; 39574 39575/***/ }), 39576/* 562 */ 39577/***/ (function(module, exports, __webpack_require__) { 39578 39579"use strict"; 39580 39581 39582Object.defineProperty(exports, "__esModule", { 39583 value: true 39584}); 39585 39586var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39587 39588var _react = __webpack_require__(32); 39589 39590var _react2 = _interopRequireDefault(_react); 39591 39592function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39593 39594function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39595 39596function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39597 39598function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39598onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39599 39600var BenchmarkResult = function (_Component) { 39601 _inherits(BenchmarkResult, _Component); 39602 39603 function BenchmarkResult(props) { 39604 _classCallCheck(this, BenchmarkResult); 39605 39606 var _this = _possibleConstructorReturn(this, (BenchmarkResult.__proto__ || Object.getPrototypeOf(BenchmarkResult)).call(this, props)); 39607 39608 _this.onPageChange = _this.onPageChange.bind(_this); 39609 return _this; 39610 } 39611 39612 _createClass(BenchmarkResult, [{ 39613 key: 'onPageChange', 39614 value: function onPageChange(e) { 39615 var _props = this.props, 39616 page = _props.page, 39617 nbPages = _props.nbPages; 39618 39619 if ('next-page' === e.target.getAttribute('data-role') && nbPages > page + 1) { 39620 this.props.handlePageChange(page + 1); 39621 } 39622 if ('previous-page' === e.target.getAttribute('data-role') && 0 <= page - 1) { 39623 this.props.handlePageChange(page - 1); 39624 } 39625 } 39626 }, { 39627 key: 'render', 39628 value: function render() { 39629 var _props2 = this.props, 39630 page = _props2.page, 39631 nbPages = _props2.nbPages; 39632 39633 return nbPages <= 1 ? null : _react2.default.createElement( 39634 'nav', 39635 { className: 'cpcMiniPager-wpr benchmark_search_pager' }, 39636 _react2.default.createElement( 39637 'h4', 39638 { className: 'visually-hidden' }, 39639 'Pagination' 39640 ), 39641 _react2.default.createElement( 39642 'ul', 39643 { className: 'cpcContainer has-row-direction cpcMiniPager' }, 39644 page !== 0 ? _react2.default.createElement( 39645 'li', 39646 null, 39647 _react2.default.createElement( 39648 'button', 39649 { className: 'cpcItemButton', rel: 'previous', 'data-role': 'previous-page', onClick: this.onPageChange }, 39650 _react2.default.createElement( 39651 'span', 39652 { style: { pointerEvents: 'none' }, className: 'cpcMiniPager-next' }, 39653 '<' 39654 ) 39655 ) 39656 ) : null, 39657 _react2.default.createElement( 39658 'li', 39659 { className: 'cpcMiniPager-page' }, 39660 'Page ', 39661 page + 1, 39662 '/', 39663 nbPages 39664 ), 39665 nbPages > page + 1 ? _react2.default.createElement( 39666 'li', 39667 null, 39668 _react2.default.createElement( 39669 'button', 39670 { className: 'cpcItemButton', rel: 'next', 'data-role': 'next-page', onClick: this.onPageChange }, 39671 _react2.default.createElement( 39672 'span', 39673 { style: { pointerEvents: 'none' }, className: 'cpcMiniPager-next' }, 39674 '>' 39675 ) 39676 ) 39677 ) : null 39678 ) 39679 ); 39680 } 39681 }]); 39682 39683 return BenchmarkResult; 39684}(_react.Component); 39685 39686exports.default = BenchmarkResult; 39687 39688/***/ }), 39689/* 563 */ 39690/***/ (function(module, exports, __webpack_require__) { 39691 39692"use strict"; 39693 39694 39695Object.defineProperty(exports, "__esModule", { 39696 value: true 39697}); 39698exports.defaultSearch = exports.indexSearch = undefined; 39699 39700var _algoliasearch = __webpack_require__(153); 39701 39702var _algoliasearch2 = _interopRequireDefault(_algoliasearch); 39703 39704var _api_data = __webpack_require__(225); 39705 39706function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39707
39708var client = (0, _algoliasearch2.default)(_api_data.appId, _api_data.apiKey); 39709var index = client.initIndex(_api_data.benchmarkIndexName); 39710 39711var indexSearch = exports.indexSearch = function indexSearch(query, facets, page) { 39712 if (undefined === page) { 39713 page = 0; 39714 } 39715 return index.search({ 39716 'query': query, 39717 'facets': 'field_thematics', 39718 'sortFacetValuesBy': 'alpha', 39719 'filters': facets, 39720 'page': page, 39721 'hitsPerPage': 10 39722 }).then(function (response) { 39723 return response; 39724 }).catch(function (error) { 39725 console.error(error); 39726 }); 39727}; 39728 39729var defaultSearch = exports.defaultSearch = function defaultSearch() { 39730 return index.search({ 39731 'query': '', 39732 'facets': 'field_thematics', 39733 'sortFacetValuesBy': 'alpha', 39734 'page': 0, 39735 'hitsPerPage': 10 39736 }).then(function (response) { 39737 return response; 39738 }).catch(function (error) { 39739 console.error(error); 39740 }); 39741}; 39742 39743/***/ }), 39744/* 564 */ 39745/***/ (function(module, exports, __webpack_require__) { 39746 39747"use strict"; 39748 39749 39750Object.defineProperty(exports, "__esModule", { 39751 value: true 39752}); 39753var getParameterByName = exports.getParameterByName = function getParameterByName(name, url) { 39754 if (undefined === url) { 39755 url = window.location.href; 39756 } 39757 name = name.replace(/[\[\]]/g, "\\$&"); 39758 var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"); 39759 var results = regex.exec(url); 39760 if (!results) { 39761 39762 return null; 39763 } 39764 if (!results[2]) { 39765 39766 return ''; 39767 } 39768 var param = decodeURIComponent(results[2].replace(/\+/g, " ")); 39769 39770 return param; 39771}; 39772 39773/***/ }), 39774/* 565 */ 39775/***/ (function(module, exports, __webpack_require__) { 39776 39777"use strict"; 39778 39779 39780Object.defineProperty(exports, "__esModule", { 39781 value: true 39782}); 39783 39784var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39785 39786var _react = __webpack_require__(32); 39787 39788var _react2 = _interopRequireDefault(_react); 39789 39790function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 39791 39792function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39793 39794function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 39795 39796function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 39797 39798var Attendees = function (_Component) { 39799 _inherits(Attendees, _Component); 39800 39801 function Attendees(props) { 39802 _classCallCheck(this, Attendees); 39803 39804 var _this = _possibleConstructorReturn(this, (Attendees.__proto__ || Object.getPrototypeOf(Attendees)).call(this, props)); 39805 39806 _this.state = { 39807 originalItems: [], 39808 items: [], 39809 order: null, 39810 orderBy: null, 39811 itemsPerPage: 50, 39812 page: 0, 39813 filters: {} 39814 }; 39815 _this.doFilter = _this.doFilter.bind(_this); 39816 _this.doSort = _this.doSort.bind(_this); 39817 _this.realDoUpdate = _this.realDoUpdate.bind(_this); 39818 _this.doUpdate = _this.doUpdate.bind(_this); 39819 _this.getItems = _this.getItems.bind(_this); 39820 _this.sortItems = _this.sortItems.bind(_this); 39821 _this.paginateItems = _this.paginateItems.bind(_this); 39822 _this.filterItems = _this.filterItems.bind(_this); 39823 _this.getUniqueValues = _this.getUniqueValues.bind(_this); 39824 return _this; 39825 } 39826 39827 _createClass(Attendees, [{ 39828 key: 'doFilter', 39829 value: function doFilter(items, filters) { 39830 return items.filter(function (item) { 39831 var isMatch = true; 39832 Object.keys(filters).map(function (filterName) { 39833 var filterValue = filters[filterName]; 39834 if (!filterValue || filterName !== 'Code postal' && filterName in item && filterValue && typeof item[filterName] === 'string' && item[filterName].match(new RegExp(filterValue, 'i')) || filterName === 'Code postal' && filterName in item && typeof item[filterName] === 'string' && item[filterName].match(new RegExp('^' + filterValue))) return; 39835 isMatch = false;
39836 }); 39837 return isMatch; 39838 }); 39839 } 39840 }, { 39841 key: 'doSort', 39842 value: function doSort(items, order, orderBy) { 39843 return items.sort(function (a, b) { 39844 var aString = typeof a[order] === 'string' ? a[order] : '', 39845 bString = typeof b[order] === 'string' ? b[order] : ''; 39846 try { 39847 return (orderBy === 'asc' ? +1 : -1) * aString.toLocaleLowerCase('fr').localeCompare(bString.toLocaleLowerCase('fr'), 'fr', { sensitivity: 'base', ignorePunctuation: true }); 39848 } catch (e) { 39849 return (orderBy === 'asc' ? +1 : -1) * (aString.toLowerCase() == bString.toLowerCase() ? 0 : aString.toLowerCase() > bString.toLowerCase() ? +1 : -1); 39850 } 39851 }); 39852 } 39853 }, { 39854 key: 'realDoUpdate', 39855 value: function realDoUpdate(items, filters, order, orderBy) { 39856 return this.doSort(this.doFilter(items, filters), order, orderBy); 39857 } 39858 }, { 39859 key: 'doUpdate', 39860 value: function doUpdate(filters, order, orderBy) { 39861 return this.realDoUpdate(this.state.originalItems, filters, order, orderBy); 39862 } 39863 }, { 39864 key: 'getItems', 39865 value: function getItems() { 39866 var self = this, 39867 request = new XMLHttpRequest(); 39868 request.open('GET', drupalSettings.capcom_header.business_api_base_url + '/attendee-finder/' + this.props.eventParam, true); 39869 request.onreadystatechange = function () { 39870 if (request.readyState != 4 || request.status != 200) return; 39871 39872 var items = JSON.parse(request.responseText); 39873 39874 self.setState({ 39875 originalItems: items, 39876 items: self.realDoUpdate(items, {}, 'Nom', 'asc'), 39877 order: 'Nom', 39878 orderBy: 'asc' 39879 }); 39880 }; 39881 request.send(); 39882 } 39883 }, { 39884 key: 'getUniqueValues', 39885 value: function getUniqueValues(items, col) { 39886 var values = []; 39887 39888 items.forEach(function (item) { 39889 var index = values.indexOf(item[col]); 39890 if (index === -1) { 39891 values.push(item[col]); 39892 } 39893 }); 39894 39895 return values.sort(function (aString, bString) { 39896 if (typeof aString !== 'string') { 39897 aString = ''; 39898 } 39899 if (typeof bString !== 'string') {
39900 bString = ''; 39901 } 39902 try { 39903 return aString.toLocaleLowerCase('fr').localeCompare(bString.toLocaleLowerCase('fr'), 'fr', { sensitivity: 'base', ignorePunctuation: true }); 39904 } catch (e) { 39905 return aString.toLowerCase() == bString.toLowerCase() ? 0 : aString.toLowerCase() > bString.toLowerCase() ? +1 : -1; 39906 } 39907 }); 39908 } 39909 }, { 39910 key: 'paginateItems', 39911 value: function paginateItems(e) { 39912 var newPage = parseInt(e.target.getAttribute('data-page')); 39913 39914 this.setState({ 39915 page: newPage 39916 }); 39917 } 39918 }, { 39919 key: 'sortItems', 39920 value: function sortItems(e) { 39921 var newOrder = e.target.getAttribute('data-col'), 39922 newOrderBy = this.state.orderBy !== 'asc' ? 'asc' : 'desc'; 39923 39924 this.setState({ 39925 items: this.doUpdate(this.state.filters, newOrder, newOrderBy), 39926 order: newOrder, 39927 orderBy: newOrderBy 39928 }); 39929 } 39930 }, { 39931 key: 'filterItems', 39932 value: function filterItems(e) { 39933 var newFilters = {}, 39934 inputs = e.target.parentElement.parentElement.getElementsByTagName('input'), 39935 selects = e.target.parentElement.parentElement.getElementsByTagName('select'); 39936 39937 for (var index = 0; index < inputs.length; index += 1) { 39938 var name = inputs[index].getAttribute('name'), 39939 value = inputs[index].value; 39940 if (name === 'Code postal') { 39941 value = value.replace(/[^\d]+/, ''); 39942 } 39943 newFilters[name] = value; 39944 } 39945 39946 for (var index = 0; index < selects.length; index += 1) { 39947 newFilters[selects[index].getAttribute('name')] = selects[index].options[selects[index].selectedIndex].value; 39948 } 39949 39950 this.setState({ 39951 items: this.doUpdate(newFilters, this.state.order, this.state.orderBy), 39952 filters: newFilters, 39953 page: 0 39954 }); 39955 } 39956 }, { 39957 key: 'componentDidMount', 39958 value: function componentDidMount() { 39959 if (this.state.items.length === 0) { 39960 this.getItems(); 39961 } 39962 } 39963 }, { 39964 key: 'render', 39965 value: function render() { 39966 var _this2 = this; 39967 39968 if (this.state.originalItems.length > 0) { 39969 var pages = [], 39970 cols = Object.getOwnPropertyNames(this.state.originalItems.find(function (element) { 39971 return element; 39972 })).filter(function (col) { 39973 return col != 'id'; 39974 }); 39975 for (var index = 0; index < this.state.items.length / this.state.itemsPerPage; index += 1) { 39976 pages[index] = index; 39977 } 39978 return _react2.default.createElement( 39979 'div', 39980 null, 39981 _react2.default.createElement( 39982 'table', 39983 null, 39984 _react2.default.createElement( 39985 'thead', 39986 null, 39987 _react2.default.createElement( 39988 'tr', 39989 null, 39990 cols.map(function (col) { 39991 return _react2.default.createElement( 39992 'th', 39993 { key: col, onClick: _this2.sortItems, 'data-col': col, className: _this2.state.order === col ? _this2.state.orderBy === 'asc' ? 'order asc' : 'order desc' : 'order' }, 39994 col 39995 ); 39996 }) 39997 ), 39998 _react2.default.createElement( 39999 'tr', 40000 null, 40001 cols.map(function (col) { 40002 switch (col) { 40003 /* Remplace l'input par un select 40004 case 'Fonction' : 40005 return ( 40006 <th key={col} className="attendee__select"> 40007 <select onChange={this.filterItems} name={col} value={col in this.state.filters ? this.state.filters[col] : '' }> 40008 {this.getUniqueValues(this.state.originalItems, col).map((value) => { 40009 return ( 40010 <option key={value} value={value}> 40011 {value} 40012 </option> 40013 ) 40014 })} 40015 </select> 40016 </th> 40017 ); 40018 break; 40019 */ 40020 case 'Code postal': 40021 return _react2.default.createElement( 40022 'th', 40023 { key: col, className: 'attendee__search' }, 40024 _react2.default.createElement('input', { onChange: _this2.filterItems, name: col, value: col in _this2.state.filters ? _this2.state.filters[col] : '', maxLength: '2', pattern: '[0-9]+' }) 40025 ); 40026 break; 40027 default: 40028 return _react2.default.createElement( 40029 'th', 40030 { key: col, className: 'attendee__search' }, 40031 _react2.default.createElement('input', { onChange: _this2.filterItems, name: col, value: col in _this2.state.filters ? _this2.state.filters[col] : '' }) 40032 ); 40033 } 40034 }) 40035 ) 40036 ), 40037 _react2.default.createElement( 40038 'tbody', 40039 null, 40040 this.state.items.map(function (item, index) { 40041 if (index >= _this2.state.itemsPerPage * _this2.state.page && index < _this2.state.itemsPerPage * (_this2.state.page + 1)) return _react2.default.createElement( 40042 'tr', 40043 { key: item.id }, 40044 cols.map(function (col) { 40045 return _react2.default.createElement( 40046 'td', 40047 { key: col }, 40048 item[col] 40049 ); 40050 }) 40051 ); 40052 }) 40053 ) 40054 ), 40055 this.state.items.length > this.state.itemsPerPage ? _react2.default.createElement( 40056 'ul', 40057 null, 40058 pages.map(function (index) { 40059 return _react2.default.createElement( 40060 'li', 40061 { key: index, onClick: _this2.paginateItems, 'data-page': index, className: _this2.state.page === index ? 'current' : '' }, 40062 index + 1 40063 ); 40064 }) 40065 ) : '' 40066 ); 40067 } else { 40068 return null; 40069 } 40070 } 40071 }]); 40072 40073 return Attendees; 40074}(_react.Component); 40075 40076exports.default = Attendees; 40077 40078/***/ }) 40079/******/ ]);; 40080(function($,Drupal,drupalSettings){'use strict';Drupal.google_analytics={};$(document).ready(function(){$(document.body).on('mousedown keyup touchstart',function(event){$(event.target).closest('a,area').each(function(){if(typeof this.href!=="string")return;if(Drupal.google_analytics.isInternal(this.href))if($(this).is('.colorbox')&&(drupalSettings.google_analytics.trackColorbox)){}else if(drupalSettings.google_analytics.trackDownload&&Drupal.google_analytics.isDownload(this.href))gtag('event',Drupal.google_analytics.getDownloadExtension(this.href).toUpperCase(),{event_category:'Downloads',event_label:Drupal.google_analytics.getPageUrl(this.href),transport_type:'beacon'});else{if(Drupal.google_analytics.isInternalSpecial(this.href))gtag('config',drupalSettings.google_analytics.account,{page_path:Drupal.google_analytics.getPageUrl(this.href),transport_type:'beacon'});}else if(drupalSettings.google_analytics.trackMailto&&$(this).is("a[href^='mailto:'],area[href^='mailto:']"))gtag('event','Click',{event_category:'Mails',event_label:this.href.substring(7),transport_type:'beacon'});else if(drupalSettings.google_analytics.trackTel&&$(this).is("a[href^='tel:'],area[href^='tel:']"))gtag('event','Click',{event_category:'Telephone calls',event_label:this.href.substring(4),transport_type:'beacon'});else{if(drupalSettings.google_analytics.trackOutbound&&this.href.match(/^\w+:\/\//i))if(drupalSettings.google_analytics.trackDomainMode!==2||(drupalSettings.google_analytics.trackDomainMode===2&&!Drupal.google_analytics.isCrossDomain(this.hostname,drupalSettings.google_analytics.trackCrossDomains)))gtag('event','Click',{event_category:'Outbound links',event_label:this.href,transport_type:'beacon'});}});});if(drupalSettings.google_analytics.trackUrlFragments)window.onhashchange=function(){gtag('config',drupalSettings.google_analytics.account,{page_path:location.pathname+location.search+location.hash});};if(drupalSettings.google_analytics.trackColorbox)$(document).on('cbox_complete',function(){var href=$.colorbox.element
40080().attr('href');if(href)gtag('config',drupalSettings.google_analytics.account,{page_path:Drupal.google_analytics.getPageUrl(href)});});});Drupal.google_analytics.isCrossDomain=function(hostname,crossDomains){return $.inArray(hostname,crossDomains)>-1?true:false;};Drupal.google_analytics.isDownload=function(url){var isDownload=new RegExp('\\.('+drupalSettings.google_analytics.trackDownloadExtensions+')([\?#].*)?$','i');return isDownload.test(url);};Drupal.google_analytics.isInternal=function(url){var isInternal=new RegExp('^(https?):\/\/'+window.location.host,'i');return isInternal.test(url);};Drupal.google_analytics.isInternalSpecial=function(url){var isInternalSpecial=new RegExp('(\/go\/.*)$','i');return isInternalSpecial.test(url);};Drupal.google_analytics.getPageUrl=function(url){var extractInternalUrl=new RegExp('^(https?):\/\/'+window.location.host,'i');return url.replace(extractInternalUrl,'');};Drupal.google_analytics.getDownloadExtension=function(url){var extractDownloadextension=new RegExp('\\.('+drupalSettings.google_analytics.trackDownloadExtensions+')([\?#].*)?$','i');var extension=extractDownloadextension.exec(url);return (extension===null)?'':extension[1];};})(jQuery,Drupal,drupalSettings);; 40081Drupal.debounce=function(func,wait,immediate){let timeout;let result;return function(...args){const context=this;const later=function(){timeout=null;if(!immediate)result=func.apply(context,args);};const callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result;};};; 40082/* @license GPL-2.0-or-later https://raw.githubusercontent.com/jquery-form/form/master/LICENSE */ 40083(function(factory){if(typeof define==='function'&&define.amd)define(['jquery'],factory);else if(typeof module==='object'&&module.exports)module.exports=function(root,jQuery){if(typeof jQuery==='undefined')if(typeof window!=='undefined')jQuery=require('jquery');else jQuery=require('jquery')(root);factory(jQuery);return jQuery;};else factory(jQuery);}(function($){'use strict';var rCRLF=/\r?\n/g;var feature={};feature.fileapi=$('<input type="file">').get(0).files!==undefined;feature.formdata=(typeof window.FormData!=='undefined');var hasProp=!!$.fn.prop;$.fn.attr2=function(){if(!hasProp)return this.attr.apply(this,arguments);var val=this.prop.apply(this,arguments);if((val&&val.jquery)||typeof val==='string')return val;return this.attr.apply(this,arguments);};$.fn.ajaxSubmit=function(options,data,dataType,onSuccess){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this;}var method,action,url,isMsie,iframeSrc,$form=this;if(typeof options==='function')options={success:options};else if(typeof options==='string'||(options===false&&arguments.length>0)){options={'url':options,'data':data,'dataType':dataType};if(typeof onSuccess==='function')options.success=onSuccess;}else{if(typeof options==='undefined')options={};}method=options.method||options.type||this.attr2('method');action=options.url||this.attr2('action');url=(typeof action==='string')?action.trim():'';url=url||window.location.href||'';if(url)url=(url.match(/^([^#]+)/)||[])[1];isMsie=/(MSIE|Trident)/.test(navigator.userAgent||'');iframeSrc=(isMsie&&/^https/i.test(window.location.href||''))?'javascript:false':'about:blank';options=$.extend(true,{url,success:$.ajaxSettings.success,type:method||$.ajaxSettings.type,iframeSrc},options);var veto={};this.trigger('form-pre-serialize',[this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this;}if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this;}var traditional=options.traditional;if(typeof traditional==='undefined')traditional=$.ajaxSettings.traditional;var elements=[];var qx,a=this.formToArray(options.semantic,elements,options.filtering);if(options.data){var optionsData=typeof (options.data)==="function"?options.data(a):options.data;options.extraData=optionsData;qx=$.param(optionsData,traditional);}if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this;}this.trigger('form-submit-validate',[a,this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this;}var q=$.param(a,traditional);if(qx)q=(q?(q+'&'+qx):qx);if(options.type.toUpperCase()==='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null;}else options.data=q;var callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm();});if(options.clearForm)callbacks.push(function(){$form.clearForm(options.includeHidden);});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data,textStatus,jqXHR){var successArguments=arguments,fn=options.replaceTarget?'replaceWith':'html';$(options.target)[fn](data).each(function(){oldSuccess.apply(this,successArguments);});});}else{if(options.success)if(Array.isArray(options.success))callbacks=callbacks.concat(options.success);else callbacks.push(options.success);}options.success=function(data,status,xhr){var context=options.context||this;for(var i=0,max=callbacks.length;i<max;i++)callbacks[i].apply(context,[data,status,xhr||$form,$form]);};if(options.error){var oldError=options.error;options.error=function(xhr,status,error){var context=options.context||this;oldError.apply(context,[xhr,status,error,$form]);};}if(options.complete){var oldComplete=options.complete;options.complete=function(xhr,status){var context=options.context||this;oldComplete.apply(context,[xhr,status,$form]);};}var fileInputs=$('input[type=file]:enabled',this).filter(function(){return $(this).val()!=='';});var hasFileInputs=fileInputs.length>0;var mp='multipart/form-data';var multipart=($form.attr('enctype')===mp||$form.attr('encoding')===mp);var fileAPI=feature.fileapi&&feature.formdata;log('fileAPI :'+fileAPI);var shouldUseFrame=(hasFileInputs||multipart)&&!fileAPI;var jqxhr;if(options.iframe!==false&&(options.iframe||shouldUseFrame))if(options.closeKeepAlive)$.get(options.closeKeepAlive,function(){jqxhr=fileUploadIframe(a);});else jqxhr=fileUploadIframe(a);else if((hasFileInputs||multipart)&&fileAPI)jqxhr=fileUploadXhr(a);else jqxhr=$.ajax(options);$form.removeData('jqxhr').data('jqxhr',jqxhr);for(var k=0;k<elements.length;k++)elements[k]=null;this.trigger('form-submit-notify',[this,options]);return this;function deepSerialize(extraData){var serialized=$.param(extraData,options.traditional).split('&');var len=serialized.length;var result=[];var i,part;for(i=0;i<len;i++){serialized[i]=serialized[i].replace(/\+/g,' ');part=serialized[i].split('=');result.push([decodeURIComponent(part[0]),decodeURIComponent(part[1])]);}return result;}function fileUploadXhr(a){var formdata=new FormData();for(var i=0;i<a.length;i++)formdata.append(a[i].name,a[i].value);if(options.extraData){var serializedData=deepSerialize(options.extraData);for(i=0;i<serializedData.length;i++)if(serializedData[i])formdata.append(serializedData[i][0],serializedData[i][1]);}options.data=null;var s=$.extend(true,{},$.ajaxSettings,options,{contentType:false,processData:false,cache:false,type:method||'POST'});if(options.uploadProgress)s.xhr=function(){var xhr=$.ajaxSettings.xhr();if(xhr.upload)xhr.upload.addEventListener('progress',function(event){var percent=0;var position=event.loaded||event.position;var total=event.total;if(event.lengthComputable)percent=Math.ceil(position/total*100);options.uploadProgress(event,position,total,percent);},false);return xhr;};s.data=null;var beforeSend=s.beforeSend;s.beforeSend=function(xhr,o){if(options.formData)o.data=options.formData;else o.data=formdata;
40083if(beforeSend)beforeSend.call(this,xhr,o);};return $.ajax(s);}function fileUploadIframe(a){var form=$form[0],el,i,s,g,id,$io,io,xhr,sub,n,timedOut,timeoutHandle;var deferred=$.Deferred();deferred.abort=function(status){xhr.abort(status);};if(a)for(i=0;i<elements.length;i++){el=$(elements[i]);if(hasProp)el.prop('disabled',false);else el.removeAttr('disabled');}s=$.extend(true,{},$.ajaxSettings,options);s.context=s.context||s;id='jqFormIO'+new Date().getTime();var ownerDocument=form.ownerDocument;var $body=$form.closest('body');if(s.iframeTarget){$io=$(s.iframeTarget,ownerDocument);n=$io.attr2('name');if(!n)$io.attr2('name',id);else id=n;}else{$io=$('<iframe name="'+id+'" src="'+s.iframeSrc+'" />',ownerDocument);$io.css({position:'absolute',top:'-1000px',left:'-1000px'});}io=$io[0];xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(status){var e=(status==='timeout'?'timeout':'aborted');log('aborting upload... '+e);this.aborted=1;try{if(io.contentWindow.document.execCommand)io.contentWindow.document.execCommand('Stop');}catch(ignore){}$io.attr('src',s.iframeSrc);xhr.error=e;if(s.error)s.error.call(s.context,xhr,e,status);if(g)$.event.trigger('ajaxError',[xhr,s,e]);if(s.complete)s.complete.call(s.context,xhr,e);}};g=s.global;if(g&&$.active++===0)$.event.trigger('ajaxStart');if(g)$.event.trigger('ajaxSend',[xhr,s]);if(s.beforeSend&&s.beforeSend.call(s.context,xhr,s)===false){if(s.global)$.active--;deferred.reject();return deferred;}if(xhr.aborted){deferred.reject();return deferred;}sub=form.clk;if(sub){n=sub.name;if(n&&!sub.disabled){s.extraData=s.extraData||{};s.extraData[n]=sub.value;if(sub.type==='image'){s.extraData[n+'.x']=form.clk_x;s.extraData[n+'.y']=form.clk_y;}}}var CLIENT_TIMEOUT_ABORT=1;var SERVER_ABORT=2;function getDoc(frame){var doc=null;try{if(frame.contentWindow)doc=frame.contentWindow.document;}catch(err){log('cannot get iframe.contentWindow document: '+err);}if(doc)return doc;try{doc=frame.contentDocument?frame.contentDocument:frame.document;}catch(err){log('cannot get iframe.contentDocument: '+err);doc=frame.document;}return doc;}var csrf_token=$('meta[name=csrf-token]').attr('content');var csrf_param=$('meta[name=csrf-param]').attr('content');if(csrf_param&&csrf_token){s.extraData=s.extraData||{};s.extraData[csrf_param]=csrf_token;}function doSubmit(){var t=$form.attr2('target'),a=$form.attr2('action'),mp='multipart/form-data',et=$form.attr('enctype')||$form.attr('encoding')||mp;form.setAttribute('target',id);if(!method||/post/i.test(method))form.setAttribute('method','POST');if(a!==s.url)form.setAttribute('action',s.url);if(!s.skipEncodingOverride&&(!method||/post/i.test(method)))$form.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'});if(s.timeout)timeoutHandle=setTimeout(function(){timedOut=true;cb(CLIENT_TIMEOUT_ABORT);},s.timeout);function checkState(){try{var state=getDoc(io).readyState;log('state = '+state);if(state&&state.toLowerCase()==='uninitialized')setTimeout(checkState,50);}catch(e){log('Server abort: ',e,' (',e.name,')');cb(SERVER_ABORT);if(timeoutHandle)clearTimeout(timeoutHandle);timeoutHandle=undefined;}}var extraInputs=[];try{if(s.extraData)for(var n in s.extraData)if(s.extraData.hasOwnProperty(n))if($.isPlainObject(s.extraData[n])&&s.extraData[n].hasOwnProperty('name')&&s.extraData[n].hasOwnProperty('value'))extraInputs.push($('<input type="hidden" name="'+s.extraData[n].name+'">',ownerDocument).val(s.extraData[n].value).appendTo(form)[0]);else extraInputs.push($('<input type="hidden" name="'+n+'">',ownerDocument).val(s.extraData[n]).appendTo(form)[0]);if(!s.iframeTarget)$io.appendTo($body);if(io.attachEvent)io.attachEvent('onload',cb);else io.addEventListener('load',cb,false);setTimeout(checkState,15);try{form.submit();}catch(err){var submitFn=document.createElement('form').submit;submitFn.apply(form);}}finally{form.setAttribute('action',a);form.setAttribute('enctype',et);if(t)form.setAttribute('target',t);else $form.removeAttr('target');$(extraInputs).remove();}}if(s.forceSync)doSubmit();else setTimeout(doSubmit,10);var data,doc,domCheckCount=50,callbackProcessed;function cb(e){if(xhr.aborted||callbackProcessed)return;doc=getDoc(io);if(!doc){log('cannot access response document');e=SERVER_ABORT;}if(e===CLIENT_TIMEOUT_ABORT&&xhr){xhr.abort('timeout');deferred.reject(xhr,'timeout');return;}if(e===SERVER_ABORT&&xhr){xhr.abort('server abort');deferred.reject(xhr,'error','server abort');return;}if(!doc||doc.location.href===s.iframeSrc)if(!timedOut)return;if(io.detachEvent)io.detachEvent('onload',cb);else io.removeEventListener('load',cb,false);var status='success',errMsg;
40083try{if(timedOut)throw 'timeout';var isXml=s.dataType==='xml'||doc.XMLDocument||$.isXMLDoc(doc);log('isXml='+isXml);if(!isXml&&window.opera&&(doc.body===null||!doc.body.innerHTML))if(--domCheckCount){log('requeing onLoad callback, DOM not available');setTimeout(cb,250);return;}var docRoot=doc.body?doc.body:doc.documentElement;xhr.responseText=docRoot?docRoot.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(isXml)s.dataType='xml';xhr.getResponseHeader=function(header){var headers={'content-type':s.dataType};return headers[header.toLowerCase()];};if(docRoot){xhr.status=Number(docRoot.getAttribute('status'))||xhr.status;xhr.statusText=docRoot.getAttribute('statusText')||xhr.statusText;}var dt=(s.dataType||'').toLowerCase();var scr=/(json|script|text)/.test(dt);if(scr||s.textarea){var ta=doc.getElementsByTagName('textarea')[0];if(ta){xhr.responseText=ta.value;xhr.status=Number(ta.getAttribute('status'))||xhr.status;xhr.statusText=ta.getAttribute('statusText')||xhr.statusText;}else{if(scr){var pre=doc.getElementsByTagName('pre')[0];var b=doc.getElementsByTagName('body')[0];if(pre)xhr.responseText=pre.textContent?pre.textContent:pre.innerText;else{if(b)xhr.responseText=b.textContent?b.textContent:b.innerText;}}}}else{if(dt==='xml'&&!xhr.responseXML&&xhr.responseText)xhr.responseXML=toXml(xhr.responseText);}try{data=httpData(xhr,dt,s);}catch(err){status='parsererror';xhr.error=errMsg=(err||status);}}catch(err){log('error caught: ',err);status='error';xhr.error=errMsg=(err||status);}if(xhr.aborted){log('upload aborted');status=null;}if(xhr.status)status=((xhr.status>=200&&xhr.status<300)||xhr.status===304)?'success':'error';if(status==='success'){if(s.success)s.success.call(s.context,data,'success',xhr);deferred.resolve(xhr.responseText,'success',xhr);if(g)$.event.trigger('ajaxSuccess',[xhr,s]);}else{if(status){if(typeof errMsg==='undefined')errMsg=xhr.statusText;if(s.error)s.error.call(s.context,xhr,status,errMsg);deferred.reject(xhr,'error',errMsg);if(g)$.event.trigger('ajaxError',[xhr,s,errMsg]);}}if(g)$.event.trigger('ajaxComplete',[xhr,s]);if(g&&!--$.active)$.event.trigger('ajaxStop');if(s.complete)s.complete.call(s.context,xhr,status);callbackProcessed=true;if(s.timeout)clearTimeout(timeoutHandle);setTimeout(function(){if(!s.iframeTarget)$io.remove();else $io.attr('src',s.iframeSrc);xhr.responseXML=null;},100);}var toXml=$.parseXML||function(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s);}else doc=(new DOMParser()).parseFromString(s,'text/xml');return (doc&&doc.documentElement&&doc.documentElement.nodeName!=='parsererror')?doc:null;};var httpData=function(xhr,type,s){var ct=xhr.getResponseHeader('content-type')||'',xml=((type==='xml'||!type)&&ct.indexOf('xml')>=0),data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.nodeName==='parsererror')if($.error)$.error('parsererror');if(s&&s.dataFilter)data=s.dataFilter(data,type);if(typeof data==='string')if((type==='json'||!type)&&ct.indexOf('json')>=0)data=JSON.parse(data);else{if((type==='script'||!type)&&ct.indexOf('javascript')>=0)$.globalEval(data);}return data;};return deferred;}};$.fn.ajaxForm=function(options,data,dataType,onSuccess){if(typeof options==='string'||(options===false&&arguments.length>0)){options={'url':options,'data':data,'dataType':dataType};if(typeof onSuccess==='function')options.success=onSuccess;}options=options||{};options.delegation=options.delegation&&typeof $.fn.on==='function';if(!options.delegation&&this.length===0){var o={s:this.selector,c:this.context};if(!$.isReady&&o.s){log('DOM not ready, queuing ajaxForm');$(function(){$(o.s,o.c).ajaxForm(options);});return this;}log('terminating; zero elements found by selector'+($.isReady?'':' (DOM not ready)'));return this;}if(options.delegation){$(document).off('submit.form-plugin',this.selector,doAjaxSubmit).off('click.form-plugin',this.selector,captureSubmittingElement).on('submit.form-plugin',this.selector,options,doAjaxSubmit).on('click.form-plugin',this.selector,options,captureSubmittingElement);return this;}if(options.beforeFormUnbind)options.beforeFormUnbind(this,options);return this.ajaxFormUnbind().on('submit.form-plugin',options,doAjaxSubmit).on('click.form-plugin',options,captureSubmittingElement);};function doAjaxSubmit(e){var options=e.data;if(!e.isDefaultPrevented()){e.preventDefault();$(e.target).closest('form').ajaxSubmit(options);}}function captureSubmittingElement(e){var target=e.target;var $el=$(target);if(!$el.is('[type=submit],[type=image]')){var t=$el.closest('[type=submit]');if(t.length===0)return;target=t[0];}var form=target.form;form.clk=target;if(target.type==='image')if(typeof e.offsetX!=='undefined'){form.clk_x=e.offsetX;form.clk_y=e.offsetY;}else if(typeof $.fn.offset==='function'){var offset=$el.offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top;}else{form.clk_x=e.pageX-target.offsetLeft;form.clk_y=e.pageY-target.offsetTop;}setTimeout(function(){form.clk=form.clk_x=form.clk_y=null;},100);}$.fn.ajaxFormUnbind=function(){return this.off('submit.form-plugin click.form-plugin');};$.fn.formToArray=function(semantic,elements,filtering){var a=[];if(this.length===0)return a;var form=this[0];var formId=this.attr('id');var els=(semantic||typeof form.elements==='undefined')?form.getElementsByTagName('*'):form.elements;var els2;if(els)els=$.makeArray(els);if(formId&&(semantic||/(Edge|Trident)\//.test(navigator.userAgent))){els2=$(':input[form="'+formId+'"]').get();if(els2.length)els=(els||[]).concat(els2);}if(!els||!els.length)return a;
40083if(typeof (filtering)==="function")els=$.map(els,filtering);var i,j,n,v,el,max,jmax;for(i=0,max=els.length;i<max;i++){el=els[i];n=el.name;if(!n||el.disabled)continue;if(semantic&&form.clk&&el.type==='image'){if(form.clk===el){a.push({name:n,value:$(el).val(),type:el.type});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}continue;}v=$.fieldValue(el,true);if(v&&v.constructor===Array){if(elements)elements.push(el);for(j=0,jmax=v.length;j<jmax;j++)a.push({name:n,value:v[j]});}else if(feature.fileapi&&el.type==='file'){if(elements)elements.push(el);var files=el.files;if(files.length)for(j=0;j<files.length;j++)a.push({name:n,value:files[j],type:el.type});else a.push({name:n,value:'',type:el.type});}else{if(v!==null&&typeof v!=='undefined'){if(elements)elements.push(el);a.push({name:n,value:v,type:el.type,required:el.required});}}}if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0];n=input.name;if(n&&!input.disabled&&input.type==='image'){a.push({name:n,value:$input.val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}}return a;};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic));};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor===Array)for(var i=0,max=v.length;i<max;i++)a.push({name:n,value:v[i]});else{if(v!==null&&typeof v!=='undefined')a.push({name:this.name,value:v});}});return $.param(a);};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v==='undefined'||(v.constructor===Array&&!v.length))continue;if(Array.isArray(v))val=val.concat(v);else val.push(v);}return val;};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful==='undefined')successful=true;if(successful&&(!n||el.disabled||t==='reset'||t==='button'||(t==='checkbox'||t==='radio')&&!el.checked||(t==='submit'||t==='image')&&el.form&&el.form.clk!==el||tag==='select'&&el.selectedIndex===-1))return null;if(tag==='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options;var one=(t==='select-one');var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected&&!op.disabled){var v=op.value;if(!v)v=(op.attributes&&op.attributes.value&&!(op.attributes.value.specified))?op.text:op.value;if(one)return v;a.push(v);}}return a;}return $(el).val().replace(rCRLF,'\r\n');};$.fn.clearForm=function(includeHidden){return this.each(function(){$('input,select,textarea',this).clearFields(includeHidden);});};$.fn.clearFields=$.fn.clearInputs=function(includeHidden){var re=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(re.test(t)||tag==='textarea')this.value='';else if(t==='checkbox'||t==='radio')this.checked=false;else if(tag==='select')this.selectedIndex=-1;else if(t==='file')if(/MSIE/.test(navigator.userAgent))$(this).replaceWith($(this).clone(true));else $(this).val('');else{if(includeHidden)if((includeHidden===true&&/hidden/.test(t))||(typeof includeHidden==='string'&&$(this).is(includeHidden)))this.value='';}});};$.fn.resetForm=function(){return this.each(function(){var el=$(this);var tag=this.tagName.toLowerCase();switch(tag){case 'input':this.checked=this.defaultChecked;case 'textarea':this.value=this.defaultValue;return true;case 'option':case 'optgroup':var select=el.parents('select');if(select.length&&select[0].multiple)if(tag==='option')this.selected=this.defaultSelected;else el.find('option').resetForm();else select.resetForm();return true;case 'select':el.find('option').each(function(i){this.selected=this.defaultSelected;if(this.defaultSelected&&!el[0].multiple){el[0].selectedIndex=i;return false;}});return true;case 'label':var forEl=$(el.attr('for'));var list=el.find('input,select,textarea');if(forEl[0])list.unshift(forEl[0]);list.resetForm();return true;case 'form':if(typeof this.reset==='function'||(typeof this.reset==='object'&&!this.reset.nodeType))this.reset();return true;default:el.find('form,input,label,select,textarea').resetForm();return true;}}
40083);};$.fn.enable=function(b){if(typeof b==='undefined')b=true;return this.each(function(){this.disabled=!b;});};$.fn.selected=function(select){if(typeof select==='undefined')select=true;return this.each(function(){var t=this.type;if(t==='checkbox'||t==='radio')this.checked=select;else{if(this.tagName.toLowerCase()==='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type==='select-one')$sel.find('option').selected(false);this.selected=select;}}});};$.fn.ajaxSubmit.debug=false;function log(){if(!$.fn.ajaxSubmit.debug)return;var msg='[jquery.form] '+Array.prototype.join.call(arguments,'');if(window.console&&window.console.log)window.console.log(msg);else{if(window.opera&&window.opera.postError)window.opera.postError(msg);}}}));; 40084/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 40085(function($,Drupal){Drupal.theme.progressBar=function(id){const escapedId=Drupal.checkPlain(id);return (`<div id="${escapedId}" class="progress" aria-live="polite">`+'<div class="progress__label"> </div>'+'<div class="progress__track"><div class="progress__bar"></div></div>'+'<div class="progress__percentage"></div>'+'<div class="progress__description"> </div>'+'</div>');};Drupal.ProgressBar=function(id,updateCallback,method,errorCallback){this.id=id;this.method=method||'GET';this.updateCallback=updateCallback;this.errorCallback=errorCallback;this.element=$(Drupal.theme('progressBar',id));};$.extend(Drupal.ProgressBar.prototype,{setProgress(percentage,message,label){if(percentage>=0&&percentage<=100){$(this.element).find('div.progress__bar').each(function(){this.style.width=`${percentage}%`;});$(this.element).find('div.progress__percentage').html(`${percentage}%`);}$('div.progress__description',this.element).html(message);$('div.progress__label',this.element).html(label);if(this.updateCallback)this.updateCallback(percentage,message,this);},startMonitoring(uri,delay){this.delay=delay;this.uri=uri;this.sendPing();},stopMonitoring(){clearTimeout(this.timer);this.uri=null;},sendPing(){if(this.timer)clearTimeout(this.timer);if(this.uri){const pb=this;let uri=this.uri;if(!uri.includes('?'))uri+='?';else uri+='&';uri+='_format=json';$.ajax({type:this.method,url:uri,data:'',dataType:'json',success(progress){if(progress.status===0){pb.displayError(progress.data);return;}pb.setProgress(progress.percentage,progress.message,progress.label);pb.timer=setTimeout(()=>{pb.sendPing();},pb.delay);},error(xmlhttp){const e=new Drupal.AjaxError(xmlhttp,pb.uri);pb.displayError(`<pre>${e.message}</pre>`);}});}},displayError(string){const error=$('<div class="messages messages--error"></div>').html(string);$(this.element).before(error).hide();if(this.errorCallback)this.errorCallback(this);}});})(jQuery,Drupal);; 40086/* @license MIT https://raw.githubusercontent.com/muicss/loadjs/4.3.0/LICENSE.txt */ 40087loadjs=function(){var h=function(){},o={},c={},f={};function u(e,n){if(e){var t=f[e];if(c[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function l(e,n){e.call&&(e={success:e}),n.length?(e.error||h)(n):(e.success||h)(e)}function p(t,r,i,s){var o,e,u,n=document,c=i.async,f=(i.numRetries||0)+1,l=i.before||h,a=t.replace(/[\?|#].*$/,""),d=t.replace(/^(css|img|module|nomodule)!/,"");if(s=s||0,/(^css!|\.css$)/.test(a))(u=n.createElement("link")).rel="stylesheet",u.href=d,(o="hideFocus"in u)&&u.relList&&(o=0,u.rel="preload",u.as="style");else if(/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(a))(u=n.createElement("img")).src=d;else if((u=n.createElement("script")).src=d,u.async=void 0===c||c,e="noModule"in u,/^module!/.test(a)){if(!e)return r(t,"l");u.type="module"}else if(/^nomodule!/.test(a)&&e)return r(t,"l");!(u.onload=u.onerror=u.onbeforeload=function(e){var n=e.type[0];if(o)try{u.sheet.cssText.length||(n="e")}catch(e){18!=e.code&&(n="e")}if("e"==n){if((s+=1)<f)return p(t,r,i,s)}else if("preload"==u.rel&&"style"==u.as)return u.rel="stylesheet";r(t,n,e.defaultPrevented)})!==l(t,u)&&n.head.appendChild(u)}function t(e,n,t){var r,i;if(n&&n.trim&&(r=n),i=(r?t:n)||{},r){if(r in o)throw"LoadJS";o[r]=!0}function s(n,t){!function(e,r,n){var t,i,s=(e=e.push?e:[e]).length,o=s,u=[];for(t=function(e,n,t){if("e"==n&&u.push(e),"b"==n){if(!t)return;u.push(e)}--s||r(u)},i=0;i<o;i++)p(e[i],t,n)}(e,function(e){l(i,e),n&&l({success:n,error:t},e),u(r,e)},i)}if(i.returnPromise)return new Promise(s);s()}return t.ready=function(e,n){return function(e,t){e=e.push?e:[e];var n,r,i,s=[],o=e.length,u=o;
40087for(n=function(e,n){n.length&&s.push(e),--u||t(s)};o--;)r=e[o],(i=c[r])?n(r,i):(f[r]=f[r]||[]).push(n)}(e,function(e){l(n,e)}),t},t.done=function(e){u(e,[])},t.reset=function(){o={},c={},f={}},t.isDefined=function(e){return e in o},t}();; 40088/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 40089(function(Drupal,debounce){let liveElement;const announcements=[];Drupal.behaviors.drupalAnnounce={attach(context){if(!liveElement){liveElement=document.createElement('div');liveElement.id='drupal-live-announce';liveElement.className='visually-hidden';liveElement.setAttribute('aria-live','polite');liveElement.setAttribute('aria-busy','false');document.body.appendChild(liveElement);}}};function announce(){const text=[];let priority='polite';let announcement;const il=announcements.length;for(let i=0;i<il;i++){announcement=announcements.pop();text.unshift(announcement.text);if(announcement.priority==='assertive')priority='assertive';}if(text.length){liveElement.innerHTML='';liveElement.setAttribute('aria-busy','true');liveElement.setAttribute('aria-live',priority);liveElement.innerHTML=text.join('\n');liveElement.setAttribute('aria-busy','false');}}Drupal.announce=function(text,priority){announcements.push({text,priority});return debounce(announce,200)();};})(Drupal,Drupal.debounce);; 40090((Drupal)=>{Drupal.Message=class{constructor(messageWrapper=null){if(!messageWrapper)this.messageWrapper=Drupal.Message.defaultWrapper();else this.messageWrapper=messageWrapper;}static defaultWrapper(){let wrapper=document.querySelector('[data-drupal-messages]')||document.querySelector('[data-drupal-messages-fallback]');if(!wrapper){wrapper=document.createElement('div');document.body.appendChild(wrapper);}if(wrapper.hasAttribute('data-drupal-messages-fallback')){wrapper.removeAttribute('data-drupal-messages-fallback');wrapper.classList.remove('hidden');}wrapper.setAttribute('data-drupal-messages','');return wrapper.innerHTML===''?Drupal.Message.messageInternalWrapper(wrapper):wrapper.firstElementChild;}static getMessageTypeLabels(){return {status:Drupal.t('Status message'),error:Drupal.t('Error message'),warning:Drupal.t('Warning message')};}add(message,options={}){if(!options.hasOwnProperty('type'))options.type='status';if(typeof message!=='string')throw new Error('Message must be a string.');Drupal.Message.announce(message,options);options.id=options.id?String(options.id):`${options.type}-${Math.random().toFixed(15).replace('0.','')}`;if(!Drupal.Message.getMessageTypeLabels().hasOwnProperty(options.type)){const {type}=options;throw new Error(`The message type, ${type}, is not present in Drupal.Message.getMessageTypeLabels().`);}this.messageWrapper.appendChild(Drupal.theme('message',{text:message},options));return options.id;}select(id){return this.messageWrapper.querySelector(`[data-drupal-message-id^="${id}"]`);}remove(id){return this.messageWrapper.removeChild(this.select(id));}clear(){this.messageWrapper.querySelectorAll('[data-drupal-message-id]').forEach((message)=>{this.messageWrapper.removeChild(message);});}static announce(message,options){if(!options.priority&&(options.type==='warning'||options.type==='error'))options.priority='assertive';if(options.announce!=='')Drupal.announce(options.announce||message,options.priority);}static messageInternalWrapper(messageWrapper){const innerWrapper=document.createElement('div');innerWrapper.setAttribute('class','messages__wrapper');messageWrapper.insertAdjacentElement('afterbegin',innerWrapper);return innerWrapper;}};Drupal.theme.message=({text},{type,id})=>{const messagesTypes=Drupal.Message.getMessageTypeLabels();const messageWrapper=document.createElement('div');messageWrapper.setAttribute('class',`messages messages--${type}`);messageWrapper.setAttribute('role',type==='error'||type==='warning'?'alert':'status');messageWrapper.setAttribute('data-drupal-message-id',id);messageWrapper.setAttribute('data-drupal-message-type',type);messageWrapper.setAttribute('aria-label',messagesTypes[type]);messageWrapper.innerHTML=`${text}`;return messageWrapper;};})(Drupal);; 40091((Drupal)=>{Drupal.theme.ajaxProgressIndicatorFullscreen=()=>'<div class="ajax-progress ajax-progress--fullscreen">
40091<div class="ajax-progress__throbber ajax-progress__throbber--fullscreen"> </div></div>';Drupal.theme.ajaxProgressThrobber=(message)=>{const messageMarkup=typeof message==='string'?Drupal.theme('ajaxProgressMessage',message):'';const throbber='<div class="ajax-progress__throbber"> </div>';return `<div class="ajax-progress ajax-progress--throbber">${throbber}${messageMarkup}</div>`;};Drupal.theme.ajaxProgressMessage=(message)=>`<div class="ajax-progress__message">${message}</div>`;})(Drupal);; 40092(function($,window,Drupal,drupalSettings,loadjs,{isFocusable,tabbable}){Drupal.behaviors.AJAX={attach(context,settings){function loadAjaxBehavior(base){const elementSettings=settings.ajax[base];if(typeof elementSettings.selector==='undefined')elementSettings.selector=`#${base}`;once('drupal-ajax',$(elementSettings.selector)).forEach((el)=>{elementSettings.element=el;elementSettings.base=base;Drupal.ajax(elementSettings);});}Object.keys(settings.ajax||{}).forEach(loadAjaxBehavior);Drupal.ajax.bindAjaxLinks(document.body);once('ajax','.use-ajax-submit').forEach((el)=>{const elementSettings={url:$(el.form).attr('action'),setClick:true,event:'click',progress:{type:'throbber'},base:el.id,element:el};Drupal.ajax(elementSettings);});},detach(context,settings,trigger){if(trigger==='unload')Drupal.ajax.expired().forEach((instance)=>{Drupal.ajax.instances[instance.instanceIndex]=null;});}};Drupal.AjaxError=function(xmlhttp,uri,customMessage){let statusCode;let statusText;let responseText;if(xmlhttp.status)statusCode=`\n${Drupal.t('An AJAX HTTP error occurred.')}\n${Drupal.t('HTTP Result Code: !status',{'!status':xmlhttp.status})}`;else statusCode=`\n${Drupal.t('An AJAX HTTP request terminated abnormally.')}`;statusCode+=`\n${Drupal.t('Debugging information follows.')}`;const pathText=`\n${Drupal.t('Path: !uri',{'!uri':uri})}`;statusText='';try{statusText=`\n${Drupal.t('StatusText: !statusText',{'!statusText':xmlhttp.statusText.trim()})}`;}catch(e){}responseText='';try{responseText=`\n${Drupal.t('ResponseText: !responseText',{'!responseText':xmlhttp.responseText.trim()})}`;}catch(e){}responseText=responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,'');responseText=responseText.replace(/[\n]+\s+/g,'\n');const readyStateText=xmlhttp.status===0?`\n${Drupal.t('ReadyState: !readyState',{'!readyState':xmlhttp.readyState})}`:'';customMessage=customMessage?`\n${Drupal.t('CustomMessage: !customMessage',{'!customMessage':customMessage})}`:'';this.message=statusCode+pathText+statusText+customMessage+responseText+readyStateText;this.name='AjaxError';if(!Drupal.AjaxError.messages)Drupal.AjaxError.messages=new Drupal.Message();Drupal.AjaxError.messages.add(Drupal.t("Oops, something went wrong. Check your browser's developer console for more details."),{type:'error'});};Drupal.AjaxError.prototype=new Error();Drupal.AjaxError.prototype.constructor=Drupal.AjaxError;Drupal.ajax=function(settings){if(arguments.length!==1)throw new Error('Drupal.ajax() function must be called with one configuration object only');const base=settings.base||false;const element=settings.element||false;delete settings.base;delete settings.element;if(!settings.progress&&!element)settings.progress=false;const ajax=new Drupal.Ajax(base,element,settings);ajax.instanceIndex=Drupal.ajax.instances.length;Drupal.ajax.instances.push(ajax);return ajax;};Drupal.ajax.instances=[];Drupal.ajax.expired=function(){return Drupal.ajax.instances.filter((instance)=>instance&&instance.element!==false&&!document.body.contains(instance.element));};Drupal.ajax.bindAjaxLinks=(element)=>{once('ajax','.use-ajax',element).forEach((ajaxLink)=>{const $linkElement=$(ajaxLink);const elementSettings={progress:{type:'throbber'},dialogType:$linkElement.data('dialog-type'),dialog:$linkElement.data('dialog-options'),dialogRenderer:$linkElement.data('dialog-renderer'),base:$linkElement.attr('id'),element:ajaxLink};const href=$linkElement.attr('href');if(href){elementSettings.url=href;elementSettings.event='click';}const httpMethod=$linkElement.data('ajax-http-method');if(httpMethod)elementSettings.httpMethod=httpMethod;Drupal.ajax(elementSettings);});};Drupal.Ajax=function(base,element,elementSettings){const defaults={httpMethod:'POST',event:element?'mousedown':null,keypress:true,selector:base?`#${base}`:null,effect:'none',speed:'none',method:'replaceWith',progress:{type:'throbber',message:Drupal.t('Processing...')},submit:{js:true}};$.extend(this,defaults,elementSettings);this.commands=new Drupal.AjaxCommands();this.instanceIndex=false;if(this.wrapper)this.wrapper=`#${this.wrapper}`;this.element=element;this.preCommandsFocusedElementSelector=null;this.elementSettings=elementSettings;if(this.element?.form)this.$form=$(this.element.form);if(!this.url){const $element=$(this.element);if(this.element.tagName==='A')this.url=$element.attr('href');else{if(this.element&&element.form)this.url=this.$form.attr('action');}}const originalUrl=this.url;this.url=this.url.replace(/\/nojs(\/|$|\?|#)/,'/ajax$1');if(drupalSettings.ajaxTrustedUrl.hasOwnProperty(originalUrl))drupalSettings.ajaxTrustedUrl[this.url]=true;const ajax=this;ajax.options={url:ajax.url,data:ajax.submit,isInProgress(){return ajax.ajaxing;},beforeSerialize(elementSettings,options){return ajax.beforeSerialize(elementSettings,options);},beforeSubmit(formValues,elementSettings,options){ajax.ajaxing=true;ajax.preCommandsFocusedElementSelector=null;return ajax.beforeSubmit(formValues,elementSettings,options);},beforeSend(xmlhttprequest,options){ajax.ajaxing=true;return ajax.beforeSend(xmlhttprequest,options);},success(response,status,xmlhttprequest){ajax.preCommandsFocusedElementSelector=document.activeElement.getAttribute('data-drupal-selector');if(typeof response==='string')response=JSON.parse(response);if(response!==null&&!drupalSettings.ajaxTrustedUrl.hasOwnProperty(ajax.url))if(xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token')!=='1'){const customMessage=Drupal.t('The response failed verification so will not be processed.');return ajax.error(xmlhttprequest,ajax.url,customMessage);}return (Promise.resolve(ajax.success(response,status)).then(()=>{ajax.ajaxing=false;
40092$(document).trigger('ajaxSuccess',[xmlhttprequest,this]);$(document).trigger('ajaxComplete',[xmlhttprequest,this]);if(--$.active===0)$(document).trigger('ajaxStop');}));},error(xmlhttprequest,status,error){ajax.ajaxing=false;},complete(xmlhttprequest,status){if(status==='error'||status==='parsererror')return ajax.error(xmlhttprequest,ajax.url);},dataType:'json',jsonp:false,method:ajax.httpMethod};if(elementSettings.dialog)ajax.options.data.dialogOptions=elementSettings.dialog;if(!ajax.options.url.includes('?'))ajax.options.url+='?';else ajax.options.url+='&';let wrapper=`drupal_${elementSettings.dialogType||'ajax'}`;if(elementSettings.dialogRenderer)wrapper+=`.${elementSettings.dialogRenderer}`;ajax.options.url+=`${Drupal.ajax.WRAPPER_FORMAT}=${wrapper}`;$(ajax.element).on(elementSettings.event,function(event){if(!drupalSettings.ajaxTrustedUrl.hasOwnProperty(ajax.url)&&!Drupal.url.isLocal(ajax.url))throw new Error(Drupal.t('The callback URL is not local and not trusted: !url',{'!url':ajax.url}));return ajax.eventResponse(this,event);});if(elementSettings.keypress)$(ajax.element).on('keypress',function(event){return ajax.keypressResponse(this,event);});if(elementSettings.prevent)$(ajax.element).on(elementSettings.prevent,false);};Drupal.ajax.WRAPPER_FORMAT='_wrapper_format';Drupal.Ajax.AJAX_REQUEST_PARAMETER='_drupal_ajax';Drupal.Ajax.prototype.execute=function(){if(this.ajaxing)return;try{this.beforeSerialize(this.element,this.options);return $.ajax(this.options);}catch(e){this.ajaxing=false;window.alert(`An error occurred while attempting to process ${this.options.url}: ${e.message}`);return $.Deferred().reject();}};Drupal.Ajax.prototype.keypressResponse=function(element,event){const ajax=this;if(event.which===13||(event.which===32&&element.type!=='text'&&element.type!=='textarea'&&element.type!=='tel'&&element.type!=='number')){event.preventDefault();event.stopPropagation();$(element).trigger(ajax.elementSettings.event);}};Drupal.Ajax.prototype.eventResponse=function(element,event){event.preventDefault();event.stopPropagation();const ajax=this;if(ajax.ajaxing)return;try{if(ajax.$form){if(ajax.setClick)element.form.clk=element;ajax.$form.ajaxSubmit(ajax.options);}else{ajax.beforeSerialize(ajax.element,ajax.options);$.ajax(ajax.options);}}catch(e){ajax.ajaxing=false;window.alert(`An error occurred while attempting to process ${ajax.options.url}: ${e.message}`);}};Drupal.Ajax.prototype.beforeSerialize=function(element,options){if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.detachBehaviors(this.$form.get(0),settings,'serialize');}options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER]=1;const pageState=drupalSettings.ajaxPageState;options.data['ajax_page_state[theme]']=pageState.theme;options.data['ajax_page_state[theme_token]']=pageState.theme_token;options.data['ajax_page_state[libraries]']=pageState.libraries;};Drupal.Ajax.prototype.beforeSubmit=function(formValues,element,options){};Drupal.Ajax.prototype.beforeSend=function(xmlhttprequest,options){if(this.$form){options.extraData=options.extraData||{};options.extraData.ajax_iframe_upload='1';const v=$.fieldValue(this.element);if(v!==null)options.extraData[this.element.name]=v;}$(this.element).prop('disabled',true);if(!this.progress||!this.progress.type)return;const progressIndicatorMethod=`setProgressIndicator${this.progress.type.slice(0,1).toUpperCase()}${this.progress.type.slice(1).toLowerCase()}`;if(progressIndicatorMethod in this&&typeof this[progressIndicatorMethod]==='function')this[progressIndicatorMethod].call(this);};Drupal.theme.ajaxProgressThrobber=(message)=>{const messageMarkup=typeof message==='string'?Drupal.theme('ajaxProgressMessage',message):'';const throbber='<div class="throbber"> </div>';return `<div class="ajax-progress ajax-progress-throbber">${throbber}${messageMarkup}</div>`;};Drupal.theme.ajaxProgressIndicatorFullscreen=()=>'<div class="ajax-progress ajax-progress-fullscreen"> </div>';Drupal.theme.ajaxProgressMessage=(message)=>`<div class="message">${message}</div>`;Drupal.theme.ajaxProgressBar=($element)=>$('<div class="ajax-progress ajax-progress-bar"></div>').append($element);Drupal.Ajax.prototype.setProgressIndicatorBar=function(){const progressBar=new Drupal.ProgressBar(`ajax-progress-${this.element.i
40092d}`,$.noop,this.progress.method,$.noop);if(this.progress.message)progressBar.setProgress(-1,this.progress.message);if(this.progress.url)progressBar.startMonitoring(this.progress.url,this.progress.interval||1500);this.progress.element=$(Drupal.theme('ajaxProgressBar',progressBar.element));this.progress.object=progressBar;$(this.element).after(this.progress.element);};Drupal.Ajax.prototype.setProgressIndicatorThrobber=function(){this.progress.element=$(Drupal.theme('ajaxProgressThrobber',this.progress.message));if($(this.element).closest('[data-drupal-ajax-container]').length)$(this.element).closest('[data-drupal-ajax-container]').after(this.progress.element);else $(this.element).after(this.progress.element);};Drupal.Ajax.prototype.setProgressIndicatorFullscreen=function(){this.progress.element=$(Drupal.theme('ajaxProgressIndicatorFullscreen'));$('body').append(this.progress.element);};Drupal.Ajax.prototype.commandExecutionQueue=function(response,status){const ajaxCommands=this.commands;return Object.keys(response||{}).reduce((executionQueue,key)=>executionQueue.then(()=>{const {command}=response[key];if(command&&ajaxCommands[command])return ajaxCommands[command](this,response[key],status);}),Promise.resolve());};Drupal.Ajax.prototype.success=function(response,status){if(this.progress.element)$(this.progress.element).remove();if(this.progress.object)this.progress.object.stopMonitoring();$(this.element).prop('disabled',false);const elementParents=$(this.element).parents('[data-drupal-selector]').addBack().toArray();const focusChanged=Object.keys(response||{}).some((key)=>{const {command,method}=response[key];return (command==='focusFirst'||command==='openDialog'||(command==='invoke'&&method==='focus'));});return (this.commandExecutionQueue(response,status).then(()=>{if(!focusChanged){let target=false;if(this.element){if($(this.element).data('refocus-blur')&&this.preCommandsFocusedElementSelector)target=document.querySelector(`[data-drupal-selector="${this.preCommandsFocusedElementSelector}"]`);if(!target&&!$(this.element).data('disable-refocus')){for(let n=elementParents.length-1;!target&&n>=0;n--)target=document.querySelector(`[data-drupal-selector="${elementParents[n].getAttribute('data-drupal-selector')}"]`);}}if(target)$(target).trigger('focus');}if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.attachBehaviors(this.$form.get(0),settings);}this.settings=null;}).catch((error)=>console.error(Drupal.t('An error occurred during the execution of the Ajax response: !error',{'!error':error}))));};Drupal.Ajax.prototype.getEffect=function(response){const type=response.effect||this.effect;const speed=response.speed||this.speed;const effect={};if(type==='none'){effect.showEffect='show';effect.hideEffect='hide';effect.showSpeed='';}else if(type==='fade'){effect.showEffect='fadeIn';effect.hideEffect='fadeOut';effect.showSpeed=speed;}else{effect.showEffect=`${type}Toggle`;effect.hideEffect=`${type}Toggle`;effect.showSpeed=speed;}return effect;};Drupal.Ajax.prototype.error=function(xmlhttprequest,uri,customMessage){if(this.progress.element)$(this.progress.element).remove();if(this.progress.object)this.progress.object.stopMonitoring();$(this.wrapper).show();$(this.element).prop('disabled',false);if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.attachBehaviors(this.$form.get(0),settings);}throw new Drupal.AjaxError(xmlhttprequest,uri,customMessage);};Drupal.theme.ajaxWrapperNewContent=($newContent,ajax,response)=>(response.effect||ajax.effect)!=='none'&&$newContent.filter((i)=>!(($newContent[i].nodeName==='#comment'||($newContent[i].nodeName==='#text'&&/^(\s|\n|\r)*$/.test($newContent[i].textContent))))).length>1?Drupal.theme('ajaxWrapperMultipleRootElements',$newContent):$newContent;Drupal.theme.ajaxWrapperMultipleRootElements=($elements)=>$('<div></div>').append($elements);Drupal.AjaxCommands=function(){};Drupal.AjaxCommands.prototype={insert(ajax,response){const $wrapper=response.selector?$(response.selector):$(ajax.wrapper);const method=response.method||ajax.method;const effect=ajax.getEffect(response);const settings=response.settings||ajax.settings||drupalSettings;const parseHTML=(htmlString)=>{const fragment=document.createDocumentFragment();const template=fragment.appendChild(document.createElement('template'));template.innerHTML=htmlString;return template.content.childNodes;};let $newContent=$(parseHTML(response.data));
40092$newContent=Drupal.theme('ajaxWrapperNewContent',$newContent,ajax,response);switch(method){case 'html':case 'replaceWith':case 'replaceAll':case 'empty':case 'remove':Drupal.detachBehaviors($wrapper.get(0),settings);break;default:break;}$wrapper[method]($newContent);if(effect.showEffect!=='show')$newContent.hide();const $ajaxNewContent=$newContent.find('.ajax-new-content');if($ajaxNewContent.length){$ajaxNewContent.hide();$newContent.show();$ajaxNewContent[effect.showEffect](effect.showSpeed);}else{if(effect.showEffect!=='show')$newContent[effect.showEffect](effect.showSpeed);}$newContent.each((index,element)=>{if(element.nodeType===Node.ELEMENT_NODE&&document.documentElement.contains(element))Drupal.attachBehaviors(element,settings);});},remove(ajax,response,status){const settings=response.settings||ajax.settings||drupalSettings;$(response.selector).each(function(){Drupal.detachBehaviors(this,settings);}).remove();},changed(ajax,response,status){const $element=$(response.selector);if(!$element.hasClass('ajax-changed')){$element.addClass('ajax-changed');if(response.asterisk)$element.find(response.asterisk).append(` <abbr class="ajax-changed" title="${Drupal.t('Changed')}">*</abbr> `);}},alert(ajax,response,status){window.alert(response.text);},announce(ajax,response){if(response.priority)Drupal.announce(response.text,response.priority);else Drupal.announce(response.text);},redirect(ajax,response,status){window.location=response.url;},css(ajax,response,status){$(response.selector).css(response.argument);},settings(ajax,response,status){const ajaxSettings=drupalSettings.ajax;if(ajaxSettings)Drupal.ajax.expired().forEach((instance)=>{if(instance.selector){const selector=instance.selector.replace('#','');if(selector in ajaxSettings)delete ajaxSettings[selector];}});if(response.merge)$.extend(true,drupalSettings,response.settings);else ajax.settings=response.settings;},data(ajax,response,status){$(response.selector).data(response.name,response.value);},focusFirst(ajax,response,status){let focusChanged=false;const container=document.querySelector(response.selector);if(container){const tabbableElements=tabbable(container);if(tabbableElements.length){tabbableElements[0].focus();focusChanged=true;}else{if(isFocusable(container)){container.focus();focusChanged=true;}}}if(ajax.hasOwnProperty('element')&&!focusChanged)ajax.element.focus();},invoke(ajax,response,status){const $element=$(response.selector);$element[response.method](...response.args);},restripe(ajax,response,status){$(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');},update_build_id(ajax,response,status){document.querySelectorAll(`input[name="form_build_id"][value="${response.old}"]`).forEach((item)=>{item.value=response.new;});},add_css(ajax,response,status){const allUniqueBundleIds=response.data.map(function(style){const uniqueBundleId=style.href;if(!loadjs.isDefined(uniqueBundleId))loadjs(`css!${style.href}`,uniqueBundleId,{before(path,styleEl){Object.keys(style).forEach((attributeKey)=>{styleEl.setAttribute(attributeKey,style[attributeKey]);});}});return uniqueBundleId;});return new Promise((resolve,reject)=>{loadjs.ready(allUniqueBundleIds,{success(){resolve();},error(depsNotFound){const message=Drupal.t(`The following files could not be loaded: @dependencies`,{'@dependencies':depsNotFound.join(', ')});reject(message);}});});},message(ajax,response){const messages=new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));if(response.clearPrevious)messages.clear();messages.add(response.message,response.messageOptions);},add_js(ajax,response,status){const parentEl=document.querySelector(response.selector||'body');const settings=ajax.settings||drupalSettings;const allUniqueBundleIds=response.data.map((script)=>{const uniqueBundleId=script.src;if(!loadjs.isDefined(uniqueBundleId))loadjs(script.src,uniqueBundleId,{async:false,before(path,scriptEl){Object.keys(script).forEach((attributeKey)=>{scriptEl.setAttribute(attributeKey,script[attributeKey]);});parentEl.appendChild(scriptEl);return false;}});return uniqueBundleId;});return new Promise((resolve,reject)=>{loadjs.ready(allUniqueBundleIds,{success(){Drupal.attachBehaviors(parentEl,settings);resolve();},error(depsNotFound){const message=Drupal.t(`The following files could not be loaded: @dependencies`,{'@dependencies':depsNotFound.join(', ')});reject(message);}});});},scrollTop(ajax,response){document.querySelector(response.selector)?.scrollIntoView();}};const stopEvent=(xhr,settings)=>{return (xhr.getResponseHeader('X-Drupal-Ajax-Token')==='1'&&typeof settings.isInProgress==='function'&&settings.isInProgress());};$.extend(true,$.event.special,{ajaxSuccess:{trigger(event,xhr,settings){if(stopEvent(xhr,settings))return false;}},ajaxComplete:{trigger(event,xhr,settings){if(stopEvent(xhr,settings)){$.active++;return false;}}}});})(jQuery,window,Drupal,drupalSettings,loadjs,window.tabbable);; 40093(function($,Drupal,drupalSettings){Drupal.Views={};Drupal.Views.parseQueryString=function(query){const args={};if(query.includes('?'))query=query.substring(query.indexOf('?')+1);let pair;const pairs=query.split('&');for(let i=0;i<pairs.length;i++){pair=pairs[i].split('=');if(pair[0]!=='q')if(pair[1])args[decodeURIComponent(pair[0].replace(/\+/g,' '))]=decodeURIComponent(pair[1].replace(/\+/g,' '));else args[decodeURIComponent(pair[0].replace(/\+/g,' '))]='';}return args;};Drupal.Views.parseViewArgs=function(href,viewPath){const returnObj={};const path=Drupal.Views.getPath(href);const viewHref=Drupal.url(viewPath).substring(drupalSettings.path.baseUrl.length);if(viewHref&&path.startsWith(`${viewHref}/`)){returnObj.view_args=decodeURIComponent(path.substring(viewHref.length+1,path.length));returnObj.view_path=path;}return returnObj;};Drupal.Views.pathPortion=function(href){const protocol=window.location.protocol;if(href.startsWith(protocol))href=href.substring(href.indexOf('/',protocol.length+2));return href;};Drupal.Views.getPath=function(href){href=Drupal.Views.pathPortion(href);href=href.substring(drupalSettings.path.baseUrl.length,href.length);if(href.startsWith('?q='))href=href.substring(3,href.length);const chars=['#','?','&'];for(let i=0;i<chars.length;i++)if(href.includes(chars[i]))href=href.substring(0,href.indexOf(chars[i]));return href;};})(jQuery,Drupal,drupalSettings);; 40094(function($,Drupal,drupalSettings){Drupal.behaviors.ViewsAjaxView={};Drupal.behaviors.ViewsAjaxView.attach=function(context,settings){if(settings?.views?.ajaxViews){const {views:{ajaxViews}}=settings;Object.keys(ajaxViews||{}
40094).forEach((i)=>{Drupal.views.instances[i]=new Drupal.views.ajaxView(ajaxViews[i]);});}};Drupal.behaviors.ViewsAjaxView.detach=(context,settings,trigger)=>{if(trigger==='unload')if(settings?.views?.ajaxViews){const {views:{ajaxViews}}=settings;Object.keys(ajaxViews||{}).forEach((i)=>{const selector=`.js-view-dom-id-${ajaxViews[i].view_dom_id}`;if($(selector,context).length){delete Drupal.views.instances[i];delete settings.views.ajaxViews[i];}});}};Drupal.views={};Drupal.views.instances={};Drupal.views.ajaxView=function(settings){const selector=`.js-view-dom-id-${settings.view_dom_id}`;this.$view=$(selector);this.$exposed_form=$(`form#views-exposed-form-${settings.view_name.replace(/_/g,'-')}-${settings.view_display_id.replace(/_/g,'-')}`);let ajaxPath=drupalSettings.views.ajax_path;if(ajaxPath.constructor.toString().includes('Array'))ajaxPath=ajaxPath[0];let queryString=window.location.search||'';if(queryString!==''){queryString=queryString.slice(1);const params=decodeURI(queryString).split('&').filter((param)=>{const [name,value]=param.split('=');return (this.$exposed_form.find(`input[name="${name}"]`).length===0&&!['page','reset','sort','order','q','render'].includes(name));});queryString=encodeURI(params.join('&'));if(queryString!=='')queryString=(ajaxPath.includes('?')?'&':'?')+queryString;}this.element_settings={url:ajaxPath+queryString,submit:settings,httpMethod:'GET',setClick:true,event:'click',selector,progress:{type:'fullscreen'}};this.settings=settings;once('exposed-form',this.$exposed_form).forEach(this.attachExposedFormAjax.bind(this));once('ajax-pager',this.$view.filter(this.filterNestedViews.bind(this))).forEach(this.attachPagerAjax.bind(this));const selfSettings=$.extend({},this.element_settings,{event:'RefreshView',base:this.selector,httpMethod:'GET',element:this.$view.get(0)});this.refreshViewAjax=Drupal.ajax(selfSettings);};Drupal.views.ajaxView.prototype.attachExposedFormAjax=function(){const that=this;this.exposedFormAjax=[];$('input[type=submit], button[type=submit], input[type=image]',this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function(index){const selfSettings=$.extend({},that.element_settings,{base:$(this).attr('id'),element:this});that.exposedFormAjax[index]=Drupal.ajax(selfSettings);});};Drupal.views.ajaxView.prototype.filterNestedViews=function(){return !this.$view.parents('.view').length;};Drupal.views.ajaxView.prototype.attachPagerAjax=function(){this.$view.find('.js-pager__items a, th.views-field a, .attachment .views-summary a').each(this.attachPagerLinkAjax.bind(this));};Drupal.views.ajaxView.prototype.attachPagerLinkAjax=function(id,link){const $link=$(link);const viewData={};const href=$link.attr('href');$.extend(viewData,this.settings,Drupal.Views.parseQueryString(href),Drupal.Views.parseViewArgs(href,this.settings.view_base_path));const selfSettings=$.extend({},this.element_settings,{submit:viewData,base:false,element:link,httpMethod:'GET'});this.pagerAjax=Drupal.ajax(selfSettings);};Drupal.AjaxCommands.prototype.setBrowserUrl=(ajax,response)=>{if(ajax.element&&!ajax.element.closest('.ui-dialog-content'))window.history.replaceState(null,'',response.url);};})(jQuery,Drupal,drupalSettings);; 40095(function($,Drupal,debounce){"use strict";var $window=$(window);var scrollThreshold=200;var automaticPagerSelector='[data-drupal-views-infinite-scroll-pager="automatic"]';var pagerSelector='[data-drupal-views-infinite-scroll-pager]';var contentWrapperSelector='[data-drupal-views-infinite-scroll-content-wrapper]';var scrollEvent='scroll.views_infinite_scroll';$.fn.infiniteScrollInsertView=function($newView){var matches=/(js-view-dom-id-\w+)/.exec(this.attr('class'));if(!matches)return;var currentViewId=matches[1].replace('js-view-dom-id-','views_dom_id:');var view=Drupal.views.instances[currentViewId];once.remove('ajax-pager',view.$view);once.remove('exposed-form',view.$exposed_form);var $existingPager=view.$view.find(pagerSelector);once.remove('infinite-scroll',$existingPager);var $newRows=$newView.find(contentWrapperSelector).children();var $newPager=$newView.find(pagerSelector);view.$view.find(contentWrapperSelector).trigger('views_infinite_scroll.new_content',$
40095newRows.clone()).append($newRows);$existingPager.replaceWith($newPager);Drupal.attachBehaviors(view.$view[0]);};Drupal.behaviors.views_infinite_scroll_automatic={attach:function(context,settings){once('infinite-scroll',automaticPagerSelector,context).forEach(function(elem){var $pager=$(elem);$pager.addClass('visually-hidden');var isLoadNeeded=function(){return window.innerHeight+window.pageYOffset>$pager.offset().top-scrollThreshold;};$window.on(scrollEvent,debounce(function(){if(isLoadNeeded()){$pager.find('[rel=next]').click();$window.off(scrollEvent);}},200));if(isLoadNeeded())$window.trigger(scrollEvent);});},detach:function(context,settings,trigger){if(trigger==='unload')if(once.remove('infinite-scroll',automaticPagerSelector,context).length)$window.off(scrollEvent);}};Drupal.views.ajaxView.prototype.filterNestedViews=function(){return this.$view.hasClass('view-eva')||!this.$view.parents('.view').length;};})(jQuery,Drupal,Drupal.debounce);;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.