From f8242e5eba62438983929d12bde02baa7151e410 Mon Sep 17 00:00:00 2001 From: Shinya Sasaki Date: Fri, 19 Jun 2020 10:31:48 +0900 Subject: [PATCH] Release 1.0.1 --- dist/LICENSE | 22 +++++++++++++++++++++ dist/README.md | 40 ++++++++++++++++++++++++++++++++++++++ dist/dark.js | 2 ++ dist/dark.js.map | 1 + dist/img/EPICS_Logo.png | Bin 0 -> 2533 bytes dist/light.js | 2 ++ dist/light.js.map | 1 + dist/module.js | 2 ++ dist/module.js.map | 1 + dist/plugin.json | 31 +++++++++++++++++++++++++++++ dist/styles/dark.css | 1 + dist/styles/dark.css.map | 1 + dist/styles/light.css | 1 + dist/styles/light.css.map | 1 + 14 files changed, 106 insertions(+) create mode 100644 dist/LICENSE create mode 100644 dist/README.md create mode 100644 dist/dark.js create mode 100644 dist/dark.js.map create mode 100644 dist/img/EPICS_Logo.png create mode 100644 dist/light.js create mode 100644 dist/light.js.map create mode 100644 dist/module.js create mode 100644 dist/module.js.map create mode 100644 dist/plugin.json create mode 100644 dist/styles/dark.css create mode 100644 dist/styles/dark.css.map create mode 100644 dist/styles/light.css create mode 100644 dist/styles/light.css.map diff --git a/dist/LICENSE b/dist/LICENSE new file mode 100644 index 0000000..ed4fbf8 --- /dev/null +++ b/dist/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Grafana +Copyright (c) 2019-2020 Shinya Sasaki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dist/README.md b/dist/README.md new file mode 100644 index 0000000..93a7fa6 --- /dev/null +++ b/dist/README.md @@ -0,0 +1,40 @@ +# EPICS Archiver Appliance Datasource + +Visualize EPICS Archiver Appliance on Grafana. + +See [Archiver Appliance site](https://slacmshankar.github.io/epicsarchiver_docs/index.html) for more information about Archiver Appliance. + +## Features +- Select multiple PVs by using Regex (Only supports wildcard pattern like `PV.*` and alternation pattern like `PV(1|2)`) +- Legend alias with regular expression pattern +- Data retrieval with data processing (See [Archiver Appliance User Guide](https://slacmshankar.github.io/epicsarchiver_docs/userguide.html) for processing of data) +- Using PV names for Grafana variables +- Transform your data with processing functions + +## Installation + +Clone this plugin into grafana plugins directory; the default is /var/lib/grafana/plugins. + +## Documentaion +Documentation is available at [https://sasaki77.github.io/archiverappliance-datasource](https://sasaki77.github.io/archiverappliance-datasource). + +## Dev setup + +It is recommend to use node 12.13.0 + +``` +npm install -g yarn +yarn install +yarn dev +``` + +[grafana-toolkit](https://github.com/grafana/grafana/tree/master/packages/grafana-toolkit) is used to develop the plugin. Please refer grafana-toolkit documentation for more information. + +## Build documentation + +``` +python -m venv env +source env/bin/activate +pip install sphinx commonmark recommonmark sphinx_rtd_theme +make html +``` \ No newline at end of file diff --git a/dist/dark.js b/dist/dark.js new file mode 100644 index 0000000..d073744 --- /dev/null +++ b/dist/dark.js @@ -0,0 +1,2 @@ +define((function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=74)}({74:function(e,t,n){}})})); +//# sourceMappingURL=dark.js.map \ No newline at end of file diff --git a/dist/dark.js.map b/dist/dark.js.map new file mode 100644 index 0000000..e7fc78b --- /dev/null +++ b/dist/dark.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap"],"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"],"mappings":"sCACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,IAIjBlC,EAAoBA,EAAoBmC,EAAI,I","file":"dark.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 = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 74);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/img/EPICS_Logo.png b/dist/img/EPICS_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..28bb94017f1298fb980484c4f9fc9111784a06ab GIT binary patch literal 2533 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 R^MJPjcGiwojY#in{{sGvqzM23 literal 0 HcmV?d00001 diff --git a/dist/light.js b/dist/light.js new file mode 100644 index 0000000..b675dac --- /dev/null +++ b/dist/light.js @@ -0,0 +1,2 @@ +define((function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=73)}({73:function(e,t,n){}})})); +//# sourceMappingURL=light.js.map \ No newline at end of file diff --git a/dist/light.js.map b/dist/light.js.map new file mode 100644 index 0000000..afdbb86 --- /dev/null +++ b/dist/light.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap"],"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"],"mappings":"sCACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,IAIjBlC,EAAoBA,EAAoBmC,EAAI,I","file":"light.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 = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 73);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/module.js b/dist/module.js new file mode 100644 index 0000000..d71a6aa --- /dev/null +++ b/dist/module.js @@ -0,0 +1,2 @@ +define(["react","lodash","@grafana/ui","@grafana/data","@grafana/runtime"],(function(e,t,n,r,o){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=75)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t){e.exports=r},function(e,t){e.exports=o},function(e,t,n){e.exports=n(57)()},function(e,t,n){"use strict";e.exports=n(56).default},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var r=n(16),o=n(34),i=n(35),u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":u&&u in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(17),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){var r=n(15),o=n(19);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e===t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!0;var u,a,s={};for(u=0,a=n.length;u-1&&e%1==0&&e<=9007199254740991}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e2?t[2]:void 0;for(c&&i(t[0],t[1],c)&&(r=1);++n0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(18),o=n(11),i=n(20),u=n(7);e.exports=function(e,t,n){if(!u(n))return!1;var a=typeof t;return!!("number"==a?o(n)&&i(t,n.length):"string"==a&&t in n)&&r(n[t],e)}},function(e,t,n){var r=n(43),o=n(53),i=n(11);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t,n){var r=n(21),o=n(44),i=n(46),u=n(47),a=n(20),s=n(49),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),l=!n&&o(e),f=!n&&!l&&u(e),p=!n&&!l&&!f&&s(e),g=n||l||f||p,d=g?r(e.length,String):[],h=d.length;for(var m in e)!t&&!c.call(e,m)||g&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||a(m,h))||d.push(m);return d}},function(e,t,n){var r=n(45),o=n(8),i=Object.prototype,u=i.hasOwnProperty,a=i.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return o(e)&&u.call(e,"callee")&&!a.call(e,"callee")};e.exports=s},function(e,t,n){var r=n(9),o=n(8);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){(function(e){var r=n(10),o=n(48),i=t&&!t.nodeType&&t,u=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=u&&u.exports===i?r.Buffer:void 0,s=(a?a.isBuffer:void 0)||o;e.exports=s}).call(this,n(22)(e))},function(e,t){e.exports=function(){return!1}},function(e,t,n){var r=n(50),o=n(51),i=n(52),u=i&&i.isTypedArray,a=u?o(u):r;e.exports=a},function(e,t,n){var r=n(9),o=n(19),i=n(8),u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u["[object Arguments]"]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u["[object Function]"]=u["[object Map]"]=u["[object Number]"]=u["[object Object]"]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!u[r(e)]}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(17),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,u=i&&i.exports===o&&r.process,a=function(){try{var e=i&&i.require&&i.require("util").types;return e||u&&u.binding&&u.binding("util")}catch(e){}}();e.exports=a}).call(this,n(22)(e))},function(e,t,n){var r=n(7),o=n(54),i=n(55),u=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var a in e)("constructor"!=a||!t&&u.call(e,a))&&n.push(a);return n}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=s(n(5)),i=s(n(59)),u=s(n(60)),a=n(67);function s(e){return e&&e.__esModule?e:{default:e}}function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t0&&!1===this.justPressedUpDown&&!1===this.justMouseEntered&&this.highlightFirstSuggestion():this.willRenderSuggestions(e)?this.state.isCollapsed&&!this.justSelectedSuggestion&&this.revealSuggestions():this.resetHighlightedSuggestion()}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,r=n.suggestions,o=n.onSuggestionHighlighted,u=n.highlightFirstSuggestion;if(!(0,i.default)(r,e.suggestions)&&r.length>0&&u)this.highlightFirstSuggestion();else if(o){var a=this.getHighlightedSuggestion();a!=t.highlightedSuggestion&&o({suggestion:a})}}},{key:"componentWillUnmount",value:function(){document.removeEventListener("mousedown",this.onDocumentMouseDown),document.removeEventListener("mouseup",this.onDocumentMouseUp)}},{key:"updateHighlightedSuggestion",value:function(e,t,n){var r=this;this.setState((function(o){var i=o.valueBeforeUpDown;return null===t?i=null:null===i&&void 0!==n&&(i=n),{highlightedSectionIndex:e,highlightedSuggestionIndex:t,highlightedSuggestion:null===t?null:r.getSuggestion(e,t),valueBeforeUpDown:i}}))}},{key:"resetHighlightedSuggestion",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.setState((function(t){var n=t.valueBeforeUpDown;return{highlightedSectionIndex:null,highlightedSuggestionIndex:null,highlightedSuggestion:null,valueBeforeUpDown:e?null:n}}))}},{key:"revealSuggestions",value:function(){this.setState({isCollapsed:!1})}},{key:"closeSuggestions",value:function(){this.setState({highlightedSectionIndex:null,highlightedSuggestionIndex:null,highlightedSuggestion:null,valueBeforeUpDown:null,isCollapsed:!0})}},{key:"getSuggestion",value:function(e,t){var n=this.props,r=n.suggestions,o=n.multiSection,i=n.getSectionSuggestions;return o?i(r[e])[t]:r[t]}},{key:"getHighlightedSuggestion",value:function(){var e=this.state,t=e.highlightedSectionIndex,n=e.highlightedSuggestionIndex;return null===n?null:this.getSuggestion(t,n)}},{key:"getSuggestionValueByIndex",value:function(e,t){return(0,this.props.getSuggestionValue)(this.getSuggestion(e,t))}},{key:"getSuggestionIndices",value:function(e){var t=e.getAttribute("data-section-index"),n=e.getAttribute("data-suggestion-index");return{sectionIndex:"string"==typeof t?parseInt(t,10):null,suggestionIndex:parseInt(n,10)}}},{key:"findSuggestionElement",value:function(e){var t=e;do{if(t.getAttribute&&null!==t.getAttribute("data-suggestion-index"))return t;t=t.parentNode}while(null!==t);throw console.error("Clicked element:",e),new Error("Couldn't find suggestion element")}},{key:"maybeCallOnChange",value:function(e,t,n){var r=this.props.inputProps,o=r.value,i=r.onChange;t!==o&&i(e,{newValue:t,method:n})}},{key:"willRenderSuggestions",value:function(e){var t=e.suggestions,n=e.inputProps,r=e.shouldRenderSuggestions,o=n.value;return t.length>0&&r(o)}},{key:"getQuery",value:function(){var e=this.props.inputProps.value,t=this.state.valueBeforeUpDown;return(null===t?e:t).trim()}},{key:"render",value:function(){var e=this,t=this.props,n=t.suggestions,o=t.renderInputComponent,i=t.onSuggestionsFetchRequested,s=t.renderSuggestion,c=t.inputProps,l=t.multiSection,f=t.renderSectionTitle,g=t.id,d=t.getSectionSuggestions,h=t.theme,m=t.getSuggestionValue,y=t.alwaysRenderSuggestions,v=t.highlightFirstSuggestion,b=this.state,w=b.isFocused,O=b.isCollapsed,P=b.highlightedSectionIndex,j=b.highlightedSuggestionIndex,x=b.valueBeforeUpDown,I=y?S:this.props.shouldRenderSuggestions,C=c.value,_=c.onFocus,R=c.onKeyDown,E=this.willRenderSuggestions(this.props),k=y||w&&!O&&E,D=k?n:[],F=p({},c,{onFocus:function(t){if(!e.justSelectedSuggestion&&!e.justClickedOnSuggestionsContainer){var n=I(C);e.setState({isFocused:!0,isCollapsed:!n}),_&&_(t),n&&i({value:C,reason:"input-focused"})}},onBlur:function(t){e.justClickedOnSuggestionsContainer?e.input.focus():(e.blurEvent=t,e.justSelectedSuggestion||(e.onBlur(),e.onSuggestionsClearRequested()))},onChange:function(t){var n=t.target.value,r=I(n);e.maybeCallOnChange(t,n,"type"),e.suggestionsContainer&&(e.suggestionsContainer.scrollTop=0),e.setState(p({},v?{}:{highlightedSectionIndex:null,highlightedSuggestionIndex:null,highlightedSuggestion:null},{valueBeforeUpDown:null,isCollapsed:!r})),r?i({value:n,reason:"input-changed"}):e.onSuggestionsClearRequested()},onKeyDown:function(t,r){var o=t.keyCode;switch(o){case 40:case 38:if(O)I(C)&&(i({value:C,reason:"suggestions-revealed"}),e.revealSuggestions());else if(n.length>0){var u,a=r.newHighlightedSectionIndex,s=r.newHighlightedItemIndex;u=null===s?null===x?C:x:e.getSuggestionValueByIndex(a,s),e.updateHighlightedSuggestion(a,s,C),e.maybeCallOnChange(t,u,40===o?"down":"up")}t.preventDefault(),e.justPressedUpDown=!0,setTimeout((function(){e.justPressedUpDown=!1}));break;case 13:if(229===t.keyCode)break;var c=e.getHighlightedSuggestion();if(k&&!y&&e.closeSuggestions(),null!=c){var l=m(c);e.maybeCallOnChange(t,l,"enter"),e.onSuggestionSelected(t,{suggestion:c,suggestionValue:l,suggestionIndex:j,sectionIndex:P,method:"enter"}),e.justSelectedSuggestion=!0,setTimeout((function(){e.justSelectedSuggestion=!1}))}break;case 27:k&&t.preventDefault();var f=k&&!y;null===x?f||(e.maybeCallOnChange(t,"","escape"),I("")?i({value:"",reason:"escape-pressed"}):e.onSuggestionsClearRequested()):e.maybeCallOnChange(t,x,"escape"),f?(e.onSuggestionsClearRequested(),e.closeSuggestions()):e.resetHighlightedSuggestion()}R&&R(t)}}),M={query:this.getQuery()};return r.default.createElement(u.default,{multiSection:l,items:D,renderInputComponent:o,renderItemsContainer:this.renderSuggestionsContainer,renderItem:s,renderItemData:M,renderSectionTitle:f,getSectionItems:d,highlightedSectionIndex:P,highlightedItemIndex:j,inputProps:F,itemProps:this.itemProps,theme:(0,a.mapToAutowhateverTheme)(h),id:g,ref:this.storeAutowhateverRef})}}])&&g(n.prototype,o),s&&g(n,s),l}(r.Component);t.default=w,b(w,"propTypes",{suggestions:o.default.array.isRequired,onSuggestionsFetchRequested:function(e,t){var n=e[t];if("function"!=typeof n)throw new Error("'onSuggestionsFetchRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp")},onSuggestionsClearRequested:function(e,t){var n=e[t];if(!1===e.alwaysRenderSuggestions&&"function"!=typeof n)throw new Error("'onSuggestionsClearRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp")},onSuggestionSelected:o.default.func,onSuggestionHighlighted:o.default.func,renderInputComponent:o.default.func,renderSuggestionsContainer:o.default.func,getSuggestionValue:o.default.func.isRequired,renderSuggestion:o.default.func.isRequired,inputProps:function(e,t){var n=e[t];if(!Object.prototype.hasOwnProperty.call(n,"value"))throw new Error("'inputProps' must have 'value'.");if(!Object.prototype.hasOwnProperty.call(n,"onChange"))throw new Error("'inputProps' must have 'onChange'.")},shouldRenderSuggestions:o.default.func,alwaysRenderSuggestions:o.default.bool,multiSection:o.default.bool,renderSectionTitle:function(e,t){var n=e[t];if(!0===e.multiSection&&"function"!=typeof n)throw new Error("'renderSectionTitle' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp")},getSectionSuggestions:function(e,t){var n=e[t];if(!0===e.multiSection&&"function"!=typeof n)throw new Error("'getSectionSuggestions' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp")},focusInputOnSuggestionClick:o.default.bool,highlightFirstSuggestion:o.default.bool,theme:o.default.object,id:o.default.string}),b(w,"defaultProps",{renderSuggestionsContainer:function(e){var t=e.containerProps,n=e.children;return r.default.createElement("div",t,n)},shouldRenderSuggestions:function(e){return e.trim().length>0},alwaysRenderSuggestions:!1,multiSection:!1,focusInputOnSuggestionClick:!0,highlightFirstSuggestion:!1,theme:a.defaultTheme,id:"1"})},function(e,t,n){"use strict";var r=n(58);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";e.exports=function(e,t){if(e===t)return!0;if(!e||!t)return!1;var n=e.length;if(t.length!==n)return!1;for(var r=0;re.length)&&(t=e.length);for(var n=0,r=new Array(t);nr+t.offsetHeight&&(r=n+e.offsetHeight-t.offsetHeight),r!==t.scrollTop&&(t.scrollTop=r)}}},{key:"render",value:function(){var e=this.theme,t=this.props,n=t.id,o=t.multiSection,i=t.renderInputComponent,u=t.renderItemsContainer,a=t.highlightedSectionIndex,s=t.highlightedItemIndex,c=this.state.isInputFocused,l=o?this.renderSections():this.renderItems(),f=null!==l,g=this.getItemId(a,s),d="react-autowhatever-".concat(n),h=p({role:"combobox","aria-haspopup":"listbox","aria-owns":d,"aria-expanded":f},e("react-autowhatever-".concat(n,"-container"),"container",f&&"containerOpen"),{},this.props.containerProps),m=i(p({type:"text",value:"",autoComplete:"off","aria-autocomplete":"list","aria-controls":d,"aria-activedescendant":g},e("react-autowhatever-".concat(n,"-input"),"input",f&&"inputOpen",c&&"inputFocused"),{},this.props.inputProps,{onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.props.inputProps.onKeyDown&&this.onKeyDown,ref:this.storeInputReference})),y=u({containerProps:p({id:d,role:"listbox"},e("react-autowhatever-".concat(n,"-items-container"),"itemsContainer",f&&"itemsContainerOpen"),{ref:this.storeItemsContainerReference}),children:l});return r.default.createElement("div",h,m,y)}}])&&m(n.prototype,o),c&&m(n,c),f}(r.Component);t.default=j,O(j,"propTypes",{id:o.default.string,multiSection:o.default.bool,renderInputComponent:o.default.func,renderItemsContainer:o.default.func,items:o.default.array.isRequired,renderItem:o.default.func,renderItemData:o.default.object,renderSectionTitle:o.default.func,getSectionItems:o.default.func,containerProps:o.default.object,inputProps:o.default.object,itemProps:o.default.oneOfType([o.default.object,o.default.func]),highlightedSectionIndex:o.default.number,highlightedItemIndex:o.default.number,theme:o.default.oneOfType([o.default.object,o.default.array])}),O(j,"defaultProps",{id:"1",multiSection:!1,renderInputComponent:function(e){return r.default.createElement("input",e)},renderItemsContainer:function(e){var t=e.containerProps,n=e.children;return r.default.createElement("div",t,n)},renderItem:function(){throw new Error("`renderItem` must be provided")},renderItemData:P,renderSectionTitle:function(){throw new Error("`renderSectionTitle` must be provided")},getSectionItems:function(){throw new Error("`getSectionItems` must be provided")},containerProps:P,inputProps:P,itemProps:P,highlightedSectionIndex:null,highlightedItemIndex:null,theme:{container:"react-autowhatever__container",containerOpen:"react-autowhatever__container--open",input:"react-autowhatever__input",inputOpen:"react-autowhatever__input--open",inputFocused:"react-autowhatever__input--focused",itemsContainer:"react-autowhatever__items-container",itemsContainerOpen:"react-autowhatever__items-container--open",itemsList:"react-autowhatever__items-list",item:"react-autowhatever__item",itemFirst:"react-autowhatever__item--first",itemHighlighted:"react-autowhatever__item--highlighted",sectionContainer:"react-autowhatever__section-container",sectionContainerFirst:"react-autowhatever__section-container--first",sectionTitle:"react-autowhatever__section-title"}})},function(e,t,n){"use strict";var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};e.exports=function(e){var t=e.data,n=e.multiSection;function o(e){var o=r(e,2),i=o[0],u=o[1];return n?null===u||u===t[i]-1?null===(i=function(e){for(null===e?e=0:e++;e=0&&0===t[e];)e--;return-1===e?null:e}(i))?[null,null]:[i,t[i]-1]:[i,u-1]:0===t||0===u?[null,null]:null===u?[null,t-1]:[null,u-1]},isLast:function(e){return null===o(e)[1]}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)u.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return u}function f(){for(var e=[],t=0;t0&&(n.headers.Authorization=t.basicAuth),n}return u(t,e),t.prototype.query=function(e){return s(this,void 0,Promise,(function(){var t,n,r,o=this;return c(this,(function(i){return t=this.buildQueryParameters(e),(n=g.a.filter(t,(function(e){return!e.hide}))).length<=0?[2,Promise.resolve({data:[]})]:(r=g.a.map(n,(function(e){return o.targetProcess(e)})),[2,Promise.all(r).then((function(e){return o.postProcess(e)}))])}))}))},t.prototype.targetProcess=function(e){var t=this;return this.buildUrls(e).then((function(e){return t.doMultiUrlRequests(e)})).then((function(e){return t.responseParse(e)})).then((function(n){return t.setAlias(n,e)})).then((function(n){return t.applyFunctions(n,e)}))},t.prototype.postProcess=function(e){return{data:g.a.flatten(e)}},t.prototype.buildUrls=function(e){var t=this,n=Number(e.options.maxNumPVs)||100,r=e.options.binInterval||e.interval,o=this.parseTargetPV(e.target),i=g.a.map(o,(function(r){return e.regex?t.pvNamesFindQuery(r,n):Promise.resolve([r])}));return Promise.all(i).then((function(o){return new Promise((function(i,u){var a,s=g.a.slice(g.a.uniq(g.a.flatten(o)),0,n);try{a=g.a.map(s,(function(n){return t.buildUrl(n,e.operator,r,e.from,e.to)}))}catch(e){u(e)}i(a)}))}))},t.prototype.buildUrl=function(e,t,n,r,o){var i=function(){if("raw"===t||""===n)return""+e;if(g.a.includes(["",void 0],t))return"mean_"+n+"("+e+")";if(g.a.includes(I,t))return t+"_"+n+"("+e+")";throw new Error("Data Processing Operator is invalid.")}();return this.url+"/data/getData.json?pv="+encodeURIComponent(i)+"&from="+r.toISOString()+"&to="+o.toISOString()},t.prototype.doMultiUrlRequests=function(e){var t=this,n=g.a.map(e,(function(e){return t.doRequest({url:e,method:"GET"})}));return Promise.all(n)},t.prototype.responseParse=function(e){var t=g.a.map(e,(function(e){return g.a.map(e.data,(function(e){var t=g.a.map(e.data,(function(e){return e.val})),n=g.a.map(e.data,(function(e){return 1e3*e.secs+g.a.floor(e.nanos/1e6)}));return new r.MutableDataFrame({name:e.meta.name,fields:[{name:"time",type:r.FieldType.time,values:n},{name:"value",type:r.FieldType.number,values:t,config:{displayName:e.meta.name}}]})}))}));return Promise.resolve(g.a.flatten(t))},t.prototype.setAlias=function(e,t){return s(this,void 0,Promise,(function(){var n,o;return c(this,(function(i){return t.alias?(t.aliasPattern&&(n=new RegExp(t.aliasPattern,"")),o=g.a.map(e,(function(e){var o=t.alias,i=e.fields[1],u=Object(r.getFieldDisplayName)(i,e);n&&(o=u.replace(n,o));var s=a(a({},i),{config:a(a({},i.config),{displayName:o}),state:a(a({},i.state),{displayName:o})});return new r.MutableDataFrame(a(a({},e),{fields:[e.fields[0],s]}))})),[2,Promise.resolve(o)]):[2,Promise.resolve(e)]}))}))},t.prototype.applyFunctions=function(e,t){return void 0===t.functions?Promise.resolve(e):this.applyFunctionDefs(t.functions,["Transform","Filter Series"],e)},t.prototype.testDatasource=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){return[2,{status:"success",message:"Data source is working",title:"Success"}]}))}))},t.prototype.pvNamesFindQuery=function(e,t){if(!e)return Promise.resolve([]);var n=this.url+"/bpl/getMatchingPVs?limit="+t+"®ex="+encodeURIComponent(e);return this.doRequest({url:n,method:"GET"}).then((function(e){return e.data}))},t.prototype.metricFindQuery=function(e){var t=this,n=l(Object(o.getTemplateSrv)().replace(e,void 0,"regex").split("?",2),2),r=n[0],i=n[1],u=this.parseTargetPV(r),a=100;if(i){var s=new URLSearchParams(i).get("limit");if(s){var c=parseInt(s,10);a=Number.isInteger(c)?c:100}}var f=g.a.map(u,(function(e){return t.pvNamesFindQuery(e,a)}));return Promise.all(f).then((function(e){var t=g.a.slice(g.a.uniq(g.a.flatten(e)),0,a);return g.a.map(t,(function(e){return{text:e}}))}))},t.prototype.doRequest=function(e){var t=a({},e);return t.withCredentials=this.withCredentials,t.headers=this.headers,Object(o.getBackendSrv)().datasourceRequest(t)},t.prototype.buildQueryParameters=function(e){var t=this,n=Object(o.getTemplateSrv)(),r=a({},e);if(r.targets=g.a.filter(r.targets,(function(e){return""!==e.target&&void 0!==e.target})),r.targets.length<=0)return[];var i=new Date(String(r.range.from)),u=new Date(String(r.range.to)),s=u.getTime()-i.getTime(),c=r.maxDataPoints||2e3,l=g.a.floor(s/(1e3*c)),f=l>=1?String(l):"";return g.a.map(r.targets,(function(e){var o=g.a.map(e.functions,(function(e){var t=e;return t.params=g.a.map(t.params,(function(e){return n.replace(e,r.scopedVars,"regex")})),t}));return{target:n.replace(e.target,r.scopedVars,"regex"),refId:e.refId,hide:e.hide,alias:n.replace(e.alias,r.scopedVars,"regex"),operator:n.replace(e.operator,r.scopedVars,"regex"),functions:o,regex:e.regex,aliasPattern:e.aliasPattern,options:t.getOptions(e.functions),from:i,to:u,interval:f}}))},t.prototype.parseTargetPV=function(e){var t=g.a.split(e,/(\(.*?\))/),n=[""];return g.a.forEach(t,(function(e,t){if(t%2!=0){var r=g.a.split(g.a.trim(e,"()"),"|"),o=g.a.map(n,(function(e){return g.a.map(r,(function(t){return""+e+t}))}));n=g.a.flatten(o)}else n=g.a.map(n,(function(t){return""+t+e}))})),n},t.prototype.applyFunctionDefs=function(e,t,n){var r=this.pickFuncDefsFromCategories(e,t);return g.a.reduce(r,(function(e,t){return e.then((function(e){var n=P(t.def,t.params).bindFunction(v.aaFunctions);return Promise.resolve(n(e))}))}),Promise.resolve(n))},t.prototype.getOptions=function(e){var t=this.pickFuncDefsFromCategories(e,["Options"]);return g.a.reduce(t,(function(e,t){var n;return n=l(t.params,1),e[t.def.name]=n[0],e}),{})},t.prototype.pickFuncDefsFromCategories=function(e,t){var n=j(),r=g.a.reduce(t,(function(e,t){return g.a.concat(e,g.a.map(n[t],"name"))}),[]);return g.a.filter(e,(function(e){return g.a.includes(r,e.def.name)}))},t}(r.DataSourceApi),_=n(23),R=n.n(_),E=n(0),k=n.n(E),D=n(2),F=n(6),M=n.n(F),T=function(e){return e.description?k.a.createElement("span",{className:"pointer fa fa-question-circle",onClick:e.onDescriptionShow}):k.a.createElement("span",{className:"pointer fa fa-question-circle",onClick:function(){window.open("https://sasaki77.github.io/archiverappliance-datasource/functions.html#"+e.name,"_blank")}})},q=function(e){var t=e.func,n=e.index,r=e.onMoveLeft,o=e.onMoveRight,i=e.onRemove,u=e.onDescriptionShow;return k.a.createElement("div",{style:{display:"flex",width:"60px",justifyContent:"space-between"}},k.a.createElement("span",{className:"pointer fa fa-arrow-left",onClick:function(){return r(t,n)}}),k.a.createElement(T,{name:t.def.name,description:t.def.description,onDescriptionShow:u}),k.a.createElement("span",{className:"pointer fa fa-remove",onClick:function(){return i(t,n)}}),k.a.createElement("span",{className:"pointer fa fa-arrow-right",onClick:function(){return o(t,n)}}))},A=function(e){function t(t){var n=e.call(this,t)||this;return n.triggerRef=k.a.createRef(),n.renderContent=function(e){var t=e.updatePopperPosition,r=n.props,o=r.onMoveLeft,i=r.onMoveRight,u=r.func.def,s=u.name,c=u.description;return n.state.showingDescription?k.a.createElement("div",{style:{overflow:"auto",maxHeight:"30rem",textAlign:"left",fontWeight:"normal"}},k.a.createElement("h4",{style:{color:"white"}}," ",s," "),k.a.createElement("div",null,c)):k.a.createElement(q,a({},n.props,{onMoveLeft:function(){o(n.props.func,n.props.index),t()},onMoveRight:function(){i(n.props.func,n.props.index),t()},onDescriptionShow:function(){n.setState({showingDescription:!0},(function(){t()}))}}))},n.state={showingDescription:!1},n}return u(t,e),t.prototype.render=function(){var e=this;return k.a.createElement(D.PopoverController,{content:this.renderContent,placement:"top",hideAfter:300},(function(t,n,r){return k.a.createElement(k.a.Fragment,null,e.triggerRef&&k.a.createElement(D.Popover,a({},r,{referenceElement:e.triggerRef.current||void 0,wrapperClassName:"popper",className:"popper__background",onMouseLeave:function(){e.setState({showingDescription:!1}),n()},onMouseEnter:t,renderArrow:function(e){var t=e.arrowProps,n=e.placement;return k.a.createElement("div",a({className:"popper__arrow","data-placement":n},t))}})),k.a.createElement("span",{ref:e.triggerRef,onClick:r.show?n:t,onMouseLeave:function(){n(),e.setState({showingDescription:!1})},style:{cursor:"pointer"}},e.props.func.def.name))}))},t}(k.a.PureComponent),N=n(24),V=n.n(N),H=function(e){return e},U=function(e){return k.a.createElement("span",null,e)},B=function(e){function t(t){var n=e.call(this,t)||this;return n.state={suggestions:[],focused:!1},n.onChange=function(e,t,r){var o=r.newValue;n.props.onChange(e,String(o))},n.onKeydownEnter=function(e){13===e.keyCode&&e.currentTarget.blur()},n.onPVSuggestionsFetchRequested=function(e,t){e.value;var r=void 0===t?[]:t;n.setState({suggestions:r})},n.onPVSuggestionsClearRequested=function(){n.setState({suggestions:[]})},n.onSuggestionsSelected=function(e,t){t.suggestion,t.suggestionValue,t.suggestionIndex,t.sectionIndex;"enter"===t.method&&e.currentTarget.blur()},n.onFocus=function(e){n.setState({focused:!0})},n.onBlur=function(e){var t=n.props.onRunQuery;n.setState({focused:!1}),t()},n.calcInputWidth=function(e,t,n){if(e)return"90px";var r=t.length;return r<1?n.length+"ch":r+"ch"},n}return u(t,e),t.prototype.render=function(){var e=this,t=this.state,n=t.suggestions,r=t.focused,o=this.props,i=o.param,u=o.paramDef,a=o.index,s=this.calcInputWidth(r,i,u.name);return k.a.createElement("div",{className:"aa-func-param"},k.a.createElement(M.a,{suggestions:n,onSuggestionsFetchRequested:function(t){return e.onPVSuggestionsFetchRequested(t,u.options)},onSuggestionsClearRequested:this.onPVSuggestionsClearRequested,onSuggestionSelected:this.onSuggestionsSelected,getSuggestionValue:H,renderSuggestion:U,inputProps:{value:i,className:"tight-form-func-param",placeholder:u?u.name:"",spellCheck:!1,onChange:function(t,n){return e.onChange(a,t,n)},onBlur:this.onBlur,onKeyDown:this.onKeydownEnter,onFocus:this.onFocus,style:{width:s,fontFamily:'Consolas, "Courier New", Courier, Monaco, monospace'}}}))},t}(k.a.PureComponent),L=function(e){function t(t){var n=e.call(this,t)||this;return n.onParamChange=function(e,t){var r=n.props,o=r.func,i=r.index,u=f(o.params);u.splice(e,1,t);var s=a(a({},o),{params:u});n.props.onChange(s,i)},n}return u(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.func,r=t.onRunQuery,o=n.params,i=n.def,u=V()(o,i.params);return k.a.createElement(k.a.Fragment,null,u&&u.map((function(t,n){var o=l(t,2),i=o[0],u=o[1];if(void 0!==i&&void 0!==u)return k.a.createElement(k.a.Fragment,{key:u.name},n>0?k.a.createElement("span",{className:"comma"},", "):"",k.a.createElement("div",null,k.a.createElement(B,{param:i,paramDef:u,index:n,onRunQuery:r,onChange:e.onParamChange})))})))},t}(k.a.PureComponent),Q=function(e){function t(t){return e.call(this,t)||this}return u(t,e),t.prototype.render=function(){var e=this.props,t=e.onMoveLeft,n=e.onMoveRight,r=e.onRemove,o=e.func,i=e.index,u=e.onChange,a=e.onRunQuery;return k.a.createElement("span",{className:"gf-form-label query-part"},k.a.createElement(A,{func:o,index:i,onMoveLeft:t,onMoveRight:n,onRemove:r}),k.a.createElement("span",null,"("),k.a.createElement(L,{func:o,index:i,onChange:u,onRunQuery:a}),k.a.createElement("span",null,")"))},t}(k.a.PureComponent),K=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e,t){e.length<2||n.props.addFunc(e[1])},n}return u(t,e),t.prototype.render=function(){var e=function(e){return Object(p.reduce)(e,(function(e,t,n){var r=[];return Object(p.each)(t,(function(e){return r.push({label:e.name,value:e})})),e.push({label:n,value:n,children:r}),e}),[])}(j());return k.a.createElement(D.ButtonCascader,{options:e,value:void 0,onChange:this.onChange},"Add")},t}(k.a.PureComponent),W=function(e,t,n){var r=f(e),o=r.splice(t,1)[0];return r.splice(n,0,o),r},G=function(e){function t(t){var n=e.call(this,t)||this;return n.addFunction=function(e){var t=n.props,r=t.onChange,o=t.onRunQuery,i=P(e,e.defaultParams),u=f(n.props.funcs);u.push(i),r(u),(i.params.length||0===i.def.params.length)&&o()},n.handleRemoveFunction=function(e,t){var r=n.props,o=r.onChange,i=r.onRunQuery,u=f(n.props.funcs);u.splice(t,1),o(u),i()},n.handleMoveLeft=function(e,t){if(!(t<1)){var r=n.props,o=r.onChange,i=r.onRunQuery;o(W(n.props.funcs,t,t-1)),i()}},n.handleMoveRight=function(e,t){if(!(t>=n.props.funcs.length-1)){var r=n.props,o=r.onChange,i=r.onRunQuery;o(W(n.props.funcs,t,t+1)),i()}},n.onFuncChange=function(e,t){var r=n.props.onChange,o=f(n.props.funcs);o.splice(t,1,e),r(o)},n}return u(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.funcs,r=t.onRunQuery;return k.a.createElement("div",{className:"gf-form-inline"},k.a.createElement("div",{className:"gf-form"},k.a.createElement(D.InlineFormLabel,{width:6,className:"query-keyword"},"Functions")),k.a.createElement("div",{className:"gf-form"},n&&n.map((function(t,n){return k.a.createElement(Q,{key:n,index:n,func:t,onMoveLeft:e.handleMoveLeft,onMoveRight:e.handleMoveRight,onRemove:e.handleRemoveFunction,onChange:e.onFuncChange,onRunQuery:r})}))),k.a.createElement("div",{className:"gf-form"},k.a.createElement(K,{addFunc:this.addFunction})),k.a.createElement("div",{className:"gf-form gf-form--grow"},k.a.createElement("div",{className:"gf-form-label gf-form-label--grow"})))},t}(k.a.PureComponent),z=function(e){return e},Y=function(e){return k.a.createElement("span",null,e)},J=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={pvSuggestions:[],oprSuggestions:[]},t.onPVChange=function(e,n){var r=n.newValue,o=t.props,i=o.onChange,u=o.query;i(a(a({},u),{target:r}))},t.onRegexChange=function(e){var n=t.props,r=n.onChange,o=n.onRunQuery,i=n.query;r(a(a({},i),{regex:!i.regex})),o()},t.onOperatorChange=function(e,n){var r=n.newValue,o=t.props,i=o.onChange,u=o.query;i(a(a({},u),{operator:r}))},t.onAliasChange=function(e){var n=t.props,r=n.onChange,o=n.query;r(a(a({},o),{alias:e.target.value}))},t.onAliaspatternChange=function(e){var n=t.props,r=n.onChange,o=n.query;r(a(a({},o),{aliasPattern:e.target.value}))},t.onFuncsChange=function(e){var n=t.props,r=n.onChange,o=n.query;r(a(a({},o),{functions:e}))},t.onKeydownEnter=function(e){13===e.keyCode&&e.currentTarget.blur()},t.onPVSuggestionsFetchRequested=function(e){var n=e.value;t.loadPVSuggestions(n)},t.onPVSuggestionsClearRequested=function(){t.setState({pvSuggestions:[]})},t.onOprSuggestionsFetchRequested=function(e){var n=e.value.trim().replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(".*"+n,"i"),o=I.filter((function(e){return r.test(e)}));t.setState({oprSuggestions:o})},t.onOprSuggestionsClearRequested=function(){t.setState({oprSuggestions:[]})},t.onSuggestionsSelected=function(e,t){t.suggestion,t.suggestionValue,t.suggestionIndex,t.sectionIndex;"enter"===t.method&&e.currentTarget.blur()},t}return u(t,e),t.prototype.loadPVSuggestions=function(e){var t=this,n=Object(o.getTemplateSrv)().replace(e,void 0,"regex"),r=this.props.query.regex?n:".*"+n+".*";this.props.datasource.pvNamesFindQuery(r,100).then((function(e){t.setState({pvSuggestions:e})}))},t.prototype.render=function(){var e=R()(this.props.query,x),t=this.state,n=t.pvSuggestions,r=t.oprSuggestions,o=this.props.onRunQuery,i=e.regex?{color:"#d69e2e"}:{},u=e.aliasPattern?{color:"#d69e2e"}:{};return k.a.createElement(k.a.Fragment,null,k.a.createElement("div",{className:"gf-form-inline"},k.a.createElement(D.InlineFormLabel,{width:6,className:"query-keyword"},"PV"),k.a.createElement("div",{className:"max-width-30",style:{marginRight:"4px"}},k.a.createElement(M.a,{suggestions:n,onSuggestionsFetchRequested:this.onPVSuggestionsFetchRequested,onSuggestionsClearRequested:this.onPVSuggestionsClearRequested,getSuggestionValue:z,onSuggestionSelected:this.onSuggestionsSelected,renderSuggestion:Y,shouldRenderSuggestions:function(){return!0},inputProps:{value:e.target,className:"gf-form-input",placeholder:"PV name",spellCheck:!1,style:i,onChange:this.onPVChange,onBlur:o,onKeyDown:this.onKeydownEnter}})),k.a.createElement(D.LegacyForms.Switch,{checked:e.regex,label:"Regex",labelClass:"width-6 query-keyword",onChange:this.onRegexChange})),k.a.createElement("div",{className:"gf-form"},k.a.createElement(D.InlineFormLabel,{width:6,className:"query-keyword"},"Operator"),k.a.createElement("div",{className:"max-width-30"},k.a.createElement(M.a,{suggestions:r,onSuggestionsFetchRequested:this.onOprSuggestionsFetchRequested,onSuggestionsClearRequested:this.onOprSuggestionsClearRequested,onSuggestionSelected:this.onSuggestionsSelected,getSuggestionValue:z,renderSuggestion:Y,shouldRenderSuggestions:function(){return!0},inputProps:{value:e.operator,className:"gf-form-input",placeholder:"mean",spellCheck:!1,onChange:this.onOperatorChange,onBlur:o,onKeyDown:this.onKeydownEnter}}))),k.a.createElement("div",{className:"gf-form"},k.a.createElement(D.InlineFormLabel,{width:6,className:"query-keyword"},"Alias"),k.a.createElement("input",{type:"text",value:e.alias,className:"gf-form-input max-width-30",placeholder:"Alias",style:u,onChange:this.onAliasChange,onBlur:o,onKeyDown:this.onKeydownEnter}),k.a.createElement(D.InlineFormLabel,{width:6,className:"query-keyword"},"Alias pattern"),k.a.createElement("input",{type:"text",value:e.aliasPattern,className:"gf-form-input max-width-30",placeholder:"Alias regex pattern",style:{color:"#d69e2e"},onChange:this.onAliaspatternChange,onBlur:o,onKeyDown:this.onKeydownEnter})),k.a.createElement(G,{funcs:e.functions,onChange:this.onFuncsChange,onRunQuery:o}))},t}(E.PureComponent),X=function(e){function t(t){return e.call(this,t)||this}return u(t,e),t.prototype.render=function(){var e=this.props,t=e.options,n=e.onOptionsChange;return k.a.createElement(k.a.Fragment,null,k.a.createElement(D.DataSourceHttpSettings,{defaultUrl:"http://localhost:17668/retrieval",dataSourceConfig:t,onChange:n}))},t}(E.PureComponent);n.d(t,"plugin",(function(){return Z})),Object(o.loadPluginCss)({dark:"plugins/sasaki77-archiverappliance-datasource/styles/dark.css",light:"plugins/sasaki77-archiverappliance-datasource/styles/light.css"});var Z=new r.DataSourcePlugin(C).setConfigEditor(X).setQueryEditor(J)}])})); +//# sourceMappingURL=module.js.map \ No newline at end of file diff --git a/dist/module.js.map b/dist/module.js.map new file mode 100644 index 0000000..1a74c1a --- /dev/null +++ b/dist/module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"lodash\"","webpack:///external \"@grafana/ui\"","webpack:///external \"@grafana/data\"","webpack:///external \"@grafana/runtime\"","webpack:///../node_modules/prop-types/index.js","webpack:///../node_modules/react-autosuggest/dist/index.js","webpack:///../node_modules/lodash/isObject.js","webpack:///../node_modules/lodash/isObjectLike.js","webpack:///../node_modules/lodash/_baseGetTag.js","webpack:///../node_modules/lodash/_root.js","webpack:///../node_modules/lodash/isArrayLike.js","webpack:///../node_modules/react-autosuggest/dist/compareObjects.js","webpack:///../node_modules/lodash/_baseRest.js","webpack:///../node_modules/lodash/identity.js","webpack:///../node_modules/lodash/isFunction.js","webpack:///../node_modules/lodash/_Symbol.js","webpack:///../node_modules/lodash/_freeGlobal.js","webpack:///../node_modules/lodash/eq.js","webpack:///../node_modules/lodash/isLength.js","webpack:///../node_modules/lodash/_isIndex.js","webpack:///../node_modules/lodash/_baseTimes.js","webpack:///../node_modules/webpack/buildin/module.js","webpack:///../node_modules/lodash/defaults.js","webpack:///../node_modules/lodash/zip.js","webpack:///../node_modules/lodash/_overRest.js","webpack:///../node_modules/lodash/_apply.js","webpack:///../node_modules/lodash/_setToString.js","webpack:///../node_modules/lodash/_baseSetToString.js","webpack:///../node_modules/lodash/constant.js","webpack:///../node_modules/lodash/_defineProperty.js","webpack:///../node_modules/lodash/_getNative.js","webpack:///../node_modules/lodash/_baseIsNative.js","webpack:///../node_modules/webpack/buildin/global.js","webpack:///../node_modules/lodash/_getRawTag.js","webpack:///../node_modules/lodash/_objectToString.js","webpack:///../node_modules/lodash/_isMasked.js","webpack:///../node_modules/lodash/_coreJsData.js","webpack:///../node_modules/lodash/_toSource.js","webpack:///../node_modules/lodash/_getValue.js","webpack:///../node_modules/lodash/_shortOut.js","webpack:///../node_modules/lodash/_isIterateeCall.js","webpack:///../node_modules/lodash/keysIn.js","webpack:///../node_modules/lodash/_arrayLikeKeys.js","webpack:///../node_modules/lodash/isArguments.js","webpack:///../node_modules/lodash/_baseIsArguments.js","webpack:///../node_modules/lodash/isArray.js","webpack:///../node_modules/lodash/isBuffer.js","webpack:///../node_modules/lodash/stubFalse.js","webpack:///../node_modules/lodash/isTypedArray.js","webpack:///../node_modules/lodash/_baseIsTypedArray.js","webpack:///../node_modules/lodash/_baseUnary.js","webpack:///../node_modules/lodash/_nodeUtil.js","webpack:///../node_modules/lodash/_baseKeysIn.js","webpack:///../node_modules/lodash/_isPrototype.js","webpack:///../node_modules/lodash/_nativeKeysIn.js","webpack:///../node_modules/react-autosuggest/dist/Autosuggest.js","webpack:///../node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../node_modules/shallow-equal/arrays/index.js","webpack:///../node_modules/react-autosuggest/dist/Autowhatever.js","webpack:///../node_modules/section-iterator/dist/index.js","webpack:///../node_modules/react-themeable/dist/index.js","webpack:///../node_modules/react-themeable/node_modules/object-assign/index.js","webpack:///../node_modules/react-autosuggest/dist/SectionTitle.js","webpack:///../node_modules/react-autosuggest/dist/ItemList.js","webpack:///../node_modules/react-autosuggest/dist/Item.js","webpack:///../node_modules/react-autosuggest/dist/theme.js","webpack:///../node_modules/lodash/unzip.js","webpack:///../node_modules/lodash/_arrayFilter.js","webpack:///../node_modules/lodash/_arrayMap.js","webpack:///../node_modules/lodash/_baseProperty.js","webpack:///../node_modules/lodash/isArrayLikeObject.js","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///./dataProcessor.ts","webpack:///./aafunc.ts","webpack:///./types.ts","webpack:///./DataSource.ts","webpack:///./components/FunctionEditorControls.tsx","webpack:///./components/FunctionEditor.tsx","webpack:///./components/FunctionParam.tsx","webpack:///./components/FunctionParams.tsx","webpack:///./components/FunctionElem.tsx","webpack:///./components/FunctionAdd.tsx","webpack:///./components/Functions.tsx","webpack:///./components/QueryEditor.tsx","webpack:///./components/ConfigEditor.tsx","webpack:///./module.ts"],"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","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__4__","type","getRawTag","objectToString","symToStringTag","undefined","freeGlobal","freeSelf","self","root","Function","isFunction","isLength","length","_typeof","obj","iterator","constructor","objA","objB","keys","arguments","aKeys","bKeys","len","keysMap","aValue","bValue","aValueKeys","bValueKeys","aValueKey","identity","overRest","setToString","func","start","baseGetTag","isObject","tag","global","other","reIsUint","test","iteratee","index","result","Array","webpackPolyfill","deprecate","paths","children","baseRest","eq","isIterateeCall","keysIn","objectProto","defaults","sources","guard","source","props","propsIndex","propsLength","zip","apply","nativeMax","Math","max","transform","args","array","otherArgs","this","thisArg","baseSetToString","shortOut","constant","string","getNative","e","baseIsNative","getValue","isMasked","toSource","reIsHostCtor","funcProto","funcToString","toString","reIsNative","RegExp","replace","g","window","nativeObjectToString","isOwn","unmasked","uid","coreJsData","maskSrcKey","exec","IE_PROTO","nativeNow","Date","now","count","lastCalled","stamp","remaining","isArrayLike","isIndex","arrayLikeKeys","baseKeysIn","baseTimes","isArguments","isArray","isBuffer","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","push","baseIsArguments","isObjectLike","propertyIsEnumerable","stubFalse","freeExports","nodeType","freeModule","Buffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","require","binding","isPrototype","nativeKeysIn","isProto","Ctor","_react","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","_interopRequireWildcard","_propTypes","_interopRequireDefault","_arrays","_Autowhatever","_theme","WeakMap","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread","target","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","alwaysTrue","Autosuggest","_Component","subClass","superClass","TypeError","_inherits","Derived","Constructor","protoProps","staticProps","_super","Super","NewTarget","_ref2","_this","_alwaysRenderSuggestions","alwaysRenderSuggestions","instance","_classCallCheck","event","justClickedOnSuggestionsContainer","node","detail","document","getAttribute","suggestionsContainer","parentNode","autowhatever","_ref3","sectionIndex","itemIndex","updateHighlightedSuggestion","pressedSuggestion","justSelectedSuggestion","justMouseEntered","setTimeout","multiSection","input","focus","onSuggestionsClearRequested","data","_this$props","onSuggestionSelected","onSuggestionsFetchRequested","suggestionValue","reason","resetHighlightedSuggestion","_this$props2","focusInputOnSuggestionClick","_this$getSuggestionIn","getSuggestionIndices","findSuggestionElement","suggestionIndex","clickedSuggestion","getSuggestion","clickedSuggestionValue","getSuggestionValue","maybeCallOnChange","suggestion","method","closeSuggestions","onBlur","_this$props3","inputProps","shouldRenderSuggestions","highlightedSuggestion","getHighlightedSuggestion","shouldRender","setState","isFocused","highlightedSectionIndex","highlightedSuggestionIndex","valueBeforeUpDown","isCollapsed","blurEvent","_ref4","onMouseEnter","onSuggestionMouseEnter","onMouseLeave","onSuggestionMouseLeave","onMouseDown","onSuggestionMouseDown","onTouchStart","onSuggestionTouchStart","onTouchMove","onSuggestionTouchMove","onClick","onSuggestionClick","_ref5","containerProps","renderSuggestionsContainer","query","getQuery","state","justPressedUpDown","addEventListener","onDocumentMouseDown","onDocumentMouseUp","itemsContainer","nextProps","suggestions","highlightFirstSuggestion","willRenderSuggestions","revealSuggestions","prevProps","prevState","_this$props4","onSuggestionHighlighted","removeEventListener","prevValue","_this2","shouldResetValueBeforeUpDown","_this$props5","getSectionSuggestions","_this$state","suggestionElement","parseInt","startNode","console","error","Error","newValue","_this$props$inputProp","onChange","trim","_this3","_this$props6","renderInputComponent","renderSuggestion","renderSectionTitle","id","theme","_this$state2","_onFocus","onFocus","_onKeyDown","onKeyDown","isOpen","items","autowhateverInputProps","scrollTop","keyCode","newHighlightedSectionIndex","newHighlightedItemIndex","getSuggestionValueByIndex","preventDefault","_newValue","willCloseSuggestions","renderSuggestionData","createElement","renderItemsContainer","renderItem","renderItemData","getSectionItems","highlightedItemIndex","itemProps","mapToAutowhateverTheme","ref","storeAutowhateverRef","Component","isRequired","propName","bool","_ref","defaultTheme","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","arrA","arrB","_sectionIterator","_reactThemeable","_SectionTitle","_ItemList","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","from","_unsupportedIterableToArray","_nonIterableRest","arr2","emptyObject","Autowhatever","userRef","current","highlightedItem","section","concat","isInputFocused","nextPrev","_this$sectionIterator2","sectionIterator","setSectionsItems","setSectionIterator","setTheme","ensureHighlightedItemIsVisible","sectionsItems","map","sectionsLengths","allSectionsAreEmpty","every","itemsCount","keyPrefix","sectionKeyPrefix","isFirstSection","onHighlightedItemChange","getItemId","storeItemsListReference","itemOffsetRelativeToContainer","offsetParent","offsetTop","offsetHeight","renderedItems","renderSections","renderItems","ariaActivedescendant","itemsContainerId","role","inputComponent","autoComplete","storeInputReference","storeItemsContainerReference","container","containerOpen","inputOpen","inputFocused","itemsContainerOpen","itemsList","item","itemFirst","itemHighlighted","sectionContainer","sectionContainerFirst","sectionTitle","sliceIterator","position","_position","nextNonEmptySectionIndex","prev","_position2","prevNonEmptySectionIndex","isLast","_toConsumableArray","_objectAssign","_objectAssign2","truthy","x","classNameDecorator","_len","names","_key","styles","className","join","style","propIsEnumerable","ToObject","val","ownEnumerableKeys","getOwnPropertyNames","assign","to","_compareObjects","SectionTitle","_Item","_extends","ItemsList","sectionPrefix","isItemPropsFunction","isFirst","isHighlighted","itemKey","itemPropsObj","allItemProps","storeHighlightedItemReference","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","Item","restProps","storeItemReference","suggestionsContainerOpen","suggestionsList","suggestionFirst","suggestionHighlighted","arrayFilter","arrayMap","baseProperty","isArrayLikeObject","group","predicate","resIndex","extendStatics","b","__extends","__","__assign","__awaiter","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","f","y","_","label","sent","trys","ops","verb","v","op","pop","__read","ar","__spread","transformWrapper","funcArgs","dataFrames","tsData","dataFrame","timesField","fields","valField","vals","values","toArray","newTimesField","times","newValfield","datapointsAggFuncs","avg","meanBy","min","minBy","maxBy","sum","sumBy","absoluteMin","minPoint","abs","absoluteMax","maxPoint","extraction","order","orderFunc","orderByCallback","sortedTsData","sortBy","reverse","scale","partial","factor","offset","delta","newTimes","newValues","deltaValue","fluctuation","newSeries","flucValue","top","bottom","exclude","pattern","regex","valfield","displayName","funcIndex","Transform","Options","addFuncDef","newFuncDef","funcDef","params","defaultParams","category","shortName","options","text","def","updateText","bindFunction","metricFunctions","param","bindedFunc","Number","render","metricExp","str","parameters","paramType","$","isNumeric","unshift","_hasMultipleParamsInString","strValue","updateParam","each","split","partVal","idx","splice","createFuncInstance","isString","getCategories","defaultQuery","alias","operator","aliasPattern","functions","operatorList","instanceSettings","url","withCredentials","headers","basicAuth","Authorization","DataSource","rawTargets","buildQueryParameters","targets","targetProcesses","targetProcess","all","dataFramesArray","postProcess","buildUrls","urls","doMultiUrlRequests","responses","responseParse","setAlias","applyFunctions","flatten","maxNumPVs","binInterval","interval","targetPVs","parseTargetPV","pvnamesPromise","targetPV","pvNamesFindQuery","pvnamesArray","pvnames","uniq","pvname","buildUrl","pv","includes","encodeURIComponent","toISOString","requests","doRequest","response","targetRes","datapoint","secs","floor","nanos","meta","time","config","newDataFrames","applyFunctionDefs","testDatasource","status","message","title","maxPvs","res","metricFindQuery","pvQuery","paramsQuery","parsedPVs","limitNum","limit_param","URLSearchParams","limit","isInteger","targetQuery","newOptions","datasourceRequest","templateSrv","range","rangeMsec","getTime","maxDataPoints","intervalSec","newFunc","scopedVars","refId","hide","getOptions","splitQueries","queries","splitQuery","orElems","newQueries","orElem","functionDefs","categories","applyFuncDefs","pickFuncDefsFromCategories","reduce","prevPromise","dataProcessor","aaFunctions","appliedOptionFuncs","optionMap","allCategorisedFuncDefs","requiredCategoryFuncNames","funcNames","description","onDescriptionShow","open","onMoveLeft","onMoveRight","onRemove","display","width","justifyContent","triggerRef","createRef","renderContent","updatePopperPosition","showingDescription","overflow","maxHeight","textAlign","fontWeight","color","content","placement","hideAfter","showPopper","hidePopper","popperProps","referenceElement","wrapperClassName","renderArrow","arrowProps","show","cursor","PureComponent","focused","paramIndex","onKeydownEnter","currentTarget","blur","onPVSuggestionsFetchRequested","onPVSuggestionsClearRequested","onSuggestionsSelected","onRunQuery","calcInputWidth","placeholder","paramLength","paramDef","inputWidth","spellCheck","fontFamily","onParamChange","newParams","paramArray","Fragment","selectedOptions","addFunc","allFunctions","list","nlist","newArray","moveElem","addFunction","newFuncs","funcs","handleRemoveFunction","handleMoveLeft","handleMoveRight","onFuncChange","pvSuggestions","oprSuggestions","onPVChange","onRegexChange","onOperatorChange","onAliasChange","onAliaspatternChange","onFuncsChange","loadPVSuggestions","onOprSuggestionsFetchRequested","escapedValue","onOprSuggestionsClearRequested","replacedQuery","searchQuery","datasource","pvInputStyle","aliasInputStyle","marginRight","Switch","checked","labelClass","onOptionsChange","defaultUrl","dataSourceConfig","dark","light","setConfigEditor","setQueryEditor"],"mappings":"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","file":"module.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 = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 75);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nmodule.exports = require('./Autosuggest')[\"default\"];","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = compareObjects;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction compareObjects(objA, objB) {\n var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (objA === objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (aKeys.length !== bKeys.length) {\n return true;\n }\n\n var keysMap = {};\n var i, len;\n\n for (i = 0, len = keys.length; i < len; i++) {\n keysMap[keys[i]] = true;\n }\n\n for (i = 0, len = aKeys.length; i < len; i++) {\n var key = aKeys[i];\n var aValue = objA[key];\n var bValue = objB[key];\n\n if (aValue === bValue) {\n continue;\n }\n\n if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') {\n return true;\n }\n\n var aValueKeys = Object.keys(aValue);\n var bValueKeys = Object.keys(bValue);\n\n if (aValueKeys.length !== bValueKeys.length) {\n return true;\n }\n\n for (var n = 0, length = aValueKeys.length; n < length; n++) {\n var aValueKey = aValueKeys[n];\n\n if (aValue[aValueKey] !== bValue[aValueKey]) {\n return true;\n }\n }\n }\n\n return false;\n}","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var baseRest = require('./_baseRest'),\n unzip = require('./unzip');\n\n/**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\nvar zip = baseRest(unzip);\n\nmodule.exports = zip;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _arrays = _interopRequireDefault(require(\"shallow-equal/arrays\"));\n\nvar _Autowhatever = _interopRequireDefault(require(\"./Autowhatever\"));\n\nvar _theme = require(\"./theme\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\n\nvar defaultShouldRenderSuggestions = function defaultShouldRenderSuggestions(value) {\n return value.trim().length > 0;\n};\n\nvar defaultRenderSuggestionsContainer = function defaultRenderSuggestionsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar Autosuggest = /*#__PURE__*/function (_Component) {\n _inherits(Autosuggest, _Component);\n\n var _super = _createSuper(Autosuggest);\n\n function Autosuggest(_ref2) {\n var _this;\n\n var _alwaysRenderSuggestions = _ref2.alwaysRenderSuggestions;\n\n _classCallCheck(this, Autosuggest);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseDown\", function (event) {\n _this.justClickedOnSuggestionsContainer = false;\n var node = event.detail && event.detail.target || // This is for testing only. Please show me a better way to emulate this.\n event.target;\n\n while (node !== null && node !== document) {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n // Suggestion was clicked\n return;\n }\n\n if (node === _this.suggestionsContainer) {\n // Something else inside suggestions container was clicked\n _this.justClickedOnSuggestionsContainer = true;\n return;\n }\n\n node = node.parentNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeAutowhateverRef\", function (autowhatever) {\n if (autowhatever !== null) {\n _this.autowhatever = autowhatever;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseEnter\", function (event, _ref3) {\n var sectionIndex = _ref3.sectionIndex,\n itemIndex = _ref3.itemIndex;\n\n _this.updateHighlightedSuggestion(sectionIndex, itemIndex);\n\n if (event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = true;\n }\n\n _this.justMouseEntered = true;\n setTimeout(function () {\n _this.justMouseEntered = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"highlightFirstSuggestion\", function () {\n _this.updateHighlightedSuggestion(_this.props.multiSection ? 0 : null, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseUp\", function () {\n if (_this.pressedSuggestion && !_this.justSelectedSuggestion) {\n _this.input.focus();\n }\n\n _this.pressedSuggestion = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseDown\", function (event) {\n // Checking if this.justSelectedSuggestion is already true to not duplicate touch events in chrome\n // See: https://github.com/facebook/react/issues/9809#issuecomment-413978405\n if (!_this.justSelectedSuggestion) {\n _this.justSelectedSuggestion = true;\n _this.pressedSuggestion = event.target;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionsClearRequested\", function () {\n var onSuggestionsClearRequested = _this.props.onSuggestionsClearRequested;\n onSuggestionsClearRequested && onSuggestionsClearRequested();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionSelected\", function (event, data) {\n var _this$props = _this.props,\n alwaysRenderSuggestions = _this$props.alwaysRenderSuggestions,\n onSuggestionSelected = _this$props.onSuggestionSelected,\n onSuggestionsFetchRequested = _this$props.onSuggestionsFetchRequested;\n onSuggestionSelected && onSuggestionSelected(event, data);\n\n if (alwaysRenderSuggestions) {\n onSuggestionsFetchRequested({\n value: data.suggestionValue,\n reason: 'suggestion-selected'\n });\n } else {\n _this.onSuggestionsClearRequested();\n }\n\n _this.resetHighlightedSuggestion();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionClick\", function (event) {\n var _this$props2 = _this.props,\n alwaysRenderSuggestions = _this$props2.alwaysRenderSuggestions,\n focusInputOnSuggestionClick = _this$props2.focusInputOnSuggestionClick;\n\n var _this$getSuggestionIn = _this.getSuggestionIndices(_this.findSuggestionElement(event.target)),\n sectionIndex = _this$getSuggestionIn.sectionIndex,\n suggestionIndex = _this$getSuggestionIn.suggestionIndex;\n\n var clickedSuggestion = _this.getSuggestion(sectionIndex, suggestionIndex);\n\n var clickedSuggestionValue = _this.props.getSuggestionValue(clickedSuggestion);\n\n _this.maybeCallOnChange(event, clickedSuggestionValue, 'click');\n\n _this.onSuggestionSelected(event, {\n suggestion: clickedSuggestion,\n suggestionValue: clickedSuggestionValue,\n suggestionIndex: suggestionIndex,\n sectionIndex: sectionIndex,\n method: 'click'\n });\n\n if (!alwaysRenderSuggestions) {\n _this.closeSuggestions();\n }\n\n if (focusInputOnSuggestionClick === true) {\n _this.input.focus();\n } else {\n _this.onBlur();\n }\n\n setTimeout(function () {\n _this.justSelectedSuggestion = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var _this$props3 = _this.props,\n inputProps = _this$props3.inputProps,\n shouldRenderSuggestions = _this$props3.shouldRenderSuggestions;\n var value = inputProps.value,\n onBlur = inputProps.onBlur;\n\n var highlightedSuggestion = _this.getHighlightedSuggestion();\n\n var shouldRender = shouldRenderSuggestions(value);\n\n _this.setState({\n isFocused: false,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n });\n\n onBlur && onBlur(_this.blurEvent, {\n highlightedSuggestion: highlightedSuggestion\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseLeave\", function (event) {\n _this.resetHighlightedSuggestion(false); // shouldResetValueBeforeUpDown\n\n\n if (_this.justSelectedSuggestion && event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = false;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchStart\", function () {\n _this.justSelectedSuggestion = true; // todo: event.preventDefault when https://github.com/facebook/react/issues/2043\n // todo: gets released so onSuggestionMouseDown won't fire in chrome\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchMove\", function () {\n _this.justSelectedSuggestion = false;\n _this.pressedSuggestion = null;\n\n _this.input.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"itemProps\", function (_ref4) {\n var sectionIndex = _ref4.sectionIndex,\n itemIndex = _ref4.itemIndex;\n return {\n 'data-section-index': sectionIndex,\n 'data-suggestion-index': itemIndex,\n onMouseEnter: _this.onSuggestionMouseEnter,\n onMouseLeave: _this.onSuggestionMouseLeave,\n onMouseDown: _this.onSuggestionMouseDown,\n onTouchStart: _this.onSuggestionTouchStart,\n onTouchMove: _this.onSuggestionTouchMove,\n onClick: _this.onSuggestionClick\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsContainer\", function (_ref5) {\n var containerProps = _ref5.containerProps,\n children = _ref5.children;\n var renderSuggestionsContainer = _this.props.renderSuggestionsContainer;\n return renderSuggestionsContainer({\n containerProps: containerProps,\n children: children,\n query: _this.getQuery()\n });\n });\n\n _this.state = {\n isFocused: false,\n isCollapsed: !_alwaysRenderSuggestions,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null\n };\n _this.justPressedUpDown = false;\n _this.justMouseEntered = false;\n _this.pressedSuggestion = null;\n return _this;\n }\n\n _createClass(Autosuggest, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n this.input = this.autowhatever.input;\n this.suggestionsContainer = this.autowhatever.itemsContainer;\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if ((0, _arrays[\"default\"])(nextProps.suggestions, this.props.suggestions)) {\n if (nextProps.highlightFirstSuggestion && nextProps.suggestions.length > 0 && this.justPressedUpDown === false && this.justMouseEntered === false) {\n this.highlightFirstSuggestion();\n }\n } else {\n if (this.willRenderSuggestions(nextProps)) {\n if (this.state.isCollapsed && !this.justSelectedSuggestion) {\n this.revealSuggestions();\n }\n } else {\n this.resetHighlightedSuggestion();\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props4 = this.props,\n suggestions = _this$props4.suggestions,\n onSuggestionHighlighted = _this$props4.onSuggestionHighlighted,\n highlightFirstSuggestion = _this$props4.highlightFirstSuggestion;\n\n if (!(0, _arrays[\"default\"])(suggestions, prevProps.suggestions) && suggestions.length > 0 && highlightFirstSuggestion) {\n this.highlightFirstSuggestion();\n return;\n }\n\n if (onSuggestionHighlighted) {\n var highlightedSuggestion = this.getHighlightedSuggestion();\n var prevHighlightedSuggestion = prevState.highlightedSuggestion;\n\n if (highlightedSuggestion != prevHighlightedSuggestion) {\n onSuggestionHighlighted({\n suggestion: highlightedSuggestion\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n }\n }, {\n key: \"updateHighlightedSuggestion\",\n value: function updateHighlightedSuggestion(sectionIndex, suggestionIndex, prevValue) {\n var _this2 = this;\n\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n\n if (suggestionIndex === null) {\n valueBeforeUpDown = null;\n } else if (valueBeforeUpDown === null && typeof prevValue !== 'undefined') {\n valueBeforeUpDown = prevValue;\n }\n\n return {\n highlightedSectionIndex: sectionIndex,\n highlightedSuggestionIndex: suggestionIndex,\n highlightedSuggestion: suggestionIndex === null ? null : _this2.getSuggestion(sectionIndex, suggestionIndex),\n valueBeforeUpDown: valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"resetHighlightedSuggestion\",\n value: function resetHighlightedSuggestion() {\n var shouldResetValueBeforeUpDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n return {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: shouldResetValueBeforeUpDown ? null : valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"revealSuggestions\",\n value: function revealSuggestions() {\n this.setState({\n isCollapsed: false\n });\n }\n }, {\n key: \"closeSuggestions\",\n value: function closeSuggestions() {\n this.setState({\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: true\n });\n }\n }, {\n key: \"getSuggestion\",\n value: function getSuggestion(sectionIndex, suggestionIndex) {\n var _this$props5 = this.props,\n suggestions = _this$props5.suggestions,\n multiSection = _this$props5.multiSection,\n getSectionSuggestions = _this$props5.getSectionSuggestions;\n\n if (multiSection) {\n return getSectionSuggestions(suggestions[sectionIndex])[suggestionIndex];\n }\n\n return suggestions[suggestionIndex];\n }\n }, {\n key: \"getHighlightedSuggestion\",\n value: function getHighlightedSuggestion() {\n var _this$state = this.state,\n highlightedSectionIndex = _this$state.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state.highlightedSuggestionIndex;\n\n if (highlightedSuggestionIndex === null) {\n return null;\n }\n\n return this.getSuggestion(highlightedSectionIndex, highlightedSuggestionIndex);\n }\n }, {\n key: \"getSuggestionValueByIndex\",\n value: function getSuggestionValueByIndex(sectionIndex, suggestionIndex) {\n var getSuggestionValue = this.props.getSuggestionValue;\n return getSuggestionValue(this.getSuggestion(sectionIndex, suggestionIndex));\n }\n }, {\n key: \"getSuggestionIndices\",\n value: function getSuggestionIndices(suggestionElement) {\n var sectionIndex = suggestionElement.getAttribute('data-section-index');\n var suggestionIndex = suggestionElement.getAttribute('data-suggestion-index');\n return {\n sectionIndex: typeof sectionIndex === 'string' ? parseInt(sectionIndex, 10) : null,\n suggestionIndex: parseInt(suggestionIndex, 10)\n };\n }\n }, {\n key: \"findSuggestionElement\",\n value: function findSuggestionElement(startNode) {\n var node = startNode;\n\n do {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n return node;\n }\n\n node = node.parentNode;\n } while (node !== null);\n\n console.error('Clicked element:', startNode); // eslint-disable-line no-console\n\n throw new Error(\"Couldn't find suggestion element\");\n }\n }, {\n key: \"maybeCallOnChange\",\n value: function maybeCallOnChange(event, newValue, method) {\n var _this$props$inputProp = this.props.inputProps,\n value = _this$props$inputProp.value,\n onChange = _this$props$inputProp.onChange;\n\n if (newValue !== value) {\n onChange(event, {\n newValue: newValue,\n method: method\n });\n }\n }\n }, {\n key: \"willRenderSuggestions\",\n value: function willRenderSuggestions(props) {\n var suggestions = props.suggestions,\n inputProps = props.inputProps,\n shouldRenderSuggestions = props.shouldRenderSuggestions;\n var value = inputProps.value;\n return suggestions.length > 0 && shouldRenderSuggestions(value);\n }\n }, {\n key: \"getQuery\",\n value: function getQuery() {\n var inputProps = this.props.inputProps;\n var value = inputProps.value;\n var valueBeforeUpDown = this.state.valueBeforeUpDown;\n return (valueBeforeUpDown === null ? value : valueBeforeUpDown).trim();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n suggestions = _this$props6.suggestions,\n renderInputComponent = _this$props6.renderInputComponent,\n onSuggestionsFetchRequested = _this$props6.onSuggestionsFetchRequested,\n renderSuggestion = _this$props6.renderSuggestion,\n inputProps = _this$props6.inputProps,\n multiSection = _this$props6.multiSection,\n renderSectionTitle = _this$props6.renderSectionTitle,\n id = _this$props6.id,\n getSectionSuggestions = _this$props6.getSectionSuggestions,\n theme = _this$props6.theme,\n getSuggestionValue = _this$props6.getSuggestionValue,\n alwaysRenderSuggestions = _this$props6.alwaysRenderSuggestions,\n highlightFirstSuggestion = _this$props6.highlightFirstSuggestion;\n var _this$state2 = this.state,\n isFocused = _this$state2.isFocused,\n isCollapsed = _this$state2.isCollapsed,\n highlightedSectionIndex = _this$state2.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state2.highlightedSuggestionIndex,\n valueBeforeUpDown = _this$state2.valueBeforeUpDown;\n var shouldRenderSuggestions = alwaysRenderSuggestions ? alwaysTrue : this.props.shouldRenderSuggestions;\n var value = inputProps.value,\n _onFocus = inputProps.onFocus,\n _onKeyDown = inputProps.onKeyDown;\n var willRenderSuggestions = this.willRenderSuggestions(this.props);\n var isOpen = alwaysRenderSuggestions || isFocused && !isCollapsed && willRenderSuggestions;\n var items = isOpen ? suggestions : [];\n\n var autowhateverInputProps = _objectSpread({}, inputProps, {\n onFocus: function onFocus(event) {\n if (!_this3.justSelectedSuggestion && !_this3.justClickedOnSuggestionsContainer) {\n var shouldRender = shouldRenderSuggestions(value);\n\n _this3.setState({\n isFocused: true,\n isCollapsed: !shouldRender\n });\n\n _onFocus && _onFocus(event);\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'input-focused'\n });\n }\n }\n },\n onBlur: function onBlur(event) {\n if (_this3.justClickedOnSuggestionsContainer) {\n _this3.input.focus();\n\n return;\n }\n\n _this3.blurEvent = event;\n\n if (!_this3.justSelectedSuggestion) {\n _this3.onBlur();\n\n _this3.onSuggestionsClearRequested();\n }\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var shouldRender = shouldRenderSuggestions(value);\n\n _this3.maybeCallOnChange(event, value, 'type');\n\n if (_this3.suggestionsContainer) {\n _this3.suggestionsContainer.scrollTop = 0;\n }\n\n _this3.setState(_objectSpread({}, highlightFirstSuggestion ? {} : {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null\n }, {\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n }));\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'input-changed'\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n },\n onKeyDown: function onKeyDown(event, data) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n // ArrowUp\n if (isCollapsed) {\n if (shouldRenderSuggestions(value)) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'suggestions-revealed'\n });\n\n _this3.revealSuggestions();\n }\n } else if (suggestions.length > 0) {\n var newHighlightedSectionIndex = data.newHighlightedSectionIndex,\n newHighlightedItemIndex = data.newHighlightedItemIndex;\n var newValue;\n\n if (newHighlightedItemIndex === null) {\n // valueBeforeUpDown can be null if, for example, user\n // hovers on the first suggestion and then pressed Up.\n // If that happens, use the original input value.\n newValue = valueBeforeUpDown === null ? value : valueBeforeUpDown;\n } else {\n newValue = _this3.getSuggestionValueByIndex(newHighlightedSectionIndex, newHighlightedItemIndex);\n }\n\n _this3.updateHighlightedSuggestion(newHighlightedSectionIndex, newHighlightedItemIndex, value);\n\n _this3.maybeCallOnChange(event, newValue, keyCode === 40 ? 'down' : 'up');\n }\n\n event.preventDefault(); // Prevents the cursor from moving\n\n _this3.justPressedUpDown = true;\n setTimeout(function () {\n _this3.justPressedUpDown = false;\n });\n break;\n // Enter\n\n case 13:\n {\n // See #388\n if (event.keyCode === 229) {\n break;\n }\n\n var highlightedSuggestion = _this3.getHighlightedSuggestion();\n\n if (isOpen && !alwaysRenderSuggestions) {\n _this3.closeSuggestions();\n }\n\n if (highlightedSuggestion != null) {\n var _newValue = getSuggestionValue(highlightedSuggestion);\n\n _this3.maybeCallOnChange(event, _newValue, 'enter');\n\n _this3.onSuggestionSelected(event, {\n suggestion: highlightedSuggestion,\n suggestionValue: _newValue,\n suggestionIndex: highlightedSuggestionIndex,\n sectionIndex: highlightedSectionIndex,\n method: 'enter'\n });\n\n _this3.justSelectedSuggestion = true;\n setTimeout(function () {\n _this3.justSelectedSuggestion = false;\n });\n }\n\n break;\n }\n // Escape\n\n case 27:\n {\n if (isOpen) {\n // If input.type === 'search', the browser clears the input\n // when Escape is pressed. We want to disable this default\n // behaviour so that, when suggestions are shown, we just hide\n // them, without clearing the input.\n event.preventDefault();\n }\n\n var willCloseSuggestions = isOpen && !alwaysRenderSuggestions;\n\n if (valueBeforeUpDown === null) {\n // Didn't interact with Up/Down\n if (!willCloseSuggestions) {\n var _newValue2 = '';\n\n _this3.maybeCallOnChange(event, _newValue2, 'escape');\n\n if (shouldRenderSuggestions(_newValue2)) {\n onSuggestionsFetchRequested({\n value: _newValue2,\n reason: 'escape-pressed'\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n }\n } else {\n // Interacted with Up/Down\n _this3.maybeCallOnChange(event, valueBeforeUpDown, 'escape');\n }\n\n if (willCloseSuggestions) {\n _this3.onSuggestionsClearRequested();\n\n _this3.closeSuggestions();\n } else {\n _this3.resetHighlightedSuggestion();\n }\n\n break;\n }\n }\n\n _onKeyDown && _onKeyDown(event);\n }\n });\n\n var renderSuggestionData = {\n query: this.getQuery()\n };\n return /*#__PURE__*/_react[\"default\"].createElement(_Autowhatever[\"default\"], {\n multiSection: multiSection,\n items: items,\n renderInputComponent: renderInputComponent,\n renderItemsContainer: this.renderSuggestionsContainer,\n renderItem: renderSuggestion,\n renderItemData: renderSuggestionData,\n renderSectionTitle: renderSectionTitle,\n getSectionItems: getSectionSuggestions,\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedSuggestionIndex,\n inputProps: autowhateverInputProps,\n itemProps: this.itemProps,\n theme: (0, _theme.mapToAutowhateverTheme)(theme),\n id: id,\n ref: this.storeAutowhateverRef\n });\n }\n }]);\n\n return Autosuggest;\n}(_react.Component);\n\nexports[\"default\"] = Autosuggest;\n\n_defineProperty(Autosuggest, \"propTypes\", {\n suggestions: _propTypes[\"default\"].array.isRequired,\n onSuggestionsFetchRequested: function onSuggestionsFetchRequested(props, propName) {\n var onSuggestionsFetchRequested = props[propName];\n\n if (typeof onSuggestionsFetchRequested !== 'function') {\n throw new Error(\"'onSuggestionsFetchRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp\");\n }\n },\n onSuggestionsClearRequested: function onSuggestionsClearRequested(props, propName) {\n var onSuggestionsClearRequested = props[propName];\n\n if (props.alwaysRenderSuggestions === false && typeof onSuggestionsClearRequested !== 'function') {\n throw new Error(\"'onSuggestionsClearRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp\");\n }\n },\n onSuggestionSelected: _propTypes[\"default\"].func,\n onSuggestionHighlighted: _propTypes[\"default\"].func,\n renderInputComponent: _propTypes[\"default\"].func,\n renderSuggestionsContainer: _propTypes[\"default\"].func,\n getSuggestionValue: _propTypes[\"default\"].func.isRequired,\n renderSuggestion: _propTypes[\"default\"].func.isRequired,\n inputProps: function inputProps(props, propName) {\n var inputProps = props[propName];\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'value')) {\n throw new Error(\"'inputProps' must have 'value'.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'onChange')) {\n throw new Error(\"'inputProps' must have 'onChange'.\");\n }\n },\n shouldRenderSuggestions: _propTypes[\"default\"].func,\n alwaysRenderSuggestions: _propTypes[\"default\"].bool,\n multiSection: _propTypes[\"default\"].bool,\n renderSectionTitle: function renderSectionTitle(props, propName) {\n var renderSectionTitle = props[propName];\n\n if (props.multiSection === true && typeof renderSectionTitle !== 'function') {\n throw new Error(\"'renderSectionTitle' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp\");\n }\n },\n getSectionSuggestions: function getSectionSuggestions(props, propName) {\n var getSectionSuggestions = props[propName];\n\n if (props.multiSection === true && typeof getSectionSuggestions !== 'function') {\n throw new Error(\"'getSectionSuggestions' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp\");\n }\n },\n focusInputOnSuggestionClick: _propTypes[\"default\"].bool,\n highlightFirstSuggestion: _propTypes[\"default\"].bool,\n theme: _propTypes[\"default\"].object,\n id: _propTypes[\"default\"].string\n});\n\n_defineProperty(Autosuggest, \"defaultProps\", {\n renderSuggestionsContainer: defaultRenderSuggestionsContainer,\n shouldRenderSuggestions: defaultShouldRenderSuggestions,\n alwaysRenderSuggestions: false,\n multiSection: false,\n focusInputOnSuggestionClick: true,\n highlightFirstSuggestion: false,\n theme: _theme.defaultTheme,\n id: '1'\n});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sectionIterator = _interopRequireDefault(require(\"section-iterator\"));\n\nvar _reactThemeable = _interopRequireDefault(require(\"react-themeable\"));\n\nvar _SectionTitle = _interopRequireDefault(require(\"./SectionTitle\"));\n\nvar _ItemList = _interopRequireDefault(require(\"./ItemList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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\nvar emptyObject = {};\n\nvar defaultRenderInputComponent = function defaultRenderInputComponent(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"input\", props);\n};\n\nvar defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar defaultTheme = {\n container: 'react-autowhatever__container',\n containerOpen: 'react-autowhatever__container--open',\n input: 'react-autowhatever__input',\n inputOpen: 'react-autowhatever__input--open',\n inputFocused: 'react-autowhatever__input--focused',\n itemsContainer: 'react-autowhatever__items-container',\n itemsContainerOpen: 'react-autowhatever__items-container--open',\n itemsList: 'react-autowhatever__items-list',\n item: 'react-autowhatever__item',\n itemFirst: 'react-autowhatever__item--first',\n itemHighlighted: 'react-autowhatever__item--highlighted',\n sectionContainer: 'react-autowhatever__section-container',\n sectionContainerFirst: 'react-autowhatever__section-container--first',\n sectionTitle: 'react-autowhatever__section-title'\n};\n\nvar Autowhatever = /*#__PURE__*/function (_Component) {\n _inherits(Autowhatever, _Component);\n\n var _super = _createSuper(Autowhatever);\n\n function Autowhatever(props) {\n var _this;\n\n _classCallCheck(this, Autowhatever);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"storeInputReference\", function (input) {\n if (input !== null) {\n _this.input = input;\n }\n\n var userRef = _this.props.inputProps.ref;\n\n if (userRef) {\n if (typeof userRef === 'function') {\n userRef(input);\n } else if (_typeof(userRef) === 'object' && Object.prototype.hasOwnProperty.call(userRef, 'current')) {\n userRef.current = input;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemsContainerReference\", function (itemsContainer) {\n if (itemsContainer !== null) {\n _this.itemsContainer = itemsContainer;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onHighlightedItemChange\", function (highlightedItem) {\n _this.highlightedItem = highlightedItem;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemId\", function (sectionIndex, itemIndex) {\n if (itemIndex === null) {\n return null;\n }\n\n var id = _this.props.id;\n var section = sectionIndex === null ? '' : \"section-\".concat(sectionIndex);\n return \"react-autowhatever-\".concat(id, \"-\").concat(section, \"-item-\").concat(itemIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: true\n });\n\n inputProps.onFocus && inputProps.onFocus(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: false\n });\n\n inputProps.onBlur && inputProps.onBlur(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$props = _this.props,\n inputProps = _this$props.inputProps,\n highlightedSectionIndex = _this$props.highlightedSectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n {\n var nextPrev = event.key === 'ArrowDown' ? 'next' : 'prev';\n\n var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]),\n _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2),\n newHighlightedSectionIndex = _this$sectionIterator2[0],\n newHighlightedItemIndex = _this$sectionIterator2[1];\n\n inputProps.onKeyDown(event, {\n newHighlightedSectionIndex: newHighlightedSectionIndex,\n newHighlightedItemIndex: newHighlightedItemIndex\n });\n break;\n }\n\n default:\n inputProps.onKeyDown(event, {\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedItemIndex\n });\n }\n });\n\n _this.highlightedItem = null;\n _this.state = {\n isInputFocused: false\n };\n\n _this.setSectionsItems(props);\n\n _this.setSectionIterator(props);\n\n _this.setTheme(props);\n\n return _this;\n }\n\n _createClass(Autowhatever, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ensureHighlightedItemIsVisible();\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.items !== this.props.items) {\n this.setSectionsItems(nextProps);\n }\n\n if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) {\n this.setSectionIterator(nextProps);\n }\n\n if (nextProps.theme !== this.props.theme) {\n this.setTheme(nextProps);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ensureHighlightedItemIsVisible();\n }\n }, {\n key: \"setSectionsItems\",\n value: function setSectionsItems(props) {\n if (props.multiSection) {\n this.sectionsItems = props.items.map(function (section) {\n return props.getSectionItems(section);\n });\n this.sectionsLengths = this.sectionsItems.map(function (items) {\n return items.length;\n });\n this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) {\n return itemsCount === 0;\n });\n }\n }\n }, {\n key: \"setSectionIterator\",\n value: function setSectionIterator(props) {\n this.sectionIterator = (0, _sectionIterator[\"default\"])({\n multiSection: props.multiSection,\n data: props.multiSection ? this.sectionsLengths : props.items.length\n });\n }\n }, {\n key: \"setTheme\",\n value: function setTheme(props) {\n this.theme = (0, _reactThemeable[\"default\"])(props.theme);\n }\n }, {\n key: \"renderSections\",\n value: function renderSections() {\n var _this2 = this;\n\n if (this.allSectionsAreEmpty) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props2 = this.props,\n id = _this$props2.id,\n items = _this$props2.items,\n renderItem = _this$props2.renderItem,\n renderItemData = _this$props2.renderItemData,\n renderSectionTitle = _this$props2.renderSectionTitle,\n highlightedSectionIndex = _this$props2.highlightedSectionIndex,\n highlightedItemIndex = _this$props2.highlightedItemIndex,\n itemProps = _this$props2.itemProps;\n return items.map(function (section, sectionIndex) {\n var keyPrefix = \"react-autowhatever-\".concat(id, \"-\");\n var sectionKeyPrefix = \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isFirstSection = sectionIndex === 0; // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"container\"), 'sectionContainer', isFirstSection && 'sectionContainerFirst'), /*#__PURE__*/_react[\"default\"].createElement(_SectionTitle[\"default\"], {\n section: section,\n renderSectionTitle: renderSectionTitle,\n theme: theme,\n sectionKeyPrefix: sectionKeyPrefix\n }), /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: _this2.sectionsItems[sectionIndex],\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n sectionIndex: sectionIndex,\n highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null,\n onHighlightedItemChange: _this2.onHighlightedItemChange,\n getItemId: _this2.getItemId,\n theme: theme,\n keyPrefix: keyPrefix,\n ref: _this2.storeItemsListReference\n }));\n /* eslint-enable react/jsx-key */\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props3 = this.props,\n id = _this$props3.id,\n renderItem = _this$props3.renderItem,\n renderItemData = _this$props3.renderItemData,\n highlightedSectionIndex = _this$props3.highlightedSectionIndex,\n highlightedItemIndex = _this$props3.highlightedItemIndex,\n itemProps = _this$props3.itemProps;\n return /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: items,\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null,\n onHighlightedItemChange: this.onHighlightedItemChange,\n getItemId: this.getItemId,\n theme: theme,\n keyPrefix: \"react-autowhatever-\".concat(id, \"-\")\n });\n }\n }, {\n key: \"ensureHighlightedItemIsVisible\",\n value: function ensureHighlightedItemIsVisible() {\n var highlightedItem = this.highlightedItem;\n\n if (!highlightedItem) {\n return;\n }\n\n var itemsContainer = this.itemsContainer;\n var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop;\n var scrollTop = itemsContainer.scrollTop; // Top of the visible area\n\n if (itemOffsetRelativeToContainer < scrollTop) {\n // Item is off the top of the visible area\n scrollTop = itemOffsetRelativeToContainer;\n } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) {\n // Item is off the bottom of the visible area\n scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight;\n }\n\n if (scrollTop !== itemsContainer.scrollTop) {\n itemsContainer.scrollTop = scrollTop;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var theme = this.theme;\n var _this$props4 = this.props,\n id = _this$props4.id,\n multiSection = _this$props4.multiSection,\n renderInputComponent = _this$props4.renderInputComponent,\n renderItemsContainer = _this$props4.renderItemsContainer,\n highlightedSectionIndex = _this$props4.highlightedSectionIndex,\n highlightedItemIndex = _this$props4.highlightedItemIndex;\n var isInputFocused = this.state.isInputFocused;\n var renderedItems = multiSection ? this.renderSections() : this.renderItems();\n var isOpen = renderedItems !== null;\n var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex);\n var itemsContainerId = \"react-autowhatever-\".concat(id);\n\n var containerProps = _objectSpread({\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': itemsContainerId,\n 'aria-expanded': isOpen\n }, theme(\"react-autowhatever-\".concat(id, \"-container\"), 'container', isOpen && 'containerOpen'), {}, this.props.containerProps);\n\n var inputComponent = renderInputComponent(_objectSpread({\n type: 'text',\n value: '',\n autoComplete: 'off',\n 'aria-autocomplete': 'list',\n 'aria-controls': itemsContainerId,\n 'aria-activedescendant': ariaActivedescendant\n }, theme(\"react-autowhatever-\".concat(id, \"-input\"), 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), {}, this.props.inputProps, {\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown,\n ref: this.storeInputReference\n }));\n var itemsContainer = renderItemsContainer({\n containerProps: _objectSpread({\n id: itemsContainerId,\n role: 'listbox'\n }, theme(\"react-autowhatever-\".concat(id, \"-items-container\"), 'itemsContainer', isOpen && 'itemsContainerOpen'), {\n ref: this.storeItemsContainerReference\n }),\n children: renderedItems\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, inputComponent, itemsContainer);\n }\n }]);\n\n return Autowhatever;\n}(_react.Component);\n\nexports[\"default\"] = Autowhatever;\n\n_defineProperty(Autowhatever, \"propTypes\", {\n id: _propTypes[\"default\"].string,\n // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids.\n multiSection: _propTypes[\"default\"].bool,\n // Indicates whether a multi section layout should be rendered.\n renderInputComponent: _propTypes[\"default\"].func,\n // When specified, it is used to render the input element.\n renderItemsContainer: _propTypes[\"default\"].func,\n // Renders the items container.\n items: _propTypes[\"default\"].array.isRequired,\n // Array of items or sections to render.\n renderItem: _propTypes[\"default\"].func,\n // This function renders a single item.\n renderItemData: _propTypes[\"default\"].object,\n // Arbitrary data that will be passed to renderItem()\n renderSectionTitle: _propTypes[\"default\"].func,\n // This function gets a section and renders its title.\n getSectionItems: _propTypes[\"default\"].func,\n // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.\n containerProps: _propTypes[\"default\"].object,\n // Arbitrary container props\n inputProps: _propTypes[\"default\"].object,\n // Arbitrary input props\n itemProps: _propTypes[\"default\"].oneOfType([// Arbitrary item props\n _propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n highlightedSectionIndex: _propTypes[\"default\"].number,\n // Section index of the highlighted item\n highlightedItemIndex: _propTypes[\"default\"].number,\n // Highlighted item index (within a section)\n theme: _propTypes[\"default\"].oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable\n _propTypes[\"default\"].object, _propTypes[\"default\"].array])\n});\n\n_defineProperty(Autowhatever, \"defaultProps\", {\n id: '1',\n multiSection: false,\n renderInputComponent: defaultRenderInputComponent,\n renderItemsContainer: defaultRenderItemsContainer,\n renderItem: function renderItem() {\n throw new Error('`renderItem` must be provided');\n },\n renderItemData: emptyObject,\n renderSectionTitle: function renderSectionTitle() {\n throw new Error('`renderSectionTitle` must be provided');\n },\n getSectionItems: function getSectionItems() {\n throw new Error('`getSectionItems` must be provided');\n },\n containerProps: emptyObject,\n inputProps: emptyObject,\n itemProps: emptyObject,\n highlightedSectionIndex: null,\n highlightedItemIndex: null,\n theme: defaultTheme\n});","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nmodule.exports = function (_ref) {\n var data = _ref.data;\n var multiSection = _ref.multiSection;\n\n function nextNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = 0;\n } else {\n sectionIndex++;\n }\n\n while (sectionIndex < data.length && data[sectionIndex] === 0) {\n sectionIndex++;\n }\n\n return sectionIndex === data.length ? null : sectionIndex;\n }\n\n function prevNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = data.length - 1;\n } else {\n sectionIndex--;\n }\n\n while (sectionIndex >= 0 && data[sectionIndex] === 0) {\n sectionIndex--;\n }\n\n return sectionIndex === -1 ? null : sectionIndex;\n }\n\n function next(position) {\n var _position = _slicedToArray(position, 2);\n\n var sectionIndex = _position[0];\n var itemIndex = _position[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === data[sectionIndex] - 1) {\n sectionIndex = nextNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, 0];\n }\n\n return [sectionIndex, itemIndex + 1];\n }\n\n if (data === 0 || itemIndex === data - 1) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, 0];\n }\n\n return [null, itemIndex + 1];\n }\n\n function prev(position) {\n var _position2 = _slicedToArray(position, 2);\n\n var sectionIndex = _position2[0];\n var itemIndex = _position2[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === 0) {\n sectionIndex = prevNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, data[sectionIndex] - 1];\n }\n\n return [sectionIndex, itemIndex - 1];\n }\n\n if (data === 0 || itemIndex === 0) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, data - 1];\n }\n\n return [null, itemIndex - 1];\n }\n\n function isLast(position) {\n return next(position)[1] === null;\n }\n\n return {\n next: next,\n prev: prev,\n isLast: isLast\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar truthy = function truthy(x) {\n return x;\n};\n\nexports['default'] = function (input) {\n var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null];\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var theme = _ref2[0];\n var classNameDecorator = _ref2[1];\n\n return function (key) {\n for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n names[_key - 1] = arguments[_key];\n }\n\n var styles = names.map(function (name) {\n return theme[name];\n }).filter(truthy);\n\n return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) };\n };\n};\n\nmodule.exports = exports['default'];","'use strict';\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction ownEnumerableKeys(obj) {\n\tvar keys = Object.getOwnPropertyNames(obj);\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tkeys = keys.concat(Object.getOwnPropertySymbols(obj));\n\t}\n\n\treturn keys.filter(function (key) {\n\t\treturn propIsEnumerable.call(obj, key);\n\t});\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = ownEnumerableKeys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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\nvar SectionTitle = /*#__PURE__*/function (_Component) {\n _inherits(SectionTitle, _Component);\n\n var _super = _createSuper(SectionTitle);\n\n function SectionTitle() {\n _classCallCheck(this, SectionTitle);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SectionTitle, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n section = _this$props.section,\n renderSectionTitle = _this$props.renderSectionTitle,\n theme = _this$props.theme,\n sectionKeyPrefix = _this$props.sectionKeyPrefix;\n var sectionTitle = renderSectionTitle(section);\n\n if (!sectionTitle) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"title\"), 'sectionTitle'), sectionTitle);\n }\n }]);\n\n return SectionTitle;\n}(_react.Component);\n\nexports[\"default\"] = SectionTitle;\n\n_defineProperty(SectionTitle, \"propTypes\", {\n section: _propTypes[\"default\"].any.isRequired,\n renderSectionTitle: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n sectionKeyPrefix: _propTypes[\"default\"].string.isRequired\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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\nvar ItemsList = /*#__PURE__*/function (_Component) {\n _inherits(ItemsList, _Component);\n\n var _super = _createSuper(ItemsList);\n\n function ItemsList() {\n var _this;\n\n _classCallCheck(this, ItemsList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeHighlightedItemReference\", function (highlightedItem) {\n _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item);\n });\n\n return _this;\n }\n\n _createClass(ItemsList, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['itemProps']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n itemProps = _this$props.itemProps,\n renderItem = _this$props.renderItem,\n renderItemData = _this$props.renderItemData,\n sectionIndex = _this$props.sectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex,\n getItemId = _this$props.getItemId,\n theme = _this$props.theme,\n keyPrefix = _this$props.keyPrefix;\n var sectionPrefix = sectionIndex === null ? keyPrefix : \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isItemPropsFunction = typeof itemProps === 'function';\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", _extends({\n role: \"listbox\"\n }, theme(\"\".concat(sectionPrefix, \"items-list\"), 'itemsList')), items.map(function (item, itemIndex) {\n var isFirst = itemIndex === 0;\n var isHighlighted = itemIndex === highlightedItemIndex;\n var itemKey = \"\".concat(sectionPrefix, \"item-\").concat(itemIndex);\n var itemPropsObj = isItemPropsFunction ? itemProps({\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n }) : itemProps;\n\n var allItemProps = _objectSpread({\n id: getItemId(sectionIndex, itemIndex),\n 'aria-selected': isHighlighted\n }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), {}, itemPropsObj);\n\n if (isHighlighted) {\n allItemProps.ref = _this2.storeHighlightedItemReference;\n } // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n\n return /*#__PURE__*/_react[\"default\"].createElement(_Item[\"default\"], _extends({}, allItemProps, {\n sectionIndex: sectionIndex,\n isHighlighted: isHighlighted,\n itemIndex: itemIndex,\n item: item,\n renderItem: renderItem,\n renderItemData: renderItemData\n }));\n /* eslint-enable react/jsx-key */\n }));\n }\n }]);\n\n return ItemsList;\n}(_react.Component);\n\nexports[\"default\"] = ItemsList;\n\n_defineProperty(ItemsList, \"propTypes\", {\n items: _propTypes[\"default\"].array.isRequired,\n itemProps: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n sectionIndex: _propTypes[\"default\"].number,\n highlightedItemIndex: _propTypes[\"default\"].number,\n onHighlightedItemChange: _propTypes[\"default\"].func.isRequired,\n getItemId: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n keyPrefix: _propTypes[\"default\"].string.isRequired\n});\n\n_defineProperty(ItemsList, \"defaultProps\", {\n sectionIndex: null\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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\nvar Item = /*#__PURE__*/function (_Component) {\n _inherits(Item, _Component);\n\n var _super = _createSuper(Item);\n\n function Item() {\n var _this;\n\n _classCallCheck(this, Item);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemReference\", function (item) {\n if (item !== null) {\n _this.item = item;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (event) {\n var _this$props = _this.props,\n sectionIndex = _this$props.sectionIndex,\n itemIndex = _this$props.itemIndex;\n\n _this.props.onMouseEnter(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (event) {\n var _this$props2 = _this.props,\n sectionIndex = _this$props2.sectionIndex,\n itemIndex = _this$props2.itemIndex;\n\n _this.props.onMouseLeave(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var _this$props3 = _this.props,\n sectionIndex = _this$props3.sectionIndex,\n itemIndex = _this$props3.itemIndex;\n\n _this.props.onMouseDown(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props4 = _this.props,\n sectionIndex = _this$props4.sectionIndex,\n itemIndex = _this$props4.itemIndex;\n\n _this.props.onClick(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n return _this;\n }\n\n _createClass(Item, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['renderItemData']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n isHighlighted = _this$props5.isHighlighted,\n item = _this$props5.item,\n renderItem = _this$props5.renderItem,\n renderItemData = _this$props5.renderItemData,\n restProps = _objectWithoutProperties(_this$props5, [\"isHighlighted\", \"item\", \"renderItem\", \"renderItemData\"]);\n\n delete restProps.sectionIndex;\n delete restProps.itemIndex;\n\n if (typeof restProps.onMouseEnter === 'function') {\n restProps.onMouseEnter = this.onMouseEnter;\n }\n\n if (typeof restProps.onMouseLeave === 'function') {\n restProps.onMouseLeave = this.onMouseLeave;\n }\n\n if (typeof restProps.onMouseDown === 'function') {\n restProps.onMouseDown = this.onMouseDown;\n }\n\n if (typeof restProps.onClick === 'function') {\n restProps.onClick = this.onClick;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", _extends({\n role: \"option\"\n }, restProps, {\n ref: this.storeItemReference\n }), renderItem(item, _objectSpread({\n isHighlighted: isHighlighted\n }, renderItemData)));\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nexports[\"default\"] = Item;\n\n_defineProperty(Item, \"propTypes\", {\n sectionIndex: _propTypes[\"default\"].number,\n isHighlighted: _propTypes[\"default\"].bool.isRequired,\n itemIndex: _propTypes[\"default\"].number.isRequired,\n item: _propTypes[\"default\"].any.isRequired,\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n onMouseEnter: _propTypes[\"default\"].func,\n onMouseLeave: _propTypes[\"default\"].func,\n onMouseDown: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mapToAutowhateverTheme = exports.defaultTheme = void 0;\nvar defaultTheme = {\n container: 'react-autosuggest__container',\n containerOpen: 'react-autosuggest__container--open',\n input: 'react-autosuggest__input',\n inputOpen: 'react-autosuggest__input--open',\n inputFocused: 'react-autosuggest__input--focused',\n suggestionsContainer: 'react-autosuggest__suggestions-container',\n suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',\n suggestionsList: 'react-autosuggest__suggestions-list',\n suggestion: 'react-autosuggest__suggestion',\n suggestionFirst: 'react-autosuggest__suggestion--first',\n suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',\n sectionContainer: 'react-autosuggest__section-container',\n sectionContainerFirst: 'react-autosuggest__section-container--first',\n sectionTitle: 'react-autosuggest__section-title'\n};\nexports.defaultTheme = defaultTheme;\n\nvar mapToAutowhateverTheme = function mapToAutowhateverTheme(theme) {\n var result = {};\n\n for (var key in theme) {\n switch (key) {\n case 'suggestionsContainer':\n result['itemsContainer'] = theme[key];\n break;\n\n case 'suggestionsContainerOpen':\n result['itemsContainerOpen'] = theme[key];\n break;\n\n case 'suggestion':\n result['item'] = theme[key];\n break;\n\n case 'suggestionFirst':\n result['itemFirst'] = theme[key];\n break;\n\n case 'suggestionHighlighted':\n result['itemHighlighted'] = theme[key];\n break;\n\n case 'suggestionsList':\n result['itemsList'] = theme[key];\n break;\n\n default:\n result[key] = theme[key];\n }\n }\n\n return result;\n};\n\nexports.mapToAutowhateverTheme = mapToAutowhateverTheme;","var arrayFilter = require('./_arrayFilter'),\n arrayMap = require('./_arrayMap'),\n baseProperty = require('./_baseProperty'),\n baseTimes = require('./_baseTimes'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\nfunction unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n}\n\nmodule.exports = unzip;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import _ from 'lodash';\nimport { MutableDataFrame, ArrayVector, getFieldDisplayName } from '@grafana/data';\n\n// Transform\n\nfunction scale(factor: number, times: number[], values: number[]) {\n return {\n times: times,\n values: _.map(values, value => value * factor),\n };\n}\n\nfunction offset(delta: number, times: number[], values: number[]) {\n return {\n times: times,\n values: _.map(values, value => value + delta),\n };\n}\n\nfunction delta(times: number[], values: number[]) {\n const newTimes = [];\n const newValues = [];\n\n for (let i = 1; i < values.length; i += 1) {\n const deltaValue = values[i] - values[i - 1];\n newTimes.push(times[i]);\n newValues.push(deltaValue);\n }\n\n return {\n times: newTimes,\n values: newValues,\n };\n}\n\nfunction fluctuation(times: number[], values: number[]) {\n const newSeries = [];\n\n for (let i = 0; i < values.length; i += 1) {\n const flucValue = values[i] - values[0];\n newSeries.push(flucValue);\n }\n\n return {\n times: times,\n values: newSeries,\n };\n}\n\n// [Support Funcs] Transform wrapper\n\nfunction transformWrapper(func: (...args: any) => { times: number[]; values: number[] }, ...args: any) {\n const funcArgs = args.slice(0, -1);\n const dataFrames: MutableDataFrame[] = args[args.length - 1];\n\n const tsData = _.map(dataFrames, dataFrame => {\n const timesField = dataFrame.fields[0];\n const valField = dataFrame.fields[1];\n const vals = func(...funcArgs, timesField.values.toArray(), valField.values.toArray());\n\n const newTimesField = {\n ...timesField,\n values: new ArrayVector(vals.times),\n };\n\n const newValfield = {\n ...valField,\n values: new ArrayVector(vals.values),\n };\n\n return new MutableDataFrame({\n ...dataFrame,\n fields: [newTimesField, newValfield],\n });\n });\n\n return tsData;\n}\n\n// Filter Series\nfunction exclude(pattern: string, dataFrames: MutableDataFrame[]) {\n const regex = new RegExp(pattern);\n return _.filter(dataFrames, dataFrame => {\n const valfield = dataFrame.fields[1];\n const displayName = getFieldDisplayName(valfield, dataFrame);\n return !regex.test(displayName);\n });\n}\n\n// [Support Funcs] Datapoints aggregation functions\n\nfunction datapointsAvg(values: number[]) {\n return _.meanBy(values, value => value);\n}\n\nfunction datapointsMin(values: number[]) {\n const minPoint = _.minBy(values, value => value);\n return minPoint;\n}\n\nfunction datapointsMax(values: number[]) {\n const maxPoint = _.maxBy(values, value => value);\n return maxPoint;\n}\n\nfunction datapointsSum(values: number[]) {\n return _.sumBy(values, value => value);\n}\n\nfunction datapointsAbsMin(values: number[]) {\n const minPoint = _.minBy(values, value => Math.abs(value));\n\n if (minPoint === undefined) {\n return minPoint;\n }\n return Math.abs(minPoint);\n}\n\nfunction datapointsAbsMax(values: number[]) {\n const maxPoint = _.maxBy(values, value => Math.abs(value));\n\n if (maxPoint === undefined) {\n return maxPoint;\n }\n return Math.abs(maxPoint);\n}\n\nconst datapointsAggFuncs: { [key: string]: (values: number[]) => number | undefined } = {\n avg: datapointsAvg,\n min: datapointsMin,\n max: datapointsMax,\n sum: datapointsSum,\n absoluteMin: datapointsAbsMin,\n absoluteMax: datapointsAbsMax,\n};\n\n// [Support Funcs] Wrapper function for top and bottom function\n\nfunction extraction(order: string, n: number, orderFunc: string, dataFrames: MutableDataFrame[]) {\n const orderByCallback = datapointsAggFuncs[orderFunc];\n const sortByIteratee = (dataFrame: MutableDataFrame) => orderByCallback(dataFrame.fields[1].values.toArray());\n\n const sortedTsData = _.sortBy(dataFrames, sortByIteratee);\n if (order === 'bottom') {\n return _.slice(sortedTsData, 0, n);\n }\n\n return _.reverse(_.slice(sortedTsData, -n));\n}\n\n// Function list\n\nconst functions = {\n // Transform\n scale: _.partial(transformWrapper, scale),\n offset: _.partial(transformWrapper, offset),\n delta: _.partial(transformWrapper, delta),\n fluctuation: _.partial(transformWrapper, fluctuation),\n // Filter Series\n top: _.partial(extraction, 'top'),\n bottom: _.partial(extraction, 'bottom'),\n exclude,\n};\n\nexport default {\n get aaFunctions() {\n return functions;\n },\n};\n","import _ from 'lodash';\nimport { FuncDef } from './types';\nimport { MutableDataFrame } from '@grafana/data';\n\nconst funcIndex: { [key: string]: FuncDef } = {};\nconst categories: { [key: string]: FuncDef[] } = {\n Transform: [],\n 'Filter Series': [],\n Options: [],\n};\n\nfunction addFuncDef(newFuncDef: FuncDef) {\n const funcDef = { ...newFuncDef };\n\n funcDef.params = funcDef.params || [];\n funcDef.defaultParams = funcDef.defaultParams || [];\n\n if (funcDef.category) {\n categories[funcDef.category].push(funcDef);\n }\n funcIndex[funcDef.name] = funcDef;\n funcIndex[funcDef.shortName || funcDef.name] = funcDef;\n}\n\n// Transform\n\naddFuncDef({\n name: 'scale',\n category: 'Transform',\n params: [{ name: 'factor', type: 'float' }],\n defaultParams: ['100'],\n});\n\naddFuncDef({\n name: 'offset',\n category: 'Transform',\n params: [{ name: 'delta', type: 'float' }],\n defaultParams: ['100'],\n});\n\naddFuncDef({\n name: 'delta',\n category: 'Transform',\n params: [],\n defaultParams: [],\n});\n\naddFuncDef({\n name: 'fluctuation',\n category: 'Transform',\n params: [],\n defaultParams: [],\n});\n\n// Filter Series\n\naddFuncDef({\n name: 'top',\n category: 'Filter Series',\n params: [\n { name: 'number', type: 'int' },\n {\n name: 'value',\n type: 'string',\n options: ['avg', 'min', 'max', 'absoluteMin', 'absoluteMax', 'sum'],\n },\n ],\n defaultParams: ['5', 'avg'],\n});\n\naddFuncDef({\n name: 'bottom',\n category: 'Filter Series',\n params: [\n { name: 'number', type: 'int' },\n {\n name: 'value',\n type: 'string',\n options: ['avg', 'min', 'max', 'absoluteMin', 'absoluteMax', 'sum'],\n },\n ],\n defaultParams: ['5', 'avg'],\n});\n\naddFuncDef({\n name: 'exclude',\n category: 'Filter Series',\n params: [{ name: 'pattern', type: 'string' }],\n defaultParams: [''],\n});\n\n// Options\n\naddFuncDef({\n name: 'maxNumPVs',\n category: 'Options',\n params: [{ name: 'number', type: 'int' }],\n defaultParams: ['100'],\n});\n\naddFuncDef({\n name: 'binInterval',\n category: 'Options',\n params: [{ name: 'interval', type: 'int' }],\n defaultParams: ['900'],\n});\n\nclass FuncInstance {\n def: FuncDef;\n params: string[];\n text: string;\n\n constructor(funcDef: FuncDef, params: string[]) {\n this.text = '';\n this.def = funcDef;\n\n if (params) {\n this.params = params;\n } else {\n // Create with default params\n this.params = [];\n this.params = funcDef.defaultParams.slice(0);\n }\n\n this.updateText();\n }\n\n bindFunction(metricFunctions: { [key: string]: (...args: any[]) => MutableDataFrame[] }) {\n const func = metricFunctions[this.def.name];\n\n if (!func) {\n throw new Error(`Method not found ${this.def.name}`);\n }\n\n // Bind function arguments\n let bindedFunc = func;\n let param;\n for (let i = 0; i < this.params.length; i += 1) {\n param = this.params[i];\n\n // Convert numeric params\n if (this.def.params[i].type === 'int' || this.def.params[i].type === 'float') {\n param = Number(param);\n }\n bindedFunc = _.partial(bindedFunc, param);\n }\n return bindedFunc;\n }\n\n render(metricExp: string): string {\n const str = `${this.def.name}(`;\n const parameters = _.map(this.params, (value, index) => {\n const paramType = this.def.params[index].type;\n if (paramType === 'int' || paramType === 'float' || paramType === 'value_or_series' || paramType === 'boolean') {\n return value;\n }\n\n if (paramType === 'int_or_interval' && $.isNumeric(value)) {\n return value;\n }\n\n return `'${value}'`;\n });\n\n if (metricExp) {\n parameters.unshift(metricExp);\n }\n\n return `${str}${parameters.join(', ')})`;\n }\n\n _hasMultipleParamsInString(strValue: string, index: number) {\n if (strValue.indexOf(',') === -1) {\n return false;\n }\n\n return this.def.params[index + 1];\n }\n\n updateParam(strValue: string, index: number) {\n // handle optional parameters\n // if string contains ',' and next param is optional, split and update both\n if (this._hasMultipleParamsInString(strValue, index)) {\n _.each(strValue.split(','), (partVal: string, idx: number) => {\n this.updateParam(partVal.trim(), idx);\n });\n return;\n }\n\n if (strValue === '') {\n this.params.splice(index, 1);\n } else {\n this.params[index] = strValue;\n }\n\n this.updateText();\n }\n\n updateText() {\n if (this.params.length === 0) {\n this.text = `${this.def.name}()`;\n return;\n }\n\n const text = `${this.def.name}(${this.params.join(', ')})`;\n this.text = text;\n }\n}\n\nexport function createFuncInstance(funcDef: FuncDef, params: string[]) {\n if (_.isString(funcDef)) {\n if (!funcIndex[funcDef]) {\n throw new Error(`Method not found ${funcDef.name}`);\n }\n return new FuncInstance(funcIndex[funcDef], params);\n }\n\n return new FuncInstance(funcDef, params);\n}\n\nexport function getFuncDef(name: string) {\n return funcIndex[name];\n}\n\nexport function getCategories() {\n return categories;\n}\n","import { DataQuery, DataSourceJsonData } from '@grafana/data';\n\nexport interface AAQuery extends DataQuery {\n target: string;\n alias: string;\n operator: string;\n regex: boolean;\n aliasPattern: string;\n functions: FunctionDescriptor[];\n}\n\nexport const defaultQuery: Partial = {\n target: '',\n alias: '',\n operator: '',\n regex: false,\n aliasPattern: '',\n functions: [],\n};\n\nexport interface TargetQuery {\n target: string;\n refId: string;\n hide: boolean | undefined;\n alias: string;\n operator: string;\n functions: FunctionDescriptor[];\n regex: boolean;\n aliasPattern: string;\n options: { [key: string]: string };\n from: Date;\n to: Date;\n interval: string;\n}\n\nexport interface AADataQueryResponse {\n data: {\n data: {\n meta: { name: string; PREC: string };\n data: [{ secs: number; val: number; nanos: number; severity: number; status: number }];\n };\n };\n status: number;\n statusText: string;\n ok: boolean;\n redirected: boolean;\n type: string;\n url: string;\n}\n\nexport interface FuncDef {\n defaultParams?: any;\n shortName?: any;\n version?: string;\n category: string;\n description?: string;\n fake?: boolean;\n name: string;\n params: FuncDefParam[];\n}\n\nexport interface FunctionDescriptor {\n text: string;\n params: string[];\n def: FuncDef;\n}\n\nexport interface FuncDefParam {\n name: string;\n options?: string[];\n type: string;\n}\n\nexport const operatorList: string[] = [\n 'firstSample',\n 'lastSample',\n 'firstFill',\n 'lastFill',\n 'mean',\n 'min',\n 'max',\n 'count',\n 'ncount',\n 'nth',\n 'median',\n 'std',\n 'jitter',\n 'ignoreflyers',\n 'flyers',\n 'variance',\n 'popvariance',\n 'kurtosis',\n 'skewness',\n 'raw',\n];\n\n/**\n * These are options configured for each DataSource instance\n */\nexport interface AADataSourceOptions extends DataSourceJsonData {\n path?: string;\n}\n\n/**\n * Value that is used in the backend, but never sent over HTTP to the frontend\n */\nexport interface AASecureJsonData {\n apiKey?: string;\n}\n","import _ from 'lodash';\nimport { getBackendSrv, getTemplateSrv } from '@grafana/runtime';\nimport {\n DataQueryResponse,\n DataQueryRequest,\n DataSourceInstanceSettings,\n DataSourceApi,\n MutableDataFrame,\n FieldType,\n getFieldDisplayName,\n} from '@grafana/data';\nimport dataProcessor from './dataProcessor';\nimport * as aafunc from './aafunc';\nimport {\n AAQuery,\n AADataSourceOptions,\n TargetQuery,\n AADataQueryResponse,\n FunctionDescriptor,\n operatorList,\n} from './types';\n\nexport class DataSource extends DataSourceApi {\n url?: string | undefined;\n name: string;\n withCredentials?: boolean;\n headers: { [key: string]: string };\n\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.withCredentials = instanceSettings.withCredentials;\n this.headers = { 'Content-Type': 'application/json' };\n if (typeof instanceSettings.basicAuth === 'string' && instanceSettings.basicAuth.length > 0) {\n this.headers.Authorization = instanceSettings.basicAuth;\n }\n }\n\n // Called from Grafana panels to get data\n async query(options: DataQueryRequest): Promise {\n const rawTargets = this.buildQueryParameters(options);\n\n // Remove hidden target from query\n const targets = _.filter(rawTargets, t => !t.hide);\n\n if (targets.length <= 0) {\n return Promise.resolve({ data: [] });\n }\n\n const targetProcesses = _.map(targets, target => this.targetProcess(target));\n\n return Promise.all(targetProcesses).then(dataFramesArray => this.postProcess(dataFramesArray));\n }\n\n targetProcess(target: TargetQuery) {\n return this.buildUrls(target)\n .then((urls: string[]) => this.doMultiUrlRequests(urls))\n .then(responses => this.responseParse(responses))\n .then(dataFrames => this.setAlias(dataFrames, target))\n .then(dataFrames => this.applyFunctions(dataFrames, target));\n }\n\n postProcess(dataFramesArray: MutableDataFrame[][]) {\n const dataFrames = _.flatten(dataFramesArray);\n\n return { data: dataFrames };\n }\n\n buildUrls(target: TargetQuery): Promise {\n // Get Option values\n const maxNumPVs = Number(target.options.maxNumPVs) || 100;\n const binInterval = target.options.binInterval || target.interval;\n\n const targetPVs = this.parseTargetPV(target.target);\n\n // Create Promise to fetch PV names\n const pvnamesPromise = _.map(targetPVs, targetPV => {\n if (target.regex) {\n return this.pvNamesFindQuery(targetPV, maxNumPVs);\n }\n\n return Promise.resolve([targetPV]);\n });\n\n return Promise.all(pvnamesPromise).then(\n pvnamesArray =>\n new Promise((resolve, reject) => {\n const pvnames = _.slice(_.uniq(_.flatten(pvnamesArray)), 0, maxNumPVs);\n let urls;\n\n try {\n urls = _.map(pvnames, pvname =>\n this.buildUrl(pvname, target.operator, binInterval, target.from, target.to)\n );\n } catch (e) {\n reject(e);\n }\n\n resolve(urls);\n })\n );\n }\n\n buildUrl(pvname: string, operator: string, interval: string, from: Date, to: Date) {\n const pv = (() => {\n // raw Operator\n if (operator === 'raw' || interval === '') {\n return `${pvname}`;\n }\n\n // Default Operator\n if (_.includes(['', undefined], operator)) {\n return `mean_${interval}(${pvname})`;\n }\n\n // Other Operator\n if (_.includes(operatorList, operator)) {\n return `${operator}_${interval}(${pvname})`;\n }\n\n throw new Error('Data Processing Operator is invalid.');\n })();\n\n const url = `${this.url}/data/getData.json?pv=${encodeURIComponent(\n pv\n )}&from=${from.toISOString()}&to=${to.toISOString()}`;\n\n return url;\n }\n\n doMultiUrlRequests(urls: string[]) {\n const requests = _.map(urls, url => this.doRequest({ url, method: 'GET' }));\n\n return Promise.all(requests);\n }\n\n responseParse(responses: AADataQueryResponse[]) {\n const dataFramesArray = _.map(responses, response => {\n const dataFrames = _.map(response.data, targetRes => {\n const values = _.map(targetRes.data, datapoint => datapoint.val);\n const times = _.map(targetRes.data, datapoint => datapoint.secs * 1000 + _.floor(datapoint.nanos / 1000000));\n const frame = new MutableDataFrame({\n name: targetRes.meta.name,\n fields: [\n { name: 'time', type: FieldType.time, values: times },\n { name: 'value', type: FieldType.number, values: values, config: { displayName: targetRes.meta.name } },\n ],\n });\n return frame;\n });\n return dataFrames;\n });\n\n return Promise.resolve(_.flatten(dataFramesArray));\n }\n\n async setAlias(dataFrames: MutableDataFrame[], target: TargetQuery): Promise {\n if (!target.alias) {\n return Promise.resolve(dataFrames);\n }\n\n let pattern: RegExp;\n if (target.aliasPattern) {\n pattern = new RegExp(target.aliasPattern, '');\n }\n\n const newDataFrames = _.map(dataFrames, dataFrame => {\n let alias = target.alias;\n const valfield = dataFrame.fields[1];\n const displayName = getFieldDisplayName(valfield, dataFrame);\n\n if (pattern) {\n alias = displayName.replace(pattern, alias);\n }\n\n const newValfield = {\n ...valfield,\n config: {\n ...valfield.config,\n displayName: alias,\n },\n state: {\n ...valfield.state,\n displayName: alias,\n },\n };\n\n return new MutableDataFrame({\n ...dataFrame,\n fields: [dataFrame.fields[0], newValfield],\n });\n });\n\n return Promise.resolve(newDataFrames);\n }\n\n applyFunctions(dataFrames: MutableDataFrame[], target: TargetQuery) {\n if (target.functions === undefined) {\n return Promise.resolve(dataFrames);\n }\n\n return this.applyFunctionDefs(target.functions, ['Transform', 'Filter Series'], dataFrames);\n }\n\n // Called from Grafana data source configuration page to make sure the connection is working\n async testDatasource() {\n return { status: 'success', message: 'Data source is working', title: 'Success' };\n }\n\n pvNamesFindQuery(query: string | undefined | null, maxPvs: number) {\n if (!query) {\n return Promise.resolve([]);\n }\n\n const url = `${this.url}/bpl/getMatchingPVs?limit=${maxPvs}®ex=${encodeURIComponent(query)}`;\n\n return this.doRequest({\n url,\n method: 'GET',\n }).then(res => res.data);\n }\n\n // Called from Grafana variables to get values\n metricFindQuery(query: string) {\n /*\n * query format:\n * ex1) PV:NAME:.*\n * ex2) PV:NAME:.*?limit=10\n */\n const templateSrv = getTemplateSrv();\n const replacedQuery = templateSrv.replace(query, undefined, 'regex');\n const [pvQuery, paramsQuery] = replacedQuery.split('?', 2);\n const parsedPVs = this.parseTargetPV(pvQuery);\n\n // Parse query parameters\n let limitNum = 100;\n if (paramsQuery) {\n const params: URLSearchParams = new URLSearchParams(paramsQuery);\n const limit_param: string | null = params.get('limit');\n if (limit_param) {\n const limit = parseInt(limit_param, 10);\n limitNum = Number.isInteger(limit) ? limit : 100;\n }\n }\n\n const pvnamesPromise = _.map(parsedPVs, targetQuery => this.pvNamesFindQuery(targetQuery, limitNum));\n\n return Promise.all(pvnamesPromise).then(pvnamesArray => {\n const pvnames = _.slice(_.uniq(_.flatten(pvnamesArray)), 0, limitNum);\n return _.map(pvnames, pvname => ({ text: pvname }));\n });\n }\n\n doRequest(options: {\n method?: string;\n url: any;\n requestId?: any;\n withCredentials?: any;\n headers?: any;\n inspect?: any;\n }) {\n const newOptions = { ...options };\n newOptions.withCredentials = this.withCredentials;\n newOptions.headers = this.headers;\n\n const result = getBackendSrv().datasourceRequest(newOptions);\n return result;\n }\n\n buildQueryParameters(options: DataQueryRequest) {\n const templateSrv = getTemplateSrv();\n const query = { ...options };\n\n // remove placeholder targets and undefined targets\n query.targets = _.filter(query.targets, target => target.target !== '' && typeof target.target !== 'undefined');\n\n if (query.targets.length <= 0) {\n return [];\n }\n\n const from = new Date(String(query.range.from));\n const to = new Date(String(query.range.to));\n const rangeMsec = to.getTime() - from.getTime();\n const maxDataPoints = query.maxDataPoints || 2000;\n const intervalSec = _.floor(rangeMsec / (maxDataPoints * 1000));\n\n const interval = intervalSec >= 1 ? String(intervalSec) : '';\n\n const targets: TargetQuery[] = _.map(query.targets, target => {\n // Replace parameters with variables for each functions\n const functions = _.map(target.functions, func => {\n const newFunc = func;\n newFunc.params = _.map(newFunc.params, param => templateSrv.replace(param, query.scopedVars, 'regex'));\n return newFunc;\n });\n\n return {\n target: templateSrv.replace(target.target, query.scopedVars, 'regex'),\n refId: target.refId,\n hide: target.hide,\n alias: templateSrv.replace(target.alias, query.scopedVars, 'regex'),\n operator: templateSrv.replace(target.operator, query.scopedVars, 'regex'),\n functions,\n regex: target.regex,\n aliasPattern: target.aliasPattern,\n options: this.getOptions(target.functions),\n from,\n to,\n interval,\n };\n });\n\n return targets;\n }\n\n parseTargetPV(targetPV: string) {\n /*\n * ex) targetPV = ABC(1|2|3)EFG(5|6)\n * then\n * splitQueries = ['ABC','(1|2|3'), 'EFG', '(5|6)']\n * queries = [\n * ABC1EFG5, ABC1EFG6, ABC2EFG6,\n * ABC2EFG6, ABC3EFG5, ABC3EFG6\n * ]\n */\n const splitQueries = _.split(targetPV, /(\\(.*?\\))/);\n let queries = [''];\n\n _.forEach(splitQueries, (splitQuery, i) => {\n // Fixed string like 'ABC'\n if (i % 2 === 0) {\n queries = _.map(queries, query => `${query}${splitQuery}`);\n return;\n }\n\n // Regex OR string like '(1|2|3)'\n const orElems = _.split(_.trim(splitQuery, '()'), '|');\n\n const newQueries = _.map(queries, query => _.map(orElems, orElem => `${query}${orElem}`));\n queries = _.flatten(newQueries);\n });\n\n return queries;\n }\n\n applyFunctionDefs(functionDefs: FunctionDescriptor[], categories: string[], dataFrames: MutableDataFrame[]) {\n const applyFuncDefs = this.pickFuncDefsFromCategories(functionDefs, categories);\n\n const promises = _.reduce(\n applyFuncDefs,\n (prevPromise, func) =>\n prevPromise.then(res => {\n const funcInstance = aafunc.createFuncInstance(func.def, func.params);\n const bindedFunc = funcInstance.bindFunction(dataProcessor.aaFunctions);\n\n return Promise.resolve(bindedFunc(res));\n }),\n Promise.resolve(dataFrames)\n );\n\n return promises;\n }\n\n getOptions(functionDefs: FunctionDescriptor[]) {\n const appliedOptionFuncs = this.pickFuncDefsFromCategories(functionDefs, ['Options']);\n\n const options = _.reduce(\n appliedOptionFuncs,\n (optionMap: { [key: string]: string }, func) => {\n [optionMap[func.def.name]] = func.params;\n return optionMap;\n },\n {}\n );\n\n return options;\n }\n\n pickFuncDefsFromCategories(functionDefs: FunctionDescriptor[], categories: string[]) {\n const allCategorisedFuncDefs = aafunc.getCategories();\n\n const requiredCategoryFuncNames = _.reduce(\n categories,\n (funcNames: string[], category: string) => _.concat(funcNames, _.map(allCategorisedFuncDefs[category], 'name')),\n []\n );\n\n const pickedFuncDefs = _.filter(functionDefs, func => _.includes(requiredCategoryFuncNames, func.def.name));\n\n return pickedFuncDefs;\n }\n}\n","import React from 'react';\nimport { FunctionDescriptor } from '../types';\n\nexport interface FunctionEditorControlsProps {\n onMoveLeft: (func: FunctionDescriptor, index: number) => void;\n onMoveRight: (func: FunctionDescriptor, index: number) => void;\n onRemove: (func: FunctionDescriptor, index: number) => void;\n}\n\nconst FunctionHelpButton = (props: {\n description: string | undefined;\n name: string;\n onDescriptionShow: () => void;\n}) => {\n if (props.description) {\n return ;\n }\n\n return (\n {\n window.open(`https://sasaki77.github.io/archiverappliance-datasource/functions.html#${props.name}`, '_blank');\n }}\n />\n );\n};\n\nexport const FunctionEditorControls = (\n props: FunctionEditorControlsProps & {\n func: FunctionDescriptor;\n onDescriptionShow: () => void;\n index: number;\n }\n) => {\n const { func, index, onMoveLeft, onMoveRight, onRemove, onDescriptionShow } = props;\n return (\n \n onMoveLeft(func, index)} />\n \n onRemove(func, index)} />\n onMoveRight(func, index)} />\n \n );\n};\n","import React from 'react';\nimport { PopoverController, Popover } from '@grafana/ui';\nimport { FunctionEditorControls, FunctionEditorControlsProps } from './FunctionEditorControls';\nimport { FunctionDescriptor } from '../types';\n\ninterface FunctionEditorProps extends FunctionEditorControlsProps {\n func: FunctionDescriptor;\n index: number;\n}\n\ninterface FunctionEditorState {\n showingDescription: boolean;\n}\n\nclass FunctionEditor extends React.PureComponent {\n private triggerRef = React.createRef();\n\n constructor(props: FunctionEditorProps) {\n super(props);\n\n this.state = {\n showingDescription: false,\n };\n }\n\n renderContent = ({ updatePopperPosition }: any) => {\n const {\n onMoveLeft,\n onMoveRight,\n func: {\n def: { name, description },\n },\n } = this.props;\n const { showingDescription } = this.state;\n\n if (showingDescription) {\n return (\n
\n

