From 07bb733486a340fc168edbbc863baf285be296a6 Mon Sep 17 00:00:00 2001 From: Tierney Cyren Date: Fri, 14 Jun 2024 16:40:21 -0400 Subject: [PATCH 1/4] chore: delete experimental-flex-dialpad due to insufficent testing Signed-off-by: Tierney Cyren --- experimental-flex-dialpad/.env.example | 10 - experimental-flex-dialpad/.owners | 4 - experimental-flex-dialpad/CHANGELOG.md | 8 - experimental-flex-dialpad/README.md | 64 --- .../flex-dialpad-addon.js.LICENSE.private.txt | 42 -- .../assets/flex-dialpad-addon.js.private.map | 1 - .../assets/flex-dialpad-addon.private.js | 3 - .../assets/helpers/flex-plugins.private.js | 411 ------------------ .../assets/helpers/setup.private.js | 129 ------ experimental-flex-dialpad/assets/index.html | 136 ------ .../functions/dialpad-utils.js | 15 - .../add-conference-participant.js | 29 -- .../external-transfer/get-call-properties.js | 21 - .../hold-conference-participant.js | 31 -- .../remove-conference-participant.js | 27 -- .../update-conference-participant.js | 33 -- .../agent-join-conference.protected.js | 12 - .../agent-outbound-join.protected.js | 14 - .../call-outbound-join.protected.js | 133 ------ .../internal-call/cleanup-rejected-task.js | 24 - .../functions/internal-call/hold-call.js | 28 -- experimental-flex-dialpad/functions/setup.js | 55 --- experimental-flex-dialpad/package.json | 16 - experimental-flex-dialpad/tests/setup.test.js | 7 - experimental-flex-dialpad/ui-src/.env.example | 2 - experimental-flex-dialpad/ui-src/.gitignore | 71 --- experimental-flex-dialpad/ui-src/README.md | 158 ------- .../ui-src/jest.config.js | 8 - experimental-flex-dialpad/ui-src/package.json | 23 - .../ui-src/public/appConfig.example.js | 9 - .../ui-src/screenshots/outbound-filter.png | Bin 123219 -> 0 bytes .../ui-src/src/DialpadPlugin.js | 23 - .../ExternalTransfer/ConferenceButton.js | 35 -- .../ExternalTransfer/ConferenceDialog.js | 143 ------ .../ExternalTransfer/ConferenceMonitor.js | 128 ------ .../ParticipantActionsButtons.js | 185 -------- .../ExternalTransfer/ParticipantName.js | 75 ---- .../ExternalTransfer/ParticipantStatus.js | 56 --- .../ParticipantStatusContainer.js | 27 -- .../src/components/ExternalTransfer/index.js | 77 ---- .../InternalCall/InternalDialpad.jsx | 136 ------ .../src/components/InternalCall/index.js | 46 -- .../customActions/externalTransfer/index.js | 14 - .../ui-src/src/customActions/index.js | 141 ------ .../src/customActions/internalCall/index.js | 78 ---- .../ui-src/src/helpers/ConferenceService.js | 145 ------ .../ui-src/src/helpers/request.js | 21 - experimental-flex-dialpad/ui-src/src/index.js | 4 - .../ui-src/src/notifications/index.js | 18 - .../ui-src/src/setupTests.js | 8 - .../ui-src/src/styling/theme.js | 57 --- .../ui-src/webpack.config.js | 8 - .../ui-src/webpack.dev.js | 8 - 53 files changed, 2957 deletions(-) delete mode 100644 experimental-flex-dialpad/.env.example delete mode 100644 experimental-flex-dialpad/.owners delete mode 100644 experimental-flex-dialpad/CHANGELOG.md delete mode 100644 experimental-flex-dialpad/README.md delete mode 100644 experimental-flex-dialpad/assets/flex-dialpad-addon.js.LICENSE.private.txt delete mode 100644 experimental-flex-dialpad/assets/flex-dialpad-addon.js.private.map delete mode 100644 experimental-flex-dialpad/assets/flex-dialpad-addon.private.js delete mode 100644 experimental-flex-dialpad/assets/helpers/flex-plugins.private.js delete mode 100644 experimental-flex-dialpad/assets/helpers/setup.private.js delete mode 100644 experimental-flex-dialpad/assets/index.html delete mode 100644 experimental-flex-dialpad/functions/dialpad-utils.js delete mode 100644 experimental-flex-dialpad/functions/external-transfer/add-conference-participant.js delete mode 100644 experimental-flex-dialpad/functions/external-transfer/get-call-properties.js delete mode 100644 experimental-flex-dialpad/functions/external-transfer/hold-conference-participant.js delete mode 100644 experimental-flex-dialpad/functions/external-transfer/remove-conference-participant.js delete mode 100644 experimental-flex-dialpad/functions/external-transfer/update-conference-participant.js delete mode 100644 experimental-flex-dialpad/functions/internal-call/agent-join-conference.protected.js delete mode 100644 experimental-flex-dialpad/functions/internal-call/agent-outbound-join.protected.js delete mode 100644 experimental-flex-dialpad/functions/internal-call/call-outbound-join.protected.js delete mode 100644 experimental-flex-dialpad/functions/internal-call/cleanup-rejected-task.js delete mode 100644 experimental-flex-dialpad/functions/internal-call/hold-call.js delete mode 100644 experimental-flex-dialpad/functions/setup.js delete mode 100644 experimental-flex-dialpad/package.json delete mode 100644 experimental-flex-dialpad/tests/setup.test.js delete mode 100644 experimental-flex-dialpad/ui-src/.env.example delete mode 100644 experimental-flex-dialpad/ui-src/.gitignore delete mode 100644 experimental-flex-dialpad/ui-src/README.md delete mode 100644 experimental-flex-dialpad/ui-src/jest.config.js delete mode 100644 experimental-flex-dialpad/ui-src/package.json delete mode 100644 experimental-flex-dialpad/ui-src/public/appConfig.example.js delete mode 100644 experimental-flex-dialpad/ui-src/screenshots/outbound-filter.png delete mode 100644 experimental-flex-dialpad/ui-src/src/DialpadPlugin.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceButton.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceDialog.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceMonitor.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantActionsButtons.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantName.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantStatus.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantStatusContainer.js delete mode 100755 experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/components/InternalCall/InternalDialpad.jsx delete mode 100644 experimental-flex-dialpad/ui-src/src/components/InternalCall/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/customActions/externalTransfer/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/customActions/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/customActions/internalCall/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/helpers/ConferenceService.js delete mode 100644 experimental-flex-dialpad/ui-src/src/helpers/request.js delete mode 100644 experimental-flex-dialpad/ui-src/src/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/notifications/index.js delete mode 100644 experimental-flex-dialpad/ui-src/src/setupTests.js delete mode 100644 experimental-flex-dialpad/ui-src/src/styling/theme.js delete mode 100644 experimental-flex-dialpad/ui-src/webpack.config.js delete mode 100644 experimental-flex-dialpad/ui-src/webpack.dev.js diff --git a/experimental-flex-dialpad/.env.example b/experimental-flex-dialpad/.env.example deleted file mode 100644 index e52e555a..00000000 --- a/experimental-flex-dialpad/.env.example +++ /dev/null @@ -1,10 +0,0 @@ -# description: SID of the TaskRouter workflow used for transfers -# configurable: false -TWILIO_WORKFLOW_SID= - -# description: SID for the TaskRouter Workspace that contains your workflow -# configurable: false -TWILIO_WORKSPACE_SID= - -# description: The phone number used for your transfers -TWILIO_PHONE_NUMBER= \ No newline at end of file diff --git a/experimental-flex-dialpad/.owners b/experimental-flex-dialpad/.owners deleted file mode 100644 index e2c1252c..00000000 --- a/experimental-flex-dialpad/.owners +++ /dev/null @@ -1,4 +0,0 @@ -dkundel -alisontanu -pthirumurthi -# Insert your Github username here diff --git a/experimental-flex-dialpad/CHANGELOG.md b/experimental-flex-dialpad/CHANGELOG.md deleted file mode 100644 index 3982d461..00000000 --- a/experimental-flex-dialpad/CHANGELOG.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changelog - -## [Unreleased] - -## [1.0.0] -### Added -- Initial release. - diff --git a/experimental-flex-dialpad/README.md b/experimental-flex-dialpad/README.md deleted file mode 100644 index 2c511b51..00000000 --- a/experimental-flex-dialpad/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# flex-dialpad - -Adds agent to agent outbound call and external number transfer to Twilio Flex native dialpad - -## Pre-requisites - -### Environment variables - -This project requires some environment variables to be set. A file named `.env` is used to store the values for those environment variables. To keep your tokens and secrets secure, make sure to not commit the `.env` file in git. When setting up the project with `twilio serverless:init ...` the Twilio CLI will create a `.gitignore` file that excludes `.env` from the version history. - -In your `.env` file, set the following values: - -| Variable | Description | Required | -| :------- | :---------- | :------- | - - -### Function Parameters - -`/blank` expects the following parameters: - -| Parameter | Description | Required | -| :-------- | :---------- | :------- | - - -`/hello-messaging` is protected and requires a valid Twilio signature as well as the following parameters: - -| Parameter | Description | Required | -| :-------- | :---------- | :------- | - - -## Create a new project with the template - -1. Install the [Twilio CLI](https://www.twilio.com/docs/twilio-cli/quickstart#install-twilio-cli) -2. Install the [serverless toolkit](https://www.twilio.com/docs/labs/serverless-toolkit/getting-started) - -```shell -twilio plugins:install @twilio-labs/plugin-serverless -``` - -3. Initiate a new project - -``` -twilio serverless:init example --template=flex-dialpad && cd example -``` - -4. Start the server with the [Twilio CLI](https://www.twilio.com/docs/twilio-cli/quickstart): - -``` -twilio serverless:start -``` - -5. Open the web page at https://localhost:3000/index.html and enter your phone number to test - -ℹ️ Check the developer console and terminal for any errors, make sure you've set your environment variables. - -## Deploying - -Deploy your functions and assets with either of the following commands. Note: you must run these commands from inside your project folder. [More details in the docs.](https://www.twilio.com/docs/labs/serverless-toolkit) - -With the [Twilio CLI](https://www.twilio.com/docs/twilio-cli/quickstart): - -``` -twilio serverless:deploy -``` diff --git a/experimental-flex-dialpad/assets/flex-dialpad-addon.js.LICENSE.private.txt b/experimental-flex-dialpad/assets/flex-dialpad-addon.js.LICENSE.private.txt deleted file mode 100644 index 451691cb..00000000 --- a/experimental-flex-dialpad/assets/flex-dialpad-addon.js.LICENSE.private.txt +++ /dev/null @@ -1,42 +0,0 @@ -/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * Programatically add the following - */ - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -/*! - * isobject - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - -/** - * CSS Vendor prefix detection and property feature testing. - * - * @copyright Oleg Slobodskoi 2015 - * @website https://github.com/jsstyles/css-vendor - * @license MIT - */ - -/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ diff --git a/experimental-flex-dialpad/assets/flex-dialpad-addon.js.private.map b/experimental-flex-dialpad/assets/flex-dialpad-addon.js.private.map deleted file mode 100644 index 3264113f..00000000 --- a/experimental-flex-dialpad/assets/flex-dialpad-addon.js.private.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"flex-dialpad-addon.js","sourceRoot":""} \ No newline at end of file diff --git a/experimental-flex-dialpad/assets/flex-dialpad-addon.private.js b/experimental-flex-dialpad/assets/flex-dialpad-addon.private.js deleted file mode 100644 index 9f853f52..00000000 --- a/experimental-flex-dialpad/assets/flex-dialpad-addon.private.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see flex-dialpad-addon.js.LICENSE.txt */ -!function(e){var t={};function __webpack_require__(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,__webpack_require__),r.l=!0,r.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,n){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},__webpack_require__.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(__webpack_require__.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)__webpack_require__.d(n,r,function(t){return e[t]}.bind(null,r));return n},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="/Users/dkundel/Developer/function-templates/flex-dialpad/ui-src/public",__webpack_require__(__webpack_require__.s=96)}([function(e,t){e.exports=React},function(e,t){e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},function(e,t){let n=window.Twilio.Flex;window.Twilio&&window.Twilio.FlexProxy&&window.Twilio.FlexProxy["flex-dialpad-addon"]&&(n=window.Twilio.FlexProxy["flex-dialpad-addon"]),e.exports=n},function(e,t,n){e.exports=n(104)()},function(e,t){function _extends(){return e.exports=_extends=Object.assign||function(e){for(var t=1;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t,n){"use strict";var r=n(53),o=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.sheetsManager=void 0;var a=o(n(4)),i=o(n(9)),s=o(n(10)),l=o(n(11)),u=o(n(12)),c=o(n(13)),f=o(n(5)),d=o(n(0)),p=o(n(3)),h=(o(n(14)),o(n(54))),v=(o(n(36)),o(n(29)),o(n(107))),y=n(56),m=r(n(55)),g=o(n(62)),b=o(n(63)),_=o(n(40)),x=o(n(42)),S=o(n(65)),w=o(n(156)),C=o(n(157)),k=(0,y.create)((0,g.default)()),R=(0,S.default)(),E=-1e11,j=new Map;t.sheetsManager=j;var I,A={};function getDefaultTheme(){return I||(I=(0,_.default)())}var D=function withStyles(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var r=t.withTheme,o=void 0!==r&&r,y=t.flip,g=void 0===y?null:y,_=t.name,S=(0,f.default)(t,["withTheme","flip","name"]),I=(0,w.default)(e),D=I.themingEnabled||o||"string"===typeof _;E+=1,I.options.index=E;var N=function(e){function WithStyles(e,t){var n;(0,i.default)(this,WithStyles),(n=(0,l.default)(this,(0,u.default)(WithStyles).call(this,e,t))).disableStylesGeneration=!1,n.jss=null,n.sheetOptions=null,n.sheetsManager=j,n.stylesCreatorSaved=null,n.theme=null,n.unsubscribeId=null,n.state={},n.jss=t[m.jss]||k;var r=t.muiThemeProviderOptions;return r&&(r.sheetsManager&&(n.sheetsManager=r.sheetsManager),n.disableStylesGeneration=r.disableStylesGeneration),n.stylesCreatorSaved=I,n.sheetOptions=(0,a.default)({generateClassName:R},t[m.sheetOptions]),n.theme=D?x.default.initial(t)||getDefaultTheme():A,n.attach(n.theme),n.cacheClasses={value:null,lastProp:null,lastJSS:{}},n}return(0,c.default)(WithStyles,e),(0,s.default)(WithStyles,[{key:"componentDidMount",value:function componentDidMount(){var e=this;D&&(this.unsubscribeId=x.default.subscribe(this.context,(function(t){var n=e.theme;e.theme=t,e.attach(e.theme),e.setState({},(function(){e.detach(n)}))})))}},{key:"componentDidUpdate",value:function componentDidUpdate(){this.stylesCreatorSaved}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.detach(this.theme),null!==this.unsubscribeId&&x.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"getClasses",value:function getClasses(){var e=!1;if(!this.disableStylesGeneration){var t=this.sheetsManager.get(this.stylesCreatorSaved).get(this.theme);t.sheet.classes!==this.cacheClasses.lastJSS&&(this.cacheClasses.lastJSS=t.sheet.classes,e=!0)}return this.props.classes!==this.cacheClasses.lastProp&&(this.cacheClasses.lastProp=this.props.classes,e=!0),e&&(this.cacheClasses.value=(0,b.default)({baseClasses:this.cacheClasses.lastJSS,newClasses:this.props.classes,Component:n,noBase:this.disableStylesGeneration})),this.cacheClasses.value}},{key:"attach",value:function attach(e){if(!this.disableStylesGeneration){var t=this.stylesCreatorSaved,n=this.sheetsManager.get(t);n||(n=new Map,this.sheetsManager.set(t,n));var r=n.get(e);if(r||(r={refs:0,sheet:null},n.set(e,r)),0===r.refs){var o=t.create(e,_),i=_;0;var s=this.jss.createStyleSheet(o,(0,a.default)({meta:i,classNamePrefix:i,flip:"boolean"===typeof g?g:"rtl"===e.direction,link:!1},this.sheetOptions,t.options,{name:_},S));r.sheet=s,s.attach();var l=this.context[m.sheetsRegistry];l&&l.add(s)}r.refs+=1}}},{key:"detach",value:function detach(e){if(!this.disableStylesGeneration){var t=this.stylesCreatorSaved,n=this.sheetsManager.get(t),r=n.get(e);if(r.refs-=1,0===r.refs){n.delete(e),this.jss.removeStyleSheet(r.sheet);var o=this.context[m.sheetsRegistry];o&&o.remove(r.sheet)}}}},{key:"render",value:function render(){var e=this.props,t=(e.classes,e.innerRef),r=(0,f.default)(e,["classes","innerRef"]),i=(0,C.default)({theme:this.theme,name:_});return o&&(i.theme=this.theme),d.default.createElement(n,(0,a.default)({},i,{classes:this.getClasses(),ref:t},r))}}]),WithStyles}(d.default.Component);return N.propTypes={},N.contextTypes=(0,a.default)({muiThemeProviderOptions:p.default.object},v.default,D?x.default.contextTypes:{}),(0,h.default)(N,n),N}};t.default=D},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function classNames(){for(var e=[],t=0;t-1?e[n]:void 0},t.createChainedFunction=function createChainedFunction(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]&&arguments[1];if(!Array.isArray(e))return e;var n="";if(Array.isArray(e[0]))for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:"unnamed",t=arguments[1],n=arguments[2],i=n.jss,s=(0,a.default)(t),l=i.plugins.onCreateRule(e,s,n);if(l)return l;"@"===e[0]&&(0,r.default)(!1,"[JSS] Unknown at-rule %s",e);return new o.default(e,s,n)};var r=_interopRequireDefault(n(18)),o=_interopRequireDefault(n(19)),a=_interopRequireDefault(n(111));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";n.r(t),n.d(t,"isBrowser",(function(){return o}));var 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},o="object"===("undefined"===typeof window?"undefined":r(window))&&"object"===("undefined"===typeof document?"undefined":r(document))&&9===document.nodeType;t.default=o},function(e,t,n){"use strict";n.r(t);var r=function isMergeableObject(e){return function isNonNullObject(e){return!!e&&"object"===typeof e}(e)&&!function isSpecial(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function isReactElement(e){return e.$$typeof===o}(e)}(e)};var o="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function cloneUnlessOtherwiseSpecified(e,t){return!1!==t.clone&&t.isMergeableObject(e)?deepmerge(function emptyTarget(e){return Array.isArray(e)?[]:{}}(e),e,t):e}function defaultArrayMerge(e,t,n){return e.concat(t).map((function(e){return cloneUnlessOtherwiseSpecified(e,n)}))}function deepmerge(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||defaultArrayMerge,n.isMergeableObject=n.isMergeableObject||r;var o=Array.isArray(t);return o===Array.isArray(e)?o?n.arrayMerge(e,t,n):function mergeObject(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach((function(t){r[t]=cloneUnlessOtherwiseSpecified(e[t],n)})),Object.keys(t).forEach((function(o){n.isMergeableObject(t[o])&&e[o]?r[o]=deepmerge(e[o],t[o],n):r[o]=cloneUnlessOtherwiseSpecified(t[o],n)})),r}(e,t,n):cloneUnlessOtherwiseSpecified(t,n)}deepmerge.all=function deepmergeAll(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return deepmerge(e,n,t)}),{})};var a=deepmerge;t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadCSS=t.loadJS=t.getRuntimeUrl=t.getAssetsUrl=t.FlexPlugin=t.loadPlugin=void 0;var r=n(97);Object.defineProperty(t,"loadPlugin",{enumerable:!0,get:function(){return r.loadPlugin}}),Object.defineProperty(t,"FlexPlugin",{enumerable:!0,get:function(){return r.FlexPlugin}});var o=n(98);Object.defineProperty(t,"getAssetsUrl",{enumerable:!0,get:function(){return o.getAssetsUrl}}),Object.defineProperty(t,"getRuntimeUrl",{enumerable:!0,get:function(){return o.getRuntimeUrl}});var a=n(99);Object.defineProperty(t,"loadJS",{enumerable:!0,get:function(){return a.loadJS}});var i=n(100);Object.defineProperty(t,"loadCSS",{enumerable:!0,get:function(){return i.loadCSS}})},function(e,t){function _typeof2(e){return(_typeof2="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function _typeof2(e){return typeof e}:function _typeof2(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(t){return"function"===typeof Symbol&&"symbol"===_typeof2(Symbol.iterator)?e.exports=_typeof=function _typeof(e){return _typeof2(e)}:e.exports=_typeof=function _typeof(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_typeof2(e)},_typeof(t)}e.exports=_typeof},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function getDisplayName(e){return"string"===typeof e?e:e?e.displayName||e.name||"Component":void 0};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function toCss(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o="";if(!t)return o;var a=n.indent,i=void 0===a?0:a,s=t.fallbacks;if(i++,s)if(Array.isArray(s))for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,m=void 0===r?{}:r,g=e.palette,b=void 0===g?{}:g,_=e.shadows,x=e.typography,S=void 0===x?{}:x,w=(0,a.default)(e,["breakpoints","mixins","palette","shadows","typography"]),C=(0,c.default)(b),k=(0,l.default)(n),R=(0,o.default)({breakpoints:k,direction:"ltr",mixins:(0,u.default)(k,h.default,m),overrides:{},palette:C,props:{},shadows:_||d.default,typography:(0,f.default)(C,S)},(0,i.default)({shape:p.default,spacing:h.default,transitions:v.default,zIndex:y.default},w,{isMergeableObject:s.default}));return R};t.default=m},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isNumber=t.isString=t.formatMs=t.duration=t.easing=void 0;var o=r(n(5)),a=(r(n(14)),{easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"});t.easing=a;var i={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};t.duration=i;var s=function formatMs(e){return"".concat(Math.round(e),"ms")};t.formatMs=s;t.isString=function isString(e){return"string"===typeof e};t.isNumber=function isNumber(e){return!isNaN(parseFloat(e))};var l={easing:a,duration:i,create:function create(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?i.standard:n,l=t.easing,u=void 0===l?a.easeInOut:l,c=t.delay,f=void 0===c?0:c;(0,o.default)(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof r?r:s(r)," ").concat(u," ").concat("string"===typeof f?f:s(f))})).join(",")},getAutoHeightDuration:function getAutoHeightDuration(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}};t.default=l},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.CHANNEL=void 0;var o=r(n(8)),a=r(n(3)),i="__THEMING__";t.CHANNEL=i;var s={contextTypes:(0,o.default)({},i,a.default.object),initial:function initial(e){return e[i]?e[i].getState():null},subscribe:function subscribe(e,t){return e[i]?e[i].subscribe(t):null},unsubscribe:function unsubscribe(e,t){e[i]&&e[i].unsubscribe(t)}};t.default=s},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.specialProperty=void 0;r(n(8)),r(n(4));t.specialProperty="exact-prop: \u200b";var o=function exactProp(e){return e};t.default=o},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(16));var a=function ownerWindow(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=(0,o.default)(e);return n.defaultView||n.parentView||t};t.default=a},function(e,t,n){"use strict";t.__esModule=!0,t.default=t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(3)),o=_interopRequireDefault(n(0)),a=_interopRequireDefault(n(15)),i=n(72);n(177);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}t.UNMOUNTED="unmounted";t.EXITED="exited";t.ENTERING="entering";t.ENTERED="entered";t.EXITING="exiting";var s=function(e){function Transition(t,n){var r;r=e.call(this,t,n)||this;var o,a=n.transitionGroup,i=a&&!a.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o="exited",r.appearStatus="entering"):o="entered":o=t.unmountOnExit||t.mountOnEnter?"unmounted":"exited",r.state={status:o},r.nextCallback=null,r}!function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}(Transition,e);var t=Transition.prototype;return t.getChildContext=function getChildContext(){return{transitionGroup:null}},Transition.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){return e.in&&"unmounted"===t.status?{status:"exited"}:null},t.componentDidMount=function componentDidMount(){this.updateStatus(!0,this.appearStatus)},t.componentDidUpdate=function componentDidUpdate(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?"entering"!==n&&"entered"!==n&&(t="entering"):"entering"!==n&&"entered"!==n||(t="exiting")}this.updateStatus(!1,t)},t.componentWillUnmount=function componentWillUnmount(){this.cancelNextCallback()},t.getTimeouts=function getTimeouts(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},t.updateStatus=function updateStatus(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=a.default.findDOMNode(this);"entering"===t?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:"unmounted"})},t.performEnter=function performEnter(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,a=this.getTimeouts(),i=o?a.appear:a.enter;t||r?(this.props.onEnter(e,o),this.safeSetState({status:"entering"},(function(){n.props.onEntering(e,o),n.onTransitionEnd(e,i,(function(){n.safeSetState({status:"entered"},(function(){n.props.onEntered(e,o)}))}))}))):this.safeSetState({status:"entered"},(function(){n.props.onEntered(e)}))},t.performExit=function performExit(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:"exiting"},(function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,(function(){t.safeSetState({status:"exited"},(function(){t.props.onExited(e)}))}))}))):this.safeSetState({status:"exited"},(function(){t.props.onExited(e)}))},t.cancelNextCallback=function cancelNextCallback(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},t.safeSetState=function safeSetState(e,t){t=this.setNextCallback(t),this.setState(e,t)},t.setNextCallback=function setNextCallback(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},t.onTransitionEnd=function onTransitionEnd(e,t,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;e&&!r?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},t.render=function render(){var e=this.state.status;if("unmounted"===e)return null;var t=this.props,n=t.children,r=function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"===typeof n)return n(e,r);var a=o.default.Children.only(n);return o.default.cloneElement(a,r)},Transition}(o.default.Component);function noop(){}s.contextTypes={transitionGroup:r.object},s.childContextTypes={transitionGroup:function transitionGroup(){}},s.propTypes={},s.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop,onEntering:noop,onEntered:noop,onExit:noop,onExiting:noop,onExited:noop},s.UNMOUNTED=0,s.EXITED=1,s.ENTERING=2,s.ENTERED=3,s.EXITING=4;var l=(0,i.polyfill)(s);t.default=l},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,a=r(n(4)),i=r(n(5)),s=r(n(9)),l=r(n(10)),u=r(n(11)),c=r(n(12)),f=r(n(13)),d=r(n(0)),p=(r(n(3)),r(n(54))),h=(r(n(29)),r(n(40))),v=r(n(42));var y=function withTheme(){return function(e){var t=function(t){function WithTheme(e,t){var n;return(0,s.default)(this,WithTheme),(n=(0,u.default)(this,(0,c.default)(WithTheme).call(this))).unsubscribeId=null,n.state={},n.state={theme:v.default.initial(t)||o||(o=(0,h.default)())},n}return(0,f.default)(WithTheme,t),(0,l.default)(WithTheme,[{key:"componentDidMount",value:function componentDidMount(){var e=this;this.unsubscribeId=v.default.subscribe(this.context,(function(t){e.setState({theme:t})}))}},{key:"componentWillUnmount",value:function componentWillUnmount(){null!==this.unsubscribeId&&v.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"render",value:function render(){var t=this.props,n=t.innerRef,r=(0,i.default)(t,["innerRef"]);return d.default.createElement(e,(0,a.default)({theme:this.state.theme,ref:n},r))}}]),WithTheme}(d.default.Component);return t.propTypes={},t.contextTypes=v.default.contextTypes,(0,p.default)(t,e),t}};t.default=y},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(48))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.hasValue=hasValue,t.isFilled=isFilled,t.isAdornedStart=function isAdornedStart(e){return e.startAdornment},t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(9)),l=r(n(10)),u=r(n(11)),c=r(n(12)),f=r(n(13)),d=r(n(0)),p=r(n(3)),h=r(n(7)),v=r(n(6)),y=r(n(184));function hasValue(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function isFilled(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(hasValue(e.value)&&""!==e.value||t&&hasValue(e.defaultValue)&&""!==e.defaultValue)}var m=function styles(e){var t="light"===e.palette.type,n={color:"currentColor",opacity:t?.42:.5,transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:0},o={opacity:t?.42:.5},a=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{display:"inline-flex",position:"relative",fontFamily:e.typography.fontFamily,color:e.palette.text.primary,fontSize:e.typography.pxToRem(16),lineHeight:"1.1875em","&$disabled":{color:e.palette.text.disabled}},formControl:{"label + &":{marginTop:16}},focused:{},disabled:{},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary[t?"dark":"light"]),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(a),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):not($focused):not($error):before":{borderBottom:"2px solid ".concat(e.palette.text.primary)},"&$disabled:before":{borderBottom:"1px dotted ".concat(a)}},error:{},multiline:{padding:"".concat(6,"px 0 ").concat(7,"px")},fullWidth:{width:"100%"},input:{font:"inherit",color:"currentColor",padding:"".concat(6,"px 0 ").concat(7,"px"),border:0,boxSizing:"content-box",verticalAlign:"middle",background:"none",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,flexGrow:1,"&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&:-ms-input-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus:-ms-input-placeholder":o,"&:focus::-ms-input-placeholder":o},"&$disabled":{opacity:1}},inputMarginDense:{paddingTop:3},inputMultiline:{resize:"none",padding:0},inputType:{height:"1.1875em"},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"}}};function formControlState(e,t){var n=e.disabled,r=e.error,o=e.margin,a=e.required;return t&&t.muiFormControl&&("undefined"===typeof n&&(n=t.muiFormControl.disabled),"undefined"===typeof r&&(r=t.muiFormControl.error),"undefined"===typeof o&&(o=t.muiFormControl.margin),"undefined"===typeof a&&(a=t.muiFormControl.required)),{disabled:n,error:r,margin:o,required:a}}t.styles=m;var g=function(e){function Input(e,t){var n;(0,s.default)(this,Input),(n=(0,u.default)(this,(0,c.default)(Input).call(this,e,t))).isControlled=null,n.input=null,n.state={focused:!1},n.handleFocus=function(e){if(formControlState(n.props,n.context).disabled)e.stopPropagation();else{n.setState({focused:!0}),n.props.onFocus&&n.props.onFocus(e);var t=n.context.muiFormControl;t&&t.onFocus&&t.onFocus(e)}},n.handleBlur=function(e){n.setState({focused:!1}),n.props.onBlur&&n.props.onBlur(e);var t=n.context.muiFormControl;t&&t.onBlur&&t.onBlur(e)},n.handleChange=function(e){n.isControlled||n.checkDirty(n.inputRef),n.props.onChange&&n.props.onChange(e)},n.handleRefInput=function(e){var t;n.inputRef=e,n.props.inputRef?t=n.props.inputRef:n.props.inputProps&&n.props.inputProps.ref&&(t=n.props.inputProps.ref),t&&("function"===typeof t?t(e):t.current=e)},n.isControlled=null!=e.value,n.isControlled&&n.checkDirty(e);var r=function componentWillReceiveProps(e,t){!formControlState(n.props,n.context).disabled&&formControlState(e,t).disabled&&n.setState({focused:!1})},o=function componentWillUpdate(e,t,r){if(!formControlState(n.props,n.context).disabled&&formControlState(e,r).disabled){var o=n.context.muiFormControl;o&&o.onBlur&&o.onBlur()}};return d.default.createContext?(n.UNSAFE_componentWillReceiveProps=r,n.UNSAFE_componentWillUpdate=o):(n.componentWillReceiveProps=r,n.componentWillUpdate=o),n}return(0,f.default)(Input,e),(0,l.default)(Input,[{key:"getChildContext",value:function getChildContext(){return{muiFormControl:null}}},{key:"componentDidMount",value:function componentDidMount(){this.isControlled||this.checkDirty(this.inputRef)}},{key:"componentDidUpdate",value:function componentDidUpdate(){this.isControlled&&this.checkDirty(this.props)}},{key:"checkDirty",value:function checkDirty(e){var t=this.context.muiFormControl;if(isFilled(e))return t&&t.onFilled&&t.onFilled(),void(this.props.onFilled&&this.props.onFilled());t&&t.onEmpty&&t.onEmpty(),this.props.onEmpty&&this.props.onEmpty()}},{key:"render",value:function render(){var e,t,n=this.props,r=n.autoComplete,s=n.autoFocus,l=n.classes,u=n.className,c=n.defaultValue,f=(n.disabled,n.disableUnderline),p=n.endAdornment,v=(n.error,n.fullWidth),m=n.id,g=n.inputComponent,b=n.inputProps,_=(b=void 0===b?{}:b).className,x=(0,i.default)(b,["className"]),S=(n.inputRef,n.margin,n.multiline),w=n.name,C=(n.onBlur,n.onChange,n.onEmpty,n.onFilled,n.onFocus,n.onKeyDown),k=n.onKeyUp,R=n.placeholder,E=n.readOnly,j=n.rows,I=n.rowsMax,A=n.startAdornment,D=n.type,N=n.value,F=(0,i.default)(n,["autoComplete","autoFocus","classes","className","defaultValue","disabled","disableUnderline","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onEmpty","onFilled","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","rows","rowsMax","startAdornment","type","value"]),W=this.context.muiFormControl,V=formControlState(this.props,this.context),z=V.disabled,q=V.error,K=V.margin,G=V.required,$=(0,h.default)(l.root,(e={},(0,a.default)(e,l.disabled,z),(0,a.default)(e,l.error,q),(0,a.default)(e,l.fullWidth,v),(0,a.default)(e,l.focused,this.state.focused),(0,a.default)(e,l.formControl,W),(0,a.default)(e,l.multiline,S),(0,a.default)(e,l.underline,!f),e),u),Y=(0,h.default)(l.input,(t={},(0,a.default)(t,l.disabled,z),(0,a.default)(t,l.inputType,"text"!==D),(0,a.default)(t,l.inputTypeSearch,"search"===D),(0,a.default)(t,l.inputMultiline,S),(0,a.default)(t,l.inputMarginDense,"dense"===K),t),_),J="input",Q=(0,o.default)({},x,{ref:this.handleRefInput});return g?(J=g,Q=(0,o.default)({inputRef:this.handleRefInput},Q,{ref:null})):S&&(j&&!I?J="textarea":(Q=(0,o.default)({rowsMax:I,textareaRef:this.handleRefInput},Q,{ref:null}),J=y.default)),d.default.createElement("div",(0,o.default)({className:$},F),A,d.default.createElement(J,(0,o.default)({"aria-invalid":q,autoComplete:r,autoFocus:s,className:Y,defaultValue:c,disabled:z,id:m,name:w,onBlur:this.handleBlur,onChange:this.handleChange,onFocus:this.handleFocus,onKeyDown:C,onKeyUp:k,placeholder:R,readOnly:E,required:G,rows:j,type:D,value:N},Q)),p)}}]),Input}(d.default.Component);g.propTypes={},g.muiName="Input",g.defaultProps={disableUnderline:!1,fullWidth:!1,multiline:!1,type:"text"},g.contextTypes={muiFormControl:p.default.object},g.childContextTypes={muiFormControl:p.default.object};var b=(0,v.default)(m,{name:"MuiInput"})(g);t.default=b},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(196))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function cleanInputProps(e){u.forEach((function(t){return delete e[t]}))}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,i.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),i.default.createElement("input",r({},o,{ref:this.inputRef})),i.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?i.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),AutosizeInput}(a.Component);p.propTypes={className:s.default.string,defaultValue:s.default.any,extraWidth:s.default.oneOfType([s.default.number,s.default.string]),id:s.default.string,injectStyles:s.default.bool,inputClassName:s.default.string,inputRef:s.default.func,inputStyle:s.default.object,minWidth:s.default.oneOfType([s.default.number,s.default.string]),onAutosize:s.default.func,onChange:s.default.func,placeholder:s.default.string,placeholderIsMinWidth:s.default.bool,style:s.default.object,value:s.default.any},p.defaultProps={minWidth:1,injectStyles:!0},t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return Math.random().toString(26).slice(2)}},function(e,t){function _setPrototypeOf(t,n){return e.exports=_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,_setPrototypeOf(t,n)}e.exports=_setPrototypeOf,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){e.exports=function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}},function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a=Object.defineProperty,i=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,u=Object.getPrototypeOf,c=u&&u(Object);e.exports=function hoistNonReactStatics(e,t,n){if("string"!==typeof t){if(c){var f=u(t);f&&f!==c&&hoistNonReactStatics(e,f,n)}var d=i(t);s&&(d=d.concat(s(t)));for(var p=0;p=this.index)t.push(e);else for(var r=0;rn)return void t.splice(r,0,e)}},{key:"reset",value:function reset(){this.registry=[]}},{key:"remove",value:function remove(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)}},{key:"toString",value:function toString(e){return this.registry.filter((function(e){return e.attached})).map((function(t){return t.toString(e)})).join("\n")}},{key:"index",get:function get(){return 0===this.registry.length?0:this.registry[this.registry.length-1].options.index}}]),SheetsRegistry}();t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(n(112));t.default=function(e){return e&&e[r.default]&&e===e[r.default]()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function linkRule(e,t){e.renderable=t,e.rules&&t.cssRules&&e.rules.link(t.cssRules)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=_interopRequireDefault(n(18)),o=(_interopRequireDefault(n(61)),_interopRequireDefault(n(115)));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=0;return function(t,n){(e+=1)>1e10&&(0,r.default)(!1,"[JSS] You might have a memory leak. Rule counter is at %s.",e);var a="c",i="";return n&&(a=n.options.classNamePrefix||"c",null!=n.options.jss.id&&(i+=n.options.jss.id)),""+a+o.default+i+e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;return e.Component,e.noBase,n?(0,o.default)({},t,Object.keys(n).reduce((function(e,r){return n[r]&&(e[r]="".concat(t[r]," ").concat(n[r])),e}),{})):t};t.default=a},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.convertHexToRGB=convertHexToRGB,t.rgbToHex=function rgbToHex(e){if(0===e.indexOf("#"))return e;var t=decomposeColor(e).values;return t=t.map((function(e){return function intToHex(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t}(e)})),"#".concat(t.join(""))},t.decomposeColor=decomposeColor,t.recomposeColor=recomposeColor,t.getContrastRatio=function getContrastRatio(e,t){var n=getLuminance(e),r=getLuminance(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},t.getLuminance=getLuminance,t.emphasize=function emphasize(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return getLuminance(e)>.5?darken(e,t):lighten(e,t)},t.fade=function fade(e,t){if(!e)return e;e=decomposeColor(e),t=clamp(t),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a");return e.values[3]=t,recomposeColor(e)},t.darken=darken,t.lighten=lighten;r(n(14));function clamp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return en?n:e}function convertHexToRGB(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb(".concat(n.map((function(e){return parseInt(e,16)})).join(", "),")"):""}function decomposeColor(e){if("#"===e.charAt(0))return decomposeColor(convertHexToRGB(e));var t=e.indexOf("("),n=e.substring(0,t),r=e.substring(t+1,e.length-1).split(",");return{type:n,values:r=r.map((function(e){return parseFloat(e)}))}}function recomposeColor(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")&&(n=n.map((function(e,t){return t<3?parseInt(e,10):e}))),-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(e.type,"(").concat(n.join(", "),")")}function getLuminance(e){var t=decomposeColor(e);if(-1!==t.type.indexOf("rgb")){var n=t.values.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}));return Number((.2126*n[0]+.7152*n[1]+.0722*n[2]).toFixed(3))}return t.values[2]/100}function darken(e,t){if(!e)return e;if(e=decomposeColor(e),t=clamp(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return recomposeColor(e)}function lighten(e,t){if(!e)return e;if(e=decomposeColor(e),t=clamp(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return recomposeColor(e)}},function(e,t,n){"use strict";(function(e){var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function createGenerateClassName(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.dangerouslyUseGlobalCSS,r=void 0!==n&&n,o=t.productionPrefix,a=void 0===o?"jss":o,i=0;"undefined"!==typeof window&&(e.__MUI_GENERATOR_COUNTER__+=1,e.__MUI_GENERATOR_COUNTER__>2&&console.error(["Material-UI: we have detected more than needed creation of the class name generator.","You should only use one class name generator on the client side.","If you do otherwise, you take the risk to have conflicting class names in production."].join("\n")));return function(e,t){if(i+=1,r){if(t){if(t.options.name)return"".concat(t.options.name,"-").concat(e.key);t.options.classNamePrefix}return"".concat(a).concat(i)}return"".concat(a).concat(i)}};r(n(14));e.__MUI_GENERATOR_COUNTER__=0}).call(this,n(25))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}}),Object.defineProperty(t,"ModalManager",{enumerable:!0,get:function get(){return a.default}});var o=r(n(158)),a=r(n(67))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(9)),a=r(n(10)),i=r(n(163)),s=r(n(70)),l=r(n(16)),u=r(n(171)),c=n(173);function getPaddingRight(e){return parseInt((0,i.default)(e,"paddingRight")||0,10)}var f=function(){function ModalManager(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.default)(this,ModalManager);var t=e.hideSiblingNodes,n=void 0===t||t,r=e.handleContainerOverflow,a=void 0===r||r;this.hideSiblingNodes=n,this.handleContainerOverflow=a,this.modals=[],this.containers=[],this.data=[]}return(0,a.default)(ModalManager,[{key:"add",value:function add(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),this.hideSiblingNodes&&(0,c.hideSiblings)(t,e.mountNode);var r=this.containers.indexOf(t);if(-1!==r)return this.data[r].modals.push(e),n;var o={modals:[e],overflowing:(0,u.default)(t),prevPaddings:[]};return this.handleContainerOverflow&&function setContainerStyle(e,t){var n={overflow:"hidden"};if(e.style={overflow:t.style.overflow,paddingRight:t.style.paddingRight},e.overflowing){var r=(0,s.default)();n.paddingRight="".concat(getPaddingRight(t)+r,"px");for(var o=(0,l.default)(t).querySelectorAll(".mui-fixed"),a=0;a=0?r=setTimeout(later,t-l):(r=null,n||(s=e.apply(a,o),a=o=null))}null==t&&(t=100);var debounced=function(){a=this,o=arguments,i=Date.now();var l=n&&!r;return r||(r=setTimeout(later,t)),l&&(s=e.apply(a,o),a=o=null),s};return debounced.clear=function(){r&&(clearTimeout(r),r=null)},debounced.flush=function(){r&&(s=e.apply(a,o),a=o=null,clearTimeout(r),r=null)},debounced}debounce.debounce=debounce,e.exports=debounce},function(e,t,n){"use strict";function _interopDefault(e){return e&&"object"===typeof e&&"default"in e?e.default:e}Object.defineProperty(t,"__esModule",{value:!0});var r=_interopDefault(n(185)),o=_interopDefault(n(186)),a=_interopDefault(n(188)),i=_interopDefault(n(189)),s=_interopDefault(n(190)),l=_interopDefault(n(27)),u=_interopDefault(n(79)),c=_interopDefault(n(80)),f=_interopDefault(n(0));_interopDefault(n(3)),_interopDefault(n(14));var d=function(){var e=null;return function(){if(null!==e)return e;var t=!1;try{window.addEventListener("test",null,function defineProperty(e,t,n){return Object.defineProperty(e,t,n)}({},"passive",{get:function get(){t=!0}}))}catch(n){}return e=t,t}()}(),p={capture:!1,passive:!1};function mergeDefaultEventOptions(e){return c({},p,e)}function getEventListenerArgs(e,t,n){var r=[e,t];return r.push(d?n:n.capture),r}function on(e,t,n,r){e.addEventListener.apply(e,getEventListenerArgs(t,n,r))}function off(e,t,n,r){e.removeEventListener.apply(e,getEventListenerArgs(t,n,r))}function forEachListener(e,t){e.children,e.target;var n=u(e,["children","target"]);Object.keys(n).forEach((function(e){if("on"===e.substring(0,2)){var r=n[e],o=l(r),a="object"===o;if(a||"function"===o){var i="capture"===e.substr(-7).toLowerCase(),s=e.substring(2).toLowerCase();s=i?s.substring(0,s.length-7):s,a?t(s,r.handler,r.options):t(s,r,mergeDefaultEventOptions({capture:i}))}}}))}var h=function(e){function EventListener(){return r(this,EventListener),a(this,i(EventListener).apply(this,arguments))}return s(EventListener,e),o(EventListener,[{key:"componentDidMount",value:function componentDidMount(){this.applyListeners(on)}},{key:"componentDidUpdate",value:function componentDidUpdate(e){this.applyListeners(off,e),this.applyListeners(on)}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.applyListeners(off)}},{key:"applyListeners",value:function applyListeners(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props,n=t.target;if(n){var r=n;"string"===typeof n&&(r=window[n]),forEachListener(t,e.bind(null,r))}}},{key:"render",value:function render(){return this.props.children||null}}]),EventListener}(f.PureComponent);h.propTypes={},t.withOptions=function withOptions(e,t){return{handler:e,options:mergeDefaultEventOptions(t)}},t.default=h},function(e,t,n){var r=n(27).default,o=n(187);e.exports=function _toPropertyKey(e){var t=o(e,"string");return"symbol"===r(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){e.exports=function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(191);e.exports=function _objectWithoutProperties(e,t){if(null==e)return{};var n,o,a=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){function _extends(){return e.exports=_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n"']/g,K=RegExp(z.source),G=RegExp(q.source),$=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ee=/^\w*$/,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ne=/[\\^$.*+?()[\]{}|]/g,re=RegExp(ne.source),oe=/^\s+/,ae=/\s/,ie=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,se=/\{\n\/\* \[wrapped with (.+)\] \*/,le=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ce=/[()=,{}\[\]\/\s]/,fe=/\\(\\)?/g,de=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,ve=/^0b[01]+$/i,ye=/^\[object .+?Constructor\]$/,me=/^0o[0-7]+$/i,ge=/^(?:0|[1-9]\d*)$/,be=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_e=/($^)/,xe=/['\n\r\u2028\u2029\\]/g,Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Oe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Pe="[\\ud800-\\udfff]",we="["+Oe+"]",Ce="["+Se+"]",ke="\\d+",Re="[\\u2700-\\u27bf]",Ee="[a-z\\xdf-\\xf6\\xf8-\\xff]",Me="[^\\ud800-\\udfff"+Oe+ke+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",je="\\ud83c[\\udffb-\\udfff]",Te="[^\\ud800-\\udfff]",Ie="(?:\\ud83c[\\udde6-\\uddff]){2}",Ae="[\\ud800-\\udbff][\\udc00-\\udfff]",De="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Le="(?:"+Ee+"|"+Me+")",Ne="(?:"+De+"|"+Me+")",Fe="(?:"+Ce+"|"+je+")"+"?",We="[\\ufe0e\\ufe0f]?"+Fe+("(?:\\u200d(?:"+[Te,Ie,Ae].join("|")+")[\\ufe0e\\ufe0f]?"+Fe+")*"),Ve="(?:"+[Re,Ie,Ae].join("|")+")"+We,Ue="(?:"+[Te+Ce+"?",Ce,Ie,Ae,Pe].join("|")+")",ze=RegExp("['\u2019]","g"),Be=RegExp(Ce,"g"),He=RegExp(je+"(?="+je+")|"+Ue+We,"g"),qe=RegExp([De+"?"+Ee+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[we,De,"$"].join("|")+")",Ne+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[we,De+Le,"$"].join("|")+")",De+"?"+Le+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",De+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ke,Ve].join("|"),"g"),Ke=RegExp("[\\u200d\\ud800-\\udfff"+Se+"\\ufe0e\\ufe0f]"),Ge=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,$e=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ye=-1,Xe={};Xe[k]=Xe[R]=Xe[E]=Xe[j]=Xe[I]=Xe[A]=Xe["[object Uint8ClampedArray]"]=Xe[D]=Xe[N]=!0,Xe[l]=Xe[u]=Xe[w]=Xe[c]=Xe[C]=Xe[f]=Xe[d]=Xe[p]=Xe[v]=Xe[y]=Xe[m]=Xe[g]=Xe[b]=Xe[_]=Xe[S]=!1;var Je={};Je[l]=Je[u]=Je[w]=Je[C]=Je[c]=Je[f]=Je[k]=Je[R]=Je[E]=Je[j]=Je[I]=Je[v]=Je[y]=Je[m]=Je[g]=Je[b]=Je[_]=Je[x]=Je[A]=Je["[object Uint8ClampedArray]"]=Je[D]=Je[N]=!0,Je[d]=Je[p]=Je[S]=!1;var Ze={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Qe=parseFloat,et=parseInt,tt="object"==typeof e&&e&&e.Object===Object&&e,nt="object"==typeof self&&self&&self.Object===Object&&self,rt=tt||nt||Function("return this")(),ot=t&&!t.nodeType&&t,at=ot&&"object"==typeof r&&r&&!r.nodeType&&r,it=at&&at.exports===ot,st=it&&tt.process,lt=function(){try{var e=at&&at.require&&at.require("util").types;return e||st&&st.binding&&st.binding("util")}catch(t){}}(),ut=lt&<.isArrayBuffer,ct=lt&<.isDate,ft=lt&<.isMap,dt=lt&<.isRegExp,pt=lt&<.isSet,ht=lt&<.isTypedArray;function apply(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function arrayAggregator(e,t,n,r){for(var o=-1,a=null==e?0:e.length;++o-1}function arrayIncludesWith(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function charsEndIndex(e,t){for(var n=e.length;n--&&baseIndexOf(t,e[n],0)>-1;);return n}function countHolders(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var yt=basePropertyOf({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),mt=basePropertyOf({"&":"&","<":"<",">":">",'"':""","'":"'"});function escapeStringChar(e){return"\\"+Ze[e]}function hasUnicode(e){return Ke.test(e)}function mapToArray(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function overArg(e,t){return function(n){return e(t(n))}}function replaceHolders(e,t){for(var n=-1,r=e.length,o=0,a=[];++n",""":'"',"'":"'"});var bt=function runInContext(e){var t=(e=null==e?rt:bt.defaults(rt.Object(),e,bt.pick(rt,$e))).Array,n=e.Date,r=e.Error,o=e.Function,ae=e.Math,Se=e.Object,Oe=e.RegExp,Pe=e.String,we=e.TypeError,Ce=t.prototype,ke=o.prototype,Re=Se.prototype,Ee=e["__core-js_shared__"],Me=ke.toString,je=Re.hasOwnProperty,Te=0,Ie=function(){var e=/[^.]+$/.exec(Ee&&Ee.keys&&Ee.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ae=Re.toString,De=Me.call(Se),Le=rt._,Ne=Oe("^"+Me.call(je).replace(ne,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fe=it?e.Buffer:void 0,We=e.Symbol,Ve=e.Uint8Array,Ue=Fe?Fe.allocUnsafe:void 0,He=overArg(Se.getPrototypeOf,Se),Ke=Se.create,Ze=Re.propertyIsEnumerable,tt=Ce.splice,nt=We?We.isConcatSpreadable:void 0,ot=We?We.iterator:void 0,at=We?We.toStringTag:void 0,st=function(){try{var e=getNative(Se,"defineProperty");return e({},"",{}),e}catch(t){}}(),lt=e.clearTimeout!==rt.clearTimeout&&e.clearTimeout,vt=n&&n.now!==rt.Date.now&&n.now,_t=e.setTimeout!==rt.setTimeout&&e.setTimeout,xt=ae.ceil,St=ae.floor,Ot=Se.getOwnPropertySymbols,Pt=Fe?Fe.isBuffer:void 0,wt=e.isFinite,Ct=Ce.join,kt=overArg(Se.keys,Se),Rt=ae.max,Et=ae.min,Mt=n.now,jt=e.parseInt,Tt=ae.random,It=Ce.reverse,At=getNative(e,"DataView"),Dt=getNative(e,"Map"),Lt=getNative(e,"Promise"),Nt=getNative(e,"Set"),Ft=getNative(e,"WeakMap"),Wt=getNative(Se,"create"),Vt=Ft&&new Ft,Ut={},zt=toSource(At),Bt=toSource(Dt),Ht=toSource(Lt),qt=toSource(Nt),Kt=toSource(Ft),Gt=We?We.prototype:void 0,$t=Gt?Gt.valueOf:void 0,Yt=Gt?Gt.toString:void 0;function lodash(e){if(isObjectLike(e)&&!tr(e)&&!(e instanceof LazyWrapper)){if(e instanceof LodashWrapper)return e;if(je.call(e,"__wrapped__"))return wrapperClone(e)}return new LodashWrapper(e)}var Xt=function(){function object(){}return function(e){if(!isObject(e))return{};if(Ke)return Ke(e);object.prototype=e;var t=new object;return object.prototype=void 0,t}}();function baseLodash(){}function LodashWrapper(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function LazyWrapper(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Hash(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function baseClone(e,t,n,r,o,a){var i,s=1&t,u=2&t,d=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!isObject(e))return e;var S=tr(e);if(S){if(i=function initCloneArray(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&je.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return copyArray(e,i)}else{var F=fn(e),W=F==p||F==h;if(rr(e))return cloneBuffer(e,s);if(F==m||F==l||W&&!o){if(i=u||W?{}:initCloneObject(e),!s)return u?function copySymbolsIn(e,t){return copyObject(e,cn(e),t)}(e,function baseAssignIn(e,t){return e&©Object(t,keysIn(t),e)}(i,e)):function copySymbols(e,t){return copyObject(e,un(e),t)}(e,baseAssign(i,e))}else{if(!Je[F])return o?e:{};i=function initCloneByTag(e,t,n){var r=e.constructor;switch(t){case w:return cloneArrayBuffer(e);case c:case f:return new r(+e);case C:return function cloneDataView(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case k:case R:case E:case j:case I:case A:case"[object Uint8ClampedArray]":case D:case N:return cloneTypedArray(e,n);case v:return new r;case y:case _:return new r(e);case g:return function cloneRegExp(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case b:return new r;case x:return function cloneSymbol(e){return $t?Se($t.call(e)):{}}(e)}}(e,F,s)}}a||(a=new Stack);var V=a.get(e);if(V)return V;a.set(e,i),sr(e)?e.forEach((function(r){i.add(baseClone(r,t,n,r,e,a))})):ar(e)&&e.forEach((function(r,o){i.set(o,baseClone(r,t,n,o,e,a))}));var z=S?void 0:(d?u?getAllKeysIn:getAllKeys:u?keysIn:keys)(e);return arrayEach(z||e,(function(r,o){z&&(r=e[o=r]),assignValue(i,o,baseClone(r,t,n,o,e,a))})),i}function baseConformsTo(e,t,n){var r=n.length;if(null==e)return!r;for(e=Se(e);r--;){var o=n[r],a=t[o],i=e[o];if(void 0===i&&!(o in e)||!a(i))return!1}return!0}function baseDelay(e,t,n){if("function"!=typeof e)throw new we(a);return hn((function(){e.apply(void 0,n)}),t)}function baseDifference(e,t,n,r){var o=-1,a=arrayIncludes,i=!0,s=e.length,l=[],u=t.length;if(!s)return l;n&&(t=arrayMap(t,baseUnary(n))),r?(a=arrayIncludesWith,i=!1):t.length>=200&&(a=cacheHas,i=!1,t=new SetCache(t));e:for(;++o-1},ListCache.prototype.set=function listCacheSet(e,t){var n=this.__data__,r=assocIndexOf(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},MapCache.prototype.clear=function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Dt||ListCache),string:new Hash}},MapCache.prototype.delete=function mapCacheDelete(e){var t=getMapData(this,e).delete(e);return this.size-=t?1:0,t},MapCache.prototype.get=function mapCacheGet(e){return getMapData(this,e).get(e)},MapCache.prototype.has=function mapCacheHas(e){return getMapData(this,e).has(e)},MapCache.prototype.set=function mapCacheSet(e,t){var n=getMapData(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},SetCache.prototype.add=SetCache.prototype.push=function setCacheAdd(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},SetCache.prototype.has=function setCacheHas(e){return this.__data__.has(e)},Stack.prototype.clear=function stackClear(){this.__data__=new ListCache,this.size=0},Stack.prototype.delete=function stackDelete(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Stack.prototype.get=function stackGet(e){return this.__data__.get(e)},Stack.prototype.has=function stackHas(e){return this.__data__.has(e)},Stack.prototype.set=function stackSet(e,t){var n=this.__data__;if(n instanceof ListCache){var r=n.__data__;if(!Dt||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new MapCache(r)}return n.set(e,t),this.size=n.size,this};var Jt=createBaseEach(baseForOwn),Zt=createBaseEach(baseForOwnRight,!0);function baseEvery(e,t){var n=!0;return Jt(e,(function(e,r,o){return n=!!t(e,r,o)})),n}function baseExtremum(e,t,n){for(var r=-1,o=e.length;++r0&&n(s)?t>1?baseFlatten(s,t-1,n,r,o):arrayPush(o,s):r||(o[o.length]=s)}return o}var Qt=createBaseFor(),en=createBaseFor(!0);function baseForOwn(e,t){return e&&Qt(e,t,keys)}function baseForOwnRight(e,t){return e&&en(e,t,keys)}function baseFunctions(e,t){return arrayFilter(t,(function(t){return isFunction(e[t])}))}function baseGet(e,t){for(var n=0,r=(t=castPath(t,e)).length;null!=e&&nt}function baseHas(e,t){return null!=e&&je.call(e,t)}function baseHasIn(e,t){return null!=e&&t in Se(e)}function baseIntersection(e,n,r){for(var o=r?arrayIncludesWith:arrayIncludes,a=e[0].length,i=e.length,s=i,l=t(i),u=1/0,c=[];s--;){var f=e[s];s&&n&&(f=arrayMap(f,baseUnary(n))),u=Et(f.length,u),l[s]=!r&&(n||a>=120&&f.length>=120)?new SetCache(s&&f):void 0}f=e[0];var d=-1,p=l[0];e:for(;++d=s)return l;var u=n[r];return l*("desc"==u?-1:1)}}return e.index-t.index}(e,t,n)}))}function basePickBy(e,t,n){for(var r=-1,o=t.length,a={};++r-1;)s!==e&&tt.call(s,l,1),tt.call(e,l,1);return e}function basePullAt(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==a){var a=o;isIndex(o)?tt.call(e,o,1):baseUnset(e,o)}}return e}function baseRandom(e,t){return e+St(Tt()*(t-e+1))}function baseRepeat(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=St(t/2))&&(e+=e)}while(t);return n}function baseRest(e,t){return vn(overRest(e,t,identity),e+"")}function baseSample(e){return arraySample(values(e))}function baseSampleSize(e,t){var n=values(e);return shuffleSelf(n,baseClamp(t,0,n.length))}function baseSet(e,t,n,r){if(!isObject(e))return e;for(var o=-1,a=(t=castPath(t,e)).length,i=a-1,s=e;null!=s&&++oa?0:a+n),(r=r>a?a:r)<0&&(r+=a),a=n>r?0:r-n>>>0,n>>>=0;for(var i=t(a);++o>>1,i=e[a];null!==i&&!isSymbol(i)&&(n?i<=t:i=200){var u=t?null:sn(e);if(u)return setToArray(u);i=!1,o=cacheHas,l=new SetCache}else l=t?[]:s;e:for(;++r=r?e:baseSlice(e,t,n)}var an=lt||function(e){return rt.clearTimeout(e)};function cloneBuffer(e,t){if(t)return e.slice();var n=e.length,r=Ue?Ue(n):new e.constructor(n);return e.copy(r),r}function cloneArrayBuffer(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function cloneTypedArray(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function compareAscending(e,t){if(e!==t){var n=void 0!==e,r=null===e,o=e===e,a=isSymbol(e),i=void 0!==t,s=null===t,l=t===t,u=isSymbol(t);if(!s&&!u&&!a&&e>t||a&&i&&l&&!s&&!u||r&&i&&l||!n&&l||!o)return 1;if(!r&&!a&&!u&&e1?n[o-1]:void 0,i=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,i&&isIterateeCall(n[0],n[1],i)&&(a=o<3?void 0:a,o=1),t=Se(t);++r-1?o[a?t[i]:i]:void 0}}function createFlow(e){return flatRest((function(t){var n=t.length,r=n,o=LodashWrapper.prototype.thru;for(e&&t.reverse();r--;){var i=t[r];if("function"!=typeof i)throw new we(a);if(o&&!s&&"wrapper"==getFuncName(i))var s=new LodashWrapper([],!0)}for(r=s?r:n;++r1&&g.reverse(),f&&us))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var f=-1,d=!0,p=2&n?new SetCache:void 0;for(a.set(e,t),a.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(ie,"{\n/* [wrapped with "+t+"] */\n")}(r,function updateWrapDetails(e,t){return arrayEach(s,(function(n){var r="_."+n[0];t&n[1]&&!arrayIncludes(e,r)&&e.push(r)})),e.sort()}(function getWrapDetails(e){var t=e.match(se);return t?t[1].split(le):[]}(r),n)))}function shortOut(e){var t=0,n=0;return function(){var r=Mt(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function shuffleSelf(e,t){var n=-1,r=e.length,o=r-1;for(t=void 0===t?r:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,unzipWith(e,n)}));function chain(e){var t=lodash(e);return t.__chain__=!0,t}function thru(e,t){return t(e)}var An=flatRest((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,interceptor=function(t){return baseAt(t,e)};return!(t>1||this.__actions__.length)&&r instanceof LazyWrapper&&isIndex(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:thru,args:[interceptor],thisArg:void 0}),new LodashWrapper(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(interceptor)}));var Dn=createAggregator((function(e,t,n){je.call(e,n)?++e[n]:baseAssignValue(e,n,1)}));var Ln=createFind(findIndex),Nn=createFind(findLastIndex);function forEach(e,t){return(tr(e)?arrayEach:Jt)(e,getIteratee(t,3))}function forEachRight(e,t){return(tr(e)?arrayEachRight:Zt)(e,getIteratee(t,3))}var Fn=createAggregator((function(e,t,n){je.call(e,n)?e[n].push(t):baseAssignValue(e,n,[t])}));var Wn=baseRest((function(e,n,r){var o=-1,a="function"==typeof n,i=isArrayLike(e)?t(e.length):[];return Jt(e,(function(e){i[++o]=a?apply(n,e,r):baseInvoke(e,n,r)})),i})),Vn=createAggregator((function(e,t,n){baseAssignValue(e,n,t)}));function map(e,t){return(tr(e)?arrayMap:baseMap)(e,getIteratee(t,3))}var Un=createAggregator((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var zn=baseRest((function(e,t){if(null==e)return[];var n=t.length;return n>1&&isIterateeCall(e,t[0],t[1])?t=[]:n>2&&isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),baseOrderBy(e,baseFlatten(t,1),[])})),Bn=vt||function(){return rt.Date.now()};function ary(e,t,n){return t=n?void 0:t,createWrap(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function before(e,t){var n;if("function"!=typeof t)throw new we(a);return e=toInteger(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var Hn=baseRest((function(e,t,n){var r=1;if(n.length){var o=replaceHolders(n,getHolder(Hn));r|=32}return createWrap(e,r,t,n,o)})),qn=baseRest((function(e,t,n){var r=3;if(n.length){var o=replaceHolders(n,getHolder(qn));r|=32}return createWrap(t,r,e,n,o)}));function debounce(e,t,n){var r,o,i,s,l,u,c=0,f=!1,d=!1,p=!0;if("function"!=typeof e)throw new we(a);function invokeFunc(t){var n=r,a=o;return r=o=void 0,c=t,s=e.apply(a,n)}function leadingEdge(e){return c=e,l=hn(timerExpired,t),f?invokeFunc(e):s}function shouldInvoke(e){var n=e-u;return void 0===u||n>=t||n<0||d&&e-c>=i}function timerExpired(){var e=Bn();if(shouldInvoke(e))return trailingEdge(e);l=hn(timerExpired,function remainingWait(e){var n=t-(e-u);return d?Et(n,i-(e-c)):n}(e))}function trailingEdge(e){return l=void 0,p&&r?invokeFunc(e):(r=o=void 0,s)}function debounced(){var e=Bn(),n=shouldInvoke(e);if(r=arguments,o=this,u=e,n){if(void 0===l)return leadingEdge(u);if(d)return an(l),l=hn(timerExpired,t),invokeFunc(u)}return void 0===l&&(l=hn(timerExpired,t)),s}return t=toNumber(t)||0,isObject(n)&&(f=!!n.leading,i=(d="maxWait"in n)?Rt(toNumber(n.maxWait)||0,t):i,p="trailing"in n?!!n.trailing:p),debounced.cancel=function cancel(){void 0!==l&&an(l),c=0,r=u=o=l=void 0},debounced.flush=function flush(){return void 0===l?s:trailingEdge(Bn())},debounced}var Kn=baseRest((function(e,t){return baseDelay(e,1,t)})),Gn=baseRest((function(e,t,n){return baseDelay(e,toNumber(t)||0,n)}));function memoize(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new we(a);var memoized=function(){var n=arguments,r=t?t.apply(this,n):n[0],o=memoized.cache;if(o.has(r))return o.get(r);var a=e.apply(this,n);return memoized.cache=o.set(r,a)||o,a};return memoized.cache=new(memoize.Cache||MapCache),memoized}function negate(e){if("function"!=typeof e)throw new we(a);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}memoize.Cache=MapCache;var $n=rn((function(e,t){var n=(t=1==t.length&&tr(t[0])?arrayMap(t[0],baseUnary(getIteratee())):arrayMap(baseFlatten(t,1),baseUnary(getIteratee()))).length;return baseRest((function(r){for(var o=-1,a=Et(r.length,n);++o=t})),er=baseIsArguments(function(){return arguments}())?baseIsArguments:function(e){return isObjectLike(e)&&je.call(e,"callee")&&!Ze.call(e,"callee")},tr=t.isArray,nr=ut?baseUnary(ut):function baseIsArrayBuffer(e){return isObjectLike(e)&&baseGetTag(e)==w};function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction(e)}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}var rr=Pt||stubFalse,or=ct?baseUnary(ct):function baseIsDate(e){return isObjectLike(e)&&baseGetTag(e)==f};function isError(e){if(!isObjectLike(e))return!1;var t=baseGetTag(e);return t==d||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!isPlainObject(e)}function isFunction(e){if(!isObject(e))return!1;var t=baseGetTag(e);return t==p||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function isInteger(e){return"number"==typeof e&&e==toInteger(e)}function isLength(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function isObject(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function isObjectLike(e){return null!=e&&"object"==typeof e}var ar=ft?baseUnary(ft):function baseIsMap(e){return isObjectLike(e)&&fn(e)==v};function isNumber(e){return"number"==typeof e||isObjectLike(e)&&baseGetTag(e)==y}function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=m)return!1;var t=He(e);if(null===t)return!0;var n=je.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Me.call(n)==De}var ir=dt?baseUnary(dt):function baseIsRegExp(e){return isObjectLike(e)&&baseGetTag(e)==g};var sr=pt?baseUnary(pt):function baseIsSet(e){return isObjectLike(e)&&fn(e)==b};function isString(e){return"string"==typeof e||!tr(e)&&isObjectLike(e)&&baseGetTag(e)==_}function isSymbol(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==x}var lr=ht?baseUnary(ht):function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!Xe[baseGetTag(e)]};var ur=createRelationalOperation(baseLt),cr=createRelationalOperation((function(e,t){return e<=t}));function toArray(e){if(!e)return[];if(isArrayLike(e))return isString(e)?stringToArray(e):copyArray(e);if(ot&&e[ot])return function iteratorToArray(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[ot]());var t=fn(e);return(t==v?mapToArray:t==b?setToArray:values)(e)}function toFinite(e){return e?(e=toNumber(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}function toInteger(e){var t=toFinite(e),n=t%1;return t===t?n?t-n:t:0}function toLength(e){return e?baseClamp(toInteger(e),0,4294967295):0}function toNumber(e){if("number"==typeof e)return e;if(isSymbol(e))return NaN;if(isObject(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var n=ve.test(e);return n||me.test(e)?et(e.slice(2),n?2:8):he.test(e)?NaN:+e}function toPlainObject(e){return copyObject(e,keysIn(e))}function toString(e){return null==e?"":baseToString(e)}var fr=createAssigner((function(e,t){if(isPrototype(t)||isArrayLike(t))copyObject(t,keys(t),e);else for(var n in t)je.call(t,n)&&assignValue(e,n,t[n])})),dr=createAssigner((function(e,t){copyObject(t,keysIn(t),e)})),pr=createAssigner((function(e,t,n,r){copyObject(t,keysIn(t),e,r)})),hr=createAssigner((function(e,t,n,r){copyObject(t,keys(t),e,r)})),vr=flatRest(baseAt);var yr=baseRest((function(e,t){e=Se(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&isIterateeCall(t[0],t[1],o)&&(r=1);++n1),t})),copyObject(e,getAllKeysIn(e),n),r&&(n=baseClone(n,7,customOmitClone));for(var o=t.length;o--;)baseUnset(n,t[o]);return n}));var Pr=flatRest((function(e,t){return null==e?{}:function basePick(e,t){return basePickBy(e,t,(function(t,n){return hasIn(e,n)}))}(e,t)}));function pickBy(e,t){if(null==e)return{};var n=arrayMap(getAllKeysIn(e),(function(e){return[e]}));return t=getIteratee(t),basePickBy(e,n,(function(e,n){return t(e,n[0])}))}var wr=createToPairs(keys),Cr=createToPairs(keysIn);function values(e){return null==e?[]:baseValues(e,keys(e))}var kr=createCompounder((function(e,t,n){return t=t.toLowerCase(),e+(n?capitalize(t):t)}));function capitalize(e){return Ar(toString(e).toLowerCase())}function deburr(e){return(e=toString(e))&&e.replace(be,yt).replace(Be,"")}var Rr=createCompounder((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Er=createCompounder((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Mr=createCaseFirst("toLowerCase");var jr=createCompounder((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Tr=createCompounder((function(e,t,n){return e+(n?" ":"")+Ar(t)}));var Ir=createCompounder((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Ar=createCaseFirst("toUpperCase");function words(e,t,n){return e=toString(e),void 0===(t=n?void 0:t)?function hasUnicodeWord(e){return Ge.test(e)}(e)?function unicodeWords(e){return e.match(qe)||[]}(e):function asciiWords(e){return e.match(ue)||[]}(e):e.match(t)||[]}var Dr=baseRest((function(e,t){try{return apply(e,void 0,t)}catch(n){return isError(n)?n:new r(n)}})),Lr=flatRest((function(e,t){return arrayEach(t,(function(t){t=toKey(t),baseAssignValue(e,t,Hn(e[t],e))})),e}));function constant(e){return function(){return e}}var Nr=createFlow(),Fr=createFlow(!0);function identity(e){return e}function iteratee(e){return baseIteratee("function"==typeof e?e:baseClone(e,1))}var Wr=baseRest((function(e,t){return function(n){return baseInvoke(n,e,t)}})),Vr=baseRest((function(e,t){return function(n){return baseInvoke(e,n,t)}}));function mixin(e,t,n){var r=keys(t),o=baseFunctions(t,r);null!=n||isObject(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=baseFunctions(t,keys(t)));var a=!(isObject(n)&&"chain"in n)||!!n.chain,i=isFunction(e);return arrayEach(o,(function(n){var r=t[n];e[n]=r,i&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__),o=n.__actions__=copyArray(this.__actions__);return o.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,arrayPush([this.value()],arguments))})})),e}function noop(){}var Ur=createOver(arrayMap),zr=createOver(arrayEvery),Br=createOver(arraySome);function property(e){return isKey(e)?baseProperty(toKey(e)):function basePropertyDeep(e){return function(t){return baseGet(t,e)}}(e)}var Hr=createRange(),qr=createRange(!0);function stubArray(){return[]}function stubFalse(){return!1}var Kr=createMathOperation((function(e,t){return e+t}),0),Gr=createRound("ceil"),$r=createMathOperation((function(e,t){return e/t}),1),Yr=createRound("floor");var Xr=createMathOperation((function(e,t){return e*t}),1),Jr=createRound("round"),Zr=createMathOperation((function(e,t){return e-t}),0);return lodash.after=function after(e,t){if("function"!=typeof t)throw new we(a);return e=toInteger(e),function(){if(--e<1)return t.apply(this,arguments)}},lodash.ary=ary,lodash.assign=fr,lodash.assignIn=dr,lodash.assignInWith=pr,lodash.assignWith=hr,lodash.at=vr,lodash.before=before,lodash.bind=Hn,lodash.bindAll=Lr,lodash.bindKey=qn,lodash.castArray=function castArray(){if(!arguments.length)return[];var e=arguments[0];return tr(e)?e:[e]},lodash.chain=chain,lodash.chunk=function chunk(e,n,r){n=(r?isIterateeCall(e,n,r):void 0===n)?1:Rt(toInteger(n),0);var o=null==e?0:e.length;if(!o||n<1)return[];for(var a=0,i=0,s=t(xt(o/n));ao?0:o+n),(r=void 0===r||r>o?o:toInteger(r))<0&&(r+=o),r=n>r?0:toLength(r);n>>0)?(e=toString(e))&&("string"==typeof t||null!=t&&!ir(t))&&!(t=baseToString(t))&&hasUnicode(e)?castSlice(stringToArray(e),0,n):e.split(t,n):[]},lodash.spread=function spread(e,t){if("function"!=typeof e)throw new we(a);return t=null==t?0:Rt(toInteger(t),0),baseRest((function(n){var r=n[t],o=castSlice(n,0,t);return r&&arrayPush(o,r),apply(e,this,o)}))},lodash.tail=function tail(e){var t=null==e?0:e.length;return t?baseSlice(e,1,t):[]},lodash.take=function take(e,t,n){return e&&e.length?baseSlice(e,0,(t=n||void 0===t?1:toInteger(t))<0?0:t):[]},lodash.takeRight=function takeRight(e,t,n){var r=null==e?0:e.length;return r?baseSlice(e,(t=r-(t=n||void 0===t?1:toInteger(t)))<0?0:t,r):[]},lodash.takeRightWhile=function takeRightWhile(e,t){return e&&e.length?baseWhile(e,getIteratee(t,3),!1,!0):[]},lodash.takeWhile=function takeWhile(e,t){return e&&e.length?baseWhile(e,getIteratee(t,3)):[]},lodash.tap=function tap(e,t){return t(e),e},lodash.throttle=function throttle(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new we(a);return isObject(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),debounce(e,t,{leading:r,maxWait:t,trailing:o})},lodash.thru=thru,lodash.toArray=toArray,lodash.toPairs=wr,lodash.toPairsIn=Cr,lodash.toPath=function toPath(e){return tr(e)?arrayMap(e,toKey):isSymbol(e)?[e]:copyArray(yn(toString(e)))},lodash.toPlainObject=toPlainObject,lodash.transform=function transform(e,t,n){var r=tr(e),o=r||rr(e)||lr(e);if(t=getIteratee(t,4),null==n){var a=e&&e.constructor;n=o?r?new a:[]:isObject(e)&&isFunction(a)?Xt(He(e)):{}}return(o?arrayEach:baseForOwn)(e,(function(e,r,o){return t(n,e,r,o)})),n},lodash.unary=function unary(e){return ary(e,1)},lodash.union=wn,lodash.unionBy=Cn,lodash.unionWith=kn,lodash.uniq=function uniq(e){return e&&e.length?baseUniq(e):[]},lodash.uniqBy=function uniqBy(e,t){return e&&e.length?baseUniq(e,getIteratee(t,2)):[]},lodash.uniqWith=function uniqWith(e,t){return t="function"==typeof t?t:void 0,e&&e.length?baseUniq(e,void 0,t):[]},lodash.unset=function unset(e,t){return null==e||baseUnset(e,t)},lodash.unzip=unzip,lodash.unzipWith=unzipWith,lodash.update=function update(e,t,n){return null==e?e:baseUpdate(e,t,castFunction(n))},lodash.updateWith=function updateWith(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:baseUpdate(e,t,castFunction(n),r)},lodash.values=values,lodash.valuesIn=function valuesIn(e){return null==e?[]:baseValues(e,keysIn(e))},lodash.without=Rn,lodash.words=words,lodash.wrap=function wrap(e,t){return Yn(castFunction(t),e)},lodash.xor=En,lodash.xorBy=Mn,lodash.xorWith=jn,lodash.zip=Tn,lodash.zipObject=function zipObject(e,t){return baseZipObject(e||[],t||[],assignValue)},lodash.zipObjectDeep=function zipObjectDeep(e,t){return baseZipObject(e||[],t||[],baseSet)},lodash.zipWith=In,lodash.entries=wr,lodash.entriesIn=Cr,lodash.extend=dr,lodash.extendWith=pr,mixin(lodash,lodash),lodash.add=Kr,lodash.attempt=Dr,lodash.camelCase=kr,lodash.capitalize=capitalize,lodash.ceil=Gr,lodash.clamp=function clamp(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=toNumber(n))===n?n:0),void 0!==t&&(t=(t=toNumber(t))===t?t:0),baseClamp(toNumber(e),t,n)},lodash.clone=function clone(e){return baseClone(e,4)},lodash.cloneDeep=function cloneDeep(e){return baseClone(e,5)},lodash.cloneDeepWith=function cloneDeepWith(e,t){return baseClone(e,5,t="function"==typeof t?t:void 0)},lodash.cloneWith=function cloneWith(e,t){return baseClone(e,4,t="function"==typeof t?t:void 0)},lodash.conformsTo=function conformsTo(e,t){return null==t||baseConformsTo(e,t,keys(t))},lodash.deburr=deburr,lodash.defaultTo=function defaultTo(e,t){return null==e||e!==e?t:e},lodash.divide=$r,lodash.endsWith=function endsWith(e,t,n){e=toString(e),t=baseToString(t);var r=e.length,o=n=void 0===n?r:baseClamp(toInteger(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},lodash.eq=eq,lodash.escape=function escape(e){return(e=toString(e))&&G.test(e)?e.replace(q,mt):e},lodash.escapeRegExp=function escapeRegExp(e){return(e=toString(e))&&re.test(e)?e.replace(ne,"\\$&"):e},lodash.every=function every(e,t,n){var r=tr(e)?arrayEvery:baseEvery;return n&&isIterateeCall(e,t,n)&&(t=void 0),r(e,getIteratee(t,3))},lodash.find=Ln,lodash.findIndex=findIndex,lodash.findKey=function findKey(e,t){return baseFindKey(e,getIteratee(t,3),baseForOwn)},lodash.findLast=Nn,lodash.findLastIndex=findLastIndex,lodash.findLastKey=function findLastKey(e,t){return baseFindKey(e,getIteratee(t,3),baseForOwnRight)},lodash.floor=Yr,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=function forIn(e,t){return null==e?e:Qt(e,getIteratee(t,3),keysIn)},lodash.forInRight=function forInRight(e,t){return null==e?e:en(e,getIteratee(t,3),keysIn)},lodash.forOwn=function forOwn(e,t){return e&&baseForOwn(e,getIteratee(t,3))},lodash.forOwnRight=function forOwnRight(e,t){return e&&baseForOwnRight(e,getIteratee(t,3))},lodash.get=get,lodash.gt=Zn,lodash.gte=Qn,lodash.has=function has(e,t){return null!=e&&hasPath(e,t,baseHas)},lodash.hasIn=hasIn,lodash.head=head,lodash.identity=identity,lodash.includes=function includes(e,t,n,r){e=isArrayLike(e)?e:values(e),n=n&&!r?toInteger(n):0;var o=e.length;return n<0&&(n=Rt(o+n,0)),isString(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&baseIndexOf(e,t,n)>-1},lodash.indexOf=function indexOf(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:toInteger(n);return o<0&&(o=Rt(r+o,0)),baseIndexOf(e,t,o)},lodash.inRange=function inRange(e,t,n){return t=toFinite(t),void 0===n?(n=t,t=0):n=toFinite(n),function baseInRange(e,t,n){return e>=Et(t,n)&&e=-9007199254740991&&e<=9007199254740991},lodash.isSet=sr,lodash.isString=isString,lodash.isSymbol=isSymbol,lodash.isTypedArray=lr,lodash.isUndefined=function isUndefined(e){return void 0===e},lodash.isWeakMap=function isWeakMap(e){return isObjectLike(e)&&fn(e)==S},lodash.isWeakSet=function isWeakSet(e){return isObjectLike(e)&&"[object WeakSet]"==baseGetTag(e)},lodash.join=function join(e,t){return null==e?"":Ct.call(e,t)},lodash.kebabCase=Rr,lodash.last=last,lodash.lastIndexOf=function lastIndexOf(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return void 0!==n&&(o=(o=toInteger(n))<0?Rt(r+o,0):Et(o,r-1)),t===t?function strictLastIndexOf(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):baseFindIndex(e,baseIsNaN,o,!0)},lodash.lowerCase=Er,lodash.lowerFirst=Mr,lodash.lt=ur,lodash.lte=cr,lodash.max=function max(e){return e&&e.length?baseExtremum(e,identity,baseGt):void 0},lodash.maxBy=function maxBy(e,t){return e&&e.length?baseExtremum(e,getIteratee(t,2),baseGt):void 0},lodash.mean=function mean(e){return baseMean(e,identity)},lodash.meanBy=function meanBy(e,t){return baseMean(e,getIteratee(t,2))},lodash.min=function min(e){return e&&e.length?baseExtremum(e,identity,baseLt):void 0},lodash.minBy=function minBy(e,t){return e&&e.length?baseExtremum(e,getIteratee(t,2),baseLt):void 0},lodash.stubArray=stubArray,lodash.stubFalse=stubFalse,lodash.stubObject=function stubObject(){return{}},lodash.stubString=function stubString(){return""},lodash.stubTrue=function stubTrue(){return!0},lodash.multiply=Xr,lodash.nth=function nth(e,t){return e&&e.length?baseNth(e,toInteger(t)):void 0},lodash.noConflict=function noConflict(){return rt._===this&&(rt._=Le),this},lodash.noop=noop,lodash.now=Bn,lodash.pad=function pad(e,t,n){e=toString(e);var r=(t=toInteger(t))?stringSize(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return createPadding(St(o),n)+e+createPadding(xt(o),n)},lodash.padEnd=function padEnd(e,t,n){e=toString(e);var r=(t=toInteger(t))?stringSize(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=Tt();return Et(e+o*(t-e+Qe("1e-"+((o+"").length-1))),t)}return baseRandom(e,t)},lodash.reduce=function reduce(e,t,n){var r=tr(e)?arrayReduce:baseReduce,o=arguments.length<3;return r(e,getIteratee(t,4),n,o,Jt)},lodash.reduceRight=function reduceRight(e,t,n){var r=tr(e)?arrayReduceRight:baseReduce,o=arguments.length<3;return r(e,getIteratee(t,4),n,o,Zt)},lodash.repeat=function repeat(e,t,n){return t=(n?isIterateeCall(e,t,n):void 0===t)?1:toInteger(t),baseRepeat(toString(e),t)},lodash.replace=function replace(){var e=arguments,t=toString(e[0]);return e.length<3?t:t.replace(e[1],e[2])},lodash.result=function result(e,t,n){var r=-1,o=(t=castPath(t,e)).length;for(o||(o=1,e=void 0);++r9007199254740991)return[];var n=4294967295,r=Et(e,4294967295);e-=4294967295;for(var o=baseTimes(r,t=getIteratee(t));++n=a)return e;var s=n-stringSize(r);if(s<1)return r;var l=i?castSlice(i,0,s).join(""):e.slice(0,s);if(void 0===o)return l+r;if(i&&(s+=l.length-s),ir(o)){if(e.slice(s).search(o)){var u,c=l;for(o.global||(o=Oe(o.source,toString(pe.exec(o))+"g")),o.lastIndex=0;u=o.exec(c);)var f=u.index;l=l.slice(0,void 0===f?s:f)}}else if(e.indexOf(baseToString(o),s)!=s){var d=l.lastIndexOf(o);d>-1&&(l=l.slice(0,d))}return l+r},lodash.unescape=function unescape(e){return(e=toString(e))&&K.test(e)?e.replace(z,gt):e},lodash.uniqueId=function uniqueId(e){var t=++Te;return toString(e)+t},lodash.upperCase=Ir,lodash.upperFirst=Ar,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.first=head,mixin(lodash,function(){var e={};return baseForOwn(lodash,(function(t,n){je.call(lodash.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),lodash.VERSION="4.17.21",arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){lodash[e].placeholder=lodash})),arrayEach(["drop","take"],(function(e,t){LazyWrapper.prototype[e]=function(n){n=void 0===n?1:Rt(toInteger(n),0);var r=this.__filtered__&&!t?new LazyWrapper(this):this.clone();return r.__filtered__?r.__takeCount__=Et(n,r.__takeCount__):r.__views__.push({size:Et(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},LazyWrapper.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),arrayEach(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;LazyWrapper.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:getIteratee(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),arrayEach(["head","last"],(function(e,t){var n="take"+(t?"Right":"");LazyWrapper.prototype[e]=function(){return this[n](1).value()[0]}})),arrayEach(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");LazyWrapper.prototype[e]=function(){return this.__filtered__?new LazyWrapper(this):this[n](1)}})),LazyWrapper.prototype.compact=function(){return this.filter(identity)},LazyWrapper.prototype.find=function(e){return this.filter(e).head()},LazyWrapper.prototype.findLast=function(e){return this.reverse().find(e)},LazyWrapper.prototype.invokeMap=baseRest((function(e,t){return"function"==typeof e?new LazyWrapper(this):this.map((function(n){return baseInvoke(n,e,t)}))})),LazyWrapper.prototype.reject=function(e){return this.filter(negate(getIteratee(e)))},LazyWrapper.prototype.slice=function(e,t){e=toInteger(e);var n=this;return n.__filtered__&&(e>0||t<0)?new LazyWrapper(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=toInteger(t))<0?n.dropRight(-t):n.take(t-e)),n)},LazyWrapper.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(4294967295)},baseForOwn(LazyWrapper.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=lodash[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(lodash.prototype[t]=function(){var t=this.__wrapped__,i=r?[1]:arguments,s=t instanceof LazyWrapper,l=i[0],u=s||tr(t),interceptor=function(e){var t=o.apply(lodash,arrayPush([e],i));return r&&c?t[0]:t};u&&n&&"function"==typeof l&&1!=l.length&&(s=u=!1);var c=this.__chain__,f=!!this.__actions__.length,d=a&&!c,p=s&&!f;if(!a&&u){t=p?t:new LazyWrapper(this);var h=e.apply(t,i);return h.__actions__.push({func:thru,args:[interceptor],thisArg:void 0}),new LodashWrapper(h,c)}return d&&p?e.apply(this,i):(h=this.thru(interceptor),d?r?h.value()[0]:h.value():h)})})),arrayEach(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ce[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);lodash.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(tr(o)?o:[],e)}return this[n]((function(n){return t.apply(tr(n)?n:[],e)}))}})),baseForOwn(LazyWrapper.prototype,(function(e,t){var n=lodash[t];if(n){var r=n.name+"";je.call(Ut,r)||(Ut[r]=[]),Ut[r].push({name:t,func:n})}})),Ut[createHybrid(void 0,2).name]=[{name:"wrapper",func:void 0}],LazyWrapper.prototype.clone=function lazyClone(){var e=new LazyWrapper(this.__wrapped__);return e.__actions__=copyArray(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=copyArray(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=copyArray(this.__views__),e},LazyWrapper.prototype.reverse=function lazyReverse(){if(this.__filtered__){var e=new LazyWrapper(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},LazyWrapper.prototype.value=function lazyValue(){var e=this.__wrapped__.value(),t=this.__dir__,n=tr(e),r=t<0,o=n?e.length:0,a=function getView(e,t,n){var r=-1,o=n.length;for(;++r=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},lodash.prototype.plant=function wrapperPlant(e){for(var t,n=this;n instanceof baseLodash;){var r=wrapperClone(n);r.__index__=0,r.__values__=void 0,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},lodash.prototype.reverse=function wrapperReverse(){var e=this.__wrapped__;if(e instanceof LazyWrapper){var t=e;return this.__actions__.length&&(t=new LazyWrapper(this)),(t=t.reverse()).__actions__.push({func:thru,args:[reverse],thisArg:void 0}),new LodashWrapper(t,this.__chain__)}return this.thru(reverse)},lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)},lodash.prototype.first=lodash.prototype.head,ot&&(lodash.prototype[ot]=function wrapperToIterator(){return this}),lodash}();rt._=bt,void 0===(o=function(){return bt}.call(t,n,t,r))||(r.exports=o)}).call(this)}).call(this,n(25),n(233)(e))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createGenerateClassName",{enumerable:!0,get:function get(){return o.default}}),Object.defineProperty(t,"createMuiTheme",{enumerable:!0,get:function get(){return a.default}}),Object.defineProperty(t,"jssPreset",{enumerable:!0,get:function get(){return i.default}}),Object.defineProperty(t,"MuiThemeProvider",{enumerable:!0,get:function get(){return s.default}}),Object.defineProperty(t,"createStyles",{enumerable:!0,get:function get(){return l.default}}),Object.defineProperty(t,"withStyles",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(t,"withTheme",{enumerable:!0,get:function get(){return c.default}});var o=r(n(65)),a=r(n(40)),i=r(n(62)),s=r(n(244)),l=r(n(246)),u=r(n(6)),c=r(n(46))},function(e,t,n){e.exports=n(247)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadPlugin=t.FlexPlugin=void 0;var r=function r(e){this.uniqueName="flex-dialpad-addon",this.version="0.0.0",this.dependencies={"@twilio/flex-plugin-scripts":"6.0.3","@twilio/flex-plugin":"6.0.3","flex-ui":"1.33.2",react:"16.14.0","react-dom":"16.14.0"},this.name=e,console.log("loading "+this.name+"@"+this.version+" plugin")};t.FlexPlugin=r;t.loadPlugin=function(e){Twilio&&Twilio.Flex&&Twilio.Flex.Plugins?Twilio.Flex.Plugins.init(e):console.warn("This version of Flex does not appear to support plugins.")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getAssetsUrl=t.getRuntimeUrl=void 0;t.getRuntimeUrl=function(){if(document&&document.currentScript){var e=document.currentScript;if("string"===typeof e.src){var t=e.src;return t.substr(0,t.lastIndexOf("/"))}}return""};t.getAssetsUrl=function(){return t.getRuntimeUrl()+"/assets"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.loadJS=void 0;var o=r(n(51));t.loadJS=function(){for(var e=[],t=0;t=0||(o[n]=e[n]);return o}},function(e,t,n){"use strict";var r=n(105);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,e.exports=function(){function shim(e,t,n,o,a,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}function getShim(){return shim}shim.isRequired=shim;var e={array:shim,bigint:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return e.PropTypes=e,e}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){function _setPrototypeOf(t,n){return e.exports=_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){return e.__proto__=t,e},_setPrototypeOf(t,n)}e.exports=_setPrototypeOf},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),a=function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(55)),i=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(n(108));function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=(_defineProperty(r={},a.jss,i.default.jss),_defineProperty(r,a.sheetOptions,o.object),_defineProperty(r,a.sheetsRegistry,i.default.registry),_defineProperty(r,a.managers,o.object),r)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.default={jss:(0,r.shape)({options:(0,r.shape)({createGenerateClassName:r.func.isRequired}).isRequired,createStyleSheet:r.func.isRequired,removeStyleSheet:r.func.isRequired}),registry:(0,r.shape)({add:r.func.isRequired,toString:r.func.isRequired})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var 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};t.default=function getDynamicStyles(e){var t=null;for(var n in e){var o=e[n],a="undefined"===typeof o?"undefined":r(o);if("function"===a)t||(t={}),t[n]=o;else if("object"===a&&null!==o&&!Array.isArray(o)){var i=getDynamicStyles(o);i&&(t||(t={}),t[n]=i)}}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function defineProperties(e,t){for(var n=0;n0&&(this.refs[t]--,0===this.refs[t]&&this.sheets[t].detach()):(0,o.default)(!1,"SheetsManager: can't find sheet to unmanage")}},{key:"size",get:function get(){return this.keys.length}}]),SheetsManager}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var 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};t.default=function cloneStyle(e){if(null==e)return e;var t="undefined"===typeof e?"undefined":r(e);if("string"===t||"number"===t||"function"===t)return e;if(a(e))return e.map(cloneStyle);if((0,o.default)(e))return e;var n={};for(var i in e){var s=e[i];"object"!==("undefined"===typeof s?"undefined":r(s))?n[i]=s:n[i]=cloneStyle(s)}return n};var o=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(n(58));var a=Array.isArray},function(e,t,n){"use strict";n.r(t),function(e,r){var o,a=n(89);o="undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:r;var i=Object(a.a)(o);t.default=i}.call(this,n(25),n(113)(e))},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});e.CSS;t.default=function(e){return e}}).call(this,n(25))},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var n="2f1acc6c3a606b082e5eef5e54414ffb";null==e[n]&&(e[n]=0),t.default=e[n]++}).call(this,n(25))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var 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},o=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};return e.createGenerateClassName&&(this.options.createGenerateClassName=e.createGenerateClassName,this.generateClassName=e.createGenerateClassName()),null!=e.insertionPoint&&(this.options.insertionPoint=e.insertionPoint),(e.virtual||e.Renderer)&&(this.options.Renderer=e.Renderer||(e.virtual?m.default:y.default)),e.plugins&&this.use.apply(this,e.plugins),this}},{key:"createStyleSheet",value:function createStyleSheet(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.index;"number"!==typeof n&&(n=0===d.default.index?0:d.default.index+1);var r=new s.default(e,o({},t,{jss:this,generateClassName:t.generateClassName||this.generateClassName,insertionPoint:this.options.insertionPoint,Renderer:this.options.Renderer,index:n}));return this.plugins.onProcessSheet(r),r}},{key:"removeStyleSheet",value:function removeStyleSheet(e){return e.detach(),d.default.remove(e),this}},{key:"createRule",value:function createRule(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"===("undefined"===typeof e?"undefined":r(e))&&(n=t,t=e,e=void 0);var o=n;o.jss=this,o.Renderer=this.options.Renderer,o.generateClassName||(o.generateClassName=this.generateClassName),o.classes||(o.classes={});var a=(0,v.default)(e,t,o);return!o.selector&&a instanceof p.default&&(a.selector="."+o.generateClassName(a)),this.plugins.onProcessRule(a),a}},{key:"use",value:function use(){for(var e=this,t=arguments.length,n=Array(t),r=0;r0&&void 0!==arguments[0]?arguments[0]:{indent:1},t=this.rules.toString(e);return t&&(t+="\n"),this.key+" {\n"+t+"}"}}]),KeyframesRule}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{indent:1},t=this.rules.toString(e);return t?this.key+" {\n"+t+"\n}":""}}]),ConditionalRule}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function defineProperties(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;return e.substr(t,e.indexOf("{")-1)};return function(t){if(t.type===u)return t.selectorText;if(t.type===c){var n=t.name;if(n)return"@keyframes "+n;var r=t.cssText;return"@"+e(r,r.indexOf("keyframes"))}return e(t.cssText)}}();function setSelector(e,t){return e.selectorText=t,e.selectorText===t}var d=l((function(){return document.head||document.getElementsByTagName("head")[0]})),p=function(){var e=void 0,t=!1;return function(n){var r={};e||(e=document.createElement("style"));for(var o=0;o0){var n=function findHigherSheet(e,t){for(var n=0;nt.index&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e);if(n)return n.renderer.element;if(n=function findHighestSheet(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.attached&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e))return n.renderer.element.nextElementSibling}var r=e.insertionPoint;if(r&&"string"===typeof r){var i=function findCommentNode(e){for(var t=d(),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=addCamelCasedVersion(e);function onProcessStyle(e,n){if("style"!==n.type)return e;for(var r in e)e[r]=iterate(r,e[r],t);return e}function onChangeValue(e,n){return iterate(n,e,t)}return{onProcessStyle:onProcessStyle,onChangeValue:onChangeValue}};var o=addCamelCasedVersion(function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(n(134)).default);function iterate(e,t,n){if(!t)return t;var a=t,i="undefined"===typeof t?"undefined":r(t);switch("object"===i&&Array.isArray(t)&&(i="array"),i){case"object":if("fallbacks"===e){for(var s in t)t[s]=iterate(s,t[s],n);break}for(var l in t)t[l]=iterate(e+"-"+l,t[l],n);break;case"array":for(var u=0;u0?r:e)-u/100).concat(s,")")},between:between,only:function only(e){return between(e,e)},width:function width(e){return n[e]}},c)},t.keys=void 0;var o=r(n(4)),a=r(n(5)),i=["xs","sm","md","lg","xl"];t.keys=i},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function createMixins(e,t,n){var r;return(0,a.default)({gutters:function gutters(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,a.default)({paddingLeft:2*t.unit,paddingRight:2*t.unit},n,(0,o.default)({},e.up("sm"),(0,a.default)({paddingLeft:3*t.unit,paddingRight:3*t.unit},n[e.up("sm")])))},toolbar:(r={minHeight:56},(0,o.default)(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,o.default)(r,e.up("sm"),{minHeight:64}),r)},n)};var o=r(n(8)),a=r(n(4))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function createPalette(e){var t=e.primary,n=void 0===t?{light:s.default[300],main:s.default[500],dark:s.default[700]}:t,r=e.secondary,v=void 0===r?{light:l.default.A200,main:l.default.A400,dark:l.default.A700}:r,y=e.error,m=void 0===y?{light:c.default[300],main:c.default[500],dark:c.default[700]}:y,g=e.type,b=void 0===g?"light":g,_=e.contrastThreshold,x=void 0===_?3:_,S=e.tonalOffset,w=void 0===S?.2:S,C=(0,a.default)(e,["primary","secondary","error","type","contrastThreshold","tonalOffset"]);function getContrastText(e){return(0,d.getContrastRatio)(e,h.text.primary)>=x?h.text.primary:p.text.primary}function augmentColor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;!e.main&&e[t]&&(e.main=e[t]),addLightOrDark(e,"light",n,w),addLightOrDark(e,"dark",r,w),e.contrastText||(e.contrastText=getContrastText(e.main))}augmentColor(n),augmentColor(v,"A400","A200","A700"),augmentColor(m);var k={dark:h,light:p};return(0,i.default)((0,o.default)({common:f.default,type:b,primary:n,secondary:v,error:m,grey:u.default,contrastThreshold:x,getContrastText:getContrastText,augmentColor:augmentColor,tonalOffset:w},k[b]),C,{clone:!1})},t.dark=t.light=void 0;var o=r(n(4)),a=r(n(5)),i=(r(n(14)),r(n(33))),s=r(n(146)),l=r(n(147)),u=r(n(148)),c=r(n(149)),f=r(n(150)),d=n(64),p={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.default.white,default:u.default[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.08)",hoverOpacity:.08,selected:"rgba(0, 0, 0, 0.14)",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)"}};t.light=p;var h={text:{primary:f.default.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:u.default[800],default:"#303030"},action:{active:f.default.white,hover:"rgba(255, 255, 255, 0.1)",hoverOpacity:.1,selected:"rgba(255, 255, 255, 0.2)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"}};function addLightOrDark(e,t,n,r){e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,d.lighten)(e.main,r):"dark"===t&&(e.dark=(0,d.darken)(e.main,1.5*r)))}t.dark=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={black:"#000",white:"#fff"};t.default=r},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function createTypography(e,t){var n="function"===typeof t?t(e):t,r=n.fontFamily,s=void 0===r?'"Roboto", "Helvetica", "Arial", sans-serif':r,l=n.fontSize,u=void 0===l?14:l,c=n.fontWeightLight,f=void 0===c?300:c,d=n.fontWeightRegular,p=void 0===d?400:d,h=n.fontWeightMedium,v=void 0===h?500:h,y=n.htmlFontSize,m=void 0===y?16:y,g=n.allVariants,b=(0,a.default)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","htmlFontSize","allVariants"]),_=u/14;function pxToRem(e){return"".concat(e/m*_,"rem")}return(0,i.default)({pxToRem:pxToRem,round:round,fontFamily:s,fontSize:u,fontWeightLight:f,fontWeightRegular:p,fontWeightMedium:v,display4:(0,o.default)({fontSize:pxToRem(112),fontWeight:f,fontFamily:s,letterSpacing:"-.04em",lineHeight:"".concat(round(128/112),"em"),marginLeft:"-.04em",color:e.text.secondary},g),display3:(0,o.default)({fontSize:pxToRem(56),fontWeight:p,fontFamily:s,letterSpacing:"-.02em",lineHeight:"".concat(round(73/56),"em"),marginLeft:"-.02em",color:e.text.secondary},g),display2:(0,o.default)({fontSize:pxToRem(45),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(51/45),"em"),marginLeft:"-.02em",color:e.text.secondary},g),display1:(0,o.default)({fontSize:pxToRem(34),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(41/34),"em"),color:e.text.secondary},g),headline:(0,o.default)({fontSize:pxToRem(24),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(32.5/24),"em"),color:e.text.primary},g),title:(0,o.default)({fontSize:pxToRem(21),fontWeight:v,fontFamily:s,lineHeight:"".concat(round(24.5/21),"em"),color:e.text.primary},g),subheading:(0,o.default)({fontSize:pxToRem(16),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(1.5),"em"),color:e.text.primary},g),body2:(0,o.default)({fontSize:pxToRem(14),fontWeight:v,fontFamily:s,lineHeight:"".concat(round(24/14),"em"),color:e.text.primary},g),body1:(0,o.default)({fontSize:pxToRem(14),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(20.5/14),"em"),color:e.text.primary},g),caption:(0,o.default)({fontSize:pxToRem(12),fontWeight:p,fontFamily:s,lineHeight:"".concat(round(1.375),"em"),color:e.text.secondary},g),button:(0,o.default)({fontSize:pxToRem(14),textTransform:"uppercase",fontWeight:v,fontFamily:s,color:e.text.primary},g)},b,{clone:!1})};var o=r(n(4)),a=r(n(5)),i=r(n(33));function round(e){return Math.round(1e5*e)/1e5}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;function createShadow(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0, 0, 0, ").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0, 0, 0, ").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0, 0, 0, ").concat(.12,")")].join(",")}var r=["none",createShadow(0,1,3,0,0,1,1,0,0,2,1,-1),createShadow(0,1,5,0,0,2,2,0,0,3,1,-2),createShadow(0,1,8,0,0,3,4,0,0,3,3,-2),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)];t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={borderRadius:4};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={unit:8};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={mobileStepper:1e3,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};t.default=r},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(4)),a=(r(n(35)),r(n(14)),r(n(33)));function arrayMerge(e,t){return t}var i=function getStylesCreator(e){var t="function"===typeof e;return{create:function create(n,r){var i=t?e(n):e;if(!r||!n.overrides||!n.overrides[r])return i;var s=n.overrides[r],l=(0,o.default)({},i);return Object.keys(s).forEach((function(e){l[e]=(0,a.default)(l[e],s[e],{arrayMerge:arrayMerge})})),l},options:{},themingEnabled:t}};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function getThemeProps(e){var t=e.theme,n=e.name;return n&&t.props&&t.props[n]?t.props[n]:{}};t.default=r},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(9)),l=r(n(10)),u=r(n(11)),c=r(n(12)),f=r(n(13)),d=r(n(28)),p=r(n(0)),h=r(n(15)),v=(r(n(3)),r(n(7))),y=(r(n(14)),r(n(26))),m=r(n(16)),g=r(n(159)),b=r(n(161)),_=n(20),x=r(n(6)),S=r(n(67)),w=r(n(174));function getHasTransition(e){return!!e.children&&e.children.props.hasOwnProperty("in")}var C=function styles(e){return{root:{position:"fixed",zIndex:e.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}};t.styles=C;var k=function(e){function Modal(e){var t;return(0,s.default)(this,Modal),(t=(0,u.default)(this,(0,c.default)(Modal).call(this))).mountNode=null,t.modalRef=null,t.dialogRef=null,t.mounted=!1,t.handleRendered=function(){t.autoFocus(),t.modalRef.scrollTop=0,t.props.onRendered&&t.props.onRendered()},t.handleOpen=function(){var e=(0,m.default)(t.mountNode),n=function getContainer(e,t){return e="function"===typeof e?e():e,h.default.findDOMNode(e)||t}(t.props.container,e.body);t.props.manager.add((0,d.default)((0,d.default)(t)),n),e.addEventListener("keydown",t.handleDocumentKeyDown),e.addEventListener("focus",t.enforceFocus,!0)},t.handleClose=function(){t.props.manager.remove((0,d.default)((0,d.default)(t)));var e=(0,m.default)(t.mountNode);e.removeEventListener("keydown",t.handleDocumentKeyDown),e.removeEventListener("focus",t.enforceFocus,!0),t.restoreLastFocus()},t.handleExited=function(){t.setState({exited:!0}),t.handleClose()},t.handleBackdropClick=function(e){e.target===e.currentTarget&&(t.props.onBackdropClick&&t.props.onBackdropClick(e),!t.props.disableBackdropClick&&t.props.onClose&&t.props.onClose(e,"backdropClick"))},t.handleDocumentKeyDown=function(e){t.isTopModal()&&"esc"===(0,y.default)(e)&&(e.defaultPrevented||(t.props.onEscapeKeyDown&&t.props.onEscapeKeyDown(e),!t.props.disableEscapeKeyDown&&t.props.onClose&&t.props.onClose(e,"escapeKeyDown")))},t.checkForFocus=function(){t.lastFocus=(0,m.default)(t.mountNode).activeElement},t.enforceFocus=function(){if(!t.props.disableEnforceFocus&&t.mounted&&t.isTopModal()){var e=(0,m.default)(t.mountNode).activeElement;t.dialogRef&&!t.dialogRef.contains(e)&&t.dialogRef.focus()}},t.state={exited:!e.open},t}return(0,f.default)(Modal,e),(0,l.default)(Modal,[{key:"componentDidMount",value:function componentDidMount(){this.mounted=!0,this.props.open&&this.handleOpen()}},{key:"componentDidUpdate",value:function componentDidUpdate(e){!e.open&&this.props.open&&this.checkForFocus(),!e.open||this.props.open||getHasTransition(this.props)?!e.open&&this.props.open&&this.handleOpen():this.handleClose()}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mounted=!1,(this.props.open||getHasTransition(this.props)&&!this.state.exited)&&this.handleClose()}},{key:"autoFocus",value:function autoFocus(){if(!this.props.disableAutoFocus){var e=(0,m.default)(this.mountNode).activeElement;this.dialogRef&&!this.dialogRef.contains(e)&&(this.lastFocus=e,this.dialogRef.hasAttribute("tabIndex")||this.dialogRef.setAttribute("tabIndex",-1),this.dialogRef.focus())}}},{key:"restoreLastFocus",value:function restoreLastFocus(){this.props.disableRestoreFocus||this.lastFocus&&(this.lastFocus.focus&&this.lastFocus.focus(),this.lastFocus=null)}},{key:"isTopModal",value:function isTopModal(){return this.props.manager.isTopModal(this)}},{key:"render",value:function render(){var e=this,t=this.props,n=t.BackdropComponent,r=t.BackdropProps,s=t.children,l=t.classes,u=t.className,c=t.container,f=(t.disableAutoFocus,t.disableBackdropClick,t.disableEnforceFocus,t.disableEscapeKeyDown,t.disablePortal),d=(t.disableRestoreFocus,t.hideBackdrop),h=t.keepMounted,y=(t.manager,t.onBackdropClick,t.onClose,t.onEscapeKeyDown,t.onRendered,t.open),m=(0,i.default)(t,["BackdropComponent","BackdropProps","children","classes","className","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),x=this.state.exited,S=getHasTransition(this.props),w={};return h||y||S&&!x?(S&&(w.onExited=(0,_.createChainedFunction)(this.handleExited,s.props.onExited)),void 0===s.props.role&&(w.role=s.props.role||"document"),void 0===s.props.tabIndex&&(w.tabIndex=s.props.tabIndex||"-1"),p.default.createElement(b.default,{ref:function ref(t){e.mountNode=t?t.getMountNode():t},container:c,disablePortal:f,onRendered:this.handleRendered},p.default.createElement("div",(0,o.default)({ref:function ref(t){e.modalRef=t},className:(0,v.default)(l.root,u,(0,a.default)({},l.hidden,x))},m),d?null:p.default.createElement(n,(0,o.default)({open:y,onClick:this.handleBackdropClick},r)),p.default.createElement(g.default,{rootRef:function rootRef(t){e.dialogRef=t}},p.default.cloneElement(s,w))))):null}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(e){return e.open?{exited:!1}:getHasTransition(e)?null:{exited:!0}}}]),Modal}(p.default.Component);k.propTypes={},k.defaultProps={disableAutoFocus:!1,disableBackdropClick:!1,disableEnforceFocus:!1,disableEscapeKeyDown:!1,disablePortal:!1,disableRestoreFocus:!1,hideBackdrop:!1,keepMounted:!1,manager:new S.default,BackdropComponent:w.default};var R=(0,x.default)(C,{flip:!1,name:"MuiModal"})(k);t.default=R},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(160))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(9)),a=r(n(10)),i=r(n(11)),s=r(n(12)),l=r(n(13)),u=r(n(0)),c=r(n(15));r(n(3)),r(n(43));function setRef(e,t){"function"===typeof e?e(t):e&&(e.current=t)}var f=function(e){function RootRef(){return(0,o.default)(this,RootRef),(0,i.default)(this,(0,s.default)(RootRef).apply(this,arguments))}return(0,l.default)(RootRef,e),(0,a.default)(RootRef,[{key:"componentDidMount",value:function componentDidMount(){setRef(this.props.rootRef,c.default.findDOMNode(this))}},{key:"componentDidUpdate",value:function componentDidUpdate(e){e.rootRef!==this.props.rootRef&&(setRef(e.rootRef,null),setRef(this.props.rootRef,c.default.findDOMNode(this)))}},{key:"componentWillUnmount",value:function componentWillUnmount(){setRef(this.props.rootRef,null)}},{key:"render",value:function render(){return this.props.children}}]),RootRef}(u.default.Component);f.propTypes={},f.propTypes={};var d=f;t.default=d},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(162))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(9)),a=r(n(10)),i=r(n(11)),s=r(n(12)),l=r(n(13)),u=r(n(0)),c=r(n(15)),f=(r(n(3)),r(n(16)));r(n(43));var d=function(e){function Portal(){var e,t;(0,o.default)(this,Portal);for(var n=arguments.length,r=new Array(n),a=0;ae.clientHeight;var r=n.getComputedStyle(t.body),s=parseInt(r.getPropertyValue("margin-left"),10),l=parseInt(r.getPropertyValue("margin-right"),10);return s+t.body.clientWidth+l=Number(e.rows)&&(n=Math.min(Number(e.rowsMax)*t,n)),n=Math.max(n,t),Math.abs(this.state.height-n)>1&&this.setState({height:n}))}}},{key:"render",value:function render(){var e=this.props,t=e.classes,n=e.className,r=e.defaultValue,i=(e.onChange,e.rows),s=(e.rowsMax,e.textareaRef,e.value),l=(0,a.default)(e,["classes","className","defaultValue","onChange","rows","rowsMax","textareaRef","value"]);return f.default.createElement("div",{className:t.root,style:{height:this.state.height}},f.default.createElement(h.default,{target:"window",onResize:this.handleResize}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),readOnly:!0,ref:this.handleRefSinglelineShadow,rows:"1",tabIndex:-1,value:""}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),defaultValue:r,readOnly:!0,ref:this.handleRefShadow,rows:i,tabIndex:-1,value:s}),f.default.createElement("textarea",(0,o.default)({rows:i,className:(0,d.default)(t.textarea,n),defaultValue:r,value:s,onChange:this.handleChange,ref:this.handleRefInput},l)))}}]),Textarea}(f.default.Component);m.propTypes={},m.defaultProps={rows:1};var g=(0,v.default)(y)(m);t.default=g},function(e,t){e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(77);function _defineProperties(e,t){for(var n=0;n=0||(o[n]=e[n]);return o},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(193))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(0)),l=r(n(3)),u=r(n(7)),c=r(n(6)),f=r(n(194)),d=function styles(e){return{root:{transformOrigin:"top left"},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}}};function InputLabel(e,t){var n,r=e.children,l=e.classes,c=e.className,d=e.disableAnimation,p=e.FormLabelClasses,h=e.margin,v=e.shrink,y=(0,i.default)(e,["children","classes","className","disableAnimation","FormLabelClasses","margin","shrink"]),m=t.muiFormControl,g=v;"undefined"===typeof g&&m&&(g=m.filled||m.focused||m.adornedStart);var b=h;"undefined"===typeof b&&m&&(b=m.margin);var _=(0,u.default)(l.root,(n={},(0,a.default)(n,l.formControl,m),(0,a.default)(n,l.animated,!d),(0,a.default)(n,l.shrink,g),(0,a.default)(n,l.marginDense,"dense"===b),n),c);return s.default.createElement(f.default,(0,o.default)({"data-shrink":g,className:_,classes:p},y),r)}t.styles=d,InputLabel.propTypes={},InputLabel.defaultProps={disableAnimation:!1},InputLabel.contextTypes={muiFormControl:l.default.object};var p=(0,c.default)(d,{name:"MuiInputLabel"})(InputLabel);t.default=p},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(195))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(0)),l=r(n(3)),u=r(n(7)),c=r(n(6)),f=function styles(e){return{root:{fontFamily:e.typography.fontFamily,color:e.palette.text.secondary,fontSize:e.typography.pxToRem(16),lineHeight:1,padding:0,"&$focused":{color:e.palette.primary["light"===e.palette.type?"dark":"light"]},"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:e.palette.error.main}}}};function FormLabel(e,t){var n,r=e.children,l=e.classes,c=e.className,f=e.component,d=e.disabled,p=e.error,h=e.filled,v=e.focused,y=e.required,m=(0,i.default)(e,["children","classes","className","component","disabled","error","filled","focused","required"]),g=t.muiFormControl,b=d,_=p,x=h,S=v,w=y;g&&("undefined"===typeof w&&(w=g.required),"undefined"===typeof S&&(S=g.focused),"undefined"===typeof b&&(b=g.disabled),"undefined"===typeof _&&(_=g.error),"undefined"===typeof x&&(x=g.filled));var C=(0,u.default)(l.root,(n={},(0,a.default)(n,l.disabled,b),(0,a.default)(n,l.error,_),(0,a.default)(n,l.filled,x),(0,a.default)(n,l.focused,S),(0,a.default)(n,l.required,w),n),c);return s.default.createElement(f,(0,o.default)({className:C},m),r,w&&s.default.createElement("span",{className:(0,u.default)(l.asterisk,(0,a.default)({},l.error,_))},"\u2009*"))}t.styles=f,FormLabel.propTypes={},FormLabel.defaultProps={component:"label"},FormLabel.contextTypes={muiFormControl:l.default.object};var d=(0,c.default)(f,{name:"MuiFormLabel"})(FormLabel);t.default=d},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(9)),l=r(n(10)),u=r(n(11)),c=r(n(12)),f=r(n(13)),d=r(n(0)),p=r(n(3)),h=r(n(7)),v=r(n(6)),y=n(48),m=n(20),g=n(81),b={root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}};t.styles=b;var _=function(e){function FormControl(e){var t;(0,s.default)(this,FormControl),(t=(0,u.default)(this,(0,c.default)(FormControl).call(this))).state={adornedStart:!1,filled:!1,focused:!1},t.handleFocus=function(){t.setState((function(e){return e.focused?null:{focused:!0}}))},t.handleBlur=function(){t.setState((function(e){return e.focused?{focused:!1}:null}))},t.handleDirty=function(){t.state.filled||t.setState({filled:!0})},t.handleClean=function(){t.state.filled&&t.setState({filled:!1})};var n=e.children;return n&&d.default.Children.forEach(n,(function(e){if((0,g.isMuiElement)(e,["Input","Select","NativeSelect"])){(0,y.isFilled)(e.props,!0)&&(t.state.filled=!0);var n=(0,g.isMuiElement)(e,["Select","NativeSelect"])?e.props.input:e;n&&(0,y.isAdornedStart)(n.props)&&(t.state.adornedStart=!0)}})),t}return(0,f.default)(FormControl,e),(0,l.default)(FormControl,[{key:"getChildContext",value:function getChildContext(){var e=this.props,t=e.disabled,n=e.error,r=e.required,o=e.margin,a=this.state;return{muiFormControl:{adornedStart:a.adornedStart,disabled:t,error:n,filled:a.filled,focused:a.focused,margin:o,onBlur:this.handleBlur,onEmpty:this.handleClean,onFilled:this.handleDirty,onFocus:this.handleFocus,required:r}}}},{key:"render",value:function render(){var e,t=this.props,n=t.classes,r=t.className,s=t.component,l=(t.disabled,t.error,t.fullWidth),u=t.margin,c=(t.required,(0,i.default)(t,["classes","className","component","disabled","error","fullWidth","margin","required"]));return d.default.createElement(s,(0,o.default)({className:(0,h.default)(n.root,(e={},(0,a.default)(e,n["margin".concat((0,m.capitalize)(u))],"none"!==u),(0,a.default)(e,n.fullWidth,l),e),r)},c))}}]),FormControl}(d.default.Component);_.propTypes={},_.defaultProps={component:"div",disabled:!1,error:!1,fullWidth:!1,margin:"none",required:!1},_.childContextTypes={muiFormControl:p.default.object};var x=(0,v.default)(b,{name:"MuiFormControl"})(_);t.default=x},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(198))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(0)),l=r(n(3)),u=r(n(7)),c=r(n(6)),f=function styles(e){return{root:{color:e.palette.text.secondary,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(12),textAlign:"left",marginTop:8,lineHeight:"1em",minHeight:"1em",margin:0,"&$error":{color:e.palette.error.main},"&$disabled":{color:e.palette.text.disabled}},error:{},disabled:{},marginDense:{marginTop:4},focused:{},filled:{},required:{}}};function FormHelperText(e,t){var n,r=e.classes,l=e.className,c=e.component,f=e.disabled,d=e.error,p=e.filled,h=e.focused,v=e.margin,y=e.required,m=(0,i.default)(e,["classes","className","component","disabled","error","filled","focused","margin","required"]),g=t.muiFormControl,b=f,_=d,x=p,S=h,w=v,C=y;g&&("undefined"===typeof b&&(b=g.disabled),"undefined"===typeof _&&(_=g.error),"undefined"===typeof w&&(w=g.margin),"undefined"===typeof C&&(C=g.required),"undefined"===typeof S&&(S=g.focused),"undefined"===typeof x&&(x=g.filled));var k=(0,u.default)(r.root,(n={},(0,a.default)(n,r.disabled,b),(0,a.default)(n,r.error,_),(0,a.default)(n,r.filled,x),(0,a.default)(n,r.focused,S),(0,a.default)(n,r.marginDense,"dense"===w),(0,a.default)(n,r.required,C),n),l);return s.default.createElement(c,(0,o.default)({className:k},m))}t.styles=f,FormHelperText.propTypes={},FormHelperText.defaultProps={component:"p"},FormHelperText.contextTypes={muiFormControl:l.default.object};var d=(0,c.default)(f,{name:"MuiFormHelperText"})(FormHelperText);t.default=d},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(200))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var o=r(n(4)),a=r(n(5)),i=r(n(0)),s=(r(n(3)),r(n(201))),l=r(n(6)),u=r(n(63)),c=r(n(83)),f=r(n(47)),d=n(222),p=r(n(85)),h=d.styles;function Select(e){var t=e.autoWidth,n=e.children,r=e.classes,l=e.displayEmpty,c=e.IconComponent,f=e.input,d=e.inputProps,h=e.MenuProps,v=e.multiple,y=e.native,m=e.onClose,g=e.onOpen,b=e.open,_=e.renderValue,x=e.SelectDisplayProps,S=(0,a.default)(e,["autoWidth","children","classes","displayEmpty","IconComponent","input","inputProps","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps"]),w=y?p.default:s.default;return i.default.cloneElement(f,(0,o.default)({inputComponent:w,inputProps:(0,o.default)({children:n,IconComponent:c,type:void 0},y?{}:{autoWidth:t,displayEmpty:l,MenuProps:h,multiple:v,onClose:m,onOpen:g,open:b,renderValue:_,SelectDisplayProps:x},d,{classes:d?(0,u.default)({baseClasses:r,newClasses:d.classes,Component:Select}):r},f?f.props.inputProps:{})},S))}t.styles=h,Select.propTypes={},Select.defaultProps={autoWidth:!1,displayEmpty:!1,IconComponent:c.default,input:i.default.createElement(f.default,null),multiple:!1,native:!1},Select.muiName="Select";var v=(0,l.default)(d.styles,{name:"MuiSelect"})(Select);t.default=v},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(4)),a=r(n(8)),i=r(n(5)),s=r(n(82)),l=r(n(9)),u=r(n(10)),c=r(n(11)),f=r(n(12)),d=r(n(13)),p=r(n(0)),h=(r(n(3)),r(n(7))),v=r(n(26)),y=(r(n(14)),r(n(205))),m=n(48),g=function(e){function SelectInput(){var e,t;(0,l.default)(this,SelectInput);for(var n=arguments.length,r=new Array(n),o=0;ov){var b=d-v;c-=b,l.vertical+=b}if(fm){var x=p-m;f-=x,l.horizontal+=x}return{top:"".concat(c,"px"),left:"".concat(f,"px"),transformOrigin:getTransformOriginValue(l)}},t.handleEnter=function(e){t.props.onEnter&&t.props.onEnter(e),t.setPositioningStyles(e)},t}return(0,c.default)(Popover,e),(0,s.default)(Popover,[{key:"componentDidMount",value:function componentDidMount(){this.props.action&&this.props.action({updatePosition:this.handleResize})}},{key:"getAnchorOffset",value:function getAnchorOffset(e){var t=this.props,n=t.anchorEl,r=t.anchorOrigin,o=t.anchorReference,a=t.anchorPosition;if("anchorPosition"===o)return a;var i=(getAnchorEl(n)||(0,v.default)(this.paperRef).body).getBoundingClientRect(),s=0===e?r.vertical:"center";return{top:i.top+this.handleGetOffsetTop(i,s),left:i.left+this.handleGetOffsetLeft(i,r.horizontal)}}},{key:"getContentAnchorOffset",value:function getContentAnchorOffset(e){var t=this.props,n=t.getContentAnchorEl,r=t.anchorReference,o=0;if(n&&"anchorEl"===r){var a=n(e);if(a&&e.contains(a)){var i=function getScrollParent(e,t){for(var n=t,r=0;n&&n!==e;)r+=(n=n.parentNode).scrollTop;return r}(e,a);o=a.offsetTop+a.clientHeight/2-i||0}}return o}},{key:"getTransformOrigin",value:function getTransformOrigin(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.props.transformOrigin;return{vertical:this.handleGetOffsetTop(e,n.vertical)+t,horizontal:this.handleGetOffsetLeft(e,n.horizontal)}}},{key:"render",value:function render(){var e=this,t=this.props,n=(t.action,t.anchorEl),r=(t.anchorOrigin,t.anchorPosition,t.anchorReference,t.children),i=t.classes,s=t.container,l=t.elevation,u=(t.getContentAnchorEl,t.marginThreshold,t.ModalClasses),c=(t.onEnter,t.onEntered),p=t.onEntering,y=t.onExit,m=t.onExited,b=t.onExiting,x=t.open,S=t.PaperProps,w=t.role,C=(t.transformOrigin,t.TransitionComponent),k=t.transitionDuration,R=t.TransitionProps,E=(0,a.default)(t,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","container","elevation","getContentAnchorEl","marginThreshold","ModalClasses","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","role","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),j=k;"auto"!==k||C.muiSupportAuto||(j=void 0);var I=s||(n?(0,v.default)(getAnchorEl(n)).body:void 0);return f.default.createElement(g.default,(0,o.default)({classes:u,container:I,open:x,BackdropProps:{invisible:!0}},E),f.default.createElement(C,(0,o.default)({appear:!0,in:x,onEnter:this.handleEnter,onEntered:c,onEntering:p,onExit:y,onExited:m,onExiting:b,role:w,timeout:j},R),f.default.createElement(_.default,(0,o.default)({className:i.paper,elevation:l,ref:function ref(t){e.paperRef=d.default.findDOMNode(t)}},S),f.default.createElement(h.default,{target:"window",onResize:this.handleResize}),r)))}}]),Popover}(f.default.Component);S.propTypes={},S.defaultProps={anchorReference:"anchorEl",anchorOrigin:{vertical:"top",horizontal:"left"},elevation:8,marginThreshold:16,transformOrigin:{vertical:"top",horizontal:"left"},TransitionComponent:b.default,transitionDuration:"auto"};var w=(0,m.default)(x,{name:"MuiPopover"})(S);t.default=w},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function get(){return o.default}});var o=r(n(209))},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(4)),a=r(n(5)),i=r(n(9)),s=r(n(10)),l=r(n(11)),u=r(n(12)),c=r(n(13)),f=r(n(0)),d=(r(n(3)),r(n(45))),p=r(n(46)),h=n(73);function getScale(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var v={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"".concat(getScale(1)," translateZ(0)")}},y=function(e){function Grow(){var e,t;(0,i.default)(this,Grow);for(var n=arguments.length,r=new Array(n),o=0;o=0?t.children[e].focus():t.firstChild.focus())}},{key:"resetTabIndex",value:function resetTabIndex(){for(var e=this.listRef,t=(0,h.default)(e).activeElement,n=[],r=0;r3&&void 0!==arguments[3]?arguments[3]:1;e.focusVisibleTimeout=setTimeout((function(){var o=(0,a.default)(t);i.focusKeyPressed&&(o.activeElement===t||t.contains(o.activeElement))?n():r-1})(e)&&(i.focusKeyPressed=!0,clearTimeout(i.keyUpEventTimeout),i.keyUpEventTimeout=setTimeout((function(){i.focusKeyPressed=!1}),1e3))}},function(e,t,n){"use strict";var r=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=t.DELAY_RIPPLE=void 0;var o=r(n(4)),a=r(n(5)),i=r(n(82)),s=r(n(9)),l=r(n(10)),u=r(n(11)),c=r(n(12)),f=r(n(13)),d=r(n(28)),p=r(n(0)),h=(r(n(3)),r(n(15))),v=r(n(229)),y=r(n(7)),m=r(n(6)),g=r(n(231));t.DELAY_RIPPLE=80;var b=function styles(e){return{root:{display:"block",position:"absolute",overflow:"hidden",borderRadius:"inherit",width:"100%",height:"100%",left:0,top:0,pointerEvents:"none",zIndex:0},ripple:{width:50,height:50,left:0,top:0,opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"mui-ripple-enter ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"mui-ripple-exit ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"mui-ripple-pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite")},"@keyframes mui-ripple-enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes mui-ripple-exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes mui-ripple-pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}};t.styles=b;var _=function(e){function TouchRipple(){var e,t;(0,s.default)(this,TouchRipple);for(var n=arguments.length,r=new Array(n),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=n.pulsate,a=void 0!==o&&o,i=n.center,s=void 0===i?t.props.center||n.pulsate:i,l=n.fakeElement,u=void 0!==l&&l;if("mousedown"===e.type&&t.ignoringMouseDown)t.ignoringMouseDown=!1;else{"touchstart"===e.type&&(t.ignoringMouseDown=!0);var c,f,p,v=u?null:h.default.findDOMNode((0,d.default)((0,d.default)(t))),y=v?v.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(s||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(y.width/2),f=Math.round(y.height/2);else{var m=e.clientX?e.clientX:e.touches[0].clientX,g=e.clientY?e.clientY:e.touches[0].clientY;c=Math.round(m-y.left),f=Math.round(g-y.top)}if(s)(p=Math.sqrt((2*Math.pow(y.width,2)+Math.pow(y.height,2))/3))%2===0&&(p+=1);else{var b=2*Math.max(Math.abs((v?v.clientWidth:0)-c),c)+2,_=2*Math.max(Math.abs((v?v.clientHeight:0)-f),f)+2;p=Math.sqrt(Math.pow(b,2)+Math.pow(_,2))}e.touches?(t.startTimerCommit=function(){t.startCommit({pulsate:a,rippleX:c,rippleY:f,rippleSize:p,cb:r})},t.startTimer=setTimeout((function(){t.startTimerCommit&&(t.startTimerCommit(),t.startTimerCommit=null)}),80)):t.startCommit({pulsate:a,rippleX:c,rippleY:f,rippleSize:p,cb:r})}},t.startCommit=function(e){var n=e.pulsate,r=e.rippleX,o=e.rippleY,a=e.rippleSize,s=e.cb;t.setState((function(e){return{nextKey:e.nextKey+1,ripples:(0,i.default)(e.ripples).concat([p.default.createElement(g.default,{key:e.nextKey,classes:t.props.classes,timeout:{exit:550,enter:550},pulsate:n,rippleX:r,rippleY:o,rippleSize:a})])}}),s)},t.stop=function(e,n){clearTimeout(t.startTimer);var r=t.state.ripples;if("touchend"===e.type&&t.startTimerCommit)return e.persist(),t.startTimerCommit(),t.startTimerCommit=null,void(t.startTimer=setTimeout((function(){t.stop(e,n)}),0));t.startTimerCommit=null,r&&r.length&&t.setState({ripples:r.slice(1)},n)},t}return(0,f.default)(TouchRipple,e),(0,l.default)(TouchRipple,[{key:"componentWillUnmount",value:function componentWillUnmount(){clearTimeout(this.startTimer)}},{key:"render",value:function render(){var e=this.props,t=(e.center,e.classes),n=e.className,r=(0,a.default)(e,["center","classes","className"]);return p.default.createElement(v.default,(0,o.default)({component:"span",enter:!0,exit:!0,className:(0,y.default)(t.root,n)},r),this.state.ripples)}}]),TouchRipple}(p.default.PureComponent);_.propTypes={},_.defaultProps={center:!1};var x=(0,m.default)(b,{flip:!1,name:"MuiTouchRipple"})(_);t.default=x},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=_interopRequireDefault(n(3)),o=_interopRequireDefault(n(0)),a=n(72),i=n(230);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,["component","childFactory"]),a=s(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?a:o.default.createElement(t,r,a)},TransitionGroup}(o.default.Component);l.childContextTypes={transitionGroup:r.default.object.isRequired},l.propTypes={},l.defaultProps={component:"div",childFactory:function childFactory(e){return e}};var u=(0,a.polyfill)(l);t.default=u,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.getChildMapping=getChildMapping,t.mergeChildMappings=mergeChildMappings,t.getInitialChildMapping=function getInitialChildMapping(e,t){return getChildMapping(e.children,(function(n){return(0,r.cloneElement)(n,{onExited:t.bind(null,n),in:!0,appear:getProp(n,"appear",e),enter:getProp(n,"enter",e),exit:getProp(n,"exit",e)})}))},t.getNextChildMapping=function getNextChildMapping(e,t,n){var o=getChildMapping(e.children),a=mergeChildMappings(t,o);return Object.keys(a).forEach((function(i){var s=a[i];if((0,r.isValidElement)(s)){var l=i in t,u=i in o,c=t[i],f=(0,r.isValidElement)(c)&&!c.props.in;!u||l&&!f?u||!l||f?u&&l&&(0,r.isValidElement)(c)&&(a[i]=(0,r.cloneElement)(s,{onExited:n.bind(null,s),in:c.props.in,exit:getProp(s,"exit",e),enter:getProp(s,"enter",e)})):a[i]=(0,r.cloneElement)(s,{in:!1}):a[i]=(0,r.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:getProp(s,"exit",e),enter:getProp(s,"enter",e)})}})),a};var r=n(0);function getChildMapping(e,t){var n=Object.create(null);return e&&r.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function mapper(e){return t&&(0,r.isValidElement)(e)?t(e):e}(e)})),n}function mergeChildMappings(e,t){function getValueForKey(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var n,r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var i={};for(var s in t){if(r[s])for(n=0;n=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return handle("end");if(o.tryLoc<=this.prev){var i=n.call(o,"catchLoc"),s=n.call(o,"finallyLoc");if(i&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),resetTryEntry(n),l}},catch:function _catch(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;resetTryEntry(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(e,t,n){return this.delegate={iterator:values(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}function asyncGeneratorStep(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void n(u)}s.done?t(l):Promise.resolve(l).then(r,o)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function _next(e){asyncGeneratorStep(a,r,o,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(a,r,o,_next,_throw,"throw",e)}_next(void 0)}))}}var o=n(2);function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(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 _objectSpread2(e){for(var t=1;t",console.log("REQUEST BASE URL: ",""," PATH:",e),i.next=6,fetch("".concat("","/").concat(e),o);case 6:return a=i.sent,i.next=9,a.json();case 9:return i.abrupt("return",i.sent);case 10:case"end":return i.stop()}}),_callee)})));return function request(t,n,r){return e.apply(this,arguments)}}(),i=function isInternalCall(e){return!0===e.task.attributes.client_call},s=function(){var e=_asyncToGenerator(_regeneratorRuntime().mark((function _callee(e){var t,n,r;return _regeneratorRuntime().wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:return t=e.reservation,n=e.payload,r="",o.next=4,n.task.setAttributes(_objectSpread2(_objectSpread2({},n.task.attributes),{},{outbound_to:n.task.attributes.name}));case 4:"undefined"!==typeof t.task.attributes.conference?t.call(t.task.attributes.from,"".concat(r,"/internal-call/agent-join-conference?conferenceName=").concat(t.task.attributes.conference.friendlyName),{accept:!0}):t.call(t.task.attributes.from,"".concat(r,"/internal-call/agent-outbound-join?taskSid=").concat(n.task.taskSid),{accept:!0});case 5:case"end":return o.stop()}}),_callee)})));return function acceptInternalTask(t){return e.apply(this,arguments)}}(),l=function(){var e=_asyncToGenerator(_regeneratorRuntime().mark((function _callee2(e){var t,n,r;return _regeneratorRuntime().wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:return t=e.manager,n=e.payload,o.next=3,n.task._reservation.accept();case 3:return o.next=5,n.task.wrapUp();case 5:return o.next=7,n.task.complete();case 7:r=n.task.attributes.conferenceSid,a("internal-call/cleanup-rejected-task",t,{taskSid:r}).then((function(e){console.log("Outbound call has been placed into wrapping")})).catch((function(e){console.log(e)}));case 9:case"end":return o.stop()}}),_callee2)})));return function rejectInternalTask(t){return e.apply(this,arguments)}}(),u=new(_createClass((function ConferenceService(){var e=this;_classCallCheck(this,ConferenceService),this.manager=o.Manager.getInstance(),this._toggleParticipantHold=function(t,n,r){return new Promise((function(o,i){a("external-transfer/hold-conference-participant",e.manager,{conference:t,participant:n,hold:r}).then((function(e){console.log("".concat(r?"Hold":"Unhold"," successful for participant"),n),o()})).catch((function(e){console.error("Error ".concat(r?"holding":"unholding"," participant ").concat(n,"\r\n"),e),i(e)}))}))},this.setEndConferenceOnExit=function(t,n,r){return new Promise((function(o,i){a("external-transfer/update-conference-participant",e.manager,{conference:t,participant:n,endConferenceOnExit:r}).then((function(e){console.log("Participant ".concat(n," updated:\r\n"),e),o()})).catch((function(e){console.error("Error updating participant ".concat(n,"\r\n"),e),i(e)}))}))},this.addParticipant=function(t,n,r){return new Promise((function(o,i){a("external-transfer/add-conference-participant",e.manager,{taskSid:t,from:n,to:r}).then((function(e){console.log("Participant added:\r\n ",e),o(e.callSid)})).catch((function(e){console.error("Error adding participant ".concat(r,"\r\n"),e),i(e)}))}))},this.addConnectingParticipant=function(t,n,r){var a=e.manager.store.getState().flex,i=e.manager.store.dispatch,s=a.conferences.states,l=new Set;console.log("Populating conferences set"),s.forEach((function(e){var a=e.source;if(console.log("Checking conference SID:",a.conferenceSid),a.conferenceSid!==t)console.log("Not the desired conference"),l.add(a);else{var i=a.participants,s={connecting:!0,participant_type:r,status:"joined"},u=new o.ConferenceParticipant(s,n);console.log("Adding fake participant:",u),i.push(u),l.add(e.source)}})),console.log("Updating conferences:",l),i({type:"CONFERENCE_MULTIPLE_UPDATE",payload:{conferences:l}})},this.holdParticipant=function(t,n){return e._toggleParticipantHold(t,n,!0)},this.unholdParticipant=function(t,n){return e._toggleParticipantHold(t,n,!1)},this.removeParticipant=function(t,n){return new Promise((function(r,o){a("external-transfer/remove-conference-participant",e.manager,{conference:t,participant:n}).then((function(e){console.log("Participant ".concat(n," removed from conference")),r(e.callSid)})).catch((function(e){console.error("Error removing participant ".concat(n," from conference\r\n"),e),o(e)}))}))}}))),notifications=function(e,t){!function registerCustomNotifications(e,t){e.Notifications.registerNotification({id:c,type:o.NotificationType.error,content:"Hangup call abandoned: Failed to take all participants off hold while hanging up the call. If this issue persists, please try unholding participants manually before leaving the call"})}(e)},c="PS_FailedHangupOnConferenceWithExternalParties";var customActions=function(e){o.Actions.addListener("beforeAcceptTask",(function(e,t){var n=e.task.sourceObject;i(e)&&(t(),s({reservation:n,payload:e}))})),o.Actions.addListener("beforeRejectTask",(function(t,n){i(t)&&(n(),l({manager:e,payload:t}))}));var t=function holdCall(t,n){return new Promise((function(r,o){var s=t.task;i(t)?function toggleHoldInternalCall(e){var t=e.task,n=e.manager,r=e.hold,o=e.resolve,i=e.reject,s=t.attributes.conference?t.attributes.conference.sid:t.attributes.conferenceSid,l=t.attributes.conference.participants?t.attributes.conference.participants.worker:t.attributes.worker_call_sid;a("internal-call/hold-call",n,{conference:s,participant:l,hold:r}).then((function(e){o(e)})).catch((function(e){console.log(e),i(e)}))}({task:s,manager:e,hold:n,resolve:r,reject:o}):r()}))};o.Actions.addListener("beforeHoldCall",(function(e){return t(e,!0)})),o.Actions.addListener("beforeUnholdCall",(function(e){return t(e,!1)})),o.Actions.addListener("beforeHoldParticipant",(function(e,t){var n=e.participantType,r=e.targetSid,o=e.task;if("unknown"===n){var a=o.conference.conferenceSid;return t(),console.log("Holding participant",r),u.holdParticipant(a,r)}})),o.Actions.addListener("beforeUnholdParticipant",(function(e,t){var n=e.participantType,r=e.targetSid,o=e.task;if("unknown"===n){console.log("Holding participant",r);var a=o.conference.conferenceSid;return t(),u.unholdParticipant(a,r)}})),o.Actions.addListener("beforeKickParticipant",(function(e,t){var n=e.participantType;"transfer"!==n&&"worker"!==n&&(t(),function kickExternalTransferParticipant(e){var t=e.task,n=e.targetSid,r=t.attributes.conference?t.attributes.conference.sid:t.conference.conferenceSid,o=n;console.log("Removing participant ".concat(o," from conference")),u.removeParticipant(r,o)}(e))})),o.Actions.addListener("beforeHangupCall",function(){var e=_asyncToGenerator(_regeneratorRuntime().mark((function _callee2(e,t){var n,r,a,i,s,l,u,f,d;return _regeneratorRuntime().wrap((function _callee2$(p){for(;;)switch(p.prev=p.next){case 0:if(n=e.task,r=n.conference,a=n.taskSid,i=function participantsOnHold(e){return e.onHold&&"joined"===e.status},s=function snooze(e){return new Promise((function(t){return setTimeout(t,e)}))},l=function getLatestConference(e){return o.StateHelper.getTaskByTaskrouterTaskSid(e).conference},1!==r.liveWorkerCount){p.next=18;break}r.participants.forEach(function(){var t=_asyncToGenerator(_regeneratorRuntime().mark((function _callee(t){var n,r,a;return _regeneratorRuntime().wrap((function _callee$(i){for(;;)switch(i.prev=i.next){case 0:if(n=t.participantType,r=t.workerSid,a=t.callSid,!t.onHold||"joined"!==t.status){i.next=4;break}return i.next=4,o.Actions.invokeAction("UnholdParticipant",{participantType:n,task:e.task,targetSid:"worker"===n?r:a});case 4:case"end":return i.stop()}}),_callee)})));return function(e){return t.apply(this,arguments)}}()),u=0,f=l(a),d=f.participants;case 9:if(!(d.some(i)&&u<10)){p.next=17;break}return p.next=12,s(500);case 12:u++,f=l(a),d=f.participants,p.next=9;break;case 17:f.participants.some(i)&&(o.Notifications.showNotification(c),t());case 18:case"end":return p.stop()}}),_callee2)})));return function(t,n){return e.apply(this,arguments)}}())},f=n(0),d=n.n(f);function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var p=n(17);function typeof_typeof(e){return(typeof_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function toPropertyKey_toPropertyKey(e){var t=function toPrimitive_toPrimitive(e,t){if("object"!==typeof_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof_typeof(t)?t:String(t)}function defineProperty_defineProperty(e,t,n){return(t=toPropertyKey_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function memoize(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}},v=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,y=h((function(e){return v.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}));function setPrototypeOf_setPrototypeOf(e,t){return(setPrototypeOf_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){return e.__proto__=t,e})(e,t)}var m=function(){function StyleSheet(e){this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.before=null}var e=StyleSheet.prototype;return e.insert=function insert(e){if(this.ctr%(this.isSpeedy?65e3:1)===0){var t,n=function createStyleElement(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t}(this);t=0===this.tags.length?this.before:this.tags[this.tags.length-1].nextSibling,this.container.insertBefore(n,t),this.tags.push(n)}var r=this.tags[this.tags.length-1];if(this.isSpeedy){var o=function sheetForTag(e){if(e.sheet)return e.sheet;for(var t=0;tr&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(s,"$1"+e.trim());case 58:return e.trim()+t.replace(s,"$1"+e.trim());default:if(0<1*n&&0u.charCodeAt(8))break;case 115:s=s.replace(u,"-webkit-"+u)+";"+s;break;case 207:case 102:s=s.replace(u,"-webkit-"+(102o.charCodeAt(0)&&(o=o.trim()),o=[o],0s)&&(F=(z=z.replace(" ",":")).length),0=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},C={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},k=/[A-Z]|^ms/g,R=/_EMO_([^_]+?)_([^]*?)_EMO_/g,E=function isCustomProperty(e){return 45===e.charCodeAt(1)},j=function isProcessableValue(e){return null!=e&&"boolean"!==typeof e},I=h((function(e){return E(e)?e:e.replace(k,"-$&").toLowerCase()})),A=function processStyleValue(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(R,(function(e,t,n){return D={name:t,styles:n,next:D},t}))}return 1===C[e]||E(e)||"number"!==typeof t||0===t?t:t+"px"};function handleInterpolation(e,t,n,r){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return D={name:n.name,styles:n.styles,next:D},n.name;if(void 0!==n.styles){var o=n.next;if(void 0!==o)for(;void 0!==o;)D={name:o.name,styles:o.styles,next:D},o=o.next;return n.styles+";"}return function createStringFromObject(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?ae:ie};function styled_base_browser_esm_ownKeys(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 _objectSpread(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[];return e.some((function(e){return"unknown"===e.participantType}))},e.shouldUpdateParticipants=function(t,n){return console.debug("dialpad-addon, ConferenceMonitor, shouldUpdateParticipants:",n<=1&&e.hasUnknownParticipant(t)),n<=1&&e.hasUnknownParticipant(t)},e.handleMoreThanTwoParticipants=function(t,n){console.log("More than two conference participants. Setting endConferenceOnExit to false for all participants."),e.setEndConferenceOnExit(t,n,!1)},e.handleOnlyTwoParticipants=function(t,n){console.log("Conference participants dropped to two. Setting endConferenceOnExit to true for all participants."),e.setEndConferenceOnExit(t,n,!0)},e.setEndConferenceOnExit=function(){var e=_asyncToGenerator(_regeneratorRuntime().mark((function _callee(e,t,n){var r;return _regeneratorRuntime().wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:return r=[],t.forEach((function(t){console.log("setting endConferenceOnExit = ".concat(n," for callSid: ").concat(t.callSid," status: ").concat(t.status)),t.connecting||r.push(u.setEndConferenceOnExit(e,t.callSid,n))})),o.prev=2,o.next=5,Promise.all(r);case 5:console.log("endConferenceOnExit set to ".concat(n," for all participants")),o.next=11;break;case 8:o.prev=8,o.t0=o.catch(2),console.error("Error setting endConferenceOnExit to ".concat(n," for all participants\r\n"),o.t0);case 11:case"end":return o.stop()}}),_callee,null,[[2,8]])})));return function(t,n,r){return e.apply(this,arguments)}}(),e}return _createClass(ConferenceMonitor,[{key:"componentDidUpdate",value:function componentDidUpdate(){if(!this.state.stopMonitoring){var e=this.props.task,t=e&&(e.conference||{}),n=t.conferenceSid,r=t.liveParticipantCount,o=t.liveWorkerCount,a=t.participants,i=void 0===a?[]:a,s=i.filter((function(e){return"joined"===e.status})),l=s.find((function(e){return e.isMyself}));r>2&&this.state.liveParticipantCount<=2?this.shouldUpdateParticipants(i,o)&&this.handleMoreThanTwoParticipants(n,s):r<=2&&this.state.liveParticipantCount>2&&this.shouldUpdateParticipants(i,o)&&this.handleOnlyTwoParticipants(n,s),r!==this.state.liveParticipantCount&&this.setState({liveParticipantCount:r}),!this.state.didMyWorkerJoinYet&&l&&this.setState({didMyWorkerJoinYet:!0}),this.state.didMyWorkerJoinYet&&!l&&(console.debug("dialpad-addon, ConferenceMonitor, componentDidUpdate: My participant left. Time to STOP monitoring this task/conference"),this.setState({stopMonitoring:!0,didMyWorkerJoinYet:!1}))}}},{key:"render",value:function render(){return null}}]),ConferenceMonitor}(f.Component),Xe=function loadExternalTransferInterface(e,t){t.strings=_objectSpread2(_objectSpread2({},{DIALPADExternalTransferHoverOver:"Add Conference Participant",DIALPADExternalTransferPhoneNumberPopupHeader:"Enter phone number to add to the conference",DIALPADExternalTransferPhoneNumberPopupTitle:"Phone Number",DIALPADExternalTransferPhoneNumberPopupCancel:"Cancel",DIALPADExternalTransferPhoneNumberPopupDial:"Dial"}),t.strings),e.CallCanvasActions.Content.add(d.a.createElement(Ae,{key:"conference"}),{sortOrder:2}),e.CallCanvas.Content.add(d.a.createElement($e,{key:"conference-modal"}),{sortOrder:100}),e.CallCanvas.Content.add(d.a.createElement(Ye,{key:"conference-monitor"}),{sortOrder:999});var n=function isUnknownParticipant(e){return"unknown"===e.participant.participantType},r=function isNotTransferParticipant(e){return"transfer"!==e.participant.participantType};e.ParticipantCanvas.Content.remove("actions",{if:r}),e.ParticipantCanvas.Content.add(d.a.createElement(xe,{key:"custom-actions"}),{sortOrder:10,if:r}),e.ParticipantCanvas.Content.remove("name",{if:n}),e.ParticipantCanvas.Content.add(d.a.createElement(we,{key:"custom-name"}),{sortOrder:1,if:n}),e.ParticipantCanvas.Content.remove("status"),e.ParticipantCanvas.Content.add(d.a.createElement(Ee,{key:"custom-status"}),{sortOrder:2}),e.ParticipantCanvas.ListItem&&(e.ParticipantCanvas.ListItem.Content.remove("statusContainer"),e.ParticipantCanvas.ListItem.Content.add(d.a.createElement(Te,{key:"custom-statusContainer"}),{sortOrder:1}),e.ParticipantCanvas.ListItem.Content.remove("actions",{if:r}),e.ParticipantCanvas.ListItem.Content.add(d.a.createElement(xe,{key:"custom-actions"}),{sortOrder:10,if:r}))},Je=function sharedTheme(e){return{root:{flexGrow:1,height:50,display:"flex",flexWrap:"wrap"},button:{margin:"0px"},functionButton:{margin:"10px",padding:"0px"},formControl:{margin:e.spacing.unit,width:"250px"},boxDialpad:{marginTop:5*e.spacing.unit,paddingTop:5*e.spacing.unit,borderTop:"1px solid #eeeeee",height:"300px",borderBottom:"1px solid #eeeeee"},titleAgentDialpad:{width:"100%",textTransform:"uppercase",textAlign:"center",fontWeight:"bold",marginBottom:4*e.spacing.unit,fontSize:e.typography.fontSize},subtitleDialpad:{marginLeft:e.spacing.unit,textTransform:"uppercase"},buttonAgentDialpad:{marginTop:2*e.spacing.unit,display:"flex",justifyContent:"center"},selectEmpty:{marginTop:2*e.spacing.unit},backspace:{paddingTop:"5px",margin:"0px"},dialPadBtn:{borderRadius:"100px",padding:"10px",minWidth:"0px"}}},Ze=n(49),Qe=n.n(Ze);n(79),n(80),n(234),n(238),n(242);function classCallCheck_classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function createClass_defineProperties(e,t){for(var n=0;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1}function getScrollTop(e){return isDocumentElement(e)?window.pageYOffset:e.scrollTop}function scrollTo(e,t){isDocumentElement(e)?window.scrollTo(0,t):e.scrollTop=t}function easeOutCubic(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function animatedScrollTo(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:at,o=getScrollTop(e),a=t-o,i=10,s=0;function animateScroll(){var t=easeOutCubic(s+=i,o,a,n);scrollTo(e,t),s=p)return{placement:"bottom",maxHeight:t};if(w>=p&&!i)return a&&animatedScrollTo(l,C,160),{placement:"bottom",maxHeight:t};if(!i&&w>=r||i&&x>=r)return a&&animatedScrollTo(l,C,160),{placement:"bottom",maxHeight:i?x-g:w-g};if("auto"===o||i){var R=t,E=i?_:S;return E>=r&&(R=Math.min(E-g-s.controlHeight,t)),{placement:"top",maxHeight:R}}if("bottom"===o)return scrollTo(l,C),{placement:"bottom",maxHeight:t};break;case"top":if(_>=p)return{placement:"top",maxHeight:t};if(S>=p&&!i)return a&&animatedScrollTo(l,k,160),{placement:"top",maxHeight:t};if(!i&&S>=r||i&&_>=r){var j=t;return(!i&&S>=r||i&&_>=r)&&(j=i?_-b:S-b),a&&animatedScrollTo(l,k,160),{placement:"top",maxHeight:j}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return u}var st=function coercePlacement(e){return"auto"===e?"bottom":e},lt=Object(f.createContext)({getPortalPlacement:null}),ut=function(e){inherits_inherits(MenuPlacer,e);var t=index_75b02bac_browser_esm_createSuper(MenuPlacer);function MenuPlacer(){var e;classCallCheck_classCallCheck(this,MenuPlacer);for(var n=arguments.length,r=new Array(n),o=0;o0,h=c-f-u,v=!1;h>n&&e.isBottom&&(a&&a(t),e.isBottom=!1),p&&e.isTop&&(s&&s(t),e.isTop=!1),p&&n>h?(o&&!e.isBottom&&o(t),d.scrollTop=c,v=!0,e.isBottom=!0):!p&&-n>u&&(i&&!e.isTop&&i(t),d.scrollTop=0,v=!0,e.isTop=!0),v&&e.cancelScroll(t)},e.onWheel=function(t){e.handleEventDelta(t,t.deltaY)},e.onTouchStart=function(t){e.touchStart=t.changedTouches[0].clientY},e.onTouchMove=function(t){var n=e.touchStart-t.changedTouches[0].clientY;e.handleEventDelta(t,n)},e.getScrollTarget=function(t){e.scrollTarget=t},e}return createClass_createClass(ScrollCaptor,[{key:"componentDidMount",value:function componentDidMount(){this.startListening(this.scrollTarget)}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.stopListening(this.scrollTarget)}},{key:"startListening",value:function startListening(e){e&&("function"===typeof e.addEventListener&&e.addEventListener("wheel",this.onWheel,!1),"function"===typeof e.addEventListener&&e.addEventListener("touchstart",this.onTouchStart,!1),"function"===typeof e.addEventListener&&e.addEventListener("touchmove",this.onTouchMove,!1))}},{key:"stopListening",value:function stopListening(e){e&&("function"===typeof e.removeEventListener&&e.removeEventListener("wheel",this.onWheel,!1),"function"===typeof e.removeEventListener&&e.removeEventListener("touchstart",this.onTouchStart,!1),"function"===typeof e.removeEventListener&&e.removeEventListener("touchmove",this.onTouchMove,!1))}},{key:"render",value:function render(){return d.a.createElement(Kt,{innerRef:this.getScrollTarget},this.props.children)}}]),ScrollCaptor}(f.Component);function ScrollCaptorSwitch(e){var t=e.isEnabled,n=void 0===t||t,r=_objectWithoutProperties(e,["isEnabled"]);return n?d.a.createElement(en,r):r.children}var tn=function instructionsAriaMessage(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isSearchable,r=t.isMulti,o=t.label,a=t.isDisabled,i=t.tabSelectsValue;switch(e){case"menu":return"Use Up and Down to choose options".concat(a?"":", press Enter to select the currently focused option",", press Escape to exit the menu").concat(i?", press Tab to select the option and exit the menu":"",".");case"input":return"".concat(o||"Select"," is focused ").concat(n?",type to refine list":"",", press Down to open the menu, ").concat(r?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value"}},nn=function valueEventAriaMessage(e,t){var n=t.value,r=t.isDisabled;if(n)switch(e){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(n,", deselected.");case"select-option":return"option ".concat(n,r?" is disabled. Select another option.":", selected.")}},rn=function isOptionDisabled(e){return!!e.isDisabled};var an={clearIndicator:wt,container:function containerCSS(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function css(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,a=r.borderRadius,i=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:a,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px ".concat(o.primary):null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:i.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:Pt,group:function groupCSS(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function groupHeadingCSS(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function indicatorsContainerCSS(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function indicatorSeparatorCSS(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function inputCSS(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:o.neutral80}},loadingIndicator:function loadingIndicatorCSS(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,a=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*a,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:dt,menu:function menuCSS(e){var t,n=e.placement,r=e.theme,o=r.borderRadius,a=r.spacing,i=r.colors;return defineProperty_defineProperty(t={label:"menu"},function alignToControl(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n),"100%"),defineProperty_defineProperty(t,"backgroundColor",i.neutral0),defineProperty_defineProperty(t,"borderRadius",o),defineProperty_defineProperty(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),defineProperty_defineProperty(t,"marginBottom",a.menuGutter),defineProperty_defineProperty(t,"marginTop",a.menuGutter),defineProperty_defineProperty(t,"position","absolute"),defineProperty_defineProperty(t,"width","100%"),defineProperty_defineProperty(t,"zIndex",1),t},menuList:function menuListCSS(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function menuPortalCSS(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function multiValueCSS(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function multiValueLabelCSS(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function multiValueRemoveCSS(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&o.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:ft,option:function optionCSS(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,a=o.spacing,i=o.colors;return{label:"option",backgroundColor:r?i.primary:n?i.primary25:"transparent",color:t?i.neutral20:r?i.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:"".concat(2*a.baseUnit,"px ").concat(3*a.baseUnit,"px"),width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:!t&&(r?i.primary:i.primary50)}}},placeholder:function placeholderCSS(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function css(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{label:"singleValue",color:t?o.neutral40:o.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - ".concat(2*r.baseUnit,"px)"),overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function valueContainerCSS(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:"".concat(t.baseUnit/2,"px ").concat(2*t.baseUnit,"px"),WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var sn={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}};function Select_e1cf49ae_browser_esm_ownKeys$2(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 Select_e1cf49ae_browser_esm_objectSpread$2(e){for(var t=1;t-1}}(),formatGroupLabel:function formatGroupLabel(e){return e.label},getOptionLabel:function getOptionLabel(e){return e.label},getOptionValue:function getOptionValue(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:rn,loadingMessage:function loadingMessage(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function isMobileDevice(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function noOptionsMessage(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function screenReaderStatus(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:"0",tabSelectsValue:!0},un=1,cn=function(e){inherits_inherits(Select,e);var t=_createSuper$4(Select);function Select(e){var n;classCallCheck_classCallCheck(this,Select),(n=t.call(this,e)).state={ariaLiveSelection:"",ariaLiveContext:"",focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,menuOptions:{render:[],focusable:[]},selectValue:[]},n.blockOptionHover=!1,n.isComposing=!1,n.clearFocusValueOnUpdate=!1,n.commonProps=void 0,n.components=void 0,n.hasGroups=!1,n.initialTouchX=0,n.initialTouchY=0,n.inputIsHiddenAfterUpdate=void 0,n.instancePrefix="",n.openAfterFocus=!1,n.scrollToFocusedOptionOnUpdate=!1,n.userIsDragging=void 0,n.controlRef=null,n.getControlRef=function(e){n.controlRef=e},n.focusedOptionRef=null,n.getFocusedOptionRef=function(e){n.focusedOptionRef=e},n.menuListRef=null,n.getMenuListRef=function(e){n.menuListRef=e},n.inputRef=null,n.getInputRef=function(e){n.inputRef=e},n.cacheComponents=function(e){n.components=function defaultComponents(e){return _objectSpread$4(_objectSpread$4({},At),e.components)}({components:e})},n.focus=n.focusInput,n.blur=n.blurInput,n.onChange=function(e,t){var r=n.props,o=r.onChange,a=r.name;o(e,Select_e1cf49ae_browser_esm_objectSpread$2(Select_e1cf49ae_browser_esm_objectSpread$2({},t),{},{name:a}))},n.setValue=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"set-value",r=arguments.length>2?arguments[2]:void 0,o=n.props,a=o.closeMenuOnSelect,i=o.isMulti;n.onInputChange("",{action:"set-value"}),a&&(n.inputIsHiddenAfterUpdate=!i,n.onMenuClose()),n.clearFocusValueOnUpdate=!0,n.onChange(e,{action:t,option:r})},n.selectOption=function(e){var t=n.props,r=t.blurInputOnSelect,o=t.isMulti,a=n.state.selectValue;if(o)if(n.isOptionSelected(e,a)){var i=n.getOptionValue(e);n.setValue(a.filter((function(e){return n.getOptionValue(e)!==i})),"deselect-option",e),n.announceAriaLiveSelection({event:"deselect-option",context:{value:n.getOptionLabel(e)}})}else n.isOptionDisabled(e,a)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue([].concat(_toConsumableArray(a),[e]),"select-option",e),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));else n.isOptionDisabled(e,a)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue(e,"select-option"),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));r&&n.blurInput()},n.removeValue=function(e){var t=n.state.selectValue,r=n.getOptionValue(e),o=t.filter((function(e){return n.getOptionValue(e)!==r}));n.onChange(o.length?o:null,{action:"remove-value",removedValue:e}),n.announceAriaLiveSelection({event:"remove-value",context:{value:e?n.getOptionLabel(e):""}}),n.focusInput()},n.clearValue=function(){n.onChange(null,{action:"clear"})},n.popValue=function(){var e=n.state.selectValue,t=e[e.length-1],r=e.slice(0,e.length-1);n.announceAriaLiveSelection({event:"pop-value",context:{value:t?n.getOptionLabel(t):""}}),n.onChange(r.length?r:null,{action:"pop-value",removedValue:t})},n.getValue=function(){return n.state.selectValue},n.cx=function(){for(var e=arguments.length,t=new Array(e),r=0;r5||a>5}},n.onTouchEnd=function(e){n.userIsDragging||(n.controlRef&&!n.controlRef.contains(e.target)&&n.menuListRef&&!n.menuListRef.contains(e.target)&&n.blurInput(),n.initialTouchX=0,n.initialTouchY=0)},n.onControlTouchEnd=function(e){n.userIsDragging||n.onControlMouseDown(e)},n.onClearIndicatorTouchEnd=function(e){n.userIsDragging||n.onClearIndicatorMouseDown(e)},n.onDropdownIndicatorTouchEnd=function(e){n.userIsDragging||n.onDropdownIndicatorMouseDown(e)},n.handleInputChange=function(e){var t=e.currentTarget.value;n.inputIsHiddenAfterUpdate=!1,n.onInputChange(t,{action:"input-change"}),n.props.menuIsOpen||n.onMenuOpen()},n.onInputFocus=function(e){var t=n.props,r=t.isSearchable,o=t.isMulti;n.props.onFocus&&n.props.onFocus(e),n.inputIsHiddenAfterUpdate=!1,n.announceAriaLiveContext({event:"input",context:{isSearchable:r,isMulti:o}}),n.setState({isFocused:!0}),(n.openAfterFocus||n.props.openMenuOnFocus)&&n.openMenu("first"),n.openAfterFocus=!1},n.onInputBlur=function(e){n.menuListRef&&n.menuListRef.contains(document.activeElement)?n.inputRef.focus():(n.props.onBlur&&n.props.onBlur(e),n.onInputChange("",{action:"input-blur"}),n.onMenuClose(),n.setState({focusedValue:null,isFocused:!1}))},n.onOptionHover=function(e){n.blockOptionHover||n.state.focusedOption===e||n.setState({focusedOption:e})},n.shouldHideSelectedOptions=function(){var e=n.props,t=e.hideSelectedOptions,r=e.isMulti;return void 0===t?r:t},n.onKeyDown=function(e){var t=n.props,r=t.isMulti,o=t.backspaceRemovesValue,a=t.escapeClearsValue,i=t.inputValue,s=t.isClearable,l=t.isDisabled,u=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,d=t.openMenuOnFocus,p=n.state,h=p.focusedOption,v=p.focusedValue,y=p.selectValue;if(!l&&("function"!==typeof c||(c(e),!e.defaultPrevented))){switch(n.blockOptionHover=!0,e.key){case"ArrowLeft":if(!r||i)return;n.focusValue("previous");break;case"ArrowRight":if(!r||i)return;n.focusValue("next");break;case"Delete":case"Backspace":if(i)return;if(v)n.removeValue(v);else{if(!o)return;r?n.popValue():s&&n.clearValue()}break;case"Tab":if(n.isComposing)return;if(e.shiftKey||!u||!f||!h||d&&n.isOptionSelected(h,y))return;n.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(u){if(!h)return;if(n.isComposing)return;n.selectOption(h);break}return;case"Escape":u?(n.inputIsHiddenAfterUpdate=!1,n.onInputChange("",{action:"menu-close"}),n.onMenuClose()):s&&a&&n.clearValue();break;case" ":if(i)return;if(!u){n.openMenu("first");break}if(!h)return;n.selectOption(h);break;case"ArrowUp":u?n.focusOption("up"):n.openMenu("last");break;case"ArrowDown":u?n.focusOption("down"):n.openMenu("first");break;case"PageUp":if(!u)return;n.focusOption("pageup");break;case"PageDown":if(!u)return;n.focusOption("pagedown");break;case"Home":if(!u)return;n.focusOption("first");break;case"End":if(!u)return;n.focusOption("last");break;default:return}e.preventDefault()}},n.buildMenuOptions=function(e,t){var r=e.inputValue,o=void 0===r?"":r,a=e.options,i=function toOption(e,r){var a=n.isOptionDisabled(e,t),i=n.isOptionSelected(e,t),s=n.getOptionLabel(e),l=n.getOptionValue(e);if(!(n.shouldHideSelectedOptions()&&i||!n.filterOption({label:s,value:l,data:e},o))){var u=a?void 0:function(){return n.onOptionHover(e)},c=a?void 0:function(){return n.selectOption(e)},f="".concat(n.getElementId("option"),"-").concat(r);return{innerProps:{id:f,onClick:c,onMouseMove:u,onMouseOver:u,tabIndex:-1},data:e,isDisabled:a,isSelected:i,key:f,label:s,type:"option",value:l}}};return a.reduce((function(e,t,r){if(t.options){n.hasGroups||(n.hasGroups=!0);var o=t.options.map((function(t,n){var o=i(t,"".concat(r,"-").concat(n));return o&&e.focusable.push(t),o})).filter(Boolean);if(o.length){var a="".concat(n.getElementId("group"),"-").concat(r);e.render.push({type:"group",key:a,data:t,options:o})}}else{var s=i(t,"".concat(r));s&&(e.render.push(s),e.focusable.push(t))}return e}),{render:[],focusable:[]})};var r=e.value;n.cacheComponents=tt(n.cacheComponents,exportedEqual).bind(assertThisInitialized_assertThisInitialized(n)),n.cacheComponents(e.components),n.instancePrefix="react-select-"+(n.props.instanceId||++un);var o=it(r);n.buildMenuOptions=tt(n.buildMenuOptions,(function(e,t){var n=_slicedToArray(e,2),r=n[0],o=n[1],a=_slicedToArray(t,2),i=a[0];return o===a[1]&&r.inputValue===i.inputValue&&r.options===i.options})).bind(assertThisInitialized_assertThisInitialized(n));var a=e.menuIsOpen?n.buildMenuOptions(e,o):{render:[],focusable:[]};return n.state.menuOptions=a,n.state.selectValue=o,n}return createClass_createClass(Select,[{key:"componentDidMount",value:function componentDidMount(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(e){var t=this.props,n=t.options,r=t.value,o=t.menuIsOpen,a=t.inputValue;if(this.cacheComponents(e.components),e.value!==r||e.options!==n||e.menuIsOpen!==o||e.inputValue!==a){var i=it(e.value),s=e.menuIsOpen?this.buildMenuOptions(e,i):{render:[],focusable:[]},l=this.getNextFocusedValue(i),u=this.getNextFocusedOption(s.focusable);this.setState({menuOptions:s,selectValue:i,focusedOption:u,focusedValue:l})}null!=this.inputIsHiddenAfterUpdate&&(this.setState({inputIsHidden:this.inputIsHiddenAfterUpdate}),delete this.inputIsHiddenAfterUpdate)}},{key:"componentDidUpdate",value:function componentDidUpdate(e){var t=this.props,n=t.isDisabled,r=t.menuIsOpen,o=this.state.isFocused;(o&&!n&&e.isDisabled||o&&r&&!e.menuIsOpen)&&this.focusInput(),o&&n&&!e.isDisabled&&this.setState({isFocused:!1},this.onMenuClose),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(!function scrollIntoView(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=t.offsetHeight/3;r.bottom+o>n.bottom?scrollTo(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+o,e.scrollHeight)):r.top-o-1&&(u=c)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.inputIsHiddenAfterUpdate=!1,this.setState({menuOptions:a,focusedValue:null,focusedOption:a.focusable[u]},(function(){t.onMenuOpen(),t.announceAriaLiveContext({event:"menu",context:{tabSelectsValue:l}})}))}},{key:"focusValue",value:function focusValue(e){var t=this.props,n=t.isMulti,r=t.isSearchable,o=this.state,a=o.selectValue,i=o.focusedValue;if(n){this.setState({focusedOption:null});var s=a.indexOf(i);i||(s=-1,this.announceAriaLiveContext({event:"value"}));var l=a.length-1,u=-1;if(a.length){switch(e){case"previous":u=0===s?0:-1===s?l:s-1;break;case"next":s>-1&&s0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props,n=t.pageSize,r=t.tabSelectsValue,o=this.state,a=o.focusedOption,i=o.menuOptions,s=i.focusable;if(s.length){var l=0,u=s.indexOf(a);a||(u=-1,this.announceAriaLiveContext({event:"menu",context:{tabSelectsValue:r}})),"up"===e?l=u>0?u-1:s.length-1:"down"===e?l=(u+1)%s.length:"pageup"===e?(l=u-n)<0&&(l=0):"pagedown"===e?(l=u+n)>s.length-1&&(l=s.length-1):"last"===e&&(l=s.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:s[l],focusedValue:null}),this.announceAriaLiveContext({event:"menu",context:{isDisabled:rn(s[l]),tabSelectsValue:r}})}}},{key:"getTheme",value:function getTheme(){return this.props.theme?"function"===typeof this.props.theme?this.props.theme(sn):Select_e1cf49ae_browser_esm_objectSpread$2(Select_e1cf49ae_browser_esm_objectSpread$2({},sn),this.props.theme):sn}},{key:"getCommonProps",value:function getCommonProps(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getValue,o=this.setValue,a=this.selectOption,i=this.props,s=i.isMulti,l=i.isRtl,u=i.options;return{cx:t,clearValue:e,getStyles:n,getValue:r,hasValue:this.hasValue(),isMulti:s,isRtl:l,options:u,selectOption:a,setValue:o,selectProps:i,theme:this.getTheme()}}},{key:"getNextFocusedValue",value:function getNextFocusedValue(e){if(this.clearFocusValueOnUpdate)return this.clearFocusValueOnUpdate=!1,null;var t=this.state,n=t.focusedValue,r=t.selectValue.indexOf(n);if(r>-1){if(e.indexOf(n)>-1)return n;if(r-1?t:e[0]}},{key:"hasValue",value:function hasValue(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function hasOptions(){return!!this.state.menuOptions.render.length}},{key:"countOptions",value:function countOptions(){return this.state.menuOptions.focusable.length}},{key:"isClearable",value:function isClearable(){var e=this.props,isClearable=e.isClearable,t=e.isMulti;return void 0===isClearable?t:isClearable}},{key:"isOptionDisabled",value:function isOptionDisabled(e,t){return"function"===typeof this.props.isOptionDisabled&&this.props.isOptionDisabled(e,t)}},{key:"isOptionSelected",value:function isOptionSelected(e,t){var n=this;if(t.indexOf(e)>-1)return!0;if("function"===typeof this.props.isOptionSelected)return this.props.isOptionSelected(e,t);var r=this.getOptionValue(e);return t.some((function(e){return n.getOptionValue(e)===r}))}},{key:"filterOption",value:function filterOption(e,t){return!this.props.filterOption||this.props.filterOption(e,t)}},{key:"formatOptionLabel",value:function formatOptionLabel(e,t){if("function"===typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function formatGroupLabel(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function startListeningComposition(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function stopListeningComposition(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function startListeningToTouch(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function stopListeningToTouch(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"constructAriaLiveMessage",value:function constructAriaLiveMessage(){var e=this.state,t=e.ariaLiveContext,n=e.selectValue,r=e.focusedValue,o=e.focusedOption,a=this.props,i=a.options,s=a.menuIsOpen,l=a.inputValue,u=a.screenReaderStatus,c=r?function valueFocusAriaMessage(e){var t=e.focusedValue,n=e.getOptionLabel,r=e.selectValue;return"value ".concat(n(t)," focused, ").concat(r.indexOf(t)+1," of ").concat(r.length,".")}({focusedValue:r,getOptionLabel:this.getOptionLabel,selectValue:n}):"",f=o&&s?function optionFocusAriaMessage(e){var t=e.focusedOption,n=e.getOptionLabel,r=e.options;return"option ".concat(n(t)," focused").concat(t.isDisabled?" disabled":"",", ").concat(r.indexOf(t)+1," of ").concat(r.length,".")}({focusedOption:o,getOptionLabel:this.getOptionLabel,options:i}):"",d=function resultsAriaMessage(e){var t=e.inputValue,n=e.screenReaderMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}({inputValue:l,screenReaderMessage:u({count:this.countOptions()})});return"".concat(c," ").concat(f," ").concat(d," ").concat(t)}},{key:"renderInput",value:function renderInput(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,a=e.tabIndex,i=e.form,s=this.components.Input,l=this.state.inputIsHidden,u=r||this.getElementId("input"),c={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]};if(!n)return d.a.createElement(DummyInput,_extends({id:u,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:at,onFocus:this.onInputFocus,readOnly:!0,disabled:t,tabIndex:a,form:i,value:""},c));var f=this.commonProps,p=f.cx,h=f.theme,v=f.selectProps;return d.a.createElement(s,_extends({autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",cx:p,getStyles:this.getStyles,id:u,innerRef:this.getInputRef,isDisabled:t,isHidden:l,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,selectProps:v,spellCheck:"false",tabIndex:a,form:i,theme:h,type:"text",value:o},c))}},{key:"renderPlaceholderOrValue",value:function renderPlaceholderOrValue(){var e=this,t=this.components,n=t.MultiValue,r=t.MultiValueContainer,o=t.MultiValueLabel,a=t.MultiValueRemove,i=t.SingleValue,s=t.Placeholder,l=this.commonProps,u=this.props,c=u.controlShouldRenderValue,f=u.isDisabled,p=u.isMulti,h=u.inputValue,v=u.placeholder,y=this.state,m=y.selectValue,g=y.focusedValue,b=y.isFocused;if(!this.hasValue()||!c)return h?null:d.a.createElement(s,_extends({},l,{key:"placeholder",isDisabled:f,isFocused:b}),v);if(p)return m.map((function(t,i){var s=t===g;return d.a.createElement(n,_extends({},l,{components:{Container:r,Label:o,Remove:a},isFocused:s,isDisabled:f,key:"".concat(e.getOptionValue(t)).concat(i),index:i,removeProps:{onClick:function onClick(){return e.removeValue(t)},onTouchEnd:function onTouchEnd(){return e.removeValue(t)},onMouseDown:function onMouseDown(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(h)return null;var _=m[0];return d.a.createElement(i,_extends({},l,{data:_,isDisabled:f}),this.formatOptionLabel(_,"value"))}},{key:"renderClearIndicator",value:function renderClearIndicator(){var e=this.components.ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var i={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return d.a.createElement(e,_extends({},t,{innerProps:i,isFocused:a}))}},{key:"renderLoadingIndicator",value:function renderLoadingIndicator(){var e=this.components.LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!e||!o)return null;return d.a.createElement(e,_extends({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:a}))}},{key:"renderIndicatorSeparator",value:function renderIndicatorSeparator(){var e=this.components,t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,a=this.state.isFocused;return d.a.createElement(n,_extends({},r,{isDisabled:o,isFocused:a}))}},{key:"renderDropdownIndicator",value:function renderDropdownIndicator(){var e=this.components.DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return d.a.createElement(e,_extends({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function renderMenu(){var e=this,t=this.components,n=t.Group,r=t.GroupHeading,o=t.Menu,a=t.MenuList,i=t.MenuPortal,s=t.LoadingMessage,l=t.NoOptionsMessage,u=t.Option,c=this.commonProps,f=this.state,p=f.focusedOption,h=f.menuOptions,v=this.props,y=v.captureMenuScroll,m=v.inputValue,g=v.isLoading,b=v.loadingMessage,_=v.minMenuHeight,x=v.maxMenuHeight,S=v.menuIsOpen,w=v.menuPlacement,C=v.menuPosition,k=v.menuPortalTarget,R=v.menuShouldBlockScroll,E=v.menuShouldScrollIntoView,j=v.noOptionsMessage,I=v.onMenuScrollToTop,A=v.onMenuScrollToBottom;if(!S)return null;var D,N=function render(t){var n=p===t.data;return t.innerRef=n?e.getFocusedOptionRef:void 0,d.a.createElement(u,_extends({},c,t,{isFocused:n}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())D=h.render.map((function(t){if("group"===t.type){t.type;var o=_objectWithoutProperties(t,["type"]),a="".concat(t.key,"-heading");return d.a.createElement(n,_extends({},c,o,{Heading:r,headingProps:{id:a,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return N(e)})))}if("option"===t.type)return N(t)}));else if(g){var F=b({inputValue:m});if(null===F)return null;D=d.a.createElement(s,c,F)}else{var W=j({inputValue:m});if(null===W)return null;D=d.a.createElement(l,c,W)}var V={minMenuHeight:_,maxMenuHeight:x,menuPlacement:w,menuPosition:C,menuShouldScrollIntoView:E},z=d.a.createElement(ut,_extends({},c,V),(function(t){var n=t.ref,r=t.placerProps,i=r.placement,s=r.maxHeight;return d.a.createElement(o,_extends({},c,V,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:g,placement:i}),d.a.createElement(ScrollCaptorSwitch,{isEnabled:y,onTopArrive:I,onBottomArrive:A},d.a.createElement(Qt,{isEnabled:R},d.a.createElement(a,_extends({},c,{innerRef:e.getMenuListRef,isLoading:g,maxHeight:s}),D))))}));return k||"fixed"===C?d.a.createElement(i,_extends({},c,{appendTo:k,controlElement:this.controlRef,menuPlacement:w,menuPosition:C}),z):z}},{key:"renderFormField",value:function renderFormField(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,a=t.name,i=this.state.selectValue;if(a&&!r){if(o){if(n){var s=i.map((function(t){return e.getOptionValue(t)})).join(n);return d.a.createElement("input",{name:a,type:"hidden",value:s})}var l=i.length>0?i.map((function(t,n){return d.a.createElement("input",{key:"i-".concat(n),name:a,type:"hidden",value:e.getOptionValue(t)})})):d.a.createElement("input",{name:a,type:"hidden"});return d.a.createElement("div",null,l)}var u=i[0]?this.getOptionValue(i[0]):"";return d.a.createElement("input",{name:a,type:"hidden",value:u})}}},{key:"renderLiveRegion",value:function renderLiveRegion(){return this.state.isFocused?d.a.createElement(qt,{"aria-live":"polite"},d.a.createElement("span",{id:"aria-selection-event"},"\xa0",this.state.ariaLiveSelection),d.a.createElement("span",{id:"aria-context"},"\xa0",this.constructAriaLiveMessage())):null}},{key:"render",value:function render(){var e=this.components,t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,a=this.props,i=a.className,s=a.id,l=a.isDisabled,u=a.menuIsOpen,c=this.state.isFocused,f=this.commonProps=this.getCommonProps();return d.a.createElement(r,_extends({},f,{className:i,innerProps:{id:s,onKeyDown:this.onKeyDown},isDisabled:l,isFocused:c}),this.renderLiveRegion(),d.a.createElement(t,_extends({},f,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:l,isFocused:c,menuIsOpen:u}),d.a.createElement(o,_extends({},f,{isDisabled:l}),this.renderPlaceholderOrValue(),this.renderInput()),d.a.createElement(n,_extends({},f,{isDisabled:l}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}]),Select}(f.Component);cn.defaultProps=ln;n(243);function stateManager_2f2b6f5b_browser_esm_createSuper(e){var t=function stateManager_2f2b6f5b_browser_esm_isNativeReflectConstruct(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function _createSuperInternal(){var n,r=getPrototypeOf_getPrototypeOf(e);if(t){var o=getPrototypeOf_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return possibleConstructorReturn_possibleConstructorReturn(this,n)}}var fn={defaultInputValue:"",defaultMenuIsOpen:!1,defaultValue:null};function react_select_browser_esm_createSuper(e){var t=function react_select_browser_esm_isNativeReflectConstruct(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function _createSuperInternal(){var n,r=getPrototypeOf_getPrototypeOf(e);if(t){var o=getPrototypeOf_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return possibleConstructorReturn_possibleConstructorReturn(this,n)}}f.Component;var dn=function manageState(e){var t,n;return n=t=function(t){inherits_inherits(StateManager,t);var n=stateManager_2f2b6f5b_browser_esm_createSuper(StateManager);function StateManager(){var e;classCallCheck_classCallCheck(this,StateManager);for(var t=arguments.length,r=new Array(t),o=0;o1?n-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:"",n=e.props.manager.workerClient.attributes.contact_uri;e.props.manager.insightsClient.instantQuery("tr-worker").then((function(r){r.on("searchResult",(function(t){console.log(t),e.setState({workerList:Object.keys(t).map((function(e){return t[e]}))})})),r.search('data.attributes.contact_uri != "'.concat(n,'"').concat(""!==t?" AND ".concat(t):""))}))},e.handleChange=function(t){console.log("hey"),e.setState({selectedWorker:t})},e.handleInputChange=function(t){e.setState({inputText:t}),e.handleWorkersListUpdate(t),""!==t&&e.setState({selectedWorker:null})},e.handleWorkersListUpdate=Object(hn.debounce)((function(t){t&&e.setWorkers('data.attributes.full_name CONTAINS "'.concat(t,'"'))}),250,{maxWait:1e3}),e.handleOnFocus=function(){""===e.state.inputText&&0===e.state.workerList.length&&e.setWorkers()},e.makeCall=function(){if(null!=e.state.selectedWorker){var t=e.props.manager;gn({manager:t,selectedWorker:e.state.selectedWorker.value,workerList:e.state.workerList})}},e}return _createClass(InternalDialpad,[{key:"componentDidMount",value:function(){var e=_asyncToGenerator(_regeneratorRuntime().mark((function _callee(){return _regeneratorRuntime().wrap((function _callee$(e){for(;;)switch(e.prev=e.next){case 0:this.setWorkers();case 1:case"end":return e.stop()}}),_callee,this)})));return function componentDidMount(){return e.apply(this,arguments)}}()},{key:"render",value:function render(){var e=this.props.classes,t=this.state.workerList.map((function(e){var t=e.activity_name,n=e.attributes,r=n.contact_uri,o=n.full_name;return"Offline"!==t?{label:o,value:r}:null})).filter((function(e){return e}));return d.a.createElement("div",{className:e.boxDialpad},d.a.createElement("div",{className:e.titleAgentDialpad},"Call Agent"),d.a.createElement("div",{className:e.subtitleDialpad},"Select agent"),d.a.createElement(Qe.a,{className:e.formControl},d.a.createElement(dn,{className:"basic-single",classNamePrefix:"select",isSearchable:!0,name:"workers",maxMenuHeight:150,onChange:this.handleChange,onInputChange:this.handleInputChange,onMenuOpen:this.handleOnFocus,options:t,inputValue:this.state.inputText,value:this.state.selectedWorker||null}),d.a.createElement("div",{className:e.buttonAgentDialpad},d.a.createElement(Le.a,{variant:"contained",color:"primary",disabled:!this.state.selectedWorker,onClick:this.makeCall,className:e.dialPadBtn},d.a.createElement(o.Icon,{icon:"Call"})))))}}]),InternalDialpad}(d.a.Component),yn=Object(pn.withStyles)((function styles(e){return Je(e)}))(vn),mn=function loadInternalCallInterface(e,t){e.OutboundDialerPanel.Content.add(d.a.createElement(yn,{key:"select-dialpad",flex:e,manager:t}))},gn=function makeInternalCall(e){var t=e.manager,n=e.selectedWorker,r=e.workerList,o=t.serviceConfiguration.outbound_call_flows.default,a=o.workflow_sid,i=o.queue_sid,s=t.workerClient,l=s.attributes,u=l.contact_uri,c=l.full_name,f=s.name,d=r.find((function(e){return e.attributes.contact_uri===n})),p=d.attributes.full_name,h=d.friendly_name;t.workerClient.createTask(n,u,a,i,{attributes:{to:n,direction:"outbound",name:p||h,fromName:c||f,targetWorker:u,autoAnswer:"true",client_call:!0},taskChannelSid:""})},bn=function(e){_inherits(DialpadPlugin,e);var t=_createSuper(DialpadPlugin);function DialpadPlugin(){return _classCallCheck(this,DialpadPlugin),t.call(this,"DialpadPlugin")}return _createClass(DialpadPlugin,[{key:"init",value:function init(e,t){Xe.bind(this)(e,t),mn.bind(this)(e,t),customActions(t),notifications(e)}}]),DialpadPlugin}(r.FlexPlugin);r.loadPlugin(bn)}]); -//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/experimental-flex-dialpad/assets/helpers/flex-plugins.private.js b/experimental-flex-dialpad/assets/helpers/flex-plugins.private.js deleted file mode 100644 index b31aea68..00000000 --- a/experimental-flex-dialpad/assets/helpers/flex-plugins.private.js +++ /dev/null @@ -1,411 +0,0 @@ -const axios = require('axios'); -const helpers = require('@twilio-labs/runtime-helpers'); -const querystring = require('querystring'); -const { TwilioServerlessApiClient } = require('@twilio-labs/serverless-api'); -const { - createService, - findServiceSid, -} = require('@twilio-labs/serverless-api/dist/api/services'); -const { - listEnvironments, -} = require('@twilio-labs/serverless-api/dist/api/environments'); -const { - getBuild, - triggerBuild, - getBuildStatus, - activateBuild, -} = require('@twilio-labs/serverless-api/dist/api/builds'); -const { - getOrCreateAssetResources, - uploadAsset, -} = require('@twilio-labs/serverless-api/dist/api/assets'); -const { - removeEnvironmentVariables, -} = require('@twilio-labs/serverless-api/dist/api/variables'); - -const Status = { - NOT_STARTED: 'not-started', - BUILDING: 'building', - READY_TO_DEPLOY: 'ready-to-deploy', - COMPLETED: 'completed', - FAILED: 'failed', -}; - -exports.Status = Status; - -async function loadPluginData(context, pluginName, replacementMap) { - return ['.js', '.js.LICENSE.txt', '.js.map'].map((suffix) => { - const filename = pluginName + suffix; - let content = Runtime.getAssets()['/' + filename].open(); - Object.entries(replacementMap).forEach(([key, value]) => { - content = content.replace(new RegExp(key, 'g'), value); - }); - - return { - filename, - content, - }; - }); -} - -function getFlexPluginApiClient(context, jsonType) { - return axios.default.create({ - baseURL: 'https://flex-api.twilio.com/v1', - headers: { - 'Content-Type': jsonType - ? 'application/json' - : 'application/x-www-form-urlencoded', - }, - auth: { - username: context.ACCOUNT_SID, - password: context.AUTH_TOKEN, - }, - }); -} - -function readFlexConfigurationServiceSids(flexApiClient) { - return flexApiClient - .get('Configuration') - .then((resp) => resp.serverless_service_sids || []); -} - -async function registerFlexConfigurationServiceSid( - context, - serviceSid, - flexApiClient -) { - const serviceSids = await readFlexConfigurationServiceSids(flexApiClient); - if (serviceSids.includes(serviceSid)) { - return; - } - - serviceSids.push(serviceSid); - - const payload = { - account_sid: context.ACCOUNT_SID, - serverless_service_sids: serviceSids, - }; - - return flexApiClient.post('Configuration', payload); -} - -async function getFlexPluginServiceSid(serverlessApiClient, flexApiClient) { - let [serviceSid] = await readFlexConfigurationServiceSids(flexApiClient); - if (serviceSid) { - return serviceSid; - } - - serviceSid = await findServiceSid('default', serverlessApiClient); - if (serviceSid) { - return serviceSid; - } - - // TODO: this doesn't allow to set a friendly name - serviceSid = await createService('default', serverlessApiClient); - return serviceSid; -} - -async function getEnvironment(serverlessApiClient, serviceSid, pluginName) { - const environments = await listEnvironments(serviceSid, serverlessApiClient); - const pluginEnvironment = environments.find((environment) => { - return environment.unique_name === pluginName; - }); - if (pluginEnvironment) { - return { - sid: pluginEnvironment.sid, - buildSid: pluginEnvironment.build_sid, - domain_name: pluginEnvironment.domain_name, - }; - } - - console.log('Create environment'); - try { - const { body } = await serverlessApiClient.request( - 'post', - `Services/${serviceSid}/Environments`, - { - form: { - UniqueName: pluginName, - // TODO: avoid naming collisions - DomainSuffix: Math.random().toString(32).substring(2, 7), - }, - } - ); - - console.log('result'); - return { - sid: body.sid, - buildSid: body.build_sid, - domain_name: body.domain_name, - }; - } catch (err) { - console.error(err); - return null; - } -} - -async function uploadFiles(assets, serviceSid, serverlessClient) { - const assetsToUpload = await getOrCreateAssetResources( - assets, - serviceSid, - serverlessClient - ); - return Promise.all( - assetsToUpload.map((asset) => { - return uploadAsset( - asset, - serviceSid, - serverlessClient, - serverlessClient.config - ); - }) - ); -} - -function getAssetBaseUrl(pluginName, version) { - return '/plugins/' + pluginName + '/' + version; -} - -exports.uploadFlexPlugin = async ( - context, - pluginName, - version, - replacementMap -) => { - const serverlessClient = new TwilioServerlessApiClient({ - username: context.ACCOUNT_SID, - password: context.AUTH_TOKEN, - }); - const flexApiClient = getFlexPluginApiClient(context); - const [bundleData, licenseData, sourceMapData] = await loadPluginData( - context, - pluginName, - replacementMap - ); - const pluginBaseUrl = getAssetBaseUrl(pluginName, version); - const bundleUri = `${pluginBaseUrl}/bundle.js`; - const sourceMapUri = `${pluginBaseUrl}/bundle.js.map`; - - const serviceSid = await getFlexPluginServiceSid( - serverlessClient, - flexApiClient - ); - if (!serviceSid) { - return [false, null]; - } - - const { - buildSid, - sid: environmentSid, - domain_name, - } = await getEnvironment(serverlessClient, serviceSid, pluginName); - - const pluginurl = `https://${domain_name}${bundleUri}`; - - let buildAssets = []; - let buildFunctions = []; - let buildDependencies = []; - if (buildSid) { - const build = await getBuild(buildSid, serviceSid, serverlessClient); - buildAssets = build.asset_versions; - buildDependencies = build.dependencies; - buildFunctions = build.function_versions; - } - - const assetsToUpload = [ - { - access: 'protected', - content: bundleData.content, - name: bundleData.filename, - path: bundleUri, - filePath: bundleData.filename, - }, - { - access: 'protected', - content: sourceMapData.content, - name: sourceMapData.filename, - path: sourceMapUri, - filePath: sourceMapData.filename, - }, - ]; - const assetSids = await uploadFiles( - assetsToUpload, - serviceSid, - serverlessClient - ); - - buildAssets = [ - ...buildAssets - .filter((x) => x.path !== bundleUri && x.path !== sourceMapUri) - .map((x) => x.sid), - ...assetSids, - ]; - const payload = { - dependencies: buildDependencies, - functionVersions: buildFunctions.map((x) => x.sid), - assetVersions: buildAssets, - }; - console.log(payload); - - const { sid: newBuildSid } = await triggerBuild( - payload, - serviceSid, - serverlessClient - ); - - const currentEnvironment = - await helpers.environment.getCurrentEnvironment(context); - await helpers.environment.setEnvironmentVariable( - context, - currentEnvironment, - 'IN_PROGRESS_BUILD_SID', - newBuildSid - ); - - return [true, newBuildSid]; -}; - -exports.getStatus = async function (context, pluginName, version) { - const serverlessClient = new TwilioServerlessApiClient({ - username: context.ACCOUNT_SID, - password: context.AUTH_TOKEN, - }); - const flexApiClient = getFlexPluginApiClient(context); - const serviceSid = await getFlexPluginServiceSid( - serverlessClient, - flexApiClient - ); - const { - buildSid, - sid: environmentSid, - domain_name, - } = await getEnvironment(serverlessClient, serviceSid, pluginName); - - if (buildSid === context.IN_PROGRESS_BUILD_SID) { - return Status.COMPLETED; - } - - const status = await getBuildStatus( - context.IN_PROGRESS_BUILD_SID, - serviceSid, - serverlessClient - ); - if (status === 'completed') { - return Status.READY_TO_DEPLOY; - } - - return Status.BUILDING; -}; - -async function upsertFlexPlugin(pluginName, description, flexApiClient) { - const payload = { - UniqueName: pluginName, - FriendlyName: pluginName, - Description: description, - }; - - try { - await flexApiClient.get('PluginService/Plugins/' + pluginName); - return flexApiClient.post('PluginService/Plugins/' + pluginName, { - FriendlyName: payload.FriendlyName, - Description: payload.Description, - }); - } catch (err) { - if (err.response.status === 404) { - console.log(payload); - return flexApiClient.post( - 'PluginService/Plugins', - querystring.stringify(payload) - ); - } - throw err; - } -} - -async function getLatestFlexPluginVersion(pluginName, flexApiClient) { - const resp = await flexApiClient.get( - `PluginService/Plugins/${pluginName}/Versions` - ); - if (resp.data && resp.data.plugin_versions) { - return resp.data.plugin_versions[0]; - } - - return undefined; -} - -async function registerFlexPluginVersion( - pluginName, - version, - pluginUrl, - flexApiClient -) { - if (!(await getLatestFlexPluginVersion(pluginName, flexApiClient))) { - const payload = { - Version: version, - PluginUrl: pluginUrl, - Private: true, - Changelog: 'Automatic deployment from Quick Deploy', - }; - return flexApiClient.post( - 'PluginService/Plugins/' + pluginName + '/Versions', - querystring.stringify(payload) - ); - } -} - -async function createFlexPluginConfiguration( - pluginName, - version, - flexApiClient -) { - // TODO -} - -async function releaseConfiguration() { - // TODO -} - -exports.deployPlugin = async function ( - context, - pluginName, - version, - description -) { - const serverlessClient = new TwilioServerlessApiClient({ - username: context.ACCOUNT_SID, - password: context.AUTH_TOKEN, - }); - const flexApiClient = getFlexPluginApiClient(context, false); - const flexApiClientJson = getFlexPluginApiClient(context, true); - const serviceSid = await getFlexPluginServiceSid( - serverlessClient, - flexApiClient - ); - const { - buildSid, - sid: environmentSid, - domain_name, - } = await getEnvironment(serverlessClient, serviceSid, pluginName); - const pluginBaseUrl = getAssetBaseUrl(pluginName, version); - const bundleUri = `${pluginBaseUrl}/bundle.js`; - const pluginUrl = `https://${domain_name}${bundleUri}`; - - await activateBuild( - context.IN_PROGRESS_BUILD_SID, - environmentSid, - serviceSid, - serverlessClient - ); - await registerFlexConfigurationServiceSid( - context, - serviceSid, - flexApiClientJson - ); - await upsertFlexPlugin(pluginName, description, flexApiClient); - await registerFlexPluginVersion( - pluginName, - version, - pluginUrl, - flexApiClient - ); -}; diff --git a/experimental-flex-dialpad/assets/helpers/setup.private.js b/experimental-flex-dialpad/assets/helpers/setup.private.js deleted file mode 100644 index 7f451155..00000000 --- a/experimental-flex-dialpad/assets/helpers/setup.private.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * This code is responsible of configuring other services required for the front-end or back-end of the template. - */ - -const helpers = require('@twilio-labs/runtime-helpers'); -// const twilio = require('twilio'); -// const twilioClient = require('twilio')(); - -function isNotEmptyString(variable) { - return ( - typeof variable === 'string' && variable.length > 0 && variable !== '""' - ); -} - -async function getWorkspaceSid(twilioClient) { - const workspaces = await twilioClient.taskrouter.workspaces.list(); - return workspaces.find((instance) => { - return instance.friendlyName === 'Flex Task Assignment'; - }); -} - -exports.setupProject = async (context) => { - const twilioClient = context.getTwilioClient(); - const currentEnvironment = - await helpers.environment.getCurrentEnvironment(context); - if (!currentEnvironment) { - console.error('Could not find enviroment'); - return { setupDone: false }; - } - - const workspace = await getWorkspaceSid(twilioClient); - if (!workspace) { - console.error('Could not find Flex Task Router workspace'); - return { setupDone: false }; - } - const TWILIO_WORKSPACE_SID = workspace.sid; - await helpers.environment.setEnvironmentVariable( - context, - currentEnvironment, - 'TWILIO_WORKSPACE_SID', - TWILIO_WORKSPACE_SID - ); - - const queue = ( - await twilioClient.taskrouter - .workspaces(TWILIO_WORKSPACE_SID) - .taskQueues.list() - ).find((entry) => { - return entry.friendlyName === 'Everyone'; - }); - - if (!queue) { - console.error('Could not find relevant "Everyone" queue in workspace'); - return { setupDone: false }; - } - - const { sid: VOICE_CHANNEL_SID } = ( - await twilioClient.taskrouter - .workspaces(TWILIO_WORKSPACE_SID) - .taskChannels.list() - ).find((entry) => { - return entry.uniqueName === 'voice'; - }); - - if (context.TWILIO_WORKFLOW_SID) { - return { - setupDone: true, - TWILIO_WORKSPACE_SID, - TWILIO_WORKFLOW_SID: context.TWILIO_WORKFLOW_SID, - VOICE_CHANNEL_SID, - }; - } - - const [workflow, error] = await twilioClient.taskrouter - .workspaces(TWILIO_WORKSPACE_SID) - .workflows.create({ - friendlyName: 'Outbound Dialer', - configuration: JSON.stringify({ - task_routing: { - filters: [ - { - filter_friendly_name: 'Outbound', - expression: `targetWorker != null`, - targets: [ - { - queue: queue.sid, - expression: `task.targetWorker==worker.contact_uri`, - priority: 1000, - }, - ], - }, - ], - }, - }), - }) - .then( - (result) => [result], - (error) => [null, error] - ); - - if (!workflow) { - console.error('Failed to create a new Workflow'); - console.error(error); - return { setupDone: false }; - } - - const TWILIO_WORKFLOW_SID = workflow.sid; - await helpers.environment.setEnvironmentVariable( - context, - currentEnvironment, - 'TWILIO_WORKFLOW_SID', - TWILIO_WORKFLOW_SID - ); - - return { - setupDone: true, - TWILIO_WORKSPACE_SID, - TWILIO_WORKFLOW_SID, - VOICE_CHANNEL_SID, - }; -}; - -exports.isConfigured = (context) => { - return ( - isNotEmptyString(context.TWILIO_PHONE_NUMBER) && - isNotEmptyString(context.TWILIO_WORKFLOW_SID) && - isNotEmptyString(context.TWILIO_WORKSPACE_SID) - ); -}; diff --git a/experimental-flex-dialpad/assets/index.html b/experimental-flex-dialpad/assets/index.html deleted file mode 100644 index fd2750e8..00000000 --- a/experimental-flex-dialpad/assets/index.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - Get started with your Twilio Functions! - - - - - - - - -
-
- - -
-
-
-
-

- -
-

Welcome!

-

Your Flex Plugin is almost set up!

-
-

-
-
-

Finishing up setup

-

One moment as we are setting up your Flex Plugin

-
-
-

Finishing up setup

-

Deploying the UI for your plugin...

-
-
-

Finishing up setup

-

Configuring Flex plugin...

-
-
-

Almost Done!

-

Your new plugin has been deployed and the last step that remains is to head over to Flex to enable your plugin!

-
-
-

Error occurred

-

Something went wrong. Please try again later.

-
-
-
- -
-
-

How to use it

-
    -
  • - TODO -
  • -
-
-
-
-
- We can't wait to see what you build. -
- - - diff --git a/experimental-flex-dialpad/functions/dialpad-utils.js b/experimental-flex-dialpad/functions/dialpad-utils.js deleted file mode 100644 index 6565a526..00000000 --- a/experimental-flex-dialpad/functions/dialpad-utils.js +++ /dev/null @@ -1,15 +0,0 @@ -exports.response = (format, body) => { - // Create a custom Twilio Response - // Set the CORS headers to allow Flex to make an HTTP request to the Twilio Function - const response = new Twilio.Response(); - response.appendHeader('Access-Control-Allow-Origin', '*'); - response.appendHeader('Access-Control-Allow-Methods', 'OPTIONS POST GET'); - response.appendHeader('Access-Control-Allow-Headers', 'Content-Type'); - - if (format === 'json') { - response.appendHeader('Content-Type', 'application/json'); - response.setBody(body); - } - - return response; -}; diff --git a/experimental-flex-dialpad/functions/external-transfer/add-conference-participant.js b/experimental-flex-dialpad/functions/external-transfer/add-conference-participant.js deleted file mode 100644 index 081151a3..00000000 --- a/experimental-flex-dialpad/functions/external-transfer/add-conference-participant.js +++ /dev/null @@ -1,29 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const { taskSid, to, from } = event; - - console.log(`Adding ${to} to named conference ${taskSid}`); - - const client = context.getTwilioClient(); - - const participantsResponse = await client - .conferences(taskSid) - .participants.create({ - to, - from, - earlyMedia: true, - endConferenceOnExit: false, - }); - - console.log('Participant response properties:'); - - Object.keys(participantsResponse).forEach((key) => { - console.log(`${key}: ${participantsResponse[key]}`); - }); - - callback(null, assets.response('json', participantsResponse)); -}); diff --git a/experimental-flex-dialpad/functions/external-transfer/get-call-properties.js b/experimental-flex-dialpad/functions/external-transfer/get-call-properties.js deleted file mode 100644 index ed2cb089..00000000 --- a/experimental-flex-dialpad/functions/external-transfer/get-call-properties.js +++ /dev/null @@ -1,21 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const { callSid } = event; - - console.log(`Getting properties for call SID ${callSid}`); - const client = context.getTwilioClient(); - - const callProperties = await client.calls(callSid).fetch(); - - console.log('Call properties:'); - - Object.keys(callProperties).forEach((key) => { - console.log(`${key}: ${callProperties[key]}`); - }); - - callback(null, assets.response('json', callProperties)); -}); diff --git a/experimental-flex-dialpad/functions/external-transfer/hold-conference-participant.js b/experimental-flex-dialpad/functions/external-transfer/hold-conference-participant.js deleted file mode 100644 index 3a6ca88c..00000000 --- a/experimental-flex-dialpad/functions/external-transfer/hold-conference-participant.js +++ /dev/null @@ -1,31 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const { conference, participant, hold } = event; - - console.log( - `${hold ? 'Holding' : 'Unholding'} participant ${participant} ` + - `in conference ${conference}` - ); - - const client = context.getTwilioClient(); - - const participantsResponse = await client - .conferences(conference) - .participants(participant) - .update({ - hold, - }); - - console.log(`Participant ${participant} updated in conference \ - ${conference}. Participant response properties:`); - - Object.keys(participantsResponse).forEach((key) => { - console.log(` ${key}:`, participantsResponse[key]); - }); - - callback(null, assets.response('json', participantsResponse)); -}); diff --git a/experimental-flex-dialpad/functions/external-transfer/remove-conference-participant.js b/experimental-flex-dialpad/functions/external-transfer/remove-conference-participant.js deleted file mode 100644 index b1d4f0ef..00000000 --- a/experimental-flex-dialpad/functions/external-transfer/remove-conference-participant.js +++ /dev/null @@ -1,27 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const { conference, participant } = event; - - console.log( - `Removing participant ${participant} from conference ${conference}` - ); - - const client = context.getTwilioClient(); - - const participantResponse = await client - .conferences(conference) - .participants(participant) - .remove(); - - console.log('Participant response properties:'); - - Object.keys(participantResponse).forEach((key) => { - console.log(`${key}: ${participantResponse[key]}`); - }); - - return callback(null, assets.response('json', participantResponse)); -}); diff --git a/experimental-flex-dialpad/functions/external-transfer/update-conference-participant.js b/experimental-flex-dialpad/functions/external-transfer/update-conference-participant.js deleted file mode 100644 index 7d0bc519..00000000 --- a/experimental-flex-dialpad/functions/external-transfer/update-conference-participant.js +++ /dev/null @@ -1,33 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const { conference, participant, endConferenceOnExit } = event; - - console.log( - `Updating participant ${participant} in conference ${conference}` - ); - - const client = context.getTwilioClient(); - - const participantResponse = await client - .conferences(conference) - .participants(participant) - .update({ - endConferenceOnExit, - }) - .catch((e) => { - console.error(e); - return {}; - }); - - console.log('Participant response properties:'); - - Object.keys(participantResponse).forEach((key) => { - console.log(`${key}: ${participantResponse[key]}`); - }); - - return callback(null, assets.response('json', participantResponse)); -}); diff --git a/experimental-flex-dialpad/functions/internal-call/agent-join-conference.protected.js b/experimental-flex-dialpad/functions/internal-call/agent-join-conference.protected.js deleted file mode 100644 index d012ab93..00000000 --- a/experimental-flex-dialpad/functions/internal-call/agent-join-conference.protected.js +++ /dev/null @@ -1,12 +0,0 @@ -exports.handler = (context, event, callback) => { - let twiml = new Twilio.twiml.VoiceResponse(); - - twiml.dial().conference( - { - endConferenceOnExit: true, - }, - event.conferenceName - ); - - callback(null, twiml); -}; diff --git a/experimental-flex-dialpad/functions/internal-call/agent-outbound-join.protected.js b/experimental-flex-dialpad/functions/internal-call/agent-outbound-join.protected.js deleted file mode 100644 index 912eef0c..00000000 --- a/experimental-flex-dialpad/functions/internal-call/agent-outbound-join.protected.js +++ /dev/null @@ -1,14 +0,0 @@ -exports.handler = (context, event, callback) => { - let twiml = new Twilio.twiml.VoiceResponse(); - - twiml.dial().conference( - { - statusCallback: 'call-outbound-join', - statusCallbackEvent: 'join end', - endConferenceOnExit: true, - }, - event.taskSid - ); - - callback(null, twiml); -}; diff --git a/experimental-flex-dialpad/functions/internal-call/call-outbound-join.protected.js b/experimental-flex-dialpad/functions/internal-call/call-outbound-join.protected.js deleted file mode 100644 index 59f212f8..00000000 --- a/experimental-flex-dialpad/functions/internal-call/call-outbound-join.protected.js +++ /dev/null @@ -1,133 +0,0 @@ -const fetchTask = (client, taskSid) => - client.taskrouter - .workspaces(process.env.TWILIO_WORKSPACE_SID) - .tasks(taskSid) - .fetch(); - -const updateTaskAttributes = (client, taskSid, attributes) => - client.taskrouter - .workspaces(process.env.TWILIO_WORKSPACE_SID) - .tasks(taskSid) - .update({ - attributes: JSON.stringify(attributes), - }); - -const addParticipantToConference = ( - client, - conferenceSid, - taskSid, - to, - fromName -) => { - if (to.substring(0, 6) === 'client') { - return client.taskrouter - .workspaces(process.env.TWILIO_WORKSPACE_SID) - .tasks.create({ - attributes: JSON.stringify({ - to: to, - name: fromName, - from: process.env.TWILIO_PHONE_NUMBER, - targetWorker: to, - autoAnswer: 'false', - conferenceSid: taskSid, - conference: { - sid: conferenceSid, - friendlyName: taskSid, - }, - internal: 'true', - client_call: true, - }), - workflowSid: process.env.TWILIO_WORKFLOW_SID, - taskChannel: 'voice', - }); - } -}; - -exports.handler = async (context, event, callback) => { - const client = context.getTwilioClient(); - const { FriendlyName: taskSid, ConferenceSid } = event; - - let attributes = {}; - - if (event.StatusCallbackEvent === 'participant-join') { - console.log( - `callSid ${event.CallSid} joined, task is ${taskSid}, conference is ${event.ConferenceSid}` - ); - - const call = await client.calls(event.CallSid).fetch(); - - if (call.to.includes('client')) { - console.log(`agent ${call.to} joined the conference`); - - const task = await fetchTask(client, taskSid); - - attributes = { - ...JSON.parse(task.attributes), - conference: { - sid: event.ConferenceSid, - participants: { - worker: event.CallSid, - }, - }, - }; - - if ( - attributes.worker_call_sid === attributes.conference.participants.worker - ) { - const { to, fromName } = attributes; - - const result = await addParticipantToConference( - client, - ConferenceSid, - taskSid, - to, - fromName - ); - - attributes.conference.participants.taskSid = result.sid; - - await updateTaskAttributes(client, taskSid, attributes); - } - } - } - - if (event.StatusCallbackEvent === 'conference-end') { - try { - const task = await fetchTask(client, taskSid); - - const attributes = JSON.parse(task.attributes); - - const targetTaskSid = attributes.conference.participants.taskSid; - - if (['assigned', 'pending', 'reserved'].includes(task.assignmentStatus)) { - await client.taskrouter - .workspaces(context.TWILIO_WORKSPACE_SID) - .tasks(taskSid) - .update({ - assignmentStatus: - task.assignmentStatus === 'assigned' ? 'wrapping' : 'canceled', - reason: 'conference is complete', - }); - } - - if (targetTaskSid) { - const { assignmentStatus } = await fetchTask(client, targetTaskSid); - - if (['assigned', 'pending', 'reserved'].includes(assignmentStatus)) { - await client.taskrouter - .workspaces(context.TWILIO_WORKSPACE_SID) - .tasks(targetTaskSid) - .update({ - assignmentStatus: - assignmentStatus === 'assigned' ? 'wrapping' : 'canceled', - reason: 'conference is complete', - }); - } - } - } catch (err) { - console.log(err); - } - } - - callback(null); -}; diff --git a/experimental-flex-dialpad/functions/internal-call/cleanup-rejected-task.js b/experimental-flex-dialpad/functions/internal-call/cleanup-rejected-task.js deleted file mode 100644 index 50689eaa..00000000 --- a/experimental-flex-dialpad/functions/internal-call/cleanup-rejected-task.js +++ /dev/null @@ -1,24 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - const taskSid = event.taskSid; - - let client = context.getTwilioClient(); - - const conferences = await client.conferences.list({ - friendlyName: taskSid, - status: 'in-progress', - limit: 20, - }); - - await Promise.all( - conferences.map((conference) => { - return client.conferences(conference.sid).update({ status: 'completed' }); - }) - ); - - callback(null, assets.response('json', {})); -}); diff --git a/experimental-flex-dialpad/functions/internal-call/hold-call.js b/experimental-flex-dialpad/functions/internal-call/hold-call.js deleted file mode 100644 index 91cd8657..00000000 --- a/experimental-flex-dialpad/functions/internal-call/hold-call.js +++ /dev/null @@ -1,28 +0,0 @@ -const TokenValidator = require('twilio-flex-token-validator').functionValidator; - -let path = Runtime.getFunctions()['dialpad-utils'].path; -let assets = require(path); - -exports.handler = TokenValidator(async (context, event, callback) => { - console.log('passei por aqui'); - - const client = context.getTwilioClient(); - - console.log(event); - - const { conference, participant, hold } = event; - - console.log(conference); - console.log(participant); - console.log(hold); - - if (conference && participant && hold) { - console.log('entrei aqui'); - - await client.conferences(conference).participants(participant).update({ - hold, - }); - } - - callback(null, assets.response('json', {})); -}); diff --git a/experimental-flex-dialpad/functions/setup.js b/experimental-flex-dialpad/functions/setup.js deleted file mode 100644 index b15055e3..00000000 --- a/experimental-flex-dialpad/functions/setup.js +++ /dev/null @@ -1,55 +0,0 @@ -exports.handler = async function (context, event, callback) { - const { setupProject, isConfigured } = require( - Runtime.getAssets()['/helpers/setup.js'].path - ); - const { uploadFlexPlugin, Status, getStatus, deployPlugin } = require( - Runtime.getAssets()['/helpers/flex-plugins.js'].path - ); - try { - const pluginName = 'flex-dialpad-addon'; - const version = '1.0.0'; - const description = 'Quick deployed Flex Dialpad Addon'; - - if (isConfigured(context)) { - return callback(null, { setup: true }); - } - - if (!context.IN_PROGRESS_BUILD_SID) { - const { setupDone, VOICE_CHANNEL_SID } = await setupProject(context); - const [uploadDone, newBuildSid] = await uploadFlexPlugin( - context, - pluginName, - version, - { - '': 'https://' + context.DOMAIN_NAME, - '': VOICE_CHANNEL_SID, - } - ); - return callback(null, { - status: Status.BUILDING, - setup: setupDone && uploadDone, - newBuildSid, - }); - } - - const status = await getStatus(context, pluginName, version); - if (status === Status.COMPLETED) { - // TODO: remove in-porgress variables - return callback(null, { status }); - } else if (status === Status.READY_TO_DEPLOY) { - await deployPlugin(context, pluginName, version, description); - return callback(null, { status: Status.COMPLETED }); - } else { - return callback(null, { status }); - } - } catch (err) { - if (err.name === 'AxiosError') { - console.error(err.response); - console.error(err.response.request); - console.error(err.response.data); - } else { - console.error(err); - } - return callback(null, { status: Status.FAILED }); - } -}; diff --git a/experimental-flex-dialpad/package.json b/experimental-flex-dialpad/package.json deleted file mode 100644 index 2b443a0a..00000000 --- a/experimental-flex-dialpad/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "flex-dialpad", - "version": "1.0.0", - "private": true, - "dependencies": { - "@twilio-labs/runtime-helpers": "^0.1.2", - "@twilio-labs/serverless-api": "^5.5.0", - "@twilio-labs/serverless-runtime-types": "^2.2.3", - "axios": "^0.27.2", - "twilio": "^3.84.0", - "twilio-flex-token-validator": "^1.5.1" - }, - "scripts": { - "build": "cd ui-src && twilio flex:plugins:build -p flex-plugins && cp build/** ../assets" - } -} diff --git a/experimental-flex-dialpad/tests/setup.test.js b/experimental-flex-dialpad/tests/setup.test.js deleted file mode 100644 index 7e414c39..00000000 --- a/experimental-flex-dialpad/tests/setup.test.js +++ /dev/null @@ -1,7 +0,0 @@ -// const { handler } = require('../functions/setup'); - -describe('flex-dialpad function template', () => { - it('TODO Placeholder', () => { - expect(true).toBeTruthy(); - }); -}); diff --git a/experimental-flex-dialpad/ui-src/.env.example b/experimental-flex-dialpad/ui-src/.env.example deleted file mode 100644 index ecfdf7f4..00000000 --- a/experimental-flex-dialpad/ui-src/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -REACT_APP_SERVICE_BASE_URL= -REACT_APP_TASK_CHANNEL_SID= \ No newline at end of file diff --git a/experimental-flex-dialpad/ui-src/.gitignore b/experimental-flex-dialpad/ui-src/.gitignore deleted file mode 100644 index 7d87cfc5..00000000 --- a/experimental-flex-dialpad/ui-src/.gitignore +++ /dev/null @@ -1,71 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -# next.js build output -.next - -# Flex related ignore -appConfig.js -pluginsService.js -build/ - -*.DS_Store - -.env.development -.env.production diff --git a/experimental-flex-dialpad/ui-src/README.md b/experimental-flex-dialpad/ui-src/README.md deleted file mode 100644 index 57acf403..00000000 --- a/experimental-flex-dialpad/ui-src/README.md +++ /dev/null @@ -1,158 +0,0 @@ -# Native Flex Dialpad Add-on - -# Notice -This plugin is no longer maintained as of September 27, 2022. Work to support this feature in Flex v2 has been transitioned to the [Twilio Professional Services Flex Project Template](https://github.com/twilio-professional-services/twilio-proserv-flex-project-template) in the form of the [conference feature](https://github.com/twilio-professional-services/twilio-proserv-flex-project-template/tree/main/plugin-flex-ts-template-v2/src/feature-library/conference) and the [internal call feature](https://github.com/twilio-professional-services/twilio-proserv-flex-project-template/tree/main/plugin-flex-ts-template-v2/src/feature-library/internal-call). - -# Notes -This plugin was upgraded to the latest version of the Plugin Builder (v4), now part of the Twilio CLI. -See: https://www.twilio.com/docs/flex/developer/plugins/migrate - -**For the Flex UI 2.x version of this plugin, see [the flex-ui-v2 branch](https://github.com/twilio-professional-services/flex-dialpad-addon-plugin/tree/flex-ui-v2).** - -The native Flex Dialpad does not support agent-to-agent direct calls or external transfers yet. This plugin is meant to be an add-on to the native Flex Diapad, adding both agent-to-agent direct calls and external transfers. - -## Flex plugin - -A Twilio Flex Plugin allow you to customize the appearance and behavior of [Twilio Flex](https://www.twilio.com/flex). If you want to learn more about the capabilities and how to use the API, check out our [Flex documentation](https://www.twilio.com/docs/flex). - -## How it works - -This plugin uses Twilio Functions and WorkerClient's createTask method to create conferences and TaskRouter tasks for orchestration in both agent-to-agent calls and external transfers features. - -### Agent-to-agent direct call - -This part adds a call agent section to the *Outbound Dialer Panel*. In this section, there is a dropdown where you can select the agent you want to call directly. After selecting and clicking the call button, the WorkerClient's createTask method is used to create the outbound call task having the caller agent as target. When the task is sent to this agent, the AcceptTask action is overridden so we can control all the calling process. Then, we use the reservation object inside the task payload to call the caller agent. This reservation object is part of the TaskRouter Javascript SDK bundled with Flex. The URL endpoint of this call is used and pointed to a Twilio Function that retuns a TwiML which in turns create a conference and sets the statusCallbackEvent. The latter endpoint will be used to create the called agent task. - -In the called side, the AcceptTask action is also overridden and a similar calling process is done. The difference is that the URL endpoint points to a different Twilio Function that returns a simple TwiML which in turns calls the conference created on the caller side. - -This feature is based on the work on this [project](https://github.com/lehel-twilio/plugin-dialpad). - -### External transfer - -When in a call, a "plus" icon is added to the Call Canvas where you can add a external number to the call. This action executes a Twilio Function that uses the Twilio API to make a call and add this call to the current conference. In the Flex UI side, the participant is added manually and both hold/unhold and hangup buttons are available. - -This feature is based on the work on this [project](https://github.com/twilio-labs/plugin-flex-outbound-dialpad). - -# Configuration - - -## Flex Plugin - -This repository is a Flex plugin with some other assets. The following describing how you setup, develop and deploy your Flex plugin. - -### Setup - -Make sure you have [Node.js](https://nodejs.org) as well as [`npm`](https://npmjs.com) installed. - -Afterwards, install the dependencies by running `npm install`: - -```bash -cd - -# If you use npm -npm install -``` - -### Development - -In order to develop locally, you can use the Twilio CLI to run the plugin locally. Using your commandline run the following from the root dirctory of the plugin. - -```bash -twilio flex:plugins:start -``` - -This will automatically start up the Webpack Dev Server and open the browser for you. Your app will run on `http://localhost:3000`. - -When you make changes to your code, the browser window will be automatically refreshed. - - -### Deploy - -#### Plugin Deployment - -Once you are happy with your plugin, you have to deploy then release the plugin for it to take affect on Twilio hosted Flex. - -Run the following command to start the deployment: - -```bash -twilio flex:plugins:deploy --major --changelog "Notes for this version" --description "Functionality of the plugin" -``` - -After your deployment runs you will receive instructions for releasing your plugin from the bash prompt. You can use this or skip this step and release your plugin from the Flex plugin dashboard here https://flex.twilio.com/admin/plugins - -For more details on deploying your plugin, refer to the [deploying your plugin guide](https://www.twilio.com/docs/flex/plugins#deploying-your-plugin). - -Note: Common packages like `React`, `ReactDOM`, `Redux` and `ReactRedux` are not bundled with the build because they are treated as external dependencies so the plugin will depend on Flex to provide them globally. - -## TaskRouter - -Before using this plugin you must first create a dedicated TaskRouter workflow or just add the following filter to your current workflow. Make sure it is part of your Flex Task Assignment workspace. - -- ensure the following matching worker expression: *task.targetWorker==worker.contact_uri* -- ensure the priority of the filter is set to 1000 (or at least the highest in the system) -- make sure the filter matches to a queue with Everyone on it. The default Everyone queue will work but if you want to seperate real time reporting for outbound calls, you should make a dedicated queue for it with a queue expression -*1==1* - - - -## Twilio Serverless - -You will need the [Twilio CLI](https://www.twilio.com/docs/twilio-cli/quickstart) and the [serverless plugin](https://www.twilio.com/docs/labs/serverless-toolkit/getting-started) to deploy the functions inside the ```serverless``` folder of this project. You can install the necessary dependencies with the following commands: - -`npm install twilio-cli -g` - -and then - -`twilio plugins:install @twilio-labs/plugin-serverless` - -# How to use - -1. Setup all dependencies above: the workflow and Twilio CLI packages. - -2. Clone this repository - -3. Copy `.env.example` to `.env` and set the following variables: - - - REACT_APP_SERVICE_BASE_URL: your Twilio Functions base url (this will be available after you deploy your functions). In local development environment, it could be your localhost base url. - - REACT_APP_TASK_CHANNEL_SID: the voice channel SID - - **Note**: Remember that .env is for front-end use so do not add any type of key/secret variable to them. When developing, the .env.development is used while the .env.production is used when building and deploying the plugin. Also, just variables starting with the name *REACT_APP_* will work. - - -4. run `npm install` - -5. copy `./serverless/.env.sample` to `./serverless/.env` and populate the appropriate environment variables. - -``` -ACCOUNT_SID= -AUTH_TOKEN= -TWILIO_WORKFLOW_SID= -TWILIO_WORKSPACE_SID= -TWILIO_NUMBER= -``` - -6. cd into ./serverless/ then run - -`npm install` - -and then - -`twilio serverless:deploy` - -(optionally you can run locally with `twilio serverless:start --ngrok=""`) - -# Known issues - -1. When in an agent-to-agent call, the transfer button is disabled. -2. When in an agent-to-agent call, an external transfer is done correctly but the UI does not reflect what is going on. - -# Old issues - -**Note**: If you are suffering from any of the following issues, please update your plugin with the last version of this repository. - -1. In the first versions, the environment variables were set by the UI Configuration (please refer to this [documentation](https://www.twilio.com/docs/flex/ui/configuration)) but it was overriding some other variables with no relation to this plugin. Because of that, some features inside Flex were breaking. Now, there are two files (.env.development and .env.production) that gather all the environment variables. -2. Before, the worker's contact_uri was extracted from `manager.user.identity` which has its problems depending on its format. It is now being extract from `manager.workerClient.attributes.contact_url` directly. (Thanks to [@hgs-berlee](https://github.com/hgs-berlee) who pointed that out and suggested this solution) -3. Before, when in an external transfer, the hold/unhold button was executing these actions on the first participant and not on the correct one. Now, this is fixed. - -## Disclaimer -This software is to be considered "sample code", a Type B Deliverable, and is delivered "as-is" to the user. Twilio bears no responsibility to support the use or implementation of this software. diff --git a/experimental-flex-dialpad/ui-src/jest.config.js b/experimental-flex-dialpad/ui-src/jest.config.js deleted file mode 100644 index 97b60639..00000000 --- a/experimental-flex-dialpad/ui-src/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = (config, { isProd, isDev, isTest }) => { - /** - * Customize the Jest by modifying the config object. - * Consult https://jestjs.io/docs/en/configuration for more information. - */ - - return config; -}; diff --git a/experimental-flex-dialpad/ui-src/package.json b/experimental-flex-dialpad/ui-src/package.json deleted file mode 100644 index 7575aead..00000000 --- a/experimental-flex-dialpad/ui-src/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "flex-dialpad-addon", - "version": "0.0.0", - "private": true, - "scripts": { - "prebuild": "rimraf build && npm run bootstrap", - "postinstall": "flex-plugin pre-script-check", - "prestart": "npm run bootstrap" - }, - "dependencies": { - "@emotion/core": "^10.0.28", - "@emotion/styled": "^10.0.27", - "lodash": "^4.17.20", - "react": "16.5.2", - "react-dom": "16.5.2", - "react-select": "^3.1.0", - "@twilio/flex-plugin-scripts": "6.0.3" - }, - "devDependencies": { - "@twilio/flex-ui": "^1", - "react-test-renderer": "16.5.2" - } -} diff --git a/experimental-flex-dialpad/ui-src/public/appConfig.example.js b/experimental-flex-dialpad/ui-src/public/appConfig.example.js deleted file mode 100644 index d69f64fe..00000000 --- a/experimental-flex-dialpad/ui-src/public/appConfig.example.js +++ /dev/null @@ -1,9 +0,0 @@ -var appConfig = { - pluginService: { - enabled: true, - url: '/plugins', - }, - ytica: false, - logLevel: 'info', - showSupervisorDesktopView: true, -}; diff --git a/experimental-flex-dialpad/ui-src/screenshots/outbound-filter.png b/experimental-flex-dialpad/ui-src/screenshots/outbound-filter.png deleted file mode 100644 index 377a270318c319119c9e2c6dc95b7c564d506d1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123219 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 Rbq4&C6qOUnfB4k%{{WQz1j7IT diff --git a/experimental-flex-dialpad/ui-src/src/DialpadPlugin.js b/experimental-flex-dialpad/ui-src/src/DialpadPlugin.js deleted file mode 100644 index b9f6e985..00000000 --- a/experimental-flex-dialpad/ui-src/src/DialpadPlugin.js +++ /dev/null @@ -1,23 +0,0 @@ -import { FlexPlugin } from '@twilio/flex-plugin'; - -import registerCustomActions from './customActions'; -import registerCustomNotifications from './notifications'; -import { loadExternalTransferInterface } from './components/ExternalTransfer'; -import { loadInternalCallInterface } from './components/InternalCall'; - -const PLUGIN_NAME = 'DialpadPlugin'; - -export default class DialpadPlugin extends FlexPlugin { - constructor() { - super(PLUGIN_NAME); - } - - init(flex, manager) { - loadExternalTransferInterface.bind(this)(flex, manager); - - loadInternalCallInterface.bind(this)(flex, manager); - - registerCustomActions(manager); - registerCustomNotifications(flex, manager); - } -} diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceButton.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceButton.js deleted file mode 100755 index 8352eb27..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceButton.js +++ /dev/null @@ -1,35 +0,0 @@ -import * as React from 'react'; -import { - Actions, - IconButton, - TaskHelper, - withTheme, - Manager, -} from '@twilio/flex-ui'; - -class ConferenceButton extends React.PureComponent { - handleClick = () => { - Actions.invokeAction('SetComponentState', { - name: 'ConferenceDialog', - state: { isOpen: true }, - }); - }; - - render() { - const isLiveCall = TaskHelper.isLiveCall(this.props.task); - - return ( - - - - ); - } -} - -export default withTheme(ConferenceButton); diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceDialog.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceDialog.js deleted file mode 100755 index cf6981d1..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceDialog.js +++ /dev/null @@ -1,143 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -import { Actions, withTheme, Manager, withTaskContext } from '@twilio/flex-ui'; -import Button from '@material-ui/core/Button'; -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import TextField from '@material-ui/core/TextField'; -import ConferenceService from '../../helpers/ConferenceService'; - -class ConferenceDialog extends React.Component { - state = { - conferenceTo: '', - }; - - handleClose = () => { - this.closeDialog(); - }; - - closeDialog = () => { - Actions.invokeAction('SetComponentState', { - name: 'ConferenceDialog', - state: { isOpen: false }, - }); - }; - - handleKeyPress = (e) => { - const key = e.key; - - if (key === 'Enter') { - this.addConferenceParticipant(); - this.closeDialog(); - } - }; - - handleChange = (e) => { - const value = e.target.value; - this.setState({ conferenceTo: value }); - }; - - handleDialButton = () => { - this.addConferenceParticipant(); - this.closeDialog(); - }; - - addConferenceParticipant = async () => { - const to = this.state.conferenceTo; - - const { task } = this.props; - const conference = task && (task.conference || {}); - const { conferenceSid } = conference; - - const mainConferenceSid = task.attributes.conference - ? task.attributes.conference.sid - : conferenceSid; - - let from; - if (this.props.phoneNumber) { - from = this.props.phoneNumber; - } else { - from = - Manager.getInstance().serviceConfiguration.outbound_call_flows.default - .caller_id; - } - - // Adding entered number to the conference - console.log(`Adding ${to} to conference`); - let participantCallSid; - try { - participantCallSid = await ConferenceService.addParticipant( - mainConferenceSid, - from, - to - ); - ConferenceService.addConnectingParticipant( - mainConferenceSid, - participantCallSid, - 'unknown' - ); - } catch (error) { - console.error('Error adding conference participant:', error); - } - this.setState({ conferenceTo: '' }); - }; - - render() { - return ( - - - - { - Manager.getInstance().strings - .DIALPADExternalTransferPhoneNumberPopupHeader - } - - - - - - - - - ); - } -} - -const mapStateToProps = (state) => { - const componentViewStates = state.flex.view.componentViewStates; - const conferenceDialogState = - componentViewStates && componentViewStates.ConferenceDialog; - const isOpen = conferenceDialogState && conferenceDialogState.isOpen; - return { - isOpen, - phoneNumber: state.flex.worker.attributes.phone, - }; -}; - -export default connect(mapStateToProps)( - withTheme(withTaskContext(ConferenceDialog)) -); diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceMonitor.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceMonitor.js deleted file mode 100755 index 1af635da..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ConferenceMonitor.js +++ /dev/null @@ -1,128 +0,0 @@ -import * as React from 'react'; -import ConferenceService from '../../helpers/ConferenceService'; - -class ConferenceMonitor extends React.Component { - state = { - liveParticipantCount: 0, - didMyWorkerJoinYet: false, - stopMonitoring: false, - }; - - componentDidUpdate() { - if (this.state.stopMonitoring) { - return; - } - - const { task } = this.props; - - const conference = task && (task.conference || {}); - const { - conferenceSid, - liveParticipantCount, - liveWorkerCount, - participants = [], - } = conference; - const liveParticipants = participants.filter((p) => p.status === 'joined'); - const myActiveParticipant = liveParticipants.find((p) => p.isMyself); - - if (liveParticipantCount > 2 && this.state.liveParticipantCount <= 2) { - if (this.shouldUpdateParticipants(participants, liveWorkerCount)) { - this.handleMoreThanTwoParticipants(conferenceSid, liveParticipants); - } - } else if ( - liveParticipantCount <= 2 && - this.state.liveParticipantCount > 2 - ) { - if (this.shouldUpdateParticipants(participants, liveWorkerCount)) { - this.handleOnlyTwoParticipants(conferenceSid, liveParticipants); - } - } - - if (liveParticipantCount !== this.state.liveParticipantCount) { - this.setState({ liveParticipantCount }); - } - - if (!this.state.didMyWorkerJoinYet && myActiveParticipant) { - // Store the fact that my worker has clearly joined the conference - for use later - this.setState({ didMyWorkerJoinYet: true }); - } - - if (this.state.didMyWorkerJoinYet && !myActiveParticipant) { - // My worker has clearly left since previously joining - // Time to stop monitoring at this point. Covers warm and cold transfers and generally stops Flex UI from tinkering - // once the agent is done with the call. - console.debug( - 'dialpad-addon, ConferenceMonitor, componentDidUpdate: My participant left. Time to STOP monitoring this task/conference' - ); - this.setState({ stopMonitoring: true, didMyWorkerJoinYet: false }); - } - } - - hasUnknownParticipant = (participants = []) => { - return participants.some((p) => p.participantType === 'unknown'); - }; - - shouldUpdateParticipants = (participants, liveWorkerCount) => { - console.debug( - 'dialpad-addon, ConferenceMonitor, shouldUpdateParticipants:', - liveWorkerCount <= 1 && this.hasUnknownParticipant(participants) - ); - return liveWorkerCount <= 1 && this.hasUnknownParticipant(participants); - }; - - handleMoreThanTwoParticipants = (conferenceSid, participants) => { - console.log( - 'More than two conference participants. Setting endConferenceOnExit to false for all participants.' - ); - this.setEndConferenceOnExit(conferenceSid, participants, false); - }; - - handleOnlyTwoParticipants = (conferenceSid, participants) => { - console.log( - 'Conference participants dropped to two. Setting endConferenceOnExit to true for all participants.' - ); - this.setEndConferenceOnExit(conferenceSid, participants, true); - }; - - setEndConferenceOnExit = async ( - conferenceSid, - participants, - endConferenceOnExit - ) => { - const promises = []; - participants.forEach((p) => { - console.log( - `setting endConferenceOnExit = ${endConferenceOnExit} for callSid: ${p.callSid} status: ${p.status}` - ); - if (p.connecting) { - return; - } //skip setting end conference on connecting parties as it will fail - promises.push( - ConferenceService.setEndConferenceOnExit( - conferenceSid, - p.callSid, - endConferenceOnExit - ) - ); - }); - - try { - await Promise.all(promises); - console.log( - `endConferenceOnExit set to ${endConferenceOnExit} for all participants` - ); - } catch (error) { - console.error( - `Error setting endConferenceOnExit to ${endConferenceOnExit} for all participants\r\n`, - error - ); - } - }; - - render() { - // This is a Renderless Component, only used for monitoring and taking action on conferences - return null; - } -} - -export default ConferenceMonitor; diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantActionsButtons.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantActionsButtons.js deleted file mode 100755 index 0f284ba2..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantActionsButtons.js +++ /dev/null @@ -1,185 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -import styled from '@emotion/styled'; -import { - Actions, - IconButton, - TaskHelper, - VERSION as FlexVersion, - withTheme, -} from '@twilio/flex-ui'; - -const ActionsContainer = styled('div')` - min-width: 88px; - margin-top: 10px; - button { - width: 36px; - height: 36px; - margin-left: 6px; - margin-right: 6px; - } -`; - -const ActionsContainerListItem = styled('div')` - min-width: 88px; - button { - width: 32px; - height: 32px; - margin-left: 6px; - margin-right: 6px; - } -`; - -class ParticipantActionsButtons extends React.Component { - componentWillUnmount() { - const { participant } = this.props; - if (participant.status === 'recently_left') { - this.props.clearParticipantComponentState(); - } - } - - showKickConfirmation = () => this.props.setShowKickConfirmation(true); - - hideKickConfirmation = () => this.props.setShowKickConfirmation(false); - - onHoldParticipantClick = () => { - const { participant, task } = this.props; - const { callSid, workerSid } = participant; - const participantType = participant.participantType; - Actions.invokeAction( - participant.onHold ? 'UnholdParticipant' : 'HoldParticipant', - { - participantType, - task, - targetSid: participantType === 'worker' ? workerSid : callSid, - } - ); - }; - - onKickParticipantConfirmClick = () => { - const { participant, task } = this.props; - const { callSid, workerSid } = participant; - const { participantType } = participant; - Actions.invokeAction('KickParticipant', { - participantType, - task, - targetSid: participantType === 'worker' ? workerSid : callSid, - }); - this.hideKickConfirmation(); - }; - - renderKickConfirmation() { - return ( - - - - - ); - } - - renderActions() { - const { participant, theme, task } = this.props; - - const holdParticipantTooltip = participant.onHold - ? 'Unhold Participant' - : 'Hold Participant'; - const kickParticipantTooltip = 'Remove Participant'; - - // The name of the hold icons changed in Flex 1.11.0 to HoldOff. - // Since the minimum requirement is 1.10.0 and there is no version between - // 1.10.0 and 1.11.0, the check is only needed for version 1.10.0. - const holdIcon = FlexVersion === '1.10.0' ? 'HoldLarge' : 'Hold'; - const unholdIcon = FlexVersion === '1.10.0' ? 'HoldLargeBold' : 'HoldOff'; - - return ( - - - - - ); - } - - render() { - if (this.props.view.activeView != 'teams') { - return this.props.listMode ? ( - - {this.props.showKickConfirmation - ? this.renderKickConfirmation() - : this.renderActions()} - - ) : ( - - {this.props.showKickConfirmation - ? this.renderKickConfirmation() - : this.renderActions()} - - ); - } else { - return null; - } - } -} - -const mapStateToProps = (state, ownProps) => { - const { participant } = ownProps; - const view = state.flex.view; - const componentViewStates = state.flex.view.componentViewStates; - const customParticipants = componentViewStates.customParticipants || {}; - const participantState = customParticipants[participant.callSid] || {}; - const customParticipantsState = {}; - - return { - view, - showKickConfirmation: participantState.showKickConfirmation, - setShowKickConfirmation: (value) => { - customParticipantsState[participant.callSid] = { - ...participantState, - showKickConfirmation: value, - }; - Actions.invokeAction('SetComponentState', { - name: 'customParticipants', - state: customParticipantsState, - }); - }, - clearParticipantComponentState: () => { - customParticipantsState[participant.callSid] = undefined; - Actions.invokeAction('SetComponentState', { - name: 'customParticipants', - state: customParticipantsState, - }); - }, - }; -}; - -export default connect(mapStateToProps)(withTheme(ParticipantActionsButtons)); diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantName.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantName.js deleted file mode 100755 index daeb8c0a..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantName.js +++ /dev/null @@ -1,75 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -import styled from '@emotion/styled'; -import { Manager, withTheme } from '@twilio/flex-ui'; -import { request } from '../../helpers/request'; - -const Name = styled('div')` - font-size: 14px; - font-weight: bold; - margin-top: 10px; - margin-bottom: 4px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -`; - -const NameListItem = styled('div')` - font-size: 12px; - font-weight: bold; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -`; - -class ParticipantName extends React.Component { - state = { - name: '', - }; - - componentDidMount() { - const { participant, task } = this.props; - - if (participant.participantType === 'customer') { - this.setState({ - name: task.attributes.outbound_to || task.attributes.name, - }); - return; - } - - if (participant.participantType === 'unknown') { - request('external-transfer/get-call-properties', Manager.getInstance(), { - callSid: participant.callSid, - }).then((response) => { - if (response) { - const name = (response && response.to) || 'unknown'; - this.setState({ name }); - } - }); - } else { - this.setState({ - name: participant.worker ? participant.worker.fullName : 'unknown', - }); - } - } - - render() { - return this.props.listMode ? ( - - {this.state.name} - - ) : ( - {this.state.name} - ); - } -} - -const mapStateToProps = (state) => { - const { serviceBaseUrl } = state.flex.config; - - return { - serviceBaseUrl, - }; -}; - -export default connect(mapStateToProps)(withTheme(ParticipantName)); diff --git a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantStatus.js b/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantStatus.js deleted file mode 100755 index 17a93421..00000000 --- a/experimental-flex-dialpad/ui-src/src/components/ExternalTransfer/ParticipantStatus.js +++ /dev/null @@ -1,56 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -import styled from '@emotion/styled'; -import { withTheme, templates, Template } from '@twilio/flex-ui'; - -const Status = styled('div')` - font-size: 12px; -`; - -const StatusListItem = styled('div')` - font-size: 10px; -`; - -class ParticipantStatus extends React.PureComponent { - render() { - const { participant } = this.props; - let statusTemplate = templates.CallParticipantStatusLive; - - if (participant.onHold) { - statusTemplate = templates.CallParticipantStatusOnHold; - } - if (participant.status === 'recently_left') { - statusTemplate = templates.CallParticipantStatusLeft; - } - if (participant.connecting) { - statusTemplate = templates.CallParticipantStatusConnecting; - } - if (this.props.showKickConfirmation) { - statusTemplate = templates.CallParticipantStatusKickConfirmation; - } - - return this.props.listMode ? ( - -