{"version":3,"file":"js/application-21483bf220c794127fa9.chunk.js","sources":["webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue?8e8a","webpack:////Users/bgreenberg2/Documents/dev/station/node_modules/@vonagevolta/volta2/dist/symbol sync ^\\.\\/.*$","webpack:////Users/bgreenberg2/Documents/dev/station/node_modules/@vonagevolta/volta2/images/logos sync ^\\.\\/.*$","webpack:///Concatenation.vue","webpack:///Feedback.vue","webpack:///JwtGenerator.vue","webpack:///NDPArticle.vue","webpack:///Search.vue","webpack:///ZendeskArticle.vue","webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue?63e5","webpack:///./app/webpacker/javascript/components/feedback/Feedback.vue?5ed1","webpack:///./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?1f70","webpack:///./app/webpacker/javascript/components/search/NDPArticle.vue?2b89","webpack:///./app/webpacker/javascript/components/search/Search.vue?ac45","webpack:///./app/webpacker/javascript/components/search/ZendeskArticle.vue?30d5","webpack:///./app/webpacker/javascript/api_status/index.js","webpack:///./app/webpacker/javascript/careers/index.js","webpack:///./app/webpacker/javascript/code_snippet_events/index.js","webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue","webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue?9837","webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue?29d7","webpack:///./app/webpacker/javascript/components/concatenation/Concatenation.vue?0d39","webpack:///./app/webpacker/javascript/components/concatenation/character_counter.js","webpack:///./app/webpacker/javascript/components/feedback/Feedback.vue","webpack:///./app/webpacker/javascript/components/feedback/Feedback.vue?0a58","webpack:///./app/webpacker/javascript/components/feedback/Feedback.vue?a354","webpack:///./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue","webpack:///./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?a77c","webpack:///./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?ba8c","webpack:///./app/webpacker/javascript/components/search/NDPArticle.vue","webpack:///./app/webpacker/javascript/components/search/NDPArticle.vue?1dce","webpack:///./app/webpacker/javascript/components/search/NDPArticle.vue?8261","webpack:///./app/webpacker/javascript/components/search/Search.vue","webpack:///./app/webpacker/javascript/components/search/Search.vue?69a2","webpack:///./app/webpacker/javascript/components/search/Search.vue?0c0a","webpack:///./app/webpacker/javascript/components/search/ZendeskArticle.vue","webpack:///./app/webpacker/javascript/components/search/ZendeskArticle.vue?1804","webpack:///./app/webpacker/javascript/components/search/ZendeskArticle.vue?1ad3","webpack:///./app/webpacker/javascript/format/index.js","webpack:///./app/webpacker/javascript/github_cards/index.js","webpack:///./app/webpacker/javascript/locale_switcher/index.js","webpack:///./app/webpacker/javascript/notices/index.js","webpack:///./app/webpacker/javascript/scroll/index.js","webpack:///./app/webpacker/javascript/sidenav/index.js","webpack:///./app/webpacker/javascript/spotlight/index.js","webpack:///./app/webpacker/javascript/volta/tooltip.min.js","webpack:///./app/webpacker/javascript/volta/volta.js","webpack:///./app/webpacker/javascript/volta_tabbed_examples/index.js","webpack:///./app/webpacker/javascript/volta_tabbed_examples/user_preference.js","webpack:///./app/webpacker/packs/application.js"],"sourcesContent":["// extracted by mini-css-extract-plugin","var map = {\n\t\"./volta-brand-icons\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-brand-icons.svg\",\n\t\"./volta-brand-icons.svg\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-brand-icons.svg\",\n\t\"./volta-flag-icons\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-flag-icons.svg\",\n\t\"./volta-flag-icons.svg\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-flag-icons.svg\",\n\t\"./volta-icons\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-icons.svg\",\n\t\"./volta-icons.svg\": \"../../node_modules/@vonagevolta/volta2/dist/symbol/volta-icons.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"../../node_modules/@vonagevolta/volta2/dist/symbol sync recursive ^\\\\.\\\\/.*$\";","var map = {\n\t\"./Vonage-api\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api.svg\",\n\t\"./Vonage-api--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api--white.svg\",\n\t\"./Vonage-api--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api--white.svg\",\n\t\"./Vonage-api-changelog\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog.svg\",\n\t\"./Vonage-api-changelog--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog--white.svg\",\n\t\"./Vonage-api-changelog--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog--white.svg\",\n\t\"./Vonage-api-changelog.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog.svg\",\n\t\"./Vonage-api-dashboard-vert\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert.svg\",\n\t\"./Vonage-api-dashboard-vert--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert--white.svg\",\n\t\"./Vonage-api-dashboard-vert--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert--white.svg\",\n\t\"./Vonage-api-dashboard-vert.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert.svg\",\n\t\"./Vonage-api-developer\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer.svg\",\n\t\"./Vonage-api-developer--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer--white.svg\",\n\t\"./Vonage-api-developer--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer--white.svg\",\n\t\"./Vonage-api-developer.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer.svg\",\n\t\"./Vonage-api-support\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support.svg\",\n\t\"./Vonage-api-support--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support--white.svg\",\n\t\"./Vonage-api-support--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support--white.svg\",\n\t\"./Vonage-api-support.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support.svg\",\n\t\"./Vonage-api.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api.svg\",\n\t\"./Vonage-apis\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis.svg\",\n\t\"./Vonage-apis--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis--white.svg\",\n\t\"./Vonage-apis--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis--white.svg\",\n\t\"./Vonage-apis.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis.svg\",\n\t\"./Vonage-developer\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer.svg\",\n\t\"./Vonage-developer--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer--white.svg\",\n\t\"./Vonage-developer--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer--white.svg\",\n\t\"./Vonage-developer.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer.svg\",\n\t\"./Vonage-lettermark\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark.svg\",\n\t\"./Vonage-lettermark--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark--white.svg\",\n\t\"./Vonage-lettermark--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark--white.svg\",\n\t\"./Vonage-lettermark.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark.svg\",\n\t\"./Vonage-logo-collapsed\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-logo-collapsed.svg\",\n\t\"./Vonage-logo-collapsed.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-logo-collapsed.svg\",\n\t\"./Vonage-nexmo\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo.svg\",\n\t\"./Vonage-nexmo--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo--white.svg\",\n\t\"./Vonage-nexmo--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo--white.svg\",\n\t\"./Vonage-nexmo-vert\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert.svg\",\n\t\"./Vonage-nexmo-vert--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert--white.svg\",\n\t\"./Vonage-nexmo-vert--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert--white.svg\",\n\t\"./Vonage-nexmo-vert.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert.svg\",\n\t\"./Vonage-nexmo.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo.svg\",\n\t\"./Vonage-tokbox\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox.svg\",\n\t\"./Vonage-tokbox--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox--white.svg\",\n\t\"./Vonage-tokbox--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox--white.svg\",\n\t\"./Vonage-tokbox-vert\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert.svg\",\n\t\"./Vonage-tokbox-vert--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert--white.svg\",\n\t\"./Vonage-tokbox-vert--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert--white.svg\",\n\t\"./Vonage-tokbox-vert.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert.svg\",\n\t\"./Vonage-tokbox.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox.svg\",\n\t\"./Vonage-video-api\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api.svg\",\n\t\"./Vonage-video-api--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api--white.svg\",\n\t\"./Vonage-video-api--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api--white.svg\",\n\t\"./Vonage-video-api-stacked\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked.svg\",\n\t\"./Vonage-video-api-stacked--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked--white.svg\",\n\t\"./Vonage-video-api-stacked--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked--white.svg\",\n\t\"./Vonage-video-api-stacked.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked.svg\",\n\t\"./Vonage-video-api.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api.svg\",\n\t\"./Vonage-wordmark\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark.svg\",\n\t\"./Vonage-wordmark--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark--white.svg\",\n\t\"./Vonage-wordmark--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark--white.svg\",\n\t\"./Vonage-wordmark.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark.svg\",\n\t\"./favicon.ico\": \"../../node_modules/@vonagevolta/volta2/images/logos/favicon.ico\",\n\t\"./volta-logo\": \"../../node_modules/@vonagevolta/volta2/images/logos/volta-logo.svg\",\n\t\"./volta-logo.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/volta-logo.svg\",\n\t\"./vonage-logo\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo.svg\",\n\t\"./vonage-logo--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo--white.svg\",\n\t\"./vonage-logo--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo--white.svg\",\n\t\"./vonage-logo-collapsed--white\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo-collapsed--white.svg\",\n\t\"./vonage-logo-collapsed--white.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo-collapsed--white.svg\",\n\t\"./vonage-logo.svg\": \"../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"../../node_modules/@vonagevolta/volta2/images/logos sync recursive ^\\\\.\\\\/.*$\";","\n\n\n","\n\n","\n\n\n","\n\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Vlt-box\" }, [\n _c(\"h2\", [_vm._v(\"Try it out\")]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(\"Message\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-textarea\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.body,\n expression: \"body\"\n }\n ],\n domProps: { value: _vm.body },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.body = $event.target.value\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-margin--top2\" }),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(\"Data\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-box Vlt-box--white Vlt-box--lesspadding\" }, [\n _c(\"div\", { staticClass: \"Vlt-grid\" }, [\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--1of3\" }, [\n _c(\"b\", [_vm._v(\"Unicode is Required?\")]),\n _vm._v(\" \"),\n _vm.unicodeRequired\n ? _c(\"i\", {\n staticClass: \"icon icon--large icon-check-circle color--success\"\n })\n : _c(\"i\", {\n staticClass: \"icon icon--large icon-times-circle color--error\"\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--2of3\" }),\n _vm._v(\" \"),\n _c(\"hr\", { staticClass: \"hr--shorter\" }),\n _vm._v(\" \"),\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"Vlt-col Vlt-col--2of3\",\n attrs: { id: \"sms-composition\" },\n domProps: { innerHTML: _vm._s(_vm.smsComposition) }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(\"Parts\")]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"Vlt-box Vlt-box--white Vlt-box--lesspadding\",\n attrs: { id: \"parts\" }\n },\n _vm._l(_vm.messages, function(message, index) {\n return _c(\"div\", { staticClass: \"Vlt-grid\" }, [\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--1of3\" }, [\n _c(\"b\", [_vm._v(\"Part \" + _vm._s(index + 1))])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--2of3\" }, [\n _c(\"code\", [\n _vm.messages.length > 1\n ? _c(\"span\", [\n _c(\"span\", { staticClass: \"Vlt-badge Vlt-badge--blue\" }, [\n _vm._v(\"User Defined Header\")\n ]),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(\" \")])\n ])\n : _vm._e(),\n _vm._v(\"\\n \" + _vm._s(message) + \"\\n \")\n ])\n ]),\n _vm._v(\" \"),\n index + 1 !== _vm.messages.length\n ? _c(\"hr\", { staticClass: \"hr--shorter\" })\n : _vm._e()\n ])\n }),\n 0\n )\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Vlt-col Vlt-col--1of3\" }, [\n _c(\"b\", [_vm._v(\"Length\")])\n ])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"Vlt-box Vlt-box--left Vlt-bg-grey-lighter feedback\" },\n [\n _c(\"div\", { staticClass: \"Vlt-grid\" }, [\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--3of4\" }, [\n _c(\"h4\", [_vm._v(\"Was this documentation helpful?\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"sentiments\" }, [\n _vm.uploadingSentiment\n ? _c(\"div\", [\n _c(\"div\", { staticClass: \"Vlt-spinner Vlt-spinner--small\" })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\n \"span\",\n {\n class: [\n { \"Vlt-btn_active\": _vm.sentiment == \"positive\" },\n \"Vlt-btn Vlt-btn--large Vlt-btn--tertiary Vlt-btn--icon Vlt-bg-green\"\n ],\n on: {\n click: function($event) {\n return _vm.setSentiment(\"positive\")\n }\n }\n },\n [\n _c(\"svg\", { staticClass: \"Vlt-white\" }, [\n _c(\"use\", {\n attrs: {\n \"xlink:href\": \"/symbol/volta-icons.svg#Vlt-icon-happy\"\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n class: [\n { \"Vlt-btn_active\": _vm.sentiment == \"negative\" },\n \"Vlt-btn Vlt-btn--large Vlt-btn--tertiary Vlt-btn--icon Vlt-bg-red\"\n ],\n on: {\n click: function($event) {\n return _vm.setSentiment(\"negative\")\n }\n }\n },\n [\n _c(\"svg\", { staticClass: \"Vlt-white\" }, [\n _c(\"use\", {\n attrs: {\n \"xlink:href\": \"/symbol/volta-icons.svg#Vlt-icon-unhappy\"\n }\n })\n ])\n ]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-col Vlt-col--right Vlt-col--1of4\" }, [\n _vm.githubUrl\n ? _c(\"span\", { attrs: { id: \"feedback__improve\" } }, [\n _c(\"svg\", { staticClass: \"Vlt-icon Vlt-black\" }, [\n _c(\"use\", {\n attrs: {\n \"xlink:href\": \"/symbol/volta-icons.svg#Vlt-icon-github\"\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"Vlt-text-link Vlt-black\",\n attrs: { href: _vm.githubUrl, target: \"_blank\" }\n },\n [_vm._v(\" Improve this page\")]\n )\n ])\n : _vm._e()\n ])\n ]),\n _vm._v(\" \"),\n _vm.error\n ? _c(\"p\", { staticClass: \"form__error\" }, [_vm._v(_vm._s(_vm.error))])\n : _vm._e(),\n _vm._v(\" \"),\n (_vm.sentiment && !_vm.showExtendedFields) || _vm.feedbackComplete\n ? _c(\"div\", [\n _c(\"hr\"),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Great! Thanks for the feedback.\")])\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showExtendedFields && _vm.id && !_vm.feedbackComplete\n ? _c(\"div\", [\n _c(\"hr\"),\n _vm._v(\" \"),\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _vm._m(1),\n _vm._v(\" \"),\n _vm._m(2),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-textarea\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.comment,\n expression: \"comment\"\n }\n ],\n domProps: { value: _vm.comment },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.comment = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n !_vm.currentUser\n ? _c(\n \"div\",\n {\n staticClass: \"Vlt-form__element Vlt-form__element--elastic\"\n },\n [\n _vm._m(3),\n _vm._v(\" \"),\n _vm._m(4),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-input\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.emailInput,\n expression: \"emailInput\"\n }\n ],\n attrs: {\n type: \"email\",\n size: \"20\",\n placeholder: \"email\",\n id: \"email\"\n },\n domProps: { value: _vm.emailInput },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.emailInput = $event.target.value\n }\n }\n })\n ])\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"Vlt-btn Vlt-btn--primary Vlt-btn--app\",\n attrs: {\n disabled: _vm.isSubmitDisabled,\n type: \"submit\",\n value: \"Send Feedback\"\n },\n on: { click: _vm.submitFeedback }\n }),\n _vm._v(\" \"),\n _vm._m(5)\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.currentUser\n ? _c(\"p\", [\n _c(\"br\"),\n _vm._v(\n \"\\n Logged in as \" + _vm._s(_vm.currentUser.email) + \".\\n \"\n ),\n _c(\"a\", { attrs: { href: _vm.currentUser.signout_path } }, [\n _vm._v(\"Sign out\")\n ])\n ])\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\n \"We see that this page didn’t meet your expectations. We’re really sorry!\"\n ),\n _c(\"br\")\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _c(\"strong\", [\n _vm._v(\n \"We’d like a chance to fix that. Please would you give us some more information?\"\n )\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"label\", { staticClass: \"Vlt-label\" }, [\n _vm._v(\"What didn’t work for me: \"),\n _c(\"small\", { staticClass: \"Vlt-grey-darker\" }, [_vm._v(\"(required)\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _c(\"strong\", [\n _vm._v(\"Can we let you know when we've solved your issue?\")\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"label\", { staticClass: \"Vlt-label\" }, [\n _vm._v(\"My email: \"),\n _c(\"small\", { staticClass: \"Vlt-grey-darker\" }, [_vm._v(\"(optional)\")])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", [\n _vm._v(\"Your data will be treated in accordance with our \"),\n _c(\"a\", { attrs: { href: \"https://www.nexmo.com/privacy-policy\" } }, [\n _vm._v(\"Privacy Policy\")\n ]),\n _vm._v(\", which sets out the rights you have in respect of your data.\")\n ])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Vlt-card\" }, [\n _c(\"h1\", [_vm._v(\"JWT Generator\")]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.jwt,\n expression: \"!jwt\"\n }\n ],\n class: [_vm.computedClass, \"Vlt-callout\"]\n },\n [\n _c(\"i\"),\n _vm._v(\" \"),\n _vm.invalidAcl\n ? _c(\"div\", { staticClass: \"Vlt-callout__content\" }, [\n _vm._v(\"\\n Invalid ACL provided. Must be JSON\\n \")\n ])\n : _vm.invalidPrivateKey\n ? _c(\"div\", { staticClass: \"Vlt-callout__content\" }, [\n _vm._v(\"\\n Invalid private key provided\\n \")\n ])\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.invalidPrivateKey && !_vm.invalidAcl\n ? _c(\"div\", {\n staticClass: \"Vlt-callout__content\",\n domProps: { innerHTML: _vm._s(_vm.callout) }\n })\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-grid\" }, [\n _c(\"div\", { staticClass: \"Vlt-col\" }, [\n _c(\"h2\", [_vm._v(\"Parameters\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\"label\", { staticClass: \"Vlt-label\" }, [_vm._v(\"Private Key\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-textarea\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.privateKey,\n expression: \"privateKey\"\n }\n ],\n attrs: { rows: \"8\", cols: \"50\", id: \"private-key\" },\n domProps: { value: _vm.privateKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.privateKey = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\"label\", { staticClass: \"Vlt-label\" }, [_vm._v(\"Application ID\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-input\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.applicationId,\n expression: \"applicationId\"\n }\n ],\n attrs: { id: \"application-id\" },\n domProps: { value: _vm.applicationId },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.applicationId = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\n \"label\",\n {\n staticClass: \"Vlt-label\",\n attrs: { htmlFor: \"example-input-icon-button\" }\n },\n [_vm._v(\"Valid For\")]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-composite\" }, [\n _c(\"div\", { staticClass: \"Vlt-input\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model.number\",\n value: _vm.validFor,\n expression: \"validFor\",\n modifiers: { number: true }\n }\n ],\n attrs: { type: \"number\", placeholder: \"6\" },\n domProps: { value: _vm.validFor },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.validFor = _vm._n($event.target.value)\n },\n blur: function($event) {\n return _vm.$forceUpdate()\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-composite__append\" }, [\n _c(\"div\", { staticClass: \"Vlt-native-dropdown\" }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model.number\",\n value: _vm.validForTimeUnit,\n expression: \"validForTimeUnit\",\n modifiers: { number: true }\n }\n ],\n attrs: { defaultValue: \"3600\" },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return _vm._n(val)\n })\n _vm.validForTimeUnit = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n }\n }\n },\n [\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"Seconds\")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"60\" } }, [\n _vm._v(\"Minutes\")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3600\" } }, [\n _vm._v(\"Hours\")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"86400\" } }, [\n _vm._v(\"Days\")\n ])\n ]\n )\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\"label\", { staticClass: \"Vlt-label\" }, [_vm._v(\"Sub (optional)\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-input\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.sub,\n expression: \"sub\"\n }\n ],\n domProps: { value: _vm.sub },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.sub = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\"label\", { staticClass: \"Vlt-label\" }, [_vm._v(\"ACL (optional)\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-textarea\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.acl,\n expression: \"acl\"\n }\n ],\n attrs: { rows: \"4\", cols: \"50\", id: \"acl\" },\n domProps: { value: _vm.acl },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.acl = $event.target.value\n }\n }\n })\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-col\" }, [\n _c(\"h2\", [_vm._v(\"Encoded\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-form__element\" }, [\n _c(\"label\", { staticClass: \"Vlt-label\" }, [_vm._v(\"Your JWT\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-textarea\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.jwt,\n expression: \"jwt\"\n }\n ],\n attrs: { rows: \"29\", cols: \"50\", id: \"jwt\" },\n domProps: { value: _vm.jwt },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.jwt = $event.target.value\n }\n }\n })\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-grid\" }, [\n _c(\"div\", { staticClass: \"Vlt-col\" }, [\n _c(\"h2\", [_vm._v(\"Decoded\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-table Vlt-table--data\" }, [\n _c(\"table\", [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"tbody\", [\n _c(\"tr\", [\n _vm._m(1),\n _c(\"td\", [_vm._v(_vm._s(_vm.applicationId))]),\n _c(\"td\", [\n _vm._v(\"The application ID this JWT uses for authentication\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(2),\n _c(\"td\", [_vm._v(_vm._s(_vm.iat))]),\n _c(\"td\", [_vm._v(\"The time at which the token was issued\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(3),\n _c(\"td\", [_vm._v(_vm._s(_vm.nbf))]),\n _c(\"td\", [\n _vm._v(\"The time at which the token should become valid\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(4),\n _c(\"td\", [_vm._v(_vm._s(_vm.exp))]),\n _c(\"td\", [_vm._v(\"The time at which the token should expire\")])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(5),\n _c(\"td\", [_vm._v(_vm._s(_vm.sub))]),\n _c(\"td\", [\n _vm._v(\n \"The subject identified by the JWT (only used for the Client SDKs)\"\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(6),\n _c(\"td\", [_vm._v(_vm._s(_vm.acl))]),\n _c(\"td\", [\n _vm._v(\"A list of permissions that this token will have\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _vm._m(7),\n _c(\"td\", [_vm._v(_vm._s(_vm.jti))]),\n _c(\"td\", [_vm._v(\"A unique identifier for the JWT\")])\n ])\n ])\n ])\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"thead\", [\n _c(\"tr\", [\n _c(\"th\", [_vm._v(\"Name\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Value\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Meaning\")])\n ])\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"application_id\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"iat\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"nbf\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"exp\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"sub\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"acl\")])])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"td\", [_c(\"code\", [_vm._v(\"jti\")])])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Nxd-search__result\" }, [\n _c(\n \"a\",\n { staticClass: \"Nxd-search__result__link\", attrs: { href: _vm.url } },\n [\n _c(\"div\", [\n _c(\"h6\", { staticClass: \"Vlt-blue-dark\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.hit.title) + \"\\n \"),\n _vm.showHeading\n ? _c(\"small\", [_vm._v(\" > \" + _vm._s(_vm.hit.heading))])\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"Nxd-search__result__desc\" }, [\n _vm._v(_vm._s(_vm.description))\n ]),\n _vm._v(\" \"),\n _c(\"p\", {\n staticClass: \"Nxd-search__result__highlight\",\n domProps: { innerHTML: _vm._s(_vm.snippet) }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n { staticClass: \"Vlt-badge Vlt-badge--grey Nxd-search__badge\" },\n [_vm._v(_vm._s(_vm.badge))]\n )\n ])\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"div\", [\n _c(\"div\", { staticClass: \"Vlt-composite\" }, [\n _c(\n \"div\",\n {\n staticClass: \"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n },\n [\n _c(\"svg\", [\n _c(\"use\", {\n attrs: {\n \"xlink:href\": \"/symbol/volta-icons.svg#Vlt-icon-search\"\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"Vlt-input Vlt-input--round\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.query,\n expression: \"query\"\n }\n ],\n attrs: {\n name: \"query\",\n placeholder: \"Search\",\n id: \"searchbox-test\",\n type: \"text\",\n autoComplete: \"off\"\n },\n domProps: { value: _vm.query },\n on: {\n keydown: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\"\n ])\n ) {\n return null\n }\n return _vm.onEscDownHandler($event)\n },\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.query = $event.target.value\n },\n _vm.onInputHandler\n ]\n }\n })\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"svg\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.query,\n expression: \"query\"\n }\n ],\n staticClass: \"Nxd-search__clear\"\n },\n [\n _c(\"use\", {\n attrs: { \"xlink:href\": \"/symbol/volta-icons.svg#Vlt-icon-cross\" }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showResults,\n expression: \"showResults\"\n }\n ],\n staticClass: \"Nxd-search\"\n },\n [\n _c(\"div\", { staticClass: \"Nxd-search__wrapper\" }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loading,\n expression: \"loading\"\n }\n ],\n staticClass: \"spinner\"\n },\n [_c(\"i\", { staticClass: \"icon icon-cog\" })]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.loading,\n expression: \"!loading\"\n }\n ],\n staticClass: \"Nxd-search__wrapper\"\n },\n _vm._l(_vm.results, function(result) {\n return _c(\n \"div\",\n { key: result.index, staticClass: \"Nxd-search__results\" },\n [\n _c(\"h3\", { staticClass: \"Nx-search__title\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.resultTitle(result.index)) +\n \"\\n \"\n )\n ]),\n _vm._v(\" \"),\n result.hits.length > 0\n ? _c(\"div\", [\n _vm.isZendeskArticle(result)\n ? _c(\n \"div\",\n _vm._l(result.hits, function(hit) {\n return _c(\"ZendeskArticle\", {\n key: _vm.hitKey(result, hit),\n attrs: { hit: hit }\n })\n }),\n 1\n )\n : _vm.isNDPArticle(result)\n ? _c(\n \"div\",\n _vm._l(result.hits, function(hit) {\n return _c(\"NDPArticle\", {\n key: _vm.hitKey(result, hit),\n attrs: { hit: hit }\n })\n }),\n 1\n )\n : _vm._e()\n ])\n : _c(\"div\", [_vm._m(0, true)])\n ]\n )\n }),\n 0\n )\n ])\n ]\n )\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"p\", { staticClass: \"Nxd-search--no-results\" }, [\n _c(\"i\", [_vm._v(\"No results\")])\n ])\n }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"Nxd-search__result\" }, [\n _c(\n \"a\",\n {\n staticClass: \"Nxd-search__result__link\",\n attrs: { href: _vm.url, target: \"_blank\" }\n },\n [\n _c(\"div\", [\n _c(\"h6\", { staticClass: \"Vlt-blue-dark\" }, [\n _vm._v(_vm._s(_vm.title))\n ]),\n _vm._v(\" \"),\n _c(\"p\", {\n staticClass: \"Nxd-search__result__highlight\",\n domProps: { innerHTML: _vm._s(_vm.snippet) }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n { staticClass: \"Vlt-badge Vlt-badge--grey Nxd-search__badge\" },\n [_vm._v(_vm._s(_vm.badge))]\n )\n ])\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import 'whatwg-fetch'\n\nexport default () => {\n fetch('https://xb8glk41jfrv.statuspage.io/api/v2/status.json')\n .then((response) => response.json())\n .then((payload) => {\n \tvar color;\n \tswitch (payload.status.indicator) {\n \t\tcase 'major':\n \t\t\tcolor = 'red';\n \t\tcase 'critical':\n \t\t\tcolor = 'red';\n \t\tcase 'minor':\n \t\t\tcolor = 'yellow';\n \t\tdefault:\n \t\t\tcolor = 'green';\n \t}\n $('.Nxd-api-status').text(payload.status.description).addClass(`Vlt-badge--` + color)\n })\n}\n","export default class Careers {\n\n constructor() {\n this.departments = [];\n this.locations = [];\n this.setupListeners();\n }\n\n showCareer(career) {\n const department = career.getElementsByClassName('department')[0].dataset.department;\n const location = career.getElementsByClassName('location')[0].dataset.location;\n\n return (this.departments.includes(department) || this.departments.length === 0)\n && (this.locations.some(l => location.includes(l) || l.includes(location)) || this.locations.length === 0);\n }\n\n toggleCareers() {\n Array.from(document.getElementsByClassName('Nxd-career')).forEach(function(career) {\n career.classList.toggle('hide', !this.showCareer(career));\n }, this);\n\n document.getElementById('no-results').classList.toggle(\n 'hide',\n document.querySelectorAll('.Nxd-career:not(.hide)').length !== 0\n );\n\n document.querySelectorAll('.Nxd-career:not(.hide)').forEach(function(career, index) {\n career.classList.toggle('striped', index % 2 == 0);\n });\n }\n\n updateURL() {\n let currentUrl = new URL(window.location.href);\n let query = {};\n if (this.departments.length > 0) {\n Object.assign(query, { departments: this.departments });\n }\n if (this.locations.length > 0) {\n Object.assign(query, { locations: this.locations.map((l) => l.split(',')[0]) });\n }\n\n let params = new URLSearchParams(query);\n\n currentUrl.search = params\n window.history.pushState({}, 'Careers', currentUrl);\n }\n\n dropdownValue(length, item) {\n let value;\n switch(length) {\n case 0:\n value = `${item}s`;\n break;\n case 1:\n value = `1 ${item} selected`;\n break;\n default:\n value = `${length} ${item}s selected`;\n }\n return value;\n }\n\n updateDepartmentsDropdown() {\n let value = this.dropdownValue(this.departments.length, 'Department');\n document.querySelector('#department-filter button').innerText = value;\n }\n\n updateLocationsDropdown() {\n let value = this.dropdownValue(this.locations.length, 'Location');\n document.querySelector('#location-filter button').innerText = value;\n }\n\n departmentChangeHandler(event) {\n if (event.target.checked) {\n this.departments.push(event.target.value);\n } else {\n this.departments.splice(this.departments.indexOf(event.target.value), 1);\n }\n this.updateURL();\n this.updateDepartmentsDropdown();\n this.toggleCareers();\n }\n\n locationChangeHandler(event) {\n if (event.target.checked) {\n this.locations.push(event.target.value);\n } else {\n this.locations.splice(this.locations.indexOf(event.target.value), 1);\n }\n this.updateURL();\n this.updateLocationsDropdown();\n this.toggleCareers();\n }\n\n setFiltersFromURL() {\n let params = new URLSearchParams(window.location.search);\n this.departments = [];\n this.locations = [];\n\n params.get('departments') && params.get('departments').split(',').forEach(function(department) {\n this.departments.push(department);\n document.getElementById(department).checked = true;\n }, this);\n\n params.get('locations') && params.get('locations').split(',').forEach(function(location) {\n let checkbox = document.querySelector(`[id^='${location}']`);\n if (checkbox) {\n this.locations.push(location);\n checkbox.checked = true;\n }\n }, this);\n\n this.updateDepartmentsDropdown();\n this.updateLocationsDropdown();\n this.toggleCareers();\n }\n\n setupListeners() {\n const self = this;\n window.addEventListener('load', function() {\n if (!document.getElementById('careers')) { return; }\n\n self.toggleCareers();\n document.getElementById('department-filter').addEventListener('change', self.departmentChangeHandler.bind(self));\n document.getElementById('location-filter').addEventListener('change', self.locationChangeHandler.bind(self));\n self.setFiltersFromURL();\n });\n\n window.addEventListener('popstate', function(event) {\n if (!document.getElementById('careers')) { return; }\n self.setFiltersFromURL();\n });\n }\n}\n","export default () => {\n let hasTriggeredCopyStat = {};\n let hasTriggeredLinkStat = {};\n\n // Track copy to clipboard usage\n var clipboard = new Clipboard('.copy-button',{\n text: function(trigger) {\n return $(trigger).next().find('.main-code').text();\n }\n });\n\n clipboard.on('success', function(e) {\n let trigger = $(e.trigger);\n\n let params = {\n \"language\": trigger.attr(\"data-lang\"),\n \"snippet\": trigger.attr(\"data-block\"),\n \"section\": trigger.attr(\"data-section\"),\n \"event\": \"copy\"\n };\n\n let key = params['language'] + params['section'] + params['snippet'];\n\n // We only want to track each copy once per page load\n if (hasTriggeredCopyStat[key]) { return true; }\n\n trigger.find('span').text('Copied');\n\n fetch(createRequest(params))\n .then((response) => {\n if (response.ok) { return response.json() }\n return Promise.reject({ message: 'Bad response from server', response })\n })\n .then((payload) => {\n hasTriggeredCopyStat[key] = true;\n })\n\n // Can we point them to the dependencies too?\n if (trigger.parent().hasClass(\"main-code\")) {\n trigger.parent().parent().find(\".configure-dependencies\").prepend(\"Don't forget me!\");\n }\n\n });\n\n\n clipboard.on('error', function(e) {\n console.error('Action:', e.action);\n console.error('Trigger:', e.trigger);\n });\n\n // Track source link usage\n $(document).on('mousedown', '.source-link', function(e){\n if (e.which === 3) { return; }\n let trigger = $(this);\n\n let section = trigger.attr(\"data-section\");\n\n let params = {\n \"language\": trigger.attr(\"data-lang\"),\n \"snippet\": trigger.attr(\"data-block\"),\n \"section\": section,\n \"event\": \"source\"\n };\n\n let key = params['language'] + params['section'];\n\n if (hasTriggeredLinkStat[key]) { return true; }\n\n fetch(createRequest(params))\n .then((response) => {\n if (response.ok) { return response.json() }\n return Promise.reject({ message: 'Bad response from server', response })\n })\n .then((payload) => {\n hasTriggeredLinkStat[key] = true;\n })\n });\n};\n\nfunction createRequest(params) {\n return new Request('/usage/code_snippet', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify(params),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n}\n","import { render, staticRenderFns } from \"./Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&\"\nimport script from \"./Concatenation.vue?vue&type=script&lang=js&\"\nexport * from \"./Concatenation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b3458a9\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6b3458a9')) {\n api.createRecord('6b3458a9', component.options)\n } else {\n api.reload('6b3458a9', component.options)\n }\n module.hot.accept(\"./Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&\", function () {\n api.rerender('6b3458a9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/concatenation/Concatenation.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Concatenation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Concatenation.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../../../node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--2-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--2-2!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--2-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--2-2!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&\"","import difference from 'lodash/difference'\n\nconst GSM_STANDARD_CHARS = [\n '@', '0', '¡', 'P', '¿',\n 'p', '£', '_', '!', '1',\n 'A', 'Q', 'a', 'q', '$',\n '\"', '2', 'B', 'R', 'b',\n 'r', '¥', '?', '#', '3',\n 'C', 'S', 'c', 's', 'è',\n '?', '4', 'D', 'T', 'd',\n 't', 'é', '?', '%', '5',\n 'E', 'U', 'e', 'u', 'ù',\n '6', 'F', 'V', 'f', 'v',\n 'ì', '?', \"'\", '7', 'G',\n 'W', 'g', 'w', 'ò', '(',\n '8', 'H', 'X', 'h', 'x',\n 'Ç', ')', '9', 'I', 'Y',\n 'i', 'y', '*', ':', 'J',\n 'Z', 'j', 'z', 'Ø', '+',\n ';', 'K', 'Ä', 'k', 'ä',\n 'Æ', ',', '<', 'L', 'l',\n 'ö', 'æ', '-', '=', 'M',\n 'Ñ', 'm', 'ñ', 'Å', 'ß',\n '.', '>', 'N', 'Ü', 'n',\n 'ü', 'å', 'É', '/', 'O',\n '§', 'o', 'à', 'Δ', 'Φ',\n 'Γ', 'Λ', 'Ω', 'Π', 'Ψ',\n 'Σ', 'Θ', 'Ξ', 'Ö', 'Ä',\n 'Ü', 'ø', ' ', '\\r', '\\n'\n]\n\nconst GSM_EXTENDED_CHARS = [\n '|', '^', '€', '{', '}', '[', ']', '~', '\\\\'\n]\n\nconst BYTE_SIZE = 8;\nconst CHARACTER_SIZE = 7;\nconst GSM_METADATA_LENGTH = 7;\nconst GSM_METADATA_SIZE = GSM_METADATA_LENGTH * CHARACTER_SIZE;\nconst GSM_MAX_SIZE = 140 * BYTE_SIZE;\n\nclass CharacterCounter {\n constructor(text) {\n this.text = text;\n }\n\n getInfo() {\n let messages = this.getMessages();\n return {\n messages: messages,\n unicodeRequired: this.isUnicodeRequired(),\n charactersCount: messages.reduce(function(sum, sms) { return sum + sms.length }, 0)\n }\n }\n\n isUnicodeRequired() {\n let remainder = difference([...this.text], [...GSM_STANDARD_CHARS, ...GSM_EXTENDED_CHARS]);\n return remainder.length !== 0;\n }\n\n getMessages() {\n return this.splitIntoSMS(GSM_MAX_SIZE);\n }\n\n splitIntoSMS(maxSize) {\n let index = 0;\n let messages = [];\n let text = this.text;\n while(index <= this.text.length) {\n let sms = this.getSMS(text, maxSize);\n messages.push(sms);\n text = text.slice(sms.length);\n index += sms.length + 1;\n }\n return messages;\n }\n\n getSMS(text, maxSize) {\n let index = 0, currentSize = 0;\n const maxSizeWithMeta = maxSize - GSM_METADATA_SIZE;\n\n while (currentSize + this.getCharSize(text[index]) <= maxSizeWithMeta && index < text.length) {\n currentSize += this.getCharSize(text[index]);\n index += 1;\n }\n if (this.getTextSize(text.slice(index)) + currentSize <= maxSize && text.length - index <= GSM_METADATA_LENGTH) {\n index = text.length;\n }\n return text.slice(0, index);\n }\n\n getTextSize(text) {\n return [...text].map(this.getCharSize, this).reduce(function(sum, c) { return sum + c }, 0);\n }\n\n getSizeInBytes() {\n return Math.ceil(this.getTextSize(this.text) / BYTE_SIZE);\n }\n\n getCharSize(character) {\n if(!character) { return 0; }\n if (this.isUnicodeRequired()) {\n return character.length * BYTE_SIZE * 2;\n } else if (GSM_EXTENDED_CHARS.includes(character)) {\n return CHARACTER_SIZE * 2;\n } else {\n return CHARACTER_SIZE;\n }\n }\n}\n\nexport default CharacterCounter;\n","import { render, staticRenderFns } from \"./Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&\"\nimport script from \"./Feedback.vue?vue&type=script&lang=js&\"\nexport * from \"./Feedback.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93ebdc52\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('93ebdc52')) {\n api.createRecord('93ebdc52', component.options)\n } else {\n api.reload('93ebdc52', component.options)\n }\n module.hot.accept(\"./Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&\", function () {\n api.rerender('93ebdc52', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/feedback/Feedback.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Feedback.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Feedback.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&\"","import { render, staticRenderFns } from \"./JwtGenerator.vue?vue&type=template&id=1da9ba30&\"\nimport script from \"./JwtGenerator.vue?vue&type=script&lang=js&\"\nexport * from \"./JwtGenerator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1da9ba30')) {\n api.createRecord('1da9ba30', component.options)\n } else {\n api.reload('1da9ba30', component.options)\n }\n module.hot.accept(\"./JwtGenerator.vue?vue&type=template&id=1da9ba30&\", function () {\n api.rerender('1da9ba30', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JwtGenerator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JwtGenerator.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JwtGenerator.vue?vue&type=template&id=1da9ba30&\"","import { render, staticRenderFns } from \"./NDPArticle.vue?vue&type=template&id=71992deb&\"\nimport script from \"./NDPArticle.vue?vue&type=script&lang=js&\"\nexport * from \"./NDPArticle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('71992deb')) {\n api.createRecord('71992deb', component.options)\n } else {\n api.reload('71992deb', component.options)\n }\n module.hot.accept(\"./NDPArticle.vue?vue&type=template&id=71992deb&\", function () {\n api.rerender('71992deb', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/search/NDPArticle.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NDPArticle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NDPArticle.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NDPArticle.vue?vue&type=template&id=71992deb&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=4abd9ef7&scoped=true&\"\nimport script from \"./Search.vue?vue&type=script&lang=js&\"\nexport * from \"./Search.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4abd9ef7\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4abd9ef7')) {\n api.createRecord('4abd9ef7', component.options)\n } else {\n api.reload('4abd9ef7', component.options)\n }\n module.hot.accept(\"./Search.vue?vue&type=template&id=4abd9ef7&scoped=true&\", function () {\n api.rerender('4abd9ef7', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/search/Search.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=template&id=4abd9ef7&scoped=true&\"","import { render, staticRenderFns } from \"./ZendeskArticle.vue?vue&type=template&id=198076e9&\"\nimport script from \"./ZendeskArticle.vue?vue&type=script&lang=js&\"\nexport * from \"./ZendeskArticle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/bgreenberg2/Documents/dev/station/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('198076e9')) {\n api.createRecord('198076e9', component.options)\n } else {\n api.reload('198076e9', component.options)\n }\n module.hot.accept(\"./ZendeskArticle.vue?vue&type=template&id=198076e9&\", function () {\n api.rerender('198076e9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"app/webpacker/javascript/components/search/ZendeskArticle.vue\"\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskArticle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskArticle.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZendeskArticle.vue?vue&type=template&id=198076e9&\"","export default class Format {\n constructor() {\n this.formatSelector = $('.js-format-selector')[0]\n if (this.formatSelector) {\n this.formatChanged(this.formatSelector.value, false)\n $(this.formatSelector).change((event) => this.formatChanged(event.target.value))\n\n this.restoreFormat()\n }\n }\n\n formatChanged(format, persist = true) {\n $('.js-format').hide()\n $(`.js-format[data-format='${format}']`).show()\n\n if (persist) {\n this.persistFormat(format)\n }\n }\n\n persistFormat(format) {\n if (window.localStorage) {\n window.localStorage.setItem('format', format)\n }\n }\n\n restoreFormat() {\n if (window.localStorage) {\n const format = window.localStorage.getItem('format')\n if (format) {\n $(this.formatSelector).val(format)\n this.formatChanged(format, false)\n }\n }\n }\n}\n","import 'whatwg-fetch'\n\nexport default () => {\n $('[data-github]').each((index, element) => {\n let repo = $(element).data('github');\n\n fetch('https://api.github.com/repos/' + repo)\n .then(function (response) {\n return response.json();\n })\n .then((response) => {\n $(element).find('[data-forks]').text(response.forks);\n $(element).find('[data-stars]').text(response.stargazers_count);\n });\n });\n}\n","import Rails from '@rails/ujs';\n\nexport default class LocaleSwitcher {\n constructor() {\n this.switcher = document.getElementById('locale-switcher');\n if (this.switcher) {\n this.setupEventListeners();\n }\n }\n\n setupEventListeners() {\n const self = this;\n\n window.addEventListener('load', function() {\n let dropdownBtn = self.switcher.querySelector('.Nxd-locale');\n let dropdownOptions = self.switcher.querySelectorAll('.Vlt-dropdown__link');\n let pannel = self.switcher.querySelector('.Vlt-dropdown__panel');\n\n dropdownOptions.forEach(function(option) {\n option.addEventListener(\"click\", function(event) {\n event.stopPropagation();\n\n dropdownBtn.innerHTML = option.innerHTML;\n\n pannel.hidden = true;\n self.localeChangeHandler(option.dataset.locale);\n });\n });\n });\n }\n\n localeChangeHandler(locale) {\n Rails.ajax({\n url: \"/set_user_locale\",\n type: \"PUT\",\n dataType: 'json',\n data: `preferred_locale=${locale}`\n })\n }\n}\n","export default () => {\n const noticeCloseComplete = function(notice) {\n notice.remove()\n removeNoticesIfEmpty()\n }\n\n const noticeKey = function (notice) {\n const id = notice.data('notice-id')\n return `notice-dismissed(id:${id})`\n }\n\n const isDismissible = function (notice) {\n return notice.data('notice-dismissible')\n }\n\n const bootstrap = function() {\n $(document).on('click', '.notice a[data-close]', function(event) {\n const notice = $(this).parents('.notice')\n localStorage.setItem(noticeKey(notice), true)\n\n TweenLite.to(notice, 0.6, {\n scale: 0,\n height: 0,\n transformOrigin: \"center top\",\n ease: Power2.easeIn,\n onComplete: () => noticeCloseComplete(notice)\n });\n });\n }\n\n const removeNoticesIfEmpty = function() {\n if ($('.notices .notice').length === 0) {\n $('.notices').remove()\n }\n }\n\n const clearRead = function() {\n $('.notices .notice').each(function() {\n const notice = $(this)\n if(isDismissible(notice)) { return }\n if (localStorage.getItem(noticeKey(notice))) {\n $(this).remove()\n }\n })\n removeNoticesIfEmpty()\n }\n\n $(document).ready(function() {\n bootstrap()\n clearRead()\n });\n}\n","export default () => {\n $(document).ready(function(){\n const $body = $('.Vlt-main');\n const nav = $('.Nxd-header');\n const codeNav = $('.Nxd-api__code__header');\n\n $body.on('scroll', function(){\n var scrollTop = $body.scrollTop();\n\n //navigation\n if (scrollTop > 50) {\n nav.addClass('Nxd-scroll-minify');\n } else {\n nav.removeClass('Nxd-scroll-minify');\n }\n\n //api code\n if (scrollTop > 70 && codeNav.length > 0) {\n codeNav.addClass('Nxd-api__code__header--sticky');\n } else if(codeNav.length > 0) {\n codeNav.removeClass('Nxd-api__code__header--sticky');\n }\n });\n })\n}\n","class Menu {\n constructor(domNode, parent) {\n this.domNode = domNode;\n this.parent = parent;\n this.items = [];\n\n this.firstItem = null;\n this.lastItem = null;\n\n this.buildItems();\n }\n\n buildItems() {\n Array.from(this.domNode.children).forEach((child) => {\n if (child.children.length > 0) {\n this.items.push(new SidenavItem(child.querySelector('a.Vlt-sidemenu__trigger, a.Vlt-sidemenu__link, .Vlt-sidemenu__title'), this.parent));\n }\n });\n this.firstItem = this.items[0];\n this.lastItem = this.items[this.items.length - 1];\n }\n\n setFocusToNextItem(current) {\n let node = null;\n\n if (current === this.lastItem) {\n node = this.firstItem.domNode;\n }\n else {\n node = this.items[this.items.indexOf(current) + 1].domNode;\n }\n node.tabIndex = 0;\n node.focus();\n }\n\n setFocusToPreviousItem(item) {\n if (item === this.firstItem) {\n this.lastItem.domNode.focus();\n }\n else {\n this.items[this.items.indexOf(item) - 1].domNode.focus();\n }\n }\n\n setFocusToFirstItem() {\n this.firstItem.domNode.focus();\n }\n}\n\nclass SidenavItem {\n constructor(domNode, parent) {\n this.domNode = domNode;\n this.parent = parent;\n this.menu = null;\n\n this.buildItem();\n\n this.keyCode = Object.freeze({\n 'ENTER': 13,\n 'LEFT': 37,\n 'UP': 38,\n 'RIGHT': 39,\n 'DOWN': 40\n });\n this.domNode.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.domNode.addEventListener('click', this.handleClick.bind(this));\n }\n\n buildItem() {\n if (this.isMenu()) {\n this.menu = new Menu(this.domNode.nextElementSibling, this);\n }\n }\n\n isMenu() {\n return this.domNode.nextElementSibling && this.domNode.nextElementSibling.tagName === 'UL';\n }\n\n handleKeyDown(event) {\n let target = event.currentTarget;\n let key = event.key;\n let bubbleUp = false;\n\n switch (event.keyCode) {\n case this.keyCode.ENTER:\n if (this.menu) {\n this.toggleElement(true);\n bubbleUp = true;\n }\n break;\n\n case this.keyCode.DOWN:\n this.parent.setFocusToNextItem(this);\n bubbleUp = true;\n break;\n\n case this.keyCode.LEFT:\n this.parent.toggleElement(true);\n bubbleUp = true;\n break;\n\n case this.keyCode.RIGHT:\n if (this.menu) {\n this.toggleElement(true);\n }\n bubbleUp = true;\n break;\n\n case this.keyCode.UP:\n this.parent.setFocusToPreviousItem(this);\n bubbleUp = true;\n break;\n }\n\n if (bubbleUp) {\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n handleClick(event) {\n if (this.menu) {\n event.preventDefault();\n event.stopPropagation();\n this.toggleElement();\n }\n }\n\n toggleElement(focus) {\n if (this.domNode.classList.contains('Vlt-sidemenu__trigger_active')) {\n this.domNode.setAttribute('aria-expanded', 'false');\n this.domNode.classList.remove('Vlt-sidemenu__trigger_active');\n this.domNode.tabIndex = -1;\n if (focus) { this.domNode.focus(); }\n } else {\n this.domNode.tabIndex = 0;\n this.domNode.setAttribute('aria-expanded', 'true');\n this.domNode.classList.add('Vlt-sidemenu__trigger_active');\n this.domNode.dispatchEvent(new CustomEvent('menuClosed', { bubbles: true }));\n if (focus) { this.menu.setFocusToFirstItem(); }\n }\n }\n\n setFocusToPreviousLevel() {\n if (this.menu) {\n this.domNode.setAttribute('aria-expanded', 'false');\n this.domNode.classList.remove('Vlt-sidemenu__trigger_active');\n this.domNode.tabIndex = -1;\n this.domNode.focus();\n } else {\n this.parent.setFocusToPreviousItem(this);\n }\n }\n\n setFocusToNextItem(current) {\n if (this.menu) {\n this.menu.setFocusToNextItem(current);\n }\n }\n\n setFocusToPreviousItem(current) {\n if (this.menu) {\n this.menu.setFocusToPreviousItem(current);\n }\n }\n}\n\nexport default class Sidenav {\n constructor(domNode) {\n this.domNode = document.getElementById('sidenav');\n this.mobileTrigger = document.getElementById('Vlt-sidenav-mobile-trigger');\n this.container = document.getElementById('Vlt-sidenav');\n\n if (this.domNode) {\n this.buildMenu();\n this.setActiveItem();\n this.expandActiveMenu();\n this.setupListeners();\n } else {\n this.mobileTrigger.style.display = 'none';\n }\n }\n\n setupListeners() {\n this.domNode.addEventListener('menuClosed', this.closeOpenedMenu.bind(this));\n this.mobileTrigger.addEventListener('click', this.mobileHandler.bind(this));\n this.mobileTrigger.addEventListener('touchstart', this.mobileHandler.bind(this));\n\n document.querySelector('body').addEventListener('click', this.closeMobileMenu.bind(this));\n document.querySelector('body').addEventListener('touchstart', this.closeMobileMenu.bind(this));\n }\n\n buildMenu() {\n this.menu = new Menu(this.domNode.firstElementChild, this);\n }\n\n setFocusToNextItem(current) {\n this.menu.setFocusToNextItem(current);\n }\n\n setFocusToPreviousItem(current) {\n this.menu.setFocusToPreviousItem(current);\n }\n\n // No-op\n toggleElement() {}\n\n setActiveItem() {\n let url = document.querySelector('nav.sidenav').dataset.active;\n let activeItemSelector = `.Vlt-sidemenu__link[href=\"${url}\"]`;\n let activeItem = document.querySelector(activeItemSelector);\n if (activeItem) {\n activeItem.classList.add('Vlt-sidemenu__link_active');\n }\n }\n\n expandActiveMenu() {\n const activeItem = this.domNode.querySelector('.Vlt-sidemenu__link_active');\n if (activeItem) {\n let activeTrigger = activeItem.closest('ul').previousElementSibling;\n\n while (activeTrigger) {\n activeTrigger.classList.add('Vlt-sidemenu__trigger_active', 'Vlt-sidemenu__trigger_current');\n activeTrigger = activeTrigger.parentNode.closest('ul').previousElementSibling;\n }\n }\n }\n\n closeOpenedMenu(event) {\n Array.from(this.domNode.querySelectorAll('.Vlt-sidemenu__trigger_active')).forEach((subMenu) => {\n if (subMenu !== event.target && !subMenu.parentNode.contains(event.target)) {\n subMenu.classList.remove('Vlt-sidemenu__trigger_active');\n }\n });\n }\n\n mobileHandler(event) {\n if (!this.container.classList.contains('Vlt-sidenav_visible')) {\n this.container.classList.add('Vlt-sidenav_visible');\n document.body.classList.add('Vlt-body--mobile-menu-open');\n event.stopPropagation();\n }\n }\n\n closeMobileMenu(event) {\n if (!this.domNode.contains(event.target)) {\n this.container.classList.remove('Vlt-sidenav_visible');\n document.body.classList.remove('Vlt-body--mobile-menu-open');\n }\n }\n}\n","import Volta from \"../volta/volta.js\"\n\nexport default () => {\n $(document).ready(function() {\n $(document).on('ajax:success', '#spotlight-form', function(event, response) {\n Volta.flash.show('success');\n event.target.reset();\n }).on('ajax:error', '#spotlight-form', function(event) {\n Volta.flash.show('error');\n });\n });\n}\n","/*\n Copyright (C) Federico Zivolo 2018\n Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).\n */(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b(require('popper.js')):'function'==typeof define&&define.amd?define(['popper.js'],b):a.Tooltip=b(a.Popper)})(this,function(a){'use strict';function b(a){return a&&'[object Function]'==={}.toString.call(a)}a=a&&a.hasOwnProperty('default')?a['default']:a;var c=function(a,b){if(!(a instanceof b))throw new TypeError('Cannot call a class as a function')},d=function(){function a(a,b){for(var c,d=0;d
',trigger:'hover focus',offset:0},g=function(){function g(a,b){c(this,g),h.call(this),b=e({},f,b),a.jquery&&(a=a[0]),this.reference=a,this.options=b;var d='string'==typeof b.trigger?b.trigger.split(' ').filter(function(a){return-1!==['click','hover','focus'].indexOf(a)}):[];this._isOpen=!1,this._popperOptions={},this._setEventListeners(a,d,b)}return d(g,[{key:'_create',value:function(a,b,c,d){var e=window.document.createElement('div');e.innerHTML=b.trim();var f=e.childNodes[0];f.id='tooltip_'+Math.random().toString(36).substr(2,10),f.setAttribute('aria-hidden','false');var g=e.querySelector(this.innerSelector);return this._addTitleContent(a,c,d,g),f}},{key:'_addTitleContent',value:function(a,c,d,e){if(1===c.nodeType||11===c.nodeType)d&&e.appendChild(c);else if(b(c)){var f=c.call(a);d?e.innerHTML=f:e.textContent=f}else d?e.innerHTML=c:e.textContent=c}},{key:'_show',value:function(b,c){if(this._isOpen&&!this._isOpening)return this;if(this._isOpen=!0,this._tooltipNode)return this._tooltipNode.style.display='',this._tooltipNode.setAttribute('aria-hidden','false'),this.popperInstance.update(),this;var d=b.getAttribute('title')||c.title;if(!d)return this;var f=this._create(b,c.template,d,c.html);b.setAttribute('aria-describedby',f.id);var g=this._findContainer(c.container,b);return this._append(f,g),this._popperOptions=e({},c.popperOptions,{placement:c.placement}),this._popperOptions.modifiers=e({},this._popperOptions.modifiers,{arrow:{element:this.arrowSelector},offset:{offset:c.offset}}),c.boundariesElement&&(this._popperOptions.modifiers.preventOverflow={boundariesElement:c.boundariesElement}),this.popperInstance=new a(b,f,this._popperOptions),this._tooltipNode=f,this}},{key:'_hide',value:function(){return this._isOpen?(this._isOpen=!1,this._tooltipNode.style.display='none',this._tooltipNode.setAttribute('aria-hidden','true'),this):this}},{key:'_dispose',value:function(){var a=this;return this._events.forEach(function(b){var c=b.func,d=b.event;a.reference.removeEventListener(d,c)}),this._events=[],this._tooltipNode&&(this._hide(),this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy&&(this._tooltipNode.parentNode.removeChild(this._tooltipNode),this._tooltipNode=null)),this}},{key:'_findContainer',value:function(a,b){return'string'==typeof a?a=window.document.querySelector(a):!1===a&&(a=b.parentNode),a}},{key:'_append',value:function(a,b){b.appendChild(a)}},{key:'_setEventListeners',value:function(a,b,c){var d=this,e=[],f=[];b.forEach(function(a){'hover'===a?(e.push('mouseenter'),f.push('mouseleave')):'focus'===a?(e.push('focus'),f.push('blur')):'click'===a?(e.push('click'),f.push('click')):void 0}),e.forEach(function(b){var e=function(b){!0===d._isOpening||(b.usedByTooltip=!0,d._scheduleShow(a,c.delay,c,b))};d._events.push({event:b,func:e}),a.addEventListener(b,e)}),f.forEach(function(b){var e=function(b){!0===b.usedByTooltip||d._scheduleHide(a,c.delay,c,b)};d._events.push({event:b,func:e}),a.addEventListener(b,e)})}},{key:'_scheduleShow',value:function(a,b,c){var d=this;this._isOpening=!0;var e=b&&b.show||b||0;this._showTimeout=window.setTimeout(function(){return d._show(a,c)},e)}},{key:'_scheduleHide',value:function(a,b,c,d){var e=this;this._isOpening=!1;var f=b&&b.hide||b||0;window.setTimeout(function(){if((window.clearTimeout(e._showTimeout),!1!==e._isOpen)&&document.body.contains(e._tooltipNode)){if('mouseleave'===d.type){var f=e._setTooltipNodeEvent(d,a,b,c);if(f)return}e._hide(a,c)}},f)}},{key:'_updateTitleContent',value:function(a){if('undefined'==typeof this._tooltipNode)return void('undefined'!=typeof this.options.title&&(this.options.title=a));var b=this._tooltipNode.parentNode.querySelector(this.innerSelector);this._clearTitleContent(b,this.options.html,this.reference.getAttribute('title')||this.options.title),this._addTitleContent(this.reference,a,this.options.html,b),this.options.title=a,this.popperInstance.update()}},{key:'_clearTitleContent',value:function(a,b,c){1===c.nodeType||11===c.nodeType?b&&a.removeChild(c):b?a.innerHTML='':a.textContent=''}}]),g}(),h=function(){var a=this;this.show=function(){return a._show(a.reference,a.options)},this.hide=function(){return a._hide()},this.dispose=function(){return a._dispose()},this.toggle=function(){return a._isOpen?a.hide():a.show()},this.updateTitleContent=function(b){return a._updateTitleContent(b)},this.arrowSelector='.tooltip-arrow, .tooltip__arrow',this.innerSelector='.tooltip-inner, .tooltip__inner',this._events=[],this._setTooltipNodeEvent=function(b,c,d,e){var f=b.relatedreference||b.toElement||b.relatedTarget;return!!a._tooltipNode.contains(f)&&(a._tooltipNode.addEventListener(b.type,function d(f){var g=f.relatedreference||f.toElement||f.relatedTarget;a._tooltipNode.removeEventListener(b.type,d),c.contains(g)||a._scheduleHide(c,e.delay,e,f)}),!0)}};return g});\n//# sourceMappingURL=tooltip.min.js.map\n","import Tooltip from './tooltip.min.js';\n\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Core of volta\n */\n'use strict';\nvar Volta;\n\nVolta = function (){\n\treturn {\n\t\t_closest: closest,\n\t\t_hasClass: hasClass,\n\t\tinit: initialise,\n\t\t_isMobile: isMobileDevice,\n\t\t_getElementSiblings: getElementSiblings,\n\t\t_getFunction: getFunctionFromString,\n\t\t_removeFromArr: removeFromArr\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Finds the first ancestor of the given element, matching a specific selector.\n\t *\t@param {HTMLElement} element Starting element\n\t *\t@param {string} selector Selector to find (can be .class, #id, div...)\n\t *\t@param {string} stopSelector Selector to stop searching on (can be .class, #id, div...) \n\t * @returns {HTMLElement|null} The matched element or null if no element is found\n\t */\n\tfunction closest(element, selector, stopSelector) {\n\t\tvar match = null;\n\t\twhile (element) {\n\t\tif (element.matches(selector)) {\n\t \t\tmatch = element;\n\t \t\tbreak\n\t\t} else if (stopSelector && element.matches(stopSelector)) {\n\t \t\tbreak\n\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t *\t@private\n\t *\t@description Given the name of a function returns the function itself\n\t *\t@param {string} callbackFnName The function name e.g. \"testFunction\" OR \"test.function\" \n\t * @returns {Function} \n\t */\n\tfunction getFunctionFromString(fnName) {\n\t var fn;\n\t\t\n\t\tif(fnName) {\n\t\t\tvar fnNames = fnName.split(\".\");\n\t\t\tvar fn = window;\n\t\t\tfor(var i = 0; i < fnNames.length; i++) {\n\t\t\t\tfn = fn[fnNames[i]];\n\t\t\t}\n\t\t}\n\n\t\treturn fn;\n\t}\n\n\t/** \n\t *\t@private\n\t *\t@description Get all siblings of an element\n\t *\t@param {HTMLElement} el \n\t */\n\tfunction getElementSiblings(element) {\n\t var siblings = [];\n\t element = element.parentNode.firstChild;\n\t do { \n\t \tif(element.nodeType === 1) {\n\t \t\tsiblings.push(element); \n\t \t}\n\t } while (element = element.nextSibling);\n\t return siblings;\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Check if the given element has a particular class\n\t *\t@param {HTMLElement} el Element to evaluate\n\t *\t@param {string} className Class name to check for\n\t * @returns {boolean} True if the element has the class or false if not\n\t */\n\tfunction hasClass(element, className) {\n\t\tif(!element) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\" \" + element.className + \" \").replace(/[\\n\\t]/g, \" \").indexOf(\" \" + className+ \" \") > -1;\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Is the current device a mobile\n\t * @returns {boolean} True if mobile false if not\n\t */\n\tfunction isMobileDevice() {\n\t\tvar isMobile = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i;\n\n\t\treturn isMobile.test(navigator.userAgent);\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Initailise volta with required components\n\t *\t@param {Array} components Array of strings, names of the components to initialise\n\t */ \n\tfunction initialise(components) {\n\t\tpolyfilsForIE11();\n\t\t\n\t\tif(components.indexOf('accordion') !== -1){\n\t\t\tif(Volta.accordion) {\n\t\t\t\tVolta.accordion.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.accordion.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('callout') !== -1){\n\t\t\tif(Volta.callout) {\n\t\t\t\tVolta.callout.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.callout.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('badge') !== -1){\n\t\t\tif(Volta.badge) {\n\t\t\t\tVolta.badge.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.badge.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('dropdown') !== -1){\n\t\t\tif(Volta.dropdown) {\n\t\t\t\tVolta.dropdown.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.dropdown.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('flash') !== -1){\n\t\t\tif(Volta.flash) {\n\t\t\t\tVolta.flash.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.dropdown.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('menu') !== -1){\n\t\t\tif(Volta.menu) {\n\t\t\t\tVolta.menu.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.menu.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('menuCollapse') !== -1){\n\t\t\tif(Volta.menuCollapse) {\n\t\t\t\tVolta.menuCollapse.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.menuCollapse.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('modal') !== -1){\n\t\t\tif(Volta.modal) {\n\t\t\t\tVolta.modal.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.modal.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('tab') !== -1){\n\t\t\tif(Volta.tab) {\n\t\t\t\tVolta.tab.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.tab.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('table') !== -1){\n\t\t\tif(Volta.table) {\n\t\t\t\tVolta.table.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.table.js component missing')\n\t\t\t}\n\t\t}\n\t\tif(components.indexOf('tooltip') !== -1){\n\t\t\tif(Volta.tooltip) {\n\t\t\t\tVolta.tooltip.init();\n\t\t\t} else {\n\t\t\t\tconsole.warn('Volta: volta.tooltip.js component missing')\n\t\t\t}\n\t\t}\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Remove an element from an array\n\t * @param {Array} arr The array containing the element\n\t * @param {Element} element The element to remove\n\t * @returns {Array} The array minus the element\n\t */\n\tfunction removeFromArr(arr, element) {\n\t\tvar index = arr.indexOf(element);\n \t\tarr.splice(index, 1);\n \t\treturn arr;\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t */ \n\tfunction polyfilsForIE11() {\n\t\tif (window.NodeList && !NodeList.prototype.forEach) {\n\t\t NodeList.prototype.forEach = function (callback, thisArg) {\n\t\t thisArg = thisArg || window;\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t callback.call(thisArg, this[i], i, this);\n\t\t }\n\t\t };\n\t\t}\n\t\t\n\t\tif (!Element.prototype.matches) {\n\t\t Element.prototype.matches = \n\t\t Element.prototype.matchesSelector || \n\t\t Element.prototype.mozMatchesSelector ||\n\t\t Element.prototype.msMatchesSelector || \n\t\t Element.prototype.oMatchesSelector || \n\t\t Element.prototype.webkitMatchesSelector ||\n\t\t function(s) {\n\t\t var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n\t\t i = matches.length;\n\t\t while (--i >= 0 && matches.item(i) !== this) {}\n\t\t return i > -1; \n\t\t };\n\t\t}\n\t}\n}();\n\n/**\n * Copyright (c) 2001-present, Vonage.\n *\n * Accordions (requires core)\n */\n\n'use strict';\n\nVolta.accordion = function () {\n\tvar _class = {\n\t\tstandard: {\n\t\t\tcontainer: 'Vlt-accordion',\n\t\t\tcontainerGroup: 'Vlt-accordion--group',\n\t\t\ttrigger: 'Vlt-accordion__trigger',\n\t\t\ttriggerActive: 'Vlt-accordion__trigger_active',\n\t\t\tcontent: 'Vlt-accordion__content',\n\t\t\tcontentOpen: 'Vlt-accordion__content_open',\n\t\t\tcontentOpening: 'Vlt-accordion__content_opening',\n\t\t\tcontentClosing: 'Vlt-accordion__content_closing',\n\t\t},\n\t\tjs: {\n\t\t\tcontent: 'Vlt-js-accordion__content',\n\t\t\tcontentOpen: 'Vlt-js-accordion__content_open',\n\t\t\tcontentOpening: 'Vlt-js-accordion__content_opening',\n\t\t\tcontentClosing: 'Vlt-js-accordion__content_closing',\n\t\t\ttrigger: 'Vlt-js-accordion__trigger',\n\t\t\ttriggerActive: 'Vlt-js-accordion__trigger_active'\n\t\t}\n\t}\n\n\tfunction Accordion() {}\n\n\tAccordion.prototype = {\n\t\tinit: function(element, suppressClickHandler, triggerElem) {\n\t\t\tif(this.isStandard) {\n\t\t\t\tthis._initStandard(element, suppressClickHandler);\n\t\t\t} else {\n\t\t\t\tthis._initJs(element, suppressClickHandler, triggerElem);\n\t\t\t}\n\t\t},\n\t\t_initStandard: function(element, suppressClickHandler) {\n\t\t\tvar self = this;\n\n\t\t\tif(!suppressClickHandler) {\n\t\t\t\telement.querySelectorAll('.' + _class.standard.trigger).forEach(function(trigger) {\n\t\t\t\t\tvar parent = Volta._closest(trigger, '.' + _class.standard.container, _class.standard.container);\n\n\t\t\t\t\tif(parent && parent == element) {\n\t\t\t\t\t\ttrigger.addEventListener('click', function(){\n\t\t\t\t\t\t\tself.toggle(trigger);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t_initJs: function(element, suppressClickHandler, triggerElem) {\n\t\t\tthis._content = element;\n\n\t\t\tif(triggerElem) {\n\t\t\t\tthis.trigger = triggerElem;\n\t\t\t} else if(this._content.dataset.trigger) {\n\t\t\t\tvar triggerId = this._content.dataset.trigger;\n\t\t\t\tthis.trigger = document.querySelector('#' + triggerId);\n\t\t\t} else {\n\t\t\t\tconsole.warn(\"Volta: js accordion trigger missing\");\n\t\t\t}\n\n\t\t\tvar self = this;\n\t\t\tif(!suppressClickHandler && this.trigger) {\n\t\t\t\tthis.trigger.addEventListener('click', function(){\n\t\t\t\t\tself.toggle();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tclose: function(trigger) {\n\t\t\tvar panel = this._content || trigger.nextElementSibling;\n\t\t\tvar trigger = this.trigger || trigger;\n\t\t\tvar classes = this.trigger ? _class.js : _class.standard;\n\n\t\t\ttrigger.classList.remove(classes.triggerActive);\n\t\t\tpanel.classList.add(classes.contentClosing);\n\n\t\t\tpanel.style.height = window.getComputedStyle(panel).height;\n\t\t\tpanel.offsetHeight; // force repaint\n\t\t\tpanel.style.height = '0px';\n\t\t\tpanel.classList.remove(classes.contentOpen);\n\n\t\t\tvar self = this;\n\t\t\tpanel.addEventListener('transitionend', function closingTransitionEndEvent(event) {\n\t\t\t\tif (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentClosing)) {\n\t\t\t\t\tpanel.classList.remove(classes.contentClosing);\n\t\t\t\t\tpanel.style.height = '0px';\n\t\t\t\t\tpanel.removeEventListener('transitionend', closingTransitionEndEvent, false);\n\n\t\t\t\t\tif(self.isGroup && self._isTriggerActive(trigger, true)){\n\t\t\t\t\t\tself._activeGroupTrigger = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, { passive: true, once: true });\n\t\t},\n\t\tisOpening: false,\n\t\t_activeGroupTrigger: undefined,\n\t\t_isTriggerActive: function(trigger, match) {\n\t\t\treturn (this.isGroup && this._activeGroupTrigger && (!match || this._activeGroupTrigger === trigger)) || Volta._hasClass(trigger, _class.standard.triggerActive);\n\t\t},\n\t\topen: function(trigger) {\n\t\t\tif(!this.trigger) {\n\t\t\t\tif(this._isTriggerActive(trigger, false)) {\n\t\t\t\tthis.close(this._activeGroupTrigger || trigger);\n\t\t\t\t}\n\t\t\t\tif(this.isGroup) {\n\t\t\t\t\tthis._activeGroupTrigger = trigger;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar trig = this.trigger || trigger;\n\t\t\tvar classes = this.trigger ? _class.js : _class.standard;\n\t\t\tvar panel = this._content || trig.nextElementSibling;\n\n\t\t\tthis.isOpening = true;\n\n\t\t\ttrig.classList.add(classes.triggerActive);\n\t\t\tpanel.classList.add(classes.contentOpening);\n\n\t\t\tvar startHeight = panel.style.height;\n\t\t\tpanel.style.height = 'auto';\n\t\t\tvar endHeight = window.getComputedStyle(panel).height;\n\t\t\tpanel.style.height = startHeight;\n\t\t\tpanel.offsetHeight; // force repaint\n\t\t\tpanel.style.height = endHeight;\n\n\t\t\tvar self = this;\n\t\t\tpanel.addEventListener('transitionend', function openingTransitionEndEvent(event) {\n\t\t\t\tif (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentOpening)) {\n\t\t\t\t\tpanel.style.height = 'auto';\n\t\t\t\t\tpanel.classList.remove(classes.contentOpening);\n\t\t\t\t\tpanel.classList.add(classes.contentOpen);\n\t\t\t\t\tpanel.removeEventListener('transitionend', openingTransitionEndEvent, false);\n\t\t\t\t\tself.isOpening = false;\n\t\t\t\t}\n\t\t\t}, { passive: true, once: true });\n\t\t},\n\t\ttoggle: function(trigger) {\n\t\t\tif(this.isOpening) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif((this.trigger && Volta._hasClass(this._content, _class.js.contentOpen))\n\t\t\t\t|| (!this.trigger && this._isTriggerActive(trigger, true))) {\n\t\t\t\tthis.close(trigger);\n\t\t\t} else {\n\t\t\t\tthis.open(trigger);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcreate: create,\n\t\tinit: initialise\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Create an individual accordion object\n\t *\t@param {Element|string} elementOrId Reference to the accordion content element or the id\n\t *\t@param {Boolean} suppressClickHandler Whether click events should be attached on creation\n\t *\t@param {Element} trigger Private required for legacy accordions\n\t *\t@param {Boolean} isGroup Private required for legacy accordions\n\t * @return {Object}\n\t */\n\tfunction create(elementOrId, suppressClickHandler, trigger, isGroup, isStandard) {\n\t\tif(!elementOrId) {\n\t\t\tconsole.warn(\"Volta: no parameter supplied to accordion.create()\");\n\t\t}\n\t\tvar accordion = Object.create(Accordion.prototype, {});\n\t\tvar element = getElement(elementOrId);\n\n\t\tObject.defineProperties(accordion, {\n\t\t\t'isStandard': {\n\t\t\t\tvalue: isStandard || Volta._hasClass(element, _class.standard.container),\n\t\t\t\twritable: false\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperties(accordion, {\n\t\t\t'isGroup': {\n\t\t\t\tvalue: isGroup,\n\t\t\t\twritable: false\n\t\t\t}\n\t\t});\n\n\t\taccordion.init(element, suppressClickHandler, trigger);\n\n\t\treturn accordion;\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Initialise all the accordions on the current screen\n\t */\n\tfunction initialise() {\n\t\t//standard\n\t\tvar standardAccordions = document.querySelectorAll('.' + _class.standard.container);\n\n\t\tif(standardAccordions.length) {\n\t\t\tstandardAccordions.forEach(function(accordion){\n\t\t\t\tcreate(accordion, false, null, Volta._hasClass(accordion, _class.standard.containerGroup), true);\n\t\t\t});\n\t\t}\n\n\t\t//js\n\t\tvar triggers = document.querySelectorAll('.' + _class.js.trigger + '[data-accordion]');\n\t\tif(triggers.length > 0) {\n\t\t\ttriggers.forEach(function(trigger) {\n\t\t\t\tvar accordionId = trigger.dataset.accordion;\n\t\t\t\tif(!accordionId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcreate(accordionId, false, trigger);\n\t\t\t});\n\t\t}\n\n\t\t//js - legacy\n\t\tvar jsAccordions = document.querySelectorAll('.' + _class.js.content + '[data-trigger]');\n\t\tif(jsAccordions.length > 0) {\n\t\t\tjsAccordions.forEach(function(jsLegacy) {\n\t\t\t\tcreate(jsLegacy);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t *\t@private\n\t */\n\tfunction getElement(elementOrId) {\n\t \tvar element;\n\n\t\tif(elementOrId.classList) {\n\t\t\telement = elementOrId;\n\t\t} else if (elementOrId.substring(0, 1) === \"#\") {\n\t\t\telement = document.querySelector(elementOrId);\n\t\t} else {\n\t\t\telement = document.querySelector('#' + elementOrId);\n\t\t}\n\n\t\treturn element;\n\t}\n}();\n\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Badges (requires core)\n */\n\n'use strict';\n\nVolta.badge = function () {\t\n\tvar _class = {\n\t\tbadge: 'Vlt-badge',\n\t\tdismiss: 'Vlt-badge__dismiss',\n\t\tdismissed: 'Vlt-badge--dismissed'\n\t}\n\n\treturn {\n\t\tdismiss: dismiss,\n\t\tinit: attachBadgeHandlers\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Attach a one time listener to dismissable badges\n\t */\n\tfunction attachBadgeHandlers() {\n\t\tdocument.querySelectorAll('.' + _class.dismiss).forEach(create);\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Create a badge\n\t *\t@param {HTMLElement} badge\n\t */\n\tfunction create(badgeOrDismiss) {\n\t\tvar badge, badgeDismiss;\n\n\t\tif(Volta._hasClass(badgeOrDismiss, _class.badge)) {\n\t\t\tbadge = badgeOrDismiss;\n\t\t\tbadgeDismiss = badge.querySelector('.' + _class.dismiss);\n\t\t} else if(Volta._hasClass(badgeOrDismiss, _class.dismiss)){\n\t\t\tbadgeDismiss = badgeOrDismiss;\n\t\t\tbadge = badgeDismiss.parentElement;\n\t\t}\n\n\t\tbadgeDismiss.addEventListener('click', function(){\n\t\t\tdismiss(badge);\n\t\t}, { once : true});\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Dismiss a badge\n\t *\t@param {HTMLElement} badge\n\t */\n\tfunction dismiss(badge) {\n\t\tbadge.classList.add(_class.dismissed);\n\n\t\tif(badge.dataset.callback) {\n\t\t\treturn Volta._getFunction(badgeWrapper.dataset.callback)();\n\t\t}\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Callouts (requires core)\n */\n\n'use strict';\n\nVolta.callout = function () {\t\n\tvar _class = {\n\t\tcallout: 'Vlt-callout',\n\t\tdismiss: 'Vlt-callout__dismiss',\n\t\tdismissed: 'Vlt-callout--dismissed'\n\t}\n\n\treturn {\n\t\tdismiss: dismiss,\n\t\tinit: attachCalloutHandlers\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Attach a one time listener to dismissable callouts\n\t */\n\tfunction attachCalloutHandlers() {\n\t\tdocument.querySelectorAll('.' + _class.dismiss).forEach(create);\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Create a callout\n\t *\t@param {HTMLElement} callout\n\t */\n\tfunction create(calloutOrDismiss) {\n\t\tvar callout, calloutDismiss;\n\n\t\tif(Volta._hasClass(calloutOrDismiss, _class.callout)) {\n\t\t\tcallout = calloutOrDismiss;\n\t\t\tcalloutDismiss = callout.querySelector('.' + _class.dismiss);\n\t\t} else if(Volta._hasClass(calloutOrDismiss, _class.dismiss)){\n\t\t\tcalloutDismiss = calloutOrDismiss;\n\t\t\tcallout = calloutDismiss.parentElement;\n\t\t}\n\n\t\tcalloutDismiss.addEventListener('click', function(){\n\t\t\tdismiss(callout);\n\t\t}, { once : true});\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Dismiss a callout\n\t *\t@param {HTMLElement} callout\n\t */\n\tfunction dismiss(callout) {\n\t\tcallout.classList.add(_class.dismissed);\n\n\t\tif(callout.dataset.callback) {\n\t\t\treturn Volta._getFunction(calloutWrapper.dataset.callback)();\n\t\t}\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\n * Dropdowns (requires core)\n */\n\n'use strict';\n\nVolta.dropdown = function () {\n\tvar _class = {\n\t\twrapper: 'Vlt-dropdown',\n\t\tblock: 'Vlt-dropdown__block',\n\t\tbtn: 'Vlt-dropdown__trigger',\n\t\tbtnLegacy: 'Vlt-dropdown__btn',\n\t\tdismissed: 'Vlt-callout--dismissed',\n\t\texpanded: 'Vlt-dropdown--expanded',\n\t\tlabel: 'Vlt-dropdown__label',\n\t\tlink: 'Vlt-dropdown__link',\n\t\tnoCloseLink: 'Vlt-dropdown__link--noclose',\n\t\tnoCloseBlock: 'Vlt-dropdown__block--noclose',\n\t\tpanel: 'Vlt-dropdown__panel',\n\t\tpanelContent: 'Vlt-dropdown__panel__content',\n\t\tselection: 'Vlt-dropdown__selection',\n\t\tswitch: 'Vlt-switch',\n\t\tswitchSlider: 'Vlt-switch__slider'\n\t}\n\n\tfunction Dropdown() {}\n\n\tDropdown.prototype = {\n\t\tinit: function(element, supressClickHandler) {\n\t\t\tthis.dropdown = element;\n\t\t\tthis.selection = this.dropdown.querySelector('.' + _class.selection);\n\t\t\tthis.isSelectionVisible = !!this.selection;\n\t\t\tthis.btn = this.dropdown.querySelector('.' + _class.btn) || this.dropdown.querySelector('.' + _class.btnLegacy);\n\t\t\tthis._suppress = supressClickHandler;\n\n\t\t\tif(!this._suppress) {\n\t\t\t\tthis._addEventListener();\n\t\t\t}\n\t\t},\n\t\t_addEventListener: function(){\n\t\t\tvar openHandler = this.open.bind(this);\n\t\t\tthis.dropdown.addEventListener('click', openHandler, { once: true })\n\t\t},\n\t\tclose: function(text) {\n\t\t\tif(text) {\n\t\t\t\tthis._setDropdownSelectionText(text);\n\t\t\t}\n\t\t\tthis.dropdown.classList.remove(_class.expanded);\n\n\t\t\tif(!this._suppress){\n\t\t\t\tthis._addEventListener();\n\t\t\t}\n\n\t\t},\n\t\t_closeEventHandler: undefined,\n\t\t_closeEvent: function(e) {\n\t\t\tvar targetIsPanel = Volta._hasClass(e.target, _class.panel);\n\t\t\tvar parentIsPanel = Volta._closest(e.target, '.' + _class.panelContent, _class.panel) !== null;\n\t\t\tvar parentLink = Volta._closest(e.target, '.' + _class.link, _class.wrapper);\n\t\t\tvar parentIsLink = parentLink && parentLink.length === 1;\n\t\t\tvar isSwitchSlider = Volta._hasClass(e.target, _class.switchSlider);\n\t\t\tvar isParentSwitch = Volta._closest(e.target,'.' + _class.switch, _class.link);\n\t\t\tvar isNoClose = Volta._hasClass(e.target, _class.noCloseLink) || Volta._hasClass(e.target, _class.noCloseBlock);\n\t\t\tvar isNoCloseParent = Volta._closest(e.target,'.' + _class.noCloseLink, _class.link) || Volta._closest(e.target,'.' + _class.noCloseBlock, _class.noCloseBlock);\n\t\t\tvar isInput = e.target instanceof HTMLInputElement;\n\n\t\t\tif(!targetIsPanel && !parentIsPanel && !parentIsLink && !isNoClose && !isInput && !isNoCloseParent) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\n\t\t\tif(isSwitchSlider || isParentSwitch || isNoClose || isInput || isNoCloseParent) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar text;\n\t\t\tif(parentIsPanel && Volta._hasClass(e.target, _class.label)) {\n\t\t\t\ttext = e.target.innerHTML;\n\t\t\t} else if (parentIsPanel) {\n\t\t\t\tvar label = e.target.querySelector('.' + _class.label);\n\t\t\t\tif(label) {\n\t\t\t\t\ttext = label.innerHTML;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.close(text);\n\n\t\t\tdocument.querySelector('body').removeEventListener('click', this._closeEventHandler );\n\t\t},\n\t\topen: function(event) {\n\t\t\tif(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tthis.dropdown.classList.add(_class.expanded);\n\n\t\t\tif(!this._suppress){\n\t\t\t\tthis._closeEventHandler = this._closeEvent.bind(this);\n\t\t\t\tdocument.querySelector('body').addEventListener('click', this._closeEventHandler );\n\t\t\t}\n\t\t},\n\t\t_setDropdownSelectionText: function(text) {\n\t\t\tif(this.isSelectionVisible) {\n\t\t\t\tthis.selection.innerText = text;\n\t\t\t} else {\n\t\t\t\tthis.btn.innerText = text;\n\t\t\t\tthis.btn.value = text;\n\t\t\t}\n\t\t},\n\t\t_suppress: false\n\t}\n\n\treturn {\n\t\tcreate: create,\n\t\tinit: attachDropdownHandlers\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Attach a listeners to dropdowns\n\t */\n\tfunction attachDropdownHandlers() {\n\t\tdocument.querySelectorAll('.' + _class.wrapper).forEach(attachHandler);\n\n\t\tfunction attachHandler(dropdown) {\n\t\t\tcreate(dropdown);\n\t\t}\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Create a dropdown element\n\t * @param {HTMLElement} element\n \t */\n\tfunction create(element){\n\t\tvar dropdown = Object.create(Dropdown.prototype, {})\n\t\tdropdown.init(element);\n\t\treturn dropdown;\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Tabs (requires core)\n */\n\n'use strict';\n\nVolta.flash = function () {\t\n\tvar _class = {\n\t\tflash: 'Vlt-flash',\n\t\ttrigger: 'Vlt-flash-trigger',\n\t\tvisible: 'Vlt-flash_visible'\n\t}\n\n\tvar gap = 20,\n\t\topenBottomFlashes = [],\n\t\topenTopFlashes = [],\n\t\ttimeouts =[];\n\n\treturn {\n\t\tcloseAll: closeAll,\n\t\tinit: attachFlashHandlers,\n\t\tshow: show\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Attach a click listener to each flash's trigger on the screen\n\t * @param {HTMLElement} element \n\t */\n\tfunction attachFlashHandlers() {\n\t\tvar triggers = document.querySelectorAll('.' + _class.trigger);\n\n\t\tif(triggers.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\ttriggers.forEach(attachHandler);\n\t\t\n\t\tfunction attachHandler(trigger) {\n\t\t\ttrigger.addEventListener('click', function() {\n\t\t\t\tif(trigger.dataset.flash) {\n\t\t\t\t\tvar flash = document.querySelector('#' + trigger.dataset.flash);\n\t\t\t\t\tshow(flash);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(\"Volta: flash trigger is missing data-flash attribute\");\n\t\t\t\t}\t\t\t\t\n\t\t\t});\n\t\t}\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Close all open flashes\n\t */\n\tfunction closeAll() {\t\t\n\t\tif(timeouts.length > 0) {\n\t\t\ttimeouts.forEach(function(timeout){\n\t\t\t\tclearTimeout(timeout);\n\t\t\t});\n\t\t}\n\t\tif(openBottomFlashes.length > 0) {\n\t\t\tclearQueue(openBottomFlashes);\n\t\t}\n\t\tif(openTopFlashes.length > 0) {\n\t\t\tclearQueue(openTopFlashes);\n\t\t}\n\t\t\n\t\ttimeouts = [];\n\t\topenBottomFlashes = [];\n\t\topenTopFlashes = [];\n\n\t\tfunction clearQueue(elementArr) {\n\t\t\telementArr.forEach(function(element){\n\t\t\t\t_hide(element);\n\t\t\t});\t\n\t\t\telementArr = [];\n\t\t}\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Show the flash\n\t * @param {HTMLElement} element \n\t */\n\tfunction show(elementOrId, time) {\n\t\tif(!elementOrId || elementOrId.length == 0) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\ttime = time || 5000;\n\n\t\tvar element = !elementOrId.classList ? document.querySelector('#' + elementOrId) : elementOrId;\n\t\tvar position = Volta._hasClass(element, 'Vlt-flash--bottom') ? 'bottom' : 'top';\n\t\tvar arr = position === 'bottom' ? openBottomFlashes : openTopFlashes;\n\n\t\tif(arr.indexOf(element) !== -1) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t_setFlashPosition(arr, element, position);\n\n\t\tarr.push(element);\n\t\t\t\t\n\t\telement.classList.add(_class.visible);\n\t\t\n\t\tvar hideTimeout = setTimeout(function(){\n\t\t\t_hide(element, true);\n\t\t\tVolta._removeFromArr(timeouts, hideTimeout);\n\t\t}, time);\n\n\t\ttimeouts.push(hideTimeout);\n\t}\n\n\t/** \n\t *\t@private\n\t *\t@description Hide the flash\n\t * @param {HTMLElement} element \n\t */\n\tfunction _hide(element, shouldRemove) {\n\t\tvar position = Volta._hasClass(element, 'Vlt-flash--bottom') ? 'bottom' : 'top';\n\t\tvar arr = position === 'bottom' ? openBottomFlashes : openTopFlashes;\n\t\t\n\t\tif(shouldRemove) {\n\t\t\tVolta._removeFromArr(arr, element);\n\t\t}\n\n\t\t_updateFlashPositions(arr, element, position);\n\n\t\telement.style[position] = '';\n\t\telement.classList.remove(_class.visible);\n\t}\n\n\t/** \n\t *\t@private\n\t *\t@description Set the position of the flash\n\t * @param {HTMLElement} element \n\t */\n\tfunction _setFlashPosition(arr, element, position) {\n\t\tvar positionPx = arr.reduce(function(px, flash) {\n\t\t\treturn px + flash.clientHeight;\t\t\t\t\n\t\t}, 0);\n\t\tif(positionPx > 0) {\n\t\t\telement.style[position] = (gap * arr.length) + gap + positionPx + 'px';\n\t\t}\n\t}\n\n\t/** \n\t *\t@private\n\t *\t@description Update the position of all the visible flashes\n\t * @param {Array} arr\n\t * @param {HTMLElement} element \n\t * @param {string} position \n\t */\n\tfunction _updateFlashPositions(arr, element, position){\n\t\tif(arr.length > 0) {\n\t\t\tvar elementHeight = element.clientHeight;\n\n\t\t\tarr.forEach(function(flash) {\n\t\t\t\tvar newPosition;\n\n\t\t\t\tif(position === 'bottom') {\n\t\t\t\t\tnewPosition = Number(flash.style.bottom.substring(0, flash.style.bottom.length - 2));\n\t\t\t\t} else {\n\t\t\t\t\tnewPosition = flash.getBoundingClientRect()[position];\t\t\t\t\n\t\t\t\t}\n\t\t\t\tflash.style[position] = newPosition -elementHeight - gap + \"px\";\t\t\n\t\t\t});\n\t\t}\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\n * Modals (requires core)\n */\n\n'use strict';\n\nVolta.modal = function () {\n\tvar _class = {\n\t\tauto: 'Vlt-modal--auto',\n\t\tbodyModalOpen: 'Vlt-body--modal-open',\n\t\tcancel: 'Vlt-modal__cancel',\n\t\tconfirm: 'Vlt-modal__confirm',\n\t\tcontent: 'Vlt-modal__content',\n\t\tmodal: 'Vlt-modal',\n\t\tout: 'Vlt-modal--out',\n\t\tpanel: 'Vlt-modal__panel',\n\t\ttrigger: 'Vlt-modal-trigger',\n\t\tvisible: 'Vlt-modal_visible',\n\t\tdismiss: 'Vlt-modal__dismiss',\n\t}\n\n\tvar body,\n\t\tdismissModalHandler,\n\t\tcancelModalHandler,\n\t\tconfirmModalHandler,\n\t\tescHandler,\n\t\tclickHandler,\n\t\tescAttached;\n\n\tfunction Modal() {}\n\n\tModal.prototype = {\n\t\tattachButtons: function() {\n\t\t\tvar _this = this;\n\t\t\t_this.dismissBtn = _this.modal.querySelector('.' + _class.dismiss);\n\n\t\t if(_this.dismissBtn) {\n\t\t \tdismissModalHandler = dismissModal.bind(_this);\n\t\t \t_this.dismissBtn.addEventListener('click', dismissModalHandler);\n\t\t }\n\n\t\t _this.cancelBtn = _this.modal.querySelector('.' + _class.cancel);\n\n\t\t if(_this.cancelBtn) {\n\t \t\tcancelModalHandler = cancelModal.bind(_this);\n\t\t \t_this.cancelBtn.addEventListener('click', cancelModalHandler);\n\t\t }\n\n\t\t _this.confirmBtn = _this.modal.querySelector('.' + _class.confirm);\n\n\t\t if(_this.confirmBtn) {\n\t\t \tconfirmModalHandler = confirmModal.bind(_this);\n\t\t \t_this.confirmBtn.addEventListener('click', confirmModalHandler);\n\t\t }\n\t\t},\n\t\thtml: function(newHtml) {\n\t\t\tthis.modal.innerHTML = newHtml;\n\t\t\treturn this;\n\t\t},\n\t\tinit: function(elementOrId) {\n\t\t\tif(elementOrId.length) {\n\t\t\t\tthis.modal = document.querySelector('#' + elementOrId);\n\t\t\t} else {\n\t\t\t\tthis.modal = elementOrId;\n\t\t\t}\n\n\t\t\tthis._callback = Volta._getFunction(this.modal.dataset.callback);\n\t\t},\n\t\topen: function(e) {\n\t\t if(e && e.preventDefault) {\n\t\t e.preventDefault();\n\t\t \te.stopPropagation();\n\t\t }\n\n\t\t this.modal.classList.remove(_class.out);\n\t\t this.modal.classList.add(_class.visible);\n\t\t this.attachButtons();\n\n\t\t disableScroll();\n\n\t\t if(!escAttached && !this.modal.dataset.disableEsc || this.modal.dataset.disableEsc === \"false\") {\n\t\t \tescHandler = closeModalOnEscape.bind(this);\n\t\t \t\tbody.addEventListener('keyup', escHandler, { once: true });\n\t\t \t\tescAttached = true;\n\t\t }\n\n\t\t if(!this.modal.dataset.disableClick || this.modal.dataset.disableClick === \"false\") {\n\t\t \tclickHandler = closeModalOnClick.bind(this);\n\t\t \t\tthis.modal.addEventListener('click', clickHandler, { once: true });\n\t\t }\n\t\t},\n\t\tdismiss: function(e, confirmed) {\n\t\t\tvar _this = this;\n\n\t\t\tif(e && e.preventDefault) {\n\t\t \te.preventDefault();\n\t\t \te.stopPropagation();\n\t\t\t}\n\n\t\t\tenableScroll();\n\n\t\t\tif(_this.modal){\n\t\t\t\t_this.modal.classList.remove(_class.visible);\n\t\t\t\t_this.modal.classList.add(_class.out);\n\t\t\t}\n\n\t\t\tif(_this._callback) {\n\t\t\t\t_this._callback(confirmed);\n\t\t\t}\n\n\t\t\tremoveModal(_this);\n\t\t}\n\t}\n\n\treturn {\n\t\tcreate: create,\n\t\tinit: attachModalHandlers\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Attach a click listener to each modals trigger on the screen, which will open the modal\n\t */\n\tfunction attachModalHandlers() {\n\t\tif(!body) {\n\t\t\tbody = document.querySelector('body');\n\t\t}\n\n\t\tvar triggers = document.querySelectorAll('.' + _class.trigger);\n\n\t\tif(triggers.length > 0) {\n\t\t\ttriggers.forEach(attachTriggerHandler);\n\t\t}\n\n\t\t//Not the recommended way to use modals\n\t\tvar modals = document.querySelectorAll('.' + _class.modal);\n\n\t\tif(modals.length > 0) {\n\t\t\tmodals.forEach(attachModalHandler);\n\t\t}\n\n\t\tfunction attachModalHandler(modal) {\n\t\t\tif(Volta._hasClass(modal, _class.auto)) {\n\t\t\t\tvar trigger = document.querySelector('#' + modal.dataset.trigger);\n\t\t\t\ttrigger.addEventListener('click', function() {\n\t\t\t\t\tcreate(modal).open();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction attachTriggerHandler(trigger) {\n\t\t\tif(trigger.dataset.modal) {\n\t\t\t\tvar modal = document.querySelector('#' + trigger.dataset.modal);\n\n\t\t\t\tif(!modal) {\n\t\t\t\t\tconsole.warn('Volta: modal ' + trigger.dataset.modal + ' cannot be found');\n\t\t\t\t}\n\n\t\t\t\ttrigger.addEventListener('click', function() {\n\t\t\t\t\tcreate(modal).open();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n /**\n\t *\t@private\n\t *\n\t *\t@description Close the modal, triggered by cancel button, passes false to callback function\n\t * @param {event} e\n\t */\n function cancelModal(e) {\n\t\treturn this.dismiss(e, false);\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Close the modal, triggered by confirm button, passes true to callback function\n\t * @param {event} e\n\t */\n function confirmModal(e) {\n\t\treturn this.dismiss(e, true);\n\t}\n\n /**\n\t *\t@private\n\t *\n\t *\t@description Close the modal, triggered by 'x' button, passes false to callback function\n\t * @param {event} e\n\t */\n function dismissModal(e) {\n\t\treturn this.dismiss(e, false);\n }\n\n /**\t@private\n\t *\n\t *\t@description Close the modal, triggered by 'esc' key, passes false to callback function\n\t * @param {event} e\n\t */\n function closeModalOnEscape(e){\n \tif(e && e.keyCode === 27) {\n \t\tthis.dismiss(e, false);\n \t} else {\n\t\t\tbody.addEventListener('click', escHandler, { once: true });\n \t}\n }\n\n\n /**\t@private\n\t *\n\t *\t@description Close the modal, triggered by 'body click, passes false to callback function\n\t * @param {event} e\n\t */\n function closeModalOnClick(e){\n \tif(!Volta._hasClass(e.target, _class.trigger)\n\t\t\t&& !Volta._closest(e.target, '.' + _class.trigger, '.' + _class.trigger)\n \t\t&& !Volta._closest(e.target, '.' + _class.panel, '.' + _class.panel)) {\n \t\tthis.dismiss(e, false);\n \t} else if(this.modal) {\n\t\t\tthis.modal.addEventListener('click', clickHandler, { once: true });\n \t}\n }\n\n /**\n\t *\t@public\n\t *\n\t *\t@description Create the modal object\n\t * @param {HTMLElement|string} elementOrId Reference to the modal element or the id\n\t *. @return {Object} A modal object\n\t */\n function create(elementOrId) {\n \tif(!body) {\n\t\t\tbody = document.querySelector('body');\n\t\t}\n\t\tvar modal = Object.create(Modal.prototype, {})\n\t\tmodal.init(elementOrId);\n\t\treturn modal;\n }\n\n /**\n\t * Private functions to disable body scroll when modal is open\n */\n function disableScroll() {\n\t body.classList.add(_class.bodyModalOpen);\n\t\tbody.addEventListener('touchmove', preventScroll);\n\n\t\tif (body.querySelector('.Vlt-main')) {\n\t\t\tbody.querySelector('.Vlt-main').addEventListener('touchmove', preventScroll);\n\t\t} else {\n\t\t\tbody.addEventListener('touchmove', preventScroll);\n\t\t}\n\n\t\tbody.querySelector('.' + _class.content).addEventListener('touchmove', allowScroll);\n }\n\n function enableScroll() {\n\t\tbody.classList.remove(_class.bodyModalOpen);\n\t\tbody.removeEventListener('touchmove', preventScroll);\n\n\t\tif (body.querySelector('.Vlt-main')) {\n\t\t\tbody.querySelector('.Vlt-main').removeEventListener('touchmove', preventScroll);\n\t\t} else {\n\t\t\tbody.removeEventListener('touchmove', preventScroll);\n\t\t}\n\t\t\n\t\tvar modalContent = body.querySelector('.' + _class.content);\n\t\tif(modalContent) modalContent.removeEventListener('touchmove', allowScroll);\n }\n\n function allowScroll(e) {\n \te.stopPropagation();\n }\n\n function preventScroll(e) {\n\t\te.preventDefault();\n }\n\n \t/**\n\t *\t@private\n\t *\n\t *\t@description Remove the modal after dismiss, makes sure to delete the modal properties so it can be garbage collected, and removes event listeners\n\t * @param {HTMLElement|string} elementOrId Reference to the modal element or the id\n\t */\n\tfunction removeModal(modal) {\n\t\tdelete modal.modal;\n\n\t\tif(modal.dismissBtn) {\n\t\t\tmodal.dismissBtn.removeEventListener('click', dismissModalHandler);\n\t\t}\n\n\t\tif(modal.cancelBtn) {\n\t\t\tmodal.cancelBtn.removeEventListener('click', cancelModalHandler);\n\t\t}\n\n\t\tif(modal.confirmBtn) {\n\t\t\tmodal.confirmBtn.removeEventListener('click', confirmModalHandler);\n\t\t}\n\n\t\tif(clickHandler) {\n \t\t\tbody.removeEventListener('click', clickHandler);\n \t}\n\n \tif(escHandler) {\n \t\tbody.removeEventListener('keyup', escHandler);\n \t\tescAttached = false;\n \t}\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\n * Tabs (requires core)\n */\n\n'use strict';\n\nVolta.tab = function () {\n\tvar _class = {\n\t\tlink: 'Vlt-tabs__link',\n\t\tlinkJs: 'Vlt-js-tabs__link',\n\t\tlinkActive: 'Vlt-tabs__link_active',\n\t\tlinkDisabled: 'Vlt-tabs__link_disabled',\n\t\tlinkJsActive: 'Vlt-js-tabs__link_active',\n\t\tpanel: 'Vlt-tabs__panel',\n\t\tpanelActive: 'Vlt-tabs__panel_active',\n\t\tpanelJsActive: 'Vlt-js-tabs__panel_active',\n\t\ttabs: 'Vlt-tabs',\n\t}\n\n\tfunction Tabs() { }\n\n\tTabs.prototype = {\n\t\t_keys: {\n\t\t\tleft: 37,\n\t\t\tright: 39\n\t\t},\n\n\t\tinit: function (element, isWrapper) {\n\t\t\tvar _this = this,\n\t\t\t\ttabsHeader,\n\t\t\t\ttabsContent;\n\n\t\t\tif (isWrapper) {\n\t\t\t\ttabsHeader = element.children.item(0);\n\t\t\t\ttabsContent = element.children.item(1);\n\t\t\t} else {\n\t\t\t\t_this.isJs = true;\n\t\t\t\ttabsHeader = element;\n\t\t\t\ttabsContent = element.dataset.tabContent ?\n\t\t\t\t\tdocument.querySelector('#' + element.dataset.tabContent)\n\t\t\t\t\t: null;\n\t\t\t}\n\n\t\t\tvar linkClass = _this.isJs ? _class.linkJs : _class.link;\n\t\t\t_this._links = tabsHeader.querySelectorAll('.' + linkClass);\n\t\t\t_this._panels = tabsContent ? tabsContent.children : undefined;\n\n\t\t\tthis._deactivateElements();\n\t\t\tthis._setActiveElements();\n\n\t\t\tif (_this._panels && _this._panels.length === _this._links.length) {\n\t\t\t\t_this._links.forEach(function (link, index) {\n\t\t\t\t\tvar link = link;\n\n\t\t\t\t\tlink.index = index;\n\t\t\t\t\tlink.addEventListener('keyup', _this._keyUpEventListener.bind(_this));\n\t\t\t\t\tlink.addEventListener('toggle', function () {\n\t\t\t\t\t\t_this.toggle(link);\n\t\t\t\t\t});\n\t\t\t\t\tlink.addEventListener('click', function () {\n\t\t\t\t\t\t_this.toggle(link);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else if (_this._panels && _this._panels.length > 0) {\n\t\t\t\tconsole.log('Volta: Tabs, number of links and panels do not match');\n\t\t\t}\n\t\t},\n\t\ttoggle: function (linkElement) {\n\t\t\tvar linkActiveClass = this.isJs ? _class.linkJsActive : _class.linkActive;\n\t\t\tvar panelActiveClass = this.isJs ? _class.panelJsActive : _class.panelActive;\n\n\t\t\tif (!Volta._hasClass(linkElement, _class.linkDisabled) && (!this._activeLink || this._activeLink !== linkElement)) {\n\t\t\t\tif (this._activeLink) {\n\t\t\t\t\tthis._activeLink.classList.remove(linkActiveClass);\n\t\t\t\t\tthis._activePanel.classList.remove(panelActiveClass);\n\t\t\t\t}\n\n\t\t\t\tthis._deactivateElements();\n\t\t\t\tthis._setActiveElements(linkElement);\n\n\t\t\t\tthis._activeLink.classList.add(linkActiveClass);\n\t\t\t\tthis._activePanel.classList.add(panelActiveClass);\n\n\t\t\t\tif (Volta.tooltip) {\n\t\t\t\t\tVolta.tooltip.init();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_deactivateElements: function () {\n\t\t\tthis._links.forEach(function (link) {\n\t\t\t\tlink.setAttribute('tabIndex', '-1');\n\t\t\t\tlink.setAttribute('aria-selected', 'false');\n\t\t\t});\n\t\t\tArray.from(this._panels).forEach(function (panel) {\n\t\t\t\tpanel.setAttribute('hidden', 'hidden');\n\t\t\t});\n\t\t},\n\t\t_setActiveElements: function (linkElement) {\n\t\t\tvar linkActiveClass = this.isJs ? _class.linkJsActive : _class.linkActive;\n\n\t\t\tif (!linkElement) {\n\t\t\t\tthis._activeLink = this._links.item(linkActiveClass);\n\t\t\t} else {\n\t\t\t\tthis._activeLink = linkElement;\n\t\t\t}\n\n\t\t\tvar tabIndex;\n\t\t\tvar currentNode = 0;\n\n\t\t\twhile (!tabIndex && currentNode < this._links.length) {\n\t\t\t\tif (this._links.item(currentNode) === this._activeLink) {\n\t\t\t\t\ttabIndex = currentNode;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcurrentNode++;\n\t\t\t}\n\n\t\t\tif (this._panels) {\n\t\t\t\tthis._activePanel = this._panels.item(tabIndex);\n\t\t\t}\n\n\t\t\tthis._activeLink.setAttribute('tabindex', '0');\n\t\t\tthis._activeLink.setAttribute('aria-selected', 'true');\n\t\t\tif (this._activePanel) {\n\t\t\t\tthis._activePanel.removeAttribute('hidden');\n\t\t\t}\n\t\t},\n\t\t_keyUpEventListener: function (event) {\n\t\t\tvar key = event.keyCode;\n\n\t\t\tswitch (key) {\n\t\t\t\tcase this._keys.left:\n\t\t\t\tcase this._keys.right:\n\t\t\t\t\tthis._switchTab(event);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t_switchTab: function (event) {\n\t\t\tvar nextTab;\n\n\t\t\tif (this._keys.left === event.keyCode) {\n\t\t\t\tnextTab = this._findNextTab(-1);\n\t\t\t} else if (this._keys.right === event.keyCode) {\n\t\t\t\tnextTab = this._findNextTab(1);\n\t\t\t}\n\t\t\tthis.toggle(nextTab);\n\t\t},\n\t\t_findNextTab: function (direction) {\n\t\t\tvar tab, nextTab;\n\t\t\tvar currentIndex = this._activeLink.index;\n\t\t\tfor (var i = currentIndex + direction; !nextTab && (this._calculateIndex(i) !== currentIndex); i += direction) {\n\t\t\t\ttab = this._links.item(this._calculateIndex(i));\n\t\t\t\tif (!Volta._hasClass(tab, _class.linkDisabled)) {\n\t\t\t\t\tnextTab = tab;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nextTab;\n\t\t},\n\t\t_calculateIndex: function (i) {\n\t\t\tvar length = this._links.length;\n\t\t\treturn ((i % length) + length) % length;\n\t\t}\n\t}\n\n\treturn {\n\t\tcreate: create,\n\t\tinit: attachTabHandlers\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Attach a listener to the tab header\n\t */\n\tfunction attachTabHandlers() {\n\t\t//traditional tabs\n\t\tdocument.querySelectorAll('.' + _class.tabs).forEach(create);\n\n\t\tdocument.querySelectorAll('[data-tab-content]').forEach(create);\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Create a tabs component\n\t * @param {HTMLElement} element\n\t */\n\tfunction create(element) {\n\t\tvar tabs = Object.create(Tabs.prototype, {})\n\n\t\tif (Volta._hasClass(element, _class.tabs)) {\n\t\t\ttabs.init(element, true);\n\t\t} else {\n\t\t\ttabs.init(element);\n\t\t}\n\n\t\treturn tabs;\n\t}\n}();\n\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * tables (requires core)\n */\n\n'use strict';\n\nVolta.table = function () {\t\n\tvar _class = {\n\t\ttable: 'Vlt-table',\n\t\ttall: 'Vlt-table--tall',\n\t\tshort: 'Vlt-table--short',\n\t\ttrigger: 'Vlt-table__density',\n\t\tbuttonActive: 'Vlt-btn_active'\n\t}\n\n\treturn {\n\t\tinit: attachTableDensityHandlers\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Attach a listener to the table density triggers\n\t */\n\tfunction attachTableDensityHandlers() {\n\t\tvar triggers = document.querySelectorAll('.' + _class.trigger);\n\n\t\tif(triggers.length > 0) {\n\t\t\ttriggers.forEach(attachTriggerHandler);\n\t\t}\n\n\t\tfunction attachTriggerHandler(trigger) {\n\t if(trigger.dataset.table) {\n\t var table = document.querySelector('#' + trigger.dataset.table);\n\n\t if(!table) {\n\t console.warn('Volta: table ' + trigger.dataset.table + ' cannot be found');\n\t return;\n\t }\n\n\t var activeButton = trigger.querySelector('.' + _class.buttonActive);\n\n\t trigger.querySelectorAll('.Vlt-btn').forEach( function(button) {\n\t button.addEventListener('click', function() {\n\t if (this.dataset.density) {\n\t console.log('in')\n\t if (this.dataset.density == 'short') {\n\t table.classList.add(_class.short)\n\t table.classList.remove(_class.tall)\n\t } else if (this.dataset.density == 'tall') {\n\t table.classList.add(_class.tall)\n\t table.classList.remove(_class.short)\n\t } else {\n\t table.classList.remove(_class.tall)\n\t table.classList.remove(_class.short)\n\t }\n\n\t // update classes on buttons\n\t if(activeButton) {\n\t activeButton.classList.remove(_class.buttonActive);\n\t }\n\t activeButton = this;\n\t this.classList.add(_class.buttonActive);\n\t }\n\t })\n\t });\n\t }\n\t }\n\t}\n\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Tooltips (requires popper.js, tooltip.js)\n */\n'use strict';\n\nVolta.tooltip = function () {\n\tvar _class = {\n\t\tbottom: 'Vlt-tooltip--bottom',\n\t\tleft: 'Vlt-tooltip--left',\n\t\ttooltip: 'Vlt-tooltip',\n\t\ttop: 'Vlt-tooltip--top',\n\t\tright: 'Vlt-tooltip--right'\n\t}\n\n\tvar currentTooltip = undefined,\n\t\tcurrentTooltipContent = undefined;\n\n\treturn {\n\t\tcreate: create,\n\t\tinit: attachTooltipHandlers\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Create a Tooltip instance for every Vlt-tooltip\n\t */\n\tfunction attachTooltipHandlers() {\n\t\tdocument.querySelectorAll('.' + _class.tooltip).forEach(create);\t\t\t\t\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Create a Tooltip instance\n\t *\t@param {HTMLElement} tooltip\n\t * @return {object} a Tooltip element\n\t */\n\t function create(tooltip) {\n\t\tvar placement;\n\n\t\tif (Volta._hasClass(tooltip, _class.bottom)) {\n\t\t\tplacement = 'bottom';\n\t\t} else if (Volta._hasClass(tooltip, _class.top)) {\n\t\t\tplacement = 'top';\n\t\t} else if (Volta._hasClass(tooltip, _class.left)) {\n\t\t\tplacement = 'left';\n\t\t} else if (Volta._hasClass(tooltip, _class.right)) {\n\t\t\tplacement = 'right';\n\t\t}\n\n\t\tvar template = \n\t\t\t'
' +\n\t\t\t\t'
' + \n\t\t\t\t'
' + \n\t\t\t'
';\n\n\t\tvar title = tooltip.title;\n\t\t//remove the title so deafult title does not show\n\t\ttooltip.title = \"\";\n\n\t\treturn new Tooltip(tooltip, {\n\t\t\thtml: true,\n\t\t\ttemplate: template, \n\t\t\ttitle: title,\n\t\t\tplacement: placement\n\t\t});\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\t\n * Menu Collapse (requires core, menu)\n */\n\n'use strict';\n\nVolta.menuCollapse = function () {\t\n\tvar _class = {\n\t\tanimate: 'Vlt-sidenav--animate',\n\t\tcollapsed: 'Vlt-sidenav--collapsed',\n\t\tvisible: 'Vlt-sidenav_visible'\n\t}\n\n\tvar _id = {\n\t\tcollapse: '#Vlt-sidenav-collapse-trigger'\n\t}\n\n\tvar menuCollapseString = \"menuCollapse\";\n\n\treturn {\n\t\tattachCloseHandler: attachCloseHandler,\n\t\tinit: initialise\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Attach listener to trigger for collapsing the menu\n\t */\n\tfunction attachMenuCollapseHandler() {\n\t\tvar collapseTrigger = document.querySelector(_id.collapse);\n\n\t\tif(collapseTrigger) {\n\t\t\tcollapseTrigger.addEventListener('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\t\n\t\t\t\tvar hasCollapsedClass = Volta._hasClass(Volta.menu._element, _class.collapsed);\n\t\t\t\tvar isMobile = Volta._hasClass(Volta.menu._element, _class.visible);\n\n\t\t\t\tVolta.menu._element.classList.add(_class.animate);\n\t\t\t\t\n\t\t\t\tif (isMobile) {\n\t\t\t\t\tVolta.menu._element.classList.remove(_class.visible);\n\t\t\t\t} else if (hasCollapsedClass) {\n\t\t\t\t\tunCollapseMenu(Volta.menu._element);\n\t\t\t\t} else {\n\t\t\t\t\tcollapseMenu(Volta.menu._element);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Attach listener to trigger for closing the menu\n\t */\n\tfunction attachCloseHandler(expandedMenus) {\n\t\tif(document.querySelector('.' + _class.collapsed) && expandedMenus) {\n\t\t\tdocument.querySelector('body').addEventListener('click', closeMenu, { once: true });\n\t\t}\n\n\t\tfunction closeMenu(e) {\n\t\t\tif(!Volta._hasClass(e.target, Volta.menu._class.link) \n\t\t\t\t\t&& !Volta._hasClass(e.target.parentElement, Volta.menu._class.link)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\tVolta.menu.closeAll();\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('body').addEventListener('click', closeMenu, { once: true });\n\t\t\t}\n\t\t}\n\t}\n\n\t/** \n\t *\t@private\n\t *\t\n\t *\t@description Collapse the expanded menu\n\t */\n\tfunction collapseMenu() {\n\t\tVolta.menu.closeAll();\n\t\tVolta.menu.selectActiveTab();\n\n\t\tVolta.menu._element.classList.add(_class.collapsed);\n\n\t\tdocument.querySelectorAll(Volta.menu._class.trigger).forEach(function(menuItem){\n\t menuItem.nextElementSibling.style = \"top: \" + menuItem.positionTop;\n\t\t});\n\n\t\tif(localStorage) {\n\t\t\tlocalStorage.setItem(menuCollapseString, true);\n\t\t}\n\n\t\tvar sideTabs = Volta.menu._element.querySelector('.' + Volta.menu._class.sideTabs);\n\n\t\tif(sideTabs) {\n\t\t\tsideTabs.querySelectorAll('.' + Volta.menu._class.sideTabsTrigger).forEach(function(trigger){\n\t\t\t\ttrigger.classList.remove(Volta.menu._class.sideTabsTrigger);\n\t\t\t\ttrigger.classList.add(Volta.menu._class.trigger);\n\t\t\t\ttrigger.addEventListener('click', Volta.menu.showCollapsed);\n\t\t\t});\n\n\t\t\tsideTabs.querySelectorAll('.' + Volta.menu._class.sideTabsLink).forEach(function(link){\n\t\t\t\tlink.classList.remove(Volta.menu._class.sideTabsLink);\n\t\t\t\tlink.classList.add(Volta.menu._class.link);\n\t\t\t});\n\t\t}\n\n\t\tVolta.menu.styleActiveTrigger();\n\t}\n\n\t/** \n\t *\t@public\n\t *\t\n\t *\t@description Initailise the menu collapsing\n\t */\n\tfunction initialise() {\n\t\tif(!Volta.menu || !Volta.menu._element) return;\n\n\t\tattachMenuCollapseHandler();\n\n\t\tvar menuCollapsedFlag = localStorage ? localStorage.getItem(menuCollapseString) : false;\n\n\t\tif(menuCollapsedFlag) {\n\t\t\tVolta.menu._element.querySelectorAll('.' + Volta.menu._class.triggerActive).forEach(function(trigger) {\n\t\t\t\ttrigger.classList.remove(Volta.menu._class.triggerActive);\n\t\t\t});\n\t\t\tcollapseMenu();\n\t\t} else {\n\t\t\tVolta.menu.expand();\n\t\t}\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Expand the collapsed menu\n\t */\n\tfunction unCollapseMenu() {\n\t\tVolta.menu._element.classList.remove(_class.collapsed);\n\n\t\tif(localStorage) {\n\t\t\tlocalStorage.removeItem(menuCollapseString);\n\t\t}\n\n\t\tvar sideTabs = Volta.menu._element.querySelector('.' + Volta.menu._class.sideTabs);\n\n\t\tif(sideTabs) {\n\t\t\tsideTabs.querySelectorAll('.' + Volta.menu._class.trigger).forEach(function(trigger){\n\t\t\t\ttrigger.classList.add(Volta.menu._class.sideTabsTrigger);\n\t\t\t\ttrigger.classList.remove(Volta.menu._class.trigger);\n\t\t\t\ttrigger.removeEventListener('click', Volta.menu.showCollapsed);\n\t\t\t});\n\n\t\t\tsideTabs.querySelectorAll('.' + Volta.menu._class.link).forEach(function(link){\n\t\t\t\tlink.classList.add(Volta.menu._class.sideTabsLink);\n\t\t\t\tlink.classList.remove(Volta.menu._class.link);\n\t\t\t});\n\t\t}\n\n\t\tVolta.menu.expand(true);\n\t}\n}();\n/**\n * Copyright (c) 2001-present, Vonage.\n *\n * Menu (requires core)\n */\n\n'use strict';\n\nVolta.menu = function () {\n\tvar _class = {\n\t\tmobile: 'Vlt-sidenav__mobile',\n\t\tmobileOpen: 'Vlt-body--mobile-menu-open',\n\t\tmobileTrigger: 'Vlt-sidenav__mobile-trigger',\n\t\tlink: 'Vlt-sidemenu__link',\n\t\tlinkActive: 'Vlt-sidemenu__link_active',\n\t\tsideMenu: 'Vlt-sidemenu',\n\t\tsideTabs: 'Vlt-sidetabs',\n\t\tsideTabsLinkActive: 'Vlt-js-tabs__link_active',\n\t\tsideTabsPanel: 'Vlt-js-tabs__panel',\n\t\tsideTabsPanelActive: 'Vlt-js-tabs__panel_active',\n\t\tsideTabsLink: 'Vlt-sidetabs__link',\n\t\tsideTabsTrigger: 'Vlt-sidetabs__trigger',\n\t\ttrigger: 'Vlt-sidemenu__trigger',\n\t\ttriggerActive: 'Vlt-sidemenu__trigger_active',\n\t\ttriggerCurrent: 'Vlt-sidemenu__trigger_current',\n\t\ttriggerEnabled: '.Vlt-tabs__link:not(.Vlt-tabs__link_disabled)',\n\t\tvisible: 'Vlt-sidenav_visible'\n\t}\n\n\tvar _id = {\n\t\tmenu: '#Vlt-sidenav',\n\t\tmobileTrigger: '#Vlt-sidenav-mobile-trigger'\n\t}\n\n\tvar expandedMenus = [],\n\t\tmobileMenuTriggeredTwice;\n\n\treturn {\n\t\t_class: _class,\n\t\t_element: undefined,\n\n\t\tcloseAll: removeAllMenuItemsFromSelectedArr,\n\t\tinit: initialise,\n\t\texpand: expandActiveMenu,\n\t\tshowCollapsed: expandMenu,\n\t\t_triggerHandler: attachTriggerHandlers,\n\t\tselectActiveTab: selectActiveTab,\n\t\tstyleActiveTrigger: styleActiveTrigger\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Adds the parents of the active menu to the exoanded menus array\n\t *\t@param {HTMLElement} element The active menu\n\t */\n\tfunction addExpandedParentMenuToArr(element){\n\t\tvar nestedMenuUl = Volta._closest(element, 'ul', '.' + _class.sideMenu);\n\t\tvar nestedMenuTrigger = nestedMenuUl.previousElementSibling;\n\n\t\tif(nestedMenuTrigger && Volta._hasClass(nestedMenuTrigger, _class.trigger)) {\n\t\t\tif(!Volta._hasClass(nestedMenuTrigger, _class.triggerActive)) {\n\t\t\t\tnestedMenuTrigger.classList.add(_class.triggerActive);\n\t\t\t}\n\n\t\t\texpandedMenus.push(nestedMenuTrigger);\n\t\t\taddExpandedParentMenuToArr(nestedMenuTrigger);\n\t\t}\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Attach the listener for the mobile menu trigger\n\t */\n\tfunction attachMobileTriggerHandler() {\n\t\tvar mobileMenuTrigger = document.querySelector(_id.mobileTrigger);\n\n\t\tif(mobileMenuTrigger) {\n\t\t\tmobileMenuTrigger.addEventListener('click', function(e){\n\t\t\t\tif(mobileMenuTriggeredTwice) {\n\t\t\t\t\tmobileMenuTriggeredTwice = false;\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif(!Volta._hasClass(Volta.menu._element, _class.visible)) {\n\t\t\t\t\tVolta.menu._element.classList.add(_class.visible);\n\t\t\t\t\tdocument.body.classList.add(_class.mobileOpen);\n\n\t\t\t\t\t//stop propagation otherwise will immediately call handler\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\taddMobileMenuCollapseListeners();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Attach the listeners for closing the expanded mobile menu\n\t */\n\tfunction addMobileMenuCollapseListeners() {\n\t\tdocument.querySelector('body').addEventListener('click', closeMenu, { once: true });\n\t\tdocument.querySelector('body').addEventListener('touchstart', closeMenu, { once: true });\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Attach the listeners to the trigger elements of the menu\n\t */\n\tfunction attachTriggerHandlers() {\n\t\tattachMobileTriggerHandler();\n\t\tVolta.menu._element.querySelectorAll('.' + _class.trigger).forEach(attachHandler);\n\n\t\tfunction attachHandler(triggerElem) {\n\t\t\ttriggerElem.addEventListener('click', expandMenu);\n\t\t}\n\t}\n\n\t/**\n * @private\n *\n * @description Checks if the passed in menu is nested\n * @param {HTMLElement} menuItem\n * @return {boolean} If the menu item is nested returns true, otherwise false\n */\n function checkMenuItemIsNested(menuItem) {\n return isNestedDescendant(menuItem);\n }\n\n /**\n * @private\n *\n * @description Recursive function to check if the passed in menu is nested\n * @param {HTMLElement} menuItem\n * @param {Boolean} isAncestor\n * @return {boolean} If the menu item is nested returns true, otherwise false\n */\n function isNestedDescendant(menuItem, isAncestor) {\n var isNested = false;\n var ancestor = isAncestor ? menuItem.parentElement : menuItem.parentElement.parentElement;\n var ancestorSibling = ancestor.previousElementSibling;\n\n if(ancestorSibling) {\n isNested = Volta._hasClass(ancestorSibling, _class.trigger);\n }\n\n if(ancestorSibling && !isNested) {\n return isNestedDescendant(ancestor, true);\n }\n\n return isNested;\n }\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Attach the listeners to the trigger elements of the menu\n\t * \t@param {HTMLElement} menuItem\n\t *\t@return {boolean} If the menu item is nested returns true, otherwise false\n\t */\n\tfunction closeMenu(e) {\n\t\tif(!Volta._hasClass(e.target, _class.sideMenu) && !Volta._closest(e.target, '.' + _class.sideMenu) &&\n\t\t\t!Volta._hasClass(e.target, _class.sideTabs) && !Volta._closest(e.target, '.' + _class.sideTabs)) {\n\t\t\tVolta.menu._element.classList.remove(_class.visible);\n\n\t\t\tdocument.body.classList.remove(_class.mobileOpen);\n\n\t\t\tvar isMobileMenu = Volta._closest(e.target, '.' + _class.mobile);\n\t\t\tif(Volta._hasClass(e.target, _class.mobileTrigger) || isMobileMenu) {\n\t\t\t\tmobileMenuTriggeredTwice = true;\n\t\t\t}\n\t\t} else {\n\t\t\taddMobileMenuCollapseListeners();\n\t\t}\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Expand the nested menu\n\t * \t@param {event} e\n\t */\n\tfunction expandMenu(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tvar _this = this;\n\n\t\tvar isNestedMenu = checkMenuItemIsNested(_this);\n\n\t\tif (expandedMenus.indexOf(_this) >= 0 && isNestedMenu) {\n\t\t\tremoveMenuFromSelectedArr(_this);\n\t\t} else if(expandedMenus.indexOf(_this) >= 0) {\n\t\t\tremoveAllMenuItemsFromSelectedArr();\n\t\t} else {\n\t\t\tif(!isNestedMenu) {\n\t\t\t\tremoveAllMenuItemsFromSelectedArr();\n\t\t\t} else {\n \t removeSiblingFromSelectedArr(_this);\n \t\t}\n\t\t\texpandedMenus.push(_this);\n\t\t\t_this.classList.add(_class.triggerActive);\n\t\t}\n\n\t\tif(Volta.menuCollapse) {\n\t\t\tVolta.menuCollapse.attachCloseHandler(expandedMenus);\n\t\t}\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Expand the active menu - typically used on page load\n\t * \t@param {boolean} isUserForced Whether the action has been trigger by the user\n\t */\n\tfunction expandActiveMenu(isUserForced) {\n\t\tvar activeMenuItem = Volta.menu._element.querySelector('.' + _class.linkActive);\n\n\t\tselectActiveTab(activeMenuItem);\n\n\t\tif(activeMenuItem) {\n\t\t\tvar activeTriggerUl = Volta._closest(activeMenuItem, 'ul', '.' + _class.sideMenu);\n\t\t\tvar activeTrigger = activeTriggerUl ? activeTriggerUl.previousElementSibling : null;\n\t\t\tif(activeTrigger) {\n\t\t\t\tvar isNestedMenu = checkMenuItemIsNested(activeTrigger);\n\t\t\t\tif(isNestedMenu) {\n\t\t\t\t\taddExpandedParentMenuToArr(activeTrigger);\n\t\t\t\t}\n\n\t\t\t\tif(!Volta._hasClass(activeTrigger, _class.triggerActive)) {\n\t\t\t\t\tactiveTrigger.classList.add(_class.triggerActive);\n\t\t\t\t\t//console.log(\"HEY!!!\");\n\t\t\t\t}\n\n\t\t\t\texpandedMenus.push(activeTrigger);\n\t\t\t}\n\t\t\tstyleActiveTrigger(activeMenuItem);\n\t\t}\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Initialise the menu\n\t * \t@param {boolean} menuCollapse Whether the collapse module has been included\n\t */\n\tfunction initialise(menuCollapse) {\n\t\texpandedMenus = [];\n\t\tVolta.menu._element = document.querySelector(_id.menu);\n\n\t\tif(Volta.menu._element) {\n\t\t\tif(!Volta.menuCollapse) {\n\t\t\t\texpandActiveMenu();\n\t\t\t} else if(menuCollapse) {\n\t\t\t\tVolta.menuCollapse.init();\n\t\t\t}\n\n\t\t\tattachTriggerHandlers();\n\t\t}\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Clear the selected menus array, and close all of the nested menus\n\t */\n\tfunction removeAllMenuItemsFromSelectedArr(){\n\t\texpandedMenus.forEach(function(menuItem){\n\t\t\tmenuItem.classList.remove(_class.triggerActive);\n\t\t});\n\t\texpandedMenus = [];\n\t}\n\n\t/**\n\t *\t@private\n\t *\n\t *\t@description Remove a specific menu item from the selected array and close\n\t */\n\tfunction removeMenuFromSelectedArr(menuItem) {\n\t\tvar menuIndex = expandedMenus.indexOf(menuItem);\n\t\tmenuItem.classList.remove(_class.triggerActive);\n\t\texpandedMenus.splice(menuIndex, 1);\n\t}\n\n\t/**\n * @private\n *\n * @description Remove sibling menu item from the selected array and close\n */\n function removeSiblingFromSelectedArr(menuItem) {\n var ancestors = menuItem.parentElement.parentElement.children;\n var openSibling;\n var count = ancestors.length - 1;\n\n while(openSibling === undefined && count >= 0) {\n var siblingIndex = expandedMenus.indexOf(ancestors[count].children[0]);\n if(siblingIndex >= 0) {\n openSibling = expandedMenus[siblingIndex];\n }\n count--;\n }\n\n if(openSibling) {\n removeMenuFromSelectedArr(openSibling);\n }\n }\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Select the active side tab\n\t *\t@param {activeMenuItem} Element(optional) The active menu item\n\t */\n\tfunction selectActiveTab(activeMenuItem) {\n\t\tactiveMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);\n\t\tvar navTabs = document.querySelector(_id.menu + ' .' + _class.sideTabs);\n\n\t\tif(!navTabs || !activeMenuItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar sideMenus = Volta.menu._element.querySelectorAll('.' + _class.sideMenu);\n\t\tvar menuTab = Volta._closest(activeMenuItem, '.' + _class.sideTabsPanel, '.' + _class.sideMenu);\n\n\t\tvar tabIndex;\n\t\tvar currentNode = 0;\n\n\t\twhile(!tabIndex && currentNode < sideMenus.length) {\n\t\t\tif(sideMenus.item(currentNode) === menuTab) {\n\t\t\t\ttabIndex = currentNode;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrentNode++;\n\t\t}\n\t\tvar sideTabs = Volta.menu._element.querySelectorAll('.' + _class.sideTabsLink);\n\t\tsideTabs[tabIndex].click();\n\t}\n\n\t/**\n\t *\t@public\n\t *\n\t *\t@description Adds a class to the top level active trigger\n\t *\t@param {activeMenuItem} Element(optional) The active menu item\n\t */\n\tfunction styleActiveTrigger(activeMenuItem) {\n\t\tactiveMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);\n\n\t\tif(activeMenuItem) {\n\t\t\tvar topLevelTrigger = getTopLevelTrigger(activeMenuItem);\n\n\t\t\tif(topLevelTrigger) {\n\t\t\t\ttopLevelTrigger.classList.add(_class.triggerCurrent);\n\t\t\t}\n\t\t}\n\n\t\tfunction getTopLevelTrigger(activeMenuItem) {\n\t\t\tvar element = activeMenuItem;\n\t\t\tvar trigger = null;\n\n\t\t\twhile (element) {\n\t\t\t\tif(element.matches('ul') && Volta._hasClass(element, _class.sideMenu)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (element.matches('ul')) {\n\t\t\t \t\ttrigger = element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentElement;\n\t\t\t}\n\n\t\t\treturn trigger ? trigger.previousElementSibling : null;\n\t\t}\n\t}\n}();\n\nexport default Volta;\n","import UserPreference from './user_preference'\n\nexport default class VoltaTabbedExamples {\n constructor() {\n this.userPreference = new UserPreference(true);\n\n if ($('.Vlt-tabs').length) {\n this.context = $('.Vlt-tabs');\n this.restoreTabs = this.restoreTabs.bind(this)\n this.setupEvents = this.setupEvents.bind(this)\n this.onTabClick = this.onTabClick.bind(this)\n this.onPopState = this.onPopState.bind(this)\n this.persistLanguage = this.persistLanguage.bind(this)\n this.restoreTabs()\n this.setupEvents()\n }\n }\n\n shouldRestoreTabs() {\n return !this.context.find('.Vlt-tabs__header--bordered').data('has-initial-tab');\n }\n\n languages() {\n let obj = {}\n\n $(this.context).find(`[data-language]`).each(function(index, el) {\n $(el).data('language').split(',').forEach(function(language) {\n obj[language] = {\n platform: $(el).data('platform') || false\n }\n })\n })\n\n return obj\n }\n\n restoreTabs() {\n if (this.shouldRestoreTabs()) {\n let languages = this.languages()\n const language = this.userPreference.topMatch(Object.keys(languages))\n\n if (language) {\n if (languages[language]['platform']) {\n this.setPlatform(languages[language]['platform'], this.context)\n } else {\n this.setLanguage(language);\n }\n }\n } else {\n const selectedLanguage = this.context.find('li.Vlt-tabs__link_active').data('language');\n this.setLanguage(selectedLanguage);\n }\n }\n\n setupEvents() {\n $('.Vlt-tabs__link').click(this.onTabClick)\n $(window).on('popstate', this.onPopState)\n }\n\n onPopState(event) {\n if (window.history.state && window.history.state.language) {\n this.setLanguage(window.history.state.language)\n }\n }\n\n onTabClick(event) {\n // Prevent nested tabs from changing the url\n if ($(event.target).parents('.Vlt-tabs').length > 1) { return; }\n\n const language = $(event.currentTarget).data('language')\n const languageType = $(event.currentTarget).data('language-type')\n const linkable = $(event.currentTarget).data('language-linkable')\n\n if (language) {\n if (linkable) {\n document.dispatchEvent(new CustomEvent('codeLanguageChange', { \"detail\": { \"language\": language } }));\n if ($(\".skip-pushstate\").length == 0) {\n const rootPath = $('body').data('push-state-root')\n window.history.pushState({language}, 'language', `${rootPath}/${language}`)\n }\n }\n\n this.persistLanguage(language, languageType, linkable)\n }\n }\n\n persistLanguage(language, languageType) {\n if (language) {\n this.userPreference.promote(languageType, language)\n }\n }\n\n setLanguage(language) {\n setTimeout(() => {\n $(`[data-language='${language}']`).click();\n\n // Remove skip pushstate after the first load. This is a bit of a hack, but it works to stop breaking\n // the back button\n $(\".skip-pushstate\").removeClass('skip-pushstate');\n }, 0);\n }\n\n setPlatform(platform) {\n setTimeout(() => { $(`[data-platform='${platform}']`).click(); }, 0);\n }\n}\n","import intersection from 'lodash/intersection'\n\nexport default class UserPreference {\n constructor(useSingleStore) {\n this.useSingleStore = useSingleStore;\n this.platformPreference = this.platforms()\n this.terminalProgramsPreference = this.terminalPrograms()\n this.frameworkPreference = this.frameworks()\n }\n\n languages() {\n return this.get(this.getKeyFromType('languages'))\n }\n\n platforms() {\n return this.get(this.getKeyFromType('platforms'))\n }\n\n terminalPrograms() {\n return this.get(this.getKeyFromType('terminal_programs'))\n }\n\n frameworks() {\n return this.get(this.getKeyFromType('frameworks'))\n }\n\n all() {\n return this.platforms().concat(\n this.terminalPrograms(),\n this.languages(),\n this.frameworks()\n )\n }\n\n getKeyFromType(type) {\n if (this.useSingleStore) {\n return 'preferences.all';\n }\n switch (type) {\n case 'languages': return 'preferences.languages'\n case 'platforms': return 'preferences.platforms'\n case 'terminal_programs': return 'preferences.terminal_programs'\n case 'frameworks': return 'preferences.frameworks'\n }\n }\n\n getByType(type) {\n switch (type) {\n case 'languages': return this.languages()\n case 'platforms': return this.platforms()\n case 'terminal_programs': return this.terminalPrograms()\n case 'frameworks': return this.frameworks()\n }\n }\n\n get(key) {\n const value = window.localStorage.getItem(key)\n if (!value) { return [] }\n return JSON.parse(value)\n }\n\n store(type, value) {\n const key = this.getKeyFromType(type)\n localStorage.setItem(key, JSON.stringify(value))\n }\n\n promote(type, value) {\n let list = this.getByType(type) || [];\n list = list.filter(item => item !== value)\n list.unshift(value)\n this.store(type, list)\n }\n\n topMatch(available) {\n const result = intersection(this.all(), available)\n return result[0] || false\n }\n}\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\nimport '@babel/polyfill'\nimport '@vonagevolta/volta2/js/addons/prism'\n\nimport Rails from \"@rails/ujs\"\n\nimport '../stylesheets/application'\n\nrequire.context('@vonagevolta/volta2/images/logos', true)\nrequire.context('@vonagevolta/volta2/dist/symbol', true)\n\n// XXX: hack for Volta, unfortunately it doesn't provide modules :(\nimport Volta from \"../javascript/volta/volta.js\"\n\nimport Vue from 'vue/dist/vue.esm'\n\nimport { TweenLite, CSSPlugin } from 'gsap'\nimport GithubCards from '../javascript/github_cards'\nimport VoltaTabbedExamples from '../javascript/volta_tabbed_examples'\nimport Format from '../javascript/format'\nimport Scroll from '../javascript/scroll'\nimport Spotlight from '../javascript/spotlight'\nimport Notices from '../javascript/notices'\nimport Feedback from '../javascript/components/feedback/Feedback.vue'\nimport JwtGenerator from '../javascript/components/jwt_generator/JwtGenerator.vue'\nimport Search from '../javascript/components/search/Search.vue'\nimport Concatenation from '../javascript/components/concatenation/Concatenation.vue'\nimport APIStatus from '../javascript/api_status'\nimport CodeSnippetEvents from '../javascript/code_snippet_events'\nimport Sidenav from '../javascript/sidenav/index'\nimport Careers from '../javascript/careers'\nimport LocaleSwitcher from '../javascript/locale_switcher'\n\n$(document).ready(function() {\n Rails.start()\n Scroll()\n Notices()\n GithubCards()\n new VoltaTabbedExamples\n new Format\n APIStatus()\n Scroll()\n CodeSnippetEvents()\n new Sidenav()\n Spotlight()\n new Careers\n new LocaleSwitcher\n\n if (document.getElementById('jwt-generator-app')) {\n new Vue({\n el: '#jwt-generator-app',\n template: '',\n components: { JwtGenerator }\n })\n }\n\n if (document.getElementById('search-app')) {\n new Vue({\n el: '#search-app',\n template: '',\n components: { Search }\n })\n }\n\n if (document.getElementById('feedback-app')) {\n new Vue({\n el: '#feedback-app',\n template: '',\n render: createElement => {\n let context = {\n props: {\n codeLanguage: window.feedbackProps.code_language || window.initialLanguage,\n codeLanguageSelectedWhilstOnPage: window.feedbackProps.code_language_selected_whilst_on_page || false,\n codeLanguageSetByUrl: window.feedbackProps.code_language_set_by_url,\n currentUser: window.feedbackProps.current_user,\n feedbackAuthor: window.feedbackProps.feedback_author,\n githubUrl: window.feedbackProps.github_url,\n recaptcha: window.feedbackProps.recaptcha,\n source: window.feedbackProps.source\n }\n }\n return createElement(Feedback, context)\n }\n })\n }\n\n if (document.getElementById('concatenation-app')) {\n new Vue({\n el: '#concatenation-app',\n template: '',\n components: { Concatenation }\n })\n }\n\n Volta.init(['accordion', 'tooltip', 'tab', 'modal', 'dropdown'])\n\n setTimeout(function() {\n const sidebarActive = document.querySelector('.Vlt-sidemenu__link_active')\n if (sidebarActive){\n sidebarActive.scrollIntoView(true);\n }\n\n document.getElementById('header').focus();\n }, 100);\n\n // If there are any links in the sidebar, we need to be able to click them\n // and not trigger the Volta accordion\n $(\".Vlt-sidemenu__trigger a\").click(function(){\n window.location = $(this).attr(\"href\");\n return false;\n });\n\n // Track A/B testing clicks\n $(\"[data-ab]\").click(function(e) {\n let r = new Request('/usage/ab_result', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({'t': $(this).data('ab')}),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n fetch(r).then((response) => {\n if (response.ok) { return response.json() }\n return Promise.reject({ message: 'Bad response from server', response })\n });\n });\n\n // Mermaid diagrams\n mermaid.initialize({\n startOnLoad:true,\n sequence: {\n useMaxWidth: false,\n },\n themeCSS: '.actor { fill: #BDD5EA; stroke: #81B1DB; }',\n htmlLabels: true\n });\n});\n\n"],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3CA;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAjBA;AAmBA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAJA;AAzBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAFA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAJA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApFA;AAlCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC+BA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AA9DA;AAgEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AA3BA;AAtFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmCA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAHA;AAQA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnFA;AAqFA;AACA;AAAA;AADA;AAtHA;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAFA;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChHA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpZA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClMA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAEA;AACA;AAGA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AARA;AACA;AASA;AACA;AACA;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AARA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AArIA;;;;;;;;;;;;ACAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAHA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAJA;AAQA;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACvCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAEA;AA6BA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApEA;AACA;AAqEA;;;;;;;;;;;;AC/GA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAnCA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AArCA;;;;;;;;;;;;ACFA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/CA;AACA;AAgDA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AA5BA;AACA;AA8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApHA;AACA;AAqHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnFA;;;;;;;;;;;;ACvKA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;;;;AAGA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAEA;;;;;;AAKA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;;;;;;;;;;AASA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;;;;;;;;AAMA;AACA;AAEA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AAEA;;;;;;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAXA;AACA;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAxHA;AA2HA;AACA;AACA;AAFA;AAKA;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAFA;AADA;AAOA;AACA;AACA;AACA;AAFA;AADA;AAOA;AAEA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AACA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnFA;AAsFA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AACA;AAHA;AAMA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAcA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhFA;AAmFA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAGA;;;;;;;AAKA;AACA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AA5IA;AA+IA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AAEA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AADA;AAIA;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AAAA;AAGA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AAEA;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AADA;AAIA;AAEA;AACA;AACA;AAFA;AAKA;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA;AAoBA;AACA;AACA;AAFA;AAKA;AAAA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAaA;;;;;;;AAMA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;AAOA;AACA;AACA;AAEA;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;AAOA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAEA;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChmEA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAvGA;;;;;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3EA;;;;;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AADA;AAYA;AACA;AAjBA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AADA;AAJA;AASA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AANA;AAQA;;;;;;;;;;;;;;;A","sourceRoot":""}