{name}

\n
{description}
\n
\n );\n }\n\n return (\n {\n onMoveLeft(this.props.func, this.props.index);\n updatePopperPosition();\n }}\n onMoveRight={() => {\n onMoveRight(this.props.func, this.props.index);\n updatePopperPosition();\n }}\n onDescriptionShow={() => {\n this.setState({ showingDescription: true }, () => {\n updatePopperPosition();\n });\n }}\n />\n );\n };\n\n render() {\n return (\n \n {(showPopper, hidePopper, popperProps) => {\n return (\n <>\n {this.triggerRef && (\n {\n this.setState({ showingDescription: false });\n hidePopper();\n }}\n onMouseEnter={showPopper}\n renderArrow={({ arrowProps, placement }) => (\n
\n )}\n />\n )}\n\n {\n hidePopper();\n this.setState({ showingDescription: false });\n }}\n style={{ cursor: 'pointer' }}\n >\n {this.props.func.def.name}\n \n \n );\n }}\n \n );\n }\n}\n\nexport { FunctionEditor };\n","import React, { KeyboardEvent, FormEvent, FocusEvent } from 'react';\nimport Autosuggest from 'react-autosuggest';\n\nexport interface FunctionParamProps {\n param: string;\n paramDef: { name: string; options?: string[]; type: string };\n index: number;\n onChange: (paramIndex: number, newValue: string) => void;\n onRunQuery: () => void;\n}\n\ninterface State {\n suggestions: any[];\n focused: boolean;\n}\n\nconst getSuggestionValue = (suggestion: any) => {\n return suggestion;\n};\n\nconst renderSuggestion = (suggestion: any) => {\n return {suggestion};\n};\n\nclass FunctionParam extends React.PureComponent {\n state = { suggestions: [], focused: false };\n\n constructor(props: FunctionParamProps) {\n super(props);\n }\n\n onChange = (paramIndex: number, event: FormEvent, { newValue }: any) => {\n this.props.onChange(paramIndex, String(newValue));\n };\n\n onKeydownEnter = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n event.currentTarget.blur();\n }\n };\n\n onPVSuggestionsFetchRequested = ({ value }: { value: any }, options: string[] | undefined) => {\n const suggestions = options === undefined ? [] : options;\n this.setState({\n suggestions: suggestions,\n });\n };\n\n onPVSuggestionsClearRequested = () => {\n this.setState({\n suggestions: [],\n });\n };\n\n onSuggestionsSelected = (\n event: React.FormEvent,\n {\n suggestion,\n suggestionValue,\n suggestionIndex,\n sectionIndex,\n method,\n }: {\n suggestion: any;\n suggestionValue: string;\n suggestionIndex: number;\n sectionIndex: number | null;\n method: 'click' | 'enter';\n }\n ) => {\n if (method === 'enter') {\n event.currentTarget.blur();\n }\n };\n\n onFocus = (event: FocusEvent) => {\n this.setState({\n focused: true,\n });\n };\n\n onBlur = (event: FocusEvent) => {\n const { onRunQuery } = this.props;\n this.setState({\n focused: false,\n });\n onRunQuery();\n };\n\n calcInputWidth = (focused: boolean, param: string, placeholder: string) => {\n if (focused) {\n return '90px';\n }\n\n const paramLength = param.length;\n return paramLength < 1 ? `${placeholder.length}ch` : `${paramLength}ch`;\n };\n\n render() {\n const { suggestions, focused } = this.state;\n const { param, paramDef, index } = this.props;\n const inputWidth = this.calcInputWidth(focused, param, paramDef.name);\n return (\n
\n this.onPVSuggestionsFetchRequested(e, paramDef.options)}\n onSuggestionsClearRequested={this.onPVSuggestionsClearRequested}\n onSuggestionSelected={this.onSuggestionsSelected}\n getSuggestionValue={getSuggestionValue}\n renderSuggestion={renderSuggestion}\n inputProps={{\n value: param,\n className: 'tight-form-func-param',\n placeholder: paramDef ? paramDef.name : '',\n spellCheck: false,\n onChange: (e, params) => this.onChange(index, e, params),\n onBlur: this.onBlur,\n onKeyDown: this.onKeydownEnter,\n onFocus: this.onFocus,\n style: { width: inputWidth, fontFamily: 'Consolas, \"Courier New\", Courier, Monaco, monospace' },\n }}\n />\n
\n );\n }\n}\n\nexport { FunctionParam };\n","import zip from 'lodash/zip';\nimport React from 'react';\nimport { FunctionDescriptor } from '../types';\n\nimport { FunctionParam } from './FunctionParam';\n\nexport interface FunctionParamsProps {\n func: FunctionDescriptor;\n index: number;\n onChange: (func: FunctionDescriptor, index: number) => void;\n onRunQuery: () => void;\n}\n\nclass FunctionParams extends React.PureComponent {\n constructor(props: FunctionParamsProps) {\n super(props);\n }\n\n onParamChange = (paramIndex: number, newValue: string) => {\n const { func, index } = this.props;\n const { params } = func;\n const newParams = [...params];\n newParams.splice(paramIndex, 1, newValue);\n const newFunc = { ...func, params: newParams };\n this.props.onChange(newFunc, index);\n };\n\n render() {\n const { func, onRunQuery } = this.props;\n const { params, def } = func;\n const paramArray = zip(params, def.params);\n return (\n <>\n {paramArray &&\n paramArray.map(([param, paramDef], paramIndex) => {\n if (param === undefined || paramDef === undefined) {\n return;\n }\n\n return (\n \n {paramIndex > 0 ? : ''}\n
\n \n
\n
\n );\n })}\n \n );\n }\n}\n\nexport { FunctionParams };\n","import React from 'react';\nimport { FunctionDescriptor } from '../types';\n\nimport { FunctionEditor } from './FunctionEditor';\nimport { FunctionEditorControlsProps } from './FunctionEditorControls';\nimport { FunctionParams } from './FunctionParams';\n\nexport interface FunctionElemProps extends FunctionEditorControlsProps {\n func: FunctionDescriptor;\n index: number;\n onChange: (func: FunctionDescriptor, index: number) => void;\n onRunQuery: () => void;\n}\n\nclass FunctionElem extends React.PureComponent {\n constructor(props: FunctionElemProps) {\n super(props);\n }\n\n render() {\n const { onMoveLeft, onMoveRight, onRemove, func, index, onChange, onRunQuery } = this.props;\n return (\n \n \n (\n \n )\n \n );\n }\n}\n\nexport { FunctionElem };\n","import React from 'react';\nimport { reduce, each } from 'lodash';\nimport { ButtonCascader, CascaderOption } from '@grafana/ui';\nimport { getCategories } from '../aafunc';\nimport { FuncDef } from '../types';\n\nexport interface FunctionAddProps {\n addFunc: (func: FuncDef) => void;\n}\n\nconst getAllFunctionNames = (categories: { [key: string]: FuncDef[] }) => {\n const allNames: CascaderOption[] = reduce(\n categories,\n (list, category, key) => {\n const nlist: CascaderOption[] = [];\n each(category, func => nlist.push({ label: func.name, value: func }));\n list.push({ label: key, value: key, children: nlist });\n return list;\n },\n [] as CascaderOption[]\n );\n\n return allNames;\n};\n\nclass FunctionAdd extends React.PureComponent {\n constructor(props: FunctionAddProps) {\n super(props);\n }\n\n onChange = (value: any[], selectedOptions: CascaderOption[]) => {\n if (value.length < 2) {\n return;\n }\n this.props.addFunc(value[1]);\n };\n\n render() {\n const categories = getCategories();\n const allFunctions = getAllFunctionNames(categories);\n return (\n \n Add\n \n );\n }\n}\n\nexport { FunctionAdd };\n","import React from 'react';\nimport { InlineFormLabel } from '@grafana/ui';\nimport { createFuncInstance } from '../aafunc';\nimport { FuncDef, FunctionDescriptor } from '../types';\n\nimport { FunctionElem } from './FunctionElem';\nimport { FunctionAdd } from './FunctionAdd';\n\nexport interface FunctionsProps {\n funcs: FunctionDescriptor[];\n onChange: (func: FunctionDescriptor[]) => void;\n onRunQuery: () => void;\n}\n\nconst arrayMove = (array: any[], from: number, to: number): any[] => {\n const newArray = [...array];\n const moveElem = newArray.splice(from, 1)[0];\n newArray.splice(to, 0, moveElem);\n\n return newArray;\n};\n\nclass Functions extends React.PureComponent {\n constructor(props: FunctionsProps) {\n super(props);\n }\n\n addFunction = (funcDef: FuncDef) => {\n const { onChange, onRunQuery } = this.props;\n const newFunc = createFuncInstance(funcDef, funcDef.defaultParams);\n const newFuncs = [...this.props.funcs];\n newFuncs.push(newFunc);\n onChange(newFuncs);\n\n if (newFunc.params.length || newFunc.def.params.length === 0) {\n onRunQuery();\n }\n };\n\n handleRemoveFunction = (func: FunctionDescriptor, index: number) => {\n const { onChange, onRunQuery } = this.props;\n const newFuncs = [...this.props.funcs];\n newFuncs.splice(index, 1);\n onChange(newFuncs);\n onRunQuery();\n };\n\n handleMoveLeft = (func: FunctionDescriptor, index: number) => {\n if (index < 1) {\n return;\n }\n\n const { onChange, onRunQuery } = this.props;\n const newFuncs = arrayMove(this.props.funcs, index, index - 1);\n onChange(newFuncs);\n onRunQuery();\n };\n\n handleMoveRight = (func: FunctionDescriptor, index: number) => {\n if (index >= this.props.funcs.length - 1) {\n return;\n }\n\n const { onChange, onRunQuery } = this.props;\n const newFuncs = arrayMove(this.props.funcs, index, index + 1);\n onChange(newFuncs);\n onRunQuery();\n };\n\n onFuncChange = (func: FunctionDescriptor, index: number) => {\n const { onChange } = this.props;\n const newFuncs = [...this.props.funcs];\n newFuncs.splice(index, 1, func);\n onChange(newFuncs);\n };\n\n render() {\n const { funcs, onRunQuery } = this.props;\n return (\n
\n
\n \n Functions\n \n
\n
\n {funcs &&\n funcs.map((func, index) => (\n \n ))}\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n\nexport { Functions };\n","import defaults from 'lodash/defaults';\nimport React, { ChangeEvent, PureComponent, KeyboardEvent } from 'react';\nimport { InlineFormLabel, LegacyForms } from '@grafana/ui';\nimport { QueryEditorProps } from '@grafana/data';\nimport { getTemplateSrv } from '@grafana/runtime';\nimport Autosuggest from 'react-autosuggest';\nimport { DataSource } from '../DataSource';\nimport { AADataSourceOptions, AAQuery, defaultQuery, operatorList, FunctionDescriptor } from '../types';\n\nimport { Functions } from './Functions';\n\ntype Props = QueryEditorProps;\n\ninterface State {\n pvSuggestions: any[];\n oprSuggestions: any[];\n}\n\nconst colorYellow = '#d69e2e';\n\nconst getSuggestionValue = (suggestion: any) => {\n return suggestion;\n};\n\nconst renderSuggestion = (suggestion: any) => {\n return {suggestion};\n};\n\nexport class QueryEditor extends PureComponent {\n state = { pvSuggestions: [], oprSuggestions: [] };\n\n onPVChange = (event: ChangeEvent, { newValue }: any) => {\n const { onChange, query } = this.props;\n onChange({ ...query, target: newValue });\n };\n\n onRegexChange = (event: React.SyntheticEvent) => {\n const { onChange, onRunQuery, query } = this.props;\n onChange({ ...query, regex: !query.regex });\n onRunQuery();\n };\n\n onOperatorChange = (event: ChangeEvent, { newValue }: any) => {\n const { onChange, query } = this.props;\n onChange({ ...query, operator: newValue });\n };\n\n onAliasChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, alias: event.target.value });\n };\n\n onAliaspatternChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, aliasPattern: event.target.value });\n };\n\n onFuncsChange = (funcs: FunctionDescriptor[]) => {\n const { onChange, query } = this.props;\n onChange({ ...query, functions: funcs });\n };\n\n onKeydownEnter = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n event.currentTarget.blur();\n }\n };\n\n loadPVSuggestions(value: string) {\n const templateSrv = getTemplateSrv();\n const replacedQuery = templateSrv.replace(value, undefined, 'regex');\n const { regex } = this.props.query;\n const searchQuery = regex ? replacedQuery : `.*${replacedQuery}.*`;\n this.props.datasource.pvNamesFindQuery(searchQuery, 100).then((res: any) => {\n this.setState({\n pvSuggestions: res,\n });\n });\n }\n\n onPVSuggestionsFetchRequested = ({ value }: { value: any }) => {\n this.loadPVSuggestions(value);\n };\n\n onPVSuggestionsClearRequested = () => {\n this.setState({\n pvSuggestions: [],\n });\n };\n\n onOprSuggestionsFetchRequested = ({ value }: { value: any }) => {\n const escapedValue = value.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp('.*' + escapedValue, 'i');\n\n const suggestions = operatorList.filter(operator => regex.test(operator));\n\n this.setState({\n oprSuggestions: suggestions,\n });\n };\n\n onOprSuggestionsClearRequested = () => {\n this.setState({\n oprSuggestions: [],\n });\n };\n\n onSuggestionsSelected = (\n event: React.FormEvent,\n {\n suggestion,\n suggestionValue,\n suggestionIndex,\n sectionIndex,\n method,\n }: {\n suggestion: any;\n suggestionValue: string;\n suggestionIndex: number;\n sectionIndex: number | null;\n method: 'click' | 'enter';\n }\n ) => {\n if (method === 'enter') {\n event.currentTarget.blur();\n }\n };\n\n render() {\n const query = defaults(this.props.query, defaultQuery);\n const { pvSuggestions, oprSuggestions } = this.state;\n const { onRunQuery } = this.props;\n const pvInputStyle = query.regex ? { color: colorYellow } : {};\n const aliasInputStyle = query.aliasPattern ? { color: colorYellow } : {};\n\n return (\n <>\n
\n \n PV\n \n
\n true}\n inputProps={{\n value: query.target,\n className: 'gf-form-input',\n placeholder: 'PV name',\n spellCheck: false,\n style: pvInputStyle,\n onChange: this.onPVChange,\n onBlur: onRunQuery,\n onKeyDown: this.onKeydownEnter,\n }}\n />\n
\n \n
\n
\n \n Operator\n \n
\n true}\n inputProps={{\n value: query.operator,\n className: 'gf-form-input',\n placeholder: 'mean',\n spellCheck: false,\n onChange: this.onOperatorChange,\n onBlur: onRunQuery,\n onKeyDown: this.onKeydownEnter,\n }}\n />\n
\n
\n
\n \n Alias\n \n \n \n Alias pattern\n \n \n
\n \n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { DataSourceHttpSettings } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { AADataSourceOptions } from '../types';\n\nexport type Props = DataSourcePluginOptionsEditorProps;\n\nexport class ConfigEditor extends PureComponent {\n constructor(props: Props) {\n super(props);\n }\n\n render() {\n const { options, onOptionsChange } = this.props;\n\n return (\n <>\n \n \n );\n }\n}\n","import { DataSourcePlugin } from '@grafana/data';\nimport { loadPluginCss } from '@grafana/runtime';\nimport { DataSource } from './DataSource';\nimport { ConfigEditor, QueryEditor } from './components';\nimport { AAQuery, AADataSourceOptions } from './types';\n\nloadPluginCss({\n dark: 'plugins/sasaki77-archiverappliance-datasource/styles/dark.css',\n light: 'plugins/sasaki77-archiverappliance-datasource/styles/light.css',\n});\n\nexport const plugin = new DataSourcePlugin(DataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json new file mode 100644 index 0000000..a7eb340 --- /dev/null +++ b/dist/plugin.json @@ -0,0 +1,31 @@ +{ + "name": "ArchiverAppliance", + "id": "sasaki77-archiverappliance-datasource", + "type": "datasource", + + "metrics": true, + "annotations": false, + + "info": { + "description": "Archiver Appliance Datasource", + "author": { + "name": "Shinya Sasaki", + "url": "http://www-acc.kek.jp/WWW-ACC-exp/KEKB/control/KEKB-Control-home.html" + }, + "logos": { + "small": "img/EPICS_Logo.png", + "large": "img/EPICS_Logo.png" + }, + "links": [ + {"name": "GitHub", "url": "https://github.com/sasaki77/archiverappliance-datasource"}, + {"name": "MIT License", "url": "https://github.com/sasaki77/archiverappliance-datasource/blob/master/LICENSE"} + ], + "version": "1.0.1", + "updated": "2020-06-19" + }, + + "dependencies": { + "grafanaVersion": "7.X.X", + "plugins": [ ] + } +} diff --git a/dist/styles/dark.css b/dist/styles/dark.css new file mode 100644 index 0000000..8b23dcc --- /dev/null +++ b/dist/styles/dark.css @@ -0,0 +1 @@ +.react-autosuggest__container{position:relative}.react-autosuggest__suggestions-container{display:none}.react-autosuggest__suggestions-container--open{display:flex;position:absolute;border:1px solid #424345;background-color:#141414;border-bottom-left-radius:4px;border-bottom-right-radius:4px;max-height:200px;overflow-y:auto;z-index:2}.react-autosuggest__suggestions-list{margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion{cursor:pointer;padding:4px 20px}.react-autosuggest__suggestion--highlighted{background-color:#222426} \ No newline at end of file diff --git a/dist/styles/dark.css.map b/dist/styles/dark.css.map new file mode 100644 index 0000000..566743d --- /dev/null +++ b/dist/styles/dark.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///dark.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,aAAa;EACb,kBAAkB;EAClB,yBAAyB;EACzB,yBAAyB;EACzB,8BAA8B;EAC9B,+BAA+B;EAC/B,iBAAiB;EACjB,gBAAgB;EAChB,UAAU;AACZ;;AAEA;EACE,SAAS;EACT,UAAU;EACV,qBAAqB;AACvB;;AAEA;EACE,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,yBAAyB;AAC3B","file":"styles/dark.css","sourcesContent":[".react-autosuggest__container {\n position: relative;\n}\n\n.react-autosuggest__suggestions-container {\n display: none;\n}\n\n.react-autosuggest__suggestions-container--open {\n display: flex;\n position: absolute;\n border: 1px solid #424345;\n background-color: #141414;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n max-height: 200px;\n overflow-y: auto;\n z-index: 2;\n}\n\n.react-autosuggest__suggestions-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.react-autosuggest__suggestion {\n cursor: pointer;\n padding: 4px 20px;\n}\n\n.react-autosuggest__suggestion--highlighted {\n background-color: #222426;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/styles/light.css b/dist/styles/light.css new file mode 100644 index 0000000..eb59cd5 --- /dev/null +++ b/dist/styles/light.css @@ -0,0 +1 @@ +.react-autosuggest__container{position:relative}.react-autosuggest__suggestions-container{display:none}.react-autosuggest__suggestions-container--open{display:flex;position:absolute;border:1px solid #c7d0d9;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px;max-height:200px;overflow-y:auto;z-index:2}.react-autosuggest__suggestions-list{margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion{cursor:pointer;padding:4px 20px}.react-autosuggest__suggestion--highlighted{background-color:#dce1e6} \ No newline at end of file diff --git a/dist/styles/light.css.map b/dist/styles/light.css.map new file mode 100644 index 0000000..9d417da --- /dev/null +++ b/dist/styles/light.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///light.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,aAAa;EACb,kBAAkB;EAClB,yBAAyB;EACzB,yBAAyB;EACzB,8BAA8B;EAC9B,+BAA+B;EAC/B,iBAAiB;EACjB,gBAAgB;EAChB,UAAU;AACZ;;AAEA;EACE,SAAS;EACT,UAAU;EACV,qBAAqB;AACvB;;AAEA;EACE,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,yBAAyB;AAC3B","file":"styles/light.css","sourcesContent":[".react-autosuggest__container {\n position: relative;\n}\n\n.react-autosuggest__suggestions-container {\n display: none;\n}\n\n.react-autosuggest__suggestions-container--open {\n display: flex;\n position: absolute;\n border: 1px solid #c7d0d9;\n background-color: #ffffff;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n max-height: 200px;\n overflow-y: auto;\n z-index: 2;\n}\n\n.react-autosuggest__suggestions-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.react-autosuggest__suggestion {\n cursor: pointer;\n padding: 4px 20px;\n}\n\n.react-autosuggest__suggestion--highlighted {\n background-color: #dce1e6;\n}\n"],"sourceRoot":""} \ No newline at end of file