{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"React\"","webpack:///external \"mobx\"","webpack:///external \"mobxReact\"","webpack:///external \"ReactDOM\"","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/react-tooltip/dist/constant.js","webpack:///external \"DebounceInput\"","webpack:///external \"InfiniteScroll\"","webpack:///./node_modules/react-animate-height/lib/AnimateHeight.js","webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/react-tooltip/dist/index.js","webpack:///external \"axios\"","webpack:///./node_modules/ismobilejs/dist/isMobile.min.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/react-tooltip/dist/decorators/staticMethods.js","webpack:///./node_modules/react-tooltip/dist/decorators/windowListener.js","webpack:///./node_modules/react-tooltip/dist/decorators/customEvent.js","webpack:///./node_modules/react-tooltip/dist/decorators/isCapture.js","webpack:///./node_modules/react-tooltip/dist/decorators/getEffect.js","webpack:///./node_modules/react-tooltip/dist/decorators/trackRemoval.js","webpack:///./node_modules/react-tooltip/dist/utils/getPosition.js","webpack:///./node_modules/react-tooltip/dist/utils/getTipContent.js","webpack:///./node_modules/react-tooltip/dist/utils/aria.js","webpack:///./node_modules/react-tooltip/dist/utils/nodeListToArray.js","webpack:///./node_modules/react-tooltip/dist/style.js","webpack:///./Scripts/SearchBox/index.tsx","webpack:///./Scripts/ListFilter/index.tsx","webpack:///./Scripts/Filters/index.tsx","webpack:///./Scripts/Utils/copyUtils.tsx","webpack:///./Scripts/ResultsBox/index.tsx","webpack:///./Scripts/ApplicationState/index.tsx","webpack:///./Scripts/Loader/index.tsx","webpack:///./Scripts/FilterControl/index.tsx","webpack:///./Scripts/App.tsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","mobx","mobxReact","ReactDOM","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","join","default","undefined","GLOBAL","HIDE","REBUILD","SHOW","DebounceInput","InfiniteScroll","_typeof","iterator","obj","constructor","_extends","assign","target","source","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_classnames2","_defineProperty","ANIMATION_STATE_CLASSES","animating","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","PROPS_TO_OMIT","isNumber","isNaN","parseFloat","isFinite","isPercentage","height","search","substr","runCallback","callback","params","AnimateHeight","_React$Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","overflow","animationStateClasses","getStaticStateClasses","state","shouldUseTransitions","subClass","superClass","setPrototypeOf","_inherits","Component","contentElement","style","hideContent","prevProps","prevState","_this2","_props","delay","duration","onAnimationEnd","onAnimationStart","_cx","showContent","contentHeight","offsetHeight","totalDuration","newHeight","timeoutState","isCurrentHeightAuto","timeoutAnimationStateClasses","setState","clearTimeout","timeoutID","animationClassesTimeoutID","requestAnimationFrame","setTimeout","display","_cx2","_cx3","_this3","_props2","animateOpacity","applyInlineTransitions","children","className","contentClassName","easing","_state","componentStyle","transition","WebkitTransition","contentStyle","opacity","componentClasses","createElement","_len","keys","_key","res","objectKeys","indexOf","concat","aria-hidden","ref","el","propTypes","bool","any","isRequired","string","number","propName","componentName","func","defaultProps","deselectCurrent","clipboardToIE11Formatting","text/plain","text/html","defaultMessage","text","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_class","_class2","_temp","_reactDom2","_staticMethods2","_windowListener2","_customEvent2","_isCapture2","_getEffect2","_trackRemoval2","_getPosition2","_getTipContent2","_aria","_nodeListToArray2","_style2","ReactTooltip","place","desiredPlace","type","effect","show","border","offset","extraClass","html","delayHide","delayShow","event","eventOff","currentEvent","currentTarget","ariaProps","parseAria","isEmptyTip","disable","originTooltip","isMultiline","mount","delayShowLoop","delayHideLoop","delayReshow","intervalUpdateContent","methodArray","forEach","method","insecure","resizeHide","setStyleHeader","bindListener","bindWindowEvents","newAriaProps","some","clearTimer","unbindListener","removeScrollListener","unbindWindowEvents","tooltipRef","matches","msMatchesSelector","mozMatchesSelector","id","targetArray","escaped","querySelectorAll","globalEventOff","isCapture","getTargetArray","isCaptureMode","getEffect","getAttribute","setAttribute","unbindBasicListener","isCustomEvent","customBindListener","showTooltip","updateTooltip","hideTooltip","removeEventListener","bindRemovalTracker","_this4","_props3","customUnbindListener","unbindRemovalTracker","_props4","getContent","content","placeholder","isGlobalCall","ele","_props5","multiline","switchToSolid","FocusEvent","scrollHide","result","findDOMNode","isNewState","newState","reshowDelay","delayUpdate","updateState","class","addScrollListener","setInterval","_getContent","updatePosition","_this5","afterShow","getTooltipContent","delayTime","parseInt","eventTarget","mouseOnToolTip","isInvisible","hasTarget","_this6","_state2","afterHide","resetState","isVisible","listenForTooltipExit","removeListenerForTooltipExit","_this7","_state3","node","left","head","getElementsByTagName","querySelector","tag","innerHTML","nc","insertBefore","firstChild","clearInterval","_this8","_state4","tooltipClass","place-top","place-bottom","place-left","place-right","type-dark","type-success","type-warning","type-error","type-info","type-light","allow_hover","allow_click","clickable","Wrapper","wrapper","supportedWrappers","_ref","data-id","dangerouslySetInnerHTML","__html","_ref2","watchWindow","displayName","axios","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","a","b","f","u","v","h","w","split","apple","phone","ipod","tablet","device","amazon","android","windows","other","blackberry","blackberry10","opera","firefox","chrome","isMobile","ReactPropTypesSecret","emptyFunction","shim","location","propFullName","secret","getShim","ReactPropTypes","array","symbol","arrayOf","element","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus","hide","dispatchGlobalEvent","_constant2","rebuild","globalRebuild","globalShow","detail","globalHide","_constant","eventName","opts","CustomEvent","createEvent","initEvent","dispatchEvent","onWindowResize","dataEvent","dataEventOff","customListeners","customListener","checkStatus","set","dataIsCapture","currentItem","setUntargetItems","listener","map","MutationObserver","getMutationObserverClass","observer","mutations","m1","mutation","m2","removedNodes","observe","childList","subtree","removalTracker","disconnect","WebKitMutationObserver","MozMutationObserver","_getDimensions","getDimensions","tipWidth","width","tipHeight","_getDimensions2","targetWidth","targetHeight","_getCurrentOffset","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","_calculateOffset","calculateOffset","extraOffset_X","extraOffset_Y","windowWidth","innerWidth","windowHeight","innerHeight","_getParent","getParent","parentTop","parentLeft","getTipOffsetLeft","offset_X","getTipOffsetTop","offset_Y","outsideRight","outsideBottom","outside","outsideLeft","outsideTop","inside","placesList","insideList","newPlace","_node$getBoundingClie","getBoundingClientRect","boundingClientRect","targetTop","targetLeft","_getDimensions3","clientX","clientY","right","bottom","disToMouse","toString","JSON","parse","currentParent","getComputedStyle","getPropertyValue","parentElement","tip","regexp","_react","ariaObj","filter","prop","nodeList","slice","fill","index","SearchBox_SearchBox","external_React_","[object Object]","external_DebounceInput_","debounceTimeout","onFocus","onChange","applicationState","searchTerm","updateSearchTerm","triggerInitialSearch","__decorate","external_mobxReact_","Lists","label","additionals","tooltip","ListFilter_Filter","lists","list","onClick","toggleList","ListFilter_decorate","ListFilter_ListFilters","FilterTable","FilterTableRows","rows","toggle","toggleAdditional","Filters_Filter","Filters_decorate","possibleFilters","link","stresses","indexes","circles","para","linksToAgenda","formatLabelPart","data-tip","data-for","formatLabel","dist_default","dataTip","href","row","item","items","filters","entry","colSpan","ExtraTable","Filters_Filters","toggleFilter","toggleStress","toggleIndex","toggleCircle","paras","togglePara","resetFilters","filterTotals","text2Markdown","replaceAll","copyUtils","nodeName","parentNode","isBold","fontWeight","isItalic","fontStyle","classList","contains","getParentCopyField","anchorNode","focusNode","isReverseCopy","preText","substring","focusOffset","grammarText","focusIndex","childNodes","findIndex","entries","anchorOffset","extentOffset","anchorIndex","getElementById","getElementsByClassName","startIndex","endIndex","getFirstNodeText","minIndex","Math","min","maxIndex","max","getLastNodeText","anchorCopyField","focusCopyField","ResultsBox_ResultsBox","getCopyText","copy_to_clipboard","hasSearched","AnimateHeight_default","nextAnimationTime","nextAnimationHeight","val","ensureFilterAreClosed","backgroundImage","external_InfiniteScroll_","dataLength","total","next","continue","hasMore","reachedLimit","loader","scrollThreshold","scrollableTarget","searchedTerm","results","resultSet","isShortResult","textAlign","startsWith","lemma","grammar","canLoadMore","showLoader","ResultsBox_decorate","circleString","defaultAnimationTime","ApplicationState_ApplicationState","hasError","external_mobx_","isLoading","pageSize","isMobile_min","pageNumber","shortResultLimit","filtersAreOpen","Map","pageEncode","thing","from","arr","encodeURIComponent","apiEncode","circleIndex","apiValueNormalizer","suppressHistory","log","term","queryString","clear","scrollTo","uri","history","pushState","title","currentSearch","cancel","trim","apiSearchParams","pagesize","pagenum","additional","stress","circle","apiQueryString","x","pageState","pageQueryString","data","external_axios_default","timeout","responseType","then","response","String","includes","RegExp","totalEntriesCount","matchingEntriesCount","resize","searchResults","add","closeFilterControl","scrollBy","openFilterControl","size","time","fixupFilter","encoded","decoded","decodeURIComponent","decodedSearchTerm","hasFilters","ApplicationState_decorate","Loader_Loader","Loader_decorate","FilterControl_FilterControl","toggleFilterControl","FilterControl_decorate","initialTerm","documentElement","initialSymbol","initialLists","initialAdditionals","initialIndexes","initialStresses","initialCircles","initialParas","applyState","onpopstate","resetSearch","hasBegunAnimating","first","toCenter","offsetWidth","wait","immediate","open","reaction","remove","elements","currentStyle","currentDisplay","previous","closeTimeout","isTouching","updateFiltersAfterMoving","current","scrollTop","goingUp","goingDown","percentageThrough","isAtTop","setProperty","multiplier","passive","context","args","callNow","App_MyComponent","App_decorate","external_ReactDOM_"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","module.exports = React;","module.exports = mobx;","module.exports = mobxReact;","module.exports = ReactDOM;","/**\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 REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\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')(isValidElement, 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","/*!\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};","module.exports = DebounceInput;","module.exports = InfiniteScroll;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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 ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific'\n};\n\nvar PROPS_TO_OMIT = ['animateOpacity', 'animationStateClasses', 'applyInlineTransitions', 'children', 'contentClassName', 'delay', 'duration', 'easing', 'height', 'onAnimationEnd', 'onAnimationStart'];\n\nfunction omit(obj) {\n for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n if (!keys.length) {\n return obj;\n }\n\n var res = {};\n var objectKeys = Object.keys(obj);\n\n for (var i = 0; i < objectKeys.length; i++) {\n var key = objectKeys[i];\n\n if (keys.indexOf(key) === -1) {\n res[key] = obj[key];\n }\n }\n\n return res;\n}\n\n// Start animation helper using nested requestAnimationFrames\nfunction startAnimationHelper(callback) {\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n callback();\n });\n });\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction isPercentage(height) {\n // Percentage height\n return typeof height === 'string' && height.search('%') === height.length - 1 && isNumber(height.substr(0, height.length - 1));\n}\n\nfunction runCallback(callback, params) {\n if (callback && typeof callback === 'function') {\n callback(params);\n }\n}\n\nvar AnimateHeight = function (_React$Component) {\n _inherits(AnimateHeight, _React$Component);\n\n function AnimateHeight(props) {\n _classCallCheck(this, AnimateHeight);\n\n var _this = _possibleConstructorReturn(this, (AnimateHeight.__proto__ || Object.getPrototypeOf(AnimateHeight)).call(this, props));\n\n var height = 'auto';\n var overflow = 'visible';\n\n if (isNumber(props.height)) {\n // If value is string \"0\" make sure we convert it to number 0\n height = props.height < 0 || props.height === '0' ? 0 : props.height;\n overflow = 'hidden';\n } else if (isPercentage(props.height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n height = props.height === '0%' ? 0 : props.height;\n overflow = 'hidden';\n }\n\n _this.animationStateClasses = _extends({}, ANIMATION_STATE_CLASSES, props.animationStateClasses);\n\n var animationStateClasses = _this.getStaticStateClasses(height);\n\n _this.state = {\n animationStateClasses: animationStateClasses,\n height: height,\n overflow: overflow,\n shouldUseTransitions: false\n };\n return _this;\n }\n\n _createClass(AnimateHeight, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var height = this.state.height;\n\n // Hide content if height is 0 (to prevent tabbing into it)\n // Check for contentElement is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n\n if (this.contentElement && this.contentElement.style) {\n this.hideContent(height);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _props = this.props,\n delay = _props.delay,\n duration = _props.duration,\n height = _props.height,\n onAnimationEnd = _props.onAnimationEnd,\n onAnimationStart = _props.onAnimationStart;\n\n // Check if 'height' prop has changed\n\n if (this.contentElement && height !== prevProps.height) {\n var _cx;\n\n // Remove display: none from the content div\n // if it was hidden to prevent tabbing into it\n this.showContent(prevState.height);\n\n // Cache content height\n this.contentElement.style.overflow = 'hidden';\n var contentHeight = this.contentElement.offsetHeight;\n this.contentElement.style.overflow = '';\n\n // set total animation time\n var totalDuration = duration + delay;\n\n var newHeight = null;\n var timeoutState = {\n height: null, // it will be always set to either 'auto' or specific number\n overflow: 'hidden'\n };\n var isCurrentHeightAuto = prevState.height === 'auto';\n\n if (isNumber(height)) {\n // If value is string \"0\" make sure we convert it to number 0\n newHeight = height < 0 || height === '0' ? 0 : height;\n timeoutState.height = newHeight;\n } else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutState.height = newHeight;\n } else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutState.height = 'auto';\n timeoutState.overflow = null;\n }\n\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutState.height = newHeight;\n\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n\n // Animation classes\n var animationStateClasses = (0, _classnames2.default)((_cx = {}, _defineProperty(_cx, this.animationStateClasses.animating, true), _defineProperty(_cx, this.animationStateClasses.animatingUp, prevProps.height === 'auto' || height < prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingDown, height === 'auto' || height > prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingToHeightZero, timeoutState.height === 0), _defineProperty(_cx, this.animationStateClasses.animatingToHeightAuto, timeoutState.height === 'auto'), _defineProperty(_cx, this.animationStateClasses.animatingToHeightSpecific, timeoutState.height > 0), _cx));\n\n // Animation classes to be put after animation is complete\n var timeoutAnimationStateClasses = this.getStaticStateClasses(timeoutState.height);\n\n // Set starting height and animating classes\n // We are safe to call set state as it will not trigger infinite loop\n // because of the \"height !== prevProps.height\" check\n this.setState({ // eslint-disable-line react/no-did-update-set-state\n animationStateClasses: animationStateClasses,\n height: newHeight,\n overflow: 'hidden',\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n shouldUseTransitions: !isCurrentHeightAuto\n });\n\n // Clear timeouts\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutState.shouldUseTransitions = true;\n\n startAnimationHelper(function () {\n _this2.setState(timeoutState);\n\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: timeoutState.height });\n });\n\n // Set static classes and remove transitions when animation ends\n this.animationClassesTimeoutID = setTimeout(function () {\n _this2.setState({\n animationStateClasses: timeoutAnimationStateClasses,\n shouldUseTransitions: false\n });\n\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(timeoutState.height);\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: timeoutState.height });\n }, totalDuration);\n } else {\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: newHeight });\n\n // Set end height, classes and remove transitions when animation is complete\n this.timeoutID = setTimeout(function () {\n timeoutState.animationStateClasses = timeoutAnimationStateClasses;\n timeoutState.shouldUseTransitions = false;\n\n _this2.setState(timeoutState);\n\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: newHeight });\n }, totalDuration);\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n this.timeoutID = null;\n this.animationClassesTimeoutID = null;\n this.animationStateClasses = null;\n }\n }, {\n key: 'showContent',\n value: function showContent(height) {\n if (height === 0) {\n this.contentElement.style.display = '';\n }\n }\n }, {\n key: 'hideContent',\n value: function hideContent(newHeight) {\n if (newHeight === 0) {\n this.contentElement.style.display = 'none';\n }\n }\n }, {\n key: 'getStaticStateClasses',\n value: function getStaticStateClasses(height) {\n var _cx2;\n\n return (0, _classnames2.default)((_cx2 = {}, _defineProperty(_cx2, this.animationStateClasses.static, true), _defineProperty(_cx2, this.animationStateClasses.staticHeightZero, height === 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightSpecific, height > 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightAuto, height === 'auto'), _cx2));\n }\n }, {\n key: 'render',\n value: function render() {\n var _cx3,\n _this3 = this;\n\n var _props2 = this.props,\n animateOpacity = _props2.animateOpacity,\n applyInlineTransitions = _props2.applyInlineTransitions,\n children = _props2.children,\n className = _props2.className,\n contentClassName = _props2.contentClassName,\n duration = _props2.duration,\n easing = _props2.easing,\n delay = _props2.delay,\n style = _props2.style;\n var _state = this.state,\n height = _state.height,\n overflow = _state.overflow,\n animationStateClasses = _state.animationStateClasses,\n shouldUseTransitions = _state.shouldUseTransitions;\n\n\n var componentStyle = _extends({}, style, {\n height: height,\n overflow: overflow || style.overflow\n });\n\n if (shouldUseTransitions && applyInlineTransitions) {\n componentStyle.transition = 'height ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n\n // Include transition passed through styles\n if (style.transition) {\n componentStyle.transition = style.transition + ', ' + componentStyle.transition;\n }\n\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n\n var contentStyle = {};\n\n if (animateOpacity) {\n contentStyle.transition = 'opacity ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n\n if (height === 0) {\n contentStyle.opacity = 0;\n }\n }\n\n var componentClasses = (0, _classnames2.default)((_cx3 = {}, _defineProperty(_cx3, animationStateClasses, true), _defineProperty(_cx3, className, className), _cx3));\n\n return _react2.default.createElement(\n 'div',\n _extends({}, omit.apply(undefined, [this.props].concat(PROPS_TO_OMIT)), {\n 'aria-hidden': height === 0,\n className: componentClasses,\n style: componentStyle\n }),\n _react2.default.createElement(\n 'div',\n {\n className: contentClassName,\n style: contentStyle,\n ref: function ref(el) {\n return _this3.contentElement = el;\n }\n },\n children\n )\n );\n }\n }]);\n\n return AnimateHeight;\n}(_react2.default.Component);\n\nvar heightPropType = function heightPropType(props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value === 'number' && value >= 0 || isPercentage(value) || value === 'auto') {\n return null;\n }\n\n return new TypeError('value \"' + value + '\" of type \"' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '\" is invalid type for ' + propName + ' in ' + componentName + '. ' + 'It needs to be a positive number, string \"auto\" or percentage string (e.g. \"15%\").');\n};\n\nAnimateHeight.propTypes = {\n animateOpacity: _propTypes2.default.bool,\n animationStateClasses: _propTypes2.default.object,\n applyInlineTransitions: _propTypes2.default.bool,\n children: _propTypes2.default.any.isRequired,\n className: _propTypes2.default.string,\n contentClassName: _propTypes2.default.string,\n duration: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n easing: _propTypes2.default.string,\n height: heightPropType,\n onAnimationEnd: _propTypes2.default.func,\n onAnimationStart: _propTypes2.default.func,\n style: _propTypes2.default.object\n};\n\nAnimateHeight.defaultProps = {\n animateOpacity: false,\n animationStateClasses: ANIMATION_STATE_CLASSES,\n applyInlineTransitions: true,\n duration: 250,\n delay: 0,\n easing: 'ease',\n style: {}\n};\n\nexports.default = AnimateHeight;","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","'use strict';\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 _class, _class2, _temp;\n\n/* Decoraters */\n\n\n/* Utils */\n\n\n/* CSS */\n\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _staticMethods = require('./decorators/staticMethods');\n\nvar _staticMethods2 = _interopRequireDefault(_staticMethods);\n\nvar _windowListener = require('./decorators/windowListener');\n\nvar _windowListener2 = _interopRequireDefault(_windowListener);\n\nvar _customEvent = require('./decorators/customEvent');\n\nvar _customEvent2 = _interopRequireDefault(_customEvent);\n\nvar _isCapture = require('./decorators/isCapture');\n\nvar _isCapture2 = _interopRequireDefault(_isCapture);\n\nvar _getEffect = require('./decorators/getEffect');\n\nvar _getEffect2 = _interopRequireDefault(_getEffect);\n\nvar _trackRemoval = require('./decorators/trackRemoval');\n\nvar _trackRemoval2 = _interopRequireDefault(_trackRemoval);\n\nvar _getPosition = require('./utils/getPosition');\n\nvar _getPosition2 = _interopRequireDefault(_getPosition);\n\nvar _getTipContent = require('./utils/getTipContent');\n\nvar _getTipContent2 = _interopRequireDefault(_getTipContent);\n\nvar _aria = require('./utils/aria');\n\nvar _nodeListToArray = require('./utils/nodeListToArray');\n\nvar _nodeListToArray2 = _interopRequireDefault(_nodeListToArray);\n\nvar _style = require('./style');\n\nvar _style2 = _interopRequireDefault(_style);\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 ReactTooltip = (0, _staticMethods2.default)(_class = (0, _windowListener2.default)(_class = (0, _customEvent2.default)(_class = (0, _isCapture2.default)(_class = (0, _getEffect2.default)(_class = (0, _trackRemoval2.default)(_class = (_temp = _class2 = function (_React$Component) {\n _inherits(ReactTooltip, _React$Component);\n\n function ReactTooltip(props) {\n _classCallCheck(this, ReactTooltip);\n\n var _this = _possibleConstructorReturn(this, (ReactTooltip.__proto__ || Object.getPrototypeOf(ReactTooltip)).call(this, props));\n\n _this.state = {\n place: props.place || 'top', // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark', // Color theme of tooltip\n effect: 'float', // float or fixed\n show: false,\n border: false,\n offset: {},\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null, // Current mouse event\n currentTarget: null, // Current target of mouse event\n ariaProps: (0, _aria.parseAria)(props), // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n originTooltip: null,\n isMultiline: false\n };\n\n _this.bind(['showTooltip', 'updateTooltip', 'hideTooltip', 'getTooltipContent', 'globalRebuild', 'globalShow', 'globalHide', 'onWindowResize', 'mouseOnToolTip']);\n\n _this.mount = true;\n _this.delayShowLoop = null;\n _this.delayHideLoop = null;\n _this.delayReshow = null;\n _this.intervalUpdateContent = null;\n return _this;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n\n\n _createClass(ReactTooltip, [{\n key: 'bind',\n value: function bind(methodArray) {\n var _this2 = this;\n\n methodArray.forEach(function (method) {\n _this2[method] = _this2[method].bind(_this2);\n });\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n insecure = _props.insecure,\n resizeHide = _props.resizeHide;\n\n if (insecure) {\n this.setStyleHeader(); // Set the style to the \n }\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props) {\n var ariaProps = this.state.ariaProps;\n\n var newAriaProps = (0, _aria.parseAria)(props);\n\n var isChanged = Object.keys(newAriaProps).some(function (props) {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (isChanged) {\n this.setState({ ariaProps: newAriaProps });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.mount = false;\n\n this.clearTimer();\n\n this.unbindListener();\n this.removeScrollListener();\n this.unbindWindowEvents();\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n\n }, {\n key: 'mouseOnToolTip',\n value: function mouseOnToolTip() {\n var show = this.state.show;\n\n\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n /**\n * Pick out corresponded target elements\n */\n\n }, {\n key: 'getTargetArray',\n value: function getTargetArray(id) {\n var targetArray = void 0;\n if (!id) {\n targetArray = document.querySelectorAll('[data-tip]:not([data-for])');\n } else {\n var escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n targetArray = document.querySelectorAll('[data-tip][data-for=\"' + escaped + '\"]');\n }\n // targetArray is a NodeList, convert it to a real array\n return (0, _nodeListToArray2.default)(targetArray);\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n\n }, {\n key: 'bindListener',\n value: function bindListener() {\n var _this3 = this;\n\n var _props2 = this.props,\n id = _props2.id,\n globalEventOff = _props2.globalEventOff,\n isCapture = _props2.isCapture;\n\n var targetArray = this.getTargetArray(id);\n\n targetArray.forEach(function (target) {\n var isCaptureMode = _this3.isCapture(target);\n var effect = _this3.getEffect(target);\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n _this3.unbindBasicListener(target);\n\n if (_this3.isCustomEvent(target)) {\n _this3.customBindListener(target);\n return;\n }\n\n target.addEventListener('mouseenter', _this3.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener('mousemove', _this3.updateTooltip, isCaptureMode);\n }\n target.addEventListener('mouseleave', _this3.hideTooltip, isCaptureMode);\n });\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n\n }, {\n key: 'unbindListener',\n value: function unbindListener() {\n var _this4 = this;\n\n var _props3 = this.props,\n id = _props3.id,\n globalEventOff = _props3.globalEventOff;\n\n var targetArray = this.getTargetArray(id);\n targetArray.forEach(function (target) {\n _this4.unbindBasicListener(target);\n if (_this4.isCustomEvent(target)) _this4.customUnbindListener(target);\n });\n\n if (globalEventOff) window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and ummount the compont\n * it is necessary to invloke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n\n }, {\n key: 'unbindBasicListener',\n value: function unbindBasicListener(target) {\n var isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n }, {\n key: 'getTooltipContent',\n value: function getTooltipContent() {\n var _props4 = this.props,\n getContent = _props4.getContent,\n children = _props4.children;\n\n // Generate tooltip content\n\n var content = void 0;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n\n return (0, _getTipContent2.default)(this.state.originTooltip, children, content, this.state.isMultiline);\n }\n }, {\n key: 'isEmptyTip',\n value: function isEmptyTip(placeholder) {\n return typeof placeholder === 'string' && placeholder === '' || placeholder === null;\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n\n }, {\n key: 'showTooltip',\n value: function showTooltip(e, isGlobalCall) {\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n var _props5 = this.props,\n multiline = _props5.multiline,\n getContent = _props5.getContent;\n\n var originTooltip = e.currentTarget.getAttribute('data-tip');\n var isMultiline = e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n var switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n var scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // Make sure the correct place is set\n var desiredPlace = e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n var effect = switchToSolid && 'solid' || this.getEffect(e.currentTarget);\n var offset = e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n var result = (0, _getPosition2.default)(e, e.currentTarget, _reactDom2.default.findDOMNode(this), desiredPlace, desiredPlace, effect, offset);\n var place = result.isNewState ? result.newState.place : desiredPlace;\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n\n var target = e.currentTarget;\n\n var reshowDelay = this.state.show ? target.getAttribute('data-delay-update') || this.props.delayUpdate : 0;\n\n var self = this;\n\n var updateState = function updateState() {\n self.setState({\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n effect: effect,\n offset: offset,\n html: target.getAttribute('data-html') ? target.getAttribute('data-html') === 'true' : self.props.html || false,\n delayShow: target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide: target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate: target.getAttribute('data-delay-update') || self.props.delayUpdate || 0,\n border: target.getAttribute('data-border') ? target.getAttribute('data-border') === 'true' : self.props.border || false,\n extraClass: target.getAttribute('data-class') || self.props.class || self.props.className || '',\n disable: target.getAttribute('data-tip-disable') ? target.getAttribute('data-tip-disable') === 'true' : self.props.disable || false,\n currentTarget: target\n }, function () {\n if (scrollHide) self.addScrollListener(self.state.currentTarget);\n self.updateTooltip(e);\n\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(function () {\n if (self.mount) {\n var _getContent = self.props.getContent;\n\n var placeholder = (0, _getTipContent2.default)(originTooltip, '', _getContent[0](), isMultiline);\n var isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({\n isEmptyTip: isEmptyTip\n });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n });\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, updatetooltip\n */\n\n }, {\n key: 'updateTooltip',\n value: function updateTooltip(e) {\n var _this5 = this;\n\n var _state = this.state,\n delayShow = _state.delayShow,\n disable = _state.disable;\n var afterShow = this.props.afterShow;\n\n var placeholder = this.getTooltipContent();\n var delayTime = parseInt(delayShow, 10);\n var eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n var updateState = function updateState() {\n if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {\n var isInvisible = !_this5.state.show;\n _this5.setState({\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n }, function () {\n _this5.updatePosition();\n if (isInvisible && afterShow) afterShow(e);\n });\n }\n };\n\n clearTimeout(this.delayShowLoop);\n if (delayShow) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n\n }, {\n key: 'listenForTooltipExit',\n value: function listenForTooltipExit() {\n var show = this.state.show;\n\n\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n }, {\n key: 'removeListenerForTooltipExit',\n value: function removeListenerForTooltipExit() {\n var show = this.state.show;\n\n\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n\n }, {\n key: 'hideTooltip',\n value: function hideTooltip(e, hasTarget) {\n var _this6 = this;\n\n var _state2 = this.state,\n delayHide = _state2.delayHide,\n disable = _state2.disable;\n var afterHide = this.props.afterHide;\n\n var placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement || !this.state.show) return;\n }\n\n var resetState = function resetState() {\n var isVisible = _this6.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (_this6.mouseOnToolTip()) {\n _this6.listenForTooltipExit();\n return;\n }\n _this6.removeListenerForTooltipExit();\n\n _this6.setState({\n show: false\n }, function () {\n _this6.removeScrollListener();\n if (isVisible && afterHide) afterHide(e);\n });\n };\n\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * Add scroll eventlistener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n\n }, {\n key: 'addScrollListener',\n value: function addScrollListener(currentTarget) {\n var isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltip, isCaptureMode);\n }\n }, {\n key: 'removeScrollListener',\n value: function removeScrollListener() {\n window.removeEventListener('scroll', this.hideTooltip);\n }\n\n // Calculation the position\n\n }, {\n key: 'updatePosition',\n value: function updatePosition() {\n var _this7 = this;\n\n var _state3 = this.state,\n currentEvent = _state3.currentEvent,\n currentTarget = _state3.currentTarget,\n place = _state3.place,\n desiredPlace = _state3.desiredPlace,\n effect = _state3.effect,\n offset = _state3.offset;\n\n var node = _reactDom2.default.findDOMNode(this);\n var result = (0, _getPosition2.default)(currentEvent, currentTarget, node, place, desiredPlace, effect, offset);\n\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, function () {\n _this7.updatePosition();\n });\n }\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * Set style tag in header\n * in this way we can insert default css\n */\n\n }, {\n key: 'setStyleHeader',\n value: function setStyleHeader() {\n var head = document.getElementsByTagName('head')[0];\n if (!head.querySelector('style[id=\"react-tooltip\"]')) {\n var tag = document.createElement('style');\n tag.id = 'react-tooltip';\n tag.innerHTML = _style2.default;\n /* eslint-disable */\n if (typeof __webpack_nonce__ !== 'undefined' && __webpack_nonce__) {\n tag.setAttribute('nonce', __webpack_nonce__);\n }\n /* eslint-enable */\n head.insertBefore(tag, head.firstChild);\n }\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n\n }, {\n key: 'clearTimer',\n value: function clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this8 = this;\n\n var _state4 = this.state,\n extraClass = _state4.extraClass,\n html = _state4.html,\n ariaProps = _state4.ariaProps,\n disable = _state4.disable;\n\n var placeholder = this.getTooltipContent();\n var isEmptyTip = this.isEmptyTip(placeholder);\n var tooltipClass = (0, _classnames2.default)('__react_component_tooltip', { 'show': this.state.show && !disable && !isEmptyTip }, { 'border': this.state.border }, { 'place-top': this.state.place === 'top' }, { 'place-bottom': this.state.place === 'bottom' }, { 'place-left': this.state.place === 'left' }, { 'place-right': this.state.place === 'right' }, { 'type-dark': this.state.type === 'dark' }, { 'type-success': this.state.type === 'success' }, { 'type-warning': this.state.type === 'warning' }, { 'type-error': this.state.type === 'error' }, { 'type-info': this.state.type === 'info' }, { 'type-light': this.state.type === 'light' }, { 'allow_hover': this.props.delayUpdate }, { 'allow_click': this.props.clickable });\n\n var Wrapper = this.props.wrapper;\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n\n if (html) {\n return _react2.default.createElement(Wrapper, _extends({ className: tooltipClass + ' ' + extraClass,\n id: this.props.id,\n ref: function ref(_ref) {\n return _this8.tooltipRef = _ref;\n }\n }, ariaProps, {\n 'data-id': 'tooltip',\n dangerouslySetInnerHTML: { __html: placeholder } }));\n } else {\n return _react2.default.createElement(\n Wrapper,\n _extends({ className: tooltipClass + ' ' + extraClass,\n id: this.props.id\n }, ariaProps, {\n ref: function ref(_ref2) {\n return _this8.tooltipRef = _ref2;\n },\n 'data-id': 'tooltip' }),\n placeholder\n );\n }\n }\n }]);\n\n return ReactTooltip;\n}(_react2.default.Component), _class2.propTypes = {\n children: _propTypes2.default.any,\n place: _propTypes2.default.string,\n type: _propTypes2.default.string,\n effect: _propTypes2.default.string,\n offset: _propTypes2.default.object,\n multiline: _propTypes2.default.bool,\n border: _propTypes2.default.bool,\n insecure: _propTypes2.default.bool,\n class: _propTypes2.default.string,\n className: _propTypes2.default.string,\n id: _propTypes2.default.string,\n html: _propTypes2.default.bool,\n delayHide: _propTypes2.default.number,\n delayUpdate: _propTypes2.default.number,\n delayShow: _propTypes2.default.number,\n event: _propTypes2.default.string,\n eventOff: _propTypes2.default.string,\n watchWindow: _propTypes2.default.bool,\n isCapture: _propTypes2.default.bool,\n globalEventOff: _propTypes2.default.string,\n getContent: _propTypes2.default.any,\n afterShow: _propTypes2.default.func,\n afterHide: _propTypes2.default.func,\n disable: _propTypes2.default.bool,\n scrollHide: _propTypes2.default.bool,\n resizeHide: _propTypes2.default.bool,\n wrapper: _propTypes2.default.string,\n clickable: _propTypes2.default.bool\n}, _class2.defaultProps = {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n}, _class2.supportedWrappers = ['div', 'span'], _class2.displayName = 'ReactTooltip', _temp)) || _class) || _class) || _class) || _class) || _class) || _class;\n\n/* export default not fit for standalone, it will exports {default:...} */\n\n\nmodule.exports = ReactTooltip;","module.exports = axios;","!function(e){var n=/iPhone/i,t=/iPod/i,r=/iPad/i,a=/\\bAndroid(?:.+)Mobile\\b/i,p=/Android/i,l=/\\bAndroid(?:.+)SD4930UR\\b/i,b=/\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i,f=/Windows Phone/i,u=/\\bWindows(?:.+)ARM\\b/i,c=/BlackBerry/i,s=/BB10/i,v=/Opera Mini/i,h=/\\b(CriOS|Chrome)(?:.+)Mobile/i,w=/\\Mobile(?:.+)Firefox\\b/i;function m(e,i){return e.test(i)}function i(e){var i=e||(\"undefined\"!=typeof navigator?navigator.userAgent:\"\"),o=i.split(\"[FBAN\");void 0!==o[1]&&(i=o[0]),void 0!==(o=i.split(\"Twitter\"))[1]&&(i=o[0]);var d={apple:{phone:m(n,i)&&!m(f,i),ipod:m(t,i),tablet:!m(n,i)&&m(r,i)&&!m(f,i),device:(m(n,i)||m(t,i)||m(r,i))&&!m(f,i)},amazon:{phone:m(l,i),tablet:!m(l,i)&&m(b,i),device:m(l,i)||m(b,i)},android:{phone:!m(f,i)&&m(l,i)||!m(f,i)&&m(a,i),tablet:!m(f,i)&&!m(l,i)&&!m(a,i)&&(m(b,i)||m(p,i)),device:!m(f,i)&&(m(l,i)||m(b,i)||m(a,i)||m(p,i))},windows:{phone:m(f,i),tablet:m(u,i),device:m(f,i)||m(u,i)},other:{blackberry:m(c,i),blackberry10:m(s,i),opera:m(v,i),firefox:m(w,i),chrome:m(h,i),device:m(c,i)||m(s,i)||m(v,i)||m(w,i)||m(h,i)}};return d.any=d.apple.device||d.android.device||d.windows.device||d.other.device,d.phone=d.apple.phone||d.android.phone||d.windows.phone,d.tablet=d.apple.tablet||d.android.tablet||d.windows.tablet,d}\"undefined\"!=typeof module&&module.exports&&\"undefined\"==typeof window?module.exports=i:\"undefined\"!=typeof module&&module.exports&&\"undefined\"!=typeof window?module.exports=i():\"function\"==typeof define&&define.amd?define([],e.isMobile=i()):e.isMobile=i()}(this);","/**\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() {}\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 instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\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","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = function (target) {\n dispatchGlobalEvent(_constant2.default.GLOBAL.HIDE, { target: target });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = function () {\n dispatchGlobalEvent(_constant2.default.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = function (target) {\n dispatchGlobalEvent(_constant2.default.GLOBAL.SHOW, { target: target });\n };\n\n target.prototype.globalRebuild = function () {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n\n target.prototype.globalShow = function (event) {\n if (this.mount) {\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n var e = { currentTarget: event.detail.target };\n this.showTooltip(e, true);\n }\n };\n\n target.prototype.globalHide = function (event) {\n if (this.mount) {\n var hasTarget = event && event.detail && event.detail.target && true || false;\n this.hideTooltip({ currentTarget: hasTarget && event.detail.target }, hasTarget);\n }\n };\n};\n\nvar _constant = require('../constant');\n\nvar _constant2 = _interopRequireDefault(_constant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dispatchGlobalEvent = function dispatchGlobalEvent(eventName, opts) {\n // Compatibale with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n var event = void 0;\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, { detail: opts });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true);\n event.detail = opts;\n }\n\n window.dispatchEvent(event);\n}; /**\n * Static methods for react-tooltip\n */","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n target.prototype.bindWindowEvents = function (resizeHide) {\n // ReactTooltip.hide\n window.removeEventListener(_constant2.default.GLOBAL.HIDE, this.globalHide);\n window.addEventListener(_constant2.default.GLOBAL.HIDE, this.globalHide, false);\n\n // ReactTooltip.rebuild\n window.removeEventListener(_constant2.default.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(_constant2.default.GLOBAL.REBUILD, this.globalRebuild, false);\n\n // ReactTooltip.show\n window.removeEventListener(_constant2.default.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(_constant2.default.GLOBAL.SHOW, this.globalShow, false);\n\n // Resize\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\n }\n };\n\n target.prototype.unbindWindowEvents = function () {\n window.removeEventListener(_constant2.default.GLOBAL.HIDE, this.globalHide);\n window.removeEventListener(_constant2.default.GLOBAL.REBUILD, this.globalRebuild);\n window.removeEventListener(_constant2.default.GLOBAL.SHOW, this.globalShow);\n window.removeEventListener('resize', this.onWindowResize);\n };\n\n /**\n * invoked by resize event of window\n */\n target.prototype.onWindowResize = function () {\n if (!this.mount) return;\n this.hideTooltip();\n };\n};\n\nvar _constant = require('../constant');\n\nvar _constant2 = _interopRequireDefault(_constant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n target.prototype.isCustomEvent = function (ele) {\n var event = this.state.event;\n\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function (ele) {\n var _this = this;\n\n var _state = this.state,\n event = _state.event,\n eventOff = _state.eventOff;\n\n var dataEvent = ele.getAttribute('data-event') || event;\n var dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n\n dataEvent.split(' ').forEach(function (event) {\n ele.removeEventListener(event, customListeners.get(ele, event));\n var customListener = checkStatus.bind(_this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(function (event) {\n ele.removeEventListener(event, _this.hideTooltip);\n ele.addEventListener(event, _this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function (ele) {\n var _state2 = this.state,\n event = _state2.event,\n eventOff = _state2.eventOff;\n\n var dataEvent = event || ele.getAttribute('data-event');\n var dataEventOff = eventOff || ele.getAttribute('data-event-off');\n\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n};\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nvar checkStatus = function checkStatus(dataEventOff, e) {\n var show = this.state.show;\n var id = this.props.id;\n\n var dataIsCapture = e.currentTarget.getAttribute('data-iscapture');\n var isCapture = dataIsCapture && dataIsCapture === 'true' || this.props.isCapture;\n var currentItem = e.currentTarget.getAttribute('currentItem');\n\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\n\nvar setUntargetItems = function setUntargetItems(currentTarget, targetArray) {\n for (var i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\n\nvar customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set: function set(target, event, listener) {\n if (this.id in target) {\n var map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: _defineProperty({}, event, listener)\n });\n }\n },\n get: function get(target, event) {\n var map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n target.prototype.isCapture = function (currentTarget) {\n return currentTarget && currentTarget.getAttribute('data-iscapture') === 'true' || this.props.isCapture || false;\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n target.prototype.getEffect = function (currentTarget) {\n var dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (target) {\n target.prototype.bindRemovalTracker = function () {\n var _this = this;\n\n var MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n\n var observer = new MutationObserver(function (mutations) {\n for (var m1 = 0; m1 < mutations.length; m1++) {\n var mutation = mutations[m1];\n for (var m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n var element = mutation.removedNodes[m2];\n if (element === _this.state.currentTarget) {\n _this.hideTooltip();\n return;\n }\n }\n }\n });\n\n observer.observe(window.document, { childList: true, subtree: true });\n\n this.removalTracker = observer;\n };\n\n target.prototype.unbindRemovalTracker = function () {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n};\n\n/**\n * Tracking target removing from DOM.\n * It's nessesary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nvar getMutationObserverClass = function getMutationObserverClass() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (e, target, node, place, desiredPlace, effect, offset) {\n var _getDimensions = getDimensions(node),\n tipWidth = _getDimensions.width,\n tipHeight = _getDimensions.height;\n\n var _getDimensions2 = getDimensions(target),\n targetWidth = _getDimensions2.width,\n targetHeight = _getDimensions2.height;\n\n var _getCurrentOffset = getCurrentOffset(e, target, effect),\n mouseX = _getCurrentOffset.mouseX,\n mouseY = _getCurrentOffset.mouseY;\n\n var defaultOffset = getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight);\n\n var _calculateOffset = calculateOffset(offset),\n extraOffset_X = _calculateOffset.extraOffset_X,\n extraOffset_Y = _calculateOffset.extraOffset_Y;\n\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n\n var _getParent = getParent(node),\n parentTop = _getParent.parentTop,\n parentLeft = _getParent.parentLeft;\n\n // Get the edge offset of the tooltip\n\n\n var getTipOffsetLeft = function getTipOffsetLeft(place) {\n var offset_X = defaultOffset[place].l;\n return mouseX + offset_X + extraOffset_X;\n };\n var getTipOffsetRight = function getTipOffsetRight(place) {\n var offset_X = defaultOffset[place].r;\n return mouseX + offset_X + extraOffset_X;\n };\n var getTipOffsetTop = function getTipOffsetTop(place) {\n var offset_Y = defaultOffset[place].t;\n return mouseY + offset_Y + extraOffset_Y;\n };\n var getTipOffsetBottom = function getTipOffsetBottom(place) {\n var offset_Y = defaultOffset[place].b;\n return mouseY + offset_Y + extraOffset_Y;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n var outsideLeft = function outsideLeft(p) {\n return getTipOffsetLeft(p) < 0;\n };\n var outsideRight = function outsideRight(p) {\n return getTipOffsetRight(p) > windowWidth;\n };\n var outsideTop = function outsideTop(p) {\n return getTipOffsetTop(p) < 0;\n };\n var outsideBottom = function outsideBottom(p) {\n return getTipOffsetBottom(p) > windowHeight;\n };\n\n // Check whether the tooltip with orientation p is completely inside the client window\n var outside = function outside(p) {\n return outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n };\n var inside = function inside(p) {\n return !outside(p);\n };\n\n var placesList = ['top', 'bottom', 'left', 'right'];\n var insideList = [];\n for (var i = 0; i < 4; i++) {\n var p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n\n var isNewState = false;\n var newPlace = void 0;\n if (inside(desiredPlace) && desiredPlace !== place) {\n isNewState = true;\n newPlace = desiredPlace;\n } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {\n isNewState = true;\n newPlace = insideList[0];\n }\n\n if (isNewState) {\n return {\n isNewState: true,\n newState: { place: newPlace }\n };\n }\n\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n};\n\nvar getDimensions = function getDimensions(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n height = _node$getBoundingClie.height,\n width = _node$getBoundingClie.width;\n\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\n/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nvar getCurrentOffset = function getCurrentOffset(e, currentTarget, effect) {\n var boundingClientRect = currentTarget.getBoundingClientRect();\n var targetTop = boundingClientRect.top;\n var targetLeft = boundingClientRect.left;\n\n var _getDimensions3 = getDimensions(currentTarget),\n targetWidth = _getDimensions3.width,\n targetHeight = _getDimensions3.height;\n\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nvar getDefaultPosition = function getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight) {\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n var disToMouse = 3;\n var triangleHeight = 2;\n var cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n\n return { top: top, bottom: bottom, left: left, right: right };\n};\n\n// Consider additional offset into position calculation\nvar calculateOffset = function calculateOffset(offset) {\n var extraOffset_X = 0;\n var extraOffset_Y = 0;\n\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/\\'/g, '\\\"'));\n }\n for (var key in offset) {\n if (key === 'top') {\n extraOffset_Y -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffset_Y += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffset_X -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffset_X += parseInt(offset[key], 10);\n }\n }\n\n return { extraOffset_X: extraOffset_X, extraOffset_Y: extraOffset_Y };\n};\n\n// Get the offset of the parent elements\nvar getParent = function getParent(currentTarget) {\n var currentParent = currentTarget;\n while (currentParent) {\n if (window.getComputedStyle(currentParent).getPropertyValue('transform') !== 'none') break;\n currentParent = currentParent.parentElement;\n }\n\n var parentTop = currentParent && currentParent.getBoundingClientRect().top || 0;\n var parentLeft = currentParent && currentParent.getBoundingClientRect().left || 0;\n\n return { parentTop: parentTop, parentLeft: parentLeft };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and childern is null or undefined\n\n var regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map(function (d, i) {\n return _react2.default.createElement(\n 'span',\n { key: i, className: 'multi-line' },\n d\n );\n });\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseAria = parseAria;\n/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nfunction parseAria(props) {\n var ariaObj = {};\n Object.keys(props).filter(function (prop) {\n // aria-xxx and role is acceptable\n return (/(^aria-\\w+$|^role$)/.test(prop)\n );\n }).forEach(function (prop) {\n ariaObj[prop] = props[prop];\n });\n\n return ariaObj;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (nodeList) {\n var length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(function (index) {\n return nodeList[index];\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = '.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover,.__react_component_tooltip.allow_click{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:\"\";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}';","import * as React from \"react\";\nimport { ApplicationState } from \"../ApplicationState\";\nimport { observer } from \"mobx-react\";\nimport { DebounceInput } from 'react-debounce-input';\n\nexport interface ISearchBoxProps\n{\n applicationState: ApplicationState\n}\n\n@observer\nexport class SearchBox extends React.Component {\n render() {\n return this.onFocus(e)}\n onChange={e => this.onChange(e)}\n value={this.props.applicationState.searchTerm}\n className=\"search-input\"\n placeholder=\"Поиск: кошка, *ошка\" />;\n }\n\n onChange(e: React.ChangeEvent) {\n this.props.applicationState.updateSearchTerm(e.target.value);\n }\n\n onFocus(e: React.FocusEvent) {\n this.props.applicationState.triggerInitialSearch();\n }\n}","import { ApplicationState } from \"../ApplicationState/index\";\nimport * as React from \"react\";\nimport { observer } from \"mobx-react\";\nimport { Row, FilterTable, FilterTableRows } from \"../Filters/index\";\n\nconst Lists = [\n {\n key: \"common\",\n label: \"нарицательные\"\n },\n {\n key: \"proper\",\n label: \"собственные\"\n }\n];\n\nconst additionals: Row[] = [\n [\n { name: \"✕\", tooltip: \"Образование кратких форм прилагательного или образование страдательного причастия прош. времени затруднительно.\" },\n { name: \"△\", tooltip: \"△ placeholder\" },\n { name: \"◑\", tooltip: \"Сведения о глаголе противоположного вида.\" },\n { name: \"ё\", tooltip: \"Чередование ё/е у имен и глаголов.\" },\n { name: \"—\", tooltip: \"Форма множественного числа или (у прилагательных) краткая форма мужского рода предположительна.\" },\n { name: \"Р2\", tooltip: \"Второй родительный падеж\" },//lower index\n ],\n [\n { name: \"☒\", tooltip: \"(У прилагательных) краткой формы мужского рода нет, образование прочих кратких форм затруднительно или (у глаголов) страдательного причастия прош. времени нет.\" },\n { name: \"✧\", tooltip: \"✧ placeholder\" },\n { name: \"♠\", tooltip: \"♠ placeholder\" },\n { name: \"о\", tooltip: \"Чередование о/е у глаголов.\" },\n { name: \"~\", tooltip: \"~ placeholder\" },\n { name: \"П2\", tooltip: \"Второй предложный падеж\" },//lower index\n ],\n [\n { name: \"÷\", tooltip: \"÷ placeholder\" },\n { name: \"*\", tooltip: \"Беглая гласная у имен и глаголов.\" },\n { name: \"°\", tooltip: \"Чередования у имен и глаголов.\" },//todo href\n ],\n];\n\ninterface IListFilterProps\n{\n applicationState: ApplicationState,\n list: string,\n}\n\n@observer\nclass Filter extends React.Component {\n render() {\n return this.props.applicationState.toggleList(this.props.list)}>\n {this.props.children}\n ;\n }\n}\n\ntype ListFiltersProps = {\n applicationState: ApplicationState,\n}\n\nexport class ListFilters extends React.PureComponent {\n render() {\n return \n \n {Lists.map(l => \n \n \n \n {l.label}\n \n \n )}\n \n this.props.applicationState.toggleAdditional((a))} />\n \n \n ;\n }\n}","import * as React from \"react\";\nimport ReactTooltip from \"react-tooltip\";\nimport { ApplicationState } from \"../ApplicationState\";\nimport { observer } from \"mobx-react\";\nimport { ListFilters } from \"../ListFilter/index\";\n\nexport interface IFilterControlProps\n{\n applicationState: ApplicationState\n}\n\ninterface IFilterProps {\n filter: string,\n getter: Map,\n toggle: (something: string) => void,\n}\n\n@observer\nclass Filter extends React.Component {\n render() {\n return this.props.toggle(this.props.filter)}>\n {this.props.children}\n ;\n }\n}\n\ntype Entry = {\n name: string,\n tooltip: string,\n link?: number,\n}\n\ntype Nested = Entry[];\nexport type Row = Array\n\nconst possibleFilters: Row[] = [\n [\n { name: \"м\", tooltip: \"существительное мужского рода, неодушевленное\", link: 0},\n { name: \"мо\", tooltip: \"существительное мужского рода, одушевленное\", link: 0},\n { name: \"мо-жо\", tooltip: \"существительное мужского или женского рода, одушевленное\", link: 0},\n { name: \"мн.\", tooltip: \"существительное, имеющее только множественное число\", link: 0 },\n { name: \"союз\", tooltip: \"союз\", link: 0 },\n { name: \"ф.\", tooltip: \"фамилия\", link: 5 },\n ],[\n { name: \"ж\", tooltip: \"существительное женского рода, неодушевленное\", link: 0},\n { name: \"жо\", tooltip: \"существительное женского рода, одушевленное\", link: 0},\n [\n { name: \"мо⁺\", tooltip: \"мужское имя, изредка может быть женским\", link: 2 }, \n { name: \"жо⁺\", tooltip: \"женское имя, изредка может быть мужским\", link: 2 }\n ],\n { name: \"мн. от\", tooltip: \"существительное, имеющее только множественное число, образованное от обычного существительного\", link: 0 },\n { name: \"предл.\", tooltip: \"предлог\", link: 0 },\n { name: \"см.\", tooltip: \"ссылочная статья\" }\n ],[\n { name: \"с\", tooltip: \"существительное среднего рода, неодушевленное\", link: 0},\n { name: \"со\", tooltip: \"существительное среднего рода, одушевленное\", link: 0 },\n [\n { name: \"§1\", tooltip: \"слова типа полдела\", link: 3 }, \n { name: \"§2\", tooltip: \"слова типа полвторого\", link: 4 }\n ],\n { name: \"мн. одуш.\", tooltip: \"одушевленное существительное, имеющее только множественное число\", link: 0 },\n { name: \"сравн.\", tooltip: \"сравнительная степень\", link: 0 },\n { name: \"Р. мн.\", tooltip: \"форма родительного падежа множественного числа\" }\n ],[\n { name: \"н\", tooltip: \"наречие\", link: 0 },\n { name: \"мс\", tooltip: \"местоимение\", link: 0},\n { name: \"числ.\", tooltip: \"числительное\", link: 0 },\n { name: \"мн. неод.\", tooltip: \"неодушевленное существительное, имеющее только множественное число\", link: 0 },\n { name: \"вводн.\", tooltip: \"вводное слово\", link: 0 },\n { name: \"част.\", tooltip: \"частица\", link: 0 }\n ],[\n { name: \"п\", tooltip: \"прилагательное\", link:0},\n { name: \"мс-п\", tooltip: \"местоимение-прилагательное\", link: 0},\n { name: \"числ.-п\", tooltip: \"порядковое числительное\", link: 0 },\n { name: \"предик.\", tooltip: \"предикатив\", link: 0 },\n { name: \"межд.\", tooltip: \"междометие\", link: 0 },\n { name: \"(нет)\", tooltip: \"нет буквенного символа\" }\n ],[\n { name: \"св\", tooltip: \"глагол совершенного вида\", link: 1},\n { name: \"нсв\", tooltip: \"глагол несовершенного вида\", link: 1},\n { name: \"св-нсв\", tooltip: \"двувидовой глагол\", link: 1 },\n { name: \"предикативное мс\", tooltip: \"предикативное местоимение\", link: 0, width: 3 }\n ]\n];\nconst stresses: Row[] = [\n [\n { name: \"a\", tooltip: \"Постоянное ударение на основе\"},\n { name: \"a'\", tooltip: \"Постоянное ударение на основе, но в кратких формах ж. (у прилагательных) возможно колебание.\"}\n ],\n [\n { name: \"b\", tooltip: \"Постоянное ударение на окончании\" },\n { name: \"b'\", tooltip: \"(У существительных) как схема b, только в T. ед. ударение на основе.(У прилагательных) постоянное ударение на основе, но в кратких формах мн. ч. возможно колебание.\" }\n ],\n [\n { name: \"c\", tooltip: \"(У существительных) в единственном ударение на основе, во множественном - на окончании. (У прилагательных и в прош.) на окончаниях в прош. ж, в прочих формах на основе.\" },\n { name: \"c'\", tooltip: \"\" },\n { name: \"c''\", tooltip: \"\" }\n ],\n [\n { name: \"d\", tooltip: \"В единственном ударение на окончании, во множественном - на основе.\" },\n { name: \"d'\", tooltip: \"Как схема d, только в В. ед. ударение на первом слоге.\" }\n ],\n [\n { name: \"e\", tooltip: \"e\" }\n ],\n [\n { name: \"f\", tooltip: \"f\" },\n { name: \"f'\", tooltip: \"Как схема f, только в В. ед. ударение на первом слоге.\" },\n { name: \"f''\", tooltip: \"f''\" }\n ],\n];\n\nconst indexes = [\n {\n name: \"0\",\n tooltip: \"Неизменяемое (несклоняемое, неспрягаемое) слово\"\n },\n {\n name: \"1\",\n tooltip: \"1\"\n },\n {\n name: \"2\",\n tooltip: \"2\"\n },\n {\n name: \"3\",\n tooltip: \"3\"\n },\n {\n name: \"4\",\n tooltip: \"4\"\n },\n {\n name: \"5\",\n tooltip: \"5\"\n },\n {\n name: \"6\",\n tooltip: \"6\"\n },\n {\n name: \"7\",\n tooltip: \"7\"\n },\n {\n name: \"8\",\n tooltip: \"8\"\n },\n {\n name: \"9\",\n tooltip: \"9\"\n },\n {\n name: \"10\",\n tooltip: \"10\"\n },\n {\n name: \"11\",\n tooltip: \"11\"\n },\n {\n name: \"12\",\n tooltip: \"12\"\n },\n {\n name: \"13\",\n tooltip: \"13\"\n },\n {\n name: \"14\",\n tooltip: \"14\"\n },\n {\n name: \"15\",\n tooltip: \"15\"\n },\n {\n name: \"16\",\n tooltip: \"16\"\n }\n];\n\nconst circles: Row = [\n undefined,\n {\n name: \"①\",\n tooltip: \"①\"\n },\n {\n name: \"②\",\n tooltip: \"②\"\n },\n {\n name: \"③\",\n tooltip: \"③\"\n },\n {\n name: \"④\",\n tooltip: \"④\"\n },\n {\n name: \"⑤\",\n tooltip: \"⑤\"\n },\n {\n name: \"⑥\",\n tooltip: \"⑥\"\n },\n {\n name: \"⑦\",\n tooltip: \"⑦\"\n },\n {\n name: \"⑧\",\n tooltip: \"⑧\"\n },\n {\n name: \"⑨\",\n tooltip: \"⑨\"\n }\n];\n\nconst para: Row[] = [\n [\n undefined,\n undefined, \n {\n name: \"§3\",\n tooltip: \"§3\"\n },\n {\n name: \"§4\",\n tooltip: \"§4\"\n },\n {\n name: \"§5\",\n tooltip: \"§5\"\n },\n {\n name: \"§6\",\n tooltip: \"§6\"\n },\n {\n name: \"§7\",\n tooltip: \"§7\"\n },\n {\n name: \"§8\",\n tooltip: \"§8\"\n },\n {\n name: \"§9\",\n tooltip: \"§9\"\n },\n {\n name: \"§10\",\n tooltip: \"§10\"\n }\n ],\n [\n {\n name: \"§11\",\n tooltip: \"§11\"\n },\n {\n name: \"§12\",\n tooltip: \"§12\"\n },\n {\n name: \"§13\",\n tooltip: \"§13\"\n },\n {\n name: \"§14\",\n tooltip: \"§14\"\n },\n {\n name: \"§15\",\n tooltip: \"§15\"\n },\n {\n name: \"§16\",\n tooltip: \"§16\"\n },\n {\n name: \"§17\",\n tooltip: \"§17\"\n },\n {\n name: \"§18\",\n tooltip: \"§18\"\n },\n {\n name: \"§19\",\n tooltip: \"§19\"\n },\n {\n name: \"§20\",\n tooltip: \"§20\"\n }\n ],\n [\n {\n name: \"§21\",\n tooltip: \"§21\"\n },\n {\n name: \"§22\",\n tooltip: \"§22\"\n },\n {\n name: \"§23\",\n tooltip: \"§23\"\n },\n {\n name: \"§24\",\n tooltip: \"§24\"\n },\n {\n name: \"§25\",\n tooltip: \"§25\"\n },\n {\n name: \"§26\",\n tooltip: \"§26\"\n },\n {\n name: \"§27\",\n tooltip: \"§27\"\n },\n {\n name: \"§28\",\n tooltip: \"§28\"\n },\n {\n name: \"§29\",\n tooltip: \"§29\"\n },\n {\n name: \"§30\",\n tooltip: \"§30\"\n }\n ]\n];\n\nconst linksToAgenda = [\n ['(буквенные символы)','/declension/symbols#main-symbol'],\n ['(буквенные символы глаголов)', '/conjugation#verb-symbol'],\n ['(символ ⁺)', '/names#sup-plus'],\n ['(§1)', '/declension/paragraphs#para1'],\n ['(§2)', '/declension/paragraphs#para2'],\n ['(символ ф.)', '/names#symbol-f']\n];\n\nconst formatLabelPart = (filter) => {\n return ;\n};\n\nconst formatLabel = (filter) => {\n return [formatLabelPart(filter),\n \n [\n {\n event.stopPropagation();\n }}>\n \n \n {typeof filter.link == \"number\" &&\n \n \n {linksToAgenda[filter.link][0]}\n }\n \n \n ]}/>\n ];\n};\n\n\n\nexport const FilterTableRows = ({ rows, getter, toggle, className }: {\n rows: Row[],\n getter: Map,\n toggle: (something: string) => void,\n className?: string\n}) => ({rows.map(row =>\n \n {row && row.map(item => {\n let width = 1;\n let items: Entry[];\n if (Array.isArray(item)) {\n items = item;\n } else if (item === undefined) {\n items = [];\n } else {\n width = item.width;\n items = [item];\n }\n\n const filters = items\n .map((entry, i) =>\n \n \n {formatLabel(entry)}\n \n {i < items.length - 1 ? \" \" : \"\"}\n );\n\n return {filters};\n })}\n )});\n \nexport const FilterTable = ({ children }: { children?: React.ReactNode }) =>\n(\n \n {children}\n \n );\n\nconst ExtraTable = ({ children }: { children?: React.ReactNode }) =>\n (\n \n {children}\n \n );\n\n@observer\nexport class Filters extends React.Component {\n render() {\n return \n \n \n this.props.applicationState.toggleFilter(f)}/>\n \n \n this.props.applicationState.toggleStress((s))} />\n \n \n \n \n \n {indexes.map(i =>\n this.props.applicationState.toggleIndex(index)}>\n {formatLabel(i)}\n )}\n \n \n \n this.props.applicationState.toggleCircle((c))}/>\n this\n .props.applicationState.togglePara((p))}/>\n \n\n \n \n \n \n \n \n this.props.applicationState\n .resetFilters()}>Reset\n \n {this.props.applicationState.filterTotals}\n \n ;\n }\n}\n\n\n\n\n","import * as React from \"react\";\n\nexport const text2Markdown = (text: string) => {\n if (!text) {\n return \"\"\n }\n return (text as any)\n .replaceAll('_', '\\_')\n .replaceAll('', '_')\n .replaceAll('', '_')\n .replaceAll('', '__')\n .replaceAll('', '__')\n}\n\nclass CopyUtils {\n \n isBold(node) {\n if (!node) {\n return false\n }\n\n if (node && node.nodeName === '#text') {\n return node.parentNode.nodeName === 'B' || this.isBold(node.parentElement)\n }\n\n let fontWeight = getComputedStyle(node).fontWeight\n return getComputedStyle(node).fontWeight === \"bold\" || parseInt(fontWeight) > 400\n }\n\n isItalic(node) {\n if (!node) {\n return false\n }\n\n if (node.nodeName == 'I') {\n return true\n }\n\n if (node.nodeName === '#text') {\n return node.parentNode.nodeName === 'I' || this.isItalic(node.parentElement)\n }\n\n return getComputedStyle(node).fontStyle === \"italic\"\n }\n\n getParentCopyField(node) {\n if (node.classList && node.classList.contains(\"copy-field\")) {\n return node\n }\n\n return this.getParentCopyField(node.parentElement)\n }\n\n getFirstNodeText(selection, anchorNode, focusNode, isReverseCopy) {\n let text = ''\n if (isReverseCopy) {\n if (focusNode.classList.contains(\"lemma\")) {\n let preText = selection.focusNode.textContent.substring(\n selection.focusOffset)\n text = preText ? `__${preText}__` + \" \" : \"\"\n } else if (focusNode.classList.contains(\"symbol\")) {\n let preText = selection.focusNode.textContent.substring(\n selection.focusOffset,\n )\n text = preText ? preText + \" \" : \"\"\n } else if (focusNode.classList.contains(\"grammar\")) {\n let grammarText = \"\"\n var focusIndex = [...focusNode.childNodes].findIndex(node => node === selection.focusNode || node === selection.focusNode.parentNode)\n for (var [i, node] of focusNode.childNodes.entries()) {\n if (i < focusIndex) {\n continue\n }\n if (node === selection.focusNode || node === selection.focusNode.parentNode) {\n let t = selection.focusNode.textContent.substring( selection.focusOffset)\n t = this.isItalic(node) ? `_${t}_` : t\n t = this.isBold(node) ? `__${t}__` : t\n grammarText += t;\n } else if (node === selection.anchorNode || node === selection.anchorNode.parentNode) {\n let t = selection.anchorNode.textContent.substring(0,\n selection.anchorOffset);\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n break\n }\n\n else {\n let t = node.textContent;\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n\n }\n text += grammarText ? grammarText + \"\\n\" : \"\\n\"\n }\n\n return text\n }\n\n if (anchorNode.classList.contains(\"lemma\")) {\n let preText = selection.anchorNode.textContent.substring(\n selection.anchorOffset)\n text = preText ? `__${preText}__` + \" \" : \"\"\n } else if (anchorNode.classList.contains(\"symbol\")) {\n let preText = selection.anchorNode.textContent.substring( selection.extentOffset, selection.anchorOffset)\n text = preText ? preText + \" \" : \"\"\n } else if (anchorNode.classList.contains(\"grammar\")) {\n let grammarText = \"\"\n var anchorIndex = [...anchorNode.childNodes].findIndex(node => node === selection.anchorNode || node === selection.anchorNode.parentNode)\n for (var [i, node] of anchorNode.childNodes.entries()) {\n if (i < anchorIndex) {\n continue\n }\n if (node === selection.anchorNode || node === selection.anchorNode.parentNode) {\n let t = selection.anchorNode.textContent.substring(\n selection.anchorOffset)\n t = this.isItalic(node) ? `_${t}_` : t\n t = this.isBold(node) ? `__${t}__` : t\n grammarText += t;\n } else if (node === selection.focusNode || node === selection.focusNode.parentNode) {\n let t = selection.focusNode.textContent.substring(0, selection.focusOffset)\n t = this.isItalic(node) ? `_${t}_` : t\n t = this.isBold(node) ? `__${t}__` : t\n grammarText += t;\n break\n }\n else {\n let t = node.textContent;\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n }\n text += grammarText ? grammarText + \"\\n\" : \"\\n\"\n }\n\n return text\n }\n\n getLastNodeText(selection, anchorNode, focusNode, isReverseCopy) {\n let text = \"\";\n\n if (isReverseCopy) {\n if (anchorNode.classList.contains(\"lemma\")) {\n let preText = selection.anchorNode.textContent.substring(\n 0,\n selection.anchorOffset)\n text += preText ? `__${preText}__` + \" \" : \"\"\n } else if (anchorNode.classList.contains(\"symbol\")) {\n let preText = selection.anchorNode.textContent.substring(0,\n selection.anchorOffset)\n text += preText ? preText + \" \" : \"\"\n } else if (anchorNode.classList.contains(\"grammar\")) {\n let grammarText = \"\"\n let isChildren = [...anchorNode.childNodes].some(node => node === selection.anchorNode || node === selection.anchorNode.parentNode);\n if (isChildren) {\n for (var node of anchorNode.childNodes) {\n if (node === selection.anchorNode || node === selection.anchorNode.parentNode) {\n let t = selection.anchorNode.textContent.substring(0, selection.anchorOffset)\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n break\n } else {\n let t = node.textContent\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n }\n\n } else {\n let t = selection.anchorNode.textContent.substring(0, selection.anchorOffset)\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n text += grammarText ? grammarText + \"\\n\" : \"\\n\"\n }\n return text\n }\n\n if (focusNode.classList.contains(\"lemma\")) {\n let preText = selection.focusNode.textContent.substring(0, selection.focusOffset)\n text += preText ? `__${preText}__` + \" \" : \"\"\n } else if (focusNode.classList.contains(\"symbol\")) {\n let preText = selection.focusNode.textContent.substring(0, selection.focusOffset)\n text += preText ? preText + \" \" : \"\"\n } else if (focusNode.classList.contains(\"grammar\")) {\n let grammarText = \"\"\n let isChildren = [...focusNode.childNodes].some(node => node === selection.focusNode || node === selection.focusNode.parentNode);\n if (isChildren) {\n for (var node of focusNode.childNodes) {\n if (node === selection.focusNode || node === selection.focusNode.parentNode) {\n let t = selection.focusNode.textContent.substring(0, selection.focusOffset)\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n break\n } else {\n let t = node.textContent\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n }\n\n } else {\n let t = selection.focusNode.textContent.substring(0, selection.focusOffset)\n t = this.isItalic(node) ? `_${t}_` : t;\n t = this.isBold(node) ? `__${t}__` : t;\n grammarText += t;\n }\n text += grammarText ? grammarText + \"\\n\" : \"\\n\"\n }\n return text\n }\n\n getCopyText(isReverseCopy) {\n const selection = document.getSelection();\n var text = ''\n if (selection.anchorNode === selection.focusNode) {\n text = selection.toString();\n if (!text) {\n return \"\"\n }\n if (this.isBold(selection.anchorNode)) {\n return `__${text}__`\n }\n if (this.isItalic(selection.anchorNode)) {\n return `_${text}_`\n }\n return selection.toString()\n } else {\n var allNodes = document.getElementById(\"search-results\").getElementsByClassName(\"copy-field\");\n var childNodes = [...allNodes]\n let anchorNode = this.getParentCopyField(selection.anchorNode)\n let focusNode = this.getParentCopyField(selection.focusNode)\n var startIndex = childNodes.indexOf(anchorNode)\n var endIndex = childNodes.indexOf(focusNode)\n text += this.getFirstNodeText(selection, anchorNode, focusNode, isReverseCopy)\n var minIndex = Math.min(startIndex, endIndex);\n var maxIndex = Math.max(startIndex, endIndex);\n for (var i = minIndex + 1; i < maxIndex; i++) {\n var node = childNodes[i];\n if (node.classList.contains('lemma')) {\n text += node.textContent ? `__${node.textContent}__` + \" \" : \"\"\n }\n if (node.classList.contains('symbol')) {\n text += node.textContent ? node.textContent + \" \" : \"\"\n }\n if (node.classList.contains('grammar')) {\n text += node.innerHTML ? text2Markdown(node.innerHTML) + \"\\n\" : \"\\n\"\n }\n }\n if (startIndex !== endIndex) {\n text += this.getLastNodeText(selection, anchorNode, focusNode, isReverseCopy)\n }\n return text\n }\n }\n\n isReverseCopy(selection) {\n var allNodes = document.getElementById(\"search-results\").getElementsByClassName(\"copy-field\");\n var childNodes = [...allNodes]\n let isReverseCopy = false\n let anchorCopyField = copyUtils.getParentCopyField(selection.anchorNode)\n let focusCopyField = copyUtils.getParentCopyField(selection.focusNode)\n if (anchorCopyField === focusCopyField) {\n let childNodes = [...anchorCopyField.childNodes]\n let anchorIndex = childNodes.findIndex(node => node === selection.anchorNode || node === selection.anchorNode.parentNode)\n let focusIndex = childNodes.findIndex(node => node === selection.focusNode || node === selection.focusNode.parentNode)\n isReverseCopy = anchorIndex > focusIndex\n\n } else {\n isReverseCopy = childNodes.indexOf(anchorCopyField) > childNodes.indexOf(focusCopyField)\n }\n return isReverseCopy;\n }\n}\n\nexport const copyUtils = new CopyUtils()","import { ApplicationState } from \"../ApplicationState/index\";\nimport * as InfinityScroll from \"react-infinite-scroll-component\";\nimport { observer } from \"mobx-react\";\nimport * as React from \"react\";\nimport AnimateHeight from \"react-animate-height\";\nimport * as copy from 'copy-to-clipboard';\nimport { Filters } from \"../Filters/index\";\nimport { copyUtils } from '../Utils/copyUtils'\n\nexport interface IResultBoxProps {\n applicationState: ApplicationState\n}\n\n@observer\nexport class ResultsBox extends React.Component {\n loader: InfinityScroll;\n\n onCopy(e) {\n e.preventDefault();\n const selection = document.getSelection();\n if (selection) {\n var isReverseCopy = copyUtils.isReverseCopy(selection);\n var text = copyUtils.getCopyText(isReverseCopy)\n if (text) {\n copy(text)\n }\n }\n\n }\n\n render() {\n return this.props.applicationState.hasSearched &&\n \n this.props.applicationState.ensureFilterAreClosed()}\n style={{\n backgroundImage: \"url('../background.jpg')\"\n }}>\n \n \n \n this.props.applicationState.continue()}\n hasMore={!this.props.applicationState.reachedLimit}\n loader={Loading...}\n ref={c => this.loader = c}\n scrollThreshold=\"50px\"\n scrollableTarget=\"search-results\"\n style={{\n overflow: \"hidden\"\n }}\n key={this.props.applicationState.searchedTerm}>\n {this.props.applicationState.results.map(resultSet => [\n \n {resultSet.map(r => \n {r.lemma}\n \n \n )}\n ,\n \n ])}\n {this.props.applicationState.canLoadMore &&\n \n {\n this.props.applicationState.continue();\n this.loader.setState({\n showLoader: true,\n });\n }}>Load more...\n }\n \n \n ;\n }\n}\n","import * as React from \"react\";\nimport { flow, observable, action, computed } from \"mobx\";\nimport { resize } from \"../App\";\nimport { CancellablePromise } from \"mobx/lib/api/flow\";\nimport axios from \"axios\";\nimport * as isMobile from \"ismobilejs\";\n\ntype ApiEntry = {\n lemma: string,\n symbol: string,\n grammar: string,\n}\n\ntype ApiResponse = {\n [\"matching-entries-count\"]: number,\n [\"total-entries-count\"]: number,\n entries: ApiEntry[],\n}\n\nconst circleString = \"①②③④⑤⑥⑦⑧⑨\";\nfunction apiValueNormalizer(value: string) {\n const circleIndex = circleString.indexOf(value);\n if (circleIndex > -1) {\n return (circleIndex + 1).toString();\n }\n\n return value.replace(\"§\", \"\");\n}\n\nexport const defaultAnimationTime = 400;\n\nexport class ApplicationState {\n @action\n ensureFilterAreClosed() {\n if (!this.filtersAreOpen) {\n const searchResults = document.getElementById(\"search-results\");\n searchResults.classList.add(\"filters-invisible\");\n\n setTimeout(() => {\n this.closeFilterControl();\n searchResults.scrollBy(0, 1);\n }, 0);\n }\n }\n\n @observable\n nextAnimationHeight: string | number = 0;\n\n @observable\n nextAnimationTime: number = defaultAnimationTime;\n\n\n currentSearch: CancellablePromise<{}>;\n\n @observable\n matchingEntriesCount: number;\n\n @observable\n totalEntriesCount: number;\n\n @computed\n get filterTotals() {\n if (typeof this.matchingEntriesCount === \"undefined\" || typeof this.totalEntriesCount === \"undefined\") {\n return \"\";\n }\n\n if (this.matchingEntriesCount === this.totalEntriesCount) {\n return `Статей: ${this.matchingEntriesCount}`;\n }\n\n if (this.matchingEntriesCount < this.totalEntriesCount) {\n return `Статей: ${this.matchingEntriesCount} из ${this.totalEntriesCount}`;\n }\n\n return \"\";\n }\n\n @observable\n hasSearched = false;\n\n @observable\n hasError = false;\n\n @observable\n searchTerm = \"\";\n\n @observable\n searchedTerm = \"\";\n\n @observable\n results: Array> = observable([]);\n\n @observable\n isLoading = false;\n\n @observable\n pageSize = isMobile.any ? 20 : 210;\n\n @observable\n pageNumber = 0;\n\n @observable\n reachedLimit = false;\n\n @observable\n total = 0;\n\n @observable\n shortResultLimit = 20;\n\n @observable\n filtersAreOpen = false;\n\n @observable\n filters = new Map();\n\n @observable\n lists = new Map();\n\n @observable\n additionals = new Map();\n\n @observable\n stresses = new Map();\n\n @observable\n indexes = new Map();\n\n @observable\n circles = new Map();\n\n @observable\n paras = new Map();\n\n @computed\n get canLoadMore() {\n return !this.reachedLimit && !this.isLoading;\n }\n\n @computed\n get isShortResult() {\n return this.shortResultLimit >= this.total;\n }\n\n @action\n toggleFilterControl() {\n if (this.filtersAreOpen) {\n this.closeFilterControl();\n } else {\n this.openFilterControl();\n }\n }\n\n @action\n openFilterControl() {\n this.filtersAreOpen = true;\n this.nextAnimationHeight = \"auto\";\n this.nextAnimationTime = defaultAnimationTime;\n }\n\n @action\n closeFilterControl(size = 0, time = defaultAnimationTime) {\n this.filtersAreOpen = false;\n this.nextAnimationHeight = size;\n this.nextAnimationTime = time;\n }\n\n callback?: () => void;\n\n @action\n toggleFilter(filter: string) {\n this.filters.set(filter, !this.filters.get(filter));\n this.search();\n }\n\n @action\n toggleList(list: string) {\n this.lists.set(list, !this.lists.get(list));\n this.search();\n }\n\n @action\n toggleAdditional(additional: string) {\n this.additionals.set(additional, !this.additionals.get(additional));\n this.search();\n }\n\n\n @action\n toggleIndex(index: string) {\n this.indexes.set(index, !this.indexes.get(index));\n this.search();\n }\n\n @action\n toggleStress(stress: string) {\n this.stresses.set(stress, !this.stresses.get(stress));\n this.search();\n }\n\n @action\n toggleCircle(circle: string) {\n this.circles.set(circle, !this.circles.get(circle));\n this.search();\n }\n\n @action\n togglePara(para: string) {\n this.paras.set(para, !this.paras.get(para));\n this.search();\n }\n\n @action\n resetFilters() {\n this.filters.clear();\n this.lists.clear();\n this.additionals.clear();\n this.indexes.clear();\n this.stresses.clear();\n this.circles.clear();\n this.paras.clear();\n this.search();\n }\n\n @action\n updateSearchTerm(searchTerm: string) {\n console.log(\"updating search term\", searchTerm);\n this.searchTerm = searchTerm;\n this.search();\n }\n\n @action\n triggerInitialSearch() {\n if (this.hasSearched === false) {\n this.search();\n }\n }\n\n @action\n applyState(term: string, filters: string, lists: string, additionals: string, indexes: string, stresses: string, circles: string, paras: string) {\n const fixupFilter = (encoded: string, filters: Map) => {\n const decoded = encoded.split(\",\").filter(x => x.length > 0).map(l => decodeURIComponent(l));\n filters.clear();\n for (let filter of decoded) {\n filters.set(filter, true);\n }\n\n return filters.size > 0;\n }\n\n const decodedSearchTerm = decodeURIComponent(term as string);\n this.searchTerm = decodedSearchTerm === \"*\" ? \"\" : decodedSearchTerm;\n\n const hasFilters = fixupFilter(filters, this.filters);\n fixupFilter(lists, this.lists);\n fixupFilter(indexes, this.indexes);\n fixupFilter(additionals, this.additionals);\n fixupFilter(stresses, this.stresses);\n fixupFilter(circles, this.circles);\n fixupFilter(paras, this.paras);\n\n this.search(true);\n if (hasFilters) {\n setTimeout(() => this.openFilterControl());\n }\n }\n\n @action\n resetSearch() {\n this.hasSearched = false;\n this.hasError = false;\n this.searchTerm = \"\";\n this.searchedTerm = \"\";\n this.results = [];\n this.isLoading = false;\n this.filtersAreOpen = false;\n }\n\n pageEncode = (thing: Map) => Array.from(thing.entries())\n .filter(arr => arr[1])\n .map(arr => encodeURIComponent(arr[0]))\n .join(\",\");\n apiEncode = (thing: Map) => Array.from(thing.entries())\n .filter(arr => arr[1])\n .map(arr => encodeURIComponent(apiValueNormalizer(arr[0])))\n .join(\",\");\n\n search = flow(function* (suppressHistory = false) {\n console.log(\"Beginning new search\");\n this.pageNumber = 0;\n\n this.callback = (term: string, queryString: string, state: any) => {\n this.results.clear();\n this.total = 0;\n this.reachedLimit = false;\n\n scrollTo(0, 0);\n\n if (!suppressHistory) {\n const uri = `/search/${term}` + ((queryString.length > 0) ? `?${queryString}` : \"\");\n history.pushState({\n term,\n ...state\n },\n document.title,\n uri);\n }\n }\n\n yield this.continue();\n });\n\n continue = flow(function* () {\n if (!!this.currentSearch) {\n try {\n this.currentSearch.cancel();\n } catch (e) {\n console.log(\"Could not cancel search\", e);\n }\n }\n\n this.currentSearch = flow(function* (callback?: (term: string, queryString: string, state: any) => void) {\n this.isLoading = true;\n this.hasError = false;\n\n let term = encodeURIComponent(this.searchTerm.trim());\n term = term == \"\" ? \"*\" : term;\n\n const apiSearchParams = {\n pagesize: this.pageSize.toString(),\n pagenum: this.pageNumber.toString(),\n symbol: this.apiEncode(this.filters),\n list: this.apiEncode(this.lists),\n additional: this.apiEncode(this.additionals),\n index: this.apiEncode(this.indexes),\n stress: this.apiEncode(this.stresses),\n circle: this.apiEncode(this.circles),\n para: this.apiEncode(this.paras),\n };\n const apiQueryString = Object.keys(apiSearchParams)\n .filter(x => apiSearchParams[x].length > 0)\n .map(x => `${x}=${apiSearchParams[x]}`)\n .join(\"&\");\n\n const pageState = {\n symbol: this.pageEncode(this.filters),\n list: this.pageEncode(this.lists),\n additional: this.pageEncode(this.additionals),\n index: this.pageEncode(this.indexes),\n stress: this.pageEncode(this.stresses),\n circle: this.pageEncode(this.circles),\n para: this.pageEncode(this.paras),\n }\n const pageQueryString = Object.keys(pageState)\n .filter(x => pageState[x].length > 0)\n .map(x => `${x}=${pageState[x]}`)\n .join(\"&\");\n\n try {\n const uri = `https://api.gramdict.ru/v1/search/${term}?${apiQueryString}`;\n\n console.log(\"making request\", uri);\n const data: ApiResponse = yield axios.get(uri,\n {\n timeout: 30000,\n responseType: \"text\",\n })\n .then((response) => response.data);\n\n\n if (callback !== undefined) {\n callback(term, pageQueryString, pageState);\n }\n\n this.hasSearched = true;\n\n if (data.entries.length < this.pageSize) {\n console.log(`Got ${data.entries.length} lines which is less than the page size of ${this.pageSize}`);\n this.reachedLimit = true;\n } else {\n console.log(`Got ${data.entries.length} lines`);\n this.reachedLimit = false;\n }\n\n //response adjustments\n if (data.entries && data.entries.constructor === Array) {\n for (let index = 0; index < data.entries.length; ++index) {\n if (data.entries[index].grammar && data.entries[index].grammar.constructor === String) {\n if (data.entries[index].grammar.includes(\"П2\")) {\n data.entries[index].grammar = data.entries[index].grammar.replace(new RegExp(\"П2\"), \"П2\");\n // console.log(\"П2\");\n }\n if (data.entries[index].grammar.includes(\"Р2\")) {\n data.entries[index].grammar = data.entries[index].grammar.replace(new RegExp(\"Р2\"), \"Р2\");\n // console.log(\"Р2\");\n }\n }\n }\n }\n\n this.totalEntriesCount = data[\"total-entries-count\"];\n this.matchingEntriesCount = data[\"matching-entries-count\"];\n this.results.push(data.entries);\n this.total += data.entries.length;\n this.searchedTerm = term;\n this.pageNumber++;\n this.callback = undefined;\n } catch (error) {\n this.reachedLimit = true;\n this.hasError = true;\n console.log(\"Got an error calling the API\", error);\n } finally {\n console.log(\"No longer loading\");\n this.isLoading = false;\n setTimeout(resize, 0);\n }\n }).bind(this)(this.callback);\n\n return this.currentSearch;\n });\n}\n\nexport type Result = {\n lemma: string;\n symbol: string;\n grammar: string;\n list: string;\n}","import * as React from \"react\";\nimport { ApplicationState } from \"../ApplicationState\";\nimport { observer } from \"mobx-react\";\n\nexport interface ILoaderProps\n{\n applicationState: ApplicationState\n}\n\n@observer\nexport class Loader extends React.Component {\n render() {\n if (this.props.applicationState.isLoading) {\n return \n \n \n \n \n ;\n }\n\n if (this.props.applicationState.hasError) {\n return \n There was an error contacting the API: {\n e.preventDefault();\n this.props.applicationState.continue();\n }}>retry?\n ;\n }\n\n return ;\n }\n}","import * as React from \"react\";\nimport { ApplicationState } from \"../ApplicationState\";\nimport { observer } from \"mobx-react\";\n\nexport interface IFilterControlProps\n{\n applicationState: ApplicationState\n}\n\n@observer\nexport class FilterControl extends React.Component {\n render() {\n return this.props.applicationState.toggleFilterControl()}>\n ;\n }\n}","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { reaction } from \"mobx\";\nimport { SearchBox } from \"./SearchBox\";\nimport { ResultsBox } from \"./ResultsBox\";\nimport { ApplicationState, defaultAnimationTime } from \"./ApplicationState\";\nimport { Loader } from \"./Loader/index\";\nimport { FilterControl } from \"./FilterControl\";\nimport { Filters } from \"./Filters\";\nimport { observer } from \"mobx-react\";\nimport AnimateHeight from \"react-animate-height\";\n\nconst applicationState = new ApplicationState();\nconst root = document.documentElement;\n\nconst initialTerm = window[\"term\"];\nconst initialSymbol = window[\"symbol\"];\nconst initialLists = window[\"lists\"];\nconst initialAdditionals = window[\"additionals\"];\nconst initialIndexes = window[\"index\"];\nconst initialStresses = window[\"stress\"];\nconst initialCircles = window[\"circle\"];\nconst initialParas = window[\"para\"];\n\nif (typeof initialTerm !== \"undefined\" && typeof initialSymbol !== \"undefined\" && typeof initialLists !== \"undefined\" && typeof initialAdditionals !== \"undefined\" && typeof initialIndexes !== \"undefined\" && typeof initialStresses !== \"undefined\" && typeof initialCircles !== \"undefined\" && typeof initialParas !== \"undefined\") {\n console.log(\"Loading with initial state\", initialTerm, initialSymbol, initialLists);\n applicationState.applyState(initialTerm, initialSymbol, initialLists, initialAdditionals, initialIndexes, initialStresses, initialCircles, initialParas);\n}\n\nwindow.onpopstate = function (event) {\n if (event.state === null) {\n applicationState.resetSearch();\n resize();\n return;\n }\n\n const { term, symbol, list, additional, index, stress, circle, para } = event.state;\n console.log(\"Should update state\", event.state);\n if (typeof term === \"string\" && typeof symbol === \"string\" && typeof list === \"string\" && typeof additional === \"string\" && typeof index === \"string\" && typeof stress === \"string\" && typeof circle === \"string\" && typeof para === \"string\") {\n console.log(\"will update\")\n applicationState.applyState(term, symbol, list, additional, index, stress, circle, para);\n }\n};\n\nlet hasBegunAnimating = false;\n\nreaction(\n () => applicationState.filtersAreOpen,\n (open, reaction) => {\n if (open) {\n const searchResults = document.getElementById(\"search-results\");\n searchResults.classList.remove(\"scrolling-down\");\n searchResults.classList.add(\"scrolling-up\");\n searchResults.classList.remove(\"filters-invisible\");\n hasBegunAnimating = false;\n }\n });\n\nreaction(\n () => applicationState.hasSearched,\n (value, reaction) => {\n if (!value) {\n return;\n }\n\n console.log(\"Searching has happened, removing original page\");\n const elements = document.getElementsByClassName(\"page\");\n for (let index = 0; index < elements.length; index++) {\n const currentStyle = (elements[index] as any).style;\n const currentDisplay = currentStyle.display;\n currentStyle.display = (currentDisplay === \"\") ? \"none\" : \"\";\n }\n\n const root = document.getElementById(\"search-react-root\");\n root.classList.add(\"has-searched\");\n\n setTimeout(() => {\n let previous = 0;\n let closeTimeout = 0;\n let isTouching = false;\n const filters = document.getElementsByClassName(\"static-filters\")[0];\n const searchResults = document.getElementById(\"search-results\");\n\n function updateFiltersAfterMoving() {\n if (applicationState.filtersAreOpen) {\n const current = searchResults.scrollTop;\n const goingUp = current <= previous;\n const goingDown = current >= previous;\n\n const currentFilterPosition =\n parseInt(document.documentElement.style.getPropertyValue(\"--scroll-position\")) || 0;\n const filterHeight = (filters as any).offsetHeight;\n const pixelsDownFilter = current - currentFilterPosition;\n const percentageThrough = (pixelsDownFilter / filterHeight) * 100;\n const isAtTop = percentageThrough <= 0;\n\n if (goingUp) {\n if (isAtTop) {\n searchResults.classList.remove(\"scrolling-down\");\n searchResults.classList.add(\"scrolling-up\");\n }\n } else {\n if (!searchResults.classList.contains(\"scrolling-down\")) {\n const offset = current + \"px\";\n document.documentElement.style.setProperty(\"--scroll-position\", offset);\n }\n\n searchResults.classList.add(\"scrolling-down\");\n searchResults.classList.remove(\"scrolling-up\");\n\n }\n\n if (goingDown) {\n if (percentageThrough >= 10 && !hasBegunAnimating && !isTouching) {\n if (closeTimeout) {\n clearTimeout(closeTimeout);\n }\n\n closeTimeout = window.setTimeout(() => {\n hasBegunAnimating = true;\n const isWithinBounds = 0 <= percentageThrough && percentageThrough < 100;\n if (isWithinBounds) {\n const multiplier = percentageThrough / 100;\n applicationState.closeFilterControl(\n (filters as any).offsetHeight * multiplier,\n defaultAnimationTime * (1 - multiplier)\n );\n } else {\n applicationState.closeFilterControl();\n }\n },\n 100);\n }\n }\n\n const completelyCovered = percentageThrough >= 100;\n if (completelyCovered) {\n searchResults.classList.add(\"filters-invisible\");\n } else {\n searchResults.classList.remove(\"filters-invisible\");\n }\n\n previous = current;\n }\n }\n\n searchResults.addEventListener(\"touchstart\", () => {\n isTouching = true;\n }, { passive: true });\n searchResults.addEventListener(\"touchend\", () => {\n isTouching = false;\n updateFiltersAfterMoving();\n }, { passive: true });\n searchResults.addEventListener(\"mousedown\", () => {\n isTouching = true;\n }, { passive: true });\n searchResults.addEventListener(\"mouseup\", () => {\n isTouching = false;\n updateFiltersAfterMoving();\n }, { passive: true });\n searchResults.addEventListener(\"touchcancel\", () => {\n isTouching = false;\n updateFiltersAfterMoving();\n }, { passive: true });\n searchResults.addEventListener(\"scroll\", () => updateFiltersAfterMoving(), { passive: true });\n });\n }\n);\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\nexport function resize() {\n const elements = document.getElementsByClassName(\"page\");\n const first: any = elements[0];\n if (!!first) {\n const toCenter = document.getElementsByClassName(\"centerer\");\n for (let index = 0; index < toCenter.length; index++) {\n (toCenter[index] as any).style.width = `${first.offsetWidth}px`;\n }\n }\n}\n\nwindow.addEventListener('resize', debounce(resize, 20, false));\n\n@observer\nclass MyComponent extends React.Component {\n render() {\n return [\n \n \n \n \n Содержание\n \n {applicationState.hasSearched && } \n \n \n \n \n ,\n \n ];\n }\n}\n\nReactDOM.render(, document.getElementById(\"search-react-root\"));\n\nsetTimeout(resize, 0);"],"sourceRoot":""}