{"version":3,"sources":["../node_modules/react/index.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/@emotion/utils/dist/utils.browser.esm.js","../node_modules/@emotion/core/dist/emotion-element-57a3a7a3.browser.esm.js","../node_modules/@emotion/core/dist/core.browser.esm.js","../node_modules/react-select/dist/index-4322c0ed.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@reach/router/es/lib/utils.js","../node_modules/@reach/router/es/lib/history.js","../node_modules/@reach/router/es/index.js","../node_modules/classnames/index.js","../../src/index.tsx","../node_modules/react-select/dist/utils-06b0d5a4.browser.esm.js","../../src/applicationinsights-shims.ts","../node_modules/react-dom/index.js","../node_modules/react-table/index.js","../node_modules/@emotion/css/dist/css.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/warning/warning.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/invariant/browser.js","../node_modules/react-compound-slider/node_modules/d3-array/src/ticks.js","../../src/Slider/utils.ts","../../src/Slider/modes.ts","../../src/utils.ts","../../src/Rail/Rail.tsx","../../src/Handles/Handles.tsx","../../src/scales/LinearScale.ts","../../src/Ticks/Ticks.tsx","../../src/Tracks/Tracks.tsx","../../src/scales/DiscreteScale.ts","../../src/Slider/Slider.tsx","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/cache/dist/cache.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/react-input-autosize/lib/AutosizeInput.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@emotion/sheet/dist/sheet.browser.esm.js","../../src/utils.js","../../src/lifecycle.js","../../src/methods.js","../../src/pagination.js","../../src/defaultProps.js","../../src/propTypes.js","../../src/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/webpack/buildin/global.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/object-assign/index.js","../../../../../src/Interfaces/Contracts/Generated/SeverityLevel.ts","../node_modules/create-react-context/lib/index.js","../node_modules/react-input-mask/index.js","../node_modules/react-select/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-select/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-select/node_modules/react-transition-group/esm/config.js","../node_modules/react-select/node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-select/node_modules/react-transition-group/esm/Transition.js","../node_modules/react-select/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-select/node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-select/node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-select/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-select/animated/dist/react-select.browser.esm.js","../../src/index.ts","../node_modules/react-select/dist/Select-9fdb8cd0.browser.esm.js","../node_modules/react-select/dist/stateManager-04f734a2.browser.esm.js","../node_modules/react-select/dist/react-select.browser.esm.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/babel-preset-react-app/node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/gud/index.js","../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../node_modules/@emotion/core/node_modules/@babel/runtime/helpers/inheritsLoose.js","../../src/publicUtils.js","../../src/makeDefaultPluginHooks.js","../../src/hooks/useColumnVisibility.js","../../src/hooks/useTable.js","../../src/plugin-hooks/useExpanded.js","../../src/filterTypes.js","../../src/plugin-hooks/useFilters.js","../../src/plugin-hooks/useGlobalFilter.js","../../src/aggregations.js","../../src/plugin-hooks/useGroupBy.js","../../src/sortTypes.js","../../src/plugin-hooks/useSortBy.js","../../src/plugin-hooks/usePagination.js","../../src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../../src/plugin-hooks/useRowSelect.js","../../src/plugin-hooks/useRowState.js","../../src/plugin-hooks/useColumnOrder.js","../../src/plugin-hooks/useResizeColumns.js","../../src/plugin-hooks/useAbsoluteLayout.js","../../src/plugin-hooks/useBlockLayout.js","../../src/plugin-hooks/useFlexLayout.js","../../src/plugin-hooks/useGridLayout.js","../../../src/JavaScriptSDK/EnvUtils.ts","../../../src/JavaScriptSDK/CoreUtils.ts","../../../src/JavaScriptSDK.Enums/LoggingEnums.ts","../../../out/lib/src/DynamicProto.js","../../../src/JavaScriptSDK/DiagnosticLogger.ts","../../../src/JavaScriptSDK/PerfManager.ts","../../../src/JavaScriptSDK/TelemetryPluginChain.ts","../../../src/JavaScriptSDK/ProcessTelemetryContext.ts","../../../src/JavaScriptSDK/BaseTelemetryPlugin.ts","../../../src/JavaScriptSDK/TelemetryHelpers.ts","../../../src/JavaScriptSDK/ChannelController.ts","../../src/Enums.ts","../../../src/JavaScriptSDK/BaseCore.ts","../../../src/JavaScriptSDK.Enums/EventsDiscardedReason.ts","../../../src/JavaScriptSDK/NotificationManager.ts","../../../src/JavaScriptSDK/AppInsightsCore.ts","../../src/RequestResponseHeaders.ts","../../../../src/Telemetry/Common/DataSanitizer.ts","../../src/Util.ts","../../src/Constants.ts","../../src/ConnectionStringParser.ts","../../../../../src/Interfaces/Contracts/Generated/Base.ts","../../../../../src/Interfaces/Contracts/Generated/Data.ts","../../../../src/Telemetry/Common/Envelope.ts","../../../../../src/Interfaces/Contracts/Generated/Envelope.ts","../../../../../src/Interfaces/Contracts/Generated/Domain.ts","../../../../../src/Interfaces/Contracts/Generated/EventData.ts","../../../src/Telemetry/Event.ts","../../../../../src/Interfaces/Contracts/Generated/StackFrame.ts","../../../../../src/Interfaces/Contracts/Generated/ExceptionData.ts","../../../../../src/Interfaces/Contracts/Generated/ExceptionDetails.ts","../../../src/Telemetry/Exception.ts","../../../../../src/Interfaces/Contracts/Generated/DataPointType.ts","../../../../../src/Interfaces/Contracts/Generated/MetricData.ts","../../../../../src/Interfaces/Contracts/Generated/DataPoint.ts","../../../../src/Telemetry/Common/DataPoint.ts","../../../src/Telemetry/Metric.ts","../../../../../src/Interfaces/Contracts/Generated/PageViewData.ts","../../../src/Telemetry/PageView.ts","../../../src/Telemetry/RemoteDependencyData.ts","../../../../../src/Interfaces/Contracts/Generated/RemoteDependencyData.ts","../../../src/Telemetry/Trace.ts","../../../../../src/Interfaces/Contracts/Generated/MessageData.ts","../../../src/Telemetry/PageViewPerformance.ts","../../../../../src/Interfaces/Contracts/Generated/PageViewPerfData.ts","../../../../src/Telemetry/Common/Data.ts","../../../src/Interfaces/IConfig.ts","../../../../../src/Interfaces/Contracts/Generated/ContextTagKeys.ts","../../src/TelemetryItemCreator.ts","../../../src/Interfaces/PartAExtensions.ts","../../src/applicationinsights-common.ts","../PageViewManager.js","../PageVisitTimeManager.js","../PageViewPerformanceManager.js","../ApplicationInsights.js","../SendBuffer.js","../EnvelopeCreator.js","../Serializer.js","../Offline.js","../HashCodeScoreGenerator.js","../SamplingScoreGenerator.js","../Sample.js","../Sender.js","../../../src/Context/Session.ts","../../../src/Context/Application.ts","../../../src/Context/Device.ts","../../../src/Context/Internal.ts","../../../src/Context/User.ts","../../../src/Context/Location.ts","../../../src/Context/TelemetryTrace.ts","../../src/TelemetryContext.ts","../../src/PropertiesPlugin.ts","../../../src/JavaScriptSDK/InstrumentHooks.ts","../ajaxRecord.js","../TraceParent.js","../ajax.js","../Initialization.js"],"names":["module","exports","require","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","sourceSymbolKeys","prototype","propertyIsEnumerable","call","_slicedToArray","arr","Array","isArray","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","err","unsupportedIterableToArray","TypeError","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","split","className","insertStyles","cache","serialized","isStringTag","name","styles","inserted","current","insert","sheet","hasOwnProperty","EmotionCacheContext","createContext","HTMLElement","createCache","ThemeContext","CacheProvider","Provider","withEmotionCache","func","render","props","ref","createElement","Consumer","forwardRef","typePropName","createEmotionProps","type","newProps","theme","cssProp","css","serializeStyles","Emotion","jsx","args","argsLength","createElementArgArray","keyframes","Component","insertable","anim","toString","this","classnames","len","cls","arg","toAdd","k","merge","ClassNames","context","_len","_key","content","cx","_len2","_key2","ele","children","_extends","assign","_inheritsLoose","subClass","superClass","create","constructor","__proto__","getMenuPlacement","_ref","maxHeight","menuEl","minHeight","placement","shouldScroll","isFixedPosition","spacing","scrollParent","getScrollParent","defaultState","offsetParent","scrollHeight","getBoundingClientRect","height","_menuEl$getBoundingCl","menuBottom","bottom","menuHeight","menuTop","top","containerTop","viewHeight","window","innerHeight","scrollTop","getScrollTop","marginBottom","parseInt","getComputedStyle","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","animatedScrollTo","_constrainedHeight","spaceAbove","Math","min","controlHeight","scrollTo","_constrainedHeight2","Error","coercePlacement","p","menuCSS","_ref2","_ref3","_ref2$theme","borderRadius","colors","label","alignToControl","backgroundColor","neutral0","boxShadow","menuGutter","position","width","zIndex","MenuPlacer","_Component","_this","concat","state","maxMenuHeight","getPlacement","_this$props","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","setState","getUpdatedProps","placerProps","contextTypes","PropTypes","menuListCSS","_ref4","baseUnit","overflowY","paddingBottom","paddingTop","WebkitOverflowScrolling","noticeCSS","_ref5","_ref5$theme","color","neutral40","padding","textAlign","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","getStyles","innerProps","defaultProps","LoadingMessage","menuPortalCSS","_ref6","rect","offset","left","MenuPortal","_Component2","_this2","_ref7","_proto2","getChildContext","_this$props2","appendTo","controlElement","isFixed","getBoundingClientObj","scrollDistance","pageYOffset","menuWrapper","createPortal","childContextTypes","keyList","hasProp","exportedEqual","a","b","equal","arrA","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","$$typeof","error","message","match","console","warn","_extends$1","containerCSS","isDisabled","direction","isRtl","pointerEvents","valueContainerCSS","alignItems","display","flex","flexWrap","overflow","indicatorsContainerCSS","alignSelf","flexShrink","_templateObject","data","strings","raw","slice","_taggedTemplateLiteralLoose","_extends$2","Svg","size","_objectWithoutPropertiesLoose","viewBox","focusable","CrossIcon","d","DownChevron","baseCSS","isFocused","_ref3$theme","neutral60","neutral20","transition","neutral80","dropdownIndicatorCSS","clearIndicatorCSS","indicatorSeparatorCSS","_ref4$theme","neutral10","loadingDotAnimations","loadingIndicatorCSS","fontSize","lineHeight","marginRight","verticalAlign","LoadingDot","delay","_css","animation","marginLeft","LoadingIndicator","indicator","_extends$3","_ref$theme","neutral5","borderColor","primary","borderStyle","borderWidth","cursor","justifyContent","outline","neutral30","_extends$4","groupCSS","groupHeadingCSS","fontWeight","paddingLeft","paddingRight","textTransform","_extends$5","inputCSS","margin","visibility","inputStyle","isHidden","background","border","opacity","_extends$6","multiValueCSS","minWidth","multiValueLabelCSS","cropWithEllipsis","textOverflow","whiteSpace","multiValueRemoveCSS","dangerLight","danger","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValue","components","removeProps","selectProps","Container","Label","Remove","emotionCx","_extends$7","optionCSS","isSelected","primary25","userSelect","WebkitTapHighlightColor","primary50","_extends$8","placeholderCSS","neutral50","transform","_extends$9","css$1","maxWidth","_extends$a","ClearIndicator","Control","innerRef","menuIsOpen","control","DropdownIndicator","Group","Heading","headingProps","group","GroupHeading","cleanProps","_objectWithoutPropertiesLoose$1","IndicatorsContainer","indicators","IndicatorSeparator","Input","_objectWithoutPropertiesLoose$2","AutosizeInput","input","inputRef","disabled","Menu","menu","MenuList","isMulti","MultiValueRemove","Option","option","Placeholder","placeholder","SelectContainer","SingleValue","ValueContainer","hasValue","defaultComponents","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","fn","self","startsWith","string","search","substr","pick","routes","uri","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","default","params","routeSegments","path","max","index","routeSegment","uriSegment","isSplat","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","invariant","to","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","pathname","allSegments","segments","segment","pop","insertParams","_path$split","pathBase","_path$split$","query","constructedPath","_params$location","location","_params$location$sear","searchSplit","isDynamic","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","replace","q","getLocation","_source$location","hash","href","origin","protocol","host","hostname","port","canUseDOM","URL","encodeURI","decodeURI","history","document","globalHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","action","addEventListener","removeEventListener","navigate","_ref$replace","go","now","replaceState","pushState","e","res","createHistory","initialPath","searchIndex","initialLocation","stack","states","_","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","createMemorySource","_classCallCheck","instance","Constructor","_possibleConstructorReturn","ReferenceError","_inherits","setPrototypeOf","createNamedContext","defaultValue","Ctx","displayName","LocationContext","Location","React","LocationProvider","_React$Component","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","componentDidUpdate","prevProps","prevState","componentDidMount","requestAnimationFrame","unmounted","componentWillUnmount","BaseContext","baseuri","basepath","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","_props$component","component","domProps","Children","toArray","array","child","createRoute","element","clone","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","node","shouldFocus","focus","getDerivedStateFromProps","nextProps","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","style","_props2$component","Comp","tabIndex","n","polyfill","C","Link","_props$getProps","getProps","anchorProps","encodedHref","isCurrent","isPartiallyCurrent","onClick","event","shouldNavigate","preventDefault","shouldReplace","_location$state","restState","obj1","obj2","obj1Keys","every","shallowCompare","RedirectRequest","o","RedirectImpl","_React$Component3","_props3","_props3$replace","from","noThrow","resolvedTo","_props4","redirectTo","Redirect","stripSlashes","str","Fragment","validateRedirect","elementPath","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","hasOwn","classes","argType","inner","useIsomorphicLayoutEffect","fbWarning","assignRef","isFunction","forwardRefWithAs","getDocumentDimensions","ownerDocument","getOwnerDocument","ownerWindow","isBoolean","isString","makeId","val","noop","useCheckStyles","useForceUpdate","dispatch","useForkedRef","wrapEvent","theirHandler","ourHandler","applyPrefixToName","prefix","String","trim","cleanValue","Boolean","isDocumentElement","el","documentElement","body","excludeStaticParent","overflowRx","docEl","parent","parentElement","overflowX","duration","callback","start","change","currentTime","animateScroll","t","scrollIntoView","focusedEl","menuRect","focusedRect","overScroll","offsetHeight","offsetTop","clientHeight","right","isTouchCapable","createEvent","isMobileDevice","navigator","userAgent","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","globalThis","global","tmpFunc","root","assignFn","extendsFn","globalObj","getGlobal","s","objCreateFn","__","__assign","__extends","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","_defineProperties","descriptor","_createClass","protoProps","staticProps","warning","murmur2","h","charCodeAt","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","order","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","memoize","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","p1","p2","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","interpolated","createStringFromObject","previousCursor","result","cached","labelPattern","stringMode","lastIndex","identifierName","hashString","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","_assertThisInitialized","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_typeof","assertThisInitialized","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","condition","format","c","f","argIndex","framesToPop","e10","sqrt","e5","e2","stop","count","reverse","ticks","step","power","floor","log","LN10","pow","tickIncrement","isFinite","ceil","prfx","getSortByVal","reversed","getUpdatedHandles","handles","v","updateValue","getSliderDomain","slider","vertical","isNotValidTouch","touches","getTouchPosition","getHandles","values","valueToStep","changes","x","mode1","mode2","curr","mode3","indexForMovingHandle","handleMoveIsPositive","increment","n0","n1","newStep","getValue","check","callAll","fns","NOOP","percent","Rail","emitMouse","emitTouch","onMouseDown","onTouchStart","getRailProps","getEventData","activeHandleID","renderedChildren","Handles","emitKeyboard","onKeyDown","getHandleProps","LinearScale","interpolator","domain","range","d0","d1","r0","r1","createInterpolator","defaultGetEventData","Ticks","scale","id","Tracks","getTrackProps","tracks","clamp","DiscreteScale","isBrowser","getNextValue","newVal","getPrevValue","defaultDomain","Slider","valueToPerc","pixelToStep","validUpKeys","validDownKeys","found","currVal","nextHandles","isTouch","onChange","onSlideEnd","onSlideStart","handleID","updateKey","minDiff","diff","callOnChange","mode","onUpdate","rootStyle","rootProps","flatten","mappedHandles","item","isValidElement","isRCSComponent","warnOnChanges","nextState","m","compare","stylis_min","W","X","ia","Z","F","P","substring","w","L","ja","ka","aa","G","ba","la","ma","R","na","ea","oa","H","g","A","S","B","U","D","z","M","y","K","u","r","I","J","N","charAt","ca","O","da","fa","Y","E","ha","Q","use","T","set","toSheet","block","Sheet","ruleSheet","selectors","parents","line","column","ns","depth","at","delimiter","stylisOptions","stylis","Stylis","container","head","_insert","nodes","querySelectorAll","getAttribute","parentNode","appendChild","stylisPlugins","selector","shouldCache","StyleSheet","nonce","speedy","_arrayLikeToArray","arr2","_react","_react2","_interopRequireDefault","_propTypes2","__esModule","sizerStyle","INPUT_PROPS_BLACKLIST","copyStyles","fontFamily","fontStyle","letterSpacing","isIE","generateId","random","placeHolderSizerRef","placeHolderSizer","sizerRef","sizer","inputWidth","inputId","mounted","copyInputStyles","updateInputWidth","onAutosize","inputStyles","scrollWidth","newInputWidth","placeholderIsMinWidth","extraWidth","blur","select","injectStyles","dangerouslySetInnerHTML","__html","sizerValue","previousValue","currentValue","wrapperStyle","boxSizing","inputProps","field","cleanInputProps","inputClassName","renderStyles","propTypes","any","oneOfType","number","bool","_unsupportedIterableToArray","minLen","isSpeedy","tags","ctr","before","_proto","rule","_tag","tag","setAttribute","createTextNode","createStyleElement","nextSibling","insertBefore","styleSheets","ownerNode","sheetForTag","isImportRule","insertRule","cssRules","flush","removeChild","get","pathObj","makePathArray","keyPart","takeRight","last","orderBy","funcs","comp","desc","dirs","sortInt","rowA","rowB","remove","getFirstDefined","sum","makeTemplateComponent","cmp","rest","groupBy","resKey","rv","splitProps","compactObject","newObj","isSortingDesc","normalizeComponent","fallback","isReactComponent","asPx","Number","newArr","flattenDeep","isClassComponent","isFunctionComponent","defaultButton","ReactTablePagination","page","pages","getSafePage","onKeyPress","onBlur","inputType","pageJumpText","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageSizeChange","PreviousComponent","NextComponent","renderPageJump","renderCurrentPage","renderTotalPagesCount","renderPageSizeOptions","previousText","rowsSelectorText","rowsText","nextText","aria-label","emptyObj","resolveData","loading","showPagination","showPaginationTop","showPaginationBottom","defaultPage","defaultPageSize","collapseOnSortingChange","collapseOnPageChange","collapseOnDataChange","freezeWhenExpanded","sortable","multiSort","resizable","filterable","defaultSortDesc","defaultSorted","defaultFiltered","defaultResized","defaultExpanded","defaultFilterMethod","row","defaultSortMethod","onPageChange","onSortedChange","onFilteredChange","onResizedChange","onExpandedChange","pivotBy","pivotValKey","pivotIDKey","subRowsKey","aggregatedKey","nestingLevelKey","originalKey","indexKey","groupedByPivotKey","onFetchData","getTableProps","getTheadGroupProps","getTheadGroupTrProps","getTheadGroupThProps","getTheadProps","getTheadTrProps","getTheadThProps","getTheadFilterProps","getTheadFilterTrProps","getTheadFilterThProps","getTbodyProps","getTrGroupProps","getTrProps","getTdProps","getTfootProps","getTfootTrProps","getTfootTdProps","getPaginationProps","getLoadingProps","getNoDataProps","getResizerProps","Cell","Header","Footer","Aggregated","Pivot","PivotValue","Expander","Filter","show","minResizeWidth","aggregate","headerClassName","headerStyle","getHeaderProps","footerClassName","footerStyle","getFooterProps","filterMethod","filterAll","sortMethod","expanderDefaults","pivotDefaults","loadingText","noDataText","pageText","ofText","TableComponent","role","TheadComponent","TbodyComponent","TrGroupComponent","TrComponent","ThComponent","toggleSort","TdComponent","TfootComponent","FilterComponent","ExpanderComponent","isExpanded","PivotValueComponent","subRows","AggregatedComponent","previewValues","PivotComponent","PaginationComponent","LoadingComponent","NoDataComponent","ResizerComponent","PadRowComponent","elementType","ReactTableDefaults","ReactTable","sorted","expanded","filtered","resized","currentlyResizing","skipNextSort","resolvedState","manual","SubComponent","resolvedData","allVisibleColumns","headerGroups","hasHeaderGroups","sortedData","startRow","endRow","pageRows","minRows","padRows","hasColumnFooter","some","hasFilters","recurseRowsViewIndex","rows","rowWithViewIndex","_viewIndex","newPath","rowMinWidth","resizedColumn","find","rowIndex","finalState","tableProps","tBodyProps","loadingProps","noDataProps","makeHeaderGroup","resizedValue","col","theadGroupThProps","columnHeaderProps","flexStyles","makeHeader","resizedCol","theadThProps","isResizable","resizer","isSortable","makeFilter","theadFilterThProps","ResolvedFilterComponent","isFilterable","makePadColumn","tdProps","columnProps","makePadRow","trGroupProps","trProps","makeColumnFooter","tFootTdProps","columnFooterProps","makePagination","isTop","paginationProps","makeTable","theadGroupProps","theadGroupTrProps","makeHeaderGroups","theadProps","theadTrProps","makeHeaders","theadFilterProps","theadFilterTrProps","makeFilters","makePageRow","rowInfo","original","viewIndex","level","nestingPath","aggregated","groupedByPivot","cellInfo","pivoted","expander","useOnExpanderClick","isBranch","isPreview","resolvedCell","ResolvedAggregatedComponent","ResolvedExpanderComponent","ResolvedPivotValueComponent","DefaultResolvedPivotComponent","ResolvedPivotComponent","resolvedOnExpanderClick","newExpanded","interactionProps","i2","tFootProps","tFootTrProps","makeColumnFooters","Base","newState","columnsWithExpander","expanderColumn","col2","allDecoratedColumns","decorateAndAddToAll","parentColumn","decoratedColumn","dcol","accessorString","makeDecoratedColumn","visibleColumns","pivotIndex","visibleSubColumns","findIndex","pivotColumns","pivotID","PivotParentColumn","prev","PivotGroupHeader","pivotColumnGroup","currentSpan","addHeader","accessRow","aggregatingColumns","aggregationValues","groupRecursively","groupedRows","entries","rowGroup","sortMethodsByColumnID","sortData","filterData","currentState","getStateOrProp","filteredData","nextFilter","filteredSoFar","orderByMethod","currentRow","newPage","firstSortDirection","secondSortDirection","newSorted","existingIndex","existing","additive","newFiltering","parentWidth","pageX","startX","currentColumn","newResized","newWidth","Methods","getDataModel","oldState","getResolvedState","defaultableOptions","defaultName","JSON","resettableOptions","optionName","newResolvedState","getSortedData","cb","_toConsumableArray","arrayLikeToArray","iter","Function","componentWillMount","componentWillReceiveProps","bind","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","SeverityLevel","Portal","mountNode","portalNode","forceUpdate","_implementation2","Transition","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","timeout","mounting","performEnter","performExit","appearing","nodeRef","ReactDOM","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","setNextCallback","active","handler","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","setTimeout","childProps","TransitionGroupContext","only","contextType","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","getChildMapping","mapFn","mapper","getProp","prop","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","handleExited","contextValue","firstRender","currentChildMapping","childFactory","AnimatedInput","WrappedComponent","Fade","Tag","_ref$duration","inProp","entering","entered","exiting","exited","Collapse","rafID","getWidth","isNaN","getStyle","getTransition","cancelAnimationFrame","AnimatedMultiValue","AnimatedSingleValue","AnimatedValueContainer","makeAnimated","externalComponents","_objectWithoutPropertiesLoose$3","AnimatedComponents","serverHandoffComplete","genId","VisuallyHidden","as","clip","wordWrap","observedNodes","run","changedStates","newRect","rafId","observe","wasEmpty","hasRectChanged","callbacks","unobserve","observeOrOptions","setElement","initialRectIsSet","initialRefIsSet","setRect","onChangeRef","stableOnChange","useLayoutEffect","elem","observer","observeRect","IDLE","chart","initial","on","restTimeout","leave","leavingVisibleTimer","clearContextId","subscriptions","useTooltip","idProp","onMouseEnter","onMouseMove","onMouseLeave","onFocus","forwardedRef","DEBUG_STYLE","initialId","idFromProps","setId","useId","isVisible","setIsVisible","ownRef","triggerRect","useRect","Tooltip","DEPRECATED_ariaLabel","ariaLabel","trigger","tooltip","TooltipPopup","TooltipContent","realAriaLabel","positionDefault","hasAriaLabel","tooltipRect","windowWidth","windowHeight","collisions","directionUp","payload","stateDef","nextDef","diacritics","letters","stripDiacritics","trimString","defaultStringify","A11yText","DummyInput","out","emotion","NodeResolver","STYLE_KEYS","LOCK_STYLES","preventTouchMove","allowTouchMove","stopPropagation","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","maxTouchPoints","activeScrollLocks","ScrollLock","originalStyles","listenerOptions","capture","passive","accountForScrollbars","touchScrollTarget","targetStyle","currentPadding","clientWidth","adjustedPadding","innerWidth","_ref$1","ScrollBlock","_PureComponent","getScrollTarget","blurSelectInput","isEnabled","ScrollCaptor","isBottom","scrollTarget","touchStart","cancelScroll","handleEventDelta","delta","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","_this$scrollTarget","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","deltaY","changedTouches","clientY","onTouchMove","startListening","stopListening","ScrollCaptorSwitch","_ref$isEnabled","instructionsAriaMessage","_context","isSearchable","valueEventAriaMessage","isOptionDisabled","defaultStyles","clearIndicator","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","loadingMessage","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","singleValue","valueContainer","defaultTheme","primary75","neutral70","neutral90","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","controlShouldRenderValue","escapeClearsValue","filterOption","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","stringify","matchFrom","candidate","formatGroupLabel","getOptionLabel","getOptionValue","isLoading","menuShouldBlockScroll","openMenuOnFocus","openMenuOnClick","screenReaderStatus","tabSelectsValue","instanceId","Select","ariaLiveSelection","ariaLiveContext","focusedOption","focusedValue","inputIsHidden","menuOptions","selectValue","blockOptionHover","isComposing","clearFocusValueOnUpdate","commonProps","hasGroups","initialTouchX","initialTouchY","inputIsHiddenAfterUpdate","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","getInputRef","cacheComponents","focusInput","blurInput","newValue","actionMeta","setValue","onInputChange","onMenuClose","selectOption","_this$props3","isOptionSelected","announceAriaLiveSelection","removeValue","removedValue","clearValue","popValue","lastSelectedValue","custom","getElementId","getActiveDescendentId","_this$state","announceAriaLiveContext","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","tagName","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","onScroll","onCompositionStart","onCompositionEnd","touch","clientX","deltaX","abs","onTouchEnd","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","inputValue","currentTarget","onMenuOpen","onInputFocus","_this$props5","onInputBlur","onOptionHover","shouldHideSelectedOptions","_this$props6","hideSelectedOptions","_this$props7","isClearable","_this$state2","focusValue","keyCode","focusOption","buildMenuOptions","_props$inputValue","toOption","onHover","onSelect","optionId","onMouseOver","acc","itemIndex","groupId","_value","_selectValue","newSelectValue","lastProps","lastSelectValue","_menuOptions","startListeningComposition","startListeningToTouch","autoFocus","_this$props8","getNextFocusedValue","getNextFocusedOption","_this$props9","stopListeningComposition","stopListeningToTouch","_this$props10","_this$state3","openAtIndex","selectedIndex","_this$props11","_this$state4","focusedIndex","nextFocus","_this$state5","getTheme","getCommonProps","classNamePrefix","nextSelectValue","_this$state6","lastFocusedIndex","lastFocusedOption","hasOptions","countOptions","_this$props12","formatOptionLabel","constructAriaLiveMessage","_this$state7","_this$props13","valueFocusAriaMessage","optionFocusAriaMessage","screenReaderMessage","resultsAriaMessage","renderInput","_this$props14","ariaAttributes","readOnly","_this$commonProps","autoCapitalize","autoComplete","autoCorrect","spellCheck","renderPlaceholderOrValue","_this$components","_this$props15","_this$state8","opt","isOptionFocused","renderClearIndicator","_this$props16","renderLoadingIndicator","_this$props17","renderIndicatorSeparator","_this$components2","renderDropdownIndicator","renderMenu","_this$components3","_this$state9","_this$props18","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","headingId","_message","menuPlacementProps","menuElement","_ref8","_ref8$placerProps","renderFormField","_this6","_this$props19","_value2","renderLiveRegion","_this$components4","_this$props20","defaultInputValue","defaultMenuIsOpen","SelectComponent","_class","StateManager","callProp","manageState","for","encodeURIComponent","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isPureReactComponent","__self","__source","_owner","keyPrefix","V","escape","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","lazy","_ctor","_status","_result","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","version","onError","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","toUpperCase","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","selected","defaultSelected","Ib","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","valueOf","firstChild","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","shift","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","gridArea","lineClamp","kd","ld","md","setProperty","nd","menuitem","area","br","embed","hr","img","keygen","link","meta","param","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","Gd","Hd","Id","clearTimeout","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","re","detail","se","ve","locale","which","te","char","ue","we","date","datetime","email","month","password","tel","text","time","url","week","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","pageY","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","end","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","targetTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","queue","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","getDerivedStateFromError","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","add","Wi","Xi","Yi","Zi","$i","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","form","Lj","lk","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","symbol","arrayOf","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","_gud2","createEventEmitter","handlers","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","oldValue","reactDom","_defaults2","invariant_1","setInputSelection","createTextRange","collapse","moveStart","moveEnd","defaultFormatChars","parseMask","maskChar","formatChars","mask","lastEditablePosition","permanents","isPermanentCharacter","isAllowedCharacter","isEmpty","getFilledLength","isFilled","formatValue","insertString","getRightEditablePosition","getStringValue","processChange","getInsertStringLength","getLeftEditablePosition","splice","clearRange","enteredString","selection","getCancelAnimationFrame","webkitCancelRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","defer","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelDefer","InputElement","focused","previousSelection","selectionDeferId","saveSelectionLoopDeferId","saveSelectionLoop","runSaveSelectionLoop","stopSaveSelectionLoop","getInputDOMNode","Element","querySelector","getInputValue","setInputValue","setCursorToEnd","maskOptions","setCursorPosition","setSelection","deferred","getInputSelection","getCursorPosition","getBeforeMaskedValueChangeConfig","alwaysShowMask","isInputAutofilled","matches","beforePasteState","beforeMaskedValueChange","isWindowsPhoneBrowser","mouseDownX","mouseDownY","mouseDownTime","onPaste","handleRef","actions","init","defaultRenderer","emptyRenderer","defaultColumn","MAX_SAFE_INTEGER","mergeProps","propList","makePropGetter","hooks","userProps","handlePropGetter","reduceHooks","allowUndefined","loopHooks","hook","ensurePluginOrder","plugins","befores","pluginName","afters","plugin","functionalUpdate","old","useGetLatest","safeUseLayoutEffect","useMountedLayoutEffect","mountedRef","makeRenderer","flexRender","proto","includes","description","linkColumnStructure","assignColumnAccessor","flattenColumns","flattenBy","accessor","accessorPath","def","cacheKey","pathObjCache","reOpenBracket","reCloseBracket","pathPart","decorateColumn","userDefaultColumn","originalWidth","allColumns","additionalHeaderProperties","scanColumns","uid","getUID","headerGroup","headers","parentColumns","hasParents","newParent","latestParentColumn","originalId","placeholderOf","flat","recurse","expandRows","manualExpandedKey","expandSubRows","expandedRows","handleRow","addToExpandedRows","canExpand","getFilterMethod","userFilterTypes","filterTypes","shouldAutoRemoveFilter","autoRemove","unpreparedAccessWarning","passiveSupported","defaultGetTableProps","defaultGetTableBodyProps","defaultGetHeaderProps","colSpan","totalVisibleHeaderCount","defaultGetFooterProps","defaultGetHeaderGroupProps","defaultGetFooterGroupProps","defaultGetRowProps","defaultGetCellProps","cell","makeDefaultPluginHooks","useOptions","stateReducers","useControlledState","columnsDeps","allColumnsDeps","accessValue","materializedColumns","materializedColumnsDeps","useInstanceAfterData","visibleColumnsDeps","headerGroupsDeps","useInstanceBeforeDimensions","useInstance","prepareRow","getTableBodyProps","getHeaderGroupProps","getFooterGroupProps","getRowProps","getCellProps","useFinalInstance","resetHiddenColumns","toggleHideColumn","setHiddenColumns","toggleHideAllColumns","useColumnVisibility","getToggleHiddenProps","defaultGetToggleHiddenProps","getToggleHideAllColumnsProps","defaultGetToggleHideAllColumnsProps","reducer","hiddenColumns","toggleHidden","title","allColumnsHidden","indeterminate","previousState","initialState","columnId","handleColumn","parentVisible","subColumn","subHeader","flatHeaders","getHooks","autoResetHiddenColumns","getInstance","getAutoResetHiddenColumns","defaultInitialState","defaultColumnInstance","defaultReducer","defaultGetSubRows","defaultGetRowId","defaultUseControlledState","applyDefaults","getSubRows","getRowId","stateReducer","calculateHeaderWidths","sumTotalMinWidth","sumTotalWidth","sumTotalMaxWidth","sumTotalFlexWidth","subHeaders","header","totalLeft","totalMinWidth","totalWidth","totalMaxWidth","totalFlexWidth","canResize","accessRowsForColumn","flatRows","rowsById","accessValueHooks","originalRow","parentRows","originalSubRows","cells","resetExpanded","toggleRowExpanded","toggleAllRowsExpanded","useExpanded","getToggleAllRowsExpandedProps","defaultGetToggleAllRowsExpandedProps","getToggleRowExpandedProps","defaultGetToggleRowExpandedProps","isAllRowsExpanded","rowId","setExpanded","exists","shouldExist","paginateExpandedRows","autoResetExpanded","getAutoResetExpanded","expandedDepth","maxDepth","splitId","preExpandedRows","ids","filterValue","rowValue","exactText","exactTextCase","includesAll","includesSome","includesValue","equals","between","Infinity","temp","resetFilters","setFilter","setAllFilters","useFilters","filters","previousfilter","newFilter","manualFilters","defaultCanFilter","disableFilters","autoResetFilters","columnDefaultCanFilter","columnDisableFilters","canFilter","filteredFlatRows","filteredRowsById","filterRows","filteredRows","preFilteredRows","getAutoResetFilters","preFilteredFlatRows","preFilteredRowsById","resetGlobalFilter","setGlobalFilter","useGlobalFilter","globalFilter","manualGlobalFilter","globalFilterValue","autoResetGlobalFilter","disableGlobalFilter","columnDisableGlobalFilter","filterableColumns","globalFilteredRows","globalFilteredFlatRows","globalFilteredRowsById","getAutoResetGlobalFilter","preGlobalFilteredRows","preGlobalFilteredFlatRows","preGlobalFilteredRowsById","aggregatedValues","mid","nums","emptyArray","emptyObject","resetGroupBy","setGroupBy","toggleGroupBy","useGroupBy","getGroupByToggleProps","defaultGetGroupByToggleProps","canGroupBy","resolvedGroupBy","groupByColumns","nonGroupByColumns","isGrouped","groupedIndex","defaultUserAggregations","groupByFn","defaultGroupByFn","manualGroupBy","aggregations","userAggregations","autoResetGroupBy","disableGroupBy","defaultCanGroupBy","defaultColumnGroupBy","defaultGroupBy","columnDisableGroupBy","existingGroupBy","groupedFlatRows","groupedRowsById","onlyGroupedFlatRows","onlyGroupedRowsById","nonGroupedFlatRows","nonGroupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupByVal","leafRows","aggregateFn","groupedValues","leafValues","columnValue","aggregateValue","aggregateValueFn","groupByID","subRow","getAutoResetGroupBy","preGroupedRows","preGroupedFlatRow","preGroupedRowsById","allCells","isPlaceholder","isAggregated","reSplitAlphaNumeric","compareBasic","getRowValueByColumnID","an","bn","combo","resetSortBy","setSortBy","toggleSortBy","clearSortBy","sortType","sortDescFirst","useSortBy","getSortByToggleProps","defaultGetSortByToggleProps","isMultiSortEvent","canSort","disableMultiSort","sortBy","sortAction","multi","disableSortRemove","disableMultiRemove","maxMultiSortColCount","existingSortBy","hasDescDefined","newSortBy","orderByFn","defaultOrderByFn","userSortTypes","sortTypes","manualSortBy","defaultCanSort","disableSortBy","autoResetSortBy","defaultColumnCanSort","columnDisableSortBy","columnSort","isSorted","sortedIndex","isSortedDesc","sortedFlatRows","availableSortBy","sortInverted","sortedRows","getAutoResetSortBy","preSortedRows","preSortedFlatRows","sortFn","resetPage","gotoPage","setPageSize","usePagination","pageIndex","pageCount","newPageIndex","canNavigate","topRowIndex","autoResetPage","userPageCount","manualPagination","getAutoResetPage","pageOptions","fill","pageStart","pageEnd","canPreviousPage","canNextPage","previousPage","nextPage","resetPivot","togglePivot","_UNSTABLE_usePivotColumns","getPivotToggleProps","defaultGetPivotToggleProps","defaultPivotColumns","canPivot","setPivot","resolvedPivot","isPivotSource","uniqueValues","materialized","sourceColumns","newMaterialized","buildPivotColumns","pivotFilters","pivotColumn","columnGroup","PivotHeader","uniqueValue","isPivotGroup","pivotValue","sourceColumn","isPivoted","autoResetPivot","manaulPivot","disablePivot","defaultCanPivot","defaultColumnPivot","defaultPivot","columnDisablePivot","getAutoResetPivot","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","useRowSelect","getToggleRowSelectedProps","defaultGetToggleRowSelectedProps","getToggleAllRowsSelectedProps","defaultGetToggleAllRowsSelectedProps","getToggleAllPageRowsSelectedProps","defaultGetToggleAllPageRowsSelectedProps","manualRowSelectedKey","isSomeSelected","isAllRowsSelected","selectedRowIds","isAllPageRowsSelected","setSelected","selectAll","selectSubRows","newSelectedRowIds","handleRowById","autoResetSelectedRows","selectedFlatRows","getRowIsSelected","allChildrenSelected","someSelected","getAutoResetSelectedRows","defaultInitialRowStateAccessor","defaultInitialCellStateAccessor","setRowState","setCellState","resetRowState","useRowState","initialRowStateAccessor","initialCellStateAccessor","rowState","oldRowState","oldCellState","cellState","autoResetRowState","getAutoResetRowState","resetColumnOrder","setColumnOrder","useColumnOrder","columnOrder","columnOrderCopy","columnsCopy","columnsInOrder","targetColumnId","foundIndex","columnStartResizing","columnResizing","columnDoneResizing","resetResize","useResizeColumns","defaultGetResizerProps","onResizeStart","isTouchEvent","headerIdWidths","leafHeaders","recurseHeader","round","dispatchMove","clientXPos","dispatchEnd","handlersAndEvents","mouse","moveEvent","moveHandler","upEvent","upHandler","events","passiveIfSupported","supported","columnWidth","draggable","columnWidths","isResizingColumn","percentageDeltaX","newColumnWidths","headerId","headerWidth","disableResizing","isResizing","autoResetResize","getAutoResetResize","resetResizing","cellStyles","useAbsoluteLayout","getRowStyles","totalColumnsWidth","useBlockLayout","useFlexLayout","totalColumnsMinWidth","useGridLayout","gridTemplateColumns","gridLayout","columnIndex","elWidth","getElementById","offsetWidth","startingWidth","columnWidthsCopy","defaultFn","defaultWait","debounceRef","getDefaultFn","getDefaultWait","promise","instanceRef","userColumns","getStateReducer","reducerState","allColumnsQueue","initialRows","all","visibleColumnsDep","totalColumnsMaxWidth","footerGroups","strUndefined","strObject","strPrototype","strFunction","gbl","hasWindow","getGlobalInst","hasDocument","hasJSON","_isTrident","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","_isTypeof","theType","_isUndefined","_isNullOrUndefined","_hasOwnProperty","_isObject","_isFunction","_attachEvent","eventNameWithoutOn","handlerRef","useCapture","_detachEvent","callbackfn","LoggingSeverity","isDate","isError","isNumber","disableCookies","CoreUtils","_canUseCookies","newGuid","GuidRegex","randomValue","toISOString","pad","num","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","arrForEach","thisArg","idx","arrIndexOf","searchElement","fromIndex","lp","arrMap","results","arrReduce","strTrim","objKeys","hasDontEnumBug","dontEnums","dontEnumsLength","objDefineAccessors","setProp","defineProp","addEventHandler","eventName","getWindow","doc","getDocument","EventHelper","Attach","dateNow","dt","perfNow","perf","getPerformance","newId","maxLength","random32","chars","getNavigator","maxValue","signed","getRandomValues","Uint32Array","mwcRandom32","mwcRandomSeed","generateW3CId","tmp","hexValues","oct","clockSequenceHi","isTypeof","isUndefined","isNullOrUndefined","isObject","objCreate","AttachEvent","Detach","DetachEvent","_InternalMessageId","_objGetPrototypeOf","_dynamicNames","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","_getInstFunc","currentDynProtoProxy","instFunc","instFuncTable","canAddInst","objProto","visited","protoFunc","_getProtoFunc","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","_instFuncProxy","funcHost","theFunc","baseFuncs","baseProto","_getBaseFuncs","setInstanceFunc","baseInstFuncs","_createDynamicPrototype","dynProtoProxy","_populatePrototype","setInstFuncs","_sanitizeDiagnosticText","msgId","msg","isUserAct","properties","messageId","strProps","getJSON","diagnosticText","dataType","identifier","_messageCount","_messageLogged","DiagnosticLogger","_self","defValue","consoleLoggingLevel","_getConfigValue","telemetryLoggingLevel","maxInternalMessageLimit","enableDebugExceptions","throwInternal","severity","messageKey","WARNING","warnToConsole","logInternalMessage","theConsole","logFunc","resetInternalMessageCount","logMessage","throttleLimitMessage","throttleMessage","payloadDetails","isAsync","accessorDefined","isChildEvt","getCtx","PerfEvent","ParentContextKey","ChildrenContextKey","setCtx","childTime","childEvts","childEvt","exTime","manager","ctx","PerfManager","src","fire","perfEvent","mgrSource","getSource","details","perfMgr","perfEvt","currentActive","ex","defItemCtx","_nextProxy","_hasProcessTelemetry","processTelemetry","_hasSetNext","setNextPlugin","_hasRun","getPlugin","getNext","setNext","nextPlugin","env","itemCtx","doPerf","core","hasRun","diagLog","CRITICAL","sync","_createProxyChain","proxies","lastProxy","thePlugin","newProxy","startAt","proxy","_copyProxyChain","srcPlugins","_copyPluginChain","logger","getCfg","getExtCfg","theConfig","extConfig","extensionConfig","getConfig","theValue","processNext","createNew","ProcessTelemetryContext","_isinitialized","_rootCtx","_nextPlugin","_getTelCtx","isInitialized","setInitialized","currentCtx","rootCtx","_baseTelInit","extensions","pluginChain","getProcessTelContext","initialize","processContext","initPlugins","lastPlugin","extA","extB","bHasProcess","StorageType","FieldType","DistributedTracingModes","_objDefineAccessors","_channelQueue","_arrForEach","queueItem","_checkQueuePriority","ChannelController","_base","queues","getChannelControls","isCookieUseDisabled","channels","_addChannelQueue","_createChannelQueues","initializePlugins","_staticInit","_eventQueue","_channelController","_notificationManager","_perfManager","_isInitialized","BaseCore","_extensions","notificationManager","instrumentationKey","NotificationManager","allExtensions","sortPlugins","coreExtensions","channelExtensions","extPriorities","ext","extPriority","getTransmissionControls","releaseQueue","telemetryItem","iKey","ver","thePlugins","getNotifyMgr","addNotificationListener","removeNotificationListener","eventsSent","eventsDiscarded","reason","eventsSendRequest","sendReason","getPerfMgr","enablePerfMgr","setPerfMgr","eventCnt","EventsDiscardedReason","perfEvtsSendAll","AppInsightsCore","_notifyInvalidEvent","_validateTelemetryItem","pollInternalLogs","interval","diagnosticLogInterval","setInterval","baseType","baseData","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","sanitizeKeyAndAddUniqueness","origLength","DataSanitizer","sanitizeKey","uniqueField","MAX_NAME_LENGTH","padNumber","nameTrunc","sanitizeString","valueTrunc","MAX_STRING_LENGTH","sanitizeUrl","sanitizeInput","MAX_URL_LENGTH","sanitizeMessage","messageTrunc","MAX_MESSAGE_LENGTH","sanitizeException","exceptionTrunc","MAX_EXCEPTION_LENGTH","sanitizeProperties","objForEachKey","MAX_PROPERTY_LENGTH","sanitizeMeasurements","measurements","measure","sanitizeId","MAX_ID_LENGTH","_msgId","inputTrunc","_uaDisallowsSameSiteNone","createDomEvent","Event","initEvent","disableStorage","Util","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","canUseLocalStorage","_getVerifiedStorageObject","LocalStorage","storageType","fail","storage","setItem","getItem","removeItem","isInternalApplicationInsightsEndpoint","endpointUrl","_internalEndpoints","getStorage","getExceptionName","dump","setStorage","removeStorage","_getSessionStorageObject","canUseSessionStorage","SessionStorage","getSessionStorageKeys","getSessionStorage","setSessionStorage","removeSessionStorage","canUseCookies","cookie","disallowsSameSiteNone","_endsWith","setCookie","domainAttrib","secureAttrib","stringToBoolOrDefault","getCookie","cookieName","cookies","deleteCookie","getIEVersion","userAgentStr","myNav","tridentVer","msToTimeSpan","totalms","ms","sec","hour","days","isCrossOriginError","columnNumber","objectTypeDump","propertyValueDump","IsBeaconApiSupported","sendBeacon","getExtension","extension","extIx","NotSpecified","toISOStringForIE8","parseUrl","anchorIdx","UrlHelper","_htmlAnchorIdx","anchorCache","_htmlAnchorElement","tempAnchor","parseHost","getAbsoluteUrl","getPathName","getCompleteUrl","absoluteUrl","inclPort","fullHost","parseFullHost","canIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","includedDomains","correlationHeaderDomains","regex","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","correlationId","CorrelationIdHelper","getCorrelationContextValue","RequestHeaders","correlationIdPrefix","keyValues","keyValue","ParseDependencyPath","commandName","parsedUrl","pathName","Now","timing","navigationStart","GetDuration","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","parse","connectionString","kvPairs","ConnectionStringParser","_FIELDS_SEPARATOR","fields","kv","kvParts","_FIELD_KEY_VALUE_SEPARATOR","endpointsuffix","locationPrefix","ingestionendpoint","aiDataContract","Required","sampleRate","Hidden","Domain","Default","envelopeType","EventData","exceptions","hasFullStack","parsedStack","DataPointType","severityLevel","problemGroup","isManual","Exception","CreateFromInterface","toInterface","CreateSimpleException","typeName","assembly","ExceptionData","outerId","evt","errorType","_getErrorType","_ExceptionDetails","parseStack","frame","totalSizeInBytes","parsedFrame","sizeInBytes","acceptedLeft","acceptedRight","howMany","ExceptionDetails","sourceFrame","_StackFrame","baseSize","StackFrame","metrics","kind","stdDev","Measurement","dataPoint","Metric","MetricData","durationMs","PageView","PageViewData","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","configValue","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","envelopeName","customProperties","systemProperties","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","ContextTagKeys","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_dispatchEvent","evnt","_setValueIf","HashCodeScoreGenerator","_logger","sessionExpirationMs","_SessionManager","sessionRenewalMs","_storageNamePrefix","namePrefix","cookieNameConst","automaticSession","Session","update","initializeAutomaticSession","acquisitionExpired","acquisitionDate","renewalExpired","renewalDate","renew","cookieUpdatedTimestamp","cookieUpdateInterval","backup","initializeAutomaticSessionWithData","sessionData","acq","renewal","idLength","guid","acquisitionExpiry","renewalExpiry","cookieExpiry","setTime","cookieDomain","UTCString","toUTCString","acquisitionSpan","renewalSpan","deviceClass","sdkVersion","sdkExtension","isNewUser","User","userCookieName","cookieSeparator","acqStr","accountAcquisitionDate","newCookie","accountId","authCookie","authUserCookieName","authCookieString","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","validateUserInput","clearAuthenticatedUserContext","traceID","parentID","defaultConfig","application","Application","internal","Internal","sessionManager","device","Device","user","telemetryTrace","session","appId","applySessionContext","sessionContext","app","sesId","applyOperatingSystemContxt","os","applyApplicationContext","build","applyDeviceContext","localId","ip","model","applyInternalContext","agentVersion","snippetVer","sdkSrc","applyLocationContext","applyOperationContext","trace","applyWebContext","web","applyUserContext","authId","cleanUp","Extensions","getDefaultConfig","samplingPercentage","isBrowserLinkTrackingEnabled","PropertiesPlugin","_extensionConfig","_breezeChannel","_processTelemetryInternal","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","cbks","inst","orgEx","hookErrorCb","_getOwner","checkPrototype","owner","newFunc","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","theArgs","rslt","theHook","rm","_objKeys","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","XHRMonitoringState","ajaxData","dependency","_markCount","_getFailedAjaxDiagnosticsMessage","xhr","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","_internalSdkSrc","InstrumentFunc","nav","product"],"mappings":"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ACEA,UAGF,IACE9iD,KAGF,IAAI+iD,EAAU1C,SAAd,GACI0C,GAAWA,EAAf,OACEA,UAGF19C,IA5bAu7C,WAAsB,mBAAQtsC,EAAGjP,EAAX,Q,6GoE5KpB29C,EAAa,CAAC,CAChBrsC,KAAM,IACNssC,QAAS,mNACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,yBACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,mBACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,6DACR,CACDtsC,KAAM,IACNssC,QAAS,+EACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,KACNssC,QAAS,mBACR,CACDtsC,KAAM,KACNssC,QAAS,mBACR,CACDtsC,KAAM,IACNssC,QAAS,2LACR,CACDtsC,KAAM,IACNssC,QAAS,2CACR,CACDtsC,KAAM,IACNssC,QAAS,iGACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,IACNssC,QAAS,+HACR,CACDtsC,KAAM,IACNssC,QAAS,qCACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,IACNssC,QAAS,mHACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,uDACR,CACDtsC,KAAM,IACNssC,QAAS,uGACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,yQACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,mEACR,CACDtsC,KAAM,IACNssC,QAAS,2CACR,CACDtsC,KAAM,IACNssC,QAAS,6GACR,CACDtsC,KAAM,IACNssC,QAAS,6GACR,CACDtsC,KAAM,IACNssC,QAAS,iGACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,mNACR,CACDtsC,KAAM,IACNssC,QAAS,uDACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,mEACR,CACDtsC,KAAM,IACNssC,QAAS,qCACR,CACDtsC,KAAM,IACNssC,QAAS,iGACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,IACNssC,QAAS,yNACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,yBACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,mBACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,6DACR,CACDtsC,KAAM,IACNssC,QAAS,qFACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,KACNssC,QAAS,mBACR,CACDtsC,KAAM,IACNssC,QAAS,iMACR,CACDtsC,KAAM,IACNssC,QAAS,2CACR,CACDtsC,KAAM,IACNssC,QAAS,iGACR,CACDtsC,KAAM,IACNssC,QAAS,iGACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,+HACR,CACDtsC,KAAM,IACNssC,QAAS,2CACR,CACDtsC,KAAM,IACNssC,QAAS,2FACR,CACDtsC,KAAM,IACNssC,QAAS,yHACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,uDACR,CACDtsC,KAAM,IACNssC,QAAS,6GACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IACNssC,QAAS,yQACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,KACNssC,QAAS,aACR,CACDtsC,KAAM,IA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","file":"static/js/6.4fda56c9.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","module.exports = require(\"regenerator-runtime\");\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n\n return ele;\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-57a3a7a3.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-57a3a7a3.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","import { Component } from 'react';\nimport { jsx, keyframes, ClassNames } from '@emotion/core';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { g as getBoundingClientObj, a as getScrollParent, b as getScrollTop, c as animatedScrollTo, s as scrollTo } from './utils-06b0d5a4.browser.esm.js';\nimport _css from '@emotion/css';\nimport AutosizeInput from 'react-input-autosize';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\" + placement + \"\\\".\");\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _ref3[alignToControl(placement)] = '100%', _ref3.backgroundColor = colors.neutral0, _ref3.borderRadius = borderRadius, _ref3.boxShadow = '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)', _ref3.marginBottom = spacing.menuGutter, _ref3.marginTop = spacing.menuGutter, _ref3.position = 'absolute', _ref3.width = '100%', _ref3.zIndex = 1, _ref3;\n}; // NOTE: internal only\n\nvar MenuPlacer =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _extends({}, _this.props, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n var _proto = MenuPlacer.prototype;\n\n _proto.render = function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n };\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextTypes = {\n getPortalPlacement: PropTypes.func\n};\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className)\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n return jsx(\"div\", {\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: baseUnit * 2 + \"px \" + baseUnit * 3 + \"px\",\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal =\n/*#__PURE__*/\nfunction (_Component2) {\n _inheritsLoose(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _Component2.call.apply(_Component2, [this].concat(args)) || this;\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = MenuPortal.prototype;\n\n _proto2.getChildContext = function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n } // callback for occassions where the menu must \"flip\"\n ;\n\n _proto2.render = function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", {\n css: getStyles('menuPortal', state)\n }, children);\n return appendTo ? createPortal(menuWrapper, appendTo) : menuWrapper;\n };\n\n return MenuPortal;\n}(Component);\nMenuPortal.childContextTypes = {\n getPortalPlacement: PropTypes.func\n};\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends$1({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: spacing.baseUnit / 2 + \"px \" + spacing.baseUnit * 2 + \"px\",\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", {\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n return jsx(\"div\", {\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, children);\n};\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\"\n} : {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\"\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutPropertiesLoose(_ref, [\"size\"]);\n\n return jsx(\"svg\", _extends$2({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends$2({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends$2({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends$2({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject());\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css:\n /*#__PURE__*/\n _css({\n animation: loadingDotAnimations + \" 1s ease-in-out \" + delay + \"ms infinite;\",\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0xJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \" + colors.primary : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends$3({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", {\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, jsx(Heading, _extends$4({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = _objectWithoutPropertiesLoose$1(props, [\"className\", \"cx\", \"getStyles\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", _extends$4({\n css: getStyles('groupHeading', _extends$4({\n theme: theme\n }, cleanProps)),\n className: cx({\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nfunction _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n label: 'input',\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = _objectWithoutPropertiesLoose$2(_ref2, [\"className\", \"cx\", \"getStyles\", \"innerRef\", \"isHidden\", \"isDisabled\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", {\n css: getStyles('input', _extends$5({\n theme: theme\n }, props))\n }, jsx(AutosizeInput, _extends$5({\n className: cx({\n input: true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nfunction _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", innerProps, children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _extends$6({}, innerProps, {\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _extends$6({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className))\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nfunction _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: spacing.baseUnit * 2 + \"px \" + spacing.baseUnit * 3 + \"px\",\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled && (isSelected ? colors.primary : colors.primary50)\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$7({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n\nfunction _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$8({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nfunction _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \" + spacing.baseUnit * 2 + \"px)\",\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$9({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nfunction _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _extends$a({}, components, props.components);\n};\n\nexport { MenuPlacer as M, containerCSS as a, css as b, clearIndicatorCSS as c, dropdownIndicatorCSS as d, groupHeadingCSS as e, indicatorSeparatorCSS as f, groupCSS as g, inputCSS as h, indicatorsContainerCSS as i, loadingMessageCSS as j, menuListCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuPortalCSS as n, multiValueCSS as o, multiValueLabelCSS as p, multiValueRemoveCSS as q, noOptionsMessageCSS as r, optionCSS as s, placeholderCSS as t, css$1 as u, valueContainerCSS as v, defaultComponents as w, exportedEqual as x, components as y };\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch };","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Welcome to @reach/tooltip!\n *\n * When the user's mouse or focus rests on an element, a non-interactive popup\n * is displayed near it.\n *\n * Quick definitions:\n *\n * - \"on rest\" or \"rested on\": describes when the element receives mouse hover\n * after a short delay (and hopefully soon, touch longpress).\n *\n * - \"activation\": describes a mouse click, keyboard enter, or keyboard space.\n *\n * Only one tooltip can be visible at a time, so we use a global state chart to\n * describe the various states and transitions between states that are\n * possible. With all the timeouts involved with tooltips it's important to\n * \"make impossible states impossible\" with a state machine.\n *\n * It's also okay to use these module globals because you don't server render\n * tooltips. None of the state is changed outside of user events.\n *\n * There are a few features that are important to understand.\n *\n * 1. Tooltips don't show up until the user has rested on one, we don't\n * want tooltips popupping up as you move your mouse around the page.\n *\n * 2. Once any tooltip becomes visible, other tooltips nearby should skip\n * resting and display immediately.\n *\n * 3. Tooltips stick around for a little bit after blur/mouseleave.\n *\n * TODO: Research longpress tooltips on Android, iOS\n * - Probably want to position it by default above, since your thumb is\n * below and would cover it\n * - I'm thinking after longpress, display the tooltip and cancel any\n * click events. Then on touchend, so they can read it display the\n * tooltip for a little while longer in case their hand was\n * obstructing the tooltip.\n *\n * @see Docs https://reach.tech/tooltip\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/tooltip\n * @see WAI-ARIA https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n */\n\nimport * as React from \"react\";\nimport { useId } from \"@reach/auto-id\";\nimport {\n forwardRefWithAs,\n getOwnerDocument,\n getDocumentDimensions,\n makeId,\n useCheckStyles,\n useForkedRef,\n wrapEvent,\n warning,\n} from \"@reach/utils\";\nimport { Portal } from \"@reach/portal\";\nimport { VisuallyHidden } from \"@reach/visually-hidden\";\nimport { useRect } from \"@reach/rect\";\nimport PropTypes from \"prop-types\";\n\nconst MOUSE_REST_TIMEOUT = 100;\nconst LEAVE_TIMEOUT = 500;\n\n////////////////////////////////////////////////////////////////////////////////\n// States\n\n// Nothing goin' on\nconst IDLE = \"IDLE\";\n\n// We're considering showing the tooltip, but we're gonna wait a sec\nconst FOCUSED = \"FOCUSED\";\n\n// It's on!\nconst VISIBLE = \"VISIBLE\";\n\n// Focus has left, but we want to keep it visible for a sec\nconst LEAVING_VISIBLE = \"LEAVING_VISIBLE\";\n\n// The user clicked the tool, so we want to hide the thing, we can't just use\n// IDLE because we need to ignore mousemove, etc.\nconst DISMISSED = \"DISMISSED\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Events\n\nconst BLUR = \"BLUR\";\nconst FOCUS = \"FOCUS\";\nconst GLOBAL_MOUSE_MOVE = \"GLOBAL_MOUSE_MOVE\";\nconst MOUSE_DOWN = \"MOUSE_DOWN\";\nconst MOUSE_ENTER = \"MOUSE_ENTER\";\nconst MOUSE_LEAVE = \"MOUSE_LEAVE\";\nconst MOUSE_MOVE = \"MOUSE_MOVE\";\nconst REST = \"REST\";\nconst SELECT_WITH_KEYBOARD = \"SELECT_WITH_KEYBOARD\";\nconst TIME_COMPLETE = \"TIME_COMPLETE\";\n\nconst chart: StateChart = {\n initial: IDLE,\n states: {\n [IDLE]: {\n enter: clearContextId,\n on: {\n [MOUSE_ENTER]: FOCUSED,\n [FOCUS]: VISIBLE,\n },\n },\n [FOCUSED]: {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: {\n [MOUSE_MOVE]: FOCUSED,\n [MOUSE_LEAVE]: IDLE,\n [MOUSE_DOWN]: DISMISSED,\n [BLUR]: IDLE,\n [REST]: VISIBLE,\n },\n },\n [VISIBLE]: {\n on: {\n [FOCUS]: FOCUSED,\n [MOUSE_ENTER]: FOCUSED,\n [MOUSE_LEAVE]: LEAVING_VISIBLE,\n [BLUR]: LEAVING_VISIBLE,\n [MOUSE_DOWN]: DISMISSED,\n [SELECT_WITH_KEYBOARD]: DISMISSED,\n [GLOBAL_MOUSE_MOVE]: LEAVING_VISIBLE,\n },\n },\n [LEAVING_VISIBLE]: {\n enter: startLeavingVisibleTimer,\n leave: () => {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: {\n [MOUSE_ENTER]: VISIBLE,\n [FOCUS]: VISIBLE,\n [TIME_COMPLETE]: IDLE,\n },\n },\n [DISMISSED]: {\n leave: () => {\n // allows us to come on back later w/o entering something else first\n context.id = null;\n },\n on: {\n [MOUSE_LEAVE]: IDLE,\n [BLUR]: IDLE,\n },\n },\n },\n};\n\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\nlet context: StateContext = { id: null };\nlet state = chart.initial;\n\n////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that'd be cool! But it doesn't.\nlet subscriptions: Function[] = [];\n\nfunction subscribe(fn: Function) {\n subscriptions.push(fn);\n return () => {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach((fn) => fn(state, context));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n\n// Manages when the user \"rests\" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\nlet restTimeout: number;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(() => transition(REST), MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n}\n\n// Manages the delay to hide the tooltip after rest leaves.\nlet leavingVisibleTimer: number;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(\n () => transition(TIME_COMPLETE),\n LEAVE_TIMEOUT\n );\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n}\n\n// allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\nfunction clearContextId() {\n context.id = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\nfunction useTooltip({\n id: idProp,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onFocus,\n onBlur,\n onKeyDown,\n onMouseDown,\n ref: forwardedRef,\n DEBUG_STYLE,\n}: {\n ref?: React.Ref;\n DEBUG_STYLE?: boolean;\n} & React.HTMLAttributes = {}): [TriggerParams, TooltipParams, boolean] {\n let id = String(useId(idProp));\n\n let [isVisible, setIsVisible] = React.useState(\n DEBUG_STYLE\n ? true\n : id === null\n ? false\n : context.id === id && state === VISIBLE\n );\n\n // hopefully they always pass a ref if they ever pass one\n let ownRef = React.useRef(null);\n\n let ref = useForkedRef(forwardedRef as any, ownRef); // TODO: Fix in utils\n let triggerRect = useRect(ownRef, { observe: isVisible });\n\n React.useEffect(() => {\n return subscribe(() => {\n if (\n context.id === id &&\n (state === VISIBLE || state === LEAVING_VISIBLE)\n ) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n });\n }, [id]);\n\n useCheckStyles(\"tooltip\");\n\n React.useEffect(() => {\n let ownerDocument = getOwnerDocument(ownRef.current)!;\n function listener(event: KeyboardEvent) {\n if (\n (event.key === \"Escape\" || event.key === \"Esc\") &&\n state === VISIBLE\n ) {\n transition(SELECT_WITH_KEYBOARD);\n }\n }\n ownerDocument.addEventListener(\"keydown\", listener);\n return () => ownerDocument.removeEventListener(\"keydown\", listener);\n }, []);\n\n function handleMouseEnter() {\n transition(MOUSE_ENTER, { id });\n }\n\n function handleMouseMove() {\n transition(MOUSE_MOVE, { id });\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n transition(FOCUS, { id });\n }\n\n function handleMouseLeave() {\n transition(MOUSE_LEAVE);\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (context.id !== id) return;\n transition(BLUR);\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (context.id !== id) return;\n transition(MOUSE_DOWN);\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n transition(SELECT_WITH_KEYBOARD);\n }\n }\n\n let trigger: TriggerParams = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n \"aria-describedby\": isVisible ? makeId(\"tooltip\", id) : undefined,\n \"data-reach-tooltip-trigger\": \"\",\n ref,\n onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapEvent(onMouseMove, handleMouseMove),\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n onMouseLeave: wrapEvent(onMouseLeave, handleMouseLeave),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown),\n };\n\n let tooltip: TooltipParams = {\n id,\n triggerRect,\n isVisible,\n };\n\n return [trigger, tooltip, isVisible];\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\nconst Tooltip = forwardRefWithAs(function (\n {\n children,\n label,\n // TODO: Remove `ariaLabel` prop in 1.0 and just use `aria-label`\n ariaLabel: DEPRECATED_ariaLabel,\n id,\n DEBUG_STYLE,\n ...props\n },\n forwardedRef\n) {\n let child = React.Children.only(children) as any;\n\n warning(\n !DEPRECATED_ariaLabel,\n \"The `ariaLabel prop is deprecated and will be removed from @reach/tooltip in a future version of Reach UI. Please use `aria-label` instead.\"\n );\n\n // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger's ref and events\n let [trigger, tooltip] = useTooltip({\n id,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n onMouseDown: child.props.onMouseDown,\n ref: child.ref,\n DEBUG_STYLE,\n });\n return (\n \n {React.cloneElement(child, trigger as any)}\n \n \n );\n});\n\ntype TooltipProps = {\n children: React.ReactNode;\n DEBUG_STYLE?: boolean;\n} & Omit;\n\nif (__DEV__) {\n Tooltip.displayName = \"Tooltip\";\n Tooltip.propTypes = {\n children: PropTypes.node.isRequired,\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string,\n };\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\nconst TooltipPopup = forwardRefWithAs(\n function TooltipPopup(\n {\n // could use children but we want to encourage simple strings\n label,\n // TODO: Remove `ariaLabel` prop in 1.0 and just use `aria-label`\n ariaLabel: DEPRECATED_ariaLabel,\n isVisible,\n id,\n ...props\n },\n forwardRef\n ) {\n return isVisible ? (\n \n \n \n ) : null;\n }\n);\n\ntype TooltipPopupProps = {\n children?: React.ReactNode;\n} & TooltipContentProps;\n\nif (__DEV__) {\n TooltipPopup.displayName = \"TooltipPopup\";\n TooltipPopup.propTypes = {\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string,\n position: PropTypes.func,\n };\n}\n\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\nconst TooltipContent = forwardRefWithAs(\n function TooltipContent(\n {\n // TODO: Remove `ariaLabel` prop in 1.0 and just use `aria-label`\n ariaLabel,\n \"aria-label\": realAriaLabel,\n as: Comp = \"div\",\n id,\n isVisible,\n label,\n position = positionDefault,\n style,\n triggerRect,\n ...props\n },\n forwardedRef\n ) {\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n // When an app passes an `aria-label`, we actually want to implement\n // `role=\"tooltip\"` on a visually hidden element inside of the trigger.\n // In these cases we want the screen reader user to know both the content in\n // the tooltip, but also the content in the badge. For screen reader users,\n // the only content announced to them is whatever is in the tooltip.\n let hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n\n let ownRef = React.useRef(null);\n let ref = useForkedRef(forwardedRef, ownRef);\n let tooltipRect = useRect(ownRef, { observe: isVisible });\n return (\n \n \n {label}\n \n {hasAriaLabel && (\n \n {realAriaLabel || ariaLabel}\n \n )}\n \n );\n }\n);\n\ntype TooltipContentProps = {\n ariaLabel?: string;\n position?: Position;\n label: React.ReactNode;\n isVisible?: boolean;\n triggerRect: DOMRect | null;\n};\n\nif (__DEV__) {\n TooltipContent.displayName = \"TooltipContent\";\n TooltipContent.propTypes = {};\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// feels awkward when it's perfectly aligned w/ the trigger\nconst OFFSET = 8;\n\nfunction getStyles(\n position: Position,\n triggerRect: PRect,\n tooltipRect: PRect\n): React.CSSProperties {\n let haventMeasuredTooltipYet = !tooltipRect;\n if (haventMeasuredTooltipYet) {\n return { visibility: \"hidden\" };\n }\n return position(triggerRect, tooltipRect);\n}\n\nlet positionDefault: Position = (triggerRect, tooltipRect) => {\n let { width: windowWidth, height: windowHeight } = getDocumentDimensions();\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n let collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + OFFSET,\n left: triggerRect.left - tooltipRect.width < 0,\n };\n\n let directionRight = collisions.right && !collisions.left;\n let directionUp = collisions.bottom && !collisions.top;\n\n return {\n left: directionRight\n ? `${triggerRect.right - tooltipRect.width + window.pageXOffset}px`\n : `${triggerRect.left + window.pageXOffset}px`,\n top: directionUp\n ? `${\n triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset\n }px`\n : `${\n triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset\n }px`,\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Finds the next state from the current state + action. If the chart doesn't\n * describe that transition, it will throw.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\nconst transition: Transition = (event, payload) => {\n let stateDef = chart.states[state];\n let nextState = stateDef && stateDef.on && stateDef.on[event];\n\n // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log('no transition taken')\n\n if (!nextState) {\n return;\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave();\n }\n\n if (payload) {\n context = payload;\n }\n\n let nextDef = chart.states[nextState];\n if (nextDef && nextDef.enter) {\n nextDef.enter();\n }\n\n state = nextState;\n notify();\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// TYPES\n\ninterface TriggerParams {\n \"aria-describedby\"?: string | undefined;\n \"data-reach-tooltip-trigger\": string;\n ref: React.Ref;\n onMouseEnter: React.ReactEventHandler;\n onMouseMove: React.ReactEventHandler;\n onFocus: React.ReactEventHandler;\n onBlur: React.ReactEventHandler;\n onMouseLeave: React.ReactEventHandler;\n onKeyDown: React.ReactEventHandler;\n onMouseDown: React.ReactEventHandler;\n}\n\ninterface TooltipParams {\n id: string;\n triggerRect: DOMRect | null;\n isVisible: boolean;\n}\n\ntype Transition = (event: MachineEventType, payload?: any) => any;\n\ntype State = \"IDLE\" | \"FOCUSED\" | \"VISIBLE\" | \"LEAVING_VISIBLE\" | \"DISMISSED\";\n\ntype MachineEventType =\n | \"BLUR\"\n | \"FOCUS\"\n | \"GLOBAL_MOUSE_MOVE\"\n | \"MOUSE_DOWN\"\n | \"MOUSE_ENTER\"\n | \"MOUSE_LEAVE\"\n | \"MOUSE_MOVE\"\n | \"REST\"\n | \"SELECT_WITH_KEYBOARD\"\n | \"TIME_COMPLETE\";\n\ninterface StateChart {\n initial: State;\n states: {\n [key in State]?: {\n enter?: Function;\n leave?: Function;\n on: {\n [key in MachineEventType]?: State;\n };\n };\n };\n}\n\ntype StateContext = {\n id?: string | null;\n};\n\ntype Position = (\n targetRect?: PRect | null,\n popoverRect?: PRect | null\n) => React.CSSProperties;\n\ntype PRect = Partial & {\n readonly bottom: number;\n readonly height: number;\n readonly left: number;\n readonly right: number;\n readonly top: number;\n readonly width: number;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Exports\n\nexport default Tooltip;\nexport type {\n Position,\n TooltipContentProps,\n TooltipParams,\n TooltipPopupProps,\n TooltipProps,\n TriggerParams,\n};\nexport { MOUSE_REST_TIMEOUT, LEAVE_TIMEOUT, Tooltip, TooltipPopup, useTooltip };\n","// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\" + applyPrefixToName(prefix, key));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if (typeof value === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to, duration, callback) {\n if (duration === void 0) {\n duration = 200;\n }\n\n if (callback === void 0) {\n callback = noop;\n }\n\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\nexport { getScrollParent as a, getScrollTop as b, animatedScrollTo as c, isMobileDevice as d, cleanValue as e, scrollIntoView as f, getBoundingClientObj as g, classNames as h, isTouchCapable as i, isDocumentElement as j, handleInputChange as k, noop as n, scrollTo as s };\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\n\r\n// To address compile time errors declaring these here\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\ndeclare var __extends:(d: any, b: any) => any;\r\ndeclare var __assign:(t: any) => any;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal \r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal(): Window {\r\n if (typeof globalThis !== strShimUndefined && globalThis) {\r\n return globalThis;\r\n }\r\n\r\n if (typeof self !== strShimUndefined && self) {\r\n return self;\r\n }\r\n\r\n if (typeof window !== strShimUndefined && window) {\r\n return window;\r\n }\r\n\r\n if (typeof global !== strShimUndefined && global) {\r\n return global;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = Object[\"create\"];\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj); \r\n }\r\n if (obj == null) { \r\n return {}; \r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) { \r\n throw new TypeError('Object prototype may only be an Object:' + obj); \r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)(); \r\n}\r\n\r\nexport function __assignFn(t: any) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (Object[strShimPrototype][strShimHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar __extendStaticsFn = function(d: any, b: any): any {\r\n __extendStaticsFn = Object[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) { d.__proto__ = b; }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) { \r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return __extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n __extendStaticsFn(d, b);\r\n function __() { this.constructor = d; }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nlet globalObj:any = getGlobal() || {};\r\n\r\n// tslint:disable: only-arrow-functions\r\n(function (root: any, assignFn, extendsFn) {\r\n // Assign the globally scoped versions of the functions -- used when consuming individual ts files\r\n // If check is to support NativeScript where these are marked as readonly\r\n if (!root.__assign) {\r\n root.__assign = (Object as any).assign || assignFn;\r\n }\r\n if (!root.__extends) {\r\n root.__extends = extendsFn;\r\n }\r\n})(globalObj, __assignFn, __extendsFn);\r\n\r\n// Assign local variables that will be used for embedded scenarios, if check is to support NativeScript where these are marked as readonly\r\nif (!__assign) { __assign = globalObj.__assign; }\r\nif (!__extends) { __extends = globalObj.__extends; }\r\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-table.production.min.js')\n} else {\n module.exports = require('./dist/react-table.development.js')\n}\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n step = -step;\n start = Math.ceil(start * step);\n stop = Math.floor(stop * step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import React from 'react';\nimport warning from 'warning';\n\nimport { DiscreteScale } from '../scales/DiscreteScale';\nimport { HandleItem } from '../types';\n\nexport const prfx = 'react-compound-slider:';\n\nexport function getSortByVal(reversed: boolean = false) {\n return function sortByVal(a: HandleItem, b: HandleItem) {\n if (a.val > b.val) {\n return reversed ? -1 : 1;\n }\n\n if (b.val > a.val) {\n return reversed ? 1 : -1;\n }\n\n return 0;\n };\n}\n\nexport function getUpdatedHandles(\n handles: HandleItem[],\n updateKey: string,\n updateValue: number,\n reversed: boolean = false\n) {\n const index = handles.findIndex(v => v.key === updateKey);\n\n if (index !== -1) {\n const { key, val } = handles[index];\n\n if (val === updateValue) {\n return handles;\n }\n\n return [\n ...handles.slice(0, index),\n { key, val: updateValue },\n ...handles.slice(index + 1),\n ].sort(getSortByVal(reversed));\n }\n\n return handles;\n}\n\nexport function getSliderDomain(slider: Element | null, vertical: boolean) {\n if (!slider) {\n return [0, 0];\n }\n\n const s = slider.getBoundingClientRect();\n\n const d0 = vertical ? s.top : s.left;\n const d1 = vertical ? s.bottom : s.right;\n\n return [d0, d1];\n}\n\nexport function isNotValidTouch({\n type = '',\n touches,\n}: {\n type: string;\n touches: TouchEvent['touches'];\n}) {\n return (\n !touches ||\n touches.length > 1 ||\n (type.toLowerCase() === 'touchend' && touches.length > 0)\n );\n}\n\nexport function getTouchPosition(\n vertical: boolean,\n e: React.TouchEvent | TouchEvent\n) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\n\nexport function getHandles(\n values: ReadonlyArray = [],\n reversed: boolean,\n valueToStep: DiscreteScale,\n warn: boolean\n) {\n let changes = 0;\n\n const handles = values\n .map(x => {\n const val = valueToStep.getValue(x);\n\n if (x !== val) {\n changes += 1;\n warning(\n !warn,\n `${prfx} Invalid value encountered. Changing ${x} to ${val}.`\n );\n }\n\n return val;\n })\n .map((val, i) => ({ key: `$$-${i}`, val }))\n .sort(getSortByVal(reversed));\n\n return { handles, changes };\n}\n","import { getUpdatedHandles } from './utils';\nimport { HandleItem } from '../types';\n\n// default mode\nexport function mode1(_: HandleItem[], next: HandleItem[]) {\n return next;\n}\n\n// prevent duplicate values and crossing\nexport function mode2(curr: HandleItem[], next: HandleItem[]) {\n for (let i = 0; i < curr.length; i++) {\n if (curr[i].key !== next[i].key) {\n return curr;\n }\n\n if (next[i + 1] && next[i].val === next[i + 1].val) {\n return curr;\n }\n }\n\n return next;\n}\n\n// pushable mode\nexport function mode3(\n curr: HandleItem[],\n next: HandleItem[],\n step: number,\n reversed: boolean,\n getValue: (x: number) => number\n): HandleItem[] {\n let indexForMovingHandle = -1;\n let handleMoveIsPositive = true;\n\n for (let i = 0; i < curr.length; i++) {\n const c = curr[i];\n const n = next[i];\n\n // make sure keys are in same order if not return curr\n if (!n || n.key !== c.key) {\n return curr;\n } else if (n.val !== c.val) {\n indexForMovingHandle = i;\n handleMoveIsPositive = n.val - c.val > 0;\n }\n }\n\n // nothing has changed (shouldn't happen but just in case).\n if (indexForMovingHandle === -1) {\n return curr;\n } else {\n const increment = handleMoveIsPositive ? step : -step;\n\n for (let i = 0; i < next.length; i++) {\n const n0 = next[i];\n const n1 = next[i + 1];\n\n if (n1 && n0.val === n1.val) {\n if (i === indexForMovingHandle) {\n const newStep = n1.val + increment;\n if (getValue(newStep) === newStep) {\n const clone = getUpdatedHandles(\n next,\n n1.key,\n n1.val + increment,\n reversed\n );\n const check = mode3(next, clone, step, reversed, getValue);\n\n if (check === next) {\n return curr;\n } else {\n return check;\n }\n } else {\n return curr;\n }\n } else {\n const newStep = n0.val + increment;\n if (getValue(newStep) === newStep) {\n const clone = getUpdatedHandles(\n next,\n n0.key,\n n0.val + increment,\n reversed\n );\n const check = mode3(next, clone, step, reversed, getValue);\n\n if (check === next) {\n return curr;\n } else {\n return check;\n }\n } else {\n return curr;\n }\n }\n }\n }\n }\n\n return next;\n}\n","export function callAll(...fns: (((e: T) => void) | undefined)[]) {\n return (e: T) => {\n return fns.forEach(fn => fn && fn(e));\n };\n}\n","import React, { Component } from 'react';\nimport { callAll } from '../utils';\n\nimport { OtherProps } from '../types';\nimport { RailProps } from './types';\n\nconst NOOP = () => ({ value: 0, percent: 0 });\n\nexport class Rail extends Component {\n getRailProps = (props: OtherProps = {}) => {\n const { emitMouse, emitTouch } = this.props;\n\n return {\n ...props,\n onMouseDown: callAll>(\n props && props.onMouseDown,\n emitMouse\n ),\n onTouchStart: callAll(props && props.onTouchStart, emitTouch),\n };\n };\n\n render() {\n const {\n getRailProps,\n props: { getEventData, activeHandleID = '', children },\n } = this;\n\n const renderedChildren = children({\n getEventData: getEventData || NOOP,\n activeHandleID,\n getRailProps,\n });\n return renderedChildren && React.Children.only(renderedChildren);\n }\n}\n","import React, { Component } from 'react';\nimport { callAll } from '../utils';\n\nimport { OtherProps } from '../types';\nimport { HandlesProps } from './types';\n\nexport class Handles extends Component {\n autofocus = (e: React.MouseEvent) => {\n if (e.target instanceof HTMLElement) {\n e.target.focus();\n }\n };\n\n getHandleProps = (id: string, props: OtherProps = {}) => {\n const { emitKeyboard, emitMouse, emitTouch } = this.props;\n\n return {\n ...props,\n onKeyDown: callAll>(\n props && props.onKeyDown,\n (e: React.KeyboardEvent) => emitKeyboard && emitKeyboard(e, id)\n ),\n onMouseDown: callAll>(\n props && props.onMouseDown,\n this.autofocus,\n (e: React.MouseEvent) => emitMouse && emitMouse(e, id)\n ),\n onTouchStart: callAll>(\n props && props.onTouchStart,\n (e: React.TouchEvent) => emitTouch && emitTouch(e, id)\n ),\n };\n };\n\n render() {\n const {\n getHandleProps,\n props: { activeHandleID = '', children, handles = [] },\n } = this;\n\n const renderedChildren = children({\n handles,\n activeHandleID,\n getHandleProps,\n });\n\n return renderedChildren && React.Children.only(renderedChildren);\n }\n}\n","import { ticks } from 'd3-array';\n\nimport { Interpolator } from '../types';\n\nexport class LinearScale {\n interpolator: Interpolator | null;\n domain: number[] = [0, 1];\n range: number[] = [0, 1];\n\n constructor() {\n this.domain = [0, 1];\n this.range = [0, 1];\n this.interpolator = null;\n }\n\n createInterpolator(domain: number[], range: number[]) {\n const d0 = domain[0];\n const d1 = domain[1];\n\n const r0 = range[0];\n const r1 = range[1];\n\n if (d1 < d0) {\n return (x: number) =>\n this.interpolateValue(r1, r0)(this.deinterpolateValue(d1, d0)(x));\n } else {\n return (x: number) =>\n this.interpolateValue(r0, r1)(this.deinterpolateValue(d0, d1)(x));\n }\n }\n\n interpolateValue(a: number, b: number) {\n return (\n (a = +a),\n (b -= a),\n function i(t: number) {\n return a + b * t;\n }\n );\n }\n\n deinterpolateValue(a: number, b: number) {\n return (b -= a = +a) ? (x: number) => (x - a) / b : () => b;\n }\n\n rescale() {\n this.interpolator = null;\n\n return this;\n }\n\n getValue(x: number) {\n const { domain, range } = this;\n\n return (\n this.interpolator ||\n (this.interpolator = this.createInterpolator(domain, range))\n )(+x);\n }\n\n setDomain(val: number[]) {\n this.domain = [val[0], val[1]];\n\n this.rescale();\n\n return this;\n }\n\n getDomain() {\n return this.domain;\n }\n\n setRange(val: number[]) {\n this.range = [val[0], val[1]];\n\n return this;\n }\n\n getRange() {\n return this.range;\n }\n\n getTicks(count: number) {\n const d = this.domain;\n return ticks(d[0], d[d.length - 1], count ? count : 10);\n }\n}\n","import React, { Component } from 'react';\n\nimport { TicksProps } from './types';\nimport { LinearScale } from '../scales/LinearScale';\n\nconst defaultGetEventData = () => ({ value: 0, percent: 0 });\n\nexport class Ticks extends Component {\n public render() {\n const {\n children,\n values,\n scale = new LinearScale(),\n count = 10,\n getEventData = defaultGetEventData,\n activeHandleID = '',\n } = this.props;\n\n const ticks = (values ? values : scale.getTicks(count)).map((value) => ({\n id: `$$-${value}`,\n value,\n percent: scale.getValue(value),\n }));\n\n const renderedChildren = children({ getEventData, activeHandleID, ticks });\n return renderedChildren && React.Children.only(renderedChildren);\n }\n}\n","import React, { Component } from 'react';\n\nimport { callAll } from '../utils';\nimport { LinearScale } from '../scales/LinearScale';\nimport { TracksProps } from './types';\nimport { OtherProps } from '../types';\n\nconst defaultGetEventData = () => ({ value: 0, percent: 0 });\n\nexport class Tracks extends Component {\n getTrackProps = (props?: OtherProps) => {\n const { emitMouse, emitTouch } = this.props;\n\n return {\n ...(props || {}),\n onMouseDown: callAll>(\n props && props.onMouseDown,\n emitMouse\n ),\n onTouchStart: callAll>(\n props && props.onTouchStart,\n emitTouch\n ),\n };\n };\n\n render() {\n const {\n getTrackProps,\n props: {\n children,\n left = true,\n right = true,\n scale = new LinearScale(),\n handles = [],\n getEventData = defaultGetEventData,\n activeHandleID = '',\n },\n } = this;\n\n const domain = scale.getDomain();\n const tracks = [];\n\n for (let i = 0; i < handles.length + 1; i++) {\n let source = handles[i - 1];\n let target = handles[i];\n\n if (i === 0 && left === true) {\n source = { id: '$', value: domain[0], percent: 0 };\n } else if (i === handles.length && right === true) {\n target = { id: '$', value: domain[1], percent: 100 };\n }\n\n if (source && target) {\n tracks.push({\n id: `${source.id}-${target.id}`,\n source,\n target,\n });\n }\n }\n\n const renderedChildren = children({\n getEventData,\n activeHandleID,\n tracks,\n getTrackProps,\n });\n\n return renderedChildren && React.Children.only(renderedChildren);\n }\n}\n","function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport class DiscreteScale {\n step: number = 1;\n domain: number[] = [0, 1];\n range: number[] = [0, 1];\n\n setDomain = (val: number[]) => {\n this.domain = [val[0], val[1]];\n\n return this;\n };\n\n setRange = (val: number[]) => {\n this.range = [val[0], val[1]];\n\n return this;\n };\n\n setStep = (val: number) => {\n this.step = val;\n\n return this;\n };\n\n getValue = (x: number) => {\n const {\n domain: [d0, d1],\n range: [r0, r1],\n step,\n } = this;\n\n const p = (clamp(x, d0, d1) - d0) / (d1 - d0);\n const b = step * Math.round((p * (r1 - r0)) / step) + r0;\n\n return clamp(b, r0 < r1 ? r0 : r1, r1 > r0 ? r1 : r0);\n };\n}\n","import React, { PureComponent, isValidElement } from 'react';\nimport warning from 'warning';\nimport { mode1, mode2, mode3 } from './modes';\nimport {\n isNotValidTouch,\n getTouchPosition,\n getUpdatedHandles,\n getSliderDomain,\n getHandles,\n prfx,\n} from './utils';\nimport { Rail } from '../Rail';\nimport { Handles } from '../Handles';\nimport { Ticks } from '../Ticks';\nimport { Tracks } from '../Tracks';\nimport { LinearScale } from '../scales/LinearScale';\nimport { DiscreteScale } from '../scales/DiscreteScale';\n\nimport { SliderProps, SliderState } from './types';\nimport { HandleItem } from '../types';\n\nconst isBrowser =\n typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst noop = () => {};\n\nconst compare = (b: any[]) => (m: any, d: any, i: number) => m && b[i] === d;\n\nconst equal = (a: any, b: any) => {\n return a === b || (a.length === b.length && a.reduce(compare(b), true));\n};\n\ninterface RCSComponent {\n type: {\n name: 'Rail' | 'Handles' | 'Ticks' | 'Tracks';\n };\n}\n\nconst isRCSComponent = (item: React.ReactNode): item is RCSComponent => {\n if (!isValidElement(item)) {\n return false;\n }\n\n const type = (item as RCSComponent).type;\n const name = type ? type.name : '';\n\n return (\n name === Handles.name ||\n name === Rail.name ||\n name === Ticks.name ||\n name === Tracks.name\n );\n};\n\nconst getNextValue = (\n curr: number,\n step: number,\n domain: ReadonlyArray,\n reversed: boolean\n) => {\n const newVal = reversed ? curr - step : curr + step;\n return reversed ? Math.max(domain[0], newVal) : Math.min(domain[1], newVal);\n};\n\nconst getPrevValue = (\n curr: number,\n step: number,\n domain: ReadonlyArray,\n reversed: boolean\n) => {\n const newVal = reversed ? curr + step : curr - step;\n return reversed ? Math.min(domain[1], newVal) : Math.max(domain[0], newVal);\n};\n\nconst defaultDomain = [0, 100];\n\nexport class Slider<\n T extends HTMLDivElement = HTMLDivElement\n> extends PureComponent {\n state = {\n step: 0.1,\n values: [],\n domain: defaultDomain,\n handles: [] as HandleItem[],\n reversed: false,\n activeHandleID: '',\n valueToPerc: null,\n valueToStep: null,\n pixelToStep: null,\n };\n\n slider = React.createRef();\n\n static getDerivedStateFromProps(\n nextProps: SliderProps,\n prevState: SliderState\n ) {\n const {\n step = 0.1,\n values,\n domain = defaultDomain,\n reversed = false,\n onUpdate = noop,\n onChange = noop,\n warnOnChanges = false,\n } = nextProps;\n let valueToPerc = prevState.valueToPerc;\n let valueToStep = prevState.valueToStep;\n let pixelToStep = prevState.pixelToStep;\n\n const nextState: Partial = {};\n\n if (!valueToPerc || !valueToStep || !pixelToStep) {\n valueToPerc = new LinearScale();\n valueToStep = new DiscreteScale();\n pixelToStep = new DiscreteScale();\n\n nextState.valueToPerc = valueToPerc;\n nextState.valueToStep = valueToStep;\n nextState.pixelToStep = pixelToStep;\n }\n\n if (\n prevState.domain === defaultDomain ||\n prevState.step === null ||\n prevState.domain === null ||\n prevState.reversed === null ||\n step !== prevState.step ||\n domain[0] !== prevState.domain[0] ||\n domain[1] !== prevState.domain[1] ||\n reversed !== prevState.reversed\n ) {\n const [min, max] = domain;\n valueToStep.setStep(step).setRange([min, max]).setDomain([min, max]);\n\n if (reversed === true) {\n valueToPerc.setDomain([min, max]).setRange([100, 0]);\n pixelToStep.setStep(step).setRange([max, min]);\n } else {\n valueToPerc.setDomain([min, max]).setRange([0, 100]);\n pixelToStep.setStep(step).setRange([min, max]);\n }\n\n warning(\n max > min,\n `${prfx} Max must be greater than min (even if reversed). Max is ${max}. Min is ${min}.`\n );\n\n const { handles, changes } = getHandles(\n values || prevState.values,\n reversed,\n valueToStep,\n warnOnChanges\n );\n\n if (changes || values === undefined || values === prevState.values) {\n onUpdate(handles.map((d) => d.val));\n onChange(handles.map((d) => d.val));\n }\n\n nextState.step = step;\n nextState.values = values;\n nextState.domain = domain === defaultDomain ? [...domain] : domain;\n nextState.handles = handles;\n nextState.reversed = reversed;\n } else if (!equal(values, prevState.values)) {\n const { handles, changes } = getHandles(\n values,\n reversed,\n valueToStep,\n warnOnChanges\n );\n\n if (changes) {\n onUpdate(handles.map((d) => d.val));\n onChange(handles.map((d) => d.val));\n }\n\n nextState.values = values;\n nextState.handles = handles;\n }\n\n if (Object.keys(nextState).length) {\n return nextState;\n }\n\n return null;\n }\n\n componentDidMount() {\n const { pixelToStep } = this.state;\n const { vertical } = this.props;\n\n // @ts-ignore\n pixelToStep.setDomain(getSliderDomain(this.slider.current, vertical));\n }\n\n componentWillUnmount() {\n this.removeListeners();\n }\n\n removeListeners() {\n if (isBrowser) {\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n\n onKeyDown = (e: KeyboardEvent, handleID: string) => {\n let validUpKeys = ['ArrowRight', 'ArrowUp'];\n let validDownKeys = ['ArrowDown', 'ArrowLeft'];\n\n const {\n state: { handles },\n props: {\n step = 0.1,\n reversed = false,\n vertical = false,\n domain = [0, 100] as number[],\n },\n } = this;\n const key = e.key || `${e.keyCode}`;\n\n if (!validUpKeys.concat(validDownKeys).includes(key)) {\n return;\n }\n\n if (vertical) {\n [validUpKeys, validDownKeys] = [validDownKeys, validUpKeys];\n }\n\n e.stopPropagation && e.stopPropagation();\n e.preventDefault && e.preventDefault();\n\n const found = handles.find((value) => {\n return value.key === handleID;\n });\n\n if (!found) {\n return;\n }\n\n const currVal = found.val;\n let newVal = currVal;\n\n if (validUpKeys.includes(key)) {\n newVal = getNextValue(currVal, step, domain, reversed);\n } else if (validDownKeys.includes(key)) {\n newVal = getPrevValue(currVal, step, domain, reversed);\n }\n const nextHandles = handles.map((v) =>\n v.key === handleID ? { key: v.key, val: newVal } : v\n );\n\n this.submitUpdate(nextHandles, true);\n };\n\n onMouseDown = (e: MouseEvent, handleID: string) => {\n this.onStart(e, handleID, false);\n };\n\n onTouchStart = (e: TouchEvent, handleID: string) => {\n if (isNotValidTouch(e)) {\n return;\n }\n\n this.onStart(e, handleID, true);\n };\n\n onStart(e: MouseEvent | TouchEvent, handleID: string, isTouch: boolean) {\n const {\n state: { handles },\n props: { onSlideStart = noop },\n } = this;\n\n if (!isTouch) {\n e.preventDefault && e.preventDefault();\n }\n\n e.stopPropagation && e.stopPropagation();\n\n const found = handles.find((value) => {\n return value.key === handleID;\n });\n\n if (found) {\n this.setState({ activeHandleID: handleID });\n onSlideStart(\n handles.map((d) => d.val),\n { activeHandleID: handleID }\n );\n isTouch ? this.addTouchEvents() : this.addMouseEvents();\n } else {\n this.setState({ activeHandleID: '' });\n this.handleRailAndTrackClicks(e, isTouch);\n }\n }\n\n handleRailAndTrackClicks(e: MouseEvent | TouchEvent, isTouch: boolean) {\n const {\n state: { handles: curr, pixelToStep },\n props: { vertical, reversed = false },\n } = this;\n const { slider } = this;\n\n // double check the dimensions of the slider\n // @ts-ignore\n pixelToStep.setDomain(getSliderDomain(slider.current, vertical));\n\n // find the closest value (aka step) to the event location\n let updateValue: number;\n\n if (isTouch) {\n // @ts-ignore\n updateValue = pixelToStep.getValue(getTouchPosition(vertical, e));\n } else {\n // @ts-ignore\n updateValue = pixelToStep.getValue(vertical ? e.clientY : e.pageX);\n }\n\n // find the closest handle key\n let updateKey = '';\n let minDiff = Infinity;\n\n for (let i = 0; i < curr.length; i++) {\n const { key, val } = curr[i];\n const diff = Math.abs(val - updateValue);\n\n if (diff < minDiff) {\n updateKey = key;\n minDiff = diff;\n }\n }\n\n // generate a \"candidate\" set of values - a suggestion of what to do\n const nextHandles = getUpdatedHandles(\n curr,\n updateKey,\n updateValue,\n reversed\n );\n\n // submit the candidate values\n this.setState({ activeHandleID: updateKey }, () => {\n this.submitUpdate(nextHandles, true);\n isTouch ? this.addTouchEvents() : this.addMouseEvents();\n });\n }\n\n getEventData = (e: React.MouseEvent | React.TouchEvent, isTouch: boolean) => {\n const {\n state: { pixelToStep, valueToPerc },\n props: { vertical },\n } = this;\n\n // double check the dimensions of the slider\n // @ts-ignore\n pixelToStep.setDomain(getSliderDomain(this.slider.current, vertical));\n\n let value;\n\n if (isTouch && e instanceof TouchEvent) {\n // @ts-ignore\n value = pixelToStep.getValue(getTouchPosition(vertical, e));\n } else if (e instanceof MouseEvent) {\n // @ts-ignore\n value = pixelToStep.getValue(vertical ? e.clientY : e.pageX);\n }\n return {\n value,\n // @ts-ignore\n percent: valueToPerc.getValue(value),\n };\n };\n\n addMouseEvents() {\n if (isBrowser) {\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('mouseup', this.onMouseUp);\n }\n }\n\n addTouchEvents() {\n if (isBrowser) {\n document.addEventListener('touchmove', this.onTouchMove);\n document.addEventListener('touchend', this.onTouchEnd);\n }\n }\n\n onMouseMove = (e: MouseEvent) => {\n const {\n state: { handles: curr, pixelToStep, activeHandleID = '' },\n props: { vertical, reversed = false },\n } = this;\n // double check the dimensions of the slider\n // @ts-ignore\n pixelToStep.setDomain(getSliderDomain(this.slider.current, vertical));\n\n // find the closest value (aka step) to the event location\n // @ts-ignore\n const updateValue = pixelToStep.getValue(vertical ? e.clientY : e.pageX);\n\n // generate a \"candidate\" set of values - a suggestion of what to do\n const nextHandles = getUpdatedHandles(\n curr,\n activeHandleID,\n updateValue,\n reversed\n );\n\n // submit the candidate values\n this.submitUpdate(nextHandles);\n };\n\n onTouchMove = (e: TouchEvent) => {\n const {\n state: { handles: curr, pixelToStep, activeHandleID },\n props: { vertical, reversed },\n } = this;\n if (pixelToStep === null || isNotValidTouch(e)) {\n return;\n }\n\n // double check the dimensions of the slider\n // @ts-ignore\n pixelToStep.setDomain(getSliderDomain(this.slider.current, vertical));\n\n // find the closest value (aka step) to the event location\n // @ts-ignore\n const updateValue = pixelToStep.getValue(getTouchPosition(vertical, e));\n\n // generate a \"candidate\" set of values - a suggestion of what to do\n const nextHandles = getUpdatedHandles(\n curr,\n activeHandleID,\n updateValue,\n reversed\n );\n\n // submit the candidate values\n this.submitUpdate(nextHandles);\n };\n\n submitUpdate(next: HandleItem[], callOnChange = false) {\n const {\n mode = 1,\n step = 0.1,\n onUpdate = noop,\n onChange = noop,\n reversed = false,\n } = this.props;\n //@ts-ignore\n const { getValue } = this.state.valueToStep;\n\n this.setState(({ handles: curr }) => {\n let handles: HandleItem[] = [];\n\n // given the current handles and a candidate set, decide what to do\n if (typeof mode === 'function') {\n handles = mode(curr, next, step, reversed, getValue);\n warning(\n Array.isArray(handles),\n 'Custom mode function did not return an array.'\n );\n } else {\n switch (mode) {\n case 1:\n handles = mode1(curr, next);\n break;\n case 2:\n handles = mode2(curr, next);\n break;\n case 3:\n handles = mode3(curr, next, step, reversed, getValue);\n break;\n default:\n handles = next;\n warning(false, `${prfx} Invalid mode value.`);\n }\n }\n\n onUpdate(handles.map((d) => d.val));\n\n if (callOnChange) {\n onChange(handles.map((d) => d.val));\n }\n\n return { handles };\n });\n }\n\n onMouseUp = () => {\n const {\n state: { handles = [], activeHandleID },\n props: { onChange = noop, onSlideEnd = noop },\n } = this;\n\n onChange(handles.map((d) => d.val));\n onSlideEnd(\n handles.map((d) => d.val),\n { activeHandleID }\n );\n\n this.setState({ activeHandleID: '' });\n\n if (isBrowser) {\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('mouseup', this.onMouseUp);\n }\n };\n\n onTouchEnd = () => {\n const {\n state: { handles, activeHandleID },\n props: { onChange = noop, onSlideEnd = noop },\n } = this;\n\n onChange(handles.map((d) => d.val));\n onSlideEnd(\n handles.map((d) => d.val),\n { activeHandleID }\n );\n\n this.setState({ activeHandleID: '' });\n\n if (isBrowser) {\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n };\n\n render() {\n const {\n state: { handles, valueToPerc, activeHandleID },\n props: {\n className,\n rootStyle = {},\n rootProps = {},\n component: Comp = 'div',\n disabled = false,\n flatten = false,\n },\n } = this;\n\n const mappedHandles = handles.map(({ key, val }) => {\n // @ts-ignore\n return { id: key, value: val, percent: valueToPerc.getValue(val) };\n });\n\n const children = React.Children.map(this.props.children, (child) => {\n if (isRCSComponent(child) === true) {\n return React.cloneElement(child as React.ReactElement, {\n scale: valueToPerc,\n handles: mappedHandles,\n activeHandleID,\n getEventData: this.getEventData,\n emitKeyboard: disabled ? noop : this.onKeyDown,\n emitMouse: disabled ? noop : this.onMouseDown,\n emitTouch: disabled ? noop : this.onTouchStart,\n });\n } else {\n return child;\n }\n });\n\n return flatten ? (\n <>\n {React.createElement(Comp, {\n ...rootProps,\n style: rootStyle,\n className: className,\n ref: this.slider,\n })}\n {children}\n \n ) : (\n <>\n {React.createElement(\n Comp,\n {\n ...rootProps,\n style: rootStyle,\n className: className,\n ref: this.slider,\n },\n children\n )}\n \n );\n }\n}\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _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; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'UNSAFE_componentWillReceiveProps',\n\t\tvalue: function UNSAFE_componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import { defaultColumn, emptyRenderer } from './publicUtils'\n\n// Find the depth of the columns\nexport function findMaxDepth(columns, depth = 0) {\n return columns.reduce((prev, curr) => {\n if (curr.columns) {\n return Math.max(prev, findMaxDepth(curr.columns, depth + 1))\n }\n return depth\n }, 0)\n}\n\n// Build the visible columns, headers and flat column list\nexport function linkColumnStructure(columns, parent, depth = 0) {\n return columns.map(column => {\n column = {\n ...column,\n parent,\n depth,\n }\n\n assignColumnAccessor(column)\n\n if (column.columns) {\n column.columns = linkColumnStructure(column.columns, column, depth + 1)\n }\n return column\n })\n}\n\nexport function flattenColumns(columns) {\n return flattenBy(columns, 'columns')\n}\n\nexport function assignColumnAccessor(column) {\n // First check for string accessor\n let { id, accessor, Header } = column\n\n if (typeof accessor === 'string') {\n id = id || accessor\n const accessorPath = accessor.split('.')\n accessor = row => getBy(row, accessorPath)\n }\n\n if (!id && typeof Header === 'string' && Header) {\n id = Header\n }\n\n if (!id && column.columns) {\n console.error(column)\n throw new Error('A column ID (or unique \"Header\" value) is required!')\n }\n\n if (!id) {\n console.error(column)\n throw new Error('A column ID (or string accessor) is required!')\n }\n\n Object.assign(column, {\n id,\n accessor,\n })\n\n return column\n}\n\nexport function decorateColumn(column, userDefaultColumn) {\n if (!userDefaultColumn) {\n throw new Error()\n }\n Object.assign(column, {\n // Make sure there is a fallback header, just in case\n Header: emptyRenderer,\n Footer: emptyRenderer,\n ...defaultColumn,\n ...userDefaultColumn,\n ...column,\n })\n\n Object.assign(column, {\n originalWidth: column.width,\n })\n\n return column\n}\n\n// Build the header groups from the bottom up\nexport function makeHeaderGroups(\n allColumns,\n defaultColumn,\n additionalHeaderProperties = () => ({})\n) {\n const headerGroups = []\n\n let scanColumns = allColumns\n\n let uid = 0\n const getUID = () => uid++\n\n while (scanColumns.length) {\n // The header group we are creating\n const headerGroup = {\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const parentColumns = []\n\n const hasParents = scanColumns.some(d => d.parent)\n\n // Scan each column for parents\n scanColumns.forEach(column => {\n // What is the latest (last) parent column?\n let latestParentColumn = [...parentColumns].reverse()[0]\n\n let newParent\n\n if (hasParents) {\n // If the column has a parent, add it if necessary\n if (column.parent) {\n newParent = {\n ...column.parent,\n originalId: column.parent.id,\n id: `${column.parent.id}_${getUID()}`,\n headers: [column],\n ...additionalHeaderProperties(column),\n }\n } else {\n // If other columns have parents, we'll need to add a place holder if necessary\n const originalId = `${column.id}_placeholder`\n newParent = decorateColumn(\n {\n originalId,\n id: `${column.id}_placeholder_${getUID()}`,\n placeholderOf: column,\n headers: [column],\n ...additionalHeaderProperties(column),\n },\n defaultColumn\n )\n }\n\n // If the resulting parent columns are the same, just add\n // the column and increment the header span\n if (\n latestParentColumn &&\n latestParentColumn.originalId === newParent.originalId\n ) {\n latestParentColumn.headers.push(column)\n } else {\n parentColumns.push(newParent)\n }\n }\n\n headerGroup.headers.push(column)\n })\n\n headerGroups.push(headerGroup)\n\n // Start scanning the parent columns\n scanColumns = parentColumns\n }\n\n return headerGroups.reverse()\n}\n\nconst pathObjCache = new Map()\n\nexport function getBy(obj, path, def) {\n if (!path) {\n return obj\n }\n const cacheKey = typeof path === 'function' ? path : JSON.stringify(path)\n\n const pathObj =\n pathObjCache.get(cacheKey) ||\n (() => {\n const pathObj = makePathArray(path)\n pathObjCache.set(cacheKey, pathObj)\n return pathObj\n })()\n\n let val\n\n try {\n val = pathObj.reduce((cursor, pathPart) => cursor[pathPart], obj)\n } catch (e) {\n // continue regardless of error\n }\n return typeof val !== 'undefined' ? val : def\n}\n\nexport function getFirstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (typeof args[i] !== 'undefined') {\n return args[i]\n }\n }\n}\n\nexport function getElementDimensions(element) {\n const rect = element.getBoundingClientRect()\n const style = window.getComputedStyle(element)\n const margins = {\n left: parseInt(style.marginLeft),\n right: parseInt(style.marginRight),\n }\n const padding = {\n left: parseInt(style.paddingLeft),\n right: parseInt(style.paddingRight),\n }\n return {\n left: Math.ceil(rect.left),\n width: Math.ceil(rect.width),\n outerWidth: Math.ceil(\n rect.width + margins.left + margins.right + padding.left + padding.right\n ),\n marginLeft: margins.left,\n marginRight: margins.right,\n paddingLeft: padding.left,\n paddingRight: padding.right,\n scrollWidth: element.scrollWidth,\n }\n}\n\nexport function isFunction(a) {\n if (typeof a === 'function') {\n return a\n }\n}\n\nexport function flattenBy(arr, key) {\n const flat = []\n\n const recurse = arr => {\n arr.forEach(d => {\n if (!d[key]) {\n flat.push(d)\n } else {\n recurse(d[key])\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\nexport function expandRows(\n rows,\n { manualExpandedKey, expanded, expandSubRows = true }\n) {\n const expandedRows = []\n\n const handleRow = (row, addToExpandedRows = true) => {\n row.isExpanded =\n (row.original && row.original[manualExpandedKey]) || expanded[row.id]\n\n row.canExpand = row.subRows && !!row.subRows.length\n\n if (addToExpandedRows) {\n expandedRows.push(row)\n }\n\n if (row.subRows && row.subRows.length && row.isExpanded) {\n row.subRows.forEach(row => handleRow(row, expandSubRows))\n }\n }\n\n rows.forEach(row => handleRow(row))\n\n return expandedRows\n}\n\nexport function getFilterMethod(filter, userFilterTypes, filterTypes) {\n return (\n isFunction(filter) ||\n userFilterTypes[filter] ||\n filterTypes[filter] ||\n filterTypes.text\n )\n}\n\nexport function shouldAutoRemoveFilter(autoRemove, value, column) {\n return autoRemove ? autoRemove(value, column) : typeof value === 'undefined'\n}\n\nexport function unpreparedAccessWarning() {\n throw new Error(\n 'React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.'\n )\n}\n\nlet passiveSupported = null\nexport function passiveEventSupported() {\n // memoize support to avoid adding multiple test events\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n window.addEventListener('test', null, options)\n window.removeEventListener('test', null, options)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n//\n\nconst reOpenBracket = /\\[/g\nconst reCloseBracket = /\\]/g\n\nfunction makePathArray(obj) {\n return (\n flattenDeep(obj)\n // remove all periods in parts\n .map(d => String(d).replace('.', '_'))\n // join parts using period\n .join('.')\n // replace brackets with periods\n .replace(reOpenBracket, '.')\n .replace(reCloseBracket, '')\n // split it back out on periods\n .split('.')\n )\n}\n\nfunction flattenDeep(arr, newArr = []) {\n if (!Array.isArray(arr)) {\n newArr.push(arr)\n } else {\n for (let i = 0; i < arr.length; i += 1) {\n flattenDeep(arr[i], newArr)\n }\n }\n return newArr\n}\n","export default Base =>\n class extends Base {\n UNSAFE_componentWillMount () {\n this.setStateWithData(this.getDataModel(this.getResolvedState(), true))\n }\n\n componentDidMount () {\n this.fireFetchData()\n }\n\n UNSAFE_componentWillReceiveProps (nextProps, nextState) {\n const oldState = this.getResolvedState()\n const newState = this.getResolvedState(nextProps, nextState)\n\n // Do a deep compare of new and old `defaultOption` and\n // if they are different reset `option = defaultOption`\n const defaultableOptions = ['sorted', 'filtered', 'resized', 'expanded']\n defaultableOptions.forEach(x => {\n const defaultName = `default${x.charAt(0).toUpperCase() + x.slice(1)}`\n if (JSON.stringify(oldState[defaultName]) !== JSON.stringify(newState[defaultName])) {\n newState[x] = newState[defaultName]\n }\n })\n\n // If they change these table options, we need to reset defaults\n // or else we could get into a state where the user has changed the UI\n // and then disabled the ability to change it back.\n // e.g. If `filterable` has changed, set `filtered = defaultFiltered`\n const resettableOptions = ['sortable', 'filterable', 'resizable']\n resettableOptions.forEach(x => {\n if (oldState[x] !== newState[x]) {\n const baseName = x.replace('able', '')\n const optionName = `${baseName}ed`\n const defaultName = `default${optionName.charAt(0).toUpperCase() + optionName.slice(1)}`\n newState[optionName] = newState[defaultName]\n }\n })\n\n // Props that trigger a data update\n if (\n oldState.data !== newState.data ||\n oldState.columns !== newState.columns ||\n oldState.pivotBy !== newState.pivotBy ||\n oldState.sorted !== newState.sorted ||\n oldState.filtered !== newState.filtered\n ) {\n this.setStateWithData(this.getDataModel(newState, oldState.data !== newState.data))\n }\n }\n\n setStateWithData (newState, cb) {\n const oldState = this.getResolvedState()\n const newResolvedState = this.getResolvedState({}, newState)\n const { freezeWhenExpanded } = newResolvedState\n\n // Default to unfrozen state\n newResolvedState.frozen = false\n\n // If freezeWhenExpanded is set, check for frozen conditions\n if (freezeWhenExpanded) {\n // if any rows are expanded, freeze the existing data and sorting\n const keys = Object.keys(newResolvedState.expanded)\n for (let i = 0; i < keys.length; i += 1) {\n if (newResolvedState.expanded[keys[i]]) {\n newResolvedState.frozen = true\n break\n }\n }\n }\n\n // If the data isn't frozen and either the data or\n // sorting model has changed, update the data\n if (\n (oldState.frozen && !newResolvedState.frozen) ||\n oldState.sorted !== newResolvedState.sorted ||\n oldState.filtered !== newResolvedState.filtered ||\n oldState.showFilters !== newResolvedState.showFilters ||\n (!newResolvedState.frozen && oldState.resolvedData !== newResolvedState.resolvedData)\n ) {\n // Handle collapseOnsortedChange & collapseOnDataChange\n if (\n (oldState.sorted !== newResolvedState.sorted && this.props.collapseOnSortingChange) ||\n oldState.filtered !== newResolvedState.filtered ||\n oldState.showFilters !== newResolvedState.showFilters ||\n (oldState.sortedData &&\n !newResolvedState.frozen &&\n oldState.resolvedData !== newResolvedState.resolvedData &&\n this.props.collapseOnDataChange)\n ) {\n newResolvedState.expanded = {}\n }\n\n Object.assign(newResolvedState, this.getSortedData(newResolvedState))\n }\n\n // Set page to 0 if filters change\n if (oldState.filtered !== newResolvedState.filtered) {\n newResolvedState.page = 0\n }\n\n // Calculate pageSize all the time\n if (newResolvedState.sortedData) {\n newResolvedState.pages = newResolvedState.manual\n ? newResolvedState.pages\n : Math.ceil(newResolvedState.sortedData.length / newResolvedState.pageSize)\n newResolvedState.page = newResolvedState.manual ? newResolvedState.page : Math.max(\n newResolvedState.page >= newResolvedState.pages\n ? newResolvedState.pages - 1\n : newResolvedState.page,\n 0\n )\n }\n\n return this.setState(newResolvedState, () => {\n if (cb) {\n cb()\n }\n if (\n oldState.page !== newResolvedState.page ||\n oldState.pageSize !== newResolvedState.pageSize ||\n oldState.sorted !== newResolvedState.sorted ||\n oldState.filtered !== newResolvedState.filtered\n ) {\n this.fireFetchData()\n }\n })\n }\n }\n","import React from 'react'\nimport _ from './utils'\n\nexport default Base =>\n class extends Base {\n getResolvedState (props, state) {\n const resolvedState = {\n ..._.compactObject(this.state),\n ..._.compactObject(this.props),\n ..._.compactObject(state),\n ..._.compactObject(props),\n }\n return resolvedState\n }\n\n getDataModel (newState, dataChanged) {\n const {\n columns,\n pivotBy = [],\n data,\n resolveData,\n pivotIDKey,\n pivotValKey,\n subRowsKey,\n aggregatedKey,\n nestingLevelKey,\n originalKey,\n indexKey,\n groupedByPivotKey,\n SubComponent,\n } = newState\n\n // Determine Header Groups\n let hasHeaderGroups = false\n columns.forEach(column => {\n if (column.columns) {\n hasHeaderGroups = true\n }\n })\n\n let columnsWithExpander = [...columns]\n\n let expanderColumn = columns.find(\n col => col.expander || (col.columns && col.columns.some(col2 => col2.expander))\n )\n // The actual expander might be in the columns field of a group column\n if (expanderColumn && !expanderColumn.expander) {\n expanderColumn = expanderColumn.columns.find(col => col.expander)\n }\n\n // If we have SubComponent's we need to make sure we have an expander column\n if (SubComponent && !expanderColumn) {\n expanderColumn = { expander: true }\n columnsWithExpander = [expanderColumn, ...columnsWithExpander]\n }\n\n const makeDecoratedColumn = (column, parentColumn) => {\n let dcol\n if (column.expander) {\n dcol = {\n ...this.props.column,\n ...this.props.expanderDefaults,\n ...column,\n }\n } else {\n dcol = {\n ...this.props.column,\n ...column,\n }\n }\n\n // Ensure minWidth is not greater than maxWidth if set\n if (dcol.maxWidth < dcol.minWidth) {\n dcol.minWidth = dcol.maxWidth\n }\n\n if (parentColumn) {\n dcol.parentColumn = parentColumn\n }\n\n // First check for string accessor\n if (typeof dcol.accessor === 'string') {\n dcol.id = dcol.id || dcol.accessor\n const accessorString = dcol.accessor\n dcol.accessor = row => _.get(row, accessorString)\n return dcol\n }\n\n // Fall back to functional accessor (but require an ID)\n if (dcol.accessor && !dcol.id) {\n console.warn(dcol)\n throw new Error(\n 'A column id is required if using a non-string accessor for column above.'\n )\n }\n\n // Fall back to an undefined accessor\n if (!dcol.accessor) {\n dcol.accessor = () => undefined\n }\n\n return dcol\n }\n\n const allDecoratedColumns = []\n\n // Decorate the columns\n const decorateAndAddToAll = (column, parentColumn) => {\n const decoratedColumn = makeDecoratedColumn(column, parentColumn)\n allDecoratedColumns.push(decoratedColumn)\n return decoratedColumn\n }\n\n const decoratedColumns = columnsWithExpander.map(column => {\n if (column.columns) {\n return {\n ...column,\n columns: column.columns.map(d => decorateAndAddToAll(d, column)),\n }\n }\n return decorateAndAddToAll(column)\n })\n\n // Build the visible columns, headers and flat column list\n let visibleColumns = decoratedColumns.slice()\n let allVisibleColumns = []\n\n visibleColumns = visibleColumns.map(column => {\n if (column.columns) {\n const visibleSubColumns = column.columns.filter(d =>\n pivotBy.indexOf(d.id) > -1 ? false : _.getFirstDefined(d.show, true)\n )\n return {\n ...column,\n columns: visibleSubColumns,\n }\n }\n return column\n })\n\n visibleColumns = visibleColumns.filter(column =>\n column.columns\n ? column.columns.length\n : pivotBy.indexOf(column.id) > -1\n ? false\n : _.getFirstDefined(column.show, true)\n )\n\n // Find any custom pivot location\n const pivotIndex = visibleColumns.findIndex(col => col.pivot)\n\n // Handle Pivot Columns\n if (pivotBy.length) {\n // Retrieve the pivot columns in the correct pivot order\n const pivotColumns = []\n pivotBy.forEach(pivotID => {\n const found = allDecoratedColumns.find(d => d.id === pivotID)\n if (found) {\n pivotColumns.push(found)\n }\n })\n\n const PivotParentColumn = pivotColumns.reduce(\n (prev, current) => prev && prev === current.parentColumn && current.parentColumn,\n pivotColumns[0].parentColumn\n )\n\n let PivotGroupHeader = hasHeaderGroups && PivotParentColumn.Header\n PivotGroupHeader = PivotGroupHeader || (() => Pivoted)\n\n let pivotColumnGroup = {\n Header: PivotGroupHeader,\n columns: pivotColumns.map(col => ({\n ...this.props.pivotDefaults,\n ...col,\n pivoted: true,\n })),\n }\n\n // Place the pivotColumns back into the visibleColumns\n if (pivotIndex >= 0) {\n pivotColumnGroup = {\n ...visibleColumns[pivotIndex],\n ...pivotColumnGroup,\n }\n visibleColumns.splice(pivotIndex, 1, pivotColumnGroup)\n } else {\n visibleColumns.unshift(pivotColumnGroup)\n }\n }\n\n // Build Header Groups\n const headerGroups = []\n let currentSpan = []\n\n // A convenience function to add a header and reset the currentSpan\n const addHeader = (columns, column) => {\n headerGroups.push({\n ...this.props.column,\n ...column,\n columns,\n })\n currentSpan = []\n }\n\n // Build flast list of allVisibleColumns and HeaderGroups\n visibleColumns.forEach(column => {\n if (column.columns) {\n allVisibleColumns = allVisibleColumns.concat(column.columns)\n if (currentSpan.length > 0) {\n addHeader(currentSpan)\n }\n addHeader(column.columns, column)\n return\n }\n allVisibleColumns.push(column)\n currentSpan.push(column)\n })\n if (hasHeaderGroups && currentSpan.length > 0) {\n addHeader(currentSpan)\n }\n\n // Access the data\n const accessRow = (d, i, level = 0) => {\n const row = {\n [originalKey]: d,\n [indexKey]: i,\n [subRowsKey]: d[subRowsKey],\n [nestingLevelKey]: level,\n }\n allDecoratedColumns.forEach(column => {\n if (column.expander) return\n row[column.id] = column.accessor(d)\n })\n if (row[subRowsKey]) {\n row[subRowsKey] = row[subRowsKey].map((d, i) => accessRow(d, i, level + 1))\n }\n return row\n }\n\n // // If the data hasn't changed, just use the cached data\n let resolvedData = this.resolvedData\n // If the data has changed, run the data resolver and cache the result\n if (!this.resolvedData || dataChanged) {\n resolvedData = resolveData(data)\n this.resolvedData = resolvedData\n }\n // Use the resolved data\n resolvedData = resolvedData.map((d, i) => accessRow(d, i))\n\n // TODO: Make it possible to fabricate nested rows without pivoting\n const aggregatingColumns = allVisibleColumns.filter(d => !d.expander && d.aggregate)\n\n // If pivoting, recursively group the data\n const aggregate = rows => {\n const aggregationValues = {}\n aggregatingColumns.forEach(column => {\n const values = rows.map(d => d[column.id])\n aggregationValues[column.id] = column.aggregate(values, rows)\n })\n return aggregationValues\n }\n if (pivotBy.length) {\n const groupRecursively = (rows, keys, i = 0) => {\n // This is the last level, just return the rows\n if (i === keys.length) {\n return rows\n }\n // Group the rows together for this level\n let groupedRows = Object.entries(_.groupBy(rows, keys[i])).map(([key, value]) => ({\n [pivotIDKey]: keys[i],\n [pivotValKey]: key,\n [keys[i]]: key,\n [subRowsKey]: value,\n [nestingLevelKey]: i,\n [groupedByPivotKey]: true,\n }))\n // Recurse into the subRows\n groupedRows = groupedRows.map(rowGroup => {\n const subRows = groupRecursively(rowGroup[subRowsKey], keys, i + 1)\n return {\n ...rowGroup,\n [subRowsKey]: subRows,\n [aggregatedKey]: true,\n ...aggregate(subRows),\n }\n })\n return groupedRows\n }\n resolvedData = groupRecursively(resolvedData, pivotBy)\n }\n\n return {\n ...newState,\n resolvedData,\n allVisibleColumns,\n headerGroups,\n allDecoratedColumns,\n hasHeaderGroups,\n }\n }\n\n getSortedData (resolvedState) {\n const {\n manual,\n sorted,\n filtered,\n defaultFilterMethod,\n resolvedData,\n allDecoratedColumns,\n } = resolvedState\n\n const sortMethodsByColumnID = {}\n\n allDecoratedColumns\n .filter(col => col.sortMethod)\n .forEach(col => {\n sortMethodsByColumnID[col.id] = col.sortMethod\n })\n\n // Resolve the data from either manual data or sorted data\n return {\n sortedData: manual\n ? resolvedData\n : this.sortData(\n this.filterData(resolvedData, filtered, defaultFilterMethod, allDecoratedColumns),\n sorted,\n sortMethodsByColumnID\n ),\n }\n }\n\n fireFetchData () {\n // determine the current state, preferring certain state values over props\n const currentState = {\n ...this.getResolvedState(),\n page: this.getStateOrProp('page'),\n pageSize: this.getStateOrProp('pageSize'),\n filtered: this.getStateOrProp('filtered'),\n }\n\n this.props.onFetchData(currentState, this)\n }\n\n getPropOrState (key) {\n return _.getFirstDefined(this.props[key], this.state[key])\n }\n\n getStateOrProp (key) {\n return _.getFirstDefined(this.state[key], this.props[key])\n }\n\n filterData (data, filtered, defaultFilterMethod, allVisibleColumns) {\n let filteredData = data\n\n if (filtered.length) {\n filteredData = filtered.reduce((filteredSoFar, nextFilter) => {\n const column = allVisibleColumns.find(x => x.id === nextFilter.id)\n\n // Don't filter hidden columns or columns that have had their filters disabled\n if (!column || column.filterable === false) {\n return filteredSoFar\n }\n\n const filterMethod = column.filterMethod || defaultFilterMethod\n\n // If 'filterAll' is set to true, pass the entire dataset to the filter method\n if (column.filterAll) {\n return filterMethod(nextFilter, filteredSoFar, column)\n }\n return filteredSoFar.filter(row => filterMethod(nextFilter, row, column))\n }, filteredData)\n\n // Apply the filter to the subrows if we are pivoting, and then\n // filter any rows without subcolumns because it would be strange to show\n filteredData = filteredData\n .map(row => {\n if (!row[this.props.subRowsKey]) {\n return row\n }\n return {\n ...row,\n [this.props.subRowsKey]: this.filterData(\n row[this.props.subRowsKey],\n filtered,\n defaultFilterMethod,\n allVisibleColumns\n ),\n }\n })\n .filter(row => {\n if (!row[this.props.subRowsKey]) {\n return true\n }\n return row[this.props.subRowsKey].length > 0\n })\n }\n\n return filteredData\n }\n\n sortData (data, sorted, sortMethodsByColumnID = {}) {\n if (!sorted.length) {\n return data\n }\n\n const sortedData = (this.props.orderByMethod || _.orderBy)(\n data,\n sorted.map(sort => {\n // Support custom sorting methods for each column\n if (sortMethodsByColumnID[sort.id]) {\n return (a, b) => sortMethodsByColumnID[sort.id](a[sort.id], b[sort.id], sort.desc)\n }\n return (a, b) => this.props.defaultSortMethod(a[sort.id], b[sort.id], sort.desc)\n }),\n sorted.map(d => !d.desc),\n this.props.indexKey\n )\n\n sortedData.forEach(row => {\n if (!row[this.props.subRowsKey]) {\n return\n }\n row[this.props.subRowsKey] = this.sortData(\n row[this.props.subRowsKey],\n sorted,\n sortMethodsByColumnID\n )\n })\n\n return sortedData\n }\n\n getMinRows () {\n return _.getFirstDefined(this.props.minRows, this.getStateOrProp('pageSize'))\n }\n\n // User actions\n onPageChange (page) {\n const { onPageChange, collapseOnPageChange } = this.props\n\n const newState = { page }\n if (collapseOnPageChange) {\n newState.expanded = {}\n }\n this.setStateWithData(newState, () => onPageChange && onPageChange(page))\n }\n\n onPageSizeChange (newPageSize) {\n const { onPageSizeChange } = this.props\n const { pageSize, page } = this.getResolvedState()\n\n // Normalize the page to display\n const currentRow = pageSize * page\n const newPage = Math.floor(currentRow / newPageSize)\n\n this.setStateWithData(\n {\n pageSize: newPageSize,\n page: newPage,\n },\n () => onPageSizeChange && onPageSizeChange(newPageSize, newPage)\n )\n }\n\n sortColumn (column, additive) {\n const { sorted, skipNextSort, defaultSortDesc } = this.getResolvedState()\n\n const firstSortDirection = Object.prototype.hasOwnProperty.call(column, 'defaultSortDesc')\n ? column.defaultSortDesc\n : defaultSortDesc\n const secondSortDirection = !firstSortDirection\n\n // we can't stop event propagation from the column resize move handlers\n // attached to the document because of react's synthetic events\n // so we have to prevent the sort function from actually sorting\n // if we click on the column resize element within a header.\n if (skipNextSort) {\n this.setStateWithData({\n skipNextSort: false,\n })\n return\n }\n\n const { onSortedChange } = this.props\n\n let newSorted = _.clone(sorted || []).map(d => {\n d.desc = _.isSortingDesc(d)\n return d\n })\n if (!_.isArray(column)) {\n // Single-Sort\n const existingIndex = newSorted.findIndex(d => d.id === column.id)\n if (existingIndex > -1) {\n const existing = newSorted[existingIndex]\n if (existing.desc === secondSortDirection) {\n if (additive) {\n newSorted.splice(existingIndex, 1)\n } else {\n existing.desc = firstSortDirection\n newSorted = [existing]\n }\n } else {\n existing.desc = secondSortDirection\n if (!additive) {\n newSorted = [existing]\n }\n }\n } else if (additive) {\n newSorted.push({\n id: column.id,\n desc: firstSortDirection,\n })\n } else {\n newSorted = [\n {\n id: column.id,\n desc: firstSortDirection,\n },\n ]\n }\n } else {\n // Multi-Sort\n const existingIndex = newSorted.findIndex(d => d.id === column[0].id)\n // Existing Sorted Column\n if (existingIndex > -1) {\n const existing = newSorted[existingIndex]\n if (existing.desc === secondSortDirection) {\n if (additive) {\n newSorted.splice(existingIndex, column.length)\n } else {\n column.forEach((d, i) => {\n newSorted[existingIndex + i].desc = firstSortDirection\n })\n }\n } else {\n column.forEach((d, i) => {\n newSorted[existingIndex + i].desc = secondSortDirection\n })\n }\n if (!additive) {\n newSorted = newSorted.slice(existingIndex, column.length)\n }\n // New Sort Column\n } else if (additive) {\n newSorted = newSorted.concat(\n column.map(d => ({\n id: d.id,\n desc: firstSortDirection,\n }))\n )\n } else {\n newSorted = column.map(d => ({\n id: d.id,\n desc: firstSortDirection,\n }))\n }\n }\n\n this.setStateWithData(\n {\n page: (!sorted.length && newSorted.length) || !additive ? 0 : this.state.page,\n sorted: newSorted,\n },\n () => onSortedChange && onSortedChange(newSorted, column, additive)\n )\n }\n\n filterColumn (column, value) {\n const { filtered } = this.getResolvedState()\n const { onFilteredChange } = this.props\n\n // Remove old filter first if it exists\n const newFiltering = (filtered || []).filter(x => x.id !== column.id)\n\n if (value !== '') {\n newFiltering.push({\n id: column.id,\n value,\n })\n }\n\n this.setStateWithData(\n {\n filtered: newFiltering,\n },\n () => onFilteredChange && onFilteredChange(newFiltering, column, value)\n )\n }\n\n resizeColumnStart (event, column, isTouch) {\n event.stopPropagation()\n const parentWidth = event.target.parentElement.getBoundingClientRect().width\n\n let pageX\n if (isTouch) {\n pageX = event.changedTouches[0].pageX\n } else {\n pageX = event.pageX\n }\n\n this.trapEvents = true\n this.setStateWithData(\n {\n currentlyResizing: {\n id: column.id,\n startX: pageX,\n parentWidth,\n },\n },\n () => {\n if (isTouch) {\n document.addEventListener('touchmove', this.resizeColumnMoving)\n document.addEventListener('touchcancel', this.resizeColumnEnd)\n document.addEventListener('touchend', this.resizeColumnEnd)\n } else {\n document.addEventListener('mousemove', this.resizeColumnMoving)\n document.addEventListener('mouseup', this.resizeColumnEnd)\n document.addEventListener('mouseleave', this.resizeColumnEnd)\n }\n }\n )\n }\n\n resizeColumnMoving (event) {\n event.stopPropagation()\n const { onResizedChange, column } = this.props\n const { resized, currentlyResizing, columns } = this.getResolvedState()\n const currentColumn = columns.find(\n c => c.accessor === currentlyResizing.id || c.id === currentlyResizing.id\n )\n const minResizeWidth =\n currentColumn && currentColumn.minResizeWidth != null\n ? currentColumn.minResizeWidth\n : column.minResizeWidth\n\n // Delete old value\n const newResized = resized.filter(x => x.id !== currentlyResizing.id)\n\n let pageX\n\n if (event.type === 'touchmove') {\n pageX = event.changedTouches[0].pageX\n } else if (event.type === 'mousemove') {\n pageX = event.pageX\n }\n\n const newWidth = Math.max(\n currentlyResizing.parentWidth + pageX - currentlyResizing.startX,\n minResizeWidth\n )\n\n newResized.push({\n id: currentlyResizing.id,\n value: newWidth,\n })\n\n this.setStateWithData(\n {\n resized: newResized,\n },\n () => onResizedChange && onResizedChange(newResized, event)\n )\n }\n\n resizeColumnEnd (event) {\n event.stopPropagation()\n const isTouch = event.type === 'touchend' || event.type === 'touchcancel'\n\n if (isTouch) {\n document.removeEventListener('touchmove', this.resizeColumnMoving)\n document.removeEventListener('touchcancel', this.resizeColumnEnd)\n document.removeEventListener('touchend', this.resizeColumnEnd)\n }\n\n // If its a touch event clear the mouse one's as well because sometimes\n // the mouseDown event gets called as well, but the mouseUp event doesn't\n document.removeEventListener('mousemove', this.resizeColumnMoving)\n document.removeEventListener('mouseup', this.resizeColumnEnd)\n document.removeEventListener('mouseleave', this.resizeColumnEnd)\n\n // The touch events don't propagate up to the sorting's onMouseDown event so\n // no need to prevent it from happening or else the first click after a touch\n // event resize will not sort the column.\n if (!isTouch) {\n this.setStateWithData({\n skipNextSort: true,\n currentlyResizing: false,\n })\n }\n }\n }\n","import React, { Component } from 'react'\nimport classnames from 'classnames'\n\nconst defaultButton = props => (\n \n)\n\nexport default class ReactTablePagination extends Component {\n static defaultProps = {\n PreviousComponent: defaultButton,\n NextComponent: defaultButton,\n renderPageJump: ({\n onChange, value, onBlur, onKeyPress, inputType, pageJumpText,\n }) => (\n
\n \n
\n ),\n renderCurrentPage: page => {page + 1},\n renderTotalPagesCount: pages => {pages || 1},\n renderPageSizeOptions: ({\n pageSize,\n pageSizeOptions,\n rowsSelectorText,\n onPageSizeChange,\n rowsText,\n }) => (\n \n onPageSizeChange(Number(e.target.value))}\n value={pageSize}\n >\n {pageSizeOptions.map((option, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n ))}\n \n \n ),\n }\n\n constructor (props) {\n super(props)\n\n this.getSafePage = this.getSafePage.bind(this)\n this.changePage = this.changePage.bind(this)\n this.applyPage = this.applyPage.bind(this)\n\n this.state = {\n page: props.page,\n }\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n if (this.props.page !== nextProps.page) {\n this.setState({ page: nextProps.page })\n }\n }\n\n getSafePage (page) {\n if (Number.isNaN(page)) {\n page = this.props.page\n }\n return Math.min(Math.max(page, 0), this.props.pages - 1)\n }\n\n changePage (page) {\n page = this.getSafePage(page)\n this.setState({ page })\n if (this.props.page !== page) {\n this.props.onPageChange(page)\n }\n }\n\n applyPage (e) {\n if (e) {\n e.preventDefault()\n }\n const page = this.state.page\n this.changePage(page === '' ? this.props.page : page)\n }\n\n getPageJumpProperties () {\n return {\n onKeyPress: e => {\n if (e.which === 13 || e.keyCode === 13) {\n this.applyPage()\n }\n },\n onBlur: this.applyPage,\n value: this.state.page === '' ? '' : this.state.page + 1,\n onChange: e => {\n const val = e.target.value\n const page = val - 1\n if (val === '') {\n return this.setState({ page: val })\n }\n this.setState({ page: this.getSafePage(page) })\n },\n inputType: this.state.page === '' ? 'text' : 'number',\n pageJumpText: this.props.pageJumpText,\n }\n }\n\n render () {\n const {\n // Computed\n pages,\n // Props\n page,\n showPageSizeOptions,\n pageSizeOptions,\n pageSize,\n showPageJump,\n canPrevious,\n canNext,\n onPageSizeChange,\n className,\n PreviousComponent,\n NextComponent,\n renderPageJump,\n renderCurrentPage,\n renderTotalPagesCount,\n renderPageSizeOptions,\n } = this.props\n\n return (\n
\n
\n {\n if (!canPrevious) return\n this.changePage(page - 1)\n }}\n disabled={!canPrevious}\n >\n {this.props.previousText}\n \n
\n
\n \n {this.props.pageText}{' '}\n {showPageJump ? renderPageJump(this.getPageJumpProperties()) : renderCurrentPage(page)}{' '}\n {this.props.ofText} {renderTotalPagesCount(pages)}\n \n {showPageSizeOptions &&\n renderPageSizeOptions({\n pageSize,\n rowsSelectorText: this.props.rowsSelectorText,\n pageSizeOptions,\n onPageSizeChange,\n rowsText: this.props.rowsText,\n })}\n
\n
\n {\n if (!canNext) return\n this.changePage(page + 1)\n }}\n disabled={!canNext}\n >\n {this.props.nextText}\n \n
\n
\n )\n }\n}\n","import React from 'react'\nimport classnames from 'classnames'\n//\nimport _ from './utils'\nimport Pagination from './pagination'\n\nconst emptyObj = () => ({})\n\nexport default {\n // General\n data: [],\n resolveData: data => data,\n loading: false,\n showPagination: true,\n showPaginationTop: false,\n showPaginationBottom: true,\n showPageSizeOptions: true,\n pageSizeOptions: [5, 10, 20, 25, 50, 100],\n defaultPage: 0,\n defaultPageSize: 20,\n showPageJump: true,\n collapseOnSortingChange: true,\n collapseOnPageChange: true,\n collapseOnDataChange: true,\n freezeWhenExpanded: false,\n sortable: true,\n multiSort: true,\n resizable: true,\n filterable: false,\n defaultSortDesc: false,\n defaultSorted: [],\n defaultFiltered: [],\n defaultResized: [],\n defaultExpanded: {},\n // eslint-disable-next-line no-unused-vars\n defaultFilterMethod: (filter, row, column) => {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).startsWith(filter.value) : true\n },\n // eslint-disable-next-line no-unused-vars\n defaultSortMethod: (a, b, desc) => {\n // force null and undefined to the bottom\n a = a === null || a === undefined ? '' : a\n b = b === null || b === undefined ? '' : b\n // force any string values to lowercase\n a = typeof a === 'string' ? a.toLowerCase() : a\n b = typeof b === 'string' ? b.toLowerCase() : b\n // Return either 1 or -1 to indicate a sort priority\n if (a > b) {\n return 1\n }\n if (a < b) {\n return -1\n }\n // returning 0, undefined or any falsey value will use subsequent sorts or\n // the index as a tiebreaker\n return 0\n },\n\n // Controlled State Props\n // page: undefined,\n // pageSize: undefined,\n // sorted: [],\n // filtered: [],\n // resized: [],\n // expanded: {},\n\n // Controlled State Callbacks\n onPageChange: undefined,\n onPageSizeChange: undefined,\n onSortedChange: undefined,\n onFilteredChange: undefined,\n onResizedChange: undefined,\n onExpandedChange: undefined,\n\n // Pivoting\n pivotBy: undefined,\n\n // Key Constants\n pivotValKey: '_pivotVal',\n pivotIDKey: '_pivotID',\n subRowsKey: '_subRows',\n aggregatedKey: '_aggregated',\n nestingLevelKey: '_nestingLevel',\n originalKey: '_original',\n indexKey: '_index',\n groupedByPivotKey: '_groupedByPivot',\n\n // Server-side Callbacks\n onFetchData: () => null,\n\n // Classes\n className: '',\n style: {},\n\n // Component decorators\n getProps: emptyObj,\n getTableProps: emptyObj,\n getTheadGroupProps: emptyObj,\n getTheadGroupTrProps: emptyObj,\n getTheadGroupThProps: emptyObj,\n getTheadProps: emptyObj,\n getTheadTrProps: emptyObj,\n getTheadThProps: emptyObj,\n getTheadFilterProps: emptyObj,\n getTheadFilterTrProps: emptyObj,\n getTheadFilterThProps: emptyObj,\n getTbodyProps: emptyObj,\n getTrGroupProps: emptyObj,\n getTrProps: emptyObj,\n getTdProps: emptyObj,\n getTfootProps: emptyObj,\n getTfootTrProps: emptyObj,\n getTfootTdProps: emptyObj,\n getPaginationProps: emptyObj,\n getLoadingProps: emptyObj,\n getNoDataProps: emptyObj,\n getResizerProps: emptyObj,\n\n // Global Column Defaults\n column: {\n // Renderers\n Cell: undefined,\n Header: undefined,\n Footer: undefined,\n Aggregated: undefined,\n Pivot: undefined,\n PivotValue: undefined,\n Expander: undefined,\n Filter: undefined,\n Placeholder: undefined,\n // All Columns\n sortable: undefined, // use table default\n resizable: undefined, // use table default\n filterable: undefined, // use table default\n show: true,\n minWidth: 100,\n minResizeWidth: 11,\n // Cells only\n className: '',\n style: {},\n getProps: emptyObj,\n // Pivot only\n aggregate: undefined,\n // Headers only\n headerClassName: '',\n headerStyle: {},\n getHeaderProps: emptyObj,\n // Footers only\n footerClassName: '',\n footerStyle: {},\n getFooterProps: emptyObj,\n filterMethod: undefined,\n filterAll: false,\n sortMethod: undefined,\n },\n\n // Global Expander Column Defaults\n expanderDefaults: {\n sortable: false,\n resizable: false,\n filterable: false,\n width: 35,\n },\n\n pivotDefaults: {\n // extend the defaults for pivoted columns here\n },\n\n // Text\n previousText: 'Previous',\n nextText: 'Next',\n loadingText: 'Loading...',\n noDataText: 'No rows found',\n pageText: 'Page',\n ofText: 'of',\n rowsText: 'rows',\n pageJumpText: 'jump to page',\n rowsSelectorText: 'rows per page',\n\n // Components\n TableComponent: ({ children, className, ...rest }) => (\n \n {children}\n \n ),\n TheadComponent: _.makeTemplateComponent('rt-thead', 'Thead'),\n TbodyComponent: _.makeTemplateComponent('rt-tbody', 'Tbody'),\n TrGroupComponent: ({ children, className, ...rest }) => (\n
\n {children}\n
\n ),\n TrComponent: ({ children, className, ...rest }) => (\n
\n {children}\n
\n ),\n ThComponent: ({\n toggleSort, className, children, ...rest\n }) => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n toggleSort && toggleSort(e)}\n role=\"columnheader\"\n tabIndex=\"-1\" // Resolves eslint issues without implementing keyboard navigation incorrectly\n {...rest}\n >\n {children}\n \n ),\n TdComponent: ({\n toggleSort, className, children, ...rest\n }) => (\n
\n {children}\n
\n ),\n TfootComponent: _.makeTemplateComponent('rt-tfoot', 'Tfoot'),\n FilterComponent: ({ filter, onChange, column }) => (\n onChange(event.target.value)}\n />\n ),\n ExpanderComponent: ({ isExpanded }) => (\n
\n ),\n PivotValueComponent: ({ subRows, value }) => (\n \n {value} {subRows && `(${subRows.length})`}\n \n ),\n AggregatedComponent: ({ subRows, column }) => {\n const previewValues = subRows.filter(d => typeof d[column.id] !== 'undefined').map((row, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {row[column.id]}\n {i < subRows.length - 1 ? ', ' : ''}\n \n ))\n return {previewValues}\n },\n PivotComponent: undefined, // this is a computed default generated using\n // the ExpanderComponent and PivotValueComponent at run-time in methods.js\n PaginationComponent: Pagination,\n PreviousComponent: undefined,\n NextComponent: undefined,\n LoadingComponent: ({\n className, loading, loadingText, ...rest\n }) => (\n
\n
{loadingText}
\n
\n ),\n NoDataComponent: _.makeTemplateComponent('rt-noData', 'NoData'),\n ResizerComponent: _.makeTemplateComponent('rt-resizer', 'Resizer'),\n PadRowComponent: () =>  ,\n}\n","import PropTypes from 'prop-types'\n\nexport default {\n // General\n data: PropTypes.any,\n loading: PropTypes.bool,\n showPagination: PropTypes.bool,\n showPaginationTop: PropTypes.bool,\n showPaginationBottom: PropTypes.bool,\n showPageSizeOptions: PropTypes.bool,\n pageSizeOptions: PropTypes.array,\n defaultPageSize: PropTypes.number,\n showPageJump: PropTypes.bool,\n collapseOnSortingChange: PropTypes.bool,\n collapseOnPageChange: PropTypes.bool,\n collapseOnDataChange: PropTypes.bool,\n freezeWhenExpanded: PropTypes.bool,\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n filterable: PropTypes.bool,\n defaultSortDesc: PropTypes.bool,\n defaultSorted: PropTypes.array,\n defaultFiltered: PropTypes.array,\n defaultResized: PropTypes.array,\n defaultExpanded: PropTypes.object,\n defaultFilterMethod: PropTypes.func,\n defaultSortMethod: PropTypes.func,\n\n // Controlled State Callbacks\n onPageChange: PropTypes.func,\n onPageSizeChange: PropTypes.func,\n onSortedChange: PropTypes.func,\n onFilteredChange: PropTypes.func,\n onResizedChange: PropTypes.func,\n onExpandedChange: PropTypes.func,\n\n // Pivoting\n pivotBy: PropTypes.array,\n\n // Key Constants\n pivotValKey: PropTypes.string,\n pivotIDKey: PropTypes.string,\n subRowsKey: PropTypes.string,\n aggregatedKey: PropTypes.string,\n nestingLevelKey: PropTypes.string,\n originalKey: PropTypes.string,\n indexKey: PropTypes.string,\n groupedByPivotKey: PropTypes.string,\n\n // Server-side Callbacks\n onFetchData: PropTypes.func,\n\n // Classes\n className: PropTypes.string,\n style: PropTypes.object,\n\n // Component decorators\n getProps: PropTypes.func,\n getTableProps: PropTypes.func,\n getTheadGroupProps: PropTypes.func,\n getTheadGroupTrProps: PropTypes.func,\n getTheadGroupThProps: PropTypes.func,\n getTheadProps: PropTypes.func,\n getTheadTrProps: PropTypes.func,\n getTheadThProps: PropTypes.func,\n getTheadFilterProps: PropTypes.func,\n getTheadFilterTrProps: PropTypes.func,\n getTheadFilterThProps: PropTypes.func,\n getTbodyProps: PropTypes.func,\n getTrGroupProps: PropTypes.func,\n getTrProps: PropTypes.func,\n getTdProps: PropTypes.func,\n getTfootProps: PropTypes.func,\n getTfootTrProps: PropTypes.func,\n getTfootTdProps: PropTypes.func,\n getPaginationProps: PropTypes.func,\n getLoadingProps: PropTypes.func,\n getNoDataProps: PropTypes.func,\n getResizerProps: PropTypes.func,\n\n // Global Column Defaults\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n // Renderers\n Cell: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Header: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Footer: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Aggregated: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Pivot: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n PivotValue: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Expander: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Filter: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n\n // All Columns\n sortable: PropTypes.bool, // use table default\n resizable: PropTypes.bool, // use table default\n filterable: PropTypes.bool, // use table default\n show: PropTypes.bool,\n minWidth: PropTypes.number,\n minResizeWidth: PropTypes.number,\n\n // Cells only\n className: PropTypes.string,\n style: PropTypes.object,\n getProps: PropTypes.func,\n\n // Pivot only\n aggregate: PropTypes.func,\n\n // Headers only\n headerClassName: PropTypes.string,\n headerStyle: PropTypes.object,\n getHeaderProps: PropTypes.func,\n\n // Footers only\n footerClassName: PropTypes.string,\n footerStyle: PropTypes.object,\n getFooterProps: PropTypes.func,\n filterMethod: PropTypes.func,\n filterAll: PropTypes.bool,\n sortMethod: PropTypes.func,\n })\n ),\n\n // Global Expander Column Defaults\n expanderDefaults: PropTypes.shape({\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n filterable: PropTypes.bool,\n width: PropTypes.number,\n }),\n\n pivotDefaults: PropTypes.object,\n\n // Text\n previousText: PropTypes.node,\n nextText: PropTypes.node,\n loadingText: PropTypes.node,\n noDataText: PropTypes.node,\n pageText: PropTypes.node,\n ofText: PropTypes.node,\n rowsText: PropTypes.node,\n pageJumpText: PropTypes.node,\n rowsSelectorText: PropTypes.node,\n\n // Components\n TableComponent: PropTypes.elementType,\n TheadComponent: PropTypes.elementType,\n TbodyComponent: PropTypes.elementType,\n TrGroupComponent: PropTypes.elementType,\n TrComponent: PropTypes.elementType,\n ThComponent: PropTypes.elementType,\n TdComponent: PropTypes.elementType,\n TfootComponent: PropTypes.elementType,\n FilterComponent: PropTypes.elementType,\n ExpanderComponent: PropTypes.elementType,\n PivotValueComponent: PropTypes.elementType,\n AggregatedComponent: PropTypes.elementType,\n // this is a computed default generated using\n PivotComponent: PropTypes.elementType,\n // the ExpanderComponent and PivotValueComponent at run-time in methods.js\n PaginationComponent: PropTypes.elementType,\n PreviousComponent: PropTypes.elementType,\n NextComponent: PropTypes.elementType,\n LoadingComponent: PropTypes.elementType,\n NoDataComponent: PropTypes.elementType,\n ResizerComponent: PropTypes.elementType,\n PadRowComponent: PropTypes.elementType,\n}\n","import React, { Component } from 'react'\nimport classnames from 'classnames'\n//\nimport _ from './utils'\nimport Lifecycle from './lifecycle'\nimport Methods from './methods'\nimport defaultProps from './defaultProps'\nimport propTypes from './propTypes'\n\nexport const ReactTableDefaults = defaultProps\n\nexport default class ReactTable extends Methods(Lifecycle(Component)) {\n static propTypes = propTypes\n static defaultProps = defaultProps\n\n constructor (props) {\n super()\n\n this.getResolvedState = this.getResolvedState.bind(this)\n this.getDataModel = this.getDataModel.bind(this)\n this.getSortedData = this.getSortedData.bind(this)\n this.fireFetchData = this.fireFetchData.bind(this)\n this.getPropOrState = this.getPropOrState.bind(this)\n this.getStateOrProp = this.getStateOrProp.bind(this)\n this.filterData = this.filterData.bind(this)\n this.sortData = this.sortData.bind(this)\n this.getMinRows = this.getMinRows.bind(this)\n this.onPageChange = this.onPageChange.bind(this)\n this.onPageSizeChange = this.onPageSizeChange.bind(this)\n this.sortColumn = this.sortColumn.bind(this)\n this.filterColumn = this.filterColumn.bind(this)\n this.resizeColumnStart = this.resizeColumnStart.bind(this)\n this.resizeColumnEnd = this.resizeColumnEnd.bind(this)\n this.resizeColumnMoving = this.resizeColumnMoving.bind(this)\n\n this.state = {\n page: props.defaultPage,\n pageSize: props.defaultPageSize,\n sorted: props.defaultSorted,\n expanded: props.defaultExpanded,\n filtered: props.defaultFiltered,\n resized: props.defaultResized,\n currentlyResizing: false,\n skipNextSort: false,\n }\n }\n\n render () {\n const resolvedState = this.getResolvedState()\n const {\n children,\n className,\n style,\n getProps,\n getTableProps,\n getTheadGroupProps,\n getTheadGroupTrProps,\n getTheadGroupThProps,\n getTheadProps,\n getTheadTrProps,\n getTheadThProps,\n getTheadFilterProps,\n getTheadFilterTrProps,\n getTheadFilterThProps,\n getTbodyProps,\n getTrGroupProps,\n getTrProps,\n getTdProps,\n getTfootProps,\n getTfootTrProps,\n getTfootTdProps,\n getPaginationProps,\n getLoadingProps,\n getNoDataProps,\n getResizerProps,\n showPagination,\n showPaginationTop,\n showPaginationBottom,\n manual,\n loadingText,\n noDataText,\n sortable,\n multiSort,\n resizable,\n filterable,\n // Pivoting State\n pivotIDKey,\n pivotValKey,\n pivotBy,\n subRowsKey,\n aggregatedKey,\n originalKey,\n indexKey,\n groupedByPivotKey,\n // State\n loading,\n pageSize,\n page,\n sorted,\n filtered,\n resized,\n expanded,\n pages,\n onExpandedChange,\n // Components\n TableComponent,\n TheadComponent,\n TbodyComponent,\n TrGroupComponent,\n TrComponent,\n ThComponent,\n TdComponent,\n TfootComponent,\n PaginationComponent,\n LoadingComponent,\n SubComponent,\n NoDataComponent,\n ResizerComponent,\n ExpanderComponent,\n PivotValueComponent,\n PivotComponent,\n AggregatedComponent,\n FilterComponent,\n PadRowComponent,\n // Data model\n resolvedData,\n allVisibleColumns,\n headerGroups,\n hasHeaderGroups,\n // Sorted Data\n sortedData,\n currentlyResizing,\n } = resolvedState\n\n // Pagination\n const startRow = pageSize * page\n const endRow = startRow + pageSize\n let pageRows = manual ? resolvedData : sortedData.slice(startRow, endRow)\n const minRows = this.getMinRows()\n const padRows = _.range(Math.max(minRows - pageRows.length, 0))\n\n const hasColumnFooter = allVisibleColumns.some(d => d.Footer)\n const hasFilters = filterable || allVisibleColumns.some(d => d.filterable)\n\n const recurseRowsViewIndex = (rows, path = [], index = -1) => [\n rows.map((row, i) => {\n index += 1\n const rowWithViewIndex = {\n ...row,\n _viewIndex: index,\n }\n const newPath = path.concat([i])\n if (rowWithViewIndex[subRowsKey] && _.get(expanded, newPath)) {\n [rowWithViewIndex[subRowsKey], index] = recurseRowsViewIndex(\n rowWithViewIndex[subRowsKey],\n newPath,\n index\n )\n }\n return rowWithViewIndex\n }),\n index,\n ];\n [pageRows] = recurseRowsViewIndex(pageRows)\n\n const canPrevious = page > 0\n const canNext = page + 1 < pages\n\n const rowMinWidth = _.sum(\n allVisibleColumns.map(d => {\n const resizedColumn = resized.find(x => x.id === d.id) || {}\n return _.getFirstDefined(resizedColumn.value, d.width, d.minWidth)\n })\n )\n\n let rowIndex = -1\n\n const finalState = {\n ...resolvedState,\n startRow,\n endRow,\n pageRows,\n minRows,\n padRows,\n hasColumnFooter,\n canPrevious,\n canNext,\n rowMinWidth,\n }\n\n const rootProps = _.splitProps(getProps(finalState, undefined, undefined, this))\n const tableProps = _.splitProps(getTableProps(finalState, undefined, undefined, this))\n const tBodyProps = _.splitProps(getTbodyProps(finalState, undefined, undefined, this))\n const loadingProps = getLoadingProps(finalState, undefined, undefined, this)\n const noDataProps = getNoDataProps(finalState, undefined, undefined, this)\n\n // Visual Components\n\n const makeHeaderGroup = (column, i) => {\n const resizedValue = col => (resized.find(x => x.id === col.id) || {}).value\n const flex = _.sum(\n column.columns.map(col => (col.width || resizedValue(col) ? 0 : col.minWidth))\n )\n const width = _.sum(\n column.columns.map(col => _.getFirstDefined(resizedValue(col), col.width, col.minWidth))\n )\n const maxWidth = _.sum(\n column.columns.map(col => _.getFirstDefined(resizedValue(col), col.width, col.maxWidth))\n )\n\n const theadGroupThProps = _.splitProps(\n getTheadGroupThProps(finalState, undefined, column, this)\n )\n const columnHeaderProps = _.splitProps(\n column.getHeaderProps(finalState, undefined, column, this)\n )\n\n const classes = [\n column.headerClassName,\n theadGroupThProps.className,\n columnHeaderProps.className,\n ]\n\n const styles = {\n ...column.headerStyle,\n ...theadGroupThProps.style,\n ...columnHeaderProps.style,\n }\n\n const rest = {\n ...theadGroupThProps.rest,\n ...columnHeaderProps.rest,\n }\n\n const flexStyles = {\n flex: `${flex} 0 auto`,\n width: _.asPx(width),\n maxWidth: _.asPx(maxWidth),\n }\n\n return (\n \n {_.normalizeComponent(column.Header, {\n data: sortedData,\n column,\n })}\n \n )\n }\n\n const makeHeaderGroups = () => {\n const theadGroupProps = _.splitProps(\n getTheadGroupProps(finalState, undefined, undefined, this)\n )\n const theadGroupTrProps = _.splitProps(\n getTheadGroupTrProps(finalState, undefined, undefined, this)\n )\n return (\n \n \n {headerGroups.map(makeHeaderGroup)}\n \n \n )\n }\n\n const makeHeader = (column, i) => {\n const resizedCol = resized.find(x => x.id === column.id) || {}\n const sort = sorted.find(d => d.id === column.id)\n const show = typeof column.show === 'function' ? column.show() : column.show\n const width = _.getFirstDefined(resizedCol.value, column.width, column.minWidth)\n const maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth)\n const theadThProps = _.splitProps(getTheadThProps(finalState, undefined, column, this))\n const columnHeaderProps = _.splitProps(\n column.getHeaderProps(finalState, undefined, column, this)\n )\n\n const classes = [column.headerClassName, theadThProps.className, columnHeaderProps.className]\n\n const styles = {\n ...column.headerStyle,\n ...theadThProps.style,\n ...columnHeaderProps.style,\n }\n\n const rest = {\n ...theadThProps.rest,\n ...columnHeaderProps.rest,\n }\n\n const isResizable = _.getFirstDefined(column.resizable, resizable, false)\n const resizer = isResizable ? (\n this.resizeColumnStart(e, column, false)}\n onTouchStart={e => this.resizeColumnStart(e, column, true)}\n {...getResizerProps('finalState', undefined, column, this)}\n />\n ) : null\n\n const isSortable = _.getFirstDefined(column.sortable, sortable, false)\n\n return (\n {\n if (isSortable) this.sortColumn(column, multiSort ? e.shiftKey : false)\n }}\n {...rest}\n >\n
\n {_.normalizeComponent(column.Header, {\n data: sortedData,\n column,\n })}\n
\n {resizer}\n \n )\n }\n\n const makeHeaders = () => {\n const theadProps = _.splitProps(getTheadProps(finalState, undefined, undefined, this))\n const theadTrProps = _.splitProps(getTheadTrProps(finalState, undefined, undefined, this))\n return (\n \n \n {allVisibleColumns.map(makeHeader)}\n \n \n )\n }\n\n const makeFilter = (column, i) => {\n const resizedCol = resized.find(x => x.id === column.id) || {}\n const width = _.getFirstDefined(resizedCol.value, column.width, column.minWidth)\n const maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth)\n const theadFilterThProps = _.splitProps(\n getTheadFilterThProps(finalState, undefined, column, this)\n )\n const columnHeaderProps = _.splitProps(\n column.getHeaderProps(finalState, undefined, column, this)\n )\n\n const classes = [\n column.headerClassName,\n theadFilterThProps.className,\n columnHeaderProps.className,\n ]\n\n const styles = {\n ...column.headerStyle,\n ...theadFilterThProps.style,\n ...columnHeaderProps.style,\n }\n\n const rest = {\n ...theadFilterThProps.rest,\n ...columnHeaderProps.rest,\n }\n\n const filter = filtered.find(filter => filter.id === column.id)\n\n const ResolvedFilterComponent = column.Filter || FilterComponent\n\n const isFilterable = _.getFirstDefined(column.filterable, filterable, false)\n\n return (\n \n {isFilterable\n ? _.normalizeComponent(\n ResolvedFilterComponent,\n {\n column,\n filter,\n onChange: value => this.filterColumn(column, value),\n },\n defaultProps.column.Filter\n )\n : null}\n \n )\n }\n\n const makeFilters = () => {\n const theadFilterProps = _.splitProps(\n getTheadFilterProps(finalState, undefined, undefined, this)\n )\n const theadFilterTrProps = _.splitProps(\n getTheadFilterTrProps(finalState, undefined, undefined, this)\n )\n return (\n \n \n {allVisibleColumns.map(makeFilter)}\n \n \n )\n }\n\n const makePageRow = (row, i, path = []) => {\n const rowInfo = {\n original: row[originalKey],\n row,\n index: row[indexKey],\n viewIndex: (rowIndex += 1),\n pageSize,\n page,\n level: path.length,\n nestingPath: path.concat([i]),\n aggregated: row[aggregatedKey],\n groupedByPivot: row[groupedByPivotKey],\n subRows: row[subRowsKey],\n }\n const isExpanded = _.get(expanded, rowInfo.nestingPath)\n const trGroupProps = getTrGroupProps(finalState, rowInfo, undefined, this)\n const trProps = _.splitProps(getTrProps(finalState, rowInfo, undefined, this))\n return (\n \n \n {allVisibleColumns.map((column, i2) => {\n const resizedCol = resized.find(x => x.id === column.id) || {}\n const show = typeof column.show === 'function' ? column.show() : column.show\n const width = _.getFirstDefined(resizedCol.value, column.width, column.minWidth)\n const maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth)\n const tdProps = _.splitProps(getTdProps(finalState, rowInfo, column, this))\n const columnProps = _.splitProps(column.getProps(finalState, rowInfo, column, this))\n\n const classes = [tdProps.className, column.className, columnProps.className]\n\n const styles = {\n ...tdProps.style,\n ...column.style,\n ...columnProps.style,\n }\n\n const cellInfo = {\n ...rowInfo,\n isExpanded,\n column: { ...column },\n value: rowInfo.row[column.id],\n pivoted: column.pivoted,\n expander: column.expander,\n resized,\n show,\n width,\n maxWidth,\n tdProps,\n columnProps,\n classes,\n styles,\n }\n\n const value = cellInfo.value\n\n let useOnExpanderClick\n let isBranch\n let isPreview\n\n const onExpanderClick = e => {\n let newExpanded = _.clone(expanded)\n if (isExpanded) {\n newExpanded = _.set(newExpanded, cellInfo.nestingPath, false)\n } else {\n newExpanded = _.set(newExpanded, cellInfo.nestingPath, {})\n }\n\n return this.setStateWithData(\n {\n expanded: newExpanded,\n },\n () =>\n onExpandedChange &&\n onExpandedChange(newExpanded, cellInfo.nestingPath, e, cellInfo)\n )\n }\n\n // Default to a standard cell\n let resolvedCell = _.normalizeComponent(column.Cell, cellInfo, value)\n\n // Resolve Renderers\n const ResolvedAggregatedComponent =\n column.Aggregated || (!column.aggregate ? AggregatedComponent : column.Cell)\n const ResolvedExpanderComponent = column.Expander || ExpanderComponent\n const ResolvedPivotValueComponent = column.PivotValue || PivotValueComponent\n const DefaultResolvedPivotComponent =\n PivotComponent ||\n (props => (\n
\n \n \n
\n ))\n const ResolvedPivotComponent = column.Pivot || DefaultResolvedPivotComponent\n\n // Is this cell expandable?\n if (cellInfo.pivoted || cellInfo.expander) {\n // Make it expandable by defualt\n cellInfo.expandable = true\n useOnExpanderClick = true\n // If pivoted, has no subRows, and does not have a subComponent,\n // do not make expandable\n if (cellInfo.pivoted && !cellInfo.subRows && !SubComponent) {\n cellInfo.expandable = false\n }\n }\n\n if (cellInfo.pivoted) {\n // Is this column a branch?\n isBranch = rowInfo.row[pivotIDKey] === column.id && cellInfo.subRows\n // Should this column be blank?\n isPreview =\n pivotBy.indexOf(column.id) > pivotBy.indexOf(rowInfo.row[pivotIDKey]) &&\n cellInfo.subRows\n // Pivot Cell Render Override\n if (isBranch) {\n // isPivot\n resolvedCell = _.normalizeComponent(\n ResolvedPivotComponent,\n {\n ...cellInfo,\n value: row[pivotValKey],\n },\n row[pivotValKey]\n )\n } else if (isPreview) {\n // Show the pivot preview\n resolvedCell = _.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value)\n } else {\n resolvedCell = null\n }\n } else if (cellInfo.aggregated) {\n resolvedCell = _.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value)\n }\n\n if (cellInfo.expander) {\n resolvedCell = _.normalizeComponent(\n ResolvedExpanderComponent,\n cellInfo,\n row[pivotValKey]\n )\n if (pivotBy) {\n if (cellInfo.groupedByPivot) {\n resolvedCell = null\n }\n if (!cellInfo.subRows && !SubComponent) {\n resolvedCell = null\n }\n }\n }\n\n const resolvedOnExpanderClick = useOnExpanderClick ? onExpanderClick : () => {}\n\n // If there are multiple onClick events, make sure they don't\n // override eachother. This should maybe be expanded to handle all\n // function attributes\n const interactionProps = {\n onClick: resolvedOnExpanderClick,\n }\n\n if (tdProps.rest.onClick) {\n interactionProps.onClick = e => {\n tdProps.rest.onClick(e, () => resolvedOnExpanderClick(e))\n }\n }\n\n if (columnProps.rest.onClick) {\n interactionProps.onClick = e => {\n columnProps.rest.onClick(e, () => resolvedOnExpanderClick(e))\n }\n }\n\n // Return the cell\n return (\n \n {resolvedCell}\n \n )\n })}\n \n {rowInfo.subRows &&\n isExpanded &&\n rowInfo.subRows.map((d, i) => makePageRow(d, i, rowInfo.nestingPath))}\n {SubComponent &&\n !rowInfo.subRows &&\n isExpanded &&\n SubComponent(rowInfo, () => {\n const newExpanded = _.clone(expanded)\n\n _.set(newExpanded, rowInfo.nestingPath, false)\n })}\n
\n )\n }\n\n const makePadColumn = (column, i) => {\n const resizedCol = resized.find(x => x.id === column.id) || {}\n const show = typeof column.show === 'function' ? column.show() : column.show\n const width = _.getFirstDefined(resizedCol.value, column.width, column.minWidth)\n const flex = width\n const maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth)\n const tdProps = _.splitProps(getTdProps(finalState, undefined, column, this))\n const columnProps = _.splitProps(column.getProps(finalState, undefined, column, this))\n\n const classes = [tdProps.className, column.className, columnProps.className]\n\n const styles = {\n ...tdProps.style,\n ...column.style,\n ...columnProps.style,\n }\n\n return (\n \n {_.normalizeComponent(PadRowComponent)}\n \n )\n }\n\n const makePadRow = (row, i) => {\n const trGroupProps = getTrGroupProps(finalState, undefined, undefined, this)\n const trProps = _.splitProps(getTrProps(finalState, undefined, undefined, this))\n return (\n \n \n {allVisibleColumns.map(makePadColumn)}\n \n \n )\n }\n\n const makeColumnFooter = (column, i) => {\n const resizedCol = resized.find(x => x.id === column.id) || {}\n const show = typeof column.show === 'function' ? column.show() : column.show\n const width = _.getFirstDefined(resizedCol.value, column.width, column.minWidth)\n const maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth)\n const tFootTdProps = _.splitProps(getTfootTdProps(finalState, undefined, column, this))\n const columnProps = _.splitProps(column.getProps(finalState, undefined, column, this))\n const columnFooterProps = _.splitProps(\n column.getFooterProps(finalState, undefined, column, this)\n )\n\n const classes = [\n tFootTdProps.className,\n column.className,\n columnProps.className,\n columnFooterProps.className,\n ]\n\n const styles = {\n ...tFootTdProps.style,\n ...column.style,\n ...columnProps.style,\n ...columnFooterProps.style,\n }\n\n return (\n \n {_.normalizeComponent(column.Footer, {\n data: sortedData,\n column,\n })}\n \n )\n }\n\n const makeColumnFooters = () => {\n const tFootProps = _.splitProps(getTfootProps(finalState, undefined, undefined, this))\n const tFootTrProps = _.splitProps(getTfootTrProps(finalState, undefined, undefined, this))\n return (\n \n \n {allVisibleColumns.map(makeColumnFooter)}\n \n \n )\n }\n\n const makePagination = isTop => {\n const paginationProps = _.splitProps(\n getPaginationProps(finalState, undefined, undefined, this)\n )\n return (\n \n )\n }\n\n const makeTable = () => (\n \n {showPagination && showPaginationTop ? (\n
{makePagination(true)}
\n ) : null}\n \n {hasHeaderGroups ? makeHeaderGroups() : null}\n {makeHeaders()}\n {hasFilters ? makeFilters() : null}\n \n {pageRows.map((d, i) => makePageRow(d, i))}\n {padRows.map(makePadRow)}\n \n {hasColumnFooter ? makeColumnFooters() : null}\n \n {showPagination && showPaginationBottom ? (\n
{makePagination(false)}
\n ) : null}\n {!pageRows.length && (\n {_.normalizeComponent(noDataText)}\n )}\n \n \n )\n\n // childProps are optionally passed to a function-as-a-child\n return children ? children(finalState, makeTable, this) : makeTable()\n }\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport enum SeverityLevel {\r\n Verbose = 0,\r\n Information = 1,\r\n Warning = 2,\r\n Error = 3,\r\n Critical = 4,\r\n}\r\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./lib/react-input-mask.production.min.js');\n} else {\n module.exports = require('./lib/react-input-mask.development.js');\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport '@emotion/core';\nimport 'react-dom';\nimport 'prop-types';\nimport '../../dist/utils-06b0d5a4.browser.esm.js';\nimport { x as exportedEqual, w as defaultComponents } from '../../dist/index-4322c0ed.browser.esm.js';\nimport '@emotion/css';\nimport 'react-input-autosize';\nimport { Transition, TransitionGroup } from 'react-transition-group';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// strip transition props off before spreading onto select component\n// note we need to be explicit about innerRef for flow\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n props = _objectWithoutPropertiesLoose(_ref, [\"in\", \"onExited\", \"appear\", \"enter\", \"exit\"]);\n\n return React.createElement(WrappedComponent, props);\n };\n};\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar Fade = function Fade(_ref) {\n var Tag = _ref.component,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 1 : _ref$duration,\n inProp = _ref.in,\n onExited = _ref.onExited,\n props = _objectWithoutPropertiesLoose$1(_ref, [\"component\", \"duration\", \"in\", \"onExited\"]);\n\n var transition = {\n entering: {\n opacity: 0\n },\n entered: {\n opacity: 1,\n transition: \"opacity \" + duration + \"ms\"\n },\n exiting: {\n opacity: 0\n },\n exited: {\n opacity: 0\n }\n };\n return React.createElement(Transition, {\n mountOnEnter: true,\n unmountOnExit: true,\n in: inProp,\n timeout: duration\n }, function (state) {\n var innerProps = {\n style: _extends({}, transition[state])\n };\n return React.createElement(Tag, _extends({\n innerProps: innerProps\n }, props));\n });\n}; // ==============================\n// Collapse Transition\n// ==============================\n\nvar collapseDuration = 260;\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Collapse, _Component);\n\n function Collapse() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.duration = collapseDuration;\n _this.rafID = void 0;\n _this.state = {\n width: 'auto'\n };\n _this.transition = {\n exiting: {\n width: 0,\n transition: \"width \" + _this.duration + \"ms ease-out\"\n },\n exited: {\n width: 0\n }\n };\n\n _this.getWidth = function (ref) {\n if (ref && isNaN(_this.state.width)) {\n /*\n Here we're invoking requestAnimationFrame with a callback invoking our\n call to getBoundingClientRect and setState in order to resolve an edge case\n around portalling. Certain portalling solutions briefly remove children from the DOM\n before appending them to the target node. This is to avoid us trying to call getBoundingClientrect\n while the Select component is in this state.\n */\n // cannot use `offsetWidth` because it is rounded\n _this.rafID = window.requestAnimationFrame(function () {\n var _ref$getBoundingClien = ref.getBoundingClientRect(),\n width = _ref$getBoundingClien.width;\n\n _this.setState({\n width: width\n });\n });\n }\n };\n\n _this.getStyle = function (width) {\n return {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: width\n };\n };\n\n _this.getTransition = function (state) {\n return _this.transition[state];\n };\n\n return _this;\n }\n\n var _proto = Collapse.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.rafID) {\n window.cancelAnimationFrame(this.rafID);\n }\n } // width must be calculated; cannot transition from `undefined` to `number`\n ;\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in;\n var width = this.state.width;\n return React.createElement(Transition, {\n enter: false,\n mountOnEnter: true,\n unmountOnExit: true,\n in: inProp,\n timeout: this.duration\n }, function (state) {\n var style = _extends({}, _this2.getStyle(width), _this2.getTransition(state));\n\n return React.createElement(\"div\", {\n ref: _this2.getWidth,\n style: style\n }, children);\n });\n };\n\n return Collapse;\n}(Component);\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n props = _objectWithoutPropertiesLoose$2(_ref, [\"in\", \"onExited\"]);\n\n return React.createElement(Collapse, {\n in: inProp,\n onExited: onExited\n }, React.createElement(WrappedComponent, _extends$1({\n cropWithEllipsis: inProp\n }, props)));\n };\n};\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends$2({\n component: WrappedComponent,\n duration: props.isMulti ? collapseDuration : 1\n }, props));\n };\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends$3({\n component: WrappedComponent\n }, props));\n };\n};\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\n\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n return function (props) {\n return React.createElement(TransitionGroup, _extends$4({\n component: WrappedComponent\n }, props));\n };\n};\n\nfunction _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose$3(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar makeAnimated = function makeAnimated(externalComponents) {\n if (externalComponents === void 0) {\n externalComponents = {};\n }\n\n var components = defaultComponents({\n components: externalComponents\n });\n\n var Input = components.Input,\n MultiValue = components.MultiValue,\n Placeholder = components.Placeholder,\n SingleValue = components.SingleValue,\n ValueContainer = components.ValueContainer,\n rest = _objectWithoutPropertiesLoose$3(components, [\"Input\", \"MultiValue\", \"Placeholder\", \"SingleValue\", \"ValueContainer\"]);\n\n return _extends$5({\n Input: AnimatedInput(Input),\n MultiValue: AnimatedMultiValue(MultiValue),\n Placeholder: AnimatedPlaceholder(Placeholder),\n SingleValue: AnimatedSingleValue(SingleValue),\n ValueContainer: AnimatedValueContainer(ValueContainer)\n }, rest);\n};\n\nvar AnimatedComponents = makeAnimated();\nvar Input = AnimatedComponents.Input;\nvar MultiValue = AnimatedComponents.MultiValue;\nvar Placeholder = AnimatedComponents.Placeholder;\nvar SingleValue = AnimatedComponents.SingleValue;\nvar ValueContainer = AnimatedComponents.ValueContainer;\nvar index = memoizeOne(makeAnimated, exportedEqual);\n\nexport default index;\nexport { Input, MultiValue, Placeholder, SingleValue, ValueContainer };\n","let props: (keyof DOMRect)[] = [\n\t\"bottom\",\n\t\"height\",\n\t\"left\",\n\t\"right\",\n\t\"top\",\n\t\"width\",\n];\n\nlet rectChanged = (a: DOMRect = {} as DOMRect, b: DOMRect = {} as DOMRect) =>\n\tprops.some((prop) => a[prop] !== b[prop]);\n\nlet observedNodes = new Map();\nlet rafId: number;\n\nlet run = () => {\n\tconst changedStates: RectProps[] = [];\n\tobservedNodes.forEach((state, node) => {\n\t\tlet newRect = node.getBoundingClientRect();\n\t\tif (rectChanged(newRect, state.rect)) {\n\t\t\tstate.rect = newRect;\n\t\t\tchangedStates.push(state);\n\t\t}\n\t});\n\n\tchangedStates.forEach((state) => {\n\t\tstate.callbacks.forEach((cb) => cb(state.rect));\n\t});\n\n\trafId = window.requestAnimationFrame(run);\n};\n\nexport default function observeRect(\n\tnode: Element,\n\tcb: (rect: DOMRect) => void\n) {\n\treturn {\n\t\tobserve() {\n\t\t\tlet wasEmpty = observedNodes.size === 0;\n\t\t\tif (observedNodes.has(node)) {\n\t\t\t\tobservedNodes.get(node)!.callbacks.push(cb);\n\t\t\t} else {\n\t\t\t\tobservedNodes.set(node, {\n\t\t\t\t\trect: undefined,\n\t\t\t\t\thasRectChanged: false,\n\t\t\t\t\tcallbacks: [cb],\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (wasEmpty) run();\n\t\t},\n\n\t\tunobserve() {\n\t\t\tlet state = observedNodes.get(node);\n\t\t\tif (state) {\n\t\t\t\t// Remove the callback\n\t\t\t\tconst index = state.callbacks.indexOf(cb);\n\t\t\t\tif (index >= 0) state.callbacks.splice(index, 1);\n\n\t\t\t\t// Remove the node reference\n\t\t\t\tif (!state.callbacks.length) observedNodes.delete(node);\n\n\t\t\t\t// Stop the loop\n\t\t\t\tif (!observedNodes.size) cancelAnimationFrame(rafId);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport type PartialRect = Partial;\n\nexport type RectProps = {\n\trect: DOMRect | undefined;\n\thasRectChanged: boolean;\n\tcallbacks: Function[];\n};\n","import React, { Component, PureComponent } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { jsx } from '@emotion/core';\nimport { findDOMNode } from 'react-dom';\nimport { i as isTouchCapable, d as isMobileDevice, e as cleanValue, f as scrollIntoView, h as classNames, n as noop, j as isDocumentElement } from './utils-06b0d5a4.browser.esm.js';\nimport { c as clearIndicatorCSS, a as containerCSS, b as css, d as dropdownIndicatorCSS, g as groupCSS, e as groupHeadingCSS, i as indicatorsContainerCSS, f as indicatorSeparatorCSS, h as inputCSS, l as loadingIndicatorCSS, j as loadingMessageCSS, m as menuCSS, k as menuListCSS, n as menuPortalCSS, o as multiValueCSS, p as multiValueLabelCSS, q as multiValueRemoveCSS, r as noOptionsMessageCSS, s as optionCSS, t as placeholderCSS, u as css$1, v as valueContainerCSS, M as MenuPlacer, w as defaultComponents, x as exportedEqual } from './index-4322c0ed.browser.esm.js';\nimport _css from '@emotion/css';\n\nvar diacritics = [{\n base: 'A',\n letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g\n}, {\n base: 'AA',\n letters: /[\\uA732]/g\n}, {\n base: 'AE',\n letters: /[\\u00C6\\u01FC\\u01E2]/g\n}, {\n base: 'AO',\n letters: /[\\uA734]/g\n}, {\n base: 'AU',\n letters: /[\\uA736]/g\n}, {\n base: 'AV',\n letters: /[\\uA738\\uA73A]/g\n}, {\n base: 'AY',\n letters: /[\\uA73C]/g\n}, {\n base: 'B',\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g\n}, {\n base: 'C',\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g\n}, {\n base: 'D',\n letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g\n}, {\n base: 'DZ',\n letters: /[\\u01F1\\u01C4]/g\n}, {\n base: 'Dz',\n letters: /[\\u01F2\\u01C5]/g\n}, {\n base: 'E',\n letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g\n}, {\n base: 'F',\n letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g\n}, {\n base: 'G',\n letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g\n}, {\n base: 'H',\n letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g\n}, {\n base: 'I',\n letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g\n}, {\n base: 'J',\n letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g\n}, {\n base: 'K',\n letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g\n}, {\n base: 'L',\n letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g\n}, {\n base: 'LJ',\n letters: /[\\u01C7]/g\n}, {\n base: 'Lj',\n letters: /[\\u01C8]/g\n}, {\n base: 'M',\n letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g\n}, {\n base: 'N',\n letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g\n}, {\n base: 'NJ',\n letters: /[\\u01CA]/g\n}, {\n base: 'Nj',\n letters: /[\\u01CB]/g\n}, {\n base: 'O',\n letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g\n}, {\n base: 'OI',\n letters: /[\\u01A2]/g\n}, {\n base: 'OO',\n letters: /[\\uA74E]/g\n}, {\n base: 'OU',\n letters: /[\\u0222]/g\n}, {\n base: 'P',\n letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g\n}, {\n base: 'Q',\n letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g\n}, {\n base: 'R',\n letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g\n}, {\n base: 'S',\n letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g\n}, {\n base: 'T',\n letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g\n}, {\n base: 'TZ',\n letters: /[\\uA728]/g\n}, {\n base: 'U',\n letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g\n}, {\n base: 'V',\n letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g\n}, {\n base: 'VY',\n letters: /[\\uA760]/g\n}, {\n base: 'W',\n letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g\n}, {\n base: 'X',\n letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g\n}, {\n base: 'Y',\n letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g\n}, {\n base: 'Z',\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g\n}, {\n base: 'a',\n letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g\n}, {\n base: 'aa',\n letters: /[\\uA733]/g\n}, {\n base: 'ae',\n letters: /[\\u00E6\\u01FD\\u01E3]/g\n}, {\n base: 'ao',\n letters: /[\\uA735]/g\n}, {\n base: 'au',\n letters: /[\\uA737]/g\n}, {\n base: 'av',\n letters: /[\\uA739\\uA73B]/g\n}, {\n base: 'ay',\n letters: /[\\uA73D]/g\n}, {\n base: 'b',\n letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g\n}, {\n base: 'c',\n letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g\n}, {\n base: 'd',\n letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g\n}, {\n base: 'dz',\n letters: /[\\u01F3\\u01C6]/g\n}, {\n base: 'e',\n letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g\n}, {\n base: 'f',\n letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g\n}, {\n base: 'g',\n letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g\n}, {\n base: 'h',\n letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g\n}, {\n base: 'hv',\n letters: /[\\u0195]/g\n}, {\n base: 'i',\n letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g\n}, {\n base: 'j',\n letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g\n}, {\n base: 'k',\n letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g\n}, {\n base: 'l',\n letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g\n}, {\n base: 'lj',\n letters: /[\\u01C9]/g\n}, {\n base: 'm',\n letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g\n}, {\n base: 'n',\n letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g\n}, {\n base: 'nj',\n letters: /[\\u01CC]/g\n}, {\n base: 'o',\n letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g\n}, {\n base: 'oi',\n letters: /[\\u01A3]/g\n}, {\n base: 'ou',\n letters: /[\\u0223]/g\n}, {\n base: 'oo',\n letters: /[\\uA74F]/g\n}, {\n base: 'p',\n letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g\n}, {\n base: 'q',\n letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g\n}, {\n base: 'r',\n letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g\n}, {\n base: 's',\n letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g\n}, {\n base: 't',\n letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g\n}, {\n base: 'tz',\n letters: /[\\uA729]/g\n}, {\n base: 'u',\n letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g\n}, {\n base: 'v',\n letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g\n}, {\n base: 'vy',\n letters: /[\\uA761]/g\n}, {\n base: 'w',\n letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g\n}, {\n base: 'x',\n letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g\n}, {\n base: 'y',\n letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g\n}, {\n base: 'z',\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g\n}];\nvar stripDiacritics = function stripDiacritics(str) {\n for (var i = 0; i < diacritics.length; i++) {\n str = str.replace(diacritics[i].letters, diacritics[i].base);\n }\n\n return str;\n};\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return option.label + \" \" + option.value;\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _extends({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\"\n} : {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFNIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbi8vIEFzc2lzdGl2ZSB0ZXh0IHRvIGRlc2NyaWJlIHZpc3VhbCBlbGVtZW50cy4gSGlkZGVuIGZvciBzaWdodGVkIHVzZXJzLlxuY29uc3QgQTExeVRleHQgPSAocHJvcHM6IEVsZW1lbnRDb25maWc8J3NwYW4nPikgPT4gKFxuICAgIDxzcGFuXG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdhMTF5VGV4dCcsXG4gICAgICAgIHpJbmRleDogOTk5OSxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBjbGlwOiAncmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpJyxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBMTF5VGV4dDtcbiJdfQ== */\"\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends$1({\n css: _ref\n }, props));\n};\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction DummyInput(_ref) {\n var inProp = _ref.in,\n out = _ref.out,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n emotion = _ref.emotion,\n props = _objectWithoutPropertiesLoose(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends$2({\n ref: innerRef\n }, props, {\n css:\n /*#__PURE__*/\n _css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRHVtbXlJbnB1dCh7XG4gIGluOiBpblByb3AsXG4gIG91dCxcbiAgb25FeGl0ZWQsXG4gIGFwcGVhcixcbiAgZW50ZXIsXG4gIGV4aXQsXG4gIGlubmVyUmVmLFxuICBlbW90aW9uLFxuICAuLi5wcm9wc1xufTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLnByb3BzfVxuICAgICAgY3NzPXt7XG4gICAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAgIC8vIGdldCByaWQgb2YgYW55IGRlZmF1bHQgc3R5bGVzXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgICAgb3V0bGluZTogMCxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgLy8gaW1wb3J0YW50ISB3aXRob3V0IGB3aWR0aGAgYnJvd3NlcnMgd29uJ3QgYWxsb3cgZm9jdXNcbiAgICAgICAgd2lkdGg6IDEsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBkZXNrdG9wXG4gICAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gbW9iaWxlIHdoaWxzdCBtYWludGFpbmluZyBcInNjcm9sbCBpbnRvIHZpZXdcIiBiZWhhdmlvdXJcbiAgICAgICAgbGVmdDogLTEwMCxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn1cbiJdfQ== */\")\n }));\n}\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar NodeResolver =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(NodeResolver, _Component);\n\n function NodeResolver() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = NodeResolver.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.innerRef(null);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nfunction _inheritsLoose$1(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nvar canUseDOM = !!( window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$1(ScrollLock, _Component);\n\n function ScrollLock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.originalStyles = {};\n _this.listenerOptions = {\n capture: false,\n passive: false\n };\n return _this;\n }\n\n var _proto = ScrollLock.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = adjustedPadding + \"px\";\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n accountForScrollbars = _this$props2.accountForScrollbars,\n touchScrollTarget = _this$props2.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return ScrollLock;\n}(Component);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\nfunction _inheritsLoose$2(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _ref$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\"\n} : {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbEJsb2NrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZEVSIsImZpbGUiOiJTY3JvbGxCbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IFB1cmVDb21wb25lbnQsIHR5cGUgRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IE5vZGVSZXNvbHZlciBmcm9tICcuL05vZGVSZXNvbHZlcic7XG5pbXBvcnQgU2Nyb2xsTG9jayBmcm9tICcuL1Njcm9sbExvY2svaW5kZXgnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogRWxlbWVudDwqPixcbiAgaXNFbmFibGVkOiBib29sZWFuLFxufTtcbnR5cGUgU3RhdGUgPSB7XG4gIHRvdWNoU2Nyb2xsVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwsXG59O1xuXG4vLyBOT1RFOlxuLy8gV2Ugc2hvdWxkbid0IG5lZWQgdGhpcyBhZnRlciB1cGRhdGluZyB0byBSZWFjdCB2MTYuMy4wLCB3aGljaCBpbnRyb2R1Y2VzOlxuLy8gLSBjcmVhdGVSZWYoKSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjcmVhdGVyZWZcbi8vIC0gZm9yd2FyZFJlZigpIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGZvcndhcmRyZWZcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nyb2xsQmxvY2sgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBzdGF0ZSA9IHsgdG91Y2hTY3JvbGxUYXJnZXQ6IG51bGwgfTtcblxuICAvLyBtdXN0IGJlIGluIHN0YXRlIHRvIHRyaWdnZXIgYSByZS1yZW5kZXIsIG9ubHkgcnVucyBvbmNlIHBlciBpbnN0YW5jZVxuICBnZXRTY3JvbGxUYXJnZXQgPSAocmVmOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGlmIChyZWYgPT09IHRoaXMuc3RhdGUudG91Y2hTY3JvbGxUYXJnZXQpIHJldHVybjtcbiAgICB0aGlzLnNldFN0YXRlKHsgdG91Y2hTY3JvbGxUYXJnZXQ6IHJlZiB9KTtcbiAgfTtcblxuICAvLyB0aGlzIHdpbGwgY2xvc2UgdGhlIG1lbnUgd2hlbiBhIHVzZXIgY2xpY2tzIG91dHNpZGVcbiAgYmx1clNlbGVjdElucHV0ID0gKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGlzRW5hYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHRvdWNoU2Nyb2xsVGFyZ2V0IH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFpbCBlYXJseSBpZiBub3QgZW5hYmxlZFxuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm4gY2hpbGRyZW47XG5cbiAgICAvKlxuICAgICAqIERpdlxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGJsb2NrcyBzY3JvbGxpbmcgb24gbm9uLWJvZHkgZWxlbWVudHMgYmVoaW5kIHRoZSBtZW51XG5cbiAgICAgKiBOb2RlUmVzb2x2ZXJcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKiB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQgdG8gXCJ1bmxvY2tcIiBzY3JvbGwgb25cbiAgICAgKiBtb2JpbGUgZGV2aWNlc1xuXG4gICAgICogU2Nyb2xsTG9ja1xuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGFjdHVhbGx5IGRvZXMgdGhlIHNjcm9sbCBsb2NraW5nXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmJsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgICA8Tm9kZVJlc29sdmVyIGlubmVyUmVmPXt0aGlzLmdldFNjcm9sbFRhcmdldH0+e2NoaWxkcmVufTwvTm9kZVJlc29sdmVyPlxuICAgICAgICB7dG91Y2hTY3JvbGxUYXJnZXQgPyAoXG4gICAgICAgICAgPFNjcm9sbExvY2sgdG91Y2hTY3JvbGxUYXJnZXQ9e3RvdWNoU2Nyb2xsVGFyZ2V0fSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */\"\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\nvar ScrollBlock =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inheritsLoose$2(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n _this.state = {\n touchScrollTarget: null\n };\n\n _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n };\n\n _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n return _this;\n }\n\n var _proto = ScrollBlock.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return jsx(\"div\", null, jsx(\"div\", {\n onClick: this.blurSelectInput,\n css: _ref$1\n }), jsx(NodeResolver, {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? jsx(ScrollLock, {\n touchScrollTarget: touchScrollTarget\n }) : null);\n };\n\n return ScrollBlock;\n}(PureComponent);\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose$3(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar ScrollCaptor =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$3(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.isBottom = false;\n _this.isTop = false;\n _this.scrollTarget = void 0;\n _this.touchStart = void 0;\n\n _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n };\n\n _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n };\n\n _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n };\n\n _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n };\n\n _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n };\n\n return _this;\n }\n\n var _proto = ScrollCaptor.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.startListening(this.scrollTarget);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n };\n\n _proto.startListening = function startListening(el) {\n // bail early if no element is available to attach to\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n };\n\n _proto.stopListening = function stopListening(el) {\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n };\n\n _proto.render = function render() {\n return React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, this.props.children);\n };\n\n return ScrollCaptor;\n}(Component);\n\nfunction ScrollCaptorSwitch(_ref) {\n var _ref$isEnabled = _ref.isEnabled,\n isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,\n props = _objectWithoutPropertiesLoose$1(_ref, [\"isEnabled\"]);\n\n return isEnabled ? React.createElement(ScrollCaptor, props) : props.children;\n}\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event, context) {\n if (context === void 0) {\n context = {};\n }\n\n var _context = context,\n isSearchable = _context.isSearchable,\n isMulti = _context.isMulti,\n label = _context.label,\n isDisabled = _context.isDisabled;\n\n switch (event) {\n case 'menu':\n return \"Use Up and Down to choose options\" + (isDisabled ? '' : ', press Enter to select the currently focused option') + \", press Escape to exit the menu, press Tab to select the option and exit the menu.\";\n\n case 'input':\n return (label ? label : 'Select') + \" is focused \" + (isSearchable ? ',type to refine list' : '') + \", press Down to open the menu, \" + (isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n }\n};\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value,\n isDisabled = context.isDisabled;\n if (!value) return;\n\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \" + value + \", deselected.\";\n\n case 'select-option':\n return isDisabled ? \"option \" + value + \" is disabled. Select another option.\" : \"option \" + value + \", selected.\";\n }\n};\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return \"value \" + getOptionLabel(focusedValue) + \" focused, \" + (selectValue.indexOf(focusedValue) + 1) + \" of \" + selectValue.length + \".\";\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return \"option \" + getOptionLabel(focusedOption) + \" focused\" + (focusedOption.isDisabled ? ' disabled' : '') + \", \" + (options.indexOf(focusedOption) + 1) + \" of \" + options.length + \".\";\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return \"\" + screenReaderMessage + (inputValue ? ' for search term ' + inputValue : '') + \".\";\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$1,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source, target) {\n if (target === void 0) {\n target = {};\n }\n\n // initialize with source styles\n var styles = _extends$3({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\n\nfunction _inheritsLoose$4(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return count + \" result\" + (count !== 1 ? 's' : '') + \" available\";\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\nvar instanceId = 1;\n\nvar Select =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$4(Select, _Component);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this;\n _this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.clearFocusValueOnUpdate = false;\n _this.commonProps = void 0;\n _this.components = void 0;\n _this.hasGroups = false;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.inputIsHiddenAfterUpdate = void 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.cacheComponents = function (components) {\n _this.components = defaultComponents({\n components: components\n });\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _extends$4({}, actionMeta, {\n name: name\n }));\n };\n\n _this.setValue = function (newValue, action, option) {\n if (action === void 0) {\n action = 'set-value';\n }\n\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n var selectValue = _this.state.selectValue;\n\n if (isMulti) {\n if (_this.isOptionSelected(newValue, selectValue)) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'deselect-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue([].concat(selectValue, [newValue]), 'select-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValue = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n };\n\n _this.popValue = function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValue = selectValue.slice(0, selectValue.length - 1);\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getOptionLabel = function (data) {\n return _this.props.getOptionLabel(data);\n };\n\n _this.getOptionValue = function (data) {\n return _this.props.getOptionValue(data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return _this.instancePrefix + \"-\" + element;\n };\n\n _this.getActiveDescendentId = function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n };\n\n _this.announceAriaLiveSelection = function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n _this.announceAriaLiveContext = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: instructionsAriaMessage(event, _extends$4({}, context, {\n label: _this.props['aria-label']\n }))\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n _this.onMenuOpen();\n };\n\n _this.onInputFocus = function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n _this.onKeyDown = function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n focusedOption = _this$state2.focusedOption,\n focusedValue = _this$state2.focusedValue,\n selectValue = _this$state2.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.buildMenuOptions = function (props, selectValue) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this.isOptionDisabled(option, selectValue);\n\n var isSelected = _this.isOptionSelected(option, selectValue);\n\n var label = _this.getOptionLabel(option);\n\n var value = _this.getOptionValue(option);\n\n if (_this.shouldHideSelectedOptions() && isSelected || !_this.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this.selectOption(option);\n };\n var optionId = _this.getElementId('option') + \"-\" + id;\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this.hasGroups) _this.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, itemIndex + \"-\" + i);\n if (option) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = _this.getElementId('group') + \"-\" + itemIndex;\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\" + itemIndex);\n\n if (option) {\n acc.render.push(option);\n acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n };\n\n var _value = _props.value;\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = cleanValue(_value);\n\n _this.buildMenuOptions = memoizeOne(_this.buildMenuOptions, function (newArgs, lastArgs) {\n var _ref6 = newArgs,\n newProps = _ref6[0],\n newSelectValue = _ref6[1];\n var _ref7 = lastArgs,\n lastProps = _ref7[0],\n lastSelectValue = _ref7[1];\n return exportedEqual(newSelectValue, lastSelectValue) && exportedEqual(newProps.inputValue, lastProps.inputValue) && exportedEqual(newProps.options, lastProps.options);\n }).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n var _menuOptions = _props.menuIsOpen ? _this.buildMenuOptions(_props, _selectValue) : {\n render: [],\n focusable: []\n };\n\n _this.state.menuOptions = _menuOptions;\n _this.state.selectValue = _selectValue;\n return _this;\n }\n\n var _proto = Select.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\n menuIsOpen = _this$props8.menuIsOpen,\n inputValue = _this$props8.inputValue; // re-cache custom components\n\n this.cacheComponents(nextProps.components); // rebuild the menu options\n\n if (nextProps.value !== value || nextProps.options !== options || nextProps.menuIsOpen !== menuIsOpen || nextProps.inputValue !== inputValue) {\n var selectValue = cleanValue(nextProps.value);\n var menuOptions = nextProps.menuIsOpen ? this.buildMenuOptions(nextProps, selectValue) : {\n render: [],\n focusable: []\n };\n var focusedValue = this.getNextFocusedValue(selectValue);\n var focusedOption = this.getNextFocusedOption(menuOptions.focusable);\n this.setState({\n menuOptions: menuOptions,\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue\n });\n } // some updates should toggle the state of the input visibility\n\n\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n isDisabled = _this$props9.isDisabled,\n menuIsOpen = _this$props9.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n };\n\n // ==============================\n // Consumer Handlers\n // ==============================\n _proto.onMenuOpen = function onMenuOpen() {\n this.props.onMenuOpen();\n };\n\n _proto.onMenuClose = function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n };\n\n _proto.onInputChange = function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n ;\n\n _proto.focusInput = function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n };\n\n _proto.blurInput = function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n ;\n\n _proto.openMenu = function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var menuOptions = this.buildMenuOptions(this.props, selectValue);\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.setState({\n menuOptions: menuOptions,\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n }, function () {\n _this2.onMenuOpen();\n\n _this2.announceAriaLiveContext({\n event: 'menu'\n });\n });\n };\n\n _proto.focusValue = function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n };\n\n _proto.focusOption = function focusOption(direction) {\n if (direction === void 0) {\n direction = 'first';\n }\n\n var pageSize = this.props.pageSize;\n var _this$state5 = this.state,\n focusedOption = _this$state5.focusedOption,\n menuOptions = _this$state5.menuOptions;\n var options = menuOptions.focusable;\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n this.announceAriaLiveContext({\n event: 'menu',\n context: {\n isDisabled: isOptionDisabled(options[nextFocus])\n }\n });\n };\n\n // ==============================\n // Getters\n // ==============================\n _proto.getTheme = function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _extends$4({}, defaultTheme, this.props.theme);\n };\n\n _proto.getCommonProps = function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n var hasValue = this.hasValue();\n\n var getValue = function getValue() {\n return selectValue;\n };\n\n var cx = classNames.bind(null, classNamePrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n };\n\n _proto.getNextFocusedValue = function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n };\n\n _proto.getNextFocusedOption = function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n };\n\n _proto.hasValue = function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n };\n\n _proto.hasOptions = function hasOptions() {\n return !!this.state.menuOptions.render.length;\n };\n\n _proto.countOptions = function countOptions() {\n return this.state.menuOptions.focusable.length;\n };\n\n _proto.isClearable = function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n };\n\n _proto.isOptionDisabled = function isOptionDisabled(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n };\n\n _proto.isOptionSelected = function isOptionSelected(option, selectValue) {\n var _this3 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this3.getOptionValue(i) === candidate;\n });\n };\n\n _proto.filterOption = function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n };\n\n _proto.formatOptionLabel = function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n };\n\n _proto.formatGroupLabel = function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n ;\n\n // ==============================\n // Composition Handlers\n // ==============================\n _proto.startListeningComposition = function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n };\n\n _proto.stopListeningComposition = function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n };\n\n // ==============================\n // Touch Handlers\n // ==============================\n _proto.startListeningToTouch = function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n };\n\n _proto.stopListeningToTouch = function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n };\n\n // ==============================\n // Renderers\n // ==============================\n _proto.constructAriaLiveMessage = function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : ''; // An aria live message representing the currently focused option in the select.\n\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : ''; // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return focusedValueMsg + \" \" + focusedOptionMsg + \" \" + resultsMsg + \" \" + ariaLiveContext;\n };\n\n _proto.renderInput = function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return React.createElement(DummyInput, _extends$4({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: \"\"\n }, ariaAttributes));\n }\n\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return React.createElement(Input, _extends$4({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n };\n\n _proto.renderPlaceholderOrValue = function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : React.createElement(Placeholder, _extends$4({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return React.createElement(MultiValue, _extends$4({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return React.createElement(SingleValue, _extends$4({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n };\n\n _proto.renderClearIndicator = function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(ClearIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n };\n\n _proto.renderLoadingIndicator = function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return React.createElement(LoadingIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderIndicatorSeparator = function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return React.createElement(IndicatorSeparator, _extends$4({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderDropdownIndicator = function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(DropdownIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderMenu = function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu = _this$components3.Menu,\n MenuList = _this$components3.MenuList,\n MenuPortal = _this$components3.MenuPortal,\n LoadingMessage = _this$components3.LoadingMessage,\n NoOptionsMessage = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return React.createElement(Option, _extends$4({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutPropertiesLoose$2(item, [\"type\"]);\n\n var headingId = item.key + \"-heading\";\n return React.createElement(Group, _extends$4({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = React.createElement(MenuPlacer, _extends$4({}, commonProps, menuPlacementProps), function (_ref8) {\n var ref = _ref8.ref,\n _ref8$placerProps = _ref8.placerProps,\n placement = _ref8$placerProps.placement,\n maxHeight = _ref8$placerProps.maxHeight;\n return React.createElement(Menu, _extends$4({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), React.createElement(ScrollCaptorSwitch, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, React.createElement(ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, React.createElement(MenuList, _extends$4({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }), menuUI))));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? React.createElement(MenuPortal, _extends$4({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n };\n\n _proto.renderFormField = function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return React.createElement(\"input\", {\n key: \"i-\" + i,\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return React.createElement(\"div\", null, input);\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value2\n });\n }\n };\n\n _proto.renderLiveRegion = function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return React.createElement(A11yText, {\n \"aria-live\": \"polite\"\n }, React.createElement(\"p\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), React.createElement(\"p\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n };\n\n _proto.render = function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return React.createElement(SelectContainer, _extends$4({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), React.createElement(Control, _extends$4({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), React.createElement(ValueContainer, _extends$4({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), React.createElement(IndicatorsContainer, _extends$4({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n };\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultTheme as a, createFilter as c, defaultProps as d, mergeStyles as m };\n","import React, { Component } from 'react';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(StateManager, _Component);\n\n function StateManager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.select = void 0;\n _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n };\n\n _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n };\n\n _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n };\n\n _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n };\n\n _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n };\n\n return _this;\n }\n\n var _proto = StateManager.prototype;\n\n _proto.focus = function focus() {\n this.select.focus();\n };\n\n _proto.blur = function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n ;\n\n _proto.getProp = function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n ;\n\n _proto.callProp = function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n };\n\n return StateManager;\n }(Component), _class.defaultProps = defaultProps, _temp;\n};\n\nexport { manageState as m };\n","import React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CacheProvider } from '@emotion/core';\nimport 'react-dom';\nimport 'prop-types';\nimport './utils-06b0d5a4.browser.esm.js';\nexport { y as components } from './index-4322c0ed.browser.esm.js';\nimport { S as Select } from './Select-9fdb8cd0.browser.esm.js';\nexport { c as createFilter, a as defaultTheme, m as mergeStyles } from './Select-9fdb8cd0.browser.esm.js';\nimport '@emotion/css';\nimport 'react-input-autosize';\nimport { m as manageState } from './stateManager-04f734a2.browser.esm.js';\nimport createCache from '@emotion/cache';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar NonceProvider =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(NonceProvider, _Component);\n\n function NonceProvider(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.createEmotionCache = function (nonce) {\n return createCache({\n nonce: nonce\n });\n };\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n var _proto = NonceProvider.prototype;\n\n _proto.render = function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce);\n return React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n };\n\n return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e[\"default\"]:e}var React=_interopDefault(require(\"react\")),reactDom=require(\"react-dom\");function _defaults2(e,t){for(var n=Object.getOwnPropertyNames(t),a=0;aa.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).lengtho.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,ii.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length=r.length?f=r.length:f=o.length&&f value;\nexport const emptyRenderer = () => <> ;\n\nexport const defaultColumn = {\n Cell: defaultRenderer,\n width: 150,\n minWidth: 0,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nfunction mergeProps(...propList) {\n return propList.reduce((props, next) => {\n const { style, className, ...rest } = next\n\n props = {\n ...props,\n ...rest,\n }\n\n if (style) {\n props.style = props.style\n ? { ...(props.style || {}), ...(style || {}) }\n : style\n }\n\n if (className) {\n props.className = props.className\n ? props.className + ' ' + className\n : className\n }\n\n if (props.className === '') {\n delete props.className\n }\n\n return props\n }, {})\n}\n\nfunction handlePropGetter(prevProps, userProps, meta) {\n // Handle a lambda, pass it the previous props\n if (typeof userProps === 'function') {\n return handlePropGetter({}, userProps(prevProps, meta))\n }\n\n // Handle an array, merge each item as separate props\n if (Array.isArray(userProps)) {\n return mergeProps(prevProps, ...userProps)\n }\n\n // Handle an object by default, merge the two objects\n return mergeProps(prevProps, userProps)\n}\n\nexport const makePropGetter = (hooks, meta = {}) => {\n return (userProps = {}) =>\n [...hooks, userProps].reduce(\n (prev, next) =>\n handlePropGetter(prev, next, {\n ...meta,\n userProps,\n }),\n {}\n )\n}\n\nexport const reduceHooks = (hooks, initial, meta = {}, allowUndefined) =>\n hooks.reduce((prev, next) => {\n const nextValue = next(prev, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (!allowUndefined && typeof nextValue === 'undefined') {\n console.info(next)\n throw new Error(\n 'React Table: A reducer hook ☝️ just returned undefined! This is not allowed.'\n )\n }\n }\n return nextValue\n }, initial)\n\nexport const loopHooks = (hooks, context, meta = {}) =>\n hooks.forEach(hook => {\n const nextValue = hook(context, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (typeof nextValue !== 'undefined') {\n console.info(hook, nextValue)\n throw new Error(\n 'React Table: A loop-type hook ☝️ just returned a value! This is not allowed.'\n )\n }\n }\n })\n\nexport function ensurePluginOrder(plugins, befores, pluginName, afters) {\n if (process.env.NODE_ENV !== 'production' && afters) {\n throw new Error(\n `Defining plugins in the \"after\" section of ensurePluginOrder is no longer supported (see plugin ${pluginName})`\n )\n }\n const pluginIndex = plugins.findIndex(\n plugin => plugin.pluginName === pluginName\n )\n\n if (pluginIndex === -1) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`The plugin \"${pluginName}\" was not found in the plugin list!\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\n\n ${pluginName}.pluginName = '${pluginName}'\n`)\n }\n }\n\n befores.forEach(before => {\n const beforeIndex = plugins.findIndex(\n plugin => plugin.pluginName === before\n )\n if (beforeIndex > -1 && beforeIndex > pluginIndex) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `React Table: The ${pluginName} plugin hook must be placed after the ${before} plugin hook!`\n )\n }\n }\n })\n}\n\nexport function functionalUpdate(updater, old) {\n return typeof updater === 'function' ? updater(old) : updater\n}\n\nexport function useGetLatest(obj) {\n const ref = React.useRef()\n ref.current = obj\n\n return React.useCallback(() => ref.current, [])\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn, deps) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useAsyncDebounce(defaultFn, defaultWait = 0) {\n const debounceRef = React.useRef({})\n\n const getDefaultFn = useGetLatest(defaultFn)\n const getDefaultWait = useGetLatest(defaultWait)\n\n return React.useCallback(\n async (...args) => {\n if (!debounceRef.current.promise) {\n debounceRef.current.promise = new Promise((resolve, reject) => {\n debounceRef.current.resolve = resolve\n debounceRef.current.reject = reject\n })\n }\n\n if (debounceRef.current.timeout) {\n clearTimeout(debounceRef.current.timeout)\n }\n\n debounceRef.current.timeout = setTimeout(async () => {\n delete debounceRef.current.timeout\n try {\n debounceRef.current.resolve(await getDefaultFn()(...args))\n } catch (err) {\n debounceRef.current.reject(err)\n } finally {\n delete debounceRef.current.promise\n }\n }, getDefaultWait())\n\n return debounceRef.current.promise\n },\n [getDefaultFn, getDefaultWait]\n )\n}\n\nexport function makeRenderer(instance, column, meta = {}) {\n return (type, userProps = {}) => {\n const Comp = typeof type === 'string' ? column[type] : type\n\n if (typeof Comp === 'undefined') {\n console.info(column)\n throw new Error(renderErr)\n }\n\n return flexRender(Comp, { ...instance, column, ...meta, ...userProps })\n }\n}\n\nexport function flexRender(Comp, props) {\n return isReactComponent(Comp) ? : Comp\n}\n\nfunction isReactComponent(component) {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n","const defaultGetTableProps = props => ({\n role: 'table',\n ...props,\n})\n\nconst defaultGetTableBodyProps = props => ({\n role: 'rowgroup',\n ...props,\n})\n\nconst defaultGetHeaderProps = (props, { column }) => ({\n key: `header_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n role: 'columnheader',\n ...props,\n})\n\nconst defaultGetFooterProps = (props, { column }) => ({\n key: `footer_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n ...props,\n})\n\nconst defaultGetHeaderGroupProps = (props, { index }) => ({\n key: `headerGroup_${index}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetFooterGroupProps = (props, { index }) => ({\n key: `footerGroup_${index}`,\n ...props,\n})\n\nconst defaultGetRowProps = (props, { row }) => ({\n key: `row_${row.id}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetCellProps = (props, { cell }) => ({\n key: `cell_${cell.row.id}_${cell.column.id}`,\n role: 'cell',\n ...props,\n})\n\nexport default function makeDefaultPluginHooks() {\n return {\n useOptions: [],\n stateReducers: [],\n useControlledState: [],\n columns: [],\n columnsDeps: [],\n allColumns: [],\n allColumnsDeps: [],\n accessValue: [],\n materializedColumns: [],\n materializedColumnsDeps: [],\n useInstanceAfterData: [],\n visibleColumns: [],\n visibleColumnsDeps: [],\n headerGroups: [],\n headerGroupsDeps: [],\n useInstanceBeforeDimensions: [],\n useInstance: [],\n prepareRow: [],\n getTableProps: [defaultGetTableProps],\n getTableBodyProps: [defaultGetTableBodyProps],\n getHeaderGroupProps: [defaultGetHeaderGroupProps],\n getFooterGroupProps: [defaultGetFooterGroupProps],\n getHeaderProps: [defaultGetHeaderProps],\n getFooterProps: [defaultGetFooterProps],\n getRowProps: [defaultGetRowProps],\n getCellProps: [defaultGetCellProps],\n useFinalInstance: [],\n }\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useGetLatest,\n makePropGetter,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nactions.resetHiddenColumns = 'resetHiddenColumns'\nactions.toggleHideColumn = 'toggleHideColumn'\nactions.setHiddenColumns = 'setHiddenColumns'\nactions.toggleHideAllColumns = 'toggleHideAllColumns'\n\nexport const useColumnVisibility = hooks => {\n hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps]\n hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps]\n\n hooks.stateReducers.push(reducer)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n hooks.headerGroupsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.hiddenColumns,\n ])\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnVisibility.pluginName = 'useColumnVisibility'\n\nconst defaultGetToggleHiddenProps = (props, { column }) => [\n props,\n {\n onChange: e => {\n column.toggleHidden(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: column.isVisible,\n title: 'Toggle Column Visible',\n },\n]\n\nconst defaultGetToggleHideAllColumnsProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleHideAllColumns(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,\n title: 'Toggle All Columns Hidden',\n indeterminate:\n !instance.allColumnsHidden && instance.state.hiddenColumns.length,\n },\n]\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n hiddenColumns: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetHiddenColumns) {\n return {\n ...state,\n hiddenColumns: instance.initialState.hiddenColumns || [],\n }\n }\n\n if (action.type === actions.toggleHideColumn) {\n const should =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.includes(action.columnId)\n\n const hiddenColumns = should\n ? [...state.hiddenColumns, action.columnId]\n : state.hiddenColumns.filter(d => d !== action.columnId)\n\n return {\n ...state,\n hiddenColumns,\n }\n }\n\n if (action.type === actions.setHiddenColumns) {\n return {\n ...state,\n hiddenColumns: functionalUpdate(action.value, state.hiddenColumns),\n }\n }\n\n if (action.type === actions.toggleHideAllColumns) {\n const shouldAll =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.length\n\n return {\n ...state,\n hiddenColumns: shouldAll ? instance.allColumns.map(d => d.id) : [],\n }\n }\n}\n\nfunction useInstanceBeforeDimensions(instance) {\n const {\n headers,\n state: { hiddenColumns },\n } = instance\n\n const isMountedRef = React.useRef(false)\n\n if (!isMountedRef.current) {\n }\n\n const handleColumn = (column, parentVisible) => {\n column.isVisible = parentVisible && !hiddenColumns.includes(column.id)\n\n let totalVisibleHeaderCount = 0\n\n if (column.headers && column.headers.length) {\n column.headers.forEach(\n subColumn =>\n (totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible))\n )\n } else {\n totalVisibleHeaderCount = column.isVisible ? 1 : 0\n }\n\n column.totalVisibleHeaderCount = totalVisibleHeaderCount\n\n return totalVisibleHeaderCount\n }\n\n let totalVisibleHeaderCount = 0\n\n headers.forEach(\n subHeader => (totalVisibleHeaderCount += handleColumn(subHeader, true))\n )\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n flatHeaders,\n dispatch,\n allColumns,\n getHooks,\n state: { hiddenColumns },\n autoResetHiddenColumns = true,\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n const allColumnsHidden = allColumns.length === hiddenColumns.length\n\n const toggleHideColumn = React.useCallback(\n (columnId, value) =>\n dispatch({ type: actions.toggleHideColumn, columnId, value }),\n [dispatch]\n )\n\n const setHiddenColumns = React.useCallback(\n value => dispatch({ type: actions.setHiddenColumns, value }),\n [dispatch]\n )\n\n const toggleHideAllColumns = React.useCallback(\n value => dispatch({ type: actions.toggleHideAllColumns, value }),\n [dispatch]\n )\n\n const getToggleHideAllColumnsProps = makePropGetter(\n getHooks().getToggleHideAllColumnsProps,\n { instance: getInstance() }\n )\n\n flatHeaders.forEach(column => {\n column.toggleHidden = value => {\n dispatch({\n type: actions.toggleHideColumn,\n columnId: column.id,\n value,\n })\n }\n\n column.getToggleHiddenProps = makePropGetter(\n getHooks().getToggleHiddenProps,\n {\n instance: getInstance(),\n column,\n }\n )\n })\n\n const getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetHiddenColumns()) {\n dispatch({ type: actions.resetHiddenColumns })\n }\n }, [dispatch, columns])\n\n Object.assign(instance, {\n allColumnsHidden,\n toggleHideColumn,\n setHiddenColumns,\n toggleHideAllColumns,\n getToggleHideAllColumnsProps,\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n linkColumnStructure,\n flattenColumns,\n assignColumnAccessor,\n unpreparedAccessWarning,\n makeHeaderGroups,\n decorateColumn,\n} from '../utils'\n\nimport {\n useGetLatest,\n reduceHooks,\n actions,\n loopHooks,\n makePropGetter,\n makeRenderer,\n} from '../publicUtils'\n\nimport makeDefaultPluginHooks from '../makeDefaultPluginHooks'\n\nimport { useColumnVisibility } from './useColumnVisibility'\n\nconst defaultInitialState = {}\nconst defaultColumnInstance = {}\nconst defaultReducer = (state, action, prevState) => state\nconst defaultGetSubRows = (row, index) => row.subRows || []\nconst defaultGetRowId = (row, index, parent) =>\n `${parent ? [parent.id, index].join('.') : index}`\nconst defaultUseControlledState = d => d\n\nfunction applyDefaults(props) {\n const {\n initialState = defaultInitialState,\n defaultColumn = defaultColumnInstance,\n getSubRows = defaultGetSubRows,\n getRowId = defaultGetRowId,\n stateReducer = defaultReducer,\n useControlledState = defaultUseControlledState,\n ...rest\n } = props\n\n return {\n ...rest,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n }\n}\n\nexport const useTable = (props, ...plugins) => {\n // Apply default props\n props = applyDefaults(props)\n\n // Add core plugins\n plugins = [useColumnVisibility, ...plugins]\n\n // Create the table instance\n let instanceRef = React.useRef({})\n\n // Create a getter for the instance (helps avoid a lot of potential memory leaks)\n const getInstance = useGetLatest(instanceRef.current)\n\n // Assign the props, plugins and hooks to the instance\n Object.assign(getInstance(), {\n ...props,\n plugins,\n hooks: makeDefaultPluginHooks(),\n })\n\n // Allow plugins to register hooks as early as possible\n plugins.filter(Boolean).forEach(plugin => {\n plugin(getInstance().hooks)\n })\n\n // Consume all hooks and make a getter for them\n const getHooks = useGetLatest(getInstance().hooks)\n getInstance().getHooks = getHooks\n delete getInstance().hooks\n\n // Allow useOptions hooks to modify the options coming into the table\n Object.assign(\n getInstance(),\n reduceHooks(getHooks().useOptions, applyDefaults(props))\n )\n\n const {\n data,\n columns: userColumns,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n } = getInstance()\n\n // Setup user reducer ref\n const getStateReducer = useGetLatest(stateReducer)\n\n // Build the reducer\n const reducer = React.useCallback(\n (state, action) => {\n // Detect invalid actions\n if (!action.type) {\n console.info({ action })\n throw new Error('Unknown Action 👆')\n }\n\n // Reduce the state from all plugin reducers\n return [\n ...getHooks().stateReducers,\n // Allow the user to add their own state reducer(s)\n ...(Array.isArray(getStateReducer())\n ? getStateReducer()\n : [getStateReducer()]),\n ].reduce(\n (s, handler) => handler(s, action, state, getInstance()) || s,\n state\n )\n },\n [getHooks, getStateReducer, getInstance]\n )\n\n // Start the reducer\n const [reducerState, dispatch] = React.useReducer(reducer, undefined, () =>\n reducer(initialState, { type: actions.init })\n )\n\n // Allow the user to control the final state with hooks\n const state = reduceHooks(\n [...getHooks().useControlledState, useControlledState],\n reducerState,\n { instance: getInstance() }\n )\n\n Object.assign(getInstance(), {\n state,\n dispatch,\n })\n\n // Decorate All the columns\n const columns = React.useMemo(\n () =>\n linkColumnStructure(\n reduceHooks(getHooks().columns, userColumns, {\n instance: getInstance(),\n })\n ),\n [\n getHooks,\n getInstance,\n userColumns,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().columnsDeps, [], { instance: getInstance() }),\n ]\n )\n getInstance().columns = columns\n\n // Get the flat list of all columns and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let allColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().allColumns, flattenColumns(columns), {\n instance: getInstance(),\n }).map(assignColumnAccessor),\n [\n columns,\n getHooks,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().allColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().allColumns = allColumns\n\n // Access the row model using initial columns\n const [rows, flatRows, rowsById] = React.useMemo(() => {\n let rows = []\n let flatRows = []\n const rowsById = {}\n\n const allColumnsQueue = [...allColumns]\n\n while (allColumnsQueue.length) {\n const column = allColumnsQueue.shift()\n accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks: getHooks().accessValue,\n getInstance,\n })\n }\n\n return [rows, flatRows, rowsById]\n }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance])\n\n Object.assign(getInstance(), {\n rows,\n initialRows: [...rows],\n flatRows,\n rowsById,\n // materializedColumns,\n })\n\n loopHooks(getHooks().useInstanceAfterData, getInstance())\n\n // Get the flat list of all columns AFTER the rows\n // have been access, and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let visibleColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().visibleColumns, allColumns, {\n instance: getInstance(),\n }).map(d => decorateColumn(d, defaultColumn)),\n [\n getHooks,\n allColumns,\n getInstance,\n defaultColumn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().visibleColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n\n // Combine new visible columns with all columns\n allColumns = React.useMemo(() => {\n const columns = [...visibleColumns]\n\n allColumns.forEach(column => {\n if (!columns.find(d => d.id === column.id)) {\n columns.push(column)\n }\n })\n\n return columns\n }, [allColumns, visibleColumns])\n getInstance().allColumns = allColumns\n\n if (process.env.NODE_ENV !== 'production') {\n const duplicateColumns = allColumns.filter((column, i) => {\n return allColumns.findIndex(d => d.id === column.id) !== i\n })\n\n if (duplicateColumns.length) {\n console.info(allColumns)\n throw new Error(\n `Duplicate columns were found with ids: \"${duplicateColumns\n .map(d => d.id)\n .join(', ')}\" in the columns array above`\n )\n }\n }\n\n // Make the headerGroups\n const headerGroups = React.useMemo(\n () =>\n reduceHooks(\n getHooks().headerGroups,\n makeHeaderGroups(visibleColumns, defaultColumn),\n getInstance()\n ),\n [\n getHooks,\n visibleColumns,\n defaultColumn,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().headerGroupsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().headerGroups = headerGroups\n\n // Get the first level of headers\n const headers = React.useMemo(\n () => (headerGroups.length ? headerGroups[0].headers : []),\n [headerGroups]\n )\n getInstance().headers = headers\n\n // Provide a flat header list for utilities\n getInstance().flatHeaders = headerGroups.reduce(\n (all, headerGroup) => [...all, ...headerGroup.headers],\n []\n )\n\n loopHooks(getHooks().useInstanceBeforeDimensions, getInstance())\n\n // Filter columns down to visible ones\n const visibleColumnsDep = visibleColumns\n .filter(d => d.isVisible)\n .map(d => d.id)\n .sort()\n .join('_')\n\n visibleColumns = React.useMemo(\n () => visibleColumns.filter(d => d.isVisible),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [visibleColumns, visibleColumnsDep]\n )\n getInstance().visibleColumns = visibleColumns\n\n // Header Visibility is needed by this point\n const [\n totalColumnsMinWidth,\n totalColumnsWidth,\n totalColumnsMaxWidth,\n ] = calculateHeaderWidths(headers)\n\n getInstance().totalColumnsMinWidth = totalColumnsMinWidth\n getInstance().totalColumnsWidth = totalColumnsWidth\n getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth\n\n loopHooks(getHooks().useInstance, getInstance())\n\n // Each materialized header needs to be assigned a render function and other\n // prop getter properties here.\n ;[...getInstance().flatHeaders, ...getInstance().allColumns].forEach(\n column => {\n // Give columns/headers rendering power\n column.render = makeRenderer(getInstance(), column)\n\n // Give columns/headers a default getHeaderProps\n column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {\n instance: getInstance(),\n column,\n })\n\n // Give columns/headers a default getFooterProps\n column.getFooterProps = makePropGetter(getHooks().getFooterProps, {\n instance: getInstance(),\n column,\n })\n }\n )\n\n getInstance().headerGroups = React.useMemo(\n () =>\n headerGroups.filter((headerGroup, i) => {\n // Filter out any headers and headerGroups that don't have visible columns\n headerGroup.headers = headerGroup.headers.filter(column => {\n const recurse = headers =>\n headers.filter(column => {\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n }).length\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n })\n\n // Give headerGroups getRowProps\n if (headerGroup.headers.length) {\n headerGroup.getHeaderGroupProps = makePropGetter(\n getHooks().getHeaderGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n headerGroup.getFooterGroupProps = makePropGetter(\n getHooks().getFooterGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n return true\n }\n\n return false\n }),\n [headerGroups, getInstance, getHooks]\n )\n\n getInstance().footerGroups = [...getInstance().headerGroups].reverse()\n\n // The prepareRow function is absolutely necessary and MUST be called on\n // any rows the user wishes to be displayed.\n\n getInstance().prepareRow = React.useCallback(\n row => {\n row.getRowProps = makePropGetter(getHooks().getRowProps, {\n instance: getInstance(),\n row,\n })\n\n // Build the visible cells for each row\n row.allCells = allColumns.map(column => {\n const value = row.values[column.id]\n\n const cell = {\n column,\n row,\n value,\n }\n\n // Give each cell a getCellProps base\n cell.getCellProps = makePropGetter(getHooks().getCellProps, {\n instance: getInstance(),\n cell,\n })\n\n // Give each cell a renderer function (supports multiple renderers)\n cell.render = makeRenderer(getInstance(), column, {\n row,\n cell,\n value,\n })\n\n return cell\n })\n\n row.cells = visibleColumns.map(column =>\n row.allCells.find(cell => cell.column.id === column.id)\n )\n\n // need to apply any row specific hooks (useExpanded requires this)\n loopHooks(getHooks().prepareRow, row, { instance: getInstance() })\n },\n [getHooks, getInstance, allColumns, visibleColumns]\n )\n\n getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {\n instance: getInstance(),\n })\n\n getInstance().getTableBodyProps = makePropGetter(\n getHooks().getTableBodyProps,\n {\n instance: getInstance(),\n }\n )\n\n loopHooks(getHooks().useFinalInstance, getInstance())\n\n return getInstance()\n}\n\nfunction calculateHeaderWidths(headers, left = 0) {\n let sumTotalMinWidth = 0\n let sumTotalWidth = 0\n let sumTotalMaxWidth = 0\n let sumTotalFlexWidth = 0\n\n headers.forEach(header => {\n let { headers: subHeaders } = header\n\n header.totalLeft = left\n\n if (subHeaders && subHeaders.length) {\n const [\n totalMinWidth,\n totalWidth,\n totalMaxWidth,\n totalFlexWidth,\n ] = calculateHeaderWidths(subHeaders, left)\n header.totalMinWidth = totalMinWidth\n header.totalWidth = totalWidth\n header.totalMaxWidth = totalMaxWidth\n header.totalFlexWidth = totalFlexWidth\n } else {\n header.totalMinWidth = header.minWidth\n header.totalWidth = Math.min(\n Math.max(header.minWidth, header.width),\n header.maxWidth\n )\n header.totalMaxWidth = header.maxWidth\n header.totalFlexWidth = header.canResize ? header.totalWidth : 0\n }\n if (header.isVisible) {\n left += header.totalWidth\n sumTotalMinWidth += header.totalMinWidth\n sumTotalWidth += header.totalWidth\n sumTotalMaxWidth += header.totalMaxWidth\n sumTotalFlexWidth += header.totalFlexWidth\n }\n })\n\n return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth]\n}\n\nfunction accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks,\n getInstance,\n}) {\n // Access the row's data column-by-column\n // We do it this way so we can incrementally add materialized\n // columns after the first pass and avoid excessive looping\n const accessRow = (originalRow, rowIndex, depth = 0, parent, parentRows) => {\n // Keep the original reference around\n const original = originalRow\n\n const id = getRowId(originalRow, rowIndex, parent)\n\n let row = rowsById[id]\n\n // If the row hasn't been created, let's make it\n if (!row) {\n row = {\n id,\n original,\n index: rowIndex,\n depth,\n cells: [{}], // This is a dummy cell\n }\n\n // Override common array functions (and the dummy cell's getCellProps function)\n // to show an error if it is accessed without calling prepareRow\n row.cells.map = unpreparedAccessWarning\n row.cells.filter = unpreparedAccessWarning\n row.cells.forEach = unpreparedAccessWarning\n row.cells[0].getCellProps = unpreparedAccessWarning\n\n // Create the cells and values\n row.values = {}\n\n // Push this row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n row.originalSubRows = getSubRows(originalRow, rowIndex)\n\n // Then recursively access them\n if (row.originalSubRows) {\n const subRows = []\n row.originalSubRows.forEach((d, i) =>\n accessRow(d, i, depth + 1, row, subRows)\n )\n // Keep the new subRows array on the row\n row.subRows = subRows\n }\n } else if (row.subRows) {\n // If the row exists, then it's already been accessed\n // Keep recursing, but don't worry about passing the\n // accumlator array (those rows already exist)\n row.originalSubRows.forEach((d, i) => accessRow(d, i, depth + 1, row))\n }\n\n // If the column has an accessor, use it to get a value\n if (column.accessor) {\n row.values[column.id] = column.accessor(originalRow, rowIndex, row)\n }\n\n // Allow plugins to manipulate the column value\n row.values[column.id] = reduceHooks(\n accessValueHooks,\n row.values[column.id],\n {\n row,\n column,\n instance: getInstance(),\n },\n true\n )\n }\n\n data.forEach((originalRow, rowIndex) =>\n accessRow(originalRow, rowIndex, 0, undefined, rows)\n )\n}\n","import React from 'react'\n\nimport { expandRows } from '../utils'\n\nimport {\n useGetLatest,\n actions,\n useMountedLayoutEffect,\n makePropGetter,\n ensurePluginOrder,\n} from '../publicUtils'\n\n// Actions\nactions.resetExpanded = 'resetExpanded'\nactions.toggleRowExpanded = 'toggleRowExpanded'\nactions.toggleAllRowsExpanded = 'toggleAllRowsExpanded'\n\nexport const useExpanded = hooks => {\n hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps]\n hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseExpanded.pluginName = 'useExpanded'\n\nconst defaultGetToggleAllRowsExpandedProps = (props, { instance }) => [\n props,\n {\n onClick: e => {\n instance.toggleAllRowsExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle All Rows Expanded',\n },\n]\n\nconst defaultGetToggleRowExpandedProps = (props, { row }) => [\n props,\n {\n onClick: () => {\n row.toggleRowExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle Row Expanded',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n expanded: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetExpanded) {\n return {\n ...state,\n expanded: instance.initialState.expanded || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsExpanded) {\n const { value } = action\n const { isAllRowsExpanded, rowsById } = instance\n\n const expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded\n\n if (expandAll) {\n const expanded = {}\n\n Object.keys(rowsById).forEach(rowId => {\n expanded[rowId] = true\n })\n\n return {\n ...state,\n expanded,\n }\n }\n\n return {\n ...state,\n expanded: {},\n }\n }\n\n if (action.type === actions.toggleRowExpanded) {\n const { id, value: setExpanded } = action\n const exists = state.expanded[id]\n\n const shouldExist =\n typeof setExpanded !== 'undefined' ? setExpanded : !exists\n\n if (!exists && shouldExist) {\n return {\n ...state,\n expanded: {\n ...state.expanded,\n [id]: true,\n },\n }\n } else if (exists && !shouldExist) {\n const { [id]: _, ...rest } = state.expanded\n return {\n ...state,\n expanded: rest,\n }\n } else {\n return state\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n rowsById,\n manualExpandedKey = 'expanded',\n paginateExpandedRows = true,\n expandSubRows = true,\n autoResetExpanded = true,\n getHooks,\n plugins,\n state: { expanded },\n dispatch,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'],\n 'useExpanded'\n )\n\n const getAutoResetExpanded = useGetLatest(autoResetExpanded)\n\n let isAllRowsExpanded = Boolean(\n Object.keys(rowsById).length && Object.keys(expanded).length\n )\n\n if (isAllRowsExpanded) {\n if (Object.keys(rowsById).some(id => !expanded[id])) {\n isAllRowsExpanded = false\n }\n }\n\n // Bypass any effects from firing when this changes\n useMountedLayoutEffect(() => {\n if (getAutoResetExpanded()) {\n dispatch({ type: actions.resetExpanded })\n }\n }, [dispatch, data])\n\n const toggleRowExpanded = React.useCallback(\n (id, value) => {\n dispatch({ type: actions.toggleRowExpanded, id, value })\n },\n [dispatch]\n )\n\n const toggleAllRowsExpanded = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsExpanded, value }),\n [dispatch]\n )\n\n const expandedRows = React.useMemo(() => {\n if (paginateExpandedRows) {\n return expandRows(rows, { manualExpandedKey, expanded, expandSubRows })\n }\n\n return rows\n }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows])\n\n const expandedDepth = React.useMemo(() => findExpandedDepth(expanded), [\n expanded,\n ])\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsExpandedProps = makePropGetter(\n getHooks().getToggleAllRowsExpandedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n preExpandedRows: rows,\n expandedRows,\n rows: expandedRows,\n expandedDepth,\n isAllRowsExpanded,\n toggleRowExpanded,\n toggleAllRowsExpanded,\n getToggleAllRowsExpandedProps,\n })\n}\n\nfunction prepareRow(row, { instance: { getHooks }, instance }) {\n row.toggleRowExpanded = set => instance.toggleRowExpanded(row.id, set)\n\n row.getToggleRowExpandedProps = makePropGetter(\n getHooks().getToggleRowExpandedProps,\n {\n instance,\n row,\n }\n )\n}\n\nfunction findExpandedDepth(expanded) {\n let maxDepth = 0\n\n Object.keys(expanded).forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n","export const text = (rows, ids, filterValue) => {\n rows = rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return String(rowValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase())\n })\n })\n return rows\n}\n\ntext.autoRemove = val => !val\n\nexport const exactText = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()\n : true\n })\n })\n}\n\nexactText.autoRemove = val => !val\n\nexport const exactTextCase = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue) === String(filterValue)\n : true\n })\n })\n}\n\nexactTextCase.autoRemove = val => !val\n\nexport const includes = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\nincludes.autoRemove = val => !val || !val.length\n\nexport const includesAll = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesAll.autoRemove = val => !val || !val.length\n\nexport const includesSome = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.some(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesSome.autoRemove = val => !val || !val.length\n\nexport const includesValue = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return filterValue.includes(rowValue)\n })\n })\n}\n\nincludesValue.autoRemove = val => !val || !val.length\n\nexport const exact = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nexact.autoRemove = val => typeof val === 'undefined'\n\nexport const equals = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nequals.autoRemove = val => val == null\n\nexport const between = (rows, ids, filterValue) => {\n let [min, max] = filterValue || []\n\n min = typeof min === 'number' ? min : -Infinity\n max = typeof max === 'number' ? max : Infinity\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetween.autoRemove = val =>\n !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number')\n","import React from 'react'\n\nimport {\n getFirstDefined,\n getFilterMethod,\n shouldAutoRemoveFilter,\n} from '../utils'\n\nimport {\n actions,\n useGetLatest,\n functionalUpdate,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetFilters = 'resetFilters'\nactions.setFilter = 'setFilter'\nactions.setAllFilters = 'setAllFilters'\n\nexport const useFilters = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseFilters.pluginName = 'useFilters'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n filters: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetFilters) {\n return {\n ...state,\n filters: instance.initialState.filters || [],\n }\n }\n\n if (action.type === actions.setFilter) {\n const { columnId, filterValue } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n const previousfilter = state.filters.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n filterValue,\n previousfilter && previousfilter.value\n )\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {\n return {\n ...state,\n filters: state.filters.filter(d => d.id !== columnId),\n }\n }\n\n if (previousfilter) {\n return {\n ...state,\n filters: state.filters.map(d => {\n if (d.id === columnId) {\n return { id: columnId, value: newFilter }\n }\n return d\n }),\n }\n }\n\n return {\n ...state,\n filters: [...state.filters, { id: columnId, value: newFilter }],\n }\n }\n\n if (action.type === actions.setAllFilters) {\n const { filters } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n return {\n ...state,\n // Filter out undefined values\n filters: functionalUpdate(filters, state.filters).filter(filter => {\n const column = allColumns.find(d => d.id === filter.id)\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (\n shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)\n ) {\n return false\n }\n return true\n }),\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n manualFilters,\n defaultCanFilter = false,\n disableFilters,\n state: { filters },\n dispatch,\n autoResetFilters = true,\n } = instance\n\n const setFilter = React.useCallback(\n (columnId, filterValue) => {\n dispatch({ type: actions.setFilter, columnId, filterValue })\n },\n [dispatch]\n )\n\n const setAllFilters = React.useCallback(\n filters => {\n dispatch({\n type: actions.setAllFilters,\n filters,\n })\n },\n [dispatch]\n )\n\n allColumns.forEach(column => {\n const {\n id,\n accessor,\n defaultCanFilter: columnDefaultCanFilter,\n disableFilters: columnDisableFilters,\n } = column\n\n // Determine if a column is filterable\n column.canFilter = accessor\n ? getFirstDefined(\n columnDisableFilters === true ? false : undefined,\n disableFilters === true ? false : undefined,\n true\n )\n : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false)\n\n // Provide the column a way of updating the filter value\n column.setFilter = val => setFilter(column.id, val)\n\n // Provide the current filter value to the column for\n // convenience\n const found = filters.find(d => d.id === id)\n column.filterValue = found && found.value\n })\n\n const [\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n ] = React.useMemo(() => {\n if (manualFilters || !filters.length) {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n // Filters top level and nested rows\n const filterRows = (rows, depth = 0) => {\n let filteredRows = rows\n\n filteredRows = filters.reduce(\n (filteredSoFar, { id: columnId, value: filterValue }) => {\n // Find the filters column\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n return filteredSoFar\n }\n\n if (depth === 0) {\n column.preFilteredRows = filteredSoFar\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(\n `Could not find a valid 'column.filter' for column with the ID: ${column.id}.`\n )\n return filteredSoFar\n }\n\n // Pass the rows, id, filterValue and column to the filterMethod\n // to get the filtered rows back\n column.filteredRows = filterMethod(\n filteredSoFar,\n [columnId],\n filterValue\n )\n\n return column.filteredRows\n },\n rows\n )\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n if (!row.subRows) {\n return\n }\n\n row.subRows =\n row.subRows && row.subRows.length > 0\n ? filterRows(row.subRows, depth + 1)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualFilters,\n filters,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userFilterTypes,\n ])\n\n React.useMemo(() => {\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = allColumns.filter(\n column => !filters.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n nonFilteredColumns.forEach(column => {\n column.preFilteredRows = filteredRows\n column.filteredRows = filteredRows\n })\n }, [filteredRows, filters, allColumns])\n\n const getAutoResetFilters = useGetLatest(autoResetFilters)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetFilters()) {\n dispatch({ type: actions.resetFilters })\n }\n }, [dispatch, manualFilters ? null : data])\n\n Object.assign(instance, {\n preFilteredRows: rows,\n preFilteredFlatRows: flatRows,\n preFilteredRowsById: rowsById,\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n rows: filteredRows,\n flatRows: filteredFlatRows,\n rowsById: filteredRowsById,\n setFilter,\n setAllFilters,\n })\n}\n","import React from 'react'\n\nimport {\n getFilterMethod,\n shouldAutoRemoveFilter,\n getFirstDefined,\n} from '../utils'\n\nimport {\n actions,\n useMountedLayoutEffect,\n functionalUpdate,\n useGetLatest,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetGlobalFilter = 'resetGlobalFilter'\nactions.setGlobalFilter = 'setGlobalFilter'\n\nexport const useGlobalFilter = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseGlobalFilter.pluginName = 'useGlobalFilter'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.resetGlobalFilter) {\n return {\n ...state,\n globalFilter: instance.initialState.globalFilter || undefined,\n }\n }\n\n if (action.type === actions.setGlobalFilter) {\n const { filterValue } = action\n const { userFilterTypes } = instance\n\n const filterMethod = getFilterMethod(\n instance.globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n const newFilter = functionalUpdate(filterValue, state.globalFilter)\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {\n const { globalFilter, ...stateWithoutGlobalFilter } = state\n return stateWithoutGlobalFilter\n }\n\n return {\n ...state,\n globalFilter: newFilter,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n globalFilter,\n manualGlobalFilter,\n state: { globalFilter: globalFilterValue },\n dispatch,\n autoResetGlobalFilter = true,\n disableGlobalFilter,\n } = instance\n\n const setGlobalFilter = React.useCallback(\n filterValue => {\n dispatch({ type: actions.setGlobalFilter, filterValue })\n },\n [dispatch]\n )\n\n // TODO: Create a filter cache for incremental high speed multi-filtering\n // This gets pretty complicated pretty fast, since you have to maintain a\n // cache for each row group (top-level rows, and each row's recursive subrows)\n // This would make multi-filtering a lot faster though. Too far?\n\n const [\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n ] = React.useMemo(() => {\n if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n const filterMethod = getFilterMethod(\n globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(`Could not find a valid 'globalFilter' option.`)\n return rows\n }\n\n allColumns.forEach(column => {\n const { disableGlobalFilter: columnDisableGlobalFilter } = column\n\n column.canFilter = getFirstDefined(\n columnDisableGlobalFilter === true ? false : undefined,\n disableGlobalFilter === true ? false : undefined,\n true\n )\n })\n\n const filterableColumns = allColumns.filter(c => c.canFilter === true)\n\n // Filters top level and nested rows\n const filterRows = filteredRows => {\n filteredRows = filterMethod(\n filteredRows,\n filterableColumns.map(d => d.id),\n globalFilterValue\n )\n\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n\n row.subRows =\n row.subRows && row.subRows.length\n ? filterRows(row.subRows)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualGlobalFilter,\n globalFilterValue,\n globalFilter,\n userFilterTypes,\n allColumns,\n rows,\n flatRows,\n rowsById,\n disableGlobalFilter,\n ])\n\n const getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGlobalFilter()) {\n dispatch({ type: actions.resetGlobalFilter })\n }\n }, [dispatch, manualGlobalFilter ? null : data])\n\n Object.assign(instance, {\n preGlobalFilteredRows: rows,\n preGlobalFilteredFlatRows: flatRows,\n preGlobalFilteredRowsById: rowsById,\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n rows: globalFilteredRows,\n flatRows: globalFilteredFlatRows,\n rowsById: globalFilteredRowsById,\n setGlobalFilter,\n disableGlobalFilter,\n })\n}\n","export function sum(values, aggregatedValues) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return aggregatedValues.reduce(\n (sum, next) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nexport function min(values) {\n let min = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n }\n })\n\n return min\n}\n\nexport function max(values) {\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n max = Math.max(max, value)\n }\n })\n\n return max\n}\n\nexport function minMax(values) {\n let min = values[0] || 0\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return `${min}..${max}`\n}\n\nexport function average(values) {\n return sum(null, values) / values.length\n}\n\nexport function median(values) {\n if (!values.length) {\n return null\n }\n\n const mid = Math.floor(values.length / 2)\n const nums = [...values].sort((a, b) => a - b)\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2\n}\n\nexport function unique(values) {\n return Array.from(new Set(values).values())\n}\n\nexport function uniqueCount(values) {\n return new Set(values).size\n}\n\nexport function count(values) {\n return values.length\n}\n","import React from 'react'\n\nimport * as aggregations from '../aggregations'\n\nimport { getFirstDefined, flattenBy } from '../utils'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst emptyArray = []\nconst emptyObject = {}\n\n// Actions\nactions.resetGroupBy = 'resetGroupBy'\nactions.setGroupBy = 'setGroupBy'\nactions.toggleGroupBy = 'toggleGroupBy'\n\nexport const useGroupBy = hooks => {\n hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.groupBy,\n ])\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseGroupBy.pluginName = 'useGroupBy'\n\nconst defaultGetGroupByToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canGroupBy\n ? e => {\n e.persist()\n header.toggleGroupBy()\n }\n : undefined,\n style: {\n cursor: header.canGroupBy ? 'pointer' : undefined,\n },\n title: 'Toggle GroupBy',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n groupBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetGroupBy) {\n return {\n ...state,\n groupBy: instance.initialState.groupBy || [],\n }\n }\n\n if (action.type === actions.setGroupBy) {\n const { value } = action\n return {\n ...state,\n groupBy: value,\n }\n }\n\n if (action.type === actions.toggleGroupBy) {\n const { columnId, value: setGroupBy } = action\n\n const resolvedGroupBy =\n typeof setGroupBy !== 'undefined'\n ? setGroupBy\n : !state.groupBy.includes(columnId)\n\n if (resolvedGroupBy) {\n return {\n ...state,\n groupBy: [...state.groupBy, columnId],\n }\n }\n\n return {\n ...state,\n groupBy: state.groupBy.filter(d => d !== columnId),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { groupBy },\n },\n }\n) {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n\n const groupByColumns = groupBy\n .map(g => columns.find(col => col.id === g))\n .filter(Boolean)\n\n const nonGroupByColumns = columns.filter(col => !groupBy.includes(col.id))\n\n columns = [...groupByColumns, ...nonGroupByColumns]\n\n columns.forEach(column => {\n column.isGrouped = groupBy.includes(column.id)\n column.groupedIndex = groupBy.indexOf(column.id)\n })\n\n return columns\n}\n\nconst defaultUserAggregations = {}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n flatHeaders,\n groupByFn = defaultGroupByFn,\n manualGroupBy,\n aggregations: userAggregations = defaultUserAggregations,\n plugins,\n state: { groupBy },\n dispatch,\n autoResetGroupBy = true,\n disableGroupBy,\n defaultCanGroupBy,\n getHooks,\n } = instance\n\n ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultGroupBy: defaultColumnGroupBy,\n disableGroupBy: columnDisableGroupBy,\n } = column\n\n column.canGroupBy = accessor\n ? getFirstDefined(\n column.canGroupBy,\n columnDisableGroupBy === true ? false : undefined,\n disableGroupBy === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canGroupBy,\n defaultColumnGroupBy,\n defaultCanGroupBy,\n false\n )\n\n if (column.canGroupBy) {\n column.toggleGroupBy = () => instance.toggleGroupBy(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const toggleGroupBy = React.useCallback(\n (columnId, value) => {\n dispatch({ type: actions.toggleGroupBy, columnId, value })\n },\n [dispatch]\n )\n\n const setGroupBy = React.useCallback(\n value => {\n dispatch({ type: actions.setGroupBy, value })\n },\n [dispatch]\n )\n\n flatHeaders.forEach(header => {\n header.getGroupByToggleProps = makePropGetter(\n getHooks().getGroupByToggleProps,\n { instance: getInstance(), header }\n )\n })\n\n const [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ] = React.useMemo(() => {\n if (manualGroupBy || !groupBy.length) {\n return [\n rows,\n flatRows,\n rowsById,\n emptyArray,\n emptyObject,\n flatRows,\n rowsById,\n ]\n }\n\n // Ensure that the list of filtered columns exist\n const existingGroupBy = groupBy.filter(g =>\n allColumns.find(col => col.id === g)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (leafRows, groupedRows, depth) => {\n const values = {}\n\n allColumns.forEach(column => {\n // Don't aggregate columns that are in the groupBy\n if (existingGroupBy.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n let aggregateFn =\n typeof column.aggregate === 'function'\n ? column.aggregate\n : userAggregations[column.aggregate] ||\n aggregations[column.aggregate]\n\n if (aggregateFn) {\n // Get the columnValues to aggregate\n const groupedValues = groupedRows.map(row => row.values[column.id])\n\n // Get the columnValues to aggregate\n const leafValues = leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n const aggregateValueFn =\n typeof column.aggregateValue === 'function'\n ? column.aggregateValue\n : userAggregations[column.aggregateValue] ||\n aggregations[column.aggregateValue]\n\n if (!aggregateValueFn) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregateValue option for column listed above`\n )\n }\n\n columnValue = aggregateValueFn(columnValue, row, column)\n }\n return columnValue\n })\n\n values[column.id] = aggregateFn(leafValues, groupedValues)\n } else if (column.aggregate) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregate option for column listed above`\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n let groupedFlatRows = []\n const groupedRowsById = {}\n const onlyGroupedFlatRows = []\n const onlyGroupedRowsById = {}\n const nonGroupedFlatRows = []\n const nonGroupedRowsById = {}\n\n // Recursively group the data\n const groupUpRecursively = (rows, depth = 0, parentId) => {\n // This is the last level, just return the rows\n if (depth === existingGroupBy.length) {\n return rows\n }\n\n const columnId = existingGroupBy[depth]\n\n // Group the rows together for this level\n let rowGroupsMap = groupByFn(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Object.entries(rowGroupsMap).map(\n ([groupByVal, groupedRows], index) => {\n let id = `${columnId}:${groupByVal}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, 'leafRows')\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = {\n id,\n isGrouped: true,\n groupByID: columnId,\n groupByVal,\n values,\n subRows,\n leafRows,\n depth,\n index,\n }\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rows)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n // Assign the new data\n return [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ]\n }, [\n manualGroupBy,\n groupBy,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userAggregations,\n groupByFn,\n ])\n\n const getAutoResetGroupBy = useGetLatest(autoResetGroupBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGroupBy()) {\n dispatch({ type: actions.resetGroupBy })\n }\n }, [dispatch, manualGroupBy ? null : data])\n\n Object.assign(instance, {\n preGroupedRows: rows,\n preGroupedFlatRow: flatRows,\n preGroupedRowsById: rowsById,\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n toggleGroupBy,\n setGroupBy,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the groupBy and the pivot cell for the row\n cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID\n // Placeholder cells are any columns in the groupBy that are not grouped\n cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped\n // Aggregated cells are not grouped, not repeated, but still have subRows\n cell.isAggregated =\n !cell.isGrouped && !cell.isPlaceholder && row.subRows?.length\n })\n}\n\nexport function defaultGroupByFn(rows, columnId) {\n return rows.reduce((prev, row, i) => {\n // TODO: Might want to implement a key serializer here so\n // irregular column values can still be grouped if needed?\n const resKey = `${row.values[columnId]}`\n prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : []\n prev[resKey].push(row)\n return prev\n }, {})\n}\n","const reSplitAlphaNumeric = /([0-9]+)/gm\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nexport const alphanumeric = (rowA, rowB, columnId) => {\n let a = getRowValueByColumnID(rowA, columnId)\n let b = getRowValueByColumnID(rowB, columnId)\n // Force to strings (or \"\" for unsupported types)\n a = toString(a)\n b = toString(b)\n\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n a = a.split(reSplitAlphaNumeric).filter(Boolean)\n b = b.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\nexport function datetime(rowA, rowB, columnId) {\n let a = getRowValueByColumnID(rowA, columnId)\n let b = getRowValueByColumnID(rowB, columnId)\n\n a = a.getTime()\n b = b.getTime()\n\n return compareBasic(a, b)\n}\n\nexport function basic(rowA, rowB, columnId) {\n let a = getRowValueByColumnID(rowA, columnId)\n let b = getRowValueByColumnID(rowB, columnId)\n\n return compareBasic(a, b)\n}\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction getRowValueByColumnID(row, columnId) {\n return row.values[columnId]\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n","import React from 'react'\n\nimport {\n actions,\n ensurePluginOrder,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, isFunction } from '../utils'\n\nimport * as sortTypes from '../sortTypes'\n\n// Actions\nactions.resetSortBy = 'resetSortBy'\nactions.setSortBy = 'setSortBy'\nactions.toggleSortBy = 'toggleSortBy'\nactions.clearSortBy = 'clearSortBy'\n\ndefaultColumn.sortType = 'alphanumeric'\ndefaultColumn.sortDescFirst = false\n\nexport const useSortBy = hooks => {\n hooks.getSortByToggleProps = [defaultGetSortByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseSortBy.pluginName = 'useSortBy'\n\nconst defaultGetSortByToggleProps = (props, { instance, column }) => {\n const { isMultiSortEvent = e => e.shiftKey } = instance\n\n return [\n props,\n {\n onClick: column.canSort\n ? e => {\n e.persist()\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e)\n )\n }\n : undefined,\n style: {\n cursor: column.canSort ? 'pointer' : undefined,\n },\n title: column.canSort ? 'Toggle SortBy' : undefined,\n },\n ]\n}\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n sortBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetSortBy) {\n return {\n ...state,\n sortBy: instance.initialState.sortBy || [],\n }\n }\n\n if (action.type === actions.clearSortBy) {\n const { sortBy } = state\n const newSortBy = sortBy.filter(d => d.id !== action.columnId)\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n\n if (action.type === actions.setSortBy) {\n const { sortBy } = action\n return {\n ...state,\n sortBy,\n }\n }\n\n if (action.type === actions.toggleSortBy) {\n const { columnId, desc, multi } = action\n\n const {\n allColumns,\n disableMultiSort,\n disableSortRemove,\n disableMultiRemove,\n maxMultiSortColCount = Number.MAX_SAFE_INTEGER,\n } = instance\n\n const { sortBy } = state\n\n // Find the column for this columnId\n const column = allColumns.find(d => d.id === columnId)\n const { sortDescFirst } = column\n\n // Find any existing sortBy for this column\n const existingSortBy = sortBy.find(d => d.id === columnId)\n const existingIndex = sortBy.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSortBy = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!disableMultiSort && multi) {\n if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (existingIndex !== sortBy.length - 1 || sortBy.length !== 1) {\n sortAction = 'replace'\n } else if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sortBy\n if (\n sortAction === 'toggle' && // Must be toggling\n !disableSortRemove && // If disableSortRemove, disable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? !disableMultiRemove : true) && // If multi, don't allow if disableMultiRemove\n ((existingSortBy && // Finally, detect if it should indeed be removed\n existingSortBy.desc &&\n !sortDescFirst) ||\n (!existingSortBy.desc && sortDescFirst))\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSortBy = [\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n } else if (sortAction === 'add') {\n newSortBy = [\n ...sortBy,\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n // Take latest n columns\n newSortBy.splice(0, newSortBy.length - maxMultiSortColCount)\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSortBy = sortBy.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc : !existingSortBy.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSortBy = sortBy.filter(d => d.id !== columnId)\n }\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n allColumns,\n orderByFn = defaultOrderByFn,\n sortTypes: userSortTypes,\n manualSortBy,\n defaultCanSort,\n disableSortBy,\n flatHeaders,\n state: { sortBy },\n dispatch,\n plugins,\n getHooks,\n autoResetSortBy = true,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'],\n 'useSortBy'\n )\n\n const setSortBy = React.useCallback(\n sortBy => {\n dispatch({ type: actions.setSortBy, sortBy })\n },\n [dispatch]\n )\n\n // Updates sorting based on a columnId, desc flag and multi flag\n const toggleSortBy = React.useCallback(\n (columnId, desc, multi) => {\n dispatch({ type: actions.toggleSortBy, columnId, desc, multi })\n },\n [dispatch]\n )\n\n // use reference to avoid memory leak in #1608\n const getInstance = useGetLatest(instance)\n\n // Add the getSortByToggleProps method to columns and headers\n flatHeaders.forEach(column => {\n const {\n accessor,\n canSort: defaultColumnCanSort,\n disableSortBy: columnDisableSortBy,\n id,\n } = column\n\n const canSort = accessor\n ? getFirstDefined(\n columnDisableSortBy === true ? false : undefined,\n disableSortBy === true ? false : undefined,\n true\n )\n : getFirstDefined(defaultCanSort, defaultColumnCanSort, false)\n\n column.canSort = canSort\n\n if (column.canSort) {\n column.toggleSortBy = (desc, multi) =>\n toggleSortBy(column.id, desc, multi)\n\n column.clearSortBy = () => {\n dispatch({ type: actions.clearSortBy, columnId: column.id })\n }\n }\n\n column.getSortByToggleProps = makePropGetter(\n getHooks().getSortByToggleProps,\n {\n instance: getInstance(),\n column,\n }\n )\n\n const columnSort = sortBy.find(d => d.id === id)\n column.isSorted = !!columnSort\n column.sortedIndex = sortBy.findIndex(d => d.id === id)\n column.isSortedDesc = column.isSorted ? columnSort.desc : undefined\n })\n\n const [sortedRows, sortedFlatRows] = React.useMemo(() => {\n if (manualSortBy || !sortBy.length) {\n return [rows, flatRows]\n }\n\n const sortedFlatRows = []\n\n // Filter out sortBys that correspond to non existing columns\n const availableSortBy = sortBy.filter(sort =>\n allColumns.find(col => col.id === sort.id)\n )\n\n const sortData = rows => {\n // Use the orderByFn to compose multiple sortBy's together.\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = orderByFn(\n rows,\n availableSortBy.map(sort => {\n // Support custom sorting methods for each column\n const column = allColumns.find(d => d.id === sort.id)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${sort.id} while sorting`\n )\n }\n\n const { sortType } = column\n\n // Look up sortBy functions in this order:\n // column function\n // column string lookup on user sortType\n // column string lookup on built-in sortType\n // default function\n // default string lookup on user sortType\n // default string lookup on built-in sortType\n const sortMethod =\n isFunction(sortType) ||\n (userSortTypes || {})[sortType] ||\n sortTypes[sortType]\n\n if (!sortMethod) {\n throw new Error(\n `React-Table: Could not find a valid sortType of '${sortType}' for column '${sort.id}'.`\n )\n }\n\n // Return the correct sortFn.\n // This function should always return in ascending order\n return (a, b) => sortMethod(a, b, sort.id, sort.desc)\n }),\n // Map the directions\n availableSortBy.map(sort => {\n // Detect and use the sortInverted option\n const column = allColumns.find(d => d.id === sort.id)\n\n if (column && column.sortInverted) {\n return sort.desc\n }\n\n return !sort.desc\n })\n )\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length === 0) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return [sortData(rows), sortedFlatRows]\n }, [\n manualSortBy,\n sortBy,\n rows,\n flatRows,\n allColumns,\n orderByFn,\n userSortTypes,\n ])\n\n const getAutoResetSortBy = useGetLatest(autoResetSortBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSortBy()) {\n dispatch({ type: actions.resetSortBy })\n }\n }, [manualSortBy ? null : data])\n\n Object.assign(instance, {\n preSortedRows: rows,\n preSortedFlatRows: flatRows,\n sortedRows,\n sortedFlatRows,\n rows: sortedRows,\n flatRows: sortedFlatRows,\n setSortBy,\n toggleSortBy,\n })\n}\n\nexport function defaultOrderByFn(arr, funcs, dirs) {\n return [...arr].sort((rowA, rowB) => {\n for (let i = 0; i < funcs.length; i += 1) {\n const sortFn = funcs[i]\n const desc = dirs[i] === false || dirs[i] === 'desc'\n const sortInt = sortFn(rowA, rowB)\n if (sortInt !== 0) {\n return desc ? -sortInt : sortInt\n }\n }\n return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n actions,\n ensurePluginOrder,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { expandRows } from '../utils'\n\nconst pluginName = 'usePagination'\n\n// Actions\nactions.resetPage = 'resetPage'\nactions.gotoPage = 'gotoPage'\nactions.setPageSize = 'setPageSize'\n\nexport const usePagination = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nusePagination.pluginName = pluginName\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pageSize: 10,\n pageIndex: 0,\n ...state,\n }\n }\n\n if (action.type === actions.resetPage) {\n return {\n ...state,\n pageIndex: instance.initialState.pageIndex || 0,\n }\n }\n\n if (action.type === actions.gotoPage) {\n const { pageCount, page } = instance\n const newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex)\n let canNavigate = false\n\n if (newPageIndex > state.pageIndex) {\n // next page\n canNavigate =\n pageCount === -1\n ? page.length >= state.pageSize\n : newPageIndex < pageCount\n } else if (newPageIndex < state.pageIndex) {\n // prev page\n canNavigate = newPageIndex > -1\n }\n\n if (!canNavigate) {\n return state\n }\n\n return {\n ...state,\n pageIndex: newPageIndex,\n }\n }\n\n if (action.type === actions.setPageSize) {\n const { pageSize } = action\n const topRowIndex = state.pageSize * state.pageIndex\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...state,\n pageIndex,\n pageSize,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n rows,\n autoResetPage = true,\n manualExpandedKey = 'expanded',\n plugins,\n pageCount: userPageCount,\n paginateExpandedRows = true,\n expandSubRows = true,\n state: {\n pageSize,\n pageIndex,\n expanded,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n },\n dispatch,\n data,\n manualPagination,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'],\n 'usePagination'\n )\n\n const getAutoResetPage = useGetLatest(autoResetPage)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPage()) {\n dispatch({ type: actions.resetPage })\n }\n }, [\n dispatch,\n manualPagination ? null : data,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n ])\n\n const pageCount = manualPagination\n ? userPageCount\n : Math.ceil(rows.length / pageSize)\n\n const pageOptions = React.useMemo(\n () =>\n pageCount > 0\n ? [...new Array(pageCount)].fill(null).map((d, i) => i)\n : [],\n [pageCount]\n )\n\n const page = React.useMemo(() => {\n let page\n\n if (manualPagination) {\n page = rows\n } else {\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n page = rows.slice(pageStart, pageEnd)\n }\n\n if (paginateExpandedRows) {\n return page\n }\n\n return expandRows(page, { manualExpandedKey, expanded, expandSubRows })\n }, [\n expandSubRows,\n expanded,\n manualExpandedKey,\n manualPagination,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n rows,\n ])\n\n const canPreviousPage = pageIndex > 0\n const canNextPage =\n pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1\n\n const gotoPage = React.useCallback(\n pageIndex => {\n dispatch({ type: actions.gotoPage, pageIndex })\n },\n [dispatch]\n )\n\n const previousPage = React.useCallback(() => {\n return gotoPage(old => old - 1)\n }, [gotoPage])\n\n const nextPage = React.useCallback(() => {\n return gotoPage(old => old + 1)\n }, [gotoPage])\n\n const setPageSize = React.useCallback(\n pageSize => {\n dispatch({ type: actions.setPageSize, pageSize })\n },\n [dispatch]\n )\n\n Object.assign(instance, {\n pageOptions,\n pageCount,\n page,\n canPreviousPage,\n canNextPage,\n gotoPage,\n previousPage,\n nextPage,\n setPageSize,\n })\n}\n","/* istanbul ignore file */\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { flattenColumns, getFirstDefined } from '../utils'\n\n// Actions\nactions.resetPivot = 'resetPivot'\nactions.togglePivot = 'togglePivot'\n\nexport const _UNSTABLE_usePivotColumns = hooks => {\n hooks.getPivotToggleProps = [defaultGetPivotToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstanceAfterData.push(useInstanceAfterData)\n hooks.allColumns.push(allColumns)\n hooks.accessValue.push(accessValue)\n hooks.materializedColumns.push(materializedColumns)\n hooks.materializedColumnsDeps.push(materializedColumnsDeps)\n hooks.visibleColumns.push(visibleColumns)\n hooks.visibleColumnsDeps.push(visibleColumnsDeps)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\n_UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns'\n\nconst defaultPivotColumns = []\n\nconst defaultGetPivotToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canPivot\n ? e => {\n e.persist()\n header.togglePivot()\n }\n : undefined,\n style: {\n cursor: header.canPivot ? 'pointer' : undefined,\n },\n title: 'Toggle Pivot',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pivotColumns: defaultPivotColumns,\n ...state,\n }\n }\n\n if (action.type === actions.resetPivot) {\n return {\n ...state,\n pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns,\n }\n }\n\n if (action.type === actions.togglePivot) {\n const { columnId, value: setPivot } = action\n\n const resolvedPivot =\n typeof setPivot !== 'undefined'\n ? setPivot\n : !state.pivotColumns.includes(columnId)\n\n if (resolvedPivot) {\n return {\n ...state,\n pivotColumns: [...state.pivotColumns, columnId],\n }\n }\n\n return {\n ...state,\n pivotColumns: state.pivotColumns.filter(d => d !== columnId),\n }\n }\n}\n\nfunction useInstanceAfterData(instance) {\n instance.allColumns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n })\n}\n\nfunction allColumns(columns, { instance }) {\n columns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n column.uniqueValues = new Set()\n })\n return columns\n}\n\nfunction accessValue(value, { column }) {\n if (column.uniqueValues && typeof value !== 'undefined') {\n column.uniqueValues.add(value)\n }\n return value\n}\n\nfunction materializedColumns(materialized, { instance }) {\n const { allColumns, state } = instance\n\n if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {\n return materialized\n }\n\n const pivotColumns = state.pivotColumns\n .map(id => allColumns.find(d => d.id === id))\n .filter(Boolean)\n\n const sourceColumns = allColumns.filter(\n d =>\n !d.isPivotSource &&\n !state.groupBy.includes(d.id) &&\n !state.pivotColumns.includes(d.id)\n )\n\n const buildPivotColumns = (depth = 0, parent, pivotFilters = []) => {\n const pivotColumn = pivotColumns[depth]\n\n if (!pivotColumn) {\n return sourceColumns.map(sourceColumn => {\n // TODO: We could offer support here for renesting pivoted\n // columns inside copies of their header groups. For now,\n // that seems like it would be (1) overkill on nesting, considering\n // you already get nesting for every pivot level and (2)\n // really hard. :)\n\n return {\n ...sourceColumn,\n canPivot: false,\n isPivoted: true,\n parent,\n depth: depth,\n id: `${parent ? `${parent.id}.${sourceColumn.id}` : sourceColumn.id}`,\n accessor: (originalRow, i, row) => {\n if (pivotFilters.every(filter => filter(row))) {\n return row.values[sourceColumn.id]\n }\n },\n }\n })\n }\n\n const uniqueValues = Array.from(pivotColumn.uniqueValues).sort()\n\n return uniqueValues.map(uniqueValue => {\n const columnGroup = {\n ...pivotColumn,\n Header:\n pivotColumn.PivotHeader || typeof pivotColumn.header === 'string'\n ? `${pivotColumn.Header}: ${uniqueValue}`\n : uniqueValue,\n isPivotGroup: true,\n parent,\n depth,\n id: parent\n ? `${parent.id}.${pivotColumn.id}.${uniqueValue}`\n : `${pivotColumn.id}.${uniqueValue}`,\n pivotValue: uniqueValue,\n }\n\n columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [\n ...pivotFilters,\n row => row.values[pivotColumn.id] === uniqueValue,\n ])\n\n return columnGroup\n })\n }\n\n const newMaterialized = flattenColumns(buildPivotColumns())\n\n return [...materialized, ...newMaterialized]\n}\n\nfunction materializedColumnsDeps(\n deps,\n {\n instance: {\n state: { pivotColumns, groupBy },\n },\n }\n) {\n return [...deps, pivotColumns, groupBy]\n}\n\nfunction visibleColumns(visibleColumns, { instance: { state } }) {\n visibleColumns = visibleColumns.filter(d => !d.isPivotSource)\n\n if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {\n visibleColumns = visibleColumns.filter(\n column => column.isGrouped || column.isPivoted\n )\n }\n\n return visibleColumns\n}\n\nfunction visibleColumnsDeps(deps, { instance }) {\n return [...deps, instance.state.pivotColumns, instance.state.groupBy]\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n allColumns,\n flatHeaders,\n // pivotFn = defaultPivotFn,\n // manualPivot,\n getHooks,\n plugins,\n dispatch,\n autoResetPivot = true,\n manaulPivot,\n disablePivot,\n defaultCanPivot,\n } = instance\n\n ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultPivot: defaultColumnPivot,\n disablePivot: columnDisablePivot,\n } = column\n\n column.canPivot = accessor\n ? getFirstDefined(\n column.canPivot,\n columnDisablePivot === true ? false : undefined,\n disablePivot === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canPivot,\n defaultColumnPivot,\n defaultCanPivot,\n false\n )\n\n if (column.canPivot) {\n column.togglePivot = () => instance.togglePivot(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const togglePivot = (columnId, value) => {\n dispatch({ type: actions.togglePivot, columnId, value })\n }\n\n flatHeaders.forEach(header => {\n header.getPivotToggleProps = makePropGetter(\n getHooks().getPivotToggleProps,\n {\n instance: getInstance(),\n header,\n }\n )\n })\n\n const getAutoResetPivot = useGetLatest(autoResetPivot)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPivot()) {\n dispatch({ type: actions.resetPivot })\n }\n }, [dispatch, manaulPivot ? null : columns])\n\n Object.assign(instance, {\n togglePivot,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the pivotColumns and the pivot cell for the row\n cell.isPivoted = cell.column.isPivoted\n })\n}\n","import React from 'react'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nconst pluginName = 'useRowSelect'\n\n// Actions\nactions.resetSelectedRows = 'resetSelectedRows'\nactions.toggleAllRowsSelected = 'toggleAllRowsSelected'\nactions.toggleRowSelected = 'toggleRowSelected'\nactions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected'\n\nexport const useRowSelect = hooks => {\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps]\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps]\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowSelect.pluginName = pluginName\n\nconst defaultGetToggleRowSelectedProps = (props, { instance, row }) => {\n const { manualRowSelectedKey = 'isSelected' } = instance\n let checked = false\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true\n } else {\n checked = row.isSelected\n }\n\n return [\n props,\n {\n onChange: e => {\n row.toggleRowSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked,\n title: 'Toggle Row Selected',\n indeterminate: row.isSomeSelected,\n },\n ]\n}\n\nconst defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleAllRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n]\n\nconst defaultGetToggleAllPageRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n]\n\n// eslint-disable-next-line max-params\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action\n const {\n isAllRowsSelected,\n rowsById,\n nonGroupedRowsById = rowsById,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = Object.assign({}, state.selectedRowIds)\n\n if (selectAll) {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n selectedRowIds[rowId] = true\n })\n } else {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n delete selectedRowIds[rowId]\n })\n }\n\n return {\n ...state,\n selectedRowIds,\n }\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action\n const { rowsById, selectSubRows = true, getSubRows } = instance\n const isSelected = state.selectedRowIds[id]\n const shouldExist =\n typeof setSelected !== 'undefined' ? setSelected : !isSelected\n\n if (isSelected === shouldExist) {\n return state\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n\n handleRowById(id)\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllPageRowsSelected\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (!row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n\n page.forEach(row => handleRowById(row.id))\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n return state\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n state: { selectedRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'],\n 'useRowSelect'\n )\n\n const selectedFlatRows = React.useMemo(() => {\n const selectedFlatRows = []\n\n rows.forEach(row => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id]\n row.isSelected = !!isSelected\n row.isSomeSelected = isSelected === null\n\n if (isSelected) {\n selectedFlatRows.push(row)\n }\n })\n\n return selectedFlatRows\n }, [rows, selectSubRows, selectedRowIds, getSubRows])\n\n let isAllRowsSelected = Boolean(\n Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length\n )\n\n let isAllPageRowsSelected = isAllRowsSelected\n\n if (isAllRowsSelected) {\n if (Object.keys(nonGroupedRowsById).some(id => !selectedRowIds[id])) {\n isAllRowsSelected = false\n }\n }\n\n if (!isAllRowsSelected) {\n if (page && page.length && page.some(({ id }) => !selectedRowIds[id])) {\n isAllPageRowsSelected = false\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows })\n }\n }, [dispatch, data])\n\n const toggleAllRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n )\n\n const toggleAllPageRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n )\n\n const toggleRowSelected = React.useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n )\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n { instance: getInstance() }\n )\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n selectedFlatRows,\n isAllRowsSelected,\n isAllPageRowsSelected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n row.toggleRowSelected = set => instance.toggleRowSelected(row.id, set)\n\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n { instance: instance, row }\n )\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true\n }\n\n const subRows = getSubRows(row)\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n return allChildrenSelected ? true : someSelected ? null : false\n }\n\n return false\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst defaultInitialRowStateAccessor = row => ({})\nconst defaultInitialCellStateAccessor = cell => ({})\n\n// Actions\nactions.setRowState = 'setRowState'\nactions.setCellState = 'setCellState'\nactions.resetRowState = 'resetRowState'\n\nexport const useRowState = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowState.pluginName = 'useRowState'\n\nfunction reducer(state, action, previousState, instance) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n rowsById,\n } = instance\n\n if (action.type === actions.init) {\n return {\n rowState: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetRowState) {\n return {\n ...state,\n rowState: instance.initialState.rowState || {},\n }\n }\n\n if (action.type === actions.setRowState) {\n const { rowId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: functionalUpdate(value, oldRowState),\n },\n }\n }\n\n if (action.type === actions.setCellState) {\n const { rowId, columnId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n const oldCellState =\n typeof oldRowState?.cellState?.[columnId] !== 'undefined'\n ? oldRowState.cellState[columnId]\n : initialCellStateAccessor(\n rowsById[rowId]?.cells?.find(cell => cell.column.id === columnId)\n )\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: {\n ...oldRowState,\n cellState: {\n ...(oldRowState.cellState || {}),\n [columnId]: functionalUpdate(value, oldCellState),\n },\n },\n },\n }\n }\n}\n\nfunction useInstance(instance) {\n const { autoResetRowState = true, data, dispatch } = instance\n\n const setRowState = React.useCallback(\n (rowId, value) =>\n dispatch({\n type: actions.setRowState,\n rowId,\n value,\n }),\n [dispatch]\n )\n\n const setCellState = React.useCallback(\n (rowId, columnId, value) =>\n dispatch({\n type: actions.setCellState,\n rowId,\n columnId,\n value,\n }),\n [dispatch]\n )\n\n const getAutoResetRowState = useGetLatest(autoResetRowState)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetRowState()) {\n dispatch({ type: actions.resetRowState })\n }\n }, [data])\n\n Object.assign(instance, {\n setRowState,\n setCellState,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n state: { rowState },\n } = instance\n\n if (row) {\n row.state =\n typeof rowState[row.id] !== 'undefined'\n ? rowState[row.id]\n : initialRowStateAccessor(row)\n\n row.setState = updater => {\n return instance.setRowState(row.id, updater)\n }\n\n row.cells.forEach(cell => {\n if (!row.state.cellState) {\n row.state.cellState = {}\n }\n\n cell.state =\n typeof row.state.cellState[cell.column.id] !== 'undefined'\n ? row.state.cellState[cell.column.id]\n : initialCellStateAccessor(cell)\n\n cell.setState = updater => {\n return instance.setCellState(row.id, cell.column.id, updater)\n }\n })\n }\n}\n","import React from 'react'\n\nimport { functionalUpdate, actions } from '../publicUtils'\n\n// Actions\nactions.resetColumnOrder = 'resetColumnOrder'\nactions.setColumnOrder = 'setColumnOrder'\n\nexport const useColumnOrder = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => {\n return [...deps, instance.state.columnOrder]\n })\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnOrder.pluginName = 'useColumnOrder'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n columnOrder: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetColumnOrder) {\n return {\n ...state,\n columnOrder: instance.initialState.columnOrder || [],\n }\n }\n\n if (action.type === actions.setColumnOrder) {\n return {\n ...state,\n columnOrder: functionalUpdate(action.columnOrder, state.columnOrder),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { columnOrder },\n },\n }\n) {\n // If there is no order, return the normal columns\n if (!columnOrder || !columnOrder.length) {\n return columns\n }\n\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n const columnsInOrder = []\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId)\n if (foundIndex > -1) {\n columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0])\n }\n }\n\n // If there are any columns left, add them to the end\n return [...columnsInOrder, ...columnsCopy]\n}\n\nfunction useInstance(instance) {\n const { dispatch } = instance\n\n instance.setColumnOrder = React.useCallback(\n columnOrder => {\n return dispatch({ type: actions.setColumnOrder, columnOrder })\n },\n [dispatch]\n )\n}\n","import React from 'react'\n\nimport {\n actions,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n ensurePluginOrder,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, passiveEventSupported } from '../utils'\n\n// Default Column\ndefaultColumn.canResize = true\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport const useResizeColumns = hooks => {\n hooks.getResizerProps = [defaultGetResizerProps]\n hooks.getHeaderProps.push({\n style: {\n position: 'relative',\n },\n })\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n}\n\nconst defaultGetResizerProps = (props, { instance, header }) => {\n const { dispatch } = instance\n\n const onResizeStart = (e, header) => {\n let isTouchEvent = false\n if (e.type === 'touchstart') {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n isTouchEvent = true\n }\n const headersToResize = getLeafHeaders(header)\n const headerIdWidths = headersToResize.map(d => [d.id, d.totalWidth])\n\n const clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX\n\n const dispatchMove = clientXPos => {\n dispatch({ type: actions.columnResizing, clientX: clientXPos })\n }\n const dispatchEnd = () => dispatch({ type: actions.columnDoneResizing })\n\n const handlersAndEvents = {\n mouse: {\n moveEvent: 'mousemove',\n moveHandler: e => dispatchMove(e.clientX),\n upEvent: 'mouseup',\n upHandler: e => {\n document.removeEventListener(\n 'mousemove',\n handlersAndEvents.mouse.moveHandler\n )\n document.removeEventListener(\n 'mouseup',\n handlersAndEvents.mouse.upHandler\n )\n dispatchEnd()\n },\n },\n touch: {\n moveEvent: 'touchmove',\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n dispatchMove(e.touches[0].clientX)\n return false\n },\n upEvent: 'touchend',\n upHandler: e => {\n document.removeEventListener(\n handlersAndEvents.touch.moveEvent,\n handlersAndEvents.touch.moveHandler\n )\n document.removeEventListener(\n handlersAndEvents.touch.upEvent,\n handlersAndEvents.touch.moveHandler\n )\n dispatchEnd()\n },\n },\n }\n\n const events = isTouchEvent\n ? handlersAndEvents.touch\n : handlersAndEvents.mouse\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n document.addEventListener(\n events.moveEvent,\n events.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n events.upEvent,\n events.upHandler,\n passiveIfSupported\n )\n\n dispatch({\n type: actions.columnStartResizing,\n columnId: header.id,\n columnWidth: header.totalWidth,\n headerIdWidths,\n clientX,\n })\n }\n\n return [\n props,\n {\n onMouseDown: e => e.persist() || onResizeStart(e, header),\n onTouchStart: e => e.persist() || onResizeStart(e, header),\n style: {\n cursor: 'col-resize',\n },\n draggable: false,\n role: 'separator',\n },\n ]\n}\n\nuseResizeColumns.pluginName = 'useResizeColumns'\n\nfunction reducer(state, action) {\n if (action.type === actions.init) {\n return {\n columnResizing: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n columnResizing: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { clientX, columnId, columnWidth, headerIdWidths } = action\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: clientX,\n headerIdWidths,\n columnWidth,\n isResizingColumn: columnId,\n },\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX, columnWidth, headerIdWidths = [] } = state.columnResizing\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.max(\n headerWidth + headerWidth * percentageDeltaX,\n 0\n )\n })\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n columnWidths: {\n ...state.columnResizing.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: null,\n isResizingColumn: null,\n },\n }\n }\n}\n\nconst useInstanceBeforeDimensions = instance => {\n const {\n flatHeaders,\n disableResizing,\n getHooks,\n state: { columnResizing },\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n flatHeaders.forEach(header => {\n const canResize = getFirstDefined(\n header.disableResizing === true ? false : undefined,\n disableResizing === true ? false : undefined,\n true\n )\n\n header.canResize = canResize\n header.width =\n columnResizing.columnWidths[header.id] ||\n header.originalWidth ||\n header.width\n header.isResizing = columnResizing.isResizingColumn === header.id\n\n if (canResize) {\n header.getResizerProps = makePropGetter(getHooks().getResizerProps, {\n instance: getInstance(),\n header,\n })\n }\n })\n}\n\nfunction useInstance(instance) {\n const { plugins, dispatch, autoResetResize = true, columns } = instance\n\n ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns')\n\n const getAutoResetResize = useGetLatest(autoResetResize)\n useMountedLayoutEffect(() => {\n if (getAutoResetResize()) {\n dispatch({ type: actions.resetResize })\n }\n }, [columns])\n\n const resetResizing = React.useCallback(\n () => dispatch({ type: actions.resetResize }),\n [dispatch]\n )\n\n Object.assign(instance, {\n resetResizing,\n })\n}\n\nfunction getLeafHeaders(header) {\n const leafHeaders = []\n const recurseHeader = header => {\n if (header.columns && header.columns.length) {\n header.columns.map(recurseHeader)\n }\n leafHeaders.push(header)\n }\n recurseHeader(header)\n return leafHeaders\n}\n","const cellStyles = {\n position: 'absolute',\n top: 0,\n}\n\nexport const useAbsoluteLayout = hooks => {\n hooks.getTableBodyProps.push(getRowStyles)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${cell.column.totalLeft}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseAbsoluteLayout.pluginName = 'useAbsoluteLayout'\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n position: 'relative',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n","const cellStyles = {\n display: 'inline-block',\n boxSizing: 'border-box',\n}\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n\nexport const useBlockLayout = hooks => {\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseBlockLayout.pluginName = 'useBlockLayout'\n","export function useFlexLayout(hooks) {\n hooks.getTableProps.push(getTableProps)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getCellProps.push(getCellProps)\n hooks.getFooterProps.push(getFooterProps)\n}\n\nuseFlexLayout.pluginName = 'useFlexLayout'\n\nconst getTableProps = (props, { instance }) => [\n props,\n {\n style: {\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n flex: '1 0 auto',\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n\nconst getCellProps = (props, { cell }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: `${cell.column.totalFlexWidth} 0 auto`,\n minWidth: `${cell.column.totalMinWidth}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n]\n\nconst getFooterProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n","export function useGridLayout(hooks) {\n hooks.stateReducers.push(reducer)\n hooks.getTableProps.push(getTableProps)\n hooks.getHeaderProps.push(getHeaderProps)\n}\n\nuseGridLayout.pluginName = 'useGridLayout'\n\nconst getTableProps = (props, { instance }) => [\n props,\n {\n style: {\n display: `grid`,\n gridTemplateColumns: instance.state.gridLayout.columnWidths.map(w => w).join(` `),\n },\n },\n]\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n id: `header-cell-${column.id}`,\n style: {\n position: `sticky` //enables a scroll wrapper to be placed around the table and have sticky headers\n },\n },\n]\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === `init`) {\n return {\n gridLayout: {\n columnWidths: instance.columns.map(() => `auto`),\n },\n ...state,\n }\n }\n\n if (action.type === `columnStartResizing`) {\n const { columnId } = action\n const columnIndex = instance.visibleColumns.findIndex(col => col.id === columnId)\n const elWidth = getElementWidth(columnId)\n\n if (elWidth !== undefined) {\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n columnId,\n columnIndex,\n startingWidth: elWidth\n },\n }\n } else {\n return state\n }\n }\n\n if (action.type === `columnResizing`) {\n const {\n columnIndex,\n startingWidth,\n columnWidths,\n } = state.gridLayout\n\n const change = state.columnResizing.startX - action.clientX\n const newWidth = startingWidth - change\n const columnWidthsCopy = [...columnWidths]\n columnWidthsCopy[columnIndex] = `${newWidth}px`\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n columnWidths: columnWidthsCopy,\n },\n }\n }\n}\n\nfunction getElementWidth(columnId) {\n const width = document.getElementById(`header-cell-${columnId}`)?.offsetWidth\n\n if (width !== undefined) {\n return width\n }\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { \r\n getGlobal as shimsGetGlobal, strShimUndefined, strShimObject, strShimPrototype, strShimFunction \r\n} from \"@microsoft/applicationinsights-shims\";\r\n\r\n/**\r\n * This file exists to hold environment utilities that are requied to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only defined methods (functions) in this class so that users of these \r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\n\r\nexport const strUndefined = strShimUndefined;\r\nexport const strObject = strShimObject;\r\nexport const strPrototype = strShimPrototype;\r\nexport const strFunction = strShimFunction;\r\n\r\nconst strWindow = \"window\";\r\nconst strDocument = \"document\";\r\nconst strNavigator = \"navigator\";\r\nconst strHistory = \"history\";\r\nconst strLocation = \"location\";\r\nconst strConsole = \"console\";\r\nconst strPerformance = \"performance\";\r\nconst strJSON = \"JSON\";\r\nconst strCrypto = \"crypto\";\r\nconst strMsCrypto = \"msCrypto\";\r\nconst strReactNative = \"ReactNative\";\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal \r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport const getGlobal:() => Window = shimsGetGlobal;\r\n\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name:string): T {\r\n let gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name] as T;\r\n }\r\n\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window as T;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow(): boolean {\r\n return Boolean(typeof window === strObject && window);\r\n}\r\n\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow(): Window | null {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument(): boolean {\r\n return Boolean(typeof document === strObject && document);\r\n}\r\n\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument(): Document | null {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n\r\n return getGlobalInst(strDocument);\r\n}\r\n\r\n\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator(): boolean {\r\n return Boolean(typeof navigator === strObject && navigator);\r\n}\r\n\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator(): Navigator | null {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n\r\n return getGlobalInst(strNavigator);\r\n}\r\n\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory(): boolean {\r\n return Boolean(typeof history === strObject && history);\r\n}\r\n\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory(): History | null {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n\r\n return getGlobalInst(strHistory);\r\n}\r\n\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(): Location | null {\r\n if (typeof location === strObject && location) {\r\n return location;\r\n }\r\n\r\n return getGlobalInst(strLocation);\r\n}\r\n\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole(): Console | null {\r\n if (typeof console !== strUndefined) {\r\n return console;\r\n }\r\n\r\n return getGlobalInst(strConsole);\r\n}\r\n\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance(): Performance | null {\r\n return getGlobalInst(strPerformance);\r\n}\r\n\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON(): boolean {\r\n return Boolean((typeof JSON === strObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON(): JSON | null {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto(): Crypto | null {\r\n return getGlobalInst(strCrypto);\r\n}\r\n\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto(): Crypto | null {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative(): boolean {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n\r\n return false;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { objCreateFn, strShimObject, strShimUndefined, strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getWindow, getDocument, getCrypto, getPerformance, getMsCrypto, getNavigator } from './EnvUtils';\r\n\r\n// Added to help with minfication\r\nexport const Undefined = strShimUndefined;\r\nconst strOnPrefix = \"on\";\r\nconst strAttachEvent = \"attachEvent\";\r\nconst strAddEventHelper = \"addEventListener\";\r\nconst strDetachEvent = \"detachEvent\";\r\nconst strRemoveEventListener = \"removeEventListener\";\r\nconst UInt32Mask = 0x100000000;\r\nconst MaxUInt32 = 0xffffffff;\r\n\r\nlet _isTrident: boolean = null;\r\n\r\n// MWC based Random generator (for IE)\r\nlet _mwcSeeded = false;\r\nlet _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue: number) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0; \r\n }\r\n\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\n\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n _mwcSeed((Math.random() * UInt32Mask) ^ new Date().getTime());\r\n}\r\n\r\nfunction _isTypeof(value: any, theType: string): boolean {\r\n return typeof value === theType;\r\n};\r\n\r\nfunction _isUndefined(value: any): boolean {\r\n return _isTypeof(value, strShimUndefined) || value === undefined;\r\n};\r\n\r\nfunction _isNullOrUndefined(value: any): boolean {\r\n return (_isUndefined(value) || value === null);\r\n}\r\n\r\nfunction _hasOwnProperty(obj: any, prop: string): boolean {\r\n return obj && Object[strShimPrototype].hasOwnProperty.call(obj, prop);\r\n};\r\n\r\nfunction _isObject(value: any): boolean {\r\n return _isTypeof(value, strShimObject);\r\n};\r\n\r\nfunction _isFunction(value: any): value is Function {\r\n return _isTypeof(value, strShimFunction);\r\n};\r\n\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nfunction _attachEvent(obj: any, eventNameWithoutOn: string, handlerRef: any, useCapture: boolean = false) {\r\n let result = false;\r\n if (!_isNullOrUndefined(obj)) {\r\n try {\r\n if (!_isNullOrUndefined(obj[strAddEventHelper])) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n result = true;\r\n } else if (!_isNullOrUndefined(obj[strAttachEvent])) {\r\n // IE before version 9 \r\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n } catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nfunction _detachEvent(obj: any, eventNameWithoutOn: string, handlerRef: any, useCapture: boolean = false) {\r\n if (!_isNullOrUndefined(obj)) {\r\n try {\r\n if (!_isNullOrUndefined(obj[strRemoveEventListener])) {\r\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n } else if (!_isNullOrUndefined(obj[strDetachEvent])) {\r\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n }\r\n } catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name: string): string {\r\n let value = name;\r\n let match = /([^\\w\\d_$])/g;\r\n if (match.test(name)) {\r\n value = name.replace(match, \"_\");\r\n }\r\n\r\n return value;\r\n}\r\n\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a \r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target: any, callbackfn: (name: string, value: any) => void) {\r\n if (target && _isObject(target)) {\r\n for (let prop in target) {\r\n if (_hasOwnProperty(target, prop)) {\r\n callbackfn.call(target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class CoreUtils {\r\n public static _canUseCookies: boolean;\r\n\r\n public static isTypeof: (value: any, theType: string) => boolean = _isTypeof;\r\n\r\n public static isUndefined: (value: any) => boolean = _isUndefined;\r\n\r\n public static isNullOrUndefined: (value: any) => boolean = _isNullOrUndefined;\r\n\r\n public static hasOwnProperty: (obj: any, prop: string) => boolean = _hasOwnProperty;\r\n\r\n /**\r\n * Checks if the passed of value is a function.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isFunction: (value: any) => value is Function = _isFunction;\r\n\r\n /**\r\n * Checks if the passed of value is a function.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isObject: (value: any) => boolean = _isObject;\r\n\r\n /**\r\n * Check if an object is of type Date\r\n */\r\n public static isDate(obj: any): obj is Date {\r\n return Object[strShimPrototype].toString.call(obj) === \"[object Date]\";\r\n }\r\n\r\n /**\r\n * Check if an object is of type Array\r\n */\r\n public static isArray(obj: any): boolean {\r\n return Object[strShimPrototype].toString.call(obj) === \"[object Array]\";\r\n }\r\n\r\n /**\r\n * Check if an object is of type Error\r\n */\r\n public static isError(obj: any): boolean {\r\n return Object[strShimPrototype].toString.call(obj) === \"[object Error]\";\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\n public static isString(value: any): value is string {\r\n return _isTypeof(value, \"string\");\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\n public static isNumber(value: any): value is number {\r\n return _isTypeof(value, \"number\");\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isBoolean(value: any): value is boolean {\r\n return _isTypeof(value, \"boolean\");\r\n }\r\n\r\n /**\r\n * Creates a new GUID.\r\n * @return {string} A GUID.\r\n */\r\n\r\n public static disableCookies() {\r\n CoreUtils._canUseCookies = false;\r\n }\r\n\r\n public static newGuid(): string {\r\n function randomHexDigit() {\r\n return CoreUtils.randomValue(15); // Get a random value from 0..15\r\n }\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex, (c) => {\r\n const r = (randomHexDigit() | 0), v = (c === 'x' ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n /**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\n public static toISOString(date: Date) {\r\n if (CoreUtils.isDate(date)) {\r\n const pad = (num: number) => {\r\n let r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n\r\n return r;\r\n }\r\n\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n }\r\n\r\n /**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n public static arrForEach(arr: T[], callbackfn: (value: T, index?: number, array?: T[]) => void, thisArg?: any): void {\r\n let len = arr.length;\r\n for (let idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n callbackfn.call(thisArg || arr, arr[idx], idx, arr);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n public static arrIndexOf(arr: T[], searchElement: T, fromIndex?: number): number {\r\n let len = arr.length;\r\n let from = fromIndex || 0;\r\n for (let lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists \r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page \r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx \r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n public static arrMap(arr: T[], callbackfn: (value: T, index?: number, array?: T[]) => R, thisArg?: any): R[] {\r\n let len = arr.length;\r\n let _this = thisArg || arr;\r\n let results = new Array(len);\r\n\r\n for (let lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency \r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n public static arrReduce(arr: T[], callbackfn: (previousValue: T | R, currentValue?: T, currentIndex?: number, array?: T[]) => R, initialValue?: R): R {\r\n let len = arr.length;\r\n let lp = 0;\r\n let value;\r\n\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments.length >= 3) {\r\n value = arguments[2];\r\n } else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n\r\n value = arr[lp++];\r\n }\r\n\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n public static strTrim(str: any): string {\r\n if (!CoreUtils.isString(str)) {\r\n return str;\r\n }\r\n\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n }\r\n\r\n /**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\n // tslint:disable-next-line: member-ordering\r\n public static objCreate:(obj: object) => any = objCreateFn;\r\n\r\n /**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers \r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\n public static objKeys(obj: {}): string[] {\r\n var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\r\n\r\n if (!_isFunction(obj) && (!_isObject(obj) || obj === null)) {\r\n throw new TypeError('objKeys called on non-object');\r\n }\r\n\r\n let result: string[] = [];\r\n\r\n for (let prop in obj) {\r\n if (_hasOwnProperty(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n\r\n if (hasDontEnumBug) {\r\n let dontEnums = [\r\n 'toString',\r\n 'toLocaleString',\r\n 'valueOf',\r\n 'hasOwnProperty',\r\n 'isPrototypeOf',\r\n 'propertyIsEnumerable',\r\n 'constructor'\r\n ];\r\n let dontEnumsLength = dontEnums.length;\r\n\r\n for (let lp = 0; lp < dontEnumsLength; lp++) {\r\n if (_hasOwnProperty(obj, dontEnums[lp])) {\r\n result.push(dontEnums[lp]);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\n public static objDefineAccessors(target: any, prop: string, getProp?: () => T, setProp?: (v: T) => void): boolean {\r\n let defineProp = Object[\"defineProperty\"];\r\n if (defineProp) {\r\n try {\r\n let descriptor: PropertyDescriptor = {\r\n enumerable: true,\r\n configurable: true\r\n }\r\n\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n\r\n defineProp(target, prop, descriptor);\r\n return true;\r\n } catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static addEventHandler(eventName: string, callback: any): boolean {\r\n let result = false;\r\n let w = getWindow();\r\n if (w) {\r\n result = _attachEvent(w, eventName, callback);\r\n result = _attachEvent(w[\"body\"], eventName, callback) || result;\r\n }\r\n\r\n let doc = getDocument();\r\n if (doc) {\r\n result = EventHelper.Attach(doc, eventName, callback) || result;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\n public static dateNow() {\r\n let dt = Date;\r\n if (dt.now) {\r\n return dt.now();\r\n }\r\n\r\n return new dt().getTime();\r\n }\r\n\r\n /**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to CoreUtils.dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\n public static perfNow() {\r\n let perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n\r\n return CoreUtils.dateNow();\r\n }\r\n\r\n /**\r\n * Generate random base64 id string. \r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\n public static newId(maxLength = 22): string {\r\n const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n let number = CoreUtils.random32() >>> 0; // Make sure it's a +ve number\r\n let chars = 0;\r\n let result = \"\";\r\n while (result.length < maxLength) {\r\n chars ++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((CoreUtils.random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\n public static isIE() {\r\n if (_isTrident === null) {\r\n let navigator = getNavigator() || ({} as Navigator);\r\n let userAgent = (navigator.userAgent || \"\").toLowerCase();\r\n _isTrident = (userAgent.indexOf(\"msie\") !== -1 || userAgent.indexOf(\"trident/\") !== -1);\r\n }\r\n \r\n return _isTrident;\r\n } \r\n\r\n /**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\n public static randomValue(maxValue: number) {\r\n if (maxValue > 0) {\r\n return Math.floor((CoreUtils.random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\n public static random32(signed?: boolean) {\r\n let value;\r\n let c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n } else if (CoreUtils.isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = CoreUtils.mwcRandom32() & MaxUInt32;\r\n } else {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\n public static mwcRandomSeed(value?: number)\r\n {\r\n if (!value) {\r\n _autoSeedMwc();\r\n } else {\r\n _mwcSeed(value);\r\n }\r\n }\r\n\r\n /**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\n public static mwcRandom32(signed?: boolean) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n\r\n let value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * generate W3C trace id\r\n */\r\n public static generateW3CId() {\r\n const hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n let oct = \"\", tmp;\r\n for (let a = 0; a < 4; a++) {\r\n tmp = CoreUtils.random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n const clockSequenceHi = hexValues[8 + (CoreUtils.random32() & 0x03) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n }\r\n}\r\n\r\nconst GuidRegex = /[xy]/g;\r\n\r\nexport class EventHelper {\r\n /**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\n public static Attach: (obj: any, eventNameWithoutOn: string, handlerRef: any) => boolean = _attachEvent;\r\n\r\n /**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @deprecated Use {@link EventHelper#Attach} as we are already in a class call EventHelper the extra \"Event\" just causes a larger result\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\n public static AttachEvent: (obj: any, eventNameWithoutOn: string, handlerRef: any) => boolean = _attachEvent;\r\n\r\n /**\r\n * Removes an event handler for the specified event\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static Detach: (obj: any, eventNameWithoutOn: string, handlerRef: any) => void = _detachEvent;\r\n\r\n /**\r\n * Removes an event handler for the specified event\r\n * @deprecated Use {@link EventHelper#Detach} as we are already in a class call EventHelper the extra \"Event\" just causes a larger result\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static DetachEvent: (obj: any, eventNameWithoutOn: string, handlerRef: any) => void = _detachEvent;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport enum LoggingSeverity {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n CRITICAL = 1,\r\n\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n WARNING = 2,\r\n}\r\n\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport const _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73,\r\n NotificationException: 74,\r\n SnippetScriptLoadFailure: 99,\r\n InvalidInstrumentationKey:100,\r\n CannotParseAiBlobValue: 101,\r\n InvalidContentBlob: 102,\r\n TrackPageActionEventFailed: 103\r\n};\r\nexport type _InternalMessageId = number | typeof _InternalMessageId;\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Object[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Checks if the passed of value is a function.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n * @ignore\r\n */\r\nfunction _isFunction(value) {\r\n return typeof value === strFunction;\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Object[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[Prototype] || target[Constructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && _isFunction(target[funcName]) && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n for (var name in thisTarget) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n }\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[name];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n for (var name in instFuncs) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n }\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n for (var name in baseProto) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n }\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (!_isFunction(protoFunc)) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n for (var name in target) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\"\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nconst AiNonUserActionablePrefix = \"AI (Internal): \";\r\n\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nconst AiUserActionablePrefix = \"AI: \";\r\n\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nconst AIInternalMessagePrefix = \"AITR_\";\r\n\r\n\r\nfunction _sanitizeDiagnosticText(text: string) {\r\n if (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\nexport class _InternalLogMessage{\r\n public static dataType: string = \"MessageData\";\r\n\r\n public message: string;\r\n public messageId: _InternalMessageId;\r\n\r\n constructor(msgId: _InternalMessageId, msg: string, isUserAct = false, properties?: Object) {\r\n let _self = this;\r\n\r\n _self.messageId = msgId;\r\n _self.message =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n\r\n let strProps:string = \"\";\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n\r\n const diagnosticText =\r\n (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\r\n\r\n _self.message += diagnosticText;\r\n }\r\n}\r\n\r\nexport class DiagnosticLogger implements IDiagnosticLogger {\r\n public identifier = 'DiagnosticLogger';\r\n \r\n /**\r\n * The internal logging queue\r\n */\r\n public queue: _InternalLogMessage[] = [];\r\n\r\n constructor(config?: IConfiguration) {\r\n /**\r\n * Count of internal messages sent\r\n */\r\n let _messageCount = 0;\r\n\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n let _messageLogged: { [msg: number]: boolean } = {};\r\n\r\n dynamicProto(DiagnosticLogger, this, (_self) => {\r\n const isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n const isUndefined = CoreUtils.isUndefined;\r\n const isFunction = CoreUtils.isFunction;\r\n\r\n if (isNullOrUndefined(config)) {\r\n config = {};\r\n }\r\n\r\n _self.consoleLoggingLevel = () => _getConfigValue('loggingLevelConsole', 0);\r\n \r\n _self.telemetryLoggingLevel = () => _getConfigValue('loggingLevelTelemetry', 1);\r\n\r\n _self.maxInternalMessageLimit = () => _getConfigValue('maxMessageLimit', 25);\r\n\r\n _self.enableDebugExceptions = () => _getConfigValue('enableDebugExceptions', false);\r\n \r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = (severity: LoggingSeverity, msgId: _InternalMessageId, msg: string, properties?: Object, isUserAct = false) => {\r\n const message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n\r\n if (_self.enableDebugExceptions()) {\r\n throw message;\r\n } else {\r\n if (!isUndefined(message) && !!message) {\r\n if (!isUndefined(message.message)) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n const messageKey: number = +message.messageId;\r\n\r\n if (!_messageLogged[messageKey] && _self.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n _self.warnToConsole(message.message);\r\n _messageLogged[messageKey] = true;\r\n }\r\n } else {\r\n // don't log internal AI traces in the console, unless the verbose logging is enabled\r\n if (_self.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n _self.warnToConsole(message.message);\r\n }\r\n }\r\n\r\n _self.logInternalMessage(severity, message);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self.warnToConsole = (message: string) => {\r\n let theConsole = getConsole();\r\n if (!!theConsole) {\r\n let logFunc = 'log';\r\n if (theConsole.warn) {\r\n logFunc = 'warn';\r\n }\r\n\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = (): void => {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self.logInternalMessage = (severity: LoggingSeverity, message: _InternalLogMessage): void => {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n let logMessage = true;\r\n const messageKey = AIInternalMessagePrefix + message.messageId;\r\n\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n } else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _self.telemetryLoggingLevel()) {\r\n _self.queue.push(message);\r\n _messageCount++;\r\n }\r\n\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _self.maxInternalMessageLimit()) {\r\n const throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n const throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n\r\n _self.queue.push(throttleMessage);\r\n _self.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n };\r\n\r\n function _getConfigValue(name: keyof IConfiguration, defValue: T): T {\r\n let value = config[name] as T;\r\n if (!isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n\r\n return defValue;\r\n }\r\n\r\n function _areInternalMessagesThrottled(): boolean {\r\n return _messageCount >= _self.maxInternalMessageLimit();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n public enableDebugExceptions(): boolean {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n }\r\n\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n public consoleLoggingLevel(): number {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n }\r\n\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n public telemetryLoggingLevel(): number {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 1;\r\n }\r\n\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n public maxInternalMessageLimit(): number {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 25;\r\n }\r\n\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n public throwInternal(severity: LoggingSeverity, msgId: _InternalMessageId, msg: string, properties?: Object, isUserAct = false) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n public warnToConsole(message: string) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Resets the internal message count\r\n */\r\n public resetInternalMessageCount(): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n public logInternalMessage(severity: LoggingSeverity, message: _InternalLogMessage): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { INotificationManager } from '../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { IPerfEvent } from '../JavaScriptSDK.Interfaces/IPerfEvent';\r\nimport { IPerfManager, IPerfManagerProvider } from '../JavaScriptSDK.Interfaces/IPerfManager';\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\n\r\nconst strExecutionContextKey = \"ctx\";\r\n\r\nexport class PerfEvent implements IPerfEvent {\r\n public static ParentContextKey = \"parent\";\r\n public static ChildrenContextKey = \"childEvts\";\r\n \r\n /**\r\n * The name of the event\r\n */\r\n name: string;\r\n\r\n /**\r\n * The start time of the event in ms\r\n */\r\n start: number;\r\n\r\n /**\r\n * The payload (contents) of the perfEvent, may be null or only set after the event has completed depending on\r\n * the runtime environment.\r\n */\r\n payload: any;\r\n\r\n /**\r\n * Is this occurring from an asynchronous event\r\n */\r\n isAsync: boolean;\r\n \r\n /**\r\n * Identifies the total inclusive time spent for this event, including the time spent for child events, \r\n * this will be undefined until the event is completed\r\n */\r\n time?: number;\r\n\r\n /**\r\n * Identifies the exclusive time spent in for this event (not including child events),\r\n * this will be undefined until the event is completed.\r\n */\r\n exTime?: number;\r\n\r\n /**\r\n * Identifies whether this event is a child event of a parent\r\n */\r\n isChildEvt: () => boolean;\r\n\r\n getCtx?: (key: string) => any | null | undefined;\r\n\r\n setCtx?: (key: string, value: any) => void;\r\n\r\n complete: () => void; \r\n\r\n constructor(name: string, payloadDetails: () => any, isAsync: boolean) {\r\n let _self = this;\r\n let accessorDefined = false;\r\n _self.start = CoreUtils.dateNow();\r\n _self.name = name;\r\n _self.isAsync = isAsync;\r\n _self.isChildEvt = (): boolean => false;\r\n\r\n if (CoreUtils.isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n let theDetails:any;\r\n accessorDefined = CoreUtils.objDefineAccessors(_self, 'payload', () => {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails && CoreUtils.isFunction(payloadDetails)) {\r\n theDetails = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n\r\n return theDetails;\r\n });\r\n }\r\n\r\n _self.getCtx = (key: string): any | null | undefined => {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\r\n return _self[key];\r\n }\r\n\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n _self.setCtx = (key: string, value: any) => {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self.isChildEvt = (): boolean => true;\r\n }\r\n _self[key] = value;\r\n } \r\n else if (key === PerfEvent.ChildrenContextKey) {\r\n _self[key] = value;\r\n } \r\n else \r\n {\r\n let ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n\r\n _self.complete = () => {\r\n let childTime = 0;\r\n let childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\r\n if (CoreUtils.isArray(childEvts)) {\r\n for (let lp = 0; lp < childEvts.length; lp++) {\r\n let childEvt: IPerfEvent = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt.time;\r\n }\r\n }\r\n }\r\n\r\n _self.time = CoreUtils.dateNow() - _self.start;\r\n _self.exTime = _self.time - childTime;\r\n _self.complete = () => {};\r\n if (!accessorDefined && CoreUtils.isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class PerfManager implements IPerfManager {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n private ctx: { [key: string] : any } = {};\r\n\r\n constructor(manager: INotificationManager) {\r\n\r\n dynamicProto(PerfManager, this, (_self) => {\r\n\r\n _self.create = (src: string, payloadDetails?: () => any, isAsync?: boolean): IPerfEvent | null | undefined => {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n\r\n _self.fire = (perfEvent: IPerfEvent) => {\r\n if (perfEvent) {\r\n perfEvent.complete();\r\n\r\n if (manager) {\r\n manager.perfEvent(perfEvent);\r\n }\r\n }\r\n };\r\n\r\n _self.setCtx = (key: string, value: any): void => {\r\n if (key) {\r\n let ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n \r\n _self.getCtx = (key: string): any => {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not \r\n * want to monitor this source event.\r\n * @param src The source name of the event \r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n public create(src: string, payload?: any, isAsync?: boolean): IPerfEvent | null | undefined {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent Fire the event which will also complete the passed event\r\n */\r\n public fire(perfEvent: IPerfEvent): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n public setCtx(key: string, value: any): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n public getCtx(key: string): any {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n}\r\n\r\nconst doPerfActiveKey = \"CoreUtils.doPerf\";\r\n\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously \r\n */\r\nexport function doPerf(mgrSource: IPerfManagerProvider | IPerfManager, getSource: () => string, func: (perfEvt?: IPerfEvent) => T, details?: () => any, isAsync?: boolean) {\r\n if (mgrSource) {\r\n let perfMgr: IPerfManager = mgrSource as IPerfManager;\r\n if (perfMgr && CoreUtils.isFunction(perfMgr[\"getPerfMgr\"])) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[\"getPerfMgr\"]()\r\n }\r\n \r\n if (perfMgr) {\r\n let perfEvt: IPerfEvent;\r\n let currentActive: IPerfEvent = perfMgr.getCtx(doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt.setCtx) {\r\n perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\r\n if (currentActive.getCtx && currentActive.setCtx) {\r\n let children: IPerfEvent[] = currentActive.getCtx(PerfEvent.ChildrenContextKey);\r\n if (!children) {\r\n children = [];\r\n currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\r\n }\r\n \r\n children.push(perfEvt);\r\n }\r\n }\r\n \r\n // Set this event as the active event now\r\n perfMgr.setCtx(doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n } catch (ex) {\r\n if (perfEvt && perfEvt.setCtx) {\r\n perfEvt.setCtx(\"exception\", ex);\r\n }\r\n } finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n \r\n // Reset the active event to the previous value\r\n perfMgr.setCtx(doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n\r\n return func();\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { ITelemetryItem } from '../JavaScriptSDK.Interfaces/ITelemetryItem';\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from \"../JavaScriptSDK.Interfaces/ITelemetryPluginChain\";\r\nimport { ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from '../JavaScriptSDK.Enums/LoggingEnums';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\n\r\nexport class TelemetryPluginChain implements ITelemetryPluginChain {\r\n\r\n /**\r\n * Returns the underlying plugin that is being proxied for the processTelemetry call\r\n */\r\n getPlugin: () => ITelemetryPlugin;\r\n\r\n /**\r\n * Returns the next plugin\r\n */\r\n getNext: () => ITelemetryPluginChain;\r\n\r\n /**\r\n * Sets the next proxy to be executed as the next plugin\r\n * (Should only be used during initialization, which is why it's not defined on the interface)\r\n */\r\n setNext: (nextPlugin:ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n processTelemetry: (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => void;\r\n\r\n /**\r\n * Internal flag used to try and identify root cause failures\r\n */\r\n private _hasRun: boolean;\r\n\r\n constructor(plugin:ITelemetryPlugin, defItemCtx:IProcessTelemetryContext) {\r\n let _self = this;\r\n let _nextProxy:ITelemetryPluginChain = null;\r\n let _hasProcessTelemetry = _isFunction(plugin.processTelemetry);\r\n let _hasSetNext = _isFunction(plugin.setNextPlugin);\r\n\r\n _self._hasRun = false;\r\n\r\n _self.getPlugin = () => {\r\n return plugin;\r\n };\r\n\r\n _self.getNext = () => {\r\n return _nextProxy;\r\n };\r\n\r\n _self.setNext = (nextPlugin:ITelemetryPluginChain) => {\r\n _nextProxy = nextPlugin;\r\n }\r\n\r\n _self.processTelemetry = (env: ITelemetryItem, itemCtx:IProcessTelemetryContext) => {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n\r\n let identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n\r\n doPerf(itemCtx ? itemCtx.core() : null, () => identifier + \":processTelemetry\", () => {\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n \r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some \r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n \r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && ((_nextProxy as TelemetryPluginChain)._hasRun = false);\r\n \r\n plugin.processTelemetry(env, itemCtx);\r\n } catch (error) {\r\n let hasRun = _nextProxy && (_nextProxy as TelemetryPluginChain)._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.PluginException,\r\n \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + error);\r\n }\r\n \r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n } else if (_nextProxy) {\r\n _self._hasRun = true;\r\n \r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }, () => ({ item: env }), !((env as any).sync));\r\n };\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\";\r\nimport { IDiagnosticLogger } from '../JavaScriptSDK.Interfaces/IDiagnosticLogger';\r\nimport { IConfiguration } from '../JavaScriptSDK.Interfaces/IConfiguration';\r\nimport { ITelemetryItem } from '../JavaScriptSDK.Interfaces/ITelemetryItem';\r\nimport { IPlugin, ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from '../JavaScriptSDK.Interfaces/ITelemetryPluginChain';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\n\r\nlet _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins:IPlugin[], itemCtx:IProcessTelemetryContext) {\r\n let proxies:ITelemetryPluginChain[] = [];\r\n \r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n let lastProxy:TelemetryPluginChain = null;\r\n for (let idx = 0; idx < plugins.length; idx++) {\r\n let thePlugin = plugins[idx] as ITelemetryPlugin;\r\n if (thePlugin && CoreUtils.isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n let newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n \r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\n\r\nfunction _copyProxyChain(proxy:ITelemetryPluginChain, itemCtx:IProcessTelemetryContext, startAt:IPlugin) {\r\n let plugins:IPlugin[] = [];\r\n let add = startAt ? false : true;\r\n\r\n if (proxy) {\r\n while (proxy) {\r\n let thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n \r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\n\r\nfunction _copyPluginChain(srcPlugins:IPlugin[], itemCtx:IProcessTelemetryContext, startAt:IPlugin) {\r\n let plugins:IPlugin[] = srcPlugins;\r\n let add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n \r\n CoreUtils.arrForEach(srcPlugins, thePlugin => {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n \r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\n\r\nexport class ProcessTelemetryContext implements IProcessTelemetryContext {\r\n /**\r\n * Gets the current core config instance\r\n */\r\n public getCfg: () => IConfiguration;\r\n\r\n public getExtCfg: (identifier:string, defaultValue?:T|any) => T;\r\n \r\n public getConfig: (identifier:string, field: string, defaultValue?: number | string | boolean) => number | string | boolean;\r\n\r\n /**\r\n * Returns the IAppInsightsCore instance for the current request\r\n */\r\n public core: () => IAppInsightsCore;\r\n\r\n /**\r\n * Returns the current IDiagnosticsLogger for the current request\r\n */\r\n public diagLog: () => IDiagnosticLogger;\r\n\r\n /**\r\n * Helper to allow inherited classes to check and possibly shortcut executing code only\r\n * required if there is a nextPlugin\r\n */\r\n public hasNext: () => boolean;\r\n\r\n /**\r\n * Returns the next configured plugin proxy\r\n */\r\n public getNext: () => ITelemetryPluginChain;\r\n\r\n /**\r\n * Helper to set the next plugin proxy\r\n */\r\n public setNext: (nextCtx:ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n public processNext: (env: ITelemetryItem) => void;\r\n\r\n /**\r\n * Create a new context using the core and config from the current instance\r\n */\r\n public createNew: (plugins?:IPlugin[]|ITelemetryPluginChain, startAt?:IPlugin) => IProcessTelemetryContext;\r\n\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n constructor(plugins:IPlugin[]|ITelemetryPluginChain, config: IConfiguration, core:IAppInsightsCore, startAt?:IPlugin) {\r\n let _self = this;\r\n let _nextProxy: ITelemetryPluginChain = null; // Null == No next plugin\r\n\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && CoreUtils.isFunction((plugins as ITelemetryPluginChain).getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins as ITelemetryPluginChain, _self, startAt||(plugins as ITelemetryPluginChain).getPlugin());\r\n } else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins as IPlugin[], _self, startAt);\r\n } else if (CoreUtils.isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins as IPlugin[], _self)\r\n }\r\n }\r\n }\r\n\r\n _self.core = () => {\r\n return core;\r\n };\r\n \r\n _self.diagLog = () => {\r\n let logger: IDiagnosticLogger = (core||{} as IAppInsightsCore).logger;\r\n if (!logger) {\r\n // Fallback so we always have a logger\r\n logger = new DiagnosticLogger(config||{});\r\n }\r\n\r\n return logger;\r\n };\r\n\r\n _self.getCfg = () => {\r\n return config;\r\n };\r\n\r\n _self.getExtCfg = (identifier:string, defaultValue:T|any = {}) => {\r\n let theConfig:T;\r\n if (config) {\r\n let extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n \r\n return (theConfig ? theConfig : defaultValue) as T;\r\n };\r\n\r\n _self.getConfig = (identifier:string, field: string, defaultValue: number | string | boolean = false) => {\r\n let theValue;\r\n let extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !_isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n } else if (config && !_isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n \r\n return !_isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n\r\n _self.hasNext = () => {\r\n return _nextProxy != null;\r\n };\r\n\r\n _self.getNext = () => {\r\n return _nextProxy;\r\n }\r\n\r\n _self.setNext = (nextPlugin:ITelemetryPluginChain) => {\r\n _nextProxy = nextPlugin;\r\n };\r\n\r\n _self.processNext = (env: ITelemetryItem) => {\r\n let nextPlugin = _nextProxy;\r\n\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n\r\n _self.createNew = (plugins:IPlugin[]|ITelemetryPluginChain = null, startAt?:IPlugin) => {\r\n return new ProcessTelemetryContext(plugins||_nextProxy, config, core, startAt);\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IDiagnosticLogger } from '../JavaScriptSDK.Interfaces/IDiagnosticLogger';\r\nimport { IPlugin, ITelemetryPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from \"../JavaScriptSDK.Interfaces/ITelemetryPluginChain\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\nlet getPlugin = \"getPlugin\";\r\n\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nexport abstract class BaseTelemetryPlugin implements ITelemetryPlugin {\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n public processNext: (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => void;\r\n\r\n /**\r\n * Set next extension for telemetry processing\r\n */\r\n public setNextPlugin: (next: ITelemetryPlugin|ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Returns the current diagnostic logger that can be used to log issues, if no logger is currently\r\n * assigned a new default one will be created and returned.\r\n */\r\n public diagLog: (itemCtx?:IProcessTelemetryContext) => IDiagnosticLogger;\r\n\r\n /**\r\n * Returns whether the plugin has been initialized\r\n */\r\n public isInitialized: () => boolean;\r\n\r\n public identifier: string;\r\n public version?: string;\r\n\r\n /**\r\n * Holds the core instance that was used during initialization\r\n */\r\n public core: IAppInsightsCore; \r\n\r\n priority: number;\r\n\r\n /**\r\n * Helper to return the current IProcessTelemetryContext, if the passed argument exists this just\r\n * returns that value (helps with minification for callers), otherwise it will return the configured\r\n * context or a temporary one.\r\n * @param currentCtx - [Optional] The current execution context\r\n */\r\n protected _getTelCtx: (currentCtx?:IProcessTelemetryContext) => IProcessTelemetryContext;\r\n\r\n /**\r\n * Internal helper to allow setting of the internal initialized setting for inherited instances and unit testing\r\n */\r\n protected setInitialized: (isInitialized: boolean) => void;\r\n\r\n /**\r\n * Internal helper to initialize the instance\r\n */\r\n private _baseTelInit: (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) => void;\r\n\r\n constructor() {\r\n let _self = this;\r\n let _isinitialized = false;\r\n let _rootCtx: IProcessTelemetryContext = null; // Used as the root context, holding the current config and initialized core\r\n let _nextPlugin:ITelemetryPlugin|ITelemetryPluginChain = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n\r\n _self.core = null;\r\n\r\n _self.diagLog = (itemCtx:IProcessTelemetryContext): IDiagnosticLogger => {\r\n return _self._getTelCtx(itemCtx).diagLog();\r\n }\r\n\r\n _self.isInitialized = () => {\r\n return _isinitialized;\r\n }\r\n\r\n _self.setInitialized = (isInitialized: boolean):void => {\r\n _isinitialized = isInitialized;\r\n }\r\n\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n\r\n _self.setNextPlugin = (next: ITelemetryPlugin|ITelemetryPluginChain) => {\r\n _nextPlugin = next;\r\n };\r\n\r\n _self.processNext = (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx.processNext(env);\r\n } else if (_nextPlugin && _isFunction(_nextPlugin.processTelemetry)) {\r\n // Looks like backward compatibility or out of band processing. And as it looks \r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin.processTelemetry(env, null);\r\n }\r\n };\r\n\r\n _self._getTelCtx = (currentCtx:IProcessTelemetryContext = null) => {\r\n let itemCtx:IProcessTelemetryContext = currentCtx;\r\n if (!itemCtx) {\r\n let rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[getPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx.createNew(null, _nextPlugin[getPlugin]);\r\n } else {\r\n itemCtx = rootCtx.createNew(null, _nextPlugin as ITelemetryPlugin);\r\n }\r\n }\r\n \r\n return itemCtx;\r\n }\r\n\r\n _self._baseTelInit = (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) => { \r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n config.extensionConfig = config.extensionConfig || [];\r\n }\r\n \r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core.getProcessTelContext().getNext();\r\n }\r\n \r\n let nextPlugin:IPlugin = _nextPlugin as IPlugin;\r\n if (_nextPlugin && _nextPlugin[getPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[getPlugin]();\r\n }\r\n\r\n // Support legacy plugins where core was defined as a property\r\n _self.core = core;\r\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n _isinitialized = true;\r\n }\r\n }\r\n\r\n public initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain): void {\r\n this._baseTelInit(config, core, extensions, pluginChain);\r\n }\r\n\r\n public abstract processTelemetry(env: ITelemetryItem, itemCtx?: IProcessTelemetryContext): void;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IPlugin, ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { _InternalMessageId } from '../JavaScriptSDK.Enums/LoggingEnums';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { ITelemetryPluginChain } from '../JavaScriptSDK.Interfaces/ITelemetryPluginChain';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\nlet processTelemetry = \"processTelemetry\";\r\nlet priority = \"priority\";\r\nlet setNextPlugin = \"setNextPlugin\";\r\nlet isInitialized = \"isInitialized\";\r\n\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext:ProcessTelemetryContext, extensions: IPlugin[]) {\r\n\r\n // Set the next plugin and identified the uninitialized plugins\r\n let initPlugins:ITelemetryPlugin[] = [];\r\n let lastPlugin:ITelemetryPlugin = null;\r\n let proxy:ITelemetryPluginChain = processContext.getNext();\r\n while (proxy) {\r\n let thePlugin = proxy.getPlugin();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n _isFunction(lastPlugin[setNextPlugin]) &&\r\n _isFunction(thePlugin[processTelemetry])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[setNextPlugin](thePlugin);\r\n }\r\n\r\n if (!_isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n initPlugins.push(thePlugin);\r\n }\r\n\r\n lastPlugin = thePlugin;\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n\r\n // Now initiatilize the plugins\r\n CoreUtils.arrForEach(initPlugins, thePlugin => {\r\n thePlugin.initialize(\r\n processContext.getCfg(), \r\n processContext.core(), \r\n extensions, \r\n processContext.getNext());\r\n });\r\n}\r\n\r\nexport function sortPlugins(plugins:IPlugin[]) {\r\n // Sort by priority\r\n return plugins.sort((extA, extB) => {\r\n let result = 0;\r\n let bHasProcess = _isFunction(extB[processTelemetry]);\r\n if (_isFunction(extA[processTelemetry])) {\r\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n } else if (bHasProcess) {\r\n result = -1;\r\n }\r\n\r\n return result;\r\n });\r\n // sort complete \r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IChannelControls } from \"../JavaScriptSDK.Interfaces/IChannelControls\";\r\nimport { IPlugin, ITelemetryPlugin, } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { ITelemetryPluginChain } from \"../JavaScriptSDK.Interfaces/ITelemetryPluginChain\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { BaseTelemetryPlugin } from './BaseTelemetryPlugin';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins } from './TelemetryHelpers';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n\r\nconst ChannelControllerPriority = 500;\r\nconst ChannelValidationMessage = \"Channel has invalid priority\";\r\n\r\nlet _objDefineAccessors = CoreUtils.objDefineAccessors;\r\n\r\nexport class ChannelController extends BaseTelemetryPlugin {\r\n\r\n identifier: string = \"ChannelControllerPlugin\";\r\n priority: number = ChannelControllerPriority; // in reserved range 100 to 200\r\n\r\n public setNextPlugin: (next: ITelemetryPlugin | ITelemetryPluginChain) => void;\r\n\r\n constructor() {\r\n super();\r\n let _arrForEach = CoreUtils.arrForEach;\r\n let _channelQueue: IChannelControls[][];\r\n\r\n dynamicProto(ChannelController, this, (_self, _base) => {\r\n _self.setNextPlugin = (next: ITelemetryPlugin | ITelemetryPluginChain) => {\r\n // The Channel controller is last in pipeline\r\n };\r\n\r\n _self.processTelemetry = (item: ITelemetryItem, itemCtx: IProcessTelemetryContext) => {\r\n if (_channelQueue) {\r\n _arrForEach(_channelQueue, queues => {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n let chainCtx = this._getTelCtx(itemCtx).createNew(queues); \r\n chainCtx.processNext(item);\r\n }\r\n });\r\n }\r\n };\r\n \r\n _self.getChannelControls = (): IChannelControls[][] => {\r\n return _channelQueue;\r\n };\r\n \r\n _self.initialize = (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[]) => {\r\n if (_self.isInitialized()) {\r\n // already initialized\r\n return;\r\n }\r\n \r\n _base.initialize(config, core, extensions);\r\n \r\n if ((config as any).isCookieUseDisabled) {\r\n CoreUtils.disableCookies();\r\n }\r\n \r\n _createChannelQueues((config||{}).channels, extensions);\r\n \r\n // Initialize the Queues\r\n _arrForEach(_channelQueue, queue => initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions));\r\n }\r\n });\r\n\r\n function _checkQueuePriority(queue:IChannelControls[]) {\r\n _arrForEach(queue, queueItem => {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n throw Error(ChannelValidationMessage + queueItem.identifier);\r\n }\r\n });\r\n }\r\n \r\n function _addChannelQueue(queue:IChannelControls[]) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort((a, b) => { // sort based on priority within each queue\r\n return a.priority - b.priority;\r\n });\r\n \r\n _checkQueuePriority(queue);\r\n _channelQueue.push(queue);\r\n }\r\n }\r\n \r\n function _createChannelQueues(channels:IChannelControls[][], extensions: IPlugin[]) {\r\n _channelQueue = [];\r\n \r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n _arrForEach(channels, queue => _addChannelQueue(queue));\r\n }\r\n \r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n let extensionQueue:IChannelControls[] = [];\r\n _arrForEach(extensions as IChannelControls[], plugin => {\r\n if (plugin.priority > ChannelControllerPriority) {\r\n extensionQueue.push(plugin);\r\n }\r\n });\r\n \r\n _addChannelQueue(extensionQueue);\r\n }\r\n }\r\n }\r\n\r\n public processTelemetry(item: ITelemetryItem, itemCtx: IProcessTelemetryContext) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n\r\n public getChannelControls(): IChannelControls[][] {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n public initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[]) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n // tslint:disable-next-line\r\n private static _staticInit = (() => {\r\n // Dynamically create get/set property accessors\r\n _objDefineAccessors(ChannelController.prototype, \"ChannelControls\", ChannelController.prototype.getChannelControls);\r\n _objDefineAccessors(ChannelController.prototype, \"channelQueue\", ChannelController.prototype.getChannelControls);\r\n })();\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport enum StorageType {\r\n LocalStorage,\r\n SessionStorage\r\n}\r\n\r\n/**\r\n * Enum is used in aiDataContract to describe how fields are serialized. \r\n * For instance: (Fieldtype.Required | FieldType.Array) will mark the field as required and indicate it's an array\r\n */\r\nexport enum FieldType { Default = 0, Required = 1, Array = 2, Hidden = 4 };\r\n\r\nexport enum DistributedTracingModes {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n\r\n AI=0,\r\n\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n AI_AND_W3C,\r\n\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n W3C\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IPlugin, ITelemetryPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { IChannelControls } from \"../JavaScriptSDK.Interfaces/IChannelControls\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { INotificationManager } from '../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { INotificationListener } from \"../JavaScriptSDK.Interfaces/INotificationListener\";\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { ChannelController } from './ChannelController';\r\nimport { IProcessTelemetryContext } from '../JavaScriptSDK.Interfaces/IProcessTelemetryContext';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins, sortPlugins } from './TelemetryHelpers';\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { IPerfManager } from \"../JavaScriptSDK.Interfaces/IPerfManager\";\r\nimport { PerfManager } from \"./PerfManager\";\r\n\r\nconst validationError = \"Extensions must provide callback to initialize\";\r\n\r\nconst _arrForEach = CoreUtils.arrForEach;\r\nconst _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\nconst strNotificationManager = \"_notificationManager\";\r\n\r\nexport class BaseCore implements IAppInsightsCore {\r\n public static defaultConfig: IConfiguration;\r\n public config: IConfiguration;\r\n public logger: IDiagnosticLogger;\r\n\r\n public _extensions: IPlugin[];\r\n public isInitialized: () => boolean;\r\n\r\n constructor() {\r\n let _isInitialized = false;\r\n let _eventQueue: ITelemetryItem[];\r\n let _channelController: ChannelController;\r\n let _notificationManager: INotificationManager;\r\n let _perfManager: IPerfManager;\r\n \r\n dynamicProto(BaseCore, this, (_self) => {\r\n _self._extensions = new Array();\r\n _channelController = new ChannelController();\r\n _self.logger = CoreUtils.objCreate({\r\n throwInternal: (severity: LoggingSeverity, msgId: _InternalMessageId, msg: string, properties?: Object, isUserAct = false) => { },\r\n warnToConsole: (message: string) => { },\r\n resetInternalMessageCount: () => { }\r\n });\r\n \r\n _eventQueue = [];\r\n _self.isInitialized = () => _isInitialized;\r\n\r\n _self.initialize = (config: IConfiguration, extensions: IPlugin[], logger?: IDiagnosticLogger, notificationManager?: INotificationManager): void => {\r\n // Make sure core is only initialized once\r\n if (_self.isInitialized()) {\r\n throw Error(\"Core should not be initialized more than once\");\r\n }\r\n \r\n if (!config || _isNullOrUndefined(config.instrumentationKey)) {\r\n throw Error(\"Please provide instrumentation key\");\r\n }\r\n \r\n _notificationManager = notificationManager;\r\n\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n \r\n _self.config = config || {};\r\n \r\n config.extensions = _isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n \r\n // add notification to the extensions in the config so other plugins can access it\r\n let extConfig = config.extensionConfig = _isNullOrUndefined(config.extensionConfig) ? {} : config.extensionConfig;\r\n extConfig.NotificationManager = notificationManager;\r\n\r\n if (logger) {\r\n _self.logger = logger;\r\n }\r\n \r\n // Concat all available extensions\r\n let allExtensions = [];\r\n allExtensions.push(...extensions, ...config.extensions);\r\n allExtensions = sortPlugins(allExtensions);\r\n \r\n let coreExtensions: any[] = [];\r\n let channelExtensions: any[] = [];\r\n \r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the \r\n const extPriorities = {};\r\n \r\n // Extension validation\r\n _arrForEach(allExtensions, (ext: ITelemetryPlugin) => {\r\n if (_isNullOrUndefined(ext) || _isNullOrUndefined(ext.initialize)) {\r\n throw Error(validationError);\r\n }\r\n \r\n const extPriority = ext.priority;\r\n const identifier = ext.identifier;\r\n \r\n if (ext && extPriority) {\r\n if (!_isNullOrUndefined(extPriorities[extPriority])) {\r\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n } else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n \r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < _channelController.priority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions.push(ext);\r\n } else {\r\n // Add all other extensions to be managed by the channel controller\r\n channelExtensions.push(ext);\r\n }\r\n });\r\n // Validation complete\r\n \r\n // Add the channelController to the complete extension collection and\r\n // to the end of the core extensions\r\n allExtensions.push(_channelController);\r\n coreExtensions.push(_channelController);\r\n \r\n // Sort the complete set of extensions by priority\r\n allExtensions = sortPlugins(allExtensions);\r\n _self._extensions = allExtensions;\r\n \r\n // initialize channel controller first, this will initialize all channel plugins\r\n initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\r\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions);\r\n \r\n // Now reset the extensions to just those being managed by Basecore\r\n _self._extensions = coreExtensions;\r\n \r\n if (_self.getTransmissionControls().length === 0) {\r\n throw new Error(\"No channels available\");\r\n }\r\n \r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n \r\n _self.getTransmissionControls = (): IChannelControls[][] => {\r\n return _channelController.getChannelControls();\r\n };\r\n \r\n _self.track = (telemetryItem: ITelemetryItem) => {\r\n if (!telemetryItem.iKey) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = _self.config.instrumentationKey;\r\n }\r\n if (!telemetryItem.time) {\r\n // add default timestamp if not passed in\r\n telemetryItem.time = CoreUtils.toISOString(new Date());\r\n }\r\n if (_isNullOrUndefined(telemetryItem.ver)) {\r\n // CommonSchema 4.0\r\n telemetryItem.ver = \"4.0\";\r\n }\r\n \r\n if (_self.isInitialized()) {\r\n // Process the telemetry plugin chain\r\n _self.getProcessTelContext().processNext(telemetryItem);\r\n } else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue.push(telemetryItem);\r\n }\r\n };\r\n \r\n _self.getProcessTelContext = (): IProcessTelemetryContext => {\r\n let extensions = _self._extensions;\r\n let thePlugins: IPlugin[] = extensions;\r\n \r\n // invoke any common telemetry processors before sending through pipeline\r\n if (!extensions || extensions.length === 0) {\r\n // Pass to Channel controller so data is sent to correct channel queues\r\n thePlugins = [_channelController];\r\n }\r\n \r\n return new ProcessTelemetryContext(thePlugins, _self.config, _self);\r\n };\r\n\r\n _self.getNotifyMgr = (): INotificationManager => {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = CoreUtils.objCreate({\r\n addNotificationListener: (listener: INotificationListener) => { },\r\n removeNotificationListener: (listener: INotificationListener) => { },\r\n eventsSent: (events: ITelemetryItem[]) => { },\r\n eventsDiscarded: (events: ITelemetryItem[], reason: number) => { },\r\n eventsSendRequest: (sendReason: number, isAsync: boolean) => { }\r\n });\r\n\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n\r\n return _notificationManager;\r\n };\r\n \r\n _self.getPerfMgr = (): IPerfManager => {\r\n if (!_perfManager) {\r\n if (_self.config && _self.config.enablePerfMgr) {\r\n _perfManager = new PerfManager(_self.getNotifyMgr());\r\n }\r\n }\r\n\r\n return _perfManager;\r\n };\r\n\r\n _self.setPerfMgr = (perfMgr: IPerfManager) => {\r\n _perfManager = perfMgr;\r\n };\r\n\r\n _self.eventCnt = (): number => {\r\n return _eventQueue.length;\r\n };\r\n\r\n _self.releaseQueue = () => {\r\n if (_eventQueue.length > 0) {\r\n _arrForEach(_eventQueue, (event: ITelemetryItem) => {\r\n _self.getProcessTelContext().processNext(event);\r\n });\r\n\r\n _eventQueue = [];\r\n }\r\n };\r\n });\r\n }\r\n\r\n public initialize(config: IConfiguration, extensions: IPlugin[], logger?: IDiagnosticLogger, notificationManager?: INotificationManager): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n public getTransmissionControls(): IChannelControls[][] {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n public track(telemetryItem: ITelemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n public getProcessTelContext(): IProcessTelemetryContext {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n public getNotifyMgr(): INotificationManager {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n public getPerfMgr(): IPerfManager {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n }\r\n\r\n public setPerfMgr(perfMgr: IPerfManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n public eventCnt(): number {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n }\r\n\r\n protected releaseQueue() {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport const EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5,\r\n};\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { IConfiguration } from '../JavaScriptSDK.Interfaces/IConfiguration';\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { INotificationListener } from \"../JavaScriptSDK.Interfaces/INotificationListener\";\r\nimport { INotificationManager } from '../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { IPerfEvent } from \"../JavaScriptSDK.Interfaces/IPerfEvent\";\r\nimport { CoreUtils, } from \"./CoreUtils\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nexport class NotificationManager implements INotificationManager {\r\n listeners: INotificationListener[] = [];\r\n\r\n constructor(config?: IConfiguration) {\r\n let arrForEach = CoreUtils.arrForEach;\r\n let perfEvtsSendAll = !!(config ||{}).perfEvtsSendAll;\r\n\r\n dynamicProto(NotificationManager, this, (_self) => {\r\n _self.addNotificationListener = (listener: INotificationListener): void => {\r\n _self.listeners.push(listener);\r\n };\r\n\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = (listener: INotificationListener): void => {\r\n let index: number = CoreUtils.arrIndexOf(_self.listeners, listener);\r\n while (index > -1) {\r\n _self.listeners.splice(index, 1);\r\n index = CoreUtils.arrIndexOf(_self.listeners, listener);\r\n }\r\n };\r\n\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self.eventsSent = (events: ITelemetryItem[]): void => {\r\n arrForEach(_self.listeners, (listener) => {\r\n if (listener && listener.eventsSent) {\r\n setTimeout(() => listener.eventsSent(events), 0);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self.eventsDiscarded = (events: ITelemetryItem[], reason: number): void => {\r\n arrForEach(_self.listeners, (listener) => {\r\n if (listener && listener.eventsDiscarded) {\r\n setTimeout(() => listener.eventsDiscarded(events, reason), 0);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self.eventsSendRequest = (sendReason: number, isAsync: boolean): void => {\r\n arrForEach(_self.listeners, (listener) => {\r\n if (listener && listener.eventsSendRequest) {\r\n if (isAsync) {\r\n setTimeout(() => listener.eventsSendRequest(sendReason, isAsync), 0);\r\n } else {\r\n try {\r\n listener.eventsSendRequest(sendReason, isAsync);\r\n } catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n _self.perfEvent = (perfEvent?: IPerfEvent): void => {\r\n if (perfEvent) {\r\n\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\r\n arrForEach(_self.listeners, (listener) => {\r\n if (listener && listener.perfEvent) {\r\n if (perfEvent.isAsync) {\r\n setTimeout(() => listener.perfEvent(perfEvent), 0);\r\n } else {\r\n try {\r\n listener.perfEvent(perfEvent);\r\n } catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n \r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n addNotificationListener(listener: INotificationListener): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n removeNotificationListener(listener: INotificationListener): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n eventsSent(events: ITelemetryItem[]): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n eventsDiscarded(events: ITelemetryItem[], reason: number): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n eventsSendRequest?(sendReason: number, isAsync: boolean): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * [Optional] This event is sent if you have enabled perf events, they are primarily used to track internal performance testing and debugging\r\n * the event can be displayed via the debug plugin extension.\r\n * @param perfEvent \r\n */\r\n perfEvent?(perfEvent: IPerfEvent): void;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { BaseCore } from './BaseCore';\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { INotificationListener } from \"../JavaScriptSDK.Interfaces/INotificationListener\";\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { INotificationManager } from '../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n\r\n\"use strict\";\r\n\r\nexport class AppInsightsCore extends BaseCore implements IAppInsightsCore {\r\n constructor() {\r\n super();\r\n\r\n dynamicProto(AppInsightsCore, this, (_self, _base) => {\r\n\r\n _self.initialize = (config: IConfiguration, extensions: IPlugin[], logger?: IDiagnosticLogger, notificationManager?: INotificationManager): void => {\r\n _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n \r\n _self.track = (telemetryItem: ITelemetryItem) => {\r\n doPerf(_self.getPerfMgr(), () => \"AppInsightsCore:track\", () => {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throw Error(\"Invalid telemetry item\");\r\n }\r\n \r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n \r\n _base.track(telemetryItem);\r\n }, () => ({ item: telemetryItem }), !((telemetryItem as any).sync));\r\n };\r\n \r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self.addNotificationListener = (listener: INotificationListener): void => {\r\n let manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.addNotificationListener(listener);\r\n }\r\n };\r\n \r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = (listener: INotificationListener): void => {\r\n let manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.removeNotificationListener(listener);\r\n }\r\n }\r\n \r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n _self.pollInternalLogs = (eventName?: string): number => {\r\n let interval = _self.config.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n \r\n return setInterval(() => {\r\n const queue: _InternalLogMessage[] = _self.logger ? _self.logger.queue : [];\r\n \r\n CoreUtils.arrForEach(queue, (logMessage: _InternalLogMessage) => {\r\n const item: ITelemetryItem = {\r\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _self.config.instrumentationKey,\r\n time: CoreUtils.toISOString(new Date()),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n \r\n _self.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval) as any;\r\n }\r\n \r\n function _validateTelemetryItem(telemetryItem: ITelemetryItem) {\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.name)) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n }\r\n \r\n function _notifyInvalidEvent(telemetryItem: ITelemetryItem): void {\r\n let manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public initialize(config: IConfiguration, extensions: IPlugin[], logger?: IDiagnosticLogger, notificationManager?: INotificationManager): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n public track(telemetryItem: ITelemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n public addNotificationListener(listener: INotificationListener): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n public removeNotificationListener(listener: INotificationListener): void {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n public pollInternalLogs(eventName?: string): number {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport class RequestHeaders {\r\n /**\r\n * Request-Context header\r\n */\r\n public static requestContextHeader = \"Request-Context\";\r\n\r\n /**\r\n * Target instrumentation header that is added to the response and retrieved by the\r\n * calling application when processing incoming responses.\r\n */\r\n public static requestContextTargetKey = \"appId\";\r\n\r\n /**\r\n * Request-Context appId format\r\n */\r\n public static requestContextAppIdFormat = \"appId=cid-v1:\";\r\n\r\n /**\r\n * Request-Id header\r\n */\r\n public static requestIdHeader = \"Request-Id\";\r\n\r\n /**\r\n * W3C distributed tracing protocol header\r\n */\r\n public static traceParentHeader = \"traceparent\";\r\n\r\n /**\r\n * W3C distributed tracing protocol state header\r\n */\r\n public static traceStateHeader: \"tracestate\"; // currently not used\r\n\r\n /**\r\n * Sdk-Context header\r\n * If this header passed with appId in content then appId will be returned back by the backend.\r\n */\r\n public static sdkContextHeader = \"Sdk-Context\";\r\n\r\n /**\r\n * String to pass in header for requesting appId back from the backend.\r\n */\r\n public static sdkContextHeaderAppIdRequest = \"appId\";\r\n\r\n public static requestContextHeaderLowerCase = \"request-context\";\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDiagnosticLogger, LoggingSeverity, _InternalMessageId, CoreUtils, hasJSON, getJSON, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class DataSanitizer {\r\n\r\n /**\r\n * Max length allowed for custom names.\r\n */\r\n public static MAX_NAME_LENGTH = 150;\r\n\r\n /**\r\n * Max length allowed for Id field in page views.\r\n */\r\n public static MAX_ID_LENGTH = 128;\r\n\r\n /**\r\n * Max length allowed for custom values.\r\n */\r\n public static MAX_PROPERTY_LENGTH = 8192;\r\n\r\n /**\r\n * Max length allowed for names\r\n */\r\n public static MAX_STRING_LENGTH = 1024;\r\n\r\n /**\r\n * Max length allowed for url.\r\n */\r\n public static MAX_URL_LENGTH = 2048;\r\n\r\n /**\r\n * Max length allowed for messages.\r\n */\r\n public static MAX_MESSAGE_LENGTH = 32768;\r\n\r\n /**\r\n * Max length allowed for exceptions.\r\n */\r\n public static MAX_EXCEPTION_LENGTH = 32768;\r\n\r\n public static sanitizeKeyAndAddUniqueness(logger: IDiagnosticLogger, key: any, map: any) {\r\n const origLength = key.length;\r\n let field = DataSanitizer.sanitizeKey(logger, key);\r\n\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n let i = 0;\r\n let uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n }\r\n\r\n public static sanitizeKey(logger: IDiagnosticLogger, name: any) {\r\n let nameTrunc: String;\r\n if (name) {\r\n // Remove any leading or trailing whitepace\r\n name = DataSanitizer.trim(name.toString());\r\n\r\n // truncate the string to 150 chars\r\n if (name.length > DataSanitizer.MAX_NAME_LENGTH) {\r\n nameTrunc = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.NameTooLong,\r\n \"name is too long. It has been truncated to \" + DataSanitizer.MAX_NAME_LENGTH + \" characters.\",\r\n { name }, true);\r\n }\r\n }\r\n\r\n return nameTrunc || name;\r\n }\r\n\r\n public static sanitizeString(logger: IDiagnosticLogger, value: any, maxLength: number = DataSanitizer.MAX_STRING_LENGTH) {\r\n let valueTrunc : String;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : DataSanitizer.MAX_STRING_LENGTH; // in case default parameters dont work\r\n value = DataSanitizer.trim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.StringValueTooLong,\r\n \"string value is too long. It has been truncated to \" + maxLength + \" characters.\",\r\n { value }, true);\r\n }\r\n }\r\n\r\n return valueTrunc || value;\r\n }\r\n\r\n public static sanitizeUrl(logger: IDiagnosticLogger, url: any) {\r\n return DataSanitizer.sanitizeInput(logger, url, DataSanitizer.MAX_URL_LENGTH, _InternalMessageId.UrlTooLong);\r\n }\r\n\r\n public static sanitizeMessage(logger: IDiagnosticLogger, message: any) {\r\n let messageTrunc : String;\r\n if (message) {\r\n if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {\r\n messageTrunc = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated,\r\n \"message is too long, it has been truncated to \" + DataSanitizer.MAX_MESSAGE_LENGTH + \" characters.\",\r\n { message },\r\n true);\r\n }\r\n }\r\n\r\n return messageTrunc || message;\r\n }\r\n\r\n public static sanitizeException(logger: IDiagnosticLogger, exception: any) {\r\n let exceptionTrunc : String;\r\n if (exception) {\r\n if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {\r\n exceptionTrunc = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + DataSanitizer.MAX_EXCEPTION_LENGTH + \" characters.\",\r\n { exception }, true);\r\n }\r\n }\r\n\r\n return exceptionTrunc || exception;\r\n }\r\n\r\n public static sanitizeProperties(logger: IDiagnosticLogger, properties: any) {\r\n if (properties) {\r\n const tempProps = {};\r\n objForEachKey(properties, (prop, value) => {\r\n if (CoreUtils.isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON().stringify(value);\r\n } catch (e) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e}, true);\r\n }\r\n }\r\n value = DataSanitizer.sanitizeString(logger, value, DataSanitizer.MAX_PROPERTY_LENGTH);\r\n prop = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, prop, tempProps);\r\n tempProps[prop] = value;\r\n });\r\n properties = tempProps;\r\n }\r\n\r\n return properties;\r\n }\r\n\r\n public static sanitizeMeasurements(logger: IDiagnosticLogger, measurements: any) {\r\n if (measurements) {\r\n const tempMeasurements = {};\r\n objForEachKey(measurements, (measure, value) => {\r\n measure = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements);\r\n tempMeasurements[measure] = value;\r\n });\r\n\r\n measurements = tempMeasurements;\r\n }\r\n\r\n return measurements;\r\n }\r\n\r\n public static sanitizeId(logger: IDiagnosticLogger, id: string): string {\r\n return id ? DataSanitizer.sanitizeInput(logger, id, DataSanitizer.MAX_ID_LENGTH, _InternalMessageId.IdTooLong).toString() : id;\r\n }\r\n\r\n public static sanitizeInput(logger: IDiagnosticLogger, input: any, maxLength: number, _msgId: _InternalMessageId) {\r\n let inputTrunc : String;\r\n if (input) {\r\n input = DataSanitizer.trim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _msgId,\r\n \"input is too long, it has been truncated to \" + maxLength + \" characters.\",\r\n { data: input },\r\n true);\r\n }\r\n }\r\n\r\n return inputTrunc || input;\r\n }\r\n\r\n public static padNumber(num: number) {\r\n const s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n }\r\n\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n public static trim(str: any): string {\r\n if (!CoreUtils.isString(str)) { return str; }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { StorageType } from \"./Enums\";\r\nimport {\r\n CoreUtils, EventHelper, _InternalMessageId, LoggingSeverity, IDiagnosticLogger, IPlugin, getCrypto, getMsCrypto,\r\n getGlobal, getGlobalInst, getWindow, getDocument, getNavigator, getPerformance, getLocation, hasJSON, getJSON,\r\n strPrototype,\r\n objForEachKey\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { ICorrelationConfig } from \"./Interfaces/ICorrelationConfig\";\r\n\r\nlet _navigator = getNavigator();\r\nlet _isString = CoreUtils.isString;\r\nlet _uaDisallowsSameSiteNone: boolean = null;\r\n\r\nfunction _endsWith(value: string, search: string) {\r\n let len = value.length;\r\n let start = len - search.length;\r\n return value.substring(start >= 0 ? start : 0, len) === search;\r\n}\r\n\r\nexport class Util {\r\n private static document: any = getDocument() || {};\r\n private static _canUseLocalStorage: boolean = undefined;\r\n private static _canUseSessionStorage: boolean = undefined;\r\n // listing only non-geo specific locations\r\n private static _internalEndpoints: string[] = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n ];\r\n public static NotSpecified = \"not_specified\";\r\n\r\n public static createDomEvent(eventName: string): Event {\r\n let event: Event = null;\r\n\r\n if (CoreUtils.isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n } else { // Event has no constructor in IE\r\n let doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n\r\n return event;\r\n }\r\n\r\n /*\r\n * Force the SDK not to use local and session storage\r\n */\r\n public static disableStorage() {\r\n Util._canUseLocalStorage = false;\r\n Util._canUseSessionStorage = false;\r\n }\r\n\r\n /**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\n private static _getLocalStorageObject(): Storage {\r\n if (Util.canUseLocalStorage()) {\r\n return Util._getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\n private static _getVerifiedStorageObject(storageType: StorageType): Storage {\r\n let storage: Storage = null;\r\n let fail: boolean;\r\n let uid: Date;\r\n try {\r\n if (CoreUtils.isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n uid = new Date;\r\n storage = storageType === StorageType.LocalStorage ? getGlobalInst(\"localStorage\") : getGlobalInst(\"sessionStorage\");\r\n storage.setItem(uid.toString(), uid.toString());\r\n fail = storage.getItem(uid.toString()) !== uid.toString();\r\n storage.removeItem(uid.toString());\r\n if (fail) {\r\n storage = null;\r\n }\r\n } catch (exception) {\r\n storage = null;\r\n }\r\n\r\n return storage;\r\n }\r\n\r\n /**\r\n * Checks if endpoint URL is application insights internal injestion service URL.\r\n *\r\n * @param endpointUrl Endpoint URL to check.\r\n * @returns {boolean} True if if endpoint URL is application insights internal injestion service URL.\r\n */\r\n public static isInternalApplicationInsightsEndpoint(endpointUrl: string): boolean {\r\n return Util._internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n }\r\n\r\n /**\r\n * Check if the browser supports local storage.\r\n *\r\n * @returns {boolean} True if local storage is supported.\r\n */\r\n public static canUseLocalStorage(): boolean {\r\n if (Util._canUseLocalStorage === undefined) {\r\n Util._canUseLocalStorage = !!Util._getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n\r\n return Util._canUseLocalStorage;\r\n }\r\n\r\n /**\r\n * Get an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n public static getStorage(logger: IDiagnosticLogger, name: string): string {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotReadLocalStorage,\r\n \"Browser failed read of local storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Set the contents of an object in the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n public static setStorage(logger: IDiagnosticLogger, name: string, data: string): boolean {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotWriteLocalStorage,\r\n \"Browser failed write to local storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Remove an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n public static removeStorage(logger: IDiagnosticLogger, name: string): boolean {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserFailedRemovalFromLocalStorage,\r\n \"Browser failed removal of local storage item. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\n private static _getSessionStorageObject(): Storage {\r\n if (Util.canUseSessionStorage()) {\r\n return Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Check if the browser supports session storage.\r\n *\r\n * @returns {boolean} True if session storage is supported.\r\n */\r\n public static canUseSessionStorage(): boolean {\r\n if (Util._canUseSessionStorage === undefined) {\r\n Util._canUseSessionStorage = !!Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n\r\n return Util._canUseSessionStorage;\r\n }\r\n\r\n /**\r\n * Gets the list of session storage keys\r\n *\r\n * @returns {string[]} List of session storage keys\r\n */\r\n public static getSessionStorageKeys(): string[] {\r\n const keys: string[] = [];\r\n\r\n if (Util.canUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), (key) => {\r\n keys.push(key);\r\n });\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n /**\r\n * Get an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n public static getSessionStorage(logger: IDiagnosticLogger, name: string): string {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotReadSessionStorage,\r\n \"Browser failed read of session storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Set the contents of an object in the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n public static setSessionStorage(logger: IDiagnosticLogger, name: string, data: string): boolean {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotWriteSessionStorage,\r\n \"Browser failed write to session storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Remove an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n public static removeSessionStorage(logger: IDiagnosticLogger, name: string): boolean {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserFailedRemovalFromSessionStorage,\r\n \"Browser failed removal of session storage item. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /*\r\n * Force the SDK not to store and read any data from cookies\r\n */\r\n public static disableCookies() {\r\n CoreUtils.disableCookies();\r\n }\r\n\r\n /*\r\n * helper method to tell if document.cookie object is available\r\n */\r\n public static canUseCookies(logger: IDiagnosticLogger): any {\r\n if (CoreUtils._canUseCookies === undefined) {\r\n CoreUtils._canUseCookies = false;\r\n\r\n try {\r\n CoreUtils._canUseCookies = Util.document.cookie !== undefined;\r\n } catch (e) {\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.CannotAccessCookie,\r\n \"Cannot access document.cookie - \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n };\r\n }\r\n\r\n return CoreUtils._canUseCookies;\r\n }\r\n\r\n public static disallowsSameSiteNone(userAgent: string) {\r\n if (!_isString(userAgent)) {\r\n return false;\r\n }\r\n\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (userAgent.indexOf(\"CPU iPhone OS 12\") !== -1 || userAgent.indexOf(\"iPad; CPU OS 12\") !== -1) {\r\n return true;\r\n }\r\n\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (userAgent.indexOf(\"Macintosh; Intel Mac OS X 10_14\") !== -1 && userAgent.indexOf(\"Version/\") !== -1 && userAgent.indexOf(\"Safari\") !== -1) {\r\n return true;\r\n }\r\n\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (userAgent.indexOf(\"Macintosh; Intel Mac OS X 10_14\") !== -1 && _endsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (userAgent.indexOf(\"Chrome/5\") !== -1 || userAgent.indexOf(\"Chrome/6\") !== -1) {\r\n return true;\r\n }\r\n\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (userAgent.indexOf(\"UnrealEngine\") !== -1 && userAgent.indexOf(\"Chrome\") === -1) {\r\n return true;\r\n }\r\n\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (userAgent.indexOf(\"UCBrowser/12\") !== -1 || userAgent.indexOf(\"UCBrowser/11\") !== -1) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * helper method to set userId and sessionId cookie\r\n */\r\n public static setCookie(logger: IDiagnosticLogger, name: string, value: string, domain?: string) {\r\n if (Util.canUseCookies(logger)) {\r\n let domainAttrib = \"\";\r\n let secureAttrib = \"\";\r\n\r\n if (domain) {\r\n domainAttrib = \";domain=\" + domain;\r\n }\r\n\r\n let location = getLocation();\r\n if (location && location.protocol === \"https:\") {\r\n secureAttrib = \";secure\";\r\n if (_uaDisallowsSameSiteNone === null) {\r\n _uaDisallowsSameSiteNone = Util.disallowsSameSiteNone((getNavigator() || {} as Navigator).userAgent);\r\n }\r\n\r\n if (!_uaDisallowsSameSiteNone) {\r\n value = value + \";SameSite=None\"; // SameSite can only be set on secure pages\r\n }\r\n }\r\n\r\n Util.document.cookie = name + \"=\" + value + domainAttrib + \";path=/\" + secureAttrib;\r\n }\r\n }\r\n\r\n public static stringToBoolOrDefault(str: any, defaultValue = false): boolean {\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n\r\n return str.toString().toLowerCase() === \"true\";\r\n }\r\n\r\n /**\r\n * helper method to access userId and sessionId cookie\r\n */\r\n public static getCookie(logger: IDiagnosticLogger, name: string) {\r\n if (!Util.canUseCookies(logger)) {\r\n return;\r\n }\r\n\r\n let value = \"\";\r\n if (name && name.length) {\r\n const cookieName = name + \"=\";\r\n const cookies = Util.document.cookie.split(\";\");\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i];\r\n cookie = Util.trim(cookie);\r\n if (cookie && cookie.indexOf(cookieName) === 0) {\r\n value = cookie.substring(cookieName.length, cookies[i].length);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\n public static deleteCookie(logger: IDiagnosticLogger, name: string) {\r\n if (Util.canUseCookies(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n Util.document.cookie = name + \"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n }\r\n }\r\n\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n public static trim = CoreUtils.strTrim;\r\n\r\n /**\r\n * generate random id string\r\n */\r\n public static newId = CoreUtils.newId;\r\n\r\n /**\r\n * generate a random 32bit number (-0x80000000..0x7FFFFFFF).\r\n */\r\n public static random32() {\r\n return CoreUtils.random32(true);\r\n }\r\n\r\n /**\r\n * generate W3C trace id\r\n */\r\n public static generateW3CId = CoreUtils.generateW3CId;\r\n\r\n /**\r\n * Check if an object is of type Array\r\n */\r\n public static isArray = CoreUtils.isArray;\r\n\r\n /**\r\n * Check if an object is of type Error\r\n */\r\n public static isError = CoreUtils.isError;\r\n\r\n /**\r\n * Check if an object is of type Date\r\n */\r\n public static isDate = CoreUtils.isDate;\r\n\r\n // Keeping this name for backward compatibility (for now)\r\n public static toISOStringForIE8 = CoreUtils.toISOString;\r\n\r\n /**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\n public static getIEVersion(userAgentStr: string = null): number {\r\n const myNav = userAgentStr ? userAgentStr.toLowerCase() : (_navigator ? (_navigator.userAgent || \"\").toLowerCase() : \"\");\r\n if (myNav.indexOf(\"msie\") !== -1) {\r\n return parseInt(myNav.split(\"msie\")[1]);\r\n } else if (myNav.indexOf(\"trident/\")) {\r\n let tridentVer = parseInt(myNav.split(\"trident/\")[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Convert ms to c# time span format\r\n */\r\n public static msToTimeSpan(totalms: number): string {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n\r\n totalms = Math.round(totalms);\r\n\r\n let ms = \"\" + totalms % 1000;\r\n let sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n let min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n let hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n const days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n }\r\n\r\n /**\r\n * Checks if error has no meaningful data inside. Ususally such errors are received by window.onerror when error\r\n * happens in a script from other domain (cross origin, CORS).\r\n */\r\n public static isCrossOriginError(message: string, url: string, lineNumber: number, columnNumber: number, error: Error): boolean {\r\n return (message === \"Script error.\" || message === \"Script error\") && !error;\r\n }\r\n\r\n /**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\n public static dump(object: any): string {\r\n const objectTypeDump: string = Object[strPrototype].toString.call(object);\r\n let propertyValueDump: string = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n } else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n\r\n return objectTypeDump + propertyValueDump;\r\n }\r\n\r\n /**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\n public static getExceptionName(object: any): string {\r\n const objectTypeDump: string = Object[strPrototype].toString.call(object);\r\n if (objectTypeDump === \"[object Error]\") {\r\n return object.name;\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * Adds an event handler for the specified event to the window\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static addEventHandler(eventName: string, callback: any): boolean {\r\n return EventHelper.Attach(getWindow(), eventName, callback);\r\n }\r\n\r\n /**\r\n * Tells if a browser supports a Beacon API\r\n */\r\n public static IsBeaconApiSupported(): boolean {\r\n return ('sendBeacon' in _navigator && (_navigator as any).sendBeacon);\r\n }\r\n\r\n public static getExtension(extensions: IPlugin[], identifier: string) {\r\n let extension = null;\r\n let extIx = 0;\r\n\r\n while (!extension && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === identifier) {\r\n extension = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n\r\n return extension;\r\n }\r\n}\r\n\r\nexport class UrlHelper {\r\n private static document: any = getDocument() || {};\r\n\r\n private static _htmlAnchorIdx: number = 0;\r\n // Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n // Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\n private static _htmlAnchorElement: HTMLAnchorElement[] = [null, null, null, null, null];\r\n\r\n public static parseUrl(url: string): HTMLAnchorElement {\r\n let anchorIdx = UrlHelper._htmlAnchorIdx;\r\n let anchorCache = UrlHelper._htmlAnchorElement;\r\n let tempAnchor = anchorCache[anchorIdx];\r\n if (!UrlHelper.document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: UrlHelper.parseHost(url, true) } as HTMLAnchorElement;\r\n } else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance \r\n tempAnchor = anchorCache[anchorIdx] = UrlHelper.document.createElement('a');\r\n }\r\n\r\n tempAnchor.href = url;\r\n\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache.length) {\r\n anchorIdx = 0;\r\n }\r\n\r\n UrlHelper._htmlAnchorIdx = anchorIdx;\r\n\r\n return tempAnchor;\r\n }\r\n\r\n public static getAbsoluteUrl(url: string): string {\r\n let result: string;\r\n const a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getPathName(url: string): string {\r\n let result: string;\r\n const a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getCompleteUrl(method: string, absoluteUrl: string) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n } else {\r\n return absoluteUrl;\r\n }\r\n }\r\n\r\n // Fallback method to grab host from url if document.createElement method is not available\r\n public static parseHost(url: string, inclPort?: boolean) {\r\n let fullHost = UrlHelper.parseFullHost(url, inclPort);\r\n if (fullHost) {\r\n const match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 3 && _isString(match[2]) && match[2].length > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n\r\n return fullHost;\r\n }\r\n\r\n /**\r\n * Get the full host from the url, optionally including the port\r\n */\r\n public static parseFullHost(url: string, inclPort?: boolean) {\r\n let result = null;\r\n if (url) {\r\n const match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 2 && _isString(match[2]) && match[2].length > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match.length > 2) {\r\n const protocol = (match[1] || \"\").toLowerCase();\r\n let port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n } else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n\r\n result += port;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport class CorrelationIdHelper {\r\n public static correlationIdPrefix = \"cid-v1:\";\r\n\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n public static canIncludeCorrelationHeader(config: ICorrelationConfig, requestUrl: string, currentHost?: string) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n\r\n if (config && config.correlationHeaderExcludePatterns) {\r\n for (let i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n let requestHost = UrlHelper.parseUrl(requestUrl).host.toLowerCase();\r\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present \r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (UrlHelper.parseFullHost(requestUrl, true) || \"\").toLowerCase();\r\n }\r\n\r\n if ((!config || !config.enableCorsCorrelation) && requestHost !== currentHost) {\r\n return false;\r\n }\r\n\r\n const includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n let matchExists: boolean;\r\n CoreUtils.arrForEach(includedDomains, (domain) => {\r\n const regex = new RegExp(domain.toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n matchExists = matchExists || regex.test(requestHost);\r\n });\r\n\r\n if (!matchExists) {\r\n return false;\r\n }\r\n }\r\n\r\n const excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains.length === 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < excludedDomains.length; i++) {\r\n const regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost.length > 0;\r\n }\r\n\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n public static getCorrelationContext(responseHeader: string) {\r\n if (responseHeader) {\r\n const correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n public static getCorrelationContextValue(responseHeader: string, key: string) {\r\n if (responseHeader) {\r\n const keyValues = responseHeader.split(\",\");\r\n for (let i = 0; i < keyValues.length; ++i) {\r\n const keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class AjaxHelper {\r\n public static ParseDependencyPath(logger: IDiagnosticLogger, absoluteUrl: string, method: string, commandName: string) {\r\n let target, name = commandName, data = commandName;\r\n\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n const parsedUrl: HTMLAnchorElement = UrlHelper.parseUrl(absoluteUrl)\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n let pathName: string = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== '/') {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\r\n name = DataSanitizer.sanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n } else {\r\n name = DataSanitizer.sanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n } else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n\r\n return {\r\n target,\r\n name,\r\n data\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport class DateTimeUtils {\r\n /**\r\n * Get the number of milliseconds since 1970/01/01 in local timezone\r\n */\r\n public static Now = () => {\r\n // returns the window or webworker performance object\r\n let perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n let now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n\r\n return new Date().getTime();\r\n };\r\n\r\n /**\r\n * Gets duration between two timestamps\r\n */\r\n public static GetDuration = (start: number, end: number): number => {\r\n let result = null;\r\n if (start !== 0 && end !== 0 && !CoreUtils.isNullOrUndefined(start) && !CoreUtils.isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will \r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport const DisabledPropertyName: string = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport const SampleRate = \"sampleRate\";\r\nexport const ProcessLegacy = \"ProcessLegacy\";\r\nexport const HttpMethod = \"http.method\";\r\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// @duplicate of https://github.com/microsoft/ApplicationInsights-node.js/blob/develop/Library/ConnectionStringParser.ts\r\n\r\nimport { ConnectionString, ConnectionStringKey } from \"./Interfaces/ConnectionString\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { CoreUtils } from \"@microsoft/applicationinsights-core-js\";\r\n\r\nexport class ConnectionStringParser {\r\n private static _FIELDS_SEPARATOR = \";\";\r\n private static _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\n\r\n public static parse(connectionString?: string): ConnectionString {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n\r\n const kvPairs = connectionString.split(ConnectionStringParser._FIELDS_SEPARATOR);\r\n\r\n const result: ConnectionString = CoreUtils.arrReduce(kvPairs, (fields: ConnectionString, kv: string) => {\r\n const kvParts = kv.split(ConnectionStringParser._FIELD_KEY_VALUE_SEPARATOR);\r\n\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n const key = kvParts[0].toLowerCase() as ConnectionStringKey;\r\n const value = kvParts[1];\r\n fields[key] = value as string;\r\n }\r\n return fields;\r\n }, {});\r\n\r\n if (CoreUtils.objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n const locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nexport class Base {\r\n\r\n /**\r\n * Name of item (B section) if any. If telemetry data is derived straight from this, this should be null.\r\n */\r\n public baseType: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nexport class Data extends Base {\r\n\r\n /**\r\n * Name of item (B section) if any. If telemetry data is derived straight from this, this should be null.\r\n */\r\n public baseType: string;\r\n\r\n /**\r\n * Container for data item (B section).\r\n */\r\n public baseData: TDomain;\r\n\r\n constructor() {\r\n super();\r\n\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Envelope as AIEnvelope } from '../../Interfaces/Contracts/Generated/Envelope';\r\nimport { Base } from '../../Interfaces/Contracts/Generated/Base';\r\nimport { IEnvelope } from '../../Interfaces/Telemetry/IEnvelope';\r\nimport { DataSanitizer } from './DataSanitizer';\r\nimport { FieldType } from '../../Enums';\r\nimport { Util } from '../../Util';\r\nimport { IDiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Envelope extends AIEnvelope implements IEnvelope {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract: any;\r\n\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n constructor(logger: IDiagnosticLogger, data: Base, name: string) {\r\n super();\r\n\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n this.data = data;\r\n this.time = CoreUtils.toISOString(new Date());\r\n\r\n this.aiDataContract = {\r\n time: FieldType.Required,\r\n iKey: FieldType.Required,\r\n name: FieldType.Required,\r\n sampleRate: () => {\r\n return (this.sampleRate === 100) ? FieldType.Hidden : FieldType.Required;\r\n },\r\n tags: FieldType.Required,\r\n data: FieldType.Required\r\n };\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nexport class Envelope {\r\n\r\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Type name of telemetry data item.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Event date time when telemetry item was created. This is the wall clock time on the client when the event was generated. There is no guarantee that the client's time is accurate. This field must be formatted in UTC ISO 8601 format, with a trailing 'Z' character, as described publicly on https://en.wikipedia.org/wiki/ISO_8601#UTC. Note: the number of decimal seconds digits provided are variable (and unspecified). Consumers should handle this, i.e. managed code consumers should not use format 'O' for parsing as it specifies a fixed length. Example: 2009-06-15T13:45:30.0000000Z.\r\n */\r\n public time: string;\r\n\r\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\r\n public sampleRate: number;\r\n\r\n /**\r\n * Sequence field used to track absolute order of uploaded events.\r\n */\r\n public seq: string;\r\n\r\n /**\r\n * The application's instrumentation key. The key is typically represented as a GUID, but there are cases when it is not a guid. No code should rely on iKey being a GUID. Instrumentation key is case insensitive.\r\n */\r\n public iKey: string;\r\n\r\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\r\n public tags: any;\r\n\r\n /**\r\n * Telemetry data item.\r\n */\r\n public data: Base;\r\n\r\n constructor() {\r\n this.ver = 1;\r\n this.sampleRate = 100.0;\r\n this.tags = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * The abstract common base of all domains.\r\n */\r\nexport class Domain {\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nexport class EventData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\nimport { EventData } from '../Interfaces/Contracts/Generated/EventData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\n\r\nexport class Event extends EventData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n public static dataType = \"EventData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Required,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, properties?: any, measurements?: any) {\r\n\r\n super();\r\n\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nexport class StackFrame {\r\n\r\n /**\r\n * Level in the call stack. For the long stacks SDK may not report every function in a call stack.\r\n */\r\n public level: number;\r\n\r\n /**\r\n * Method name.\r\n */\r\n public method: string;\r\n\r\n /**\r\n * Name of the assembly (dll, jar, etc.) containing this function.\r\n */\r\n public assembly: string;\r\n\r\n /**\r\n * File name or URL of the method implementation.\r\n */\r\n public fileName: string;\r\n\r\n /**\r\n * Line number of the code implementation.\r\n */\r\n public line: number;\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { ExceptionDetails } from './ExceptionDetails';\r\nimport { Domain } from './Domain';\r\nimport { SeverityLevel } from './SeverityLevel';\r\n\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nexport class ExceptionData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\r\n public exceptions: ExceptionDetails[];\r\n\r\n /**\r\n * Severity level. Mostly used to indicate exception severity level when it is reported by logging library.\r\n */\r\n public severityLevel: SeverityLevel;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.exceptions = [];\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { StackFrame } from './StackFrame';\r\n\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nexport class ExceptionDetails {\r\n\r\n /**\r\n * In case exception is nested (outer exception contains inner one), the id and outerId properties are used to represent the nesting.\r\n */\r\n public id: number;\r\n\r\n /**\r\n * The value of outerId is a reference to an element in ExceptionDetails that represents the outer exception\r\n */\r\n public outerId: number;\r\n\r\n /**\r\n * Exception type name.\r\n */\r\n public typeName: string;\r\n\r\n /**\r\n * Exception message.\r\n */\r\n public message: string;\r\n\r\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\r\n public hasFullStack: boolean;\r\n\r\n /**\r\n * Text describing the stack. Either stack or parsedStack should have a value.\r\n */\r\n public stack: string;\r\n\r\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\r\n public parsedStack: StackFrame[];\r\n\r\n constructor() {\r\n this.hasFullStack = true;\r\n this.parsedStack = [];\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { StackFrame } from '../Interfaces/Contracts/Generated/StackFrame';\r\nimport { ExceptionData } from '../Interfaces/Contracts/Generated/ExceptionData';\r\nimport { ExceptionDetails } from '../Interfaces/Contracts/Generated/ExceptionDetails';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { SeverityLevel } from '../Interfaces/Contracts/Generated/SeverityLevel';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport { IExceptionInternal, IExceptionDetailsInternal, IExceptionStackFrameInternal } from '../Interfaces/IExceptionTelemetry';\r\n\r\nconst strError = \"error\";\r\n\r\nfunction _isExceptionDetailsInternal(value:any): value is IExceptionDetailsInternal {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n}\r\n\r\nfunction _isExceptionInternal(value:any): value is IExceptionInternal {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n}\r\n\r\nfunction _getErrorType(errorType: any) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n let typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType.name || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n typeName = (results && results.length > 1) ? results[1] : \"\";\r\n } catch (e) {\r\n // Ignore\r\n }\r\n }\r\n }\r\n\r\n return typeName;\r\n}\r\n\r\nexport class Exception extends ExceptionData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n public static dataType = \"ExceptionData\";\r\n\r\n public id?: string;\r\n public problemGroup?: string;\r\n public isManual?: boolean;\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n exceptions: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, exception: Error | IExceptionInternal, properties?: {[key: string]: any}, measurements?: {[key: string]: number}, severityLevel?: SeverityLevel, id?: string) {\r\n super();\r\n\r\n if (!_isExceptionInternal(exception)) {\r\n this.exceptions = [new _ExceptionDetails(logger, exception)];\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties) || {};\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n if (severityLevel) { this.severityLevel = severityLevel; }\r\n if (id) { this.id = id; }\r\n } else {\r\n this.exceptions = exception.exceptions;\r\n this.properties = exception.properties;\r\n this.measurements = exception.measurements;\r\n if (exception.severityLevel) { this.severityLevel = exception.severityLevel; }\r\n if (exception.id) { this.id = exception.id; }\r\n if (exception.problemGroup) { this.problemGroup = exception.problemGroup; }\r\n\r\n // bool/int types, use isNullOrUndefined\r\n this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!CoreUtils.isNullOrUndefined(exception.isManual)) { this.isManual = exception.isManual; }\r\n }\r\n }\r\n\r\n public static CreateFromInterface(logger: IDiagnosticLogger, exception: IExceptionInternal, properties?: any, measurements?: { [key: string]: number }): Exception {\r\n const exceptions: _ExceptionDetails[] = exception.exceptions\r\n && CoreUtils.arrMap(exception.exceptions, (ex: IExceptionDetailsInternal) => _ExceptionDetails.CreateFromInterface(logger, ex));\r\n const exceptionData = new Exception(logger, {...exception, exceptions}, properties, measurements);\r\n return exceptionData;\r\n }\r\n\r\n public toInterface(): IExceptionInternal {\r\n const { exceptions, properties, measurements, severityLevel, ver, problemGroup, id, isManual } = this;\r\n\r\n const exceptionDetailsInterface = exceptions instanceof Array\r\n && CoreUtils.arrMap(exceptions, (exception: _ExceptionDetails) => exception.toInterface())\r\n || undefined;\r\n\r\n return {\r\n ver: \"4.0\", // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel,\r\n properties,\r\n measurements,\r\n problemGroup,\r\n id,\r\n isManual\r\n } as IExceptionInternal;\r\n }\r\n\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n public static CreateSimpleException(message: string, typeName: string, assembly: string, fileName: string,\r\n details: string, line: number): Exception {\r\n\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message,\r\n stack: details,\r\n typeName\r\n } as ExceptionDetails\r\n ]\r\n } as Exception;\r\n }\r\n}\r\n\r\nexport class _ExceptionDetails extends ExceptionDetails implements ISerializable {\r\n\r\n public aiDataContract = {\r\n id: FieldType.Default,\r\n outerId: FieldType.Default,\r\n typeName: FieldType.Required,\r\n message: FieldType.Required,\r\n hasFullStack: FieldType.Default,\r\n stack: FieldType.Default,\r\n parsedStack: FieldType.Array\r\n };\r\n\r\n constructor(logger: IDiagnosticLogger, exception: Error | IExceptionDetailsInternal) {\r\n super();\r\n\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n let error = exception as any;\r\n if (!Util.isError(error)) {\r\n error = error[strError] || error.evt || error;\r\n }\r\n\r\n this.typeName = DataSanitizer.sanitizeString(logger, _getErrorType(error)) || Util.NotSpecified;\r\n this.message = DataSanitizer.sanitizeMessage(logger, exception.message) || Util.NotSpecified;\r\n const stack = exception.stack;\r\n this.parsedStack = _ExceptionDetails.parseStack(stack);\r\n this.stack = DataSanitizer.sanitizeException(logger, stack);\r\n this.hasFullStack = Util.isArray(this.parsedStack) && this.parsedStack.length > 0;\r\n } else {\r\n this.typeName = exception.typeName;\r\n this.message = exception.message;\r\n this.stack = exception.stack;\r\n this.parsedStack = exception.parsedStack\r\n this.hasFullStack = exception.hasFullStack\r\n }\r\n }\r\n\r\n public toInterface(): IExceptionDetailsInternal {\r\n const parsedStack = this.parsedStack instanceof Array\r\n && CoreUtils.arrMap(this.parsedStack, (frame: _StackFrame) => frame.toInterface());\r\n\r\n const exceptionDetailsInterface: IExceptionDetailsInternal = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this.stack,\r\n parsedStack: parsedStack || undefined\r\n };\r\n\r\n return exceptionDetailsInterface;\r\n }\r\n\r\n public static CreateFromInterface(logger:IDiagnosticLogger, exception: IExceptionDetailsInternal): _ExceptionDetails {\r\n const parsedStack = (exception.parsedStack instanceof Array\r\n &&CoreUtils.arrMap(exception.parsedStack, frame => _StackFrame.CreateFromInterface(frame)))\r\n || exception.parsedStack;\r\n\r\n const exceptionDetails = new _ExceptionDetails(logger, {...exception, parsedStack});\r\n\r\n return exceptionDetails;\r\n }\r\n\r\n private static parseStack(stack?:string): _StackFrame[] {\r\n let parsedStack: _StackFrame[];\r\n if (CoreUtils.isString(stack)) {\r\n const frames = stack.split('\\n');\r\n parsedStack = [];\r\n let level = 0;\r\n\r\n let totalSizeInBytes = 0;\r\n for (let i = 0; i <= frames.length; i++) {\r\n const frame = frames[i];\r\n if (_StackFrame.regex.test(frame)) {\r\n const parsedFrame = new _StackFrame(frames[i], level++);\r\n totalSizeInBytes += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n }\r\n\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n const exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes > exceptionParsedStackThreshold) {\r\n let left = 0;\r\n let right = parsedStack.length - 1;\r\n let size = 0;\r\n let acceptedLeft = left;\r\n let acceptedRight = right;\r\n\r\n while (left < right) {\r\n // check size\r\n const lSize = parsedStack[left].sizeInBytes;\r\n const rSize = parsedStack[right].sizeInBytes;\r\n size += lSize + rSize;\r\n\r\n if (size > exceptionParsedStackThreshold) {\r\n\r\n // remove extra frames from the middle\r\n const howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n\r\n return parsedStack;\r\n }\r\n}\r\n\r\nexport class _StackFrame extends StackFrame implements ISerializable {\r\n\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n public static regex = /^([\\s]+at)?(.*?)(\\@|\\s\\(|\\s)([^\\(\\@\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n public static baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n public sizeInBytes = 0;\r\n\r\n public aiDataContract = {\r\n level: FieldType.Required,\r\n method: FieldType.Required,\r\n assembly: FieldType.Default,\r\n fileName: FieldType.Default,\r\n line: FieldType.Default,\r\n };\r\n\r\n constructor(sourceFrame: string | IExceptionStackFrameInternal, level: number) {\r\n super();\r\n\r\n // Not converting this to CoreUtils.isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n const frame: string = sourceFrame;\r\n this.level = level;\r\n this.method = \"\";\r\n this.assembly = Util.trim(frame);\r\n this.fileName = \"\";\r\n this.line = 0;\r\n const matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n this.method = Util.trim(matches[2]) || this.method;\r\n this.fileName = Util.trim(matches[4]);\r\n this.line = parseInt(matches[5]) || 0;\r\n }\r\n } else {\r\n this.level = sourceFrame.level;\r\n this.method = sourceFrame.method;\r\n this.assembly = sourceFrame.assembly;\r\n this.fileName = sourceFrame.fileName;\r\n this.line = sourceFrame.line;\r\n this.sizeInBytes = 0;\r\n }\r\n\r\n this.sizeInBytes += this.method.length;\r\n this.sizeInBytes += this.fileName.length;\r\n this.sizeInBytes += this.assembly.length;\r\n\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n this.sizeInBytes += _StackFrame.baseSize;\r\n this.sizeInBytes += this.level.toString().length;\r\n this.sizeInBytes += this.line.toString().length;\r\n }\r\n\r\n public static CreateFromInterface(frame: IExceptionStackFrameInternal) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n }\r\n\r\n public toInterface() {\r\n return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.line\r\n };\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport enum DataPointType {\r\n Measurement = 0,\r\n Aggregation = 1,\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\nimport { DataPoint } from './DataPoint';\r\n\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nexport class MetricData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\r\n public metrics: DataPoint[];\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.metrics = [];\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { DataPointType } from './DataPointType';\r\n\r\n/**\r\n * Metric data single measurement.\r\n */\r\nexport class DataPoint {\r\n\r\n /**\r\n * Name of the metric.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n public kind: DataPointType;\r\n\r\n /**\r\n * Single value for measurement. Sum of individual measurements for the aggregation.\r\n */\r\n public value: number;\r\n\r\n /**\r\n * Metric weight of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public count: number;\r\n\r\n /**\r\n * Minimum value of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public min: number;\r\n\r\n /**\r\n * Maximum value of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public max: number;\r\n\r\n /**\r\n * Standard deviation of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public stdDev: number;\r\n\r\n constructor() {\r\n this.kind = DataPointType.Measurement;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { DataPoint as AIDataPoint } from '../../Interfaces/Contracts/Generated/DataPoint';\r\nimport { ISerializable } from '../../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../../Enums';\r\n\r\nexport class DataPoint extends AIDataPoint implements ISerializable {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract = {\r\n name: FieldType.Required,\r\n kind: FieldType.Default,\r\n value: FieldType.Required,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { MetricData } from '../Interfaces/Contracts/Generated/MetricData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { DataPoint } from './Common/DataPoint';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Metric extends MetricData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n public static dataType = \"MetricData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n metrics: FieldType.Required,\r\n properties: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, value: number, count?: number, min?: number, max?: number, properties?: any, measurements?: { [key: string]: number }) {\r\n super();\r\n\r\n const dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n dataPoint.value = value;\r\n\r\n this.metrics = [dataPoint];\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from './EventData';\r\n\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nexport class PageViewData extends EventData {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Request URL with all query string parameters\r\n */\r\n public url: string;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Identifier of a page view instance. Used for correlation between page view and other telemetry items.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { PageViewData } from '../Interfaces/Contracts/Generated/PageViewData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class PageView extends PageViewData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n public static dataType = \"PageviewData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n id: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name?: string, url?: string, durationMs?: number, properties?: {[key: string]: string}, measurements?: {[key: string]: number}, id?: string) {\r\n super();\r\n\r\n this.id = DataSanitizer.sanitizeId(logger, id);\r\n this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n if (!isNaN(durationMs)) {\r\n this.duration = Util.msToTimeSpan(durationMs);\r\n }\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { Util, AjaxHelper} from '../Util';\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from '../Interfaces/Contracts/Generated/RemoteDependencyData';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class RemoteDependencyData extends GeneratedRemoteDependencyData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n public static dataType = \"RemoteDependencyData\";\r\n\r\n public aiDataContract = {\r\n id: FieldType.Required,\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n resultCode: FieldType.Default,\r\n duration: FieldType.Default,\r\n success: FieldType.Default,\r\n data: FieldType.Default,\r\n target: FieldType.Default,\r\n type: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n\r\n kind: FieldType.Default,\r\n value: FieldType.Default,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default,\r\n dependencyKind: FieldType.Default,\r\n dependencySource: FieldType.Default,\r\n commandName: FieldType.Default,\r\n dependencyTypeName: FieldType.Default,\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n constructor(logger: IDiagnosticLogger, id: string, absoluteUrl: string, commandName: string, value: number, success: boolean, resultCode: number, method?: string, requestAPI: string = \"Ajax\", correlationContext?: string, properties?: Object, measurements?: Object) {\r\n super();\r\n\r\n this.id = id;\r\n\r\n this.duration = Util.msToTimeSpan(value);\r\n this.success = success;\r\n this.resultCode = resultCode + \"\";\r\n\r\n this.type = DataSanitizer.sanitizeString(logger, requestAPI);\r\n\r\n const dependencyFields = AjaxHelper.ParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n this.data = DataSanitizer.sanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n this.target = DataSanitizer.sanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n this.target = `${this.target} | ${correlationContext}`;\r\n }\r\n this.name = DataSanitizer.sanitizeString(logger, dependencyFields.name);\r\n\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nexport class RemoteDependencyData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Name of the command initiated with this dependency call. Low cardinality value. Examples are stored procedure name and URL path template.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Identifier of a dependency call instance. Used for correlation with the request telemetry item corresponding to this dependency call.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Result code of a dependency call. Examples are SQL error code and HTTP status code.\r\n */\r\n public resultCode: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Indication of successfull or unsuccessfull call.\r\n */\r\n public success: boolean;\r\n\r\n /**\r\n * Command initiated by this dependency call. Examples are SQL statement and HTTP URL's with all query parameters.\r\n */\r\n public data: string;\r\n\r\n /**\r\n * Target site of a dependency call. Examples are server name, host address.\r\n */\r\n public target: string;\r\n\r\n /**\r\n * Dependency type name. Very low cardinality value for logical grouping of dependencies and interpretation of other fields like commandName and resultCode. Examples are SQL, Azure table, and HTTP.\r\n */\r\n public type: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.success = true;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { MessageData } from '../Interfaces/Contracts/Generated/MessageData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { SeverityLevel } from '../Interfaces/Contracts/Generated/SeverityLevel';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Trace extends MessageData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n public static dataType = \"MessageData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n message: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default\r\n };\r\n\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, message: string, severityLevel?: SeverityLevel, properties?: any, measurements?: { [key: string]: number }) {\r\n super();\r\n message = message || Util.NotSpecified;\r\n this.message = DataSanitizer.sanitizeMessage(logger, message);\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n\r\n if (severityLevel) {\r\n this.severityLevel = severityLevel;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\nimport { SeverityLevel } from './SeverityLevel';\r\n\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nexport class MessageData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Trace message\r\n */\r\n public message: string;\r\n\r\n /**\r\n * Trace severity level.\r\n */\r\n public severityLevel: SeverityLevel;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { PageViewPerfData } from '../Interfaces/Contracts/Generated/PageViewPerfData';\r\nimport { FieldType } from '../Enums';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity } from '@microsoft/applicationinsights-core-js';\r\nimport { IPageViewPerformanceTelemetry } from '../Interfaces/IPageViewPerformanceTelemetry';\r\n\r\n\r\nexport class PageViewPerformance extends PageViewPerfData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n public static dataType = \"PageviewPerformanceData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n perfTotal: FieldType.Default,\r\n networkConnect: FieldType.Default,\r\n sentRequest: FieldType.Default,\r\n receivedResponse: FieldType.Default,\r\n domProcessing: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n };\r\n\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, url: string, unused: number, properties?: { [key: string]: string }, measurements?: { [key: string]: number }, cs4BaseData?: IPageViewPerformanceTelemetry) {\r\n super();\r\n this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n\r\n if (cs4BaseData) {\r\n this.domProcessing = cs4BaseData.domProcessing;\r\n this.duration = cs4BaseData.duration\r\n this.networkConnect = cs4BaseData.networkConnect;\r\n this.perfTotal = cs4BaseData.perfTotal;\r\n this.receivedResponse = cs4BaseData.receivedResponse;\r\n this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from './PageViewData';\r\n\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nexport class PageViewPerfData extends PageViewData {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Request URL with all query string parameters\r\n */\r\n public url: string;\r\n\r\n /**\r\n * Performance total in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public perfTotal: string;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Network connection time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public networkConnect: string;\r\n\r\n /**\r\n * Sent request time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public sentRequest: string;\r\n\r\n /**\r\n * Received response time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public receivedResponse: string;\r\n\r\n /**\r\n * DOM processing time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public domProcessing: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Data as AIData } from '../../Interfaces/Contracts/Generated/Data';\r\nimport { ISerializable } from '../../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../../Enums';\r\n\r\nexport class Data extends AIData implements ISerializable {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract = {\r\n baseType: FieldType.Required,\r\n baseData: FieldType.Required\r\n }\r\n\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n constructor(baseType: string, data: TDomain) {\r\n super();\r\n\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { IConfiguration, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport { DistributedTracingModes } from '../Enums';\r\n\r\n/**\r\n * @description Configuration settings for how telemetry is sent\r\n * @export\r\n * @interface IConfig\r\n */\r\nexport interface IConfig {\r\n\r\n /**\r\n * @description\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n emitLineDelimitedJson?: boolean;\r\n\r\n /**\r\n * @description An optional account id, if your app groups users into accounts. No spaces, commas, semicolons, equals, or vertical bars.\r\n * @type {string}\r\n * @memberof IConfig\r\n */\r\n accountId?: string;\r\n\r\n /**\r\n * @description A session is logged if the user is inactive for this amount of time in milliseconds. Default 30 mins.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 30*60*1000\r\n */\r\n sessionRenewalMs?: number;\r\n\r\n /**\r\n * @description A session is logged if it has continued for this amount of time in milliseconds. Default 24h.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 24*60*60*1000\r\n */\r\n sessionExpirationMs?: number;\r\n\r\n /**\r\n * @description Max size of telemetry batch. If batch exceeds limit, it is sent and a new batch is started\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 100000\r\n */\r\n maxBatchSizeInBytes?: number;\r\n\r\n /**\r\n * @description How long to batch telemetry for before sending (milliseconds)\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 15 seconds\r\n */\r\n maxBatchInterval?: number;\r\n\r\n /**\r\n * @description If true, debugging data is thrown as an exception by the logger. Default false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableDebug?: boolean;\r\n\r\n /**\r\n * @description If true, exceptions are not autocollected. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableExceptionTracking?: boolean;\r\n\r\n /**\r\n * @description If true, telemetry is not collected or sent. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableTelemetry?: boolean;\r\n\r\n /**\r\n * @description Percentage of events that will be sent. Default is 100, meaning all events are sent.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @defaultValue 100\r\n */\r\n samplingPercentage?: number;\r\n\r\n /**\r\n * @description If true, on a pageview,the previous instrumented page's view time is tracked and sent as telemetry and a new timer is started for the current pageview. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoTrackPageVisitTime?: boolean;\r\n\r\n /**\r\n * @description Automatically track route changes in Single Page Applications (SPA). If true, each route change will send a new Pageview to Application Insights.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n enableAutoRouteTracking?: boolean;\r\n\r\n /**\r\n * @description If true, Ajax calls are not autocollected. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableAjaxTracking?: boolean;\r\n\r\n /**\r\n * @description If true, Fetch requests are not autocollected. Default is true.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n disableFetchTracking?: boolean;\r\n\r\n /**\r\n * @description If true, default behavior of trackPageView is changed to record end of page view duration interval when trackPageView is called. If false and no custom duration is provided to trackPageView, the page view performance is calculated using the navigation timing API. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n overridePageViewDuration?: boolean;\r\n\r\n /**\r\n * @description Default 500 - controls how many ajax calls will be monitored per page view. Set to -1 to monitor all (unlimited) ajax calls on the page.\r\n * @type {number}\r\n * @memberof IConfig\r\n */\r\n maxAjaxCallsPerView?: number;\r\n\r\n /**\r\n * @ignore\r\n * @description If false, internal telemetry sender buffers will be checked at startup for items not yet sent. Default is true\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n disableDataLossAnalysis?: boolean;\r\n\r\n /**\r\n * @description If false, the SDK will add two headers ('Request-Id' and 'Request-Context') to all dependency requests to correlate them with corresponding requests on the server side. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableCorrelationHeaders?: boolean;\r\n\r\n /**\r\n * @description Sets the distributed tracing mode. If AI_AND_W3C mode or W3C mode is set, W3C trace context headers (traceparent/tracestate) will be generated and included in all outgoing requests. \r\n * AI_AND_W3C is provided for back-compatibility with any legacy Application Insights instrumented services\r\n * @type {enum}\r\n * @memberof IConfig\r\n * @defaultValue AI\r\n */\r\n distributedTracingMode?: DistributedTracingModes;\r\n\r\n /**\r\n * @description Disable correlation headers for specific domain\r\n * @type {string[]}\r\n * @memberof IConfig\r\n */\r\n correlationHeaderExcludedDomains?: string[];\r\n\r\n /**\r\n * @description Default false. If true, flush method will not be called when onBeforeUnload event triggers.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n disableFlushOnBeforeUnload?: boolean;\r\n\r\n /**\r\n * @description Default value of {@link #disableFlushOnBeforeUnload}. If true, flush method will not be called when onUnload event triggers.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n disableFlushOnUnload?: boolean;\r\n\r\n /**\r\n * @description If true, the buffer with all unsent telemetry is stored in session storage. The buffer is restored on page load. Default is true.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n enableSessionStorageBuffer?: boolean;\r\n\r\n /**\r\n * @description If true, the SDK will not store or read any data from cookies. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isCookieUseDisabled?: boolean;\r\n\r\n /**\r\n * @description Custom cookie domain. This is helpful if you want to share Application Insights cookies across subdomains.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue \"\"\r\n */\r\n cookieDomain?: string;\r\n\r\n /** \r\n * Default false. If false, retry on 206 (partial success), 408 (timeout), 429 (too many requests), 500 (internal server error), 503 (service unavailable), and 0 (offline, only if detected)\r\n * @description\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isRetryDisabled?: boolean;\r\n\r\n /**\r\n * @deprecated Used when initizialing from snippet only.\r\n * @description The url from where the JS SDK will be downloaded.\r\n * @type {string}\r\n * @memberof IConfig\r\n */\r\n url?: string;\r\n\r\n /**\r\n * @description If true, the SDK will not store or read any data from local and session storage. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isStorageUseDisabled?: boolean;\r\n\r\n /**\r\n * @description If false, the SDK will send all telemetry using the [Beacon API](https://www.w3.org/TR/beacon)\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n isBeaconApiDisabled?: boolean;\r\n\r\n /**\r\n * @description Sets the sdk extension name. Only alphabetic characters are allowed. The extension name is added as a prefix to the 'ai.internal.sdkVersion' tag (e.g. 'ext_javascript:2.0.0'). Default is null.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n sdkExtension?: string;\r\n\r\n /**\r\n * @description Default is false. If true, the SDK will track all [Browser Link](https://docs.microsoft.com/en-us/aspnet/core/client-side/using-browserlink) requests.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isBrowserLinkTrackingEnabled?: boolean;\r\n\r\n /**\r\n * @description AppId is used for the correlation between AJAX dependencies happening on the client-side with the server-side requets. When Beacon API is enabled, it cannot be used automatically, but can be set manually in the configuration. Default is null\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n appId?: string;\r\n\r\n /**\r\n * @description If true, the SDK will add two headers ('Request-Id' and 'Request-Context') to all CORS requests to correlate outgoing AJAX dependencies with corresponding requests on the server side. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableCorsCorrelation?: boolean;\r\n\r\n /**\r\n * @description An optional value that will be used as name postfix for localStorage and cookie name.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n namePrefix?: string;\r\n\r\n /**\r\n * @description An optional value that will track Request Header through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableRequestHeaderTracking?: boolean;\r\n\r\n /**\r\n * @description An optional value that will track Response Header through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableResponseHeaderTracking?: boolean;\r\n\r\n /**\r\n * @description An optional value that will track Response Error data through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableAjaxErrorStatusText?: boolean;\r\n\r\n /**\r\n * Flag to enable looking up and including additional browser window.performance timings\r\n * in the reported ajax (XHR and fetch) reported metrics. \r\n * Defaults to false.\r\n */\r\n enableAjaxPerfTracking?:boolean;\r\n\r\n /**\r\n * The maximum number of times to look for the window.performance timings (if available), this \r\n * is required as not all browsers populate the window.performance before reporting the \r\n * end of the XHR request and for fetch requests this is added after its complete\r\n * Defaults to 3\r\n */\r\n maxAjaxPerfLookupAttempts?: number;\r\n\r\n /**\r\n * The amount of time to wait before re-attempting to find the windows.performance timings\r\n * for an ajax request, time is in milliseconds and is passed directly to setTimeout()\r\n * Defaults to 25.\r\n */\r\n ajaxPerfLookupDelay?: number;\r\n \r\n /**\r\n * @description Default false. when tab is closed, the SDK will send all remaining telemetry using the [Beacon API](https://www.w3.org/TR/beacon)\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n onunloadDisableBeacon?: boolean;\r\n\r\n // Internal\r\n\r\n /**\r\n * @ignore\r\n * @description Internal only\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoExceptionInstrumented?: boolean;\r\n correlationHeaderDomains?: string[]\r\n\r\n /**\r\n * @ignore\r\n * @description Internal only\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoUnhandledPromiseInstrumented?: boolean;\r\n\r\n /**\r\n * @description Default false. Define whether to track unhandled promise rejections and report as JS errors. \r\n * When disableExceptionTracking is enabled (dont track exceptions) this value will be false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableUnhandledPromiseRejectionTracking?: boolean;\r\n\r\n /**\r\n * @description Disable correlation headers using regular expressions\r\n * @type {RegExp[]}\r\n */\r\n correlationHeaderExcludePatterns?: RegExp[];\r\n}\r\n\r\nexport class ConfigurationManager {\r\n public static getConfig(config: IConfiguration & IConfig, field: string, identifier?: string, defaultValue: number | string | boolean = false): number | string | boolean {\r\n let configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !CoreUtils.isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n } else {\r\n configValue = config[field];\r\n }\r\n\r\n return !CoreUtils.isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nexport class ContextTagKeys {\r\n\r\n /**\r\n * Application version. Information in the application context fields is always about the application that is sending the telemetry.\r\n */\r\n public applicationVersion: string;\r\n\r\n /**\r\n * Application build.\r\n */\r\n public applicationBuild: string;\r\n\r\n /**\r\n * Application type id.\r\n */\r\n public applicationTypeId: string;\r\n\r\n /**\r\n * Application id.\r\n */\r\n public applicationId: string;\r\n\r\n /**\r\n * Application layer.\r\n */\r\n public applicationLayer: string;\r\n\r\n /**\r\n * Unique client device id. Computer name in most cases.\r\n */\r\n public deviceId: string;\r\n public deviceIp: string;\r\n public deviceLanguage: string;\r\n\r\n /**\r\n * Device locale using - pattern, following RFC 5646. Example 'en-US'.\r\n */\r\n public deviceLocale: string;\r\n\r\n /**\r\n * Model of the device the end user of the application is using. Used for client scenarios. If this field is empty then it is derived from the user agent.\r\n */\r\n public deviceModel: string;\r\n public deviceFriendlyName: string;\r\n public deviceNetwork: string;\r\n public deviceNetworkName: string;\r\n\r\n /**\r\n * Client device OEM name taken from the browser.\r\n */\r\n public deviceOEMName: string;\r\n public deviceOS: string;\r\n\r\n /**\r\n * Operating system name and version of the device the end user of the application is using. If this field is empty then it is derived from the user agent. Example 'Windows 10 Pro 10.0.10586.0'\r\n */\r\n public deviceOSVersion: string;\r\n\r\n /**\r\n * Name of the instance where application is running. Computer name for on-premisis, instance name for Azure.\r\n */\r\n public deviceRoleInstance: string;\r\n\r\n /**\r\n * Name of the role application is part of. Maps directly to the role name in azure.\r\n */\r\n public deviceRoleName: string;\r\n public deviceScreenResolution: string;\r\n\r\n /**\r\n * The type of the device the end user of the application is using. Used primarily to distinguish JavaScript telemetry from server side telemetry. Examples: 'PC', 'Phone', 'Browser'. 'PC' is the default value.\r\n */\r\n public deviceType: string;\r\n public deviceMachineName: string;\r\n public deviceVMName: string;\r\n public deviceBrowser: string;\r\n\r\n /**\r\n * The browser name and version as reported by the browser.\r\n */\r\n public deviceBrowserVersion: string;\r\n\r\n /**\r\n * The IP address of the client device. IPv4 and IPv6 are supported. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationIp: string;\r\n\r\n /**\r\n * The country of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationCountry: string;\r\n\r\n /**\r\n * The province/state of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationProvince: string;\r\n\r\n /**\r\n * The city of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationCity: string;\r\n\r\n /**\r\n * A unique identifier for the operation instance. The operation.id is created by either a request or a page view. All other telemetry sets this to the value for the containing request or page view. Operation.id is used for finding all the telemetry items for a specific operation instance.\r\n */\r\n public operationId: string;\r\n\r\n /**\r\n * The name (group) of the operation. The operation.name is created by either a request or a page view. All other telemetry items set this to the value for the containing request or page view. Operation.name is used for finding all the telemetry items for a group of operations (i.e. 'GET Home/Index').\r\n */\r\n public operationName: string;\r\n\r\n /**\r\n * The unique identifier of the telemetry item's immediate parent.\r\n */\r\n public operationParentId: string;\r\n public operationRootId: string;\r\n\r\n /**\r\n * Name of synthetic source. Some telemetry from the application may represent a synthetic traffic. It may be web crawler indexing the web site, site availability tests or traces from diagnostic libraries like Application Insights SDK itself.\r\n */\r\n public operationSyntheticSource: string;\r\n\r\n /**\r\n * The correlation vector is a light weight vector clock which can be used to identify and order related events across clients and services.\r\n */\r\n public operationCorrelationVector: string;\r\n\r\n /**\r\n * Session ID - the instance of the user's interaction with the app. Information in the session context fields is always about the end user. When telemetry is sent from a service, the session context is about the user that initiated the operation in the service.\r\n */\r\n public sessionId: string;\r\n\r\n /**\r\n * Boolean value indicating whether the session identified by ai.session.id is first for the user or not.\r\n */\r\n public sessionIsFirst: string;\r\n public sessionIsNew: string;\r\n public userAccountAcquisitionDate: string;\r\n\r\n /**\r\n * In multi-tenant applications this is the account ID or name which the user is acting with. Examples may be subscription ID for Azure portal or blog name blogging platform.\r\n */\r\n public userAccountId: string;\r\n\r\n /**\r\n * The browser's user agent string as reported by the browser. This property will be used to extract informaiton regarding the customer's browser but will not be stored. Use custom properties to store the original user agent.\r\n */\r\n public userAgent: string;\r\n\r\n /**\r\n * Anonymous user id. Represents the end user of the application. When telemetry is sent from a service, the user context is about the user that initiated the operation in the service.\r\n */\r\n public userId: string;\r\n\r\n /**\r\n * Store region for UWP applications.\r\n */\r\n public userStoreRegion: string;\r\n\r\n /**\r\n * Authenticated user id. The opposite of ai.user.id, this represents the user with a friendly name. Since it's PII information it is not collected by default by most SDKs.\r\n */\r\n public userAuthUserId: string;\r\n public userAnonymousUserAcquisitionDate: string;\r\n public userAuthenticatedUserAcquisitionDate: string;\r\n public cloudName: string;\r\n\r\n /**\r\n * Name of the role the application is a part of. Maps directly to the role name in azure.\r\n */\r\n public cloudRole: string;\r\n public cloudRoleVer: string;\r\n\r\n /**\r\n * Name of the instance where the application is running. Computer name for on-premisis, instance name for Azure.\r\n */\r\n public cloudRoleInstance: string;\r\n public cloudEnvironment: string;\r\n public cloudLocation: string;\r\n public cloudDeploymentUnit: string;\r\n\r\n /**\r\n * SDK version. See https://github.com/microsoft/ApplicationInsights-Home/blob/master/SDK-AUTHORING.md#sdk-version-specification for information.\r\n */\r\n public internalSdkVersion: string;\r\n\r\n /**\r\n * Agent version. Used to indicate the version of StatusMonitor installed on the computer if it is used for data collection.\r\n */\r\n public internalAgentVersion: string;\r\n\r\n /**\r\n * This is the node name used for billing purposes. Use it to override the standard detection of nodes.\r\n */\r\n public internalNodeName: string;\r\n\r\n /**\r\n * This identifies the version of the snippet that was used to initialize the SDK\r\n */\r\n public internalSnippet: string;\r\n\r\n /**\r\n * This identifies the source of the Sdk script (used to identify whether the SDK was loaded via the CDN)\r\n */\r\n public internalSdkSrc: string;\r\n\r\n constructor() {\r\n this.applicationVersion = \"ai.application.ver\";\r\n this.applicationBuild = \"ai.application.build\";\r\n this.applicationTypeId = \"ai.application.typeId\";\r\n this.applicationId = \"ai.application.applicationId\";\r\n this.applicationLayer = \"ai.application.layer\";\r\n this.deviceId = \"ai.device.id\";\r\n this.deviceIp = \"ai.device.ip\";\r\n this.deviceLanguage = \"ai.device.language\";\r\n this.deviceLocale = \"ai.device.locale\";\r\n this.deviceModel = \"ai.device.model\";\r\n this.deviceFriendlyName = \"ai.device.friendlyName\";\r\n this.deviceNetwork = \"ai.device.network\";\r\n this.deviceNetworkName = \"ai.device.networkName\";\r\n this.deviceOEMName = \"ai.device.oemName\";\r\n this.deviceOS = \"ai.device.os\";\r\n this.deviceOSVersion = \"ai.device.osVersion\";\r\n this.deviceRoleInstance = \"ai.device.roleInstance\";\r\n this.deviceRoleName = \"ai.device.roleName\";\r\n this.deviceScreenResolution = \"ai.device.screenResolution\";\r\n this.deviceType = \"ai.device.type\";\r\n this.deviceMachineName = \"ai.device.machineName\";\r\n this.deviceVMName = \"ai.device.vmName\";\r\n this.deviceBrowser = \"ai.device.browser\";\r\n this.deviceBrowserVersion = \"ai.device.browserVersion\";\r\n this.locationIp = \"ai.location.ip\";\r\n this.locationCountry = \"ai.location.country\";\r\n this.locationProvince = \"ai.location.province\";\r\n this.locationCity = \"ai.location.city\";\r\n this.operationId = \"ai.operation.id\";\r\n this.operationName = \"ai.operation.name\";\r\n this.operationParentId = \"ai.operation.parentId\";\r\n this.operationRootId = \"ai.operation.rootId\";\r\n this.operationSyntheticSource = \"ai.operation.syntheticSource\";\r\n this.operationCorrelationVector = \"ai.operation.correlationVector\";\r\n\r\n this.sessionId = \"ai.session.id\";\r\n this.sessionIsFirst = \"ai.session.isFirst\";\r\n this.sessionIsNew = \"ai.session.isNew\";\r\n this.userAccountAcquisitionDate = \"ai.user.accountAcquisitionDate\";\r\n this.userAccountId = \"ai.user.accountId\";\r\n this.userAgent = \"ai.user.userAgent\";\r\n this.userId = \"ai.user.id\";\r\n this.userStoreRegion = \"ai.user.storeRegion\";\r\n this.userAuthUserId = \"ai.user.authUserId\";\r\n this.userAnonymousUserAcquisitionDate = \"ai.user.anonUserAcquisitionDate\";\r\n this.userAuthenticatedUserAcquisitionDate = \"ai.user.authUserAcquisitionDate\";\r\n\r\n this.cloudName = \"ai.cloud.name\";\r\n this.cloudRole = \"ai.cloud.role\";\r\n this.cloudRoleVer = \"ai.cloud.roleVer\";\r\n this.cloudRoleInstance = \"ai.cloud.roleInstance\";\r\n this.cloudEnvironment = \"ai.cloud.environment\";\r\n this.cloudLocation = \"ai.cloud.location\";\r\n this.cloudDeploymentUnit = \"ai.cloud.deploymentUnit\";\r\n this.internalNodeName = \"ai.internal.nodeName\";\r\n this.internalSdkVersion = \"ai.internal.sdkVersion\";\r\n this.internalAgentVersion = \"ai.internal.agentVersion\";\r\n this.internalSnippet = \"ai.internal.snippet\";\r\n this.internalSdkSrc = \"ai.internal.sdkSrc\";\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Util } from \"./Util\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { ITelemetryItem, CoreUtils, IDiagnosticLogger, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\n\r\nexport class TelemetryItemCreator {\r\n\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n\r\n public static create(item: T,\r\n baseType: string,\r\n envelopeName: string,\r\n logger: IDiagnosticLogger,\r\n customProperties?: { [key: string]: any },\r\n systemProperties?: { [key: string]: any }): ITelemetryItem {\r\n\r\n envelopeName = DataSanitizer.sanitizeString(logger, envelopeName) || Util.NotSpecified;\r\n\r\n if (CoreUtils.isNullOrUndefined(item) ||\r\n CoreUtils.isNullOrUndefined(baseType) ||\r\n CoreUtils.isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n\r\n const telemetryItem: ITelemetryItem = {\r\n name: envelopeName,\r\n time: CoreUtils.toISOString(new Date()),\r\n iKey: \"\", // this will be set in TelemetryContext\r\n ext: systemProperties ? systemProperties : {}, // part A\r\n tags: [],\r\n data: {\r\n },\r\n baseType,\r\n baseData: item // Part B\r\n };\r\n\r\n // Part C\r\n if (!CoreUtils.isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, (prop, value) => {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n\r\n return telemetryItem;\r\n }\r\n}\r\n","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\n\r\nexport class Extensions {\r\n public static UserExt = \"user\";\r\n public static DeviceExt = \"device\";\r\n public static TraceExt = \"trace\";\r\n public static WebExt = \"web\";\r\n public static AppExt = \"app\";\r\n public static OSExt = \"os\";\r\n public static SessionExt = \"ses\";\r\n public static SDKExt = \"sdk\";\r\n}\r\n\r\nexport let CtxTagKeys = new ContextTagKeys();","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport '@microsoft/applicationinsights-shims';\r\nexport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils } from './Util';\r\nexport { ConnectionStringParser } from './ConnectionStringParser';\r\nexport { FieldType } from './Enums';\r\nexport { RequestHeaders } from './RequestResponseHeaders';\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT } from './Constants';\r\nexport { Data as AIData } from './Interfaces/Contracts/Generated/Data';\r\nexport { Base as AIBase } from './Interfaces/Contracts/Generated/Base';\r\nexport { ISerializable } from './Interfaces/Telemetry/ISerializable';\r\nexport { IEnvelope } from './Interfaces/Telemetry/IEnvelope';\r\nexport { Envelope } from './Telemetry/Common/Envelope';\r\nexport { Event } from './Telemetry/Event';\r\nexport { Exception } from './Telemetry/Exception';\r\nexport { Metric } from './Telemetry/Metric';\r\nexport { PageView } from './Telemetry/PageView';\r\nexport { PageViewData } from './Interfaces/Contracts/Generated/PageViewData';\r\nexport { RemoteDependencyData } from './Telemetry/RemoteDependencyData';\r\nexport { IEventTelemetry } from './Interfaces/IEventTelemetry';\r\nexport { ITraceTelemetry } from './Interfaces/ITraceTelemetry';\r\nexport { IMetricTelemetry } from './Interfaces/IMetricTelemetry';\r\nexport { IDependencyTelemetry } from './Interfaces/IDependencyTelemetry';\r\nexport { IExceptionTelemetry, IAutoExceptionTelemetry, IExceptionInternal } from './Interfaces/IExceptionTelemetry';\r\nexport { IPageViewTelemetry, IPageViewTelemetryInternal } from './Interfaces/IPageViewTelemetry';\r\nexport { IPageViewPerformanceTelemetry, IPageViewPerformanceTelemetryInternal } from './Interfaces/IPageViewPerformanceTelemetry';\r\nexport { Trace } from './Telemetry/Trace';\r\nexport { PageViewPerformance } from './Telemetry/PageViewPerformance';\r\nexport { Data } from './Telemetry/Common/Data';\r\nexport { SeverityLevel } from './Interfaces/Contracts/Generated/SeverityLevel';\r\nexport { IConfig, ConfigurationManager } from './Interfaces/IConfig';\r\nexport { IChannelControlsAI } from './Interfaces/IChannelControlsAI';\r\nexport { ContextTagKeys } from './Interfaces/Contracts/Generated/ContextTagKeys';\r\nexport { DataSanitizer } from './Telemetry/Common/DataSanitizer';\r\nexport { TelemetryItemCreator } from './TelemetryItemCreator';\r\nexport { ICorrelationConfig } from './Interfaces/ICorrelationConfig';\r\nexport { IAppInsights } from './Interfaces/IAppInsights';\r\nexport { IWeb } from './Interfaces/Context/IWeb';\r\nexport { CtxTagKeys, Extensions } from './Interfaces/PartAExtensions';\r\nexport { ISession } from './Interfaces/Context/ISession';\r\nexport { ITelemetryContext } from './Interfaces/ITelemetryContext';\r\nexport { IApplication } from './Interfaces/Context/IApplication';\r\nexport { IDevice } from './Interfaces/Context/IDevice';\r\nexport { IInternal } from './Interfaces/Context/IInternal';\r\nexport { ILocation } from './Interfaces/Context/ILocation';\r\nexport { ISample } from './Interfaces/Context/ISample';\r\nexport { IOperatingSystem } from './Interfaces/Context/IOperatingSystem';\r\nexport { IPropertiesPlugin } from './Interfaces/IPropertiesPlugin';\r\nexport { IUser, IUserContext } from './Interfaces/Context/IUser';\r\nexport { ITelemetryTrace, ITraceState } from './Interfaces/Context/ITelemetryTrace';\r\nexport { DistributedTracingModes } from './Enums';\r\nexport const PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport const BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport const AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DateTimeUtils, Util } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, getDocument, getLocation } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var arrForEach = CoreUtils.arrForEach;\r\n var isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels() {\r\n if (core) {\r\n arrForEach(core.getTransmissionControls(), function (queues) {\r\n arrForEach(queues, function (q) { return q.flush(true); });\r\n });\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue.length === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels();\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self.trackPageView = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n if (start > 0) {\r\n customDuration = DateTimeUtils.GetDuration(start, +new Date);\r\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && DateTimeUtils.GetDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n });\r\n }\r\n /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).\r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.\r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n PageViewManager.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util } from '@microsoft/applicationinsights-common';\r\nimport { hasJSON, getJSON, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + Util.dump(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + Util.dump(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n if (Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throw new Error(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n Util.setSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + Util.dump(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = CoreUtils.dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n Util.removeSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + Util.dump(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = CoreUtils.dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Util, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n var total = navigationTiming.duration;\r\n var network = DateTimeUtils.GetDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n var request = DateTimeUtils.GetDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n var response = DateTimeUtils.GetDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n var dom = DateTimeUtils.GetDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n var total = DateTimeUtils.GetDuration(timing.navigationStart, timing.loadEventEnd);\r\n var network = DateTimeUtils.GetDuration(timing.navigationStart, timing.connectEnd);\r\n var request = DateTimeUtils.GetDuration(timing.requestStart, timing.responseStart);\r\n var response = DateTimeUtils.GetDuration(timing.responseStart, timing.responseEnd);\r\n var dom = DateTimeUtils.GetDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n if (total === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = Util.msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = Util.msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = Util.msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = Util.msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = Util.msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = ['googlebot', 'adsbot-google', 'apis-google', 'mediapartners-google'];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { Util, PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, DateTimeUtils, PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, CoreUtils, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from './Telemetry/PageViewPerformanceManager';\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n __extends(ApplicationInsights, _super);\r\n function ApplicationInsights() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n // Counts number of trackAjax invokations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _this._trackAjaxAttempts = 0;\r\n var location = getLocation();\r\n _this._prevUri = location && location.href || \"\";\r\n return _this;\r\n }\r\n ApplicationInsights.getDefaultConfig = function (config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = Util.stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = Util.stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = Util.stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = Util.stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isCookieUseDisabled = Util.stringToBoolOrDefault(config.isCookieUseDisabled);\r\n config.isStorageUseDisabled = Util.stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = Util.stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = Util.stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n return config;\r\n };\r\n ApplicationInsights.prototype.processTelemetry = function (env, itemCtx) {\r\n var _this = this;\r\n doPerf(this.core, function () { return _this.identifier + \":processTelemetry\"; }, function () {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _this._telemetryInitializers.length;\r\n itemCtx = _this._getTelCtx(itemCtx);\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _this._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e), { exception: Util.dump(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _this.processNext(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n ApplicationInsights.prototype.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, this.diagLog(), customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n ApplicationInsights.prototype.startTrackEvent = function (name) {\r\n try {\r\n this._eventTracking.start(name);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n this._eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, this.diagLog(), customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, this.diagLog(), customProperties);\r\n this.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n ApplicationInsights.prototype.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n this._pageViewManager.trackPageView(inPv, __assign({}, inPv.properties, inPv.measurements, customProperties));\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n ApplicationInsights.prototype.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, this.diagLog(), properties, systemProperties);\r\n this.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n this._trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n ApplicationInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, this.diagLog(), properties, systemProperties);\r\n this.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n ApplicationInsights.prototype.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n try {\r\n this._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n this.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n ApplicationInsights.prototype.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n this._pageTracking.start(name);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n this._pageTracking.stop(name, url, properties, measurement);\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n ApplicationInsights.prototype.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var exceptionPartB = new Exception(this.diagLog(), exception.exception || new Error(Util.NotSpecified), exception.properties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, this.diagLog(), customProperties, systemProperties);\r\n this.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackException = function (exception, customProperties) {\r\n try {\r\n this.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype._onerror = function (exception) {\r\n try {\r\n var properties_1 = {\r\n url: (exception && exception.url) || (getDocument() || {}).URL,\r\n lineNumber: exception.lineNumber,\r\n columnNumber: exception.columnNumber,\r\n message: exception.message\r\n };\r\n if (Util.isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n this._sendCORSException(properties_1.url);\r\n }\r\n else {\r\n if (!Util.isError(exception.error)) {\r\n var stack = \"window.onerror@\" + properties_1.url + \":\" + exception.lineNumber + \":\" + (exception.columnNumber || 0);\r\n exception.error = new Error(exception.message);\r\n exception.error.stack = stack;\r\n }\r\n this.trackException({ exception: exception.error, severityLevel: SeverityLevel.Error }, properties_1);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = exception.error ?\r\n (exception.error.name + \", \" + exception.error.message)\r\n : \"null\";\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n + Util.getExceptionName(e), { exception: Util.dump(e), errorString: errorString });\r\n }\r\n };\r\n ApplicationInsights.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n ApplicationInsights.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n var _this = this;\r\n if (this.isInitialized()) {\r\n return;\r\n }\r\n if (CoreUtils.isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n _super.prototype.initialize.call(this, config, core, extensions, pluginChain);\r\n this.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n var ctx = this._getTelCtx();\r\n var identifier = this.identifier;\r\n this._globalconfig = {\r\n instrumentationKey: config.instrumentationKey,\r\n endpointUrl: config.endpointUrl || \"https://dc.services.visualstudio.com/v2/track\"\r\n };\r\n this.config = ctx.getExtCfg(identifier);\r\n // load default values if specified\r\n var defaults = ApplicationInsights.getDefaultConfig();\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n _this.config[field] = ctx.getConfig(identifier, field, value);\r\n });\r\n if (this._globalconfig) {\r\n objForEachKey(defaults, function (field, value) {\r\n if (_this._globalconfig[field] === undefined) {\r\n _this._globalconfig[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // Todo: move this out of static state\r\n if (this.config.isCookieUseDisabled) {\r\n Util.disableCookies();\r\n }\r\n // Todo: move this out of static state\r\n if (this.config.isStorageUseDisabled) {\r\n Util.disableStorage();\r\n }\r\n var configGetters = {\r\n instrumentationKey: function () { return config.instrumentationKey; },\r\n accountId: function () { return _this.config.accountId || config.accountId; },\r\n sessionRenewalMs: function () { return _this.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n sessionExpirationMs: function () { return _this.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n sampleRate: function () { return _this.config.samplingPercentage || config.samplingPercentage; },\r\n cookieDomain: function () { return _this.config.cookieDomain || config.cookieDomain; },\r\n sdkExtension: function () { return _this.config.sdkExtension || config.sdkExtension; },\r\n isBrowserLinkTrackingEnabled: function () { return _this.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n appId: function () { return _this.config.appId || config.appId; }\r\n };\r\n this._pageViewPerformanceManager = new PageViewPerformanceManager(this.core);\r\n this._pageViewManager = new PageViewManager(this, this.config.overridePageViewDuration, this.core, this._pageViewPerformanceManager);\r\n this._pageVisitTimeManager = new PageVisitTimeManager(this.diagLog(), function (pageName, pageUrl, pageVisitTime) { return _this.trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n this._telemetryInitializers = this._telemetryInitializers || [];\r\n this._addDefaultTelemetryInitializers(configGetters);\r\n this._eventTracking = new Timing(this.diagLog(), \"trackEvent\");\r\n this._eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _this.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n this._pageTracking = new Timing(this.diagLog(), \"trackPageView\");\r\n this._pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (CoreUtils.isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _this.sendPageViewInternal(pageViewItem, properties);\r\n };\r\n var _window = getWindow();\r\n var _history = getHistory();\r\n var _location = getLocation();\r\n var instance = this;\r\n if (this.config.disableExceptionTracking === false &&\r\n !this.config.autoExceptionInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onerror_1 = \"onerror\";\r\n var originalOnError_1 = _window[onerror_1];\r\n _window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) {\r\n instance._onerror({\r\n message: message,\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: error\r\n });\r\n }\r\n return handled;\r\n };\r\n this.config.autoExceptionInstrumented = true;\r\n }\r\n if (this.config.disableExceptionTracking === false &&\r\n this.config.enableUnhandledPromiseRejectionTracking === true &&\r\n !this.config.autoUnhandledPromiseInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onunhandledrejection = \"onunhandledrejection\";\r\n var originalOnUnhandledRejection_1 = _window[onunhandledrejection];\r\n _window[onunhandledrejection] = function (error) {\r\n var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\r\n if (handled !== true) {\r\n instance._onerror({\r\n message: error.reason.toString(),\r\n error: error.reason instanceof Error ? error.reason : new Error(error.reason.toString()),\r\n url: _location ? _location.href : \"\",\r\n lineNumber: 0,\r\n columnNumber: 0\r\n });\r\n }\r\n return handled;\r\n };\r\n this.config.autoUnhandledPromiseInstrumented = true;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (this.config.enableAutoRouteTracking === true\r\n && _history && CoreUtils.isFunction(_history.pushState) && CoreUtils.isFunction(_history.replaceState)\r\n && _window\r\n && typeof Event !== \"undefined\") {\r\n var _self_1 = this;\r\n // Find the properties plugin\r\n CoreUtils.arrForEach(extensions, function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _this._properties = extension;\r\n }\r\n });\r\n _history.pushState = (function (f) { return function pushState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, Util.createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n _dispatchEvent(_window, Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.pushState);\r\n _history.replaceState = (function (f) { return function replaceState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, Util.createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n _dispatchEvent(_window, Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.replaceState);\r\n if (_window.addEventListener) {\r\n _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n _dispatchEvent(_window, Util.createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n });\r\n _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n if (_self_1._properties && _self_1._properties.context && _self_1._properties.context.telemetryTrace) {\r\n _self_1._properties.context.telemetryTrace.traceID = Util.generateW3CId();\r\n _self_1._properties.context.telemetryTrace.name = _location && _location.pathname || \"_unknown_\";\r\n }\r\n if (_this._currUri) {\r\n _this._prevUri = _this._currUri;\r\n _this._currUri = _location && _location.href || \"\";\r\n }\r\n else {\r\n _this._currUri = _location && _location.href || \"\";\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_this, _this._prevUri), _self_1.autoRoutePVDelay);\r\n });\r\n }\r\n }\r\n this.setInitialized(true);\r\n };\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n ApplicationInsights.prototype.trackPageVisitTime = function (pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n this.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n };\r\n ApplicationInsights.prototype._addDefaultTelemetryInitializers = function (configGetters) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n var browserLinkPaths_1 = ['/browserLinkSignalR/', '/__browserLink/'];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n this._addTelemetryInitializer(dropBrowserLinkRequests);\r\n }\r\n };\r\n ApplicationInsights.prototype._addTelemetryInitializer = function (telemetryInitializer) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n ApplicationInsights.prototype._sendCORSException = function (url) {\r\n var exception = {\r\n message: \"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\",\r\n url: url,\r\n lineNumber: 0,\r\n columnNumber: 0,\r\n error: undefined\r\n };\r\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, this.diagLog(), { url: url });\r\n this.core.track(telemetryItem);\r\n };\r\n ApplicationInsights.Version = \"2.5.10\"; // Not currently used anywhere\r\n return ApplicationInsights;\r\n}(BaseTelemetryPlugin));\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n this._name = name;\r\n this._events = {};\r\n this._logger = logger;\r\n }\r\n Timing.prototype.start = function (name) {\r\n if (typeof this._events[name] !== \"undefined\") {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: this._name, key: name }, true);\r\n }\r\n this._events[name] = +new Date;\r\n };\r\n Timing.prototype.stop = function (name, url, properties, measurements) {\r\n var start = this._events[name];\r\n if (isNaN(start)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: this._name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = DateTimeUtils.GetDuration(start, end);\r\n this.action(name, url, duration, properties, measurements);\r\n }\r\n delete this._events[name];\r\n this._events[name] = undefined;\r\n };\r\n return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map","import { Util } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function () {\r\n function ArraySendBuffer(config) {\r\n var _buffer = [];\r\n dynamicProto(ArraySendBuffer, this, function (_self) {\r\n _self.enqueue = function (payload) {\r\n _buffer.push(payload);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.clear = function () {\r\n _buffer.length = 0;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _self.clear();\r\n };\r\n _self.clearSent = function (payload) {\r\n // not supported\r\n };\r\n });\r\n }\r\n ArraySendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n ArraySendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ArraySendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ArraySendBuffer;\r\n}());\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function () {\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _bufferFullMessageSent = false;\r\n // An in-memory copy of the buffer. A copy is saved to the session storage on enqueue() and clear().\r\n // The buffer is restored in a constructor and contains unsent events from a previous page.\r\n var _buffer;\r\n dynamicProto(SessionStorageSendBuffer, this, function (_self) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n _buffer = bufferItems.concat(notDeliveredItems);\r\n // If the buffer has too many items, drop items from the end.\r\n if (_buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n _buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n _self.enqueue = function (payload) {\r\n if (_buffer.length >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _buffer.length, true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer.push(payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.clear = function () {\r\n _buffer = [];\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _buffer = _removePayloadsFromBuffer(payload, _buffer);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n _self.clearSent = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n CoreUtils.arrForEach(buffer, function (value) {\r\n if (!CoreUtils.isFunction(value) && CoreUtils.arrIndexOf(payloads, value) === -1) {\r\n remaining.push(value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = Util.getSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer = getJSON().parse(bufferJson);\r\n if (CoreUtils.isString(buffer)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer = getJSON().parse(buffer);\r\n }\r\n if (buffer && Util.isArray(buffer)) {\r\n return buffer;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n Util.setSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n Util.setSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e) + \". Buffer cleared\", { exception: Util.dump(e) });\r\n }\r\n }\r\n });\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n SessionStorageSendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}());\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","import { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = 'baseType';\r\nvar strBaseData = 'baseData';\r\nvar strProperties = 'properties';\r\nvar strTrue = 'true';\r\nvar arrForEach = CoreUtils.arrForEach;\r\nvar isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\nfunction _setValueIf(target, field, value) {\r\n if (target && value) {\r\n target[field] = value;\r\n return target[field];\r\n }\r\n return null;\r\n}\r\nvar EnvelopeCreator = /** @class */ (function () {\r\n function EnvelopeCreator() {\r\n }\r\n EnvelopeCreator.extractPropsAndMeasurements = function (data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (CoreUtils.isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (CoreUtils.isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n });\r\n }\r\n };\r\n // TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\n EnvelopeCreator.createEnvelope = function (logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, 'sampleRate', telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = CoreUtils.toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n EnvelopeCreator.extractPartAExtensions(telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem.tags = telemetryItem.tags || [];\r\n return envelope;\r\n };\r\n /*\r\n * Maps Part A data from CS 4.0\r\n */\r\n EnvelopeCreator.extractPartAExtensions = function (item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env.tags = env.tags || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item.tags = item.tags || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env.data = env.data || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, 'domain', web.domain);\r\n _setValueIf(envProps, 'isManual', web.isManual ? strTrue : null);\r\n _setValueIf(envProps, 'screenRes', web.screenRes);\r\n _setValueIf(envProps, 'userConsent', web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, extTrace.name);\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags.length - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n env.tags = __assign({}, envTags, tgs);\r\n if (!env.tags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n env.tags[CtxTagKeys.internalSdkVersion] = \"javascript:\" + EnvelopeCreator.Version;\r\n }\r\n };\r\n EnvelopeCreator.prototype.Init = function (logger, telemetryItem) {\r\n this._logger = logger;\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n };\r\n EnvelopeCreator.Version = \"2.5.10\";\r\n return EnvelopeCreator;\r\n}());\r\nexport { EnvelopeCreator };\r\nvar DependencyEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(DependencyEnvelopeCreator, _super);\r\n function DependencyEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n return EnvelopeCreator.createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n };\r\n DependencyEnvelopeCreator.DependencyEnvelopeCreator = new DependencyEnvelopeCreator();\r\n return DependencyEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { DependencyEnvelopeCreator };\r\nvar EventEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(EventEnvelopeCreator, _super);\r\n function EventEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n EventEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event.dataType) {\r\n customProperties['baseTypeSource'] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event.dataType) {\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n }\r\n else {\r\n if (telemetryItem[strBaseData]) {\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n var eventName = telemetryItem[strBaseData].name;\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, eventData);\r\n return EnvelopeCreator.createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n };\r\n EventEnvelopeCreator.EventEnvelopeCreator = new EventEnvelopeCreator();\r\n return EventEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { EventEnvelopeCreator };\r\nvar ExceptionEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(ExceptionEnvelopeCreator, _super);\r\n function ExceptionEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExceptionEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception.dataType, exData);\r\n return EnvelopeCreator.createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n };\r\n ExceptionEnvelopeCreator.ExceptionEnvelopeCreator = new ExceptionEnvelopeCreator();\r\n return ExceptionEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { ExceptionEnvelopeCreator };\r\nvar MetricEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(MetricEnvelopeCreator, _super);\r\n function MetricEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MetricEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, props, measurements);\r\n var data = new Data(Metric.dataType, baseMetricData);\r\n return EnvelopeCreator.createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n };\r\n MetricEnvelopeCreator.MetricEnvelopeCreator = new MetricEnvelopeCreator();\r\n return MetricEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { MetricEnvelopeCreator };\r\nvar PageViewEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(PageViewEnvelopeCreator, _super);\r\n function PageViewEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PageViewEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var strDuration = \"duration\";\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][strDuration])) {\r\n duration = baseData[strProperties][strDuration];\r\n delete baseData[strProperties][strDuration];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem.data) &&\r\n !isNullOrUndefined(telemetryItem.data[strDuration])) {\r\n duration = telemetryItem.data[strDuration];\r\n delete telemetryItem.data[strDuration];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd.name;\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, pageViewData);\r\n return EnvelopeCreator.createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n };\r\n PageViewEnvelopeCreator.PageViewEnvelopeCreator = new PageViewEnvelopeCreator();\r\n return PageViewEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewEnvelopeCreator };\r\nvar PageViewPerformanceEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(PageViewPerformanceEnvelopeCreator, _super);\r\n function PageViewPerformanceEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PageViewPerformanceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n };\r\n PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator = new PageViewPerformanceEnvelopeCreator();\r\n return PageViewPerformanceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewPerformanceEnvelopeCreator };\r\nvar TraceEnvelopeCreator = /** @class */ (function (_super) {\r\n __extends(TraceEnvelopeCreator, _super);\r\n function TraceEnvelopeCreator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TraceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n _super.prototype.Init.call(this, logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData].measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n };\r\n TraceEnvelopeCreator.TraceEnvelopeCreator = new TraceEnvelopeCreator();\r\n return TraceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { TraceEnvelopeCreator };\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { Util, FieldType } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, CoreUtils, getJSON, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (Util.isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Required) : (contract & FieldType.Required);\r\n var isHidden = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);\r\n var isArray = contract & FieldType.Array;\r\n var isPresent = source[field] !== undefined;\r\n var isObject = CoreUtils.isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) {\r\n var value = void 0;\r\n if (isObject) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!Util.isArray(sources)) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources.length; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","import { CoreUtils, EventHelper, getWindow, getDocument, getNavigator } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n function OfflineListener() {\r\n var _window = getWindow();\r\n var _document = getDocument();\r\n var isListening = false;\r\n var _onlineStatus = true;\r\n dynamicProto(OfflineListener, this, function (_self) {\r\n try {\r\n if (_window) {\r\n if (EventHelper.Attach(_window, 'online', _setOnline)) {\r\n EventHelper.Attach(_window, 'offline', _setOffline);\r\n isListening = true;\r\n }\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!CoreUtils.isUndefined(target.ononline)) {\r\n target.ononline = _setOnline;\r\n target.onoffline = _setOffline;\r\n isListening = true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n _self.isListening = isListening;\r\n _self.isOnline = function () {\r\n var result = true;\r\n var _navigator = getNavigator();\r\n if (isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !CoreUtils.isNullOrUndefined(_navigator.onLine)) {\r\n result = _navigator.onLine;\r\n }\r\n return result;\r\n };\r\n _self.isOffline = function () {\r\n return !_self.isOnline();\r\n };\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n });\r\n }\r\n OfflineListener.prototype.isOnline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.prototype.isOffline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.Offline = new OfflineListener;\r\n return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n // (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\n HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { HashCodeScoreGenerator } from './HashCodeScoreGenerator';\r\nimport { ContextTagKeys } from '@microsoft/applicationinsights-common';\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n this.hashCodeGeneragor = new HashCodeScoreGenerator();\r\n this.keys = new ContextTagKeys();\r\n }\r\n SamplingScoreGenerator.prototype.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[this.keys.userId]) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[this.keys.operationId]) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { SamplingScoreGenerator } from './SamplingScoreGenerators/SamplingScoreGenerator';\r\nimport { Metric } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, DiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n this._logger = CoreUtils.isNullOrUndefined(logger) ? new DiagnosticLogger() : logger;\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n this.sampleRate = 100;\r\n }\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this.sampleRate; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","import { SessionStorageSendBuffer, ArraySendBuffer } from './SendBuffer';\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from './EnvelopeCreator';\r\nimport { Serializer } from './Serializer'; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, Util, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, getGlobalInst, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\nimport { Offline } from './Offline';\r\nimport { Sample } from './TelemetryProcessors/Sample';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * Whether XMLHttpRequest object is supported. Older version of IE (8,9) do not support it.\r\n */\r\n _this._XMLHttpRequestSupported = false;\r\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\r\n var _consecutiveErrors;\r\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\r\n var _retryAt;\r\n /**\r\n * The time of the last send operation.\r\n */\r\n var _lastSend;\r\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\r\n var _timeoutHandle;\r\n var _serializer;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n function _notImplemented() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n _self.pause = _notImplemented;\r\n _self.resume = _notImplemented;\r\n _self.flush = function () {\r\n try {\r\n _self.triggerSend(true, null, 1 /* ManualFlush */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && Util.IsBeaconApiSupported()) {\r\n try {\r\n _self.triggerSend(true, _beaconSender, 2 /* Unload */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n };\r\n _self.teardown = _notImplemented;\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self._sender = null;\r\n var defaultConfig = Sender._getDefaultAppInsightsChannelConfig();\r\n _self._senderConfig = Sender._getEmptyAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && Util.canUseSessionStorage())\r\n ? new SessionStorageSendBuffer(_self.diagLog(), _self._senderConfig) : new ArraySendBuffer(_self._senderConfig);\r\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), _self.diagLog());\r\n if (!_validateInstrumentationKey(config)) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n }\r\n if (!_self._senderConfig.isBeaconApiDisabled() && Util.IsBeaconApiSupported()) {\r\n _self._sender = _beaconSender;\r\n }\r\n else {\r\n if (typeof XMLHttpRequest !== undefined) {\r\n var xhr = getGlobalInst(\"XMLHttpRequest\");\r\n if (xhr) {\r\n var testXhr = new xhr();\r\n if (\"withCredentials\" in testXhr) {\r\n _self._sender = _xhrSender;\r\n _self._XMLHttpRequestSupported = true;\r\n }\r\n else if (typeof XDomainRequest !== undefined) {\r\n _self._sender = _xdrSender; // IE 8 and 9\r\n }\r\n }\r\n }\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self._sender) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n }\r\n // construct an envelope that Application Insights endpoint can understand\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, _self._senderConfig.instrumentationKey(), itemCtx.diagLog());\r\n if (!aiEnvelope_1) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n CoreUtils.arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e), { exception: Util.dump(e) }, true);\r\n }\r\n });\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var bufferPayload = _self._buffer.getItems();\r\n var batch = _self._buffer.batchPayloads(bufferPayload);\r\n if (batch && (batch.length + payload.length > _self._senderConfig.maxBatchSizeInBytes())) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n _self._buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(_getResponseText(xhr) || xhr.response);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {\r\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(xhr.status)) {\r\n _resendPayload(payload);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + xhr.status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXhr(xhr));\r\n }\r\n }\r\n else if (Offline.isOffline()) {\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \" + xhr.status + \". Offline status: \" + Offline.isOffline() + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n }\r\n else {\r\n if (xhr.status === 206) {\r\n if (!response) {\r\n response = _parseResponse(_getResponseText(xhr) || xhr.response);\r\n }\r\n if (response && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXhr(xhr));\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n try {\r\n // Send data only if disableTelemetry is false\r\n if (!_self._senderConfig.disableTelemetry()) {\r\n if (_self._buffer.count() > 0) {\r\n var payload = _self._buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self._sender(payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n _self._buffer.clear();\r\n }\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = Util.getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self._onError = function (payload, message, event) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self._onPartialSuccess = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n if (payload.length > 0) {\r\n _self._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n _self._onError(failed, _formatErrorMessageXhr(null, ['partial success', results.itemsAccepted, 'of', results.itemsReceived].join(' ')));\r\n }\r\n if (retry.length > 0) {\r\n _resendPayload(retry);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n var url = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: 'text/plain;charset=UTF-8' });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = getNavigator().sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n _self._buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n else {\r\n _xhrSender(payload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (Util.isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + Util.getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n _self._buffer.clearSent(payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n _self._buffer.enqueue(item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = CoreUtils.dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - CoreUtils.dateNow()) : 0;\r\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n _self._buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open('POST', endpointUrl);\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = 'getNotifyMgr';\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core['_notificationManager'];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager.eventsSendRequest) {\r\n try {\r\n manager.eventsSendRequest(sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + Util.getExceptionName(e), { exception: Util.dump(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = CoreUtils.isNullOrUndefined(config.disableInstrumentaionKeyValidation) ? false : config.disableInstrumentaionKeyValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$';\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config.instrumentationKey);\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !CoreUtils.isNullOrUndefined(iKey)) {\r\n envelope = __assign({}, orig, { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n switch (envelope.baseType) {\r\n case Event.dataType:\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n case Trace.dataType:\r\n return TraceEnvelopeCreator.TraceEnvelopeCreator.Create(logger, envelope);\r\n case PageView.dataType:\r\n return PageViewEnvelopeCreator.PageViewEnvelopeCreator.Create(logger, envelope);\r\n case PageViewPerformance.dataType:\r\n return PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator.Create(logger, envelope);\r\n case Exception.dataType:\r\n return ExceptionEnvelopeCreator.ExceptionEnvelopeCreator.Create(logger, envelope);\r\n case Metric.dataType:\r\n return MetricEnvelopeCreator.MetricEnvelopeCreator.Create(logger, envelope);\r\n case RemoteDependencyData.dataType:\r\n return DependencyEnvelopeCreator.DependencyEnvelopeCreator.Create(logger, envelope);\r\n default:\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n }\r\n };\r\n Sender._getDefaultAppInsightsChannelConfig = function () {\r\n // set default values\r\n return {\r\n endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n emitLineDelimitedJson: function () { return false; },\r\n maxBatchInterval: function () { return 15000; },\r\n maxBatchSizeInBytes: function () { return 102400; },\r\n disableTelemetry: function () { return false; },\r\n enableSessionStorageBuffer: function () { return true; },\r\n isRetryDisabled: function () { return false; },\r\n isBeaconApiDisabled: function () { return true; },\r\n onunloadDisableBeacon: function () { return false; },\r\n instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; }\r\n };\r\n };\r\n Sender._getEmptyAppInsightsChannelConfig = function () {\r\n return {\r\n endpointUrl: undefined,\r\n emitLineDelimitedJson: undefined,\r\n maxBatchInterval: undefined,\r\n maxBatchSizeInBytes: undefined,\r\n disableTelemetry: undefined,\r\n enableSessionStorageBuffer: undefined,\r\n isRetryDisabled: undefined,\r\n isBeaconApiDisabled: undefined,\r\n onunloadDisableBeacon: undefined,\r\n instrumentationKey: undefined,\r\n namePrefix: undefined,\r\n samplingPercentage: undefined\r\n };\r\n };\r\n Sender.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.flush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.onunloadFlush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * error handler\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n Sender.prototype._onPartialSuccess = function (payload, results) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * success handler\r\n */\r\n Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ISession, Util } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity, CoreUtils, DiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport interface ISessionConfig {\r\n sessionRenewalMs?: () => number;\r\n sessionExpirationMs?: () => number;\r\n cookieDomain?: () => string;\r\n namePrefix?: () => string;\r\n idLength?: () => number;\r\n}\r\n\r\nexport class Session implements ISession {\r\n /**\r\n * The session ID.\r\n */\r\n public id?: string;\r\n\r\n /**\r\n * The date at which this guid was generated.\r\n * Per the spec the ID will be regenerated if more than acquisitionSpan milliseconds elapsed from this time.\r\n */\r\n public acquisitionDate?: number;\r\n\r\n /**\r\n * The date at which this session ID was last reported.\r\n * This value should be updated whenever telemetry is sent using this ID.\r\n * Per the spec the ID will be regenerated if more than renewalSpan milliseconds elapse from this time with no activity.\r\n */\r\n public renewalDate?: number;\r\n}\r\n\r\nexport class _SessionManager {\r\n\r\n public static acquisitionSpan = 86400000; // 24 hours in ms\r\n public static renewalSpan = 1800000; // 30 minutes in ms\r\n public static cookieUpdateInterval = 60000 // 1 minute in ms\r\n private static cookieNameConst = 'ai_session';\r\n public automaticSession: Session;\r\n public config: ISessionConfig;\r\n\r\n private cookieUpdatedTimestamp: number;\r\n private _logger: IDiagnosticLogger;\r\n private _storageNamePrefix: () => string;\r\n\r\n constructor(config: ISessionConfig, logger?: IDiagnosticLogger) {\r\n if(CoreUtils.isNullOrUndefined(logger)) {\r\n this._logger = new DiagnosticLogger();\r\n } else {\r\n this._logger = logger;\r\n }\r\n\r\n if (!config) {\r\n config = ({} as any);\r\n }\r\n\r\n if (!(typeof config.sessionExpirationMs === \"function\")) {\r\n config.sessionExpirationMs = () => _SessionManager.acquisitionSpan;\r\n }\r\n\r\n if (!(typeof config.sessionRenewalMs === \"function\")) {\r\n config.sessionRenewalMs = () => _SessionManager.renewalSpan;\r\n }\r\n\r\n this.config = config;\r\n this._storageNamePrefix = () => this.config.namePrefix && this.config.namePrefix() ? _SessionManager.cookieNameConst + this.config.namePrefix() : _SessionManager.cookieNameConst;\r\n\r\n this.automaticSession = new Session();\r\n }\r\n\r\n public update() {\r\n if (!this.automaticSession.id) {\r\n this.initializeAutomaticSession();\r\n }\r\n\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n const now = new Date().getTime();\r\n\r\n const acquisitionExpired = this.config.sessionExpirationMs() === 0 ? false : now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs();\r\n const renewalExpired = this.config.sessionExpirationMs() === 0 ? false : now - this.automaticSession.renewalDate > this.config.sessionRenewalMs();\r\n\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (acquisitionExpired || renewalExpired) {\r\n // update automaticSession so session state has correct id\r\n this.renew();\r\n } else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!this.cookieUpdatedTimestamp || now - this.cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n this.automaticSession.renewalDate = now;\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n public backup() {\r\n this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n }\r\n\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n */\r\n private initializeAutomaticSession() {\r\n const cookie = Util.getCookie(this._logger, this._storageNamePrefix());\r\n if (cookie && typeof cookie.split === \"function\") {\r\n this.initializeAutomaticSessionWithData(cookie);\r\n } else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n const storage = Util.getStorage(this._logger, this._storageNamePrefix());\r\n if (storage) {\r\n this.initializeAutomaticSessionWithData(storage);\r\n }\r\n }\r\n\r\n if (!this.automaticSession.id) {\r\n this.renew();\r\n }\r\n }\r\n\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n */\r\n private initializeAutomaticSessionWithData(sessionData: string) {\r\n const params = sessionData.split(\"|\");\r\n\r\n if (params.length > 0) {\r\n this.automaticSession.id = params[0];\r\n }\r\n\r\n try {\r\n if (params.length > 1) {\r\n const acq = +params[1];\r\n this.automaticSession.acquisitionDate = +new Date(acq);\r\n this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0;\r\n }\r\n\r\n if (params.length > 2) {\r\n const renewal = +params[2];\r\n this.automaticSession.renewalDate = +new Date(renewal);\r\n this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0;\r\n }\r\n } catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL,\r\n\r\n _InternalMessageId.ErrorParsingAISessionCookie,\r\n \"Error parsing ai_session cookie, session will be reset: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n\r\n if (this.automaticSession.renewalDate === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.SessionRenewalDateIsZero,\r\n \"AI session renewal date is 0, session will be reset.\");\r\n }\r\n }\r\n\r\n private renew() {\r\n const now = new Date().getTime();\r\n\r\n this.automaticSession.id = Util.newId((this.config && this.config.idLength) ? this.config.idLength() : 22);\r\n this.automaticSession.acquisitionDate = now;\r\n this.automaticSession.renewalDate = now;\r\n\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!Util.canUseLocalStorage()) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserDoesNotSupportLocalStorage,\r\n \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n\r\n private setCookie(guid: string, acq: number, renewal: number) {\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n const acquisitionExpiry = acq + this.config.sessionExpirationMs();\r\n const renewalExpiry = renewal + this.config.sessionRenewalMs();\r\n const cookieExpiry = new Date();\r\n const cookie = [guid, acq, renewal];\r\n\r\n if (acquisitionExpiry < renewalExpiry) {\r\n cookieExpiry.setTime(acquisitionExpiry);\r\n } else {\r\n cookieExpiry.setTime(renewalExpiry);\r\n }\r\n\r\n const cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : null;\r\n\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires. \r\n // Another browser instance does not inherit this cookie.\r\n const UTCString = this.config.sessionExpirationMs() === 0 ? '0' : cookieExpiry.toUTCString();\r\n Util.setCookie(this._logger, this._storageNamePrefix(), cookie.join('|') + ';expires=' + UTCString, cookieDomain);\r\n\r\n this.cookieUpdatedTimestamp = new Date().getTime();\r\n }\r\n\r\n private setStorage(guid: string, acq: number, renewal: number) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n Util.setStorage(this._logger, this._storageNamePrefix(), [guid, acq, renewal].join('|'));\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IApplication } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Application implements IApplication {\r\n /**\r\n * The application version.\r\n */\r\n public ver: string;\r\n\r\n /**\r\n * The application build version.\r\n */\r\n public build: string;\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDevice } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Device implements IDevice {\r\n\r\n /**\r\n * The type for the current device.\r\n */\r\n public deviceClass: string;\r\n\r\n /**\r\n * A device unique ID.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * The application screen resolution.\r\n */\r\n resolution: string;\r\n\r\n /**\r\n * The device model for the current device.\r\n */\r\n public model: string;\r\n\r\n /**\r\n * Device identifier known at instrumentation time\r\n */\r\n public localId: string;\r\n\r\n /**\r\n * Device identifier known at instrumentation time\r\n */\r\n public ip: string;\r\n\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n constructor() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IInternal } from '@microsoft/applicationinsights-common';\r\nimport { ITelemetryConfig } from '../Interfaces/ITelemetryConfig';\r\n\r\nconst Version = \"2.5.10\";\r\n\r\nexport class Internal implements IInternal {\r\n\r\n /**\r\n * The SDK version used to create this telemetry item.\r\n */\r\n public sdkVersion: string;\r\n\r\n /**\r\n * The SDK agent version.\r\n */\r\n public agentVersion: string;\r\n\r\n /**\r\n * The Snippet version used to initialize the sdk instance, this will contain either\r\n * undefined/null - Snippet not used\r\n * '-' - Version and legacy mode not determined\r\n * # - Version # of the snippet\r\n * #.l - Version # in legacy mode\r\n * .l - No defined version, but used legacy mode initialization\r\n */\r\n public snippetVer: string;\r\n\r\n /**\r\n * Identifies the source of the sdk script\r\n */\r\n public sdkSrc: string;\r\n\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n constructor(config: ITelemetryConfig) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ITelemetryConfig } from '../Interfaces/ITelemetryConfig';\r\nimport { Util, IUser } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class User implements IUser {\r\n\r\n static cookieSeparator: string = '|';\r\n static userCookieName: string = 'ai_user';\r\n static authUserCookieName: string = 'ai_authUser';\r\n\r\n /**\r\n * The telemetry configuration.\r\n */\r\n public config: ITelemetryConfig;\r\n\r\n /**\r\n * The user ID.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Authenticated user id\r\n */\r\n public authenticatedId: string;\r\n\r\n /**\r\n * The localId\r\n */\r\n public localId: string;\r\n\r\n /**\r\n * The account ID.\r\n */\r\n public accountId: string;\r\n\r\n /**\r\n * The account acquisition date.\r\n */\r\n public accountAcquisitionDate: string;\r\n\r\n public isNewUser = false;\r\n\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(config: ITelemetryConfig, logger: IDiagnosticLogger) {\r\n this._logger = logger;\r\n\r\n // get userId or create new one if none exists\r\n const cookie = Util.getCookie(this._logger, User.userCookieName);\r\n if (cookie) {\r\n this.isNewUser = false;\r\n const params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n this.id = params[0];\r\n }\r\n }\r\n\r\n this.config = config;\r\n\r\n if (!this.id) {\r\n this.id = CoreUtils.newId(config && config.idLength ? config.idLength() : 22);\r\n const date = new Date();\r\n const acqStr = CoreUtils.toISOString(date);\r\n this.accountAcquisitionDate = acqStr;\r\n this.isNewUser = true;\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 * 1000 = 31536000000 \r\n date.setTime(date.getTime() + 31536000000);\r\n const newCookie = [this.id, acqStr];\r\n const cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined;\r\n\r\n Util.setCookie(this._logger, User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain);\r\n\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n const name = config.namePrefix && config.namePrefix() ? config.namePrefix() + 'ai_session' : 'ai_session';\r\n Util.removeStorage(this._logger, name);\r\n }\r\n\r\n // We still take the account id from the ctor param for backward compatibility. \r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n this.accountId = config.accountId ? config.accountId() : undefined;\r\n\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n let authCookie = Util.getCookie(this._logger, User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n const authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n this.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n this.accountId = authCookieString[1];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n * \r\n * @param authenticatedUserId {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n public setAuthenticatedUserContext(authenticatedUserId: string, accountId?: string, storeInCookie = false) {\r\n\r\n // Validate inputs to ensure no cookie control characters.\r\n const isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.SetAuthContextFailedAccountName,\r\n \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\",\r\n true);\r\n return;\r\n }\r\n\r\n // Create cookie string.\r\n this.authenticatedId = authenticatedUserId;\r\n let authCookie = this.authenticatedId;\r\n if (accountId) {\r\n this.accountId = accountId;\r\n authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator);\r\n }\r\n\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n Util.setCookie(this._logger, User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain());\r\n }\r\n }\r\n\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {} \r\n */\r\n public clearAuthenticatedUserContext() {\r\n this.authenticatedId = null;\r\n this.accountId = null;\r\n Util.deleteCookie(this._logger, User.authUserCookieName);\r\n }\r\n\r\n private validateUserInput(id: string): boolean {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== 'string' ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ILocation } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Location implements ILocation {\r\n\r\n /**\r\n * Client IP address for reverse lookup\r\n */\r\n public ip: string;\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Util, ITelemetryTrace, ITraceState, DataSanitizer } from '@microsoft/applicationinsights-common';\r\nimport { getLocation, IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class TelemetryTrace implements ITelemetryTrace {\r\n\r\n public traceID: string;\r\n public parentID: string;\r\n public traceState: ITraceState;\r\n public name: string;\r\n\r\n constructor(id?: string, parentId?: string, name?: string, logger?: IDiagnosticLogger) {\r\n this.traceID = id || Util.generateW3CId();\r\n this.parentID = parentId;\r\n this.name = name;\r\n let location = getLocation();\r\n if (!name && location && location.pathname) {\r\n this.name = location.pathname;\r\n }\r\n this.name = DataSanitizer.sanitizeString(logger, this.name);\r\n }\r\n}","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\n\r\nimport { ITelemetryItem, IProcessTelemetryContext, IDiagnosticLogger, CoreUtils, hasWindow, _InternalLogMessage } from '@microsoft/applicationinsights-core-js';\r\nimport { Session, _SessionManager } from './Context/Session';\r\nimport { Extensions, ITelemetryContext, IOperatingSystem, ITelemetryTrace, IWeb, SampleRate, CtxTagKeys, PageView } from '@microsoft/applicationinsights-common';\r\nimport { Application } from './Context/Application';\r\nimport { Device } from './Context/Device';\r\nimport { Internal } from './Context/Internal';\r\nimport { User } from './Context/User';\r\nimport { Location } from './Context/Location';\r\nimport { ITelemetryConfig } from './Interfaces/ITelemetryConfig';\r\nimport { TelemetryTrace } from './Context/TelemetryTrace';\r\n\r\nexport class TelemetryContext implements ITelemetryContext {\r\n\r\n public application: Application; // The object describing a component tracked by this object - legacy\r\n public device: Device; // The object describing a device tracked by this object.\r\n public location: Location; // The object describing a location tracked by this object -legacy\r\n public telemetryTrace: TelemetryTrace; // The object describing a operation tracked by this object.\r\n public user: User; // The object describing a user tracked by this object.\r\n public internal: Internal; // legacy\r\n public session: Session; // The object describing a session tracked by this object.\r\n public sessionManager: _SessionManager; // The session manager that manages session on the base of cookies.\r\n public os: IOperatingSystem;\r\n public web: IWeb;\r\n public appId: () => string;\r\n\r\n constructor(logger: IDiagnosticLogger, defaultConfig: ITelemetryConfig) {\r\n let _self = this;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self.sessionManager = new _SessionManager(defaultConfig, logger);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, logger);\r\n _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\r\n _self.session = new Session();\r\n }\r\n _self.appId = () => null;\r\n }\r\n\r\n public applySessionContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let session = this.session;\r\n let sessionManager = this.sessionManager;\r\n const sessionContext = session || (sessionManager && sessionManager.automaticSession);\r\n if (sessionContext) {\r\n if (CoreUtils.isString(sessionContext.id)) {\r\n event.ext.app.sesId = sessionContext.id;\r\n }\r\n }\r\n\r\n if (session) {\r\n // If customer set session info, apply his context; otherwise apply context automatically generated\r\n if (CoreUtils.isString(session.id)) {\r\n event.ext.app.sesId = session.id;\r\n } else {\r\n event.ext.app.sesId = sessionManager.automaticSession.id;\r\n }\r\n }\r\n }\r\n\r\n public applyOperatingSystemContxt(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let os = this.os;\r\n if (os && os.name) {\r\n event.ext.os = os;\r\n }\r\n }\r\n\r\n public applyApplicationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let application = this.application;\r\n if (application) {\r\n\r\n if (CoreUtils.isString(application.ver)) {\r\n event.tags[CtxTagKeys.applicationVersion] = application.ver;\r\n }\r\n if (CoreUtils.isString(application.build)) {\r\n event.tags[CtxTagKeys.applicationBuild] = application.build;\r\n }\r\n }\r\n }\r\n\r\n public applyDeviceContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let device = this.device;\r\n if (device) {\r\n if (CoreUtils.isString(device.id)) {\r\n event.ext.device.localId = device.id;\r\n }\r\n\r\n if (CoreUtils.isString(device.ip)) {\r\n event.ext.device.ip = device.ip;\r\n }\r\n\r\n if (CoreUtils.isString(device.model)) {\r\n event.ext.device.model = device.model;\r\n }\r\n\r\n if (CoreUtils.isString(device.deviceClass)) {\r\n event.ext.device.deviceClass = device.deviceClass;\r\n }\r\n }\r\n }\r\n\r\n public applyInternalContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let internal = this.internal;\r\n if (internal) {\r\n if (CoreUtils.isString(internal.agentVersion)) {\r\n event.tags[CtxTagKeys.internalAgentVersion] = internal.agentVersion; // not mapped in CS 4.0\r\n }\r\n if (CoreUtils.isString(internal.sdkVersion)) {\r\n event.tags[CtxTagKeys.internalSdkVersion] = internal.sdkVersion;\r\n }\r\n\r\n if (event.baseType === _InternalLogMessage.dataType || event.baseType === PageView.dataType) {\r\n if (CoreUtils.isString(internal.snippetVer)) {\r\n event.tags[CtxTagKeys.internalSnippet] = internal.snippetVer;\r\n }\r\n\r\n if (CoreUtils.isString(internal.sdkSrc)) {\r\n event.tags[CtxTagKeys.internalSdkSrc] = internal.sdkSrc;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public applyLocationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let location = this.location;\r\n if (location) {\r\n if (CoreUtils.isString(location.ip)) {\r\n event.tags[CtxTagKeys.locationIp] = location.ip;\r\n }\r\n }\r\n }\r\n\r\n public applyOperationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let telemetryTrace = this.telemetryTrace;\r\n if (telemetryTrace) {\r\n const trace = event.ext.trace || ({traceID: undefined, parentID: undefined} as ITelemetryTrace);\r\n if (CoreUtils.isString(telemetryTrace.traceID)) {\r\n trace.traceID = telemetryTrace.traceID;\r\n }\r\n\r\n if (CoreUtils.isString(telemetryTrace.name)) {\r\n trace.name = telemetryTrace.name;\r\n }\r\n\r\n if (CoreUtils.isString(telemetryTrace.parentID)) {\r\n trace.parentID = telemetryTrace.parentID;\r\n }\r\n\r\n event.ext.trace = trace;\r\n }\r\n }\r\n\r\n public applyWebContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let web = this.web;\r\n if (web) {\r\n event.ext.web = event.ext.web || {};\r\n event.ext.web = web;\r\n }\r\n }\r\n\r\n public applyUserContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let user = this.user;\r\n if (user) {\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n\r\n // stays in tags\r\n if (CoreUtils.isString(user.accountId)) {\r\n event.tags[CtxTagKeys.userAccountId] = user.accountId;\r\n }\r\n\r\n // CS 4.0\r\n if (CoreUtils.isString( user.id)) {\r\n event.ext.user.id = user.id;\r\n }\r\n\r\n if (CoreUtils.isString(user.authenticatedId)) {\r\n event.ext.user.authId = user.authenticatedId;\r\n }\r\n }\r\n }\r\n\r\n public cleanUp(event:ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (event.ext[Extensions.DeviceExt] && CoreUtils.objKeys(event.ext[Extensions.DeviceExt]).length === 0) {\r\n delete event.ext[Extensions.DeviceExt];\r\n }\r\n if (event.ext[Extensions.UserExt] && CoreUtils.objKeys(event.ext[Extensions.UserExt]).length === 0) {\r\n delete event.ext[Extensions.UserExt];\r\n }\r\n if (event.ext[Extensions.WebExt] && CoreUtils.objKeys(event.ext[Extensions.WebExt]).length === 0) {\r\n delete event.ext[Extensions.WebExt];\r\n }\r\n if (event.ext[Extensions.OSExt] && CoreUtils.objKeys(event.ext[Extensions.OSExt]).length === 0) {\r\n delete event.ext[Extensions.OSExt];\r\n }\r\n if (event.ext[Extensions.AppExt] && CoreUtils.objKeys(event.ext[Extensions.AppExt]).length === 0) {\r\n delete event.ext[Extensions.AppExt];\r\n }\r\n if (event.ext[Extensions.TraceExt] && CoreUtils.objKeys(event.ext[Extensions.TraceExt]).length === 0) {\r\n delete event.ext[Extensions.TraceExt];\r\n }\r\n }\r\n}","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\n\r\nimport {\r\n BaseTelemetryPlugin, IConfiguration, CoreUtils,\r\n IAppInsightsCore, IPlugin, ITelemetryItem, IProcessTelemetryContext, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator,\r\n ITelemetryPluginChain, objForEachKey\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { TelemetryContext } from './TelemetryContext';\r\nimport { PageView, ConfigurationManager,\r\n IConfig, BreezeChannelIdentifier, PropertiesPluginIdentifier, IPropertiesPlugin, Extensions, Util } from '@microsoft/applicationinsights-common';\r\nimport { ITelemetryConfig } from './Interfaces/ITelemetryConfig';\r\n\r\nexport default class PropertiesPlugin extends BaseTelemetryPlugin implements IPropertiesPlugin {\r\n\r\n public static getDefaultConfig(): ITelemetryConfig {\r\n const defaultConfig: ITelemetryConfig = {\r\n instrumentationKey: () => undefined,\r\n accountId: () => null,\r\n sessionRenewalMs: () => 30 * 60 * 1000,\r\n samplingPercentage: () => 100,\r\n sessionExpirationMs: () => 24 * 60 * 60 * 1000,\r\n cookieDomain: () => null,\r\n sdkExtension: () => null,\r\n isBrowserLinkTrackingEnabled: () => false,\r\n appId: () => null,\r\n namePrefix: () => undefined,\r\n idLength: () => 22\r\n }\r\n return defaultConfig;\r\n }\r\n public context: TelemetryContext;\r\n\r\n public priority = 110;\r\n public identifier = PropertiesPluginIdentifier;\r\n private _breezeChannel: IPlugin; // optional. If exists, grab appId from it\r\n\r\n private _extensionConfig: ITelemetryConfig;\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n let ctx = this._getTelCtx();\r\n let identifier = this.identifier;\r\n const defaultConfig: ITelemetryConfig = PropertiesPlugin.getDefaultConfig();\r\n this._extensionConfig = this._extensionConfig || PropertiesPlugin.getDefaultConfig();\r\n objForEachKey(defaultConfig, (field, value) => {\r\n this._extensionConfig[field] = () => ctx.getConfig(identifier, field, value());\r\n });\r\n\r\n this.context = new TelemetryContext(core.logger, this._extensionConfig);\r\n this._breezeChannel = Util.getExtension(extensions, BreezeChannelIdentifier);\r\n this.context.appId = () => this._breezeChannel ? this._breezeChannel[\"_appId\"] : null;\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (CoreUtils.isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n } else {\r\n itemCtx = this._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n\r\n if (this.context.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof this.context.session.id !== \"string\") {\r\n this.context.sessionManager.update();\r\n }\r\n }\r\n\r\n this._processTelemetryInternal(event, itemCtx);\r\n\r\n if (this.context && this.context.user && this.context.user.isNewUser) {\r\n this.context.user.isNewUser = false;\r\n const message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator()||{} as any).userAgent||\"\"));\r\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n }\r\n\r\n this.processNext(event, itemCtx);\r\n }\r\n }\r\n\r\n private _processTelemetryInternal(event: ITelemetryItem, itemCtx: IProcessTelemetryContext) {\r\n // set part A fields\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n\r\n if (!event.ext) {\r\n event.ext = {};\r\n }\r\n\r\n let ext = event.ext;\r\n ext[Extensions.DeviceExt] = ext[Extensions.DeviceExt] || {};\r\n ext[Extensions.WebExt] = ext[Extensions.WebExt] || {};\r\n ext[Extensions.UserExt] = ext[Extensions.UserExt] || {};\r\n ext[Extensions.OSExt] = ext[Extensions.OSExt] || {};\r\n ext[Extensions.AppExt] = ext[Extensions.AppExt] || {};\r\n ext[Extensions.TraceExt] = ext[Extensions.TraceExt] || {};\r\n\r\n let context = this.context;\r\n context.applySessionContext(event, itemCtx);\r\n context.applyApplicationContext(event, itemCtx);\r\n context.applyDeviceContext(event, itemCtx);\r\n context.applyOperationContext(event, itemCtx);\r\n context.applyUserContext(event, itemCtx);\r\n context.applyOperatingSystemContxt(event, itemCtx);\r\n context.applyWebContext(event, itemCtx);\r\n\r\n context.applyLocationContext(event, itemCtx); // legacy tags\r\n context.applyInternalContext(event, itemCtx); // legacy tags\r\n context.cleanUp(event, itemCtx);\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n IInstrumentHooksCallbacks, IInstrumentHooks, IInstrumentHook, IInstrumentCallDetails, InstrumentorHooksCallback\r\n} from \"../JavaScriptSDK.Interfaces/IInstrumentHooks\";\r\nimport {\r\n strFunction, strPrototype\r\n} from \"./EnvUtils\"\r\nimport { CoreUtils } from './CoreUtils';\r\n\r\nconst aiInstrumentHooks = \"_aiHooks\";\r\n\r\nconst enum CallbackType {\r\n Request = 0,\r\n Response = 1,\r\n HookError = 2,\r\n FunctionError = 3\r\n};\r\n\r\nconst cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst str__Proto = \"__proto__\";\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strConstructor = \"constructor\";\r\n\r\n/** @ignore */\r\nfunction _arrLoop(arr:T[], fn:(value:T, idx:number) => boolean|number|void) {\r\n if (arr) {\r\n for (let lp = 0; lp < arr.length; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @ignore */\r\nfunction _doCallbacks(hooks:IInstrumentHook[], callDetails: IInstrumentCallDetails, cbArgs:any[], hookCtx:any[], type:CallbackType): void {\r\n if (type >= CallbackType.Request && type <= CallbackType.HookError) {\r\n _arrLoop(hooks, (hook, idx) => {\r\n let cbks = hook.cbks;\r\n let cb:InstrumentorHooksCallback = cbks[cbNames[type]];\r\n if (cb) {\r\n\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = () => {\r\n let ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n\r\n try {\r\n cb.apply(callDetails.inst, cbArgs);\r\n } catch (err) {\r\n let orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n let hookErrorCb:InstrumentorHooksCallback = cbks[cbNames[CallbackType.HookError]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb.apply(callDetails.inst, cbArgs);\r\n }\r\n } catch(e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n } finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook:IInstrumentHooks) {\r\n\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n let funcThis = this;\r\n // Capture the original arguments passed to the method\r\n let orgArgs = arguments as any;\r\n let hooks = aiHook.h;\r\n\r\n let funcArgs:IInstrumentCallDetails = {\r\n name: aiHook.n,\r\n inst: funcThis,\r\n ctx: null,\r\n set: _replaceArg\r\n };\r\n\r\n let hookCtx: any[] = [];\r\n let cbArgs = _createArgs([funcArgs], orgArgs);\r\n\r\n function _createArgs(target:any[], theArgs:any[]): any[] {\r\n _arrLoop((theArgs as any), (arg) => {\r\n target.push(arg);\r\n });\r\n\r\n return target;\r\n }\r\n\r\n function _replaceArg(idx:number, value:any) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, CallbackType.Request);\r\n\r\n // Call the original function was called\r\n let theFunc = aiHook.f;\r\n try {\r\n funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\r\n } catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, CallbackType.FunctionError);\r\n\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, CallbackType.Response);\r\n\r\n return funcArgs.rslt;\r\n };\r\n}\r\n\r\n\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nlet _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target:any) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n let newProto = target[str__Proto] || target[strPrototype] || target[strConstructor];\r\n if(newProto) {\r\n return newProto;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/** @ignore */\r\nfunction _getOwner(target:any, name:string, checkPrototype:boolean): any {\r\n let owner = null;\r\n if (target) {\r\n if (CoreUtils.hasOwnProperty(target, name)) {\r\n owner = target;\r\n } else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, false);\r\n }\r\n }\r\n\r\n return owner;\r\n}\r\n\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target:any, funcName:string, callbacks: IInstrumentHooksCallbacks): IInstrumentHook {\r\n if (target) {\r\n return InstrumentFunc(target[strPrototype], funcName, callbacks, false);\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target:any, funcNames:string[], callbacks: IInstrumentHooksCallbacks): IInstrumentHook[] {\r\n if (target) {\r\n return InstrumentFuncs(target[strPrototype], funcNames, callbacks, false);\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target:any, funcName:string, callbacks: IInstrumentHooksCallbacks, checkPrototype:boolean = true): IInstrumentHook {\r\n if (target && funcName && callbacks) {\r\n let owner = _getOwner(target, funcName, checkPrototype);\r\n if (owner) {\r\n let fn = owner[funcName]\r\n if (typeof fn === strFunction) {\r\n let aiHook:IInstrumentHooks = fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n\r\n // Override (hook) the original function\r\n let newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n\r\n const theHook: IInstrumentHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function() {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n let id = this.id;\r\n _arrLoop(aiHook.h, (hook, idx) => {\r\n if (hook.id === id) {\r\n aiHook.h.splice(idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n }\r\n\r\n aiHook.i ++;\r\n aiHook.h.push(theHook);\r\n\r\n return theHook;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target:any, funcNames:string[], callbacks: IInstrumentHooksCallbacks, checkPrototype:boolean = true): IInstrumentHook[] {\r\n let hooks: IInstrumentHook[] = null;\r\n _arrLoop(funcNames, (funcName) => {\r\n let hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n\r\n hooks.push(hook);\r\n }\r\n });\r\n\r\n return hooks;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataSanitizer, UrlHelper, DateTimeUtils, Util } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, normalizeJsName, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\nvar _objKeys = CoreUtils.objKeys;\r\nvar _arrForEach = CoreUtils.arrForEach;\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = DateTimeUtils.GetDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, Util.msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData.perfTiming;\r\n var props = dependency[strProperties] || {};\r\n var propsSet = 0;\r\n var _isString = CoreUtils.isString;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strDuration = \"duration\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[strDuration];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, strDuration, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n _arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && _isString(val) || CoreUtils.isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !_isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[strProperties] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self.stateChangeAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self.perfMark = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self.requestHeaders = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self.ajaxTotalDuration = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self.requestUrl = null;\r\n self.requestSize = 0;\r\n self.method = null;\r\n self.status = null;\r\n self.requestSentTime = null;\r\n self.responseStartedTime = null;\r\n self.responseFinishedTime = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self.traceID = traceID;\r\n self.spanID = spanID;\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self.requestUrl ? UrlHelper.getAbsoluteUrl(self.requestUrl) : null;\r\n };\r\n self.getPathName = function () {\r\n return self.requestUrl ? DataSanitizer.sanitizeUrl(_logger, UrlHelper.getCompleteUrl(self.method, self.requestUrl)) : null;\r\n };\r\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(DateTimeUtils.GetDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self.ajaxTotalDuration < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self.traceID + \".\" + self.spanID,\r\n target: self.getAbsoluteUrl(),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n duration: self.ajaxTotalDuration,\r\n success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n responseCode: (+(self.status)),\r\n method: self.method\r\n },\r\n _a[strProperties] = { HttpMethod: self.method },\r\n _a);\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (_objKeys(self.requestHeaders).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].requestHeaders = self.requestHeaders;\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response.correlationContext;\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response.headerMap) {\r\n if (_objKeys(response.headerMap).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].responseHeaders = response.headerMap;\r\n }\r\n }\r\n if (self.status >= 400) {\r\n var responseType = response.type;\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n }\r\n if (responseType === \"json\") {\r\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n var _a;\r\n };\r\n });\r\n }\r\n ajaxRecord.prototype.getAbsoluteUrl = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.getPathName = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n;\r\n//# sourceMappingURL=ajaxRecord.js.map","import { Util } from '@microsoft/applicationinsights-common';\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n var self = this;\r\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n self.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n self.traceId = traceId;\r\n }\r\n else {\r\n self.traceId = Util.generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n self.spanId = spanId;\r\n }\r\n else {\r\n self.spanId = Util.generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n var self = this;\r\n return self.version + \"-\" + self.traceId + \"-\" + self.spanId + \"-\" + self.traceFlag;\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { RequestHeaders, Util, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, DateTimeUtils, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes } from '@microsoft/applicationinsights-common';\r\nimport { CoreUtils, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strUndefined, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\nimport { ajaxRecord } from './ajaxRecord';\r\nimport { EventHelper } from './ajaxUtils';\r\nimport { Traceparent } from './TraceParent';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\nvar _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\nvar _arrForEach = CoreUtils.arrForEach;\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n _isNullOrUndefined(_global.Request) ||\r\n _isNullOrUndefined(_global.Request[strPrototype]) ||\r\n _isNullOrUndefined(_global[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (typeof XMLHttpRequest !== strUndefined && !_isNullOrUndefined(XMLHttpRequest)) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !_isNullOrUndefined(proto) &&\r\n !_isNullOrUndefined(proto.open) &&\r\n !_isNullOrUndefined(proto.send) &&\r\n !_isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = Util.getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (!_isNullOrUndefined(xhr) &&\r\n !_isNullOrUndefined(xhr[strAjaxData]) &&\r\n !_isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) { }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n exception: Util.dump(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n var location = getLocation();\r\n var _fetchInitialized = false; // fetch monitoring initialized\r\n var _xhrInitialized = false; // XHR monitoring initialized\r\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n var _config = AjaxMonitor.getEmptyConfig();\r\n var _enableRequestHeaderTracking = false;\r\n var _trackAjaxAttempts = 0;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking = false;\r\n var _maxAjaxCallsPerView = 0;\r\n var _enableResponseHeaderTracking = false;\r\n var _hooks = [];\r\n var _disabledUrls = {};\r\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var ctx_1 = _self._getTelCtx();\r\n var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config.distributedTracingMode;\r\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey.length > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n if (_config.disableAjaxTracking === false) {\r\n _instrumentXhr();\r\n }\r\n _instrumentFetch();\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n _self.teardown = function () {\r\n // Remove all instrumentation hooks\r\n _arrForEach(_hooks, function (fn) {\r\n fn.rm();\r\n });\r\n _hooks = [];\r\n _fetchInitialized = false;\r\n _xhrInitialized = false;\r\n _self.setInitialized(false);\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _self[strTrackDependencyDataInternal](dependency, properties);\r\n };\r\n _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n if (input) {\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return init;\r\n }\r\n else if (xhr) {\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (CoreUtils.isNullOrUndefined(dependency.startTime)) {\r\n dependency.startTime = new Date();\r\n }\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self.core.track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (_config.disableFetchTracking === false) {\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (_fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n var fetchData = callDetails.ctx().data;\r\n if (fetchData) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {}).status, response, fetchData, function () {\r\n var ajaxResponse = {\r\n statusText: response.statusText,\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n responseHeaderMap_1[name] = value;\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, fetchData, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n req: function (args, method, url, async) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true) &&\r\n (!ajaxData || !ajaxData.xhrMonitoringState.openDone)) {\r\n _openHandler(xhr, method, url, async);\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n req: function (args, context) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n xhr = _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n req: function (args) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument setRequestHeader\r\n if (_enableRequestHeaderTracking) {\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n req: function (args, header, value) {\r\n var xhr = args.inst;\r\n if (_isMonitoredXhrInstance(xhr)) {\r\n xhr[strAjaxData].requestHeaders[header] = value;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n }\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!CoreUtils.isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!_isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!_isNullOrUndefined(request)) {\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === 'object' ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!_isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !_isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n ajaxData.async = async;\r\n xhr[strAjaxData] = ajaxData;\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = EventHelper.Attach(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = Util.dump(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n });\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr.responseText;\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happend because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.status = xhr.status;\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = Util.dump(e);\r\n }\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr.statusText,\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr.response\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = CoreUtils.strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n _arrForEach(arr, function (line) {\r\n var parts = line.split(': ');\r\n var header = parts.shift();\r\n var value = parts.join(': ');\r\n responseHeaderMap_2[header] = value;\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n if (dependency) {\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && CoreUtils.isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries.length === 1) {\r\n ajaxData.perfMark = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData.perfMark;\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config.ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData.requestUrl;\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries.length - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n // We hit the start event\r\n ajaxData.perfTiming = perfTiming;\r\n break;\r\n }\r\n if (entry.startTime < perfMark.startTime - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData.perfTiming || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) {\r\n if (perfMark && CoreUtils.isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark.name);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || Util.generateW3CId();\r\n var spanID = Util.generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init.method) {\r\n method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input.method;\r\n }\r\n ajaxData.method = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n requestHeaders[key] = value;\r\n });\r\n }\r\n ajaxData.requestHeaders = requestHeaders;\r\n _createMarkId(\"fetch\", ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!_isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\" + input + \"')\";\r\n }\r\n else {\r\n result += \"(url: '\" + input.url + \"')\";\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: Util.dump(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = Util.dump(e);\r\n }\r\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n }\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.status = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n if (dependency) {\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response.headers) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"\r\n ],\r\n correlationHeaderDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n var emptyConfig = this.getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n };\r\n AjaxMonitor.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n /**\r\n * Logs dependency call\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyData = function (dependency, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Protected function to allow sub classes the chance to add additional properties to the delendency event\r\n * before it's sent. This function calls track, so sub-classes must call this function after they have\r\n * populated their properties.\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyDataInternal = function (dependency, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { CoreUtils, AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from '@microsoft/applicationinsights-dependencies-js';\r\nimport * as Common from \"@microsoft/applicationinsights-common\";\r\n\"use strict\";\r\nvar _internalSdkSrc;\r\n;\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = Common;\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _self = this;\r\n // initialize the queue and config in case they are undefined\r\n _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n var config = snippet.config || {};\r\n if (config.connectionString) {\r\n var cs = Common.ConnectionStringParser.parse(config.connectionString);\r\n var ingest = cs.ingestionendpoint;\r\n config.endpointUrl = ingest ? ingest + \"/v2/track\" : config.endpointUrl; // only add /v2/track when from connectionstring\r\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n }\r\n _self.appInsights = new ApplicationInsights();\r\n _self.properties = new PropertiesPlugin();\r\n _self.dependencies = new DependenciesPlugin();\r\n _self.core = new AppInsightsCore();\r\n _self.snippet = snippet;\r\n _self.config = config;\r\n _self.getSKUDefaults();\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n var inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n var inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception) {\r\n if (!exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n this.appInsights.trackException(exception);\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n this.appInsights._onerror(exception);\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n this.appInsights.startTrackPage(name);\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n this.appInsights.startTrackEvent(name);\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n this.dependencies.trackDependencyData(dependency);\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n var _this = this;\r\n if (async === void 0) { async = true; }\r\n doPerf(this.core, function () { return \"AISKU.flush\"; }, function () {\r\n CoreUtils.arrForEach(_this.core.getTransmissionControls(), function (channels) {\r\n CoreUtils.arrForEach(channels, function (channel) {\r\n channel.flush(async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.onunloadFlush = function (async) {\r\n if (async === void 0) { async = true; }\r\n CoreUtils.arrForEach(this.core.getTransmissionControls(), function (channels) {\r\n CoreUtils.arrForEach(channels, function (channel) {\r\n if (channel.onunloadFlush) {\r\n channel.onunloadFlush();\r\n }\r\n else {\r\n channel.flush(async);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n var _this = this;\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n var _self = this;\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!CoreUtils.isNullOrUndefined(_self._snippetVersion)) {\r\n snippetVer += _self._snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self.context && _self.context.internal) {\r\n _self.context.internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (CoreUtils.isString(field) &&\r\n !CoreUtils.isFunction(value) &&\r\n field.substring(0, 1) !== \"_\") {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\r\n throw new Error(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n var appInsightsChannel = new Sender();\r\n extensions.push(appInsightsChannel);\r\n extensions.push(_self.properties);\r\n extensions.push(_self.dependencies);\r\n extensions.push(_self.appInsights);\r\n // initialize core\r\n _self.core.initialize(_self.config, extensions, logger, notificationManager);\r\n _self.context = _self.properties.context;\r\n if (_internalSdkSrc && _self.context) {\r\n _self.context.internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self.snippet);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self.pollInternalLogs();\r\n _self.addHousekeepingBeforeUnload(_this);\r\n });\r\n return _self;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n objForEachKey(this, function (field, value) {\r\n if (CoreUtils.isString(field)) {\r\n snippet[field] = value;\r\n }\r\n });\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n var _self = this;\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (Common.Util.isArray(_self.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet.queue.length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet.queue[i];\r\n call();\r\n }\r\n _self.snippet.queue = undefined;\r\n delete _self.snippet.queue;\r\n }\r\n }\r\n catch (exception) {\r\n var properties = {};\r\n if (exception && CoreUtils.isFunction(exception.toString)) {\r\n properties.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n this.core.pollInternalLogs();\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.onunloadFlush(false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n var ext = appInsightsInstance.appInsights.core['_extensions'][Common.PropertiesPluginIdentifier];\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n };\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigations.\r\n var added = CoreUtils.addEventHandler('beforeunload', performHousekeeping);\r\n added = CoreUtils.addEventHandler('pagehide', performHousekeeping) || added;\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload and pagehide');\r\n }\r\n }\r\n // We also need to hook the pagehide event as not all versions of Safari support load/unload events.\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n // Not adding any telemetry as pagehide as it's not supported on all browsers\r\n CoreUtils.addEventHandler('pagehide', performHousekeeping);\r\n }\r\n }\r\n };\r\n Initialization.prototype.getSKUDefaults = function () {\r\n var _self = this;\r\n _self.config.diagnosticLogInterval =\r\n _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url.indexOf(cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url.indexOf(\"/scripts/\") === -1) {\r\n if (url.indexOf(\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url.indexOf(\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map"],"sourceRoot":""}