(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["application"],{
/***/ "../../node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js?!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/bgreenberg2/Documents/dev/station/node_modules/css-loader/dist/cjs.js??ref--2-1!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/stylePostLoader.js!/Users/bgreenberg2/Documents/dev/station/node_modules/postcss-loader/src??ref--2-2!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "../../node_modules/@vonagevolta/volta2/dist/symbol sync recursive ^\\.\\/.*$":
/*!***********************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/@vonagevolta/volta2/dist/symbol sync ^\.\/.*$ ***!
\***********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var map = {
"./volta-brand-icons": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-brand-icons.svg",
"./volta-brand-icons.svg": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-brand-icons.svg",
"./volta-flag-icons": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-flag-icons.svg",
"./volta-flag-icons.svg": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-flag-icons.svg",
"./volta-icons": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-icons.svg",
"./volta-icons.svg": "../../node_modules/@vonagevolta/volta2/dist/symbol/volta-icons.svg"
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "../../node_modules/@vonagevolta/volta2/dist/symbol sync recursive ^\\.\\/.*$";
/***/ }),
/***/ "../../node_modules/@vonagevolta/volta2/images/logos sync recursive ^\\.\\/.*$":
/*!************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/@vonagevolta/volta2/images/logos sync ^\.\/.*$ ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var map = {
"./Vonage-api": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api.svg",
"./Vonage-api--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api--white.svg",
"./Vonage-api--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api--white.svg",
"./Vonage-api-changelog": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog.svg",
"./Vonage-api-changelog--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog--white.svg",
"./Vonage-api-changelog--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog--white.svg",
"./Vonage-api-changelog.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-changelog.svg",
"./Vonage-api-dashboard-vert": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert.svg",
"./Vonage-api-dashboard-vert--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert--white.svg",
"./Vonage-api-dashboard-vert--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert--white.svg",
"./Vonage-api-dashboard-vert.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-dashboard-vert.svg",
"./Vonage-api-developer": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer.svg",
"./Vonage-api-developer--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer--white.svg",
"./Vonage-api-developer--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer--white.svg",
"./Vonage-api-developer.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-developer.svg",
"./Vonage-api-support": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support.svg",
"./Vonage-api-support--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support--white.svg",
"./Vonage-api-support--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support--white.svg",
"./Vonage-api-support.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api-support.svg",
"./Vonage-api.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-api.svg",
"./Vonage-apis": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis.svg",
"./Vonage-apis--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis--white.svg",
"./Vonage-apis--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis--white.svg",
"./Vonage-apis.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-apis.svg",
"./Vonage-developer": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer.svg",
"./Vonage-developer--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer--white.svg",
"./Vonage-developer--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer--white.svg",
"./Vonage-developer.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-developer.svg",
"./Vonage-lettermark": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark.svg",
"./Vonage-lettermark--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark--white.svg",
"./Vonage-lettermark--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark--white.svg",
"./Vonage-lettermark.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-lettermark.svg",
"./Vonage-logo-collapsed": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-logo-collapsed.svg",
"./Vonage-logo-collapsed.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-logo-collapsed.svg",
"./Vonage-nexmo": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo.svg",
"./Vonage-nexmo--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo--white.svg",
"./Vonage-nexmo--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo--white.svg",
"./Vonage-nexmo-vert": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert.svg",
"./Vonage-nexmo-vert--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert--white.svg",
"./Vonage-nexmo-vert--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert--white.svg",
"./Vonage-nexmo-vert.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo-vert.svg",
"./Vonage-nexmo.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-nexmo.svg",
"./Vonage-tokbox": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox.svg",
"./Vonage-tokbox--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox--white.svg",
"./Vonage-tokbox--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox--white.svg",
"./Vonage-tokbox-vert": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert.svg",
"./Vonage-tokbox-vert--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert--white.svg",
"./Vonage-tokbox-vert--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert--white.svg",
"./Vonage-tokbox-vert.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox-vert.svg",
"./Vonage-tokbox.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-tokbox.svg",
"./Vonage-video-api": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api.svg",
"./Vonage-video-api--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api--white.svg",
"./Vonage-video-api--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api--white.svg",
"./Vonage-video-api-stacked": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked.svg",
"./Vonage-video-api-stacked--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked--white.svg",
"./Vonage-video-api-stacked--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked--white.svg",
"./Vonage-video-api-stacked.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api-stacked.svg",
"./Vonage-video-api.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-video-api.svg",
"./Vonage-wordmark": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark.svg",
"./Vonage-wordmark--white": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark--white.svg",
"./Vonage-wordmark--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark--white.svg",
"./Vonage-wordmark.svg": "../../node_modules/@vonagevolta/volta2/images/logos/Vonage-wordmark.svg",
"./favicon.ico": "../../node_modules/@vonagevolta/volta2/images/logos/favicon.ico",
"./volta-logo": "../../node_modules/@vonagevolta/volta2/images/logos/volta-logo.svg",
"./volta-logo.svg": "../../node_modules/@vonagevolta/volta2/images/logos/volta-logo.svg",
"./vonage-logo": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo.svg",
"./vonage-logo--white": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo--white.svg",
"./vonage-logo--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo--white.svg",
"./vonage-logo-collapsed--white": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo-collapsed--white.svg",
"./vonage-logo-collapsed--white.svg": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo-collapsed--white.svg",
"./vonage-logo.svg": "../../node_modules/@vonagevolta/volta2/images/logos/vonage-logo.svg"
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "../../node_modules/@vonagevolta/volta2/images/logos sync recursive ^\\.\\/.*$";
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js&":
/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js& ***!
\********************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _character_counter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./character_counter */ "./app/webpacker/javascript/components/concatenation/character_counter.js");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function () {
return {
body: 'It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.'
};
},
computed: {
smsInfo: function () {
return new _character_counter__WEBPACK_IMPORTED_MODULE_0__["default"](this.body).getInfo();
},
messages: function () {
return this.smsInfo.messages;
},
unicodeRequired: function () {
return this.smsInfo.unicodeRequired;
},
smsComposition: function () {
let count = this.smsInfo.charactersCount;
let characters = this.pluralize('character', count);
let messagesLength = this.messages.length;
let parts = this.pluralize('part', messagesLength);
return `${count} ${characters} sent in ${messagesLength} message ${parts}`;
}
},
methods: {
pluralize: function (singular, count) {
if (count === 1) {
return singular;
}
return `${singular}s`;
}
}
});
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js& ***!
\**********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
props: ['codeLanguage', 'codeLanguageSelectedWhilstOnPage', 'codeLanguageSetByUrl', 'currentUser', 'feedbackAuthor', 'githubUrl', 'recaptcha', 'source'],
data: function () {
return {
comment: '',
emailInput: '',
error: false,
feedbackComplete: undefined,
id: undefined,
recaptchaToken: undefined,
sentiment: undefined,
showExtendedFields: false,
submittingFeedback: undefined,
uploadingSentiment: false,
programmingLanguage: this.codeLanguage,
progammingLanguageSelectedWhilstOnPage: undefined,
progammingLanguageSetByUrl: undefined
};
},
mounted: function () {
document.addEventListener('codeLanguageChange', this.handleCodeLanguageChange.bind(this));
},
beforeDestroy: function () {
document.removeEventListener('codeLanguageChange', this.handleCodeLanguageChange.bind(this));
},
computed: {
email: function () {
return this.feedbackAuthor && this.feedbackAuthor.email || this.currentUser && this.currentUser.email || this.emailInput;
},
isSubmitDisabled: function () {
return this.submittingFeedback || this.comment === '';
}
},
methods: {
setSentiment: function (sentiment) {
this.sentiment = sentiment;
this.showExtendedFields = sentiment == 'negative';
this.uploadingSentiment = true;
this.error = undefined;
this.createOrUpdate();
},
parameters: function () {
return {
'g-recaptcha-response': this.recaptchaToken,
feedback_feedback: {
id: this.id,
sentiment: this.sentiment,
comment: this.comment,
email: this.email,
code_language: this.programmingLanguage,
code_language_selected_whilst_on_page: this.programmingLanguageSelectedWhilstOnPage,
code_language_set_by_url: this.programmingLanguageSetByUrl,
source: this.source
}
};
},
invisibleCaptchaCallback: function (recaptchaToken) {
this.recaptchaToken = recaptchaToken;
this.createOrUpdate();
},
createOrUpdate: function () {
if (this.recaptcha && this.recaptcha.enabled && !this.recaptcha.skip && this.recaptchaToken == undefined) {
const element = document.createElement('div');
document.getElementById('recaptcha-container').append(element);
const id = grecaptcha.render(element, {
sitekey: this.recaptcha.sitekey,
callback: this.invisibleCaptchaCallback.bind(this),
size: 'invisible',
badge: 'inline'
});
return grecaptcha.execute(id);
}
fetch('/feedback/feedbacks', {
method: 'POST',
credentials: 'same-origin',
body: JSON.stringify(this.parameters()),
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
if (response.ok) {
return response.json();
}
return Promise.reject({
message: 'Bad response from server',
response
});
}).then(payload => {
this.feedbackComplete = this.submittingFeedback;
this.uploadingSentiment = false;
this.submittingFeedback = false;
this.id = payload.id;
}).catch(error => {
console.log(error);
this.uploadingSentiment = false;
this.submittingFeedback = false;
if (error.response) {
error.response.json().then(payload => {
this.error = payload.error;
}).catch(() => {
this.error = "Something went wrong! Try again later";
});
} else {
this.error = "Something went wrong! Try again later";
}
});
},
submitFeedback: function () {
this.submittingFeedback = true;
this.createOrUpdate();
},
handleCodeLanguageChange: function (event) {
this.programmingLanguage = event.detail.language;
this.programmingSelectedWhilstOnPage = true;
this.programmingSetByUrl = false;
}
}
});
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js&":
/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js& ***!
\*******************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var jsrsasign__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jsrsasign */ "../../node_modules/jsrsasign/lib/jsrsasign.js");
/* harmony import */ var jsrsasign__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jsrsasign__WEBPACK_IMPORTED_MODULE_0__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function () {
return {
sub: '',
acl: '',
iat: '',
jti: '',
nbf: '',
applicationId: '',
validFor: '',
validForTimeUnit: 3600,
privateKey: ''
};
},
created: function () {
let tNow = jsrsasign__WEBPACK_IMPORTED_MODULE_0__["KJUR"].jws.IntDate.get('now');
let tEnd = tNow + 3600 * 6;
this.iat = tNow;
this.nbf = tNow;
this.jti = this.generateJti();
},
computed: {
invalidAcl: function () {
let invalid = false;
if (this.acl) {
try {
JSON.parse(this.acl);
} catch (e) {
invalid = true;
}
}
return invalid;
},
callout: function () {
let message;
if (this.privateKey) {
if (!this.applicationId) {
message = 'Next, provide an Application ID';
}
} else if (this.applicationId) {
message = 'Next, provide a Private Key';
} else {
message = '
Use your private key
and application_id
to create a JWT for your Nexmo Application
The JWT is generated on the client-side so your private key never leaves your browser.';
}
return message;
},
exp: function () {
let validFor = this.validFor || 6;
return this.iat + validFor * this.validForTimeUnit;
},
jwt: function () {
let result = '';
if (this.privateKey && this.applicationId) {
try {
result = this.generateJwt();
} catch (e) {
result = '';
}
}
return result;
},
invalidPrivateKey: function () {
let invalid = false;
if (this.privateKey && this.applicationId) {
try {
this.generateJwt();
} catch (e) {
invalid = true;
}
}
return invalid;
},
computedClass: function () {
if (this.invalidPrivateKey || this.invalidAcl) return 'Vlt-callout--critical';
if (this.applicationId && this.privateKey) return '';
if (this.applicationId || this.privateKey) return 'Vlt-callout--warning';
if (!this.applicationId && !this.privateKey) return 'Vlt-callout--tip';
}
},
methods: {
generateJti: function () {
let text = "";
let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (let i = 0; i < 12; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
},
buildHeader: function () {
return JSON.stringify({
typ: 'JWT',
alg: 'RS256'
});
},
buildPayload: function () {
let payload = {};
payload.iat = this.iat;
payload.exp = this.exp;
payload.jti = this.jti;
payload.application_id = this.applicationId;
if (this.sub) {
payload.sub = this.sub;
}
if (this.acl) {
payload.acl = JSON.parse(this.acl);
}
return JSON.stringify(payload);
},
generateJwt: function () {
let prvKey = jsrsasign__WEBPACK_IMPORTED_MODULE_0__["KEYUTIL"].getKey(this.privateKey);
return jsrsasign__WEBPACK_IMPORTED_MODULE_0__["KJUR"].jws.JWS.sign("RS256", this.buildHeader(), this.buildPayload(), prvKey);
}
}
});
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js& ***!
\**********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
props: ['hit'],
computed: {
badge: function () {
return this.hit.product;
},
description: function () {
return this.hit.description ? this.hit.description.substring(0, 150) : '';
},
showHeading: function () {
return this.hit.heading && this.hit.heading == this.hit.title;
},
snippet: function () {
return `...${this.hit._snippetResult.body.value}...`;
},
url: function () {
return `${this.hit.path}#${this.hit.anchor}`;
}
}
});
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js& ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var algoliasearch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! algoliasearch */ "../../node_modules/algoliasearch/dist/algoliasearch.umd.js");
/* harmony import */ var algoliasearch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(algoliasearch__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/debounce */ "../../node_modules/lodash/debounce.js");
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _NDPArticle_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NDPArticle.vue */ "./app/webpacker/javascript/components/search/NDPArticle.vue");
/* harmony import */ var _ZendeskArticle_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ZendeskArticle.vue */ "./app/webpacker/javascript/components/search/ZendeskArticle.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function () {
return {
analyticsTriggered: false,
client: undefined,
expanded: false,
loading: false,
query: '',
results: [],
analyticsStrongIndicationOfReadingTimer: undefined
};
},
created: function () {
this.client = algoliasearch__WEBPACK_IMPORTED_MODULE_0___default()(document.querySelector('meta[name=algolia_application_id]').getAttribute('content'), document.querySelector('meta[name=algolia_search_key]').getAttribute('content'));
},
mounted: function () {
if (document.querySelector('.Nxd-template')) {
document.querySelector('.Nxd-template').addEventListener('click', this.onClickOutside.bind(this));
}
},
onDestroy: function () {
if (document.querySelector('.Nxd-template')) {
document.querySelector('.Nxd-template').removeEventListener('click', this.onClickOutside.bind(this));
}
},
computed: {
showResults: function () {
return this.query != '';
}
},
methods: {
resultTitle: function (name) {
if (name == 'zendesk_nexmo_articles') {
return 'Knowledgebase';
} else if (name.includes('nexmo_developer')) {
return 'Nexmo Developer';
}
},
isZendeskArticle: function (result) {
return result.index == 'zendesk_nexmo_articles';
},
isNDPArticle: function (result) {
return result.index.includes('nexmo_developer');
},
hitKey: function (result, hit) {
return result.index + hit.objectID;
},
onClickOutside: function (event) {
if (this.showResults) {
this.reset();
}
if (this.expanded) {
this.expanded = false;
}
},
onEscDownHandler: function (event) {
if (!this.analyticsTriggered && this.query !== '') {
this.triggerAnalyticalSearch();
}
this.reset();
},
reset: function () {
this.resetAnalyticsListeners();
this.query = '';
this.results = [];
this.loading = false;
},
onInputHandler: function (event) {
event.stopPropagation();
if (this.query === '') {
this.reset();
} else {
lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(this.handleSearch.bind(this), 250)(event);
}
},
handleSearch: function (event) {
this.loading = this.query === '';
this.analyticsTriggered = false;
this.performSearch();
this.resetAnalyticsListeners();
this.analyticsStrongIndicationOfReadingTimer = setTimeout(this.triggerAnalyticalSearch, 2000);
window.addEventListener('mousemove', this.triggerAnalyticalSearch);
},
performSearch: function (analytics = false) {
const parameters = Array.from(document.querySelectorAll('meta[name=algolia_index]')).map(element => {
return {
indexName: element.getAttribute('content'),
query: this.query,
params: {
analytics: analytics,
hitsPerPage: analytics ? 1 : 4
}
};
});
const searchPromise = this.client.search(parameters);
if (!analytics) {
searchPromise.then(response => {
this.results = response['results'];
this.loading = false;
});
}
},
resetAnalyticsListeners: function () {
clearTimeout(this.analyticsStrongIndicationOfReadingTimer);
window.removeEventListener('mousemove', this.triggerAnalyticalSearch);
},
triggerAnalyticalSearch: function () {
this.performSearch(true);
this.analyticsTriggered = true;
this.resetAnalyticsListeners();
}
},
components: {
ZendeskArticle: _ZendeskArticle_vue__WEBPACK_IMPORTED_MODULE_3__["default"],
NDPArticle: _NDPArticle_vue__WEBPACK_IMPORTED_MODULE_2__["default"]
}
});
/***/ }),
/***/ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/babel-loader/lib??ref--7-0!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js& ***!
\**************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
props: ['hit'],
computed: {
badge: function () {
return this.hit.section.full_path;
},
snippet: function () {
return `...${this.hit._snippetResult.body_safe.value}...`;
},
title: function () {
return this.hit.title;
},
url: function () {
return `https://help.nexmo.com/hc/en-us/articles/${this.hit.id}`;
}
}
});
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "Vlt-box" }, [
_c("h2", [_vm._v("Try it out")]),
_vm._v(" "),
_c("h4", [_vm._v("Message")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-textarea" }, [
_c("textarea", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.body,
expression: "body"
}
],
domProps: { value: _vm.body },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.body = $event.target.value
}
}
})
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-margin--top2" }),
_vm._v(" "),
_c("h4", [_vm._v("Data")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-box Vlt-box--white Vlt-box--lesspadding" }, [
_c("div", { staticClass: "Vlt-grid" }, [
_c("div", { staticClass: "Vlt-col Vlt-col--1of3" }, [
_c("b", [_vm._v("Unicode is Required?")]),
_vm._v(" "),
_vm.unicodeRequired
? _c("i", {
staticClass: "icon icon--large icon-check-circle color--success"
})
: _c("i", {
staticClass: "icon icon--large icon-times-circle color--error"
})
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-col Vlt-col--2of3" }),
_vm._v(" "),
_c("hr", { staticClass: "hr--shorter" }),
_vm._v(" "),
_vm._m(0),
_vm._v(" "),
_c("div", {
staticClass: "Vlt-col Vlt-col--2of3",
attrs: { id: "sms-composition" },
domProps: { innerHTML: _vm._s(_vm.smsComposition) }
})
])
]),
_vm._v(" "),
_c("h4", [_vm._v("Parts")]),
_vm._v(" "),
_c(
"div",
{
staticClass: "Vlt-box Vlt-box--white Vlt-box--lesspadding",
attrs: { id: "parts" }
},
_vm._l(_vm.messages, function(message, index) {
return _c("div", { staticClass: "Vlt-grid" }, [
_c("div", { staticClass: "Vlt-col Vlt-col--1of3" }, [
_c("b", [_vm._v("Part " + _vm._s(index + 1))])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-col Vlt-col--2of3" }, [
_c("code", [
_vm.messages.length > 1
? _c("span", [
_c("span", { staticClass: "Vlt-badge Vlt-badge--blue" }, [
_vm._v("User Defined Header")
]),
_vm._v(" "),
_c("span", [_vm._v(" ")])
])
: _vm._e(),
_vm._v("\n " + _vm._s(message) + "\n ")
])
]),
_vm._v(" "),
index + 1 !== _vm.messages.length
? _c("hr", { staticClass: "hr--shorter" })
: _vm._e()
])
}),
0
)
])
}
var staticRenderFns = [
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "Vlt-col Vlt-col--1of3" }, [
_c("b", [_vm._v("Length")])
])
}
]
render._withStripped = true
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ staticClass: "Vlt-box Vlt-box--left Vlt-bg-grey-lighter feedback" },
[
_c("div", { staticClass: "Vlt-grid" }, [
_c("div", { staticClass: "Vlt-col Vlt-col--3of4" }, [
_c("h4", [_vm._v("Was this documentation helpful?")]),
_vm._v(" "),
_c("div", { staticClass: "sentiments" }, [
_vm.uploadingSentiment
? _c("div", [
_c("div", { staticClass: "Vlt-spinner Vlt-spinner--small" })
])
: _vm._e(),
_vm._v(" "),
_c("div", [
_c(
"span",
{
class: [
{ "Vlt-btn_active": _vm.sentiment == "positive" },
"Vlt-btn Vlt-btn--large Vlt-btn--tertiary Vlt-btn--icon Vlt-bg-green"
],
on: {
click: function($event) {
return _vm.setSentiment("positive")
}
}
},
[
_c("svg", { staticClass: "Vlt-white" }, [
_c("use", {
attrs: {
"xlink:href": "/symbol/volta-icons.svg#Vlt-icon-happy"
}
})
])
]
),
_vm._v(" "),
_c(
"span",
{
class: [
{ "Vlt-btn_active": _vm.sentiment == "negative" },
"Vlt-btn Vlt-btn--large Vlt-btn--tertiary Vlt-btn--icon Vlt-bg-red"
],
on: {
click: function($event) {
return _vm.setSentiment("negative")
}
}
},
[
_c("svg", { staticClass: "Vlt-white" }, [
_c("use", {
attrs: {
"xlink:href": "/symbol/volta-icons.svg#Vlt-icon-unhappy"
}
})
])
]
)
])
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-col Vlt-col--right Vlt-col--1of4" }, [
_vm.githubUrl
? _c("span", { attrs: { id: "feedback__improve" } }, [
_c("svg", { staticClass: "Vlt-icon Vlt-black" }, [
_c("use", {
attrs: {
"xlink:href": "/symbol/volta-icons.svg#Vlt-icon-github"
}
})
]),
_vm._v(" "),
_c(
"a",
{
staticClass: "Vlt-text-link Vlt-black",
attrs: { href: _vm.githubUrl, target: "_blank" }
},
[_vm._v(" Improve this page")]
)
])
: _vm._e()
])
]),
_vm._v(" "),
_vm.error
? _c("p", { staticClass: "form__error" }, [_vm._v(_vm._s(_vm.error))])
: _vm._e(),
_vm._v(" "),
(_vm.sentiment && !_vm.showExtendedFields) || _vm.feedbackComplete
? _c("div", [
_c("hr"),
_vm._v(" "),
_c("p", [_vm._v("Great! Thanks for the feedback.")])
])
: _vm._e(),
_vm._v(" "),
_vm.showExtendedFields && _vm.id && !_vm.feedbackComplete
? _c("div", [
_c("hr"),
_vm._v(" "),
_vm._m(0),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_vm._m(1),
_vm._v(" "),
_vm._m(2),
_vm._v(" "),
_c("div", { staticClass: "Vlt-textarea" }, [
_c("textarea", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.comment,
expression: "comment"
}
],
domProps: { value: _vm.comment },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.comment = $event.target.value
}
}
})
])
]),
_vm._v(" "),
!_vm.currentUser
? _c(
"div",
{
staticClass: "Vlt-form__element Vlt-form__element--elastic"
},
[
_vm._m(3),
_vm._v(" "),
_vm._m(4),
_vm._v(" "),
_c("div", { staticClass: "Vlt-input" }, [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.emailInput,
expression: "emailInput"
}
],
attrs: {
type: "email",
size: "20",
placeholder: "email",
id: "email"
},
domProps: { value: _vm.emailInput },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.emailInput = $event.target.value
}
}
})
])
]
)
: _vm._e(),
_vm._v(" "),
_c("input", {
staticClass: "Vlt-btn Vlt-btn--primary Vlt-btn--app",
attrs: {
disabled: _vm.isSubmitDisabled,
type: "submit",
value: "Send Feedback"
},
on: { click: _vm.submitFeedback }
}),
_vm._v(" "),
_vm._m(5)
])
: _vm._e(),
_vm._v(" "),
_vm.currentUser
? _c("p", [
_c("br"),
_vm._v(
"\n Logged in as " + _vm._s(_vm.currentUser.email) + ".\n "
),
_c("a", { attrs: { href: _vm.currentUser.signout_path } }, [
_vm._v("Sign out")
])
])
: _vm._e()
]
)
}
var staticRenderFns = [
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("p", [
_vm._v(
"We see that this page didn’t meet your expectations. We’re really sorry!"
),
_c("br")
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("p", [
_c("strong", [
_vm._v(
"We’d like a chance to fix that. Please would you give us some more information?"
)
])
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("label", { staticClass: "Vlt-label" }, [
_vm._v("What didn’t work for me: "),
_c("small", { staticClass: "Vlt-grey-darker" }, [_vm._v("(required)")])
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("p", [
_c("strong", [
_vm._v("Can we let you know when we've solved your issue?")
])
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("label", { staticClass: "Vlt-label" }, [
_vm._v("My email: "),
_c("small", { staticClass: "Vlt-grey-darker" }, [_vm._v("(optional)")])
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("p", [
_vm._v("Your data will be treated in accordance with our "),
_c("a", { attrs: { href: "https://www.nexmo.com/privacy-policy" } }, [
_vm._v("Privacy Policy")
]),
_vm._v(", which sets out the rights you have in respect of your data.")
])
}
]
render._withStripped = true
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30& ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "Vlt-card" }, [
_c("h1", [_vm._v("JWT Generator")]),
_vm._v(" "),
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: !_vm.jwt,
expression: "!jwt"
}
],
class: [_vm.computedClass, "Vlt-callout"]
},
[
_c("i"),
_vm._v(" "),
_vm.invalidAcl
? _c("div", { staticClass: "Vlt-callout__content" }, [
_vm._v("\n Invalid ACL provided. Must be JSON\n ")
])
: _vm.invalidPrivateKey
? _c("div", { staticClass: "Vlt-callout__content" }, [
_vm._v("\n Invalid private key provided\n ")
])
: _vm._e(),
_vm._v(" "),
!_vm.invalidPrivateKey && !_vm.invalidAcl
? _c("div", {
staticClass: "Vlt-callout__content",
domProps: { innerHTML: _vm._s(_vm.callout) }
})
: _vm._e()
]
),
_vm._v(" "),
_c("div", { staticClass: "Vlt-grid" }, [
_c("div", { staticClass: "Vlt-col" }, [
_c("h2", [_vm._v("Parameters")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c("label", { staticClass: "Vlt-label" }, [_vm._v("Private Key")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-textarea" }, [
_c("textarea", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.privateKey,
expression: "privateKey"
}
],
attrs: { rows: "8", cols: "50", id: "private-key" },
domProps: { value: _vm.privateKey },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.privateKey = $event.target.value
}
}
})
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c("label", { staticClass: "Vlt-label" }, [_vm._v("Application ID")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-input" }, [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.applicationId,
expression: "applicationId"
}
],
attrs: { id: "application-id" },
domProps: { value: _vm.applicationId },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.applicationId = $event.target.value
}
}
})
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c(
"label",
{
staticClass: "Vlt-label",
attrs: { htmlFor: "example-input-icon-button" }
},
[_vm._v("Valid For")]
),
_vm._v(" "),
_c("div", { staticClass: "Vlt-composite" }, [
_c("div", { staticClass: "Vlt-input" }, [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model.number",
value: _vm.validFor,
expression: "validFor",
modifiers: { number: true }
}
],
attrs: { type: "number", placeholder: "6" },
domProps: { value: _vm.validFor },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.validFor = _vm._n($event.target.value)
},
blur: function($event) {
return _vm.$forceUpdate()
}
}
})
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-composite__append" }, [
_c("div", { staticClass: "Vlt-native-dropdown" }, [
_c(
"select",
{
directives: [
{
name: "model",
rawName: "v-model.number",
value: _vm.validForTimeUnit,
expression: "validForTimeUnit",
modifiers: { number: true }
}
],
attrs: { defaultValue: "3600" },
on: {
change: function($event) {
var $$selectedVal = Array.prototype.filter
.call($event.target.options, function(o) {
return o.selected
})
.map(function(o) {
var val = "_value" in o ? o._value : o.value
return _vm._n(val)
})
_vm.validForTimeUnit = $event.target.multiple
? $$selectedVal
: $$selectedVal[0]
}
}
},
[
_c("option", { attrs: { value: "1" } }, [
_vm._v("Seconds")
]),
_vm._v(" "),
_c("option", { attrs: { value: "60" } }, [
_vm._v("Minutes")
]),
_vm._v(" "),
_c("option", { attrs: { value: "3600" } }, [
_vm._v("Hours")
]),
_vm._v(" "),
_c("option", { attrs: { value: "86400" } }, [
_vm._v("Days")
])
]
)
])
])
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c("label", { staticClass: "Vlt-label" }, [_vm._v("Sub (optional)")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-input" }, [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.sub,
expression: "sub"
}
],
domProps: { value: _vm.sub },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.sub = $event.target.value
}
}
})
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c("label", { staticClass: "Vlt-label" }, [_vm._v("ACL (optional)")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-textarea" }, [
_c("textarea", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.acl,
expression: "acl"
}
],
attrs: { rows: "4", cols: "50", id: "acl" },
domProps: { value: _vm.acl },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.acl = $event.target.value
}
}
})
])
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-col" }, [
_c("h2", [_vm._v("Encoded")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-form__element" }, [
_c("label", { staticClass: "Vlt-label" }, [_vm._v("Your JWT")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-textarea" }, [
_c("textarea", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.jwt,
expression: "jwt"
}
],
attrs: { rows: "29", cols: "50", id: "jwt" },
domProps: { value: _vm.jwt },
on: {
input: function($event) {
if ($event.target.composing) {
return
}
_vm.jwt = $event.target.value
}
}
})
])
])
])
]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-grid" }, [
_c("div", { staticClass: "Vlt-col" }, [
_c("h2", [_vm._v("Decoded")]),
_vm._v(" "),
_c("div", { staticClass: "Vlt-table Vlt-table--data" }, [
_c("table", [
_vm._m(0),
_vm._v(" "),
_c("tbody", [
_c("tr", [
_vm._m(1),
_c("td", [_vm._v(_vm._s(_vm.applicationId))]),
_c("td", [
_vm._v("The application ID this JWT uses for authentication")
])
]),
_vm._v(" "),
_c("tr", [
_vm._m(2),
_c("td", [_vm._v(_vm._s(_vm.iat))]),
_c("td", [_vm._v("The time at which the token was issued")])
]),
_vm._v(" "),
_c("tr", [
_vm._m(3),
_c("td", [_vm._v(_vm._s(_vm.nbf))]),
_c("td", [
_vm._v("The time at which the token should become valid")
])
]),
_vm._v(" "),
_c("tr", [
_vm._m(4),
_c("td", [_vm._v(_vm._s(_vm.exp))]),
_c("td", [_vm._v("The time at which the token should expire")])
]),
_vm._v(" "),
_c("tr", [
_vm._m(5),
_c("td", [_vm._v(_vm._s(_vm.sub))]),
_c("td", [
_vm._v(
"The subject identified by the JWT (only used for the Client SDKs)"
)
])
]),
_vm._v(" "),
_c("tr", [
_vm._m(6),
_c("td", [_vm._v(_vm._s(_vm.acl))]),
_c("td", [
_vm._v("A list of permissions that this token will have")
])
]),
_vm._v(" "),
_c("tr", [
_vm._m(7),
_c("td", [_vm._v(_vm._s(_vm.jti))]),
_c("td", [_vm._v("A unique identifier for the JWT")])
])
])
])
])
])
])
])
}
var staticRenderFns = [
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("thead", [
_c("tr", [
_c("th", [_vm._v("Name")]),
_vm._v(" "),
_c("th", [_vm._v("Value")]),
_vm._v(" "),
_c("th", [_vm._v("Meaning")])
])
])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("application_id")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("iat")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("nbf")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("exp")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("sub")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("acl")])])
},
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("td", [_c("code", [_vm._v("jti")])])
}
]
render._withStripped = true
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb&":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb& ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "Nxd-search__result" }, [
_c(
"a",
{ staticClass: "Nxd-search__result__link", attrs: { href: _vm.url } },
[
_c("div", [
_c("h6", { staticClass: "Vlt-blue-dark" }, [
_vm._v("\n " + _vm._s(_vm.hit.title) + "\n "),
_vm.showHeading
? _c("small", [_vm._v(" > " + _vm._s(_vm.hit.heading))])
: _vm._e()
]),
_vm._v(" "),
_c("p", { staticClass: "Nxd-search__result__desc" }, [
_vm._v(_vm._s(_vm.description))
]),
_vm._v(" "),
_c("p", {
staticClass: "Nxd-search__result__highlight",
domProps: { innerHTML: _vm._s(_vm.snippet) }
}),
_vm._v(" "),
_c(
"span",
{ staticClass: "Vlt-badge Vlt-badge--grey Nxd-search__badge" },
[_vm._v(_vm._s(_vm.badge))]
)
])
]
)
])
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true&":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true& ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", [
_c("div", [
_c("div", { staticClass: "Vlt-composite" }, [
_c(
"div",
{
staticClass: "Vlt-composite__prepend Vlt-composite__prepend--icon"
},
[
_c("svg", [
_c("use", {
attrs: {
"xlink:href": "/symbol/volta-icons.svg#Vlt-icon-search"
}
})
])
]
),
_vm._v(" "),
_c("div", { staticClass: "Vlt-input Vlt-input--round" }, [
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.query,
expression: "query"
}
],
attrs: {
name: "query",
placeholder: "Search",
id: "searchbox-test",
type: "text",
autoComplete: "off"
},
domProps: { value: _vm.query },
on: {
keydown: function($event) {
if (
!$event.type.indexOf("key") &&
_vm._k($event.keyCode, "esc", 27, $event.key, [
"Esc",
"Escape"
])
) {
return null
}
return _vm.onEscDownHandler($event)
},
input: [
function($event) {
if ($event.target.composing) {
return
}
_vm.query = $event.target.value
},
_vm.onInputHandler
]
}
})
])
])
]),
_vm._v(" "),
_c(
"svg",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.query,
expression: "query"
}
],
staticClass: "Nxd-search__clear"
},
[
_c("use", {
attrs: { "xlink:href": "/symbol/volta-icons.svg#Vlt-icon-cross" }
})
]
),
_vm._v(" "),
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.showResults,
expression: "showResults"
}
],
staticClass: "Nxd-search"
},
[
_c("div", { staticClass: "Nxd-search__wrapper" }, [
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.loading,
expression: "loading"
}
],
staticClass: "spinner"
},
[_c("i", { staticClass: "icon icon-cog" })]
),
_vm._v(" "),
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: !_vm.loading,
expression: "!loading"
}
],
staticClass: "Nxd-search__wrapper"
},
_vm._l(_vm.results, function(result) {
return _c(
"div",
{ key: result.index, staticClass: "Nxd-search__results" },
[
_c("h3", { staticClass: "Nx-search__title" }, [
_vm._v(
"\n " +
_vm._s(_vm.resultTitle(result.index)) +
"\n "
)
]),
_vm._v(" "),
result.hits.length > 0
? _c("div", [
_vm.isZendeskArticle(result)
? _c(
"div",
_vm._l(result.hits, function(hit) {
return _c("ZendeskArticle", {
key: _vm.hitKey(result, hit),
attrs: { hit: hit }
})
}),
1
)
: _vm.isNDPArticle(result)
? _c(
"div",
_vm._l(result.hits, function(hit) {
return _c("NDPArticle", {
key: _vm.hitKey(result, hit),
attrs: { hit: hit }
})
}),
1
)
: _vm._e()
])
: _c("div", [_vm._m(0, true)])
]
)
}),
0
)
])
]
)
])
}
var staticRenderFns = [
function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("p", { staticClass: "Nxd-search--no-results" }, [
_c("i", [_vm._v("No results")])
])
}
]
render._withStripped = true
/***/ }),
/***/ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9&":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** /Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!/Users/bgreenberg2/Documents/dev/station/node_modules/vue-loader/lib??vue-loader-options!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9& ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "Nxd-search__result" }, [
_c(
"a",
{
staticClass: "Nxd-search__result__link",
attrs: { href: _vm.url, target: "_blank" }
},
[
_c("div", [
_c("h6", { staticClass: "Vlt-blue-dark" }, [
_vm._v(_vm._s(_vm.title))
]),
_vm._v(" "),
_c("p", {
staticClass: "Nxd-search__result__highlight",
domProps: { innerHTML: _vm._s(_vm.snippet) }
}),
_vm._v(" "),
_c(
"span",
{ staticClass: "Vlt-badge Vlt-badge--grey Nxd-search__badge" },
[_vm._v(_vm._s(_vm.badge))]
)
])
]
)
])
}
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ "./app/webpacker/javascript/api_status/index.js":
/*!******************************************************!*\
!*** ./app/webpacker/javascript/api_status/index.js ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var whatwg_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! whatwg-fetch */ "../../node_modules/whatwg-fetch/fetch.js");
/* harmony default export */ __webpack_exports__["default"] = (() => {
fetch('https://xb8glk41jfrv.statuspage.io/api/v2/status.json').then(response => response.json()).then(payload => {
var color;
switch (payload.status.indicator) {
case 'major':
color = 'red';
case 'critical':
color = 'red';
case 'minor':
color = 'yellow';
default:
color = 'green';
}
$('.Nxd-api-status').text(payload.status.description).addClass(`Vlt-badge--` + color);
});
});
/***/ }),
/***/ "./app/webpacker/javascript/careers/index.js":
/*!***************************************************!*\
!*** ./app/webpacker/javascript/careers/index.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Careers; });
class Careers {
constructor() {
this.departments = [];
this.locations = [];
this.setupListeners();
}
showCareer(career) {
const department = career.getElementsByClassName('department')[0].dataset.department;
const location = career.getElementsByClassName('location')[0].dataset.location;
return (this.departments.includes(department) || this.departments.length === 0) && (this.locations.some(l => location.includes(l) || l.includes(location)) || this.locations.length === 0);
}
toggleCareers() {
Array.from(document.getElementsByClassName('Nxd-career')).forEach(function (career) {
career.classList.toggle('hide', !this.showCareer(career));
}, this);
document.getElementById('no-results').classList.toggle('hide', document.querySelectorAll('.Nxd-career:not(.hide)').length !== 0);
document.querySelectorAll('.Nxd-career:not(.hide)').forEach(function (career, index) {
career.classList.toggle('striped', index % 2 == 0);
});
}
updateURL() {
let currentUrl = new URL(window.location.href);
let query = {};
if (this.departments.length > 0) {
Object.assign(query, {
departments: this.departments
});
}
if (this.locations.length > 0) {
Object.assign(query, {
locations: this.locations.map(l => l.split(',')[0])
});
}
let params = new URLSearchParams(query);
currentUrl.search = params;
window.history.pushState({}, 'Careers', currentUrl);
}
dropdownValue(length, item) {
let value;
switch (length) {
case 0:
value = `${item}s`;
break;
case 1:
value = `1 ${item} selected`;
break;
default:
value = `${length} ${item}s selected`;
}
return value;
}
updateDepartmentsDropdown() {
let value = this.dropdownValue(this.departments.length, 'Department');
document.querySelector('#department-filter button').innerText = value;
}
updateLocationsDropdown() {
let value = this.dropdownValue(this.locations.length, 'Location');
document.querySelector('#location-filter button').innerText = value;
}
departmentChangeHandler(event) {
if (event.target.checked) {
this.departments.push(event.target.value);
} else {
this.departments.splice(this.departments.indexOf(event.target.value), 1);
}
this.updateURL();
this.updateDepartmentsDropdown();
this.toggleCareers();
}
locationChangeHandler(event) {
if (event.target.checked) {
this.locations.push(event.target.value);
} else {
this.locations.splice(this.locations.indexOf(event.target.value), 1);
}
this.updateURL();
this.updateLocationsDropdown();
this.toggleCareers();
}
setFiltersFromURL() {
let params = new URLSearchParams(window.location.search);
this.departments = [];
this.locations = [];
params.get('departments') && params.get('departments').split(',').forEach(function (department) {
this.departments.push(department);
document.getElementById(department).checked = true;
}, this);
params.get('locations') && params.get('locations').split(',').forEach(function (location) {
let checkbox = document.querySelector(`[id^='${location}']`);
if (checkbox) {
this.locations.push(location);
checkbox.checked = true;
}
}, this);
this.updateDepartmentsDropdown();
this.updateLocationsDropdown();
this.toggleCareers();
}
setupListeners() {
const self = this;
window.addEventListener('load', function () {
if (!document.getElementById('careers')) {
return;
}
self.toggleCareers();
document.getElementById('department-filter').addEventListener('change', self.departmentChangeHandler.bind(self));
document.getElementById('location-filter').addEventListener('change', self.locationChangeHandler.bind(self));
self.setFiltersFromURL();
});
window.addEventListener('popstate', function (event) {
if (!document.getElementById('careers')) {
return;
}
self.setFiltersFromURL();
});
}
}
/***/ }),
/***/ "./app/webpacker/javascript/code_snippet_events/index.js":
/*!***************************************************************!*\
!*** ./app/webpacker/javascript/code_snippet_events/index.js ***!
\***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (() => {
let hasTriggeredCopyStat = {};
let hasTriggeredLinkStat = {}; // Track copy to clipboard usage
var clipboard = new Clipboard('.copy-button', {
text: function (trigger) {
return $(trigger).next().find('.main-code').text();
}
});
clipboard.on('success', function (e) {
let trigger = $(e.trigger);
let params = {
"language": trigger.attr("data-lang"),
"snippet": trigger.attr("data-block"),
"section": trigger.attr("data-section"),
"event": "copy"
};
let key = params['language'] + params['section'] + params['snippet']; // We only want to track each copy once per page load
if (hasTriggeredCopyStat[key]) {
return true;
}
trigger.find('span').text('Copied');
fetch(createRequest(params)).then(response => {
if (response.ok) {
return response.json();
}
return Promise.reject({
message: 'Bad response from server',
response
});
}).then(payload => {
hasTriggeredCopyStat[key] = true;
}); // Can we point them to the dependencies too?
if (trigger.parent().hasClass("main-code")) {
trigger.parent().parent().find(".configure-dependencies").prepend("Don't forget me!");
}
});
clipboard.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
}); // Track source link usage
$(document).on('mousedown', '.source-link', function (e) {
if (e.which === 3) {
return;
}
let trigger = $(this);
let section = trigger.attr("data-section");
let params = {
"language": trigger.attr("data-lang"),
"snippet": trigger.attr("data-block"),
"section": section,
"event": "source"
};
let key = params['language'] + params['section'];
if (hasTriggeredLinkStat[key]) {
return true;
}
fetch(createRequest(params)).then(response => {
if (response.ok) {
return response.json();
}
return Promise.reject({
message: 'Bad response from server',
response
});
}).then(payload => {
hasTriggeredLinkStat[key] = true;
});
});
});
function createRequest(params) {
return new Request('/usage/code_snippet', {
method: 'POST',
credentials: 'same-origin',
body: JSON.stringify(params),
headers: {
'Content-Type': 'application/json'
}
});
}
/***/ }),
/***/ "./app/webpacker/javascript/components/concatenation/Concatenation.vue":
/*!*****************************************************************************!*\
!*** ./app/webpacker/javascript/components/concatenation/Concatenation.vue ***!
\*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Concatenation_vue_vue_type_template_id_6b3458a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true& */ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&");
/* harmony import */ var _Concatenation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Concatenation.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _Concatenation_vue_vue_type_style_index_0_id_6b3458a9_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css& */ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_Concatenation_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_Concatenation_vue_vue_type_template_id_6b3458a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_Concatenation_vue_vue_type_template_id_6b3458a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"6b3458a9",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/concatenation/Concatenation.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js& ***!
\******************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Concatenation.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&":
/*!**************************************************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css& ***!
\**************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../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??ref--2-2!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css& */ "../../node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js?!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=style&index=0&id=6b3458a9&scoped=true&lang=css&");
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_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___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _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___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _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___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ "./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&":
/*!************************************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true& ***!
\************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/concatenation/Concatenation.vue?vue&type=template&id=6b3458a9&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/components/concatenation/character_counter.js":
/*!********************************************************************************!*\
!*** ./app/webpacker/javascript/components/concatenation/character_counter.js ***!
\********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var lodash_difference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/difference */ "../../node_modules/lodash/difference.js");
/* harmony import */ var lodash_difference__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_difference__WEBPACK_IMPORTED_MODULE_0__);
const GSM_STANDARD_CHARS = ['@', '0', '¡', 'P', '¿', 'p', '£', '_', '!', '1', 'A', 'Q', 'a', 'q', '$', '"', '2', 'B', 'R', 'b', 'r', '¥', '?', '#', '3', 'C', 'S', 'c', 's', 'è', '?', '4', 'D', 'T', 'd', 't', 'é', '?', '%', '5', 'E', 'U', 'e', 'u', 'ù', '6', 'F', 'V', 'f', 'v', 'ì', '?', "'", '7', 'G', 'W', 'g', 'w', 'ò', '(', '8', 'H', 'X', 'h', 'x', 'Ç', ')', '9', 'I', 'Y', 'i', 'y', '*', ':', 'J', 'Z', 'j', 'z', 'Ø', '+', ';', 'K', 'Ä', 'k', 'ä', 'Æ', ',', '<', 'L', 'l', 'ö', 'æ', '-', '=', 'M', 'Ñ', 'm', 'ñ', 'Å', 'ß', '.', '>', 'N', 'Ü', 'n', 'ü', 'å', 'É', '/', 'O', '§', 'o', 'à', 'Δ', 'Φ', 'Γ', 'Λ', 'Ω', 'Π', 'Ψ', 'Σ', 'Θ', 'Ξ', 'Ö', 'Ä', 'Ü', 'ø', ' ', '\r', '\n'];
const GSM_EXTENDED_CHARS = ['|', '^', '€', '{', '}', '[', ']', '~', '\\'];
const BYTE_SIZE = 8;
const CHARACTER_SIZE = 7;
const GSM_METADATA_LENGTH = 7;
const GSM_METADATA_SIZE = GSM_METADATA_LENGTH * CHARACTER_SIZE;
const GSM_MAX_SIZE = 140 * BYTE_SIZE;
class CharacterCounter {
constructor(text) {
this.text = text;
}
getInfo() {
let messages = this.getMessages();
return {
messages: messages,
unicodeRequired: this.isUnicodeRequired(),
charactersCount: messages.reduce(function (sum, sms) {
return sum + sms.length;
}, 0)
};
}
isUnicodeRequired() {
let remainder = lodash_difference__WEBPACK_IMPORTED_MODULE_0___default()([...this.text], [...GSM_STANDARD_CHARS, ...GSM_EXTENDED_CHARS]);
return remainder.length !== 0;
}
getMessages() {
return this.splitIntoSMS(GSM_MAX_SIZE);
}
splitIntoSMS(maxSize) {
let index = 0;
let messages = [];
let text = this.text;
while (index <= this.text.length) {
let sms = this.getSMS(text, maxSize);
messages.push(sms);
text = text.slice(sms.length);
index += sms.length + 1;
}
return messages;
}
getSMS(text, maxSize) {
let index = 0,
currentSize = 0;
const maxSizeWithMeta = maxSize - GSM_METADATA_SIZE;
while (currentSize + this.getCharSize(text[index]) <= maxSizeWithMeta && index < text.length) {
currentSize += this.getCharSize(text[index]);
index += 1;
}
if (this.getTextSize(text.slice(index)) + currentSize <= maxSize && text.length - index <= GSM_METADATA_LENGTH) {
index = text.length;
}
return text.slice(0, index);
}
getTextSize(text) {
return [...text].map(this.getCharSize, this).reduce(function (sum, c) {
return sum + c;
}, 0);
}
getSizeInBytes() {
return Math.ceil(this.getTextSize(this.text) / BYTE_SIZE);
}
getCharSize(character) {
if (!character) {
return 0;
}
if (this.isUnicodeRequired()) {
return character.length * BYTE_SIZE * 2;
} else if (GSM_EXTENDED_CHARS.includes(character)) {
return CHARACTER_SIZE * 2;
} else {
return CHARACTER_SIZE;
}
}
}
/* harmony default export */ __webpack_exports__["default"] = (CharacterCounter);
/***/ }),
/***/ "./app/webpacker/javascript/components/feedback/Feedback.vue":
/*!*******************************************************************!*\
!*** ./app/webpacker/javascript/components/feedback/Feedback.vue ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Feedback_vue_vue_type_template_id_93ebdc52_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Feedback.vue?vue&type=template&id=93ebdc52&scoped=true& */ "./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&");
/* harmony import */ var _Feedback_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Feedback.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_Feedback_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_Feedback_vue_vue_type_template_id_93ebdc52_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_Feedback_vue_vue_type_template_id_93ebdc52_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"93ebdc52",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/feedback/Feedback.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js&":
/*!********************************************************************************************!*\
!*** ./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js& ***!
\********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Feedback.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&":
/*!**************************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true& ***!
\**************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Feedback.vue?vue&type=template&id=93ebdc52&scoped=true& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/feedback/Feedback.vue?vue&type=template&id=93ebdc52&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue":
/*!****************************************************************************!*\
!*** ./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue ***!
\****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _JwtGenerator_vue_vue_type_template_id_1da9ba30___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JwtGenerator.vue?vue&type=template&id=1da9ba30& */ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30&");
/* harmony import */ var _JwtGenerator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JwtGenerator.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_JwtGenerator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_JwtGenerator_vue_vue_type_template_id_1da9ba30___WEBPACK_IMPORTED_MODULE_0__["render"],
_JwtGenerator_vue_vue_type_template_id_1da9ba30___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js&":
/*!*****************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js& ***!
\*****************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./JwtGenerator.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30&":
/*!***********************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30& ***!
\***********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./JwtGenerator.vue?vue&type=template&id=1da9ba30& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue?vue&type=template&id=1da9ba30&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/components/search/NDPArticle.vue":
/*!*******************************************************************!*\
!*** ./app/webpacker/javascript/components/search/NDPArticle.vue ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _NDPArticle_vue_vue_type_template_id_71992deb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NDPArticle.vue?vue&type=template&id=71992deb& */ "./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb&");
/* harmony import */ var _NDPArticle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NDPArticle.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_NDPArticle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_NDPArticle_vue_vue_type_template_id_71992deb___WEBPACK_IMPORTED_MODULE_0__["render"],
_NDPArticle_vue_vue_type_template_id_71992deb___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/search/NDPArticle.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js&":
/*!********************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js& ***!
\********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./NDPArticle.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb&":
/*!**************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb& ***!
\**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./NDPArticle.vue?vue&type=template&id=71992deb& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/NDPArticle.vue?vue&type=template&id=71992deb&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/components/search/Search.vue":
/*!***************************************************************!*\
!*** ./app/webpacker/javascript/components/search/Search.vue ***!
\***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Search_vue_vue_type_template_id_4abd9ef7_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Search.vue?vue&type=template&id=4abd9ef7&scoped=true& */ "./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true&");
/* harmony import */ var _Search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Search.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_Search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_Search_vue_vue_type_template_id_4abd9ef7_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_Search_vue_vue_type_template_id_4abd9ef7_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"4abd9ef7",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/search/Search.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js&":
/*!****************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js& ***!
\****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/Search.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true&":
/*!**********************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true& ***!
\**********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=template&id=4abd9ef7&scoped=true& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/Search.vue?vue&type=template&id=4abd9ef7&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/components/search/ZendeskArticle.vue":
/*!***********************************************************************!*\
!*** ./app/webpacker/javascript/components/search/ZendeskArticle.vue ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ZendeskArticle_vue_vue_type_template_id_198076e9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ZendeskArticle.vue?vue&type=template&id=198076e9& */ "./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9&");
/* harmony import */ var _ZendeskArticle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ZendeskArticle.vue?vue&type=script&lang=js& */ "./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "../../node_modules/vue-loader/lib/runtime/componentNormalizer.js");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_ZendeskArticle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_ZendeskArticle_vue_vue_type_template_id_198076e9___WEBPACK_IMPORTED_MODULE_0__["render"],
_ZendeskArticle_vue_vue_type_template_id_198076e9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "app/webpacker/javascript/components/search/ZendeskArticle.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js&":
/*!************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js& ***!
\************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--7-0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./ZendeskArticle.vue?vue&type=script&lang=js& */ "../../node_modules/babel-loader/lib/index.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_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___WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9&":
/*!******************************************************************************************************!*\
!*** ./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9& ***!
\******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _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___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./ZendeskArticle.vue?vue&type=template&id=198076e9& */ "../../node_modules/vue-loader/lib/loaders/templateLoader.js?!../../node_modules/vue-loader/lib/index.js?!./app/webpacker/javascript/components/search/ZendeskArticle.vue?vue&type=template&id=198076e9&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _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___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ }),
/***/ "./app/webpacker/javascript/format/index.js":
/*!**************************************************!*\
!*** ./app/webpacker/javascript/format/index.js ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Format; });
class Format {
constructor() {
this.formatSelector = $('.js-format-selector')[0];
if (this.formatSelector) {
this.formatChanged(this.formatSelector.value, false);
$(this.formatSelector).change(event => this.formatChanged(event.target.value));
this.restoreFormat();
}
}
formatChanged(format, persist = true) {
$('.js-format').hide();
$(`.js-format[data-format='${format}']`).show();
if (persist) {
this.persistFormat(format);
}
}
persistFormat(format) {
if (window.localStorage) {
window.localStorage.setItem('format', format);
}
}
restoreFormat() {
if (window.localStorage) {
const format = window.localStorage.getItem('format');
if (format) {
$(this.formatSelector).val(format);
this.formatChanged(format, false);
}
}
}
}
/***/ }),
/***/ "./app/webpacker/javascript/github_cards/index.js":
/*!********************************************************!*\
!*** ./app/webpacker/javascript/github_cards/index.js ***!
\********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var whatwg_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! whatwg-fetch */ "../../node_modules/whatwg-fetch/fetch.js");
/* harmony default export */ __webpack_exports__["default"] = (() => {
$('[data-github]').each((index, element) => {
let repo = $(element).data('github');
fetch('https://api.github.com/repos/' + repo).then(function (response) {
return response.json();
}).then(response => {
$(element).find('[data-forks]').text(response.forks);
$(element).find('[data-stars]').text(response.stargazers_count);
});
});
});
/***/ }),
/***/ "./app/webpacker/javascript/locale_switcher/index.js":
/*!***********************************************************!*\
!*** ./app/webpacker/javascript/locale_switcher/index.js ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return LocaleSwitcher; });
/* harmony import */ var _rails_ujs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @rails/ujs */ "../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js");
/* harmony import */ var _rails_ujs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_rails_ujs__WEBPACK_IMPORTED_MODULE_0__);
class LocaleSwitcher {
constructor() {
this.switcher = document.getElementById('locale-switcher');
if (this.switcher) {
this.setupEventListeners();
}
}
setupEventListeners() {
const self = this;
window.addEventListener('load', function () {
let dropdownBtn = self.switcher.querySelector('.Nxd-locale');
let dropdownOptions = self.switcher.querySelectorAll('.Vlt-dropdown__link');
let pannel = self.switcher.querySelector('.Vlt-dropdown__panel');
dropdownOptions.forEach(function (option) {
option.addEventListener("click", function (event) {
event.stopPropagation();
dropdownBtn.innerHTML = option.innerHTML;
pannel.hidden = true;
self.localeChangeHandler(option.dataset.locale);
});
});
});
}
localeChangeHandler(locale) {
_rails_ujs__WEBPACK_IMPORTED_MODULE_0___default.a.ajax({
url: "/set_user_locale",
type: "PUT",
dataType: 'json',
data: `preferred_locale=${locale}`
});
}
}
/***/ }),
/***/ "./app/webpacker/javascript/notices/index.js":
/*!***************************************************!*\
!*** ./app/webpacker/javascript/notices/index.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (() => {
const noticeCloseComplete = function (notice) {
notice.remove();
removeNoticesIfEmpty();
};
const noticeKey = function (notice) {
const id = notice.data('notice-id');
return `notice-dismissed(id:${id})`;
};
const isDismissible = function (notice) {
return notice.data('notice-dismissible');
};
const bootstrap = function () {
$(document).on('click', '.notice a[data-close]', function (event) {
const notice = $(this).parents('.notice');
localStorage.setItem(noticeKey(notice), true);
TweenLite.to(notice, 0.6, {
scale: 0,
height: 0,
transformOrigin: "center top",
ease: Power2.easeIn,
onComplete: () => noticeCloseComplete(notice)
});
});
};
const removeNoticesIfEmpty = function () {
if ($('.notices .notice').length === 0) {
$('.notices').remove();
}
};
const clearRead = function () {
$('.notices .notice').each(function () {
const notice = $(this);
if (isDismissible(notice)) {
return;
}
if (localStorage.getItem(noticeKey(notice))) {
$(this).remove();
}
});
removeNoticesIfEmpty();
};
$(document).ready(function () {
bootstrap();
clearRead();
});
});
/***/ }),
/***/ "./app/webpacker/javascript/scroll/index.js":
/*!**************************************************!*\
!*** ./app/webpacker/javascript/scroll/index.js ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (() => {
$(document).ready(function () {
const $body = $('.Vlt-main');
const nav = $('.Nxd-header');
const codeNav = $('.Nxd-api__code__header');
$body.on('scroll', function () {
var scrollTop = $body.scrollTop(); //navigation
if (scrollTop > 50) {
nav.addClass('Nxd-scroll-minify');
} else {
nav.removeClass('Nxd-scroll-minify');
} //api code
if (scrollTop > 70 && codeNav.length > 0) {
codeNav.addClass('Nxd-api__code__header--sticky');
} else if (codeNav.length > 0) {
codeNav.removeClass('Nxd-api__code__header--sticky');
}
});
});
});
/***/ }),
/***/ "./app/webpacker/javascript/sidenav/index.js":
/*!***************************************************!*\
!*** ./app/webpacker/javascript/sidenav/index.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Sidenav; });
class Menu {
constructor(domNode, parent) {
this.domNode = domNode;
this.parent = parent;
this.items = [];
this.firstItem = null;
this.lastItem = null;
this.buildItems();
}
buildItems() {
Array.from(this.domNode.children).forEach(child => {
if (child.children.length > 0) {
this.items.push(new SidenavItem(child.querySelector('a.Vlt-sidemenu__trigger, a.Vlt-sidemenu__link, .Vlt-sidemenu__title'), this.parent));
}
});
this.firstItem = this.items[0];
this.lastItem = this.items[this.items.length - 1];
}
setFocusToNextItem(current) {
let node = null;
if (current === this.lastItem) {
node = this.firstItem.domNode;
} else {
node = this.items[this.items.indexOf(current) + 1].domNode;
}
node.tabIndex = 0;
node.focus();
}
setFocusToPreviousItem(item) {
if (item === this.firstItem) {
this.lastItem.domNode.focus();
} else {
this.items[this.items.indexOf(item) - 1].domNode.focus();
}
}
setFocusToFirstItem() {
this.firstItem.domNode.focus();
}
}
class SidenavItem {
constructor(domNode, parent) {
this.domNode = domNode;
this.parent = parent;
this.menu = null;
this.buildItem();
this.keyCode = Object.freeze({
'ENTER': 13,
'LEFT': 37,
'UP': 38,
'RIGHT': 39,
'DOWN': 40
});
this.domNode.addEventListener('keydown', this.handleKeyDown.bind(this));
this.domNode.addEventListener('click', this.handleClick.bind(this));
}
buildItem() {
if (this.isMenu()) {
this.menu = new Menu(this.domNode.nextElementSibling, this);
}
}
isMenu() {
return this.domNode.nextElementSibling && this.domNode.nextElementSibling.tagName === 'UL';
}
handleKeyDown(event) {
let target = event.currentTarget;
let key = event.key;
let bubbleUp = false;
switch (event.keyCode) {
case this.keyCode.ENTER:
if (this.menu) {
this.toggleElement(true);
bubbleUp = true;
}
break;
case this.keyCode.DOWN:
this.parent.setFocusToNextItem(this);
bubbleUp = true;
break;
case this.keyCode.LEFT:
this.parent.toggleElement(true);
bubbleUp = true;
break;
case this.keyCode.RIGHT:
if (this.menu) {
this.toggleElement(true);
}
bubbleUp = true;
break;
case this.keyCode.UP:
this.parent.setFocusToPreviousItem(this);
bubbleUp = true;
break;
}
if (bubbleUp) {
event.stopPropagation();
event.preventDefault();
}
}
handleClick(event) {
if (this.menu) {
event.preventDefault();
event.stopPropagation();
this.toggleElement();
}
}
toggleElement(focus) {
if (this.domNode.classList.contains('Vlt-sidemenu__trigger_active')) {
this.domNode.setAttribute('aria-expanded', 'false');
this.domNode.classList.remove('Vlt-sidemenu__trigger_active');
this.domNode.tabIndex = -1;
if (focus) {
this.domNode.focus();
}
} else {
this.domNode.tabIndex = 0;
this.domNode.setAttribute('aria-expanded', 'true');
this.domNode.classList.add('Vlt-sidemenu__trigger_active');
this.domNode.dispatchEvent(new CustomEvent('menuClosed', {
bubbles: true
}));
if (focus) {
this.menu.setFocusToFirstItem();
}
}
}
setFocusToPreviousLevel() {
if (this.menu) {
this.domNode.setAttribute('aria-expanded', 'false');
this.domNode.classList.remove('Vlt-sidemenu__trigger_active');
this.domNode.tabIndex = -1;
this.domNode.focus();
} else {
this.parent.setFocusToPreviousItem(this);
}
}
setFocusToNextItem(current) {
if (this.menu) {
this.menu.setFocusToNextItem(current);
}
}
setFocusToPreviousItem(current) {
if (this.menu) {
this.menu.setFocusToPreviousItem(current);
}
}
}
class Sidenav {
constructor(domNode) {
this.domNode = document.getElementById('sidenav');
this.mobileTrigger = document.getElementById('Vlt-sidenav-mobile-trigger');
this.container = document.getElementById('Vlt-sidenav');
if (this.domNode) {
this.buildMenu();
this.setActiveItem();
this.expandActiveMenu();
this.setupListeners();
} else {
this.mobileTrigger.style.display = 'none';
}
}
setupListeners() {
this.domNode.addEventListener('menuClosed', this.closeOpenedMenu.bind(this));
this.mobileTrigger.addEventListener('click', this.mobileHandler.bind(this));
this.mobileTrigger.addEventListener('touchstart', this.mobileHandler.bind(this));
document.querySelector('body').addEventListener('click', this.closeMobileMenu.bind(this));
document.querySelector('body').addEventListener('touchstart', this.closeMobileMenu.bind(this));
}
buildMenu() {
this.menu = new Menu(this.domNode.firstElementChild, this);
}
setFocusToNextItem(current) {
this.menu.setFocusToNextItem(current);
}
setFocusToPreviousItem(current) {
this.menu.setFocusToPreviousItem(current);
} // No-op
toggleElement() {}
setActiveItem() {
let url = document.querySelector('nav.sidenav').dataset.active;
let activeItemSelector = `.Vlt-sidemenu__link[href="${url}"]`;
let activeItem = document.querySelector(activeItemSelector);
if (activeItem) {
activeItem.classList.add('Vlt-sidemenu__link_active');
}
}
expandActiveMenu() {
const activeItem = this.domNode.querySelector('.Vlt-sidemenu__link_active');
if (activeItem) {
let activeTrigger = activeItem.closest('ul').previousElementSibling;
while (activeTrigger) {
activeTrigger.classList.add('Vlt-sidemenu__trigger_active', 'Vlt-sidemenu__trigger_current');
activeTrigger = activeTrigger.parentNode.closest('ul').previousElementSibling;
}
}
}
closeOpenedMenu(event) {
Array.from(this.domNode.querySelectorAll('.Vlt-sidemenu__trigger_active')).forEach(subMenu => {
if (subMenu !== event.target && !subMenu.parentNode.contains(event.target)) {
subMenu.classList.remove('Vlt-sidemenu__trigger_active');
}
});
}
mobileHandler(event) {
if (!this.container.classList.contains('Vlt-sidenav_visible')) {
this.container.classList.add('Vlt-sidenav_visible');
document.body.classList.add('Vlt-body--mobile-menu-open');
event.stopPropagation();
}
}
closeMobileMenu(event) {
if (!this.domNode.contains(event.target)) {
this.container.classList.remove('Vlt-sidenav_visible');
document.body.classList.remove('Vlt-body--mobile-menu-open');
}
}
}
/***/ }),
/***/ "./app/webpacker/javascript/spotlight/index.js":
/*!*****************************************************!*\
!*** ./app/webpacker/javascript/spotlight/index.js ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _volta_volta_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../volta/volta.js */ "./app/webpacker/javascript/volta/volta.js");
/* harmony default export */ __webpack_exports__["default"] = (() => {
$(document).ready(function () {
$(document).on('ajax:success', '#spotlight-form', function (event, response) {
_volta_volta_js__WEBPACK_IMPORTED_MODULE_0__["default"].flash.show('success');
event.target.reset();
}).on('ajax:error', '#spotlight-form', function (event) {
_volta_volta_js__WEBPACK_IMPORTED_MODULE_0__["default"].flash.show('error');
});
});
});
/***/ }),
/***/ "./app/webpacker/javascript/volta/tooltip.min.js":
/*!*******************************************************!*\
!*** ./app/webpacker/javascript/volta/tooltip.min.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
/*
Copyright (C) Federico Zivolo 2018
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
*/
(function (a, b) {
true ? module.exports = b(__webpack_require__(/*! popper.js */ "../../node_modules/popper.js/dist/esm/popper.js")) : undefined;
})(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 < b.length; d++) c = b[d], c.enumerable = c.enumerable || !1, c.configurable = !0, 'value' in c && (c.writable = !0), Object.defineProperty(a, c.key, c);
}
return function (b, c, d) {
return c && a(b.prototype, c), d && a(b, d), b;
};
}(),
e = Object.assign || function (a) {
for (var b, c = 1; c < arguments.length; c++) for (var d in b = arguments[c], b) Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]);
return a;
},
f = {
container: !1,
delay: 0,
html: !1,
placement: 'top',
title: '',
template: '',
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;
});
/***/ }),
/***/ "./app/webpacker/javascript/volta/volta.js":
/*!*************************************************!*\
!*** ./app/webpacker/javascript/volta/volta.js ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _tooltip_min_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tooltip.min.js */ "./app/webpacker/javascript/volta/tooltip.min.js");
/* harmony import */ var _tooltip_min_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tooltip_min_js__WEBPACK_IMPORTED_MODULE_0__);
/**
* Copyright (c) 2001-present, Vonage.
*
* Core of volta
*/
'use strict';
var Volta;
Volta = function () {
return {
_closest: closest,
_hasClass: hasClass,
init: initialise,
_isMobile: isMobileDevice,
_getElementSiblings: getElementSiblings,
_getFunction: getFunctionFromString,
_removeFromArr: removeFromArr
};
/**
* @private
*
* @description Finds the first ancestor of the given element, matching a specific selector.
* @param {HTMLElement} element Starting element
* @param {string} selector Selector to find (can be .class, #id, div...)
* @param {string} stopSelector Selector to stop searching on (can be .class, #id, div...)
* @returns {HTMLElement|null} The matched element or null if no element is found
*/
function closest(element, selector, stopSelector) {
var match = null;
while (element) {
if (element.matches(selector)) {
match = element;
break;
} else if (stopSelector && element.matches(stopSelector)) {
break;
}
element = element.parentElement;
}
return match;
}
/**
* @private
* @description Given the name of a function returns the function itself
* @param {string} callbackFnName The function name e.g. "testFunction" OR "test.function"
* @returns {Function}
*/
function getFunctionFromString(fnName) {
var fn;
if (fnName) {
var fnNames = fnName.split(".");
var fn = window;
for (var i = 0; i < fnNames.length; i++) {
fn = fn[fnNames[i]];
}
}
return fn;
}
/**
* @private
* @description Get all siblings of an element
* @param {HTMLElement} el
*/
function getElementSiblings(element) {
var siblings = [];
element = element.parentNode.firstChild;
do {
if (element.nodeType === 1) {
siblings.push(element);
}
} while (element = element.nextSibling);
return siblings;
}
/**
* @private
*
* @description Check if the given element has a particular class
* @param {HTMLElement} el Element to evaluate
* @param {string} className Class name to check for
* @returns {boolean} True if the element has the class or false if not
*/
function hasClass(element, className) {
if (!element) {
return false;
}
return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(" " + className + " ") > -1;
}
/**
* @private
*
* @description Is the current device a mobile
* @returns {boolean} True if mobile false if not
*/
function isMobileDevice() {
var isMobile = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i;
return isMobile.test(navigator.userAgent);
}
/**
* @public
*
* @description Initailise volta with required components
* @param {Array} components Array of strings, names of the components to initialise
*/
function initialise(components) {
polyfilsForIE11();
if (components.indexOf('accordion') !== -1) {
if (Volta.accordion) {
Volta.accordion.init();
} else {
console.warn('Volta: volta.accordion.js component missing');
}
}
if (components.indexOf('callout') !== -1) {
if (Volta.callout) {
Volta.callout.init();
} else {
console.warn('Volta: volta.callout.js component missing');
}
}
if (components.indexOf('badge') !== -1) {
if (Volta.badge) {
Volta.badge.init();
} else {
console.warn('Volta: volta.badge.js component missing');
}
}
if (components.indexOf('dropdown') !== -1) {
if (Volta.dropdown) {
Volta.dropdown.init();
} else {
console.warn('Volta: volta.dropdown.js component missing');
}
}
if (components.indexOf('flash') !== -1) {
if (Volta.flash) {
Volta.flash.init();
} else {
console.warn('Volta: volta.dropdown.js component missing');
}
}
if (components.indexOf('menu') !== -1) {
if (Volta.menu) {
Volta.menu.init();
} else {
console.warn('Volta: volta.menu.js component missing');
}
}
if (components.indexOf('menuCollapse') !== -1) {
if (Volta.menuCollapse) {
Volta.menuCollapse.init();
} else {
console.warn('Volta: volta.menuCollapse.js component missing');
}
}
if (components.indexOf('modal') !== -1) {
if (Volta.modal) {
Volta.modal.init();
} else {
console.warn('Volta: volta.modal.js component missing');
}
}
if (components.indexOf('tab') !== -1) {
if (Volta.tab) {
Volta.tab.init();
} else {
console.warn('Volta: volta.tab.js component missing');
}
}
if (components.indexOf('table') !== -1) {
if (Volta.table) {
Volta.table.init();
} else {
console.warn('Volta: volta.table.js component missing');
}
}
if (components.indexOf('tooltip') !== -1) {
if (Volta.tooltip) {
Volta.tooltip.init();
} else {
console.warn('Volta: volta.tooltip.js component missing');
}
}
}
/**
* @private
*
* @description Remove an element from an array
* @param {Array} arr The array containing the element
* @param {Element} element The element to remove
* @returns {Array} The array minus the element
*/
function removeFromArr(arr, element) {
var index = arr.indexOf(element);
arr.splice(index, 1);
return arr;
}
/**
* @private
*
*/
function polyfilsForIE11() {
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = function (callback, thisArg) {
thisArg = thisArg || window;
for (var i = 0; i < this.length; i++) {
callback.call(thisArg, this[i], i, this);
}
};
}
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Accordions (requires core)
*/
'use strict';
Volta.accordion = function () {
var _class = {
standard: {
container: 'Vlt-accordion',
containerGroup: 'Vlt-accordion--group',
trigger: 'Vlt-accordion__trigger',
triggerActive: 'Vlt-accordion__trigger_active',
content: 'Vlt-accordion__content',
contentOpen: 'Vlt-accordion__content_open',
contentOpening: 'Vlt-accordion__content_opening',
contentClosing: 'Vlt-accordion__content_closing'
},
js: {
content: 'Vlt-js-accordion__content',
contentOpen: 'Vlt-js-accordion__content_open',
contentOpening: 'Vlt-js-accordion__content_opening',
contentClosing: 'Vlt-js-accordion__content_closing',
trigger: 'Vlt-js-accordion__trigger',
triggerActive: 'Vlt-js-accordion__trigger_active'
}
};
function Accordion() {}
Accordion.prototype = {
init: function (element, suppressClickHandler, triggerElem) {
if (this.isStandard) {
this._initStandard(element, suppressClickHandler);
} else {
this._initJs(element, suppressClickHandler, triggerElem);
}
},
_initStandard: function (element, suppressClickHandler) {
var self = this;
if (!suppressClickHandler) {
element.querySelectorAll('.' + _class.standard.trigger).forEach(function (trigger) {
var parent = Volta._closest(trigger, '.' + _class.standard.container, _class.standard.container);
if (parent && parent == element) {
trigger.addEventListener('click', function () {
self.toggle(trigger);
});
}
});
}
},
_initJs: function (element, suppressClickHandler, triggerElem) {
this._content = element;
if (triggerElem) {
this.trigger = triggerElem;
} else if (this._content.dataset.trigger) {
var triggerId = this._content.dataset.trigger;
this.trigger = document.querySelector('#' + triggerId);
} else {
console.warn("Volta: js accordion trigger missing");
}
var self = this;
if (!suppressClickHandler && this.trigger) {
this.trigger.addEventListener('click', function () {
self.toggle();
});
}
},
close: function (trigger) {
var panel = this._content || trigger.nextElementSibling;
var trigger = this.trigger || trigger;
var classes = this.trigger ? _class.js : _class.standard;
trigger.classList.remove(classes.triggerActive);
panel.classList.add(classes.contentClosing);
panel.style.height = window.getComputedStyle(panel).height;
panel.offsetHeight; // force repaint
panel.style.height = '0px';
panel.classList.remove(classes.contentOpen);
var self = this;
panel.addEventListener('transitionend', function closingTransitionEndEvent(event) {
if (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentClosing)) {
panel.classList.remove(classes.contentClosing);
panel.style.height = '0px';
panel.removeEventListener('transitionend', closingTransitionEndEvent, false);
if (self.isGroup && self._isTriggerActive(trigger, true)) {
self._activeGroupTrigger = undefined;
}
}
}, {
passive: true,
once: true
});
},
isOpening: false,
_activeGroupTrigger: undefined,
_isTriggerActive: function (trigger, match) {
return this.isGroup && this._activeGroupTrigger && (!match || this._activeGroupTrigger === trigger) || Volta._hasClass(trigger, _class.standard.triggerActive);
},
open: function (trigger) {
if (!this.trigger) {
if (this._isTriggerActive(trigger, false)) {
this.close(this._activeGroupTrigger || trigger);
}
if (this.isGroup) {
this._activeGroupTrigger = trigger;
}
}
var trig = this.trigger || trigger;
var classes = this.trigger ? _class.js : _class.standard;
var panel = this._content || trig.nextElementSibling;
this.isOpening = true;
trig.classList.add(classes.triggerActive);
panel.classList.add(classes.contentOpening);
var startHeight = panel.style.height;
panel.style.height = 'auto';
var endHeight = window.getComputedStyle(panel).height;
panel.style.height = startHeight;
panel.offsetHeight; // force repaint
panel.style.height = endHeight;
var self = this;
panel.addEventListener('transitionend', function openingTransitionEndEvent(event) {
if (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentOpening)) {
panel.style.height = 'auto';
panel.classList.remove(classes.contentOpening);
panel.classList.add(classes.contentOpen);
panel.removeEventListener('transitionend', openingTransitionEndEvent, false);
self.isOpening = false;
}
}, {
passive: true,
once: true
});
},
toggle: function (trigger) {
if (this.isOpening) {
return false;
}
if (this.trigger && Volta._hasClass(this._content, _class.js.contentOpen) || !this.trigger && this._isTriggerActive(trigger, true)) {
this.close(trigger);
} else {
this.open(trigger);
}
}
};
return {
create: create,
init: initialise
};
/**
* @public
*
* @description Create an individual accordion object
* @param {Element|string} elementOrId Reference to the accordion content element or the id
* @param {Boolean} suppressClickHandler Whether click events should be attached on creation
* @param {Element} trigger Private required for legacy accordions
* @param {Boolean} isGroup Private required for legacy accordions
* @return {Object}
*/
function create(elementOrId, suppressClickHandler, trigger, isGroup, isStandard) {
if (!elementOrId) {
console.warn("Volta: no parameter supplied to accordion.create()");
}
var accordion = Object.create(Accordion.prototype, {});
var element = getElement(elementOrId);
Object.defineProperties(accordion, {
'isStandard': {
value: isStandard || Volta._hasClass(element, _class.standard.container),
writable: false
}
});
Object.defineProperties(accordion, {
'isGroup': {
value: isGroup,
writable: false
}
});
accordion.init(element, suppressClickHandler, trigger);
return accordion;
}
/**
* @public
*
* @description Initialise all the accordions on the current screen
*/
function initialise() {
//standard
var standardAccordions = document.querySelectorAll('.' + _class.standard.container);
if (standardAccordions.length) {
standardAccordions.forEach(function (accordion) {
create(accordion, false, null, Volta._hasClass(accordion, _class.standard.containerGroup), true);
});
} //js
var triggers = document.querySelectorAll('.' + _class.js.trigger + '[data-accordion]');
if (triggers.length > 0) {
triggers.forEach(function (trigger) {
var accordionId = trigger.dataset.accordion;
if (!accordionId) {
return;
}
create(accordionId, false, trigger);
});
} //js - legacy
var jsAccordions = document.querySelectorAll('.' + _class.js.content + '[data-trigger]');
if (jsAccordions.length > 0) {
jsAccordions.forEach(function (jsLegacy) {
create(jsLegacy);
});
}
}
/**
* @private
*/
function getElement(elementOrId) {
var element;
if (elementOrId.classList) {
element = elementOrId;
} else if (elementOrId.substring(0, 1) === "#") {
element = document.querySelector(elementOrId);
} else {
element = document.querySelector('#' + elementOrId);
}
return element;
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Badges (requires core)
*/
'use strict';
Volta.badge = function () {
var _class = {
badge: 'Vlt-badge',
dismiss: 'Vlt-badge__dismiss',
dismissed: 'Vlt-badge--dismissed'
};
return {
dismiss: dismiss,
init: attachBadgeHandlers
};
/**
* @public
*
* @description Attach a one time listener to dismissable badges
*/
function attachBadgeHandlers() {
document.querySelectorAll('.' + _class.dismiss).forEach(create);
}
/**
* @private
*
* @description Create a badge
* @param {HTMLElement} badge
*/
function create(badgeOrDismiss) {
var badge, badgeDismiss;
if (Volta._hasClass(badgeOrDismiss, _class.badge)) {
badge = badgeOrDismiss;
badgeDismiss = badge.querySelector('.' + _class.dismiss);
} else if (Volta._hasClass(badgeOrDismiss, _class.dismiss)) {
badgeDismiss = badgeOrDismiss;
badge = badgeDismiss.parentElement;
}
badgeDismiss.addEventListener('click', function () {
dismiss(badge);
}, {
once: true
});
}
/**
* @public
*
* @description Dismiss a badge
* @param {HTMLElement} badge
*/
function dismiss(badge) {
badge.classList.add(_class.dismissed);
if (badge.dataset.callback) {
return Volta._getFunction(badgeWrapper.dataset.callback)();
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Callouts (requires core)
*/
'use strict';
Volta.callout = function () {
var _class = {
callout: 'Vlt-callout',
dismiss: 'Vlt-callout__dismiss',
dismissed: 'Vlt-callout--dismissed'
};
return {
dismiss: dismiss,
init: attachCalloutHandlers
};
/**
* @public
*
* @description Attach a one time listener to dismissable callouts
*/
function attachCalloutHandlers() {
document.querySelectorAll('.' + _class.dismiss).forEach(create);
}
/**
* @private
*
* @description Create a callout
* @param {HTMLElement} callout
*/
function create(calloutOrDismiss) {
var callout, calloutDismiss;
if (Volta._hasClass(calloutOrDismiss, _class.callout)) {
callout = calloutOrDismiss;
calloutDismiss = callout.querySelector('.' + _class.dismiss);
} else if (Volta._hasClass(calloutOrDismiss, _class.dismiss)) {
calloutDismiss = calloutOrDismiss;
callout = calloutDismiss.parentElement;
}
calloutDismiss.addEventListener('click', function () {
dismiss(callout);
}, {
once: true
});
}
/**
* @public
*
* @description Dismiss a callout
* @param {HTMLElement} callout
*/
function dismiss(callout) {
callout.classList.add(_class.dismissed);
if (callout.dataset.callback) {
return Volta._getFunction(calloutWrapper.dataset.callback)();
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Dropdowns (requires core)
*/
'use strict';
Volta.dropdown = function () {
var _class = {
wrapper: 'Vlt-dropdown',
block: 'Vlt-dropdown__block',
btn: 'Vlt-dropdown__trigger',
btnLegacy: 'Vlt-dropdown__btn',
dismissed: 'Vlt-callout--dismissed',
expanded: 'Vlt-dropdown--expanded',
label: 'Vlt-dropdown__label',
link: 'Vlt-dropdown__link',
noCloseLink: 'Vlt-dropdown__link--noclose',
noCloseBlock: 'Vlt-dropdown__block--noclose',
panel: 'Vlt-dropdown__panel',
panelContent: 'Vlt-dropdown__panel__content',
selection: 'Vlt-dropdown__selection',
switch: 'Vlt-switch',
switchSlider: 'Vlt-switch__slider'
};
function Dropdown() {}
Dropdown.prototype = {
init: function (element, supressClickHandler) {
this.dropdown = element;
this.selection = this.dropdown.querySelector('.' + _class.selection);
this.isSelectionVisible = !!this.selection;
this.btn = this.dropdown.querySelector('.' + _class.btn) || this.dropdown.querySelector('.' + _class.btnLegacy);
this._suppress = supressClickHandler;
if (!this._suppress) {
this._addEventListener();
}
},
_addEventListener: function () {
var openHandler = this.open.bind(this);
this.dropdown.addEventListener('click', openHandler, {
once: true
});
},
close: function (text) {
if (text) {
this._setDropdownSelectionText(text);
}
this.dropdown.classList.remove(_class.expanded);
if (!this._suppress) {
this._addEventListener();
}
},
_closeEventHandler: undefined,
_closeEvent: function (e) {
var targetIsPanel = Volta._hasClass(e.target, _class.panel);
var parentIsPanel = Volta._closest(e.target, '.' + _class.panelContent, _class.panel) !== null;
var parentLink = Volta._closest(e.target, '.' + _class.link, _class.wrapper);
var parentIsLink = parentLink && parentLink.length === 1;
var isSwitchSlider = Volta._hasClass(e.target, _class.switchSlider);
var isParentSwitch = Volta._closest(e.target, '.' + _class.switch, _class.link);
var isNoClose = Volta._hasClass(e.target, _class.noCloseLink) || Volta._hasClass(e.target, _class.noCloseBlock);
var isNoCloseParent = Volta._closest(e.target, '.' + _class.noCloseLink, _class.link) || Volta._closest(e.target, '.' + _class.noCloseBlock, _class.noCloseBlock);
var isInput = e.target instanceof HTMLInputElement;
if (!targetIsPanel && !parentIsPanel && !parentIsLink && !isNoClose && !isInput && !isNoCloseParent) {
e.preventDefault();
e.stopPropagation();
}
if (isSwitchSlider || isParentSwitch || isNoClose || isInput || isNoCloseParent) {
return null;
}
var text;
if (parentIsPanel && Volta._hasClass(e.target, _class.label)) {
text = e.target.innerHTML;
} else if (parentIsPanel) {
var label = e.target.querySelector('.' + _class.label);
if (label) {
text = label.innerHTML;
}
}
this.close(text);
document.querySelector('body').removeEventListener('click', this._closeEventHandler);
},
open: function (event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
this.dropdown.classList.add(_class.expanded);
if (!this._suppress) {
this._closeEventHandler = this._closeEvent.bind(this);
document.querySelector('body').addEventListener('click', this._closeEventHandler);
}
},
_setDropdownSelectionText: function (text) {
if (this.isSelectionVisible) {
this.selection.innerText = text;
} else {
this.btn.innerText = text;
this.btn.value = text;
}
},
_suppress: false
};
return {
create: create,
init: attachDropdownHandlers
};
/**
* @public
*
* @description Attach a listeners to dropdowns
*/
function attachDropdownHandlers() {
document.querySelectorAll('.' + _class.wrapper).forEach(attachHandler);
function attachHandler(dropdown) {
create(dropdown);
}
}
/**
* @private
*
* @description Create a dropdown element
* @param {HTMLElement} element
*/
function create(element) {
var dropdown = Object.create(Dropdown.prototype, {});
dropdown.init(element);
return dropdown;
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Tabs (requires core)
*/
'use strict';
Volta.flash = function () {
var _class = {
flash: 'Vlt-flash',
trigger: 'Vlt-flash-trigger',
visible: 'Vlt-flash_visible'
};
var gap = 20,
openBottomFlashes = [],
openTopFlashes = [],
timeouts = [];
return {
closeAll: closeAll,
init: attachFlashHandlers,
show: show
};
/**
* @public
*
* @description Attach a click listener to each flash's trigger on the screen
* @param {HTMLElement} element
*/
function attachFlashHandlers() {
var triggers = document.querySelectorAll('.' + _class.trigger);
if (triggers.length === 0) {
return;
}
triggers.forEach(attachHandler);
function attachHandler(trigger) {
trigger.addEventListener('click', function () {
if (trigger.dataset.flash) {
var flash = document.querySelector('#' + trigger.dataset.flash);
show(flash);
} else {
console.warn("Volta: flash trigger is missing data-flash attribute");
}
});
}
}
/**
* @public
*
* @description Close all open flashes
*/
function closeAll() {
if (timeouts.length > 0) {
timeouts.forEach(function (timeout) {
clearTimeout(timeout);
});
}
if (openBottomFlashes.length > 0) {
clearQueue(openBottomFlashes);
}
if (openTopFlashes.length > 0) {
clearQueue(openTopFlashes);
}
timeouts = [];
openBottomFlashes = [];
openTopFlashes = [];
function clearQueue(elementArr) {
elementArr.forEach(function (element) {
_hide(element);
});
elementArr = [];
}
}
/**
* @public
*
* @description Show the flash
* @param {HTMLElement} element
*/
function show(elementOrId, time) {
if (!elementOrId || elementOrId.length == 0) {
return;
}
time = time || 5000;
var element = !elementOrId.classList ? document.querySelector('#' + elementOrId) : elementOrId;
var position = Volta._hasClass(element, 'Vlt-flash--bottom') ? 'bottom' : 'top';
var arr = position === 'bottom' ? openBottomFlashes : openTopFlashes;
if (arr.indexOf(element) !== -1) {
return;
}
_setFlashPosition(arr, element, position);
arr.push(element);
element.classList.add(_class.visible);
var hideTimeout = setTimeout(function () {
_hide(element, true);
Volta._removeFromArr(timeouts, hideTimeout);
}, time);
timeouts.push(hideTimeout);
}
/**
* @private
* @description Hide the flash
* @param {HTMLElement} element
*/
function _hide(element, shouldRemove) {
var position = Volta._hasClass(element, 'Vlt-flash--bottom') ? 'bottom' : 'top';
var arr = position === 'bottom' ? openBottomFlashes : openTopFlashes;
if (shouldRemove) {
Volta._removeFromArr(arr, element);
}
_updateFlashPositions(arr, element, position);
element.style[position] = '';
element.classList.remove(_class.visible);
}
/**
* @private
* @description Set the position of the flash
* @param {HTMLElement} element
*/
function _setFlashPosition(arr, element, position) {
var positionPx = arr.reduce(function (px, flash) {
return px + flash.clientHeight;
}, 0);
if (positionPx > 0) {
element.style[position] = gap * arr.length + gap + positionPx + 'px';
}
}
/**
* @private
* @description Update the position of all the visible flashes
* @param {Array} arr
* @param {HTMLElement} element
* @param {string} position
*/
function _updateFlashPositions(arr, element, position) {
if (arr.length > 0) {
var elementHeight = element.clientHeight;
arr.forEach(function (flash) {
var newPosition;
if (position === 'bottom') {
newPosition = Number(flash.style.bottom.substring(0, flash.style.bottom.length - 2));
} else {
newPosition = flash.getBoundingClientRect()[position];
}
flash.style[position] = newPosition - elementHeight - gap + "px";
});
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Modals (requires core)
*/
'use strict';
Volta.modal = function () {
var _class = {
auto: 'Vlt-modal--auto',
bodyModalOpen: 'Vlt-body--modal-open',
cancel: 'Vlt-modal__cancel',
confirm: 'Vlt-modal__confirm',
content: 'Vlt-modal__content',
modal: 'Vlt-modal',
out: 'Vlt-modal--out',
panel: 'Vlt-modal__panel',
trigger: 'Vlt-modal-trigger',
visible: 'Vlt-modal_visible',
dismiss: 'Vlt-modal__dismiss'
};
var body, dismissModalHandler, cancelModalHandler, confirmModalHandler, escHandler, clickHandler, escAttached;
function Modal() {}
Modal.prototype = {
attachButtons: function () {
var _this = this;
_this.dismissBtn = _this.modal.querySelector('.' + _class.dismiss);
if (_this.dismissBtn) {
dismissModalHandler = dismissModal.bind(_this);
_this.dismissBtn.addEventListener('click', dismissModalHandler);
}
_this.cancelBtn = _this.modal.querySelector('.' + _class.cancel);
if (_this.cancelBtn) {
cancelModalHandler = cancelModal.bind(_this);
_this.cancelBtn.addEventListener('click', cancelModalHandler);
}
_this.confirmBtn = _this.modal.querySelector('.' + _class.confirm);
if (_this.confirmBtn) {
confirmModalHandler = confirmModal.bind(_this);
_this.confirmBtn.addEventListener('click', confirmModalHandler);
}
},
html: function (newHtml) {
this.modal.innerHTML = newHtml;
return this;
},
init: function (elementOrId) {
if (elementOrId.length) {
this.modal = document.querySelector('#' + elementOrId);
} else {
this.modal = elementOrId;
}
this._callback = Volta._getFunction(this.modal.dataset.callback);
},
open: function (e) {
if (e && e.preventDefault) {
e.preventDefault();
e.stopPropagation();
}
this.modal.classList.remove(_class.out);
this.modal.classList.add(_class.visible);
this.attachButtons();
disableScroll();
if (!escAttached && !this.modal.dataset.disableEsc || this.modal.dataset.disableEsc === "false") {
escHandler = closeModalOnEscape.bind(this);
body.addEventListener('keyup', escHandler, {
once: true
});
escAttached = true;
}
if (!this.modal.dataset.disableClick || this.modal.dataset.disableClick === "false") {
clickHandler = closeModalOnClick.bind(this);
this.modal.addEventListener('click', clickHandler, {
once: true
});
}
},
dismiss: function (e, confirmed) {
var _this = this;
if (e && e.preventDefault) {
e.preventDefault();
e.stopPropagation();
}
enableScroll();
if (_this.modal) {
_this.modal.classList.remove(_class.visible);
_this.modal.classList.add(_class.out);
}
if (_this._callback) {
_this._callback(confirmed);
}
removeModal(_this);
}
};
return {
create: create,
init: attachModalHandlers
};
/**
* @public
*
* @description Attach a click listener to each modals trigger on the screen, which will open the modal
*/
function attachModalHandlers() {
if (!body) {
body = document.querySelector('body');
}
var triggers = document.querySelectorAll('.' + _class.trigger);
if (triggers.length > 0) {
triggers.forEach(attachTriggerHandler);
} //Not the recommended way to use modals
var modals = document.querySelectorAll('.' + _class.modal);
if (modals.length > 0) {
modals.forEach(attachModalHandler);
}
function attachModalHandler(modal) {
if (Volta._hasClass(modal, _class.auto)) {
var trigger = document.querySelector('#' + modal.dataset.trigger);
trigger.addEventListener('click', function () {
create(modal).open();
});
}
}
function attachTriggerHandler(trigger) {
if (trigger.dataset.modal) {
var modal = document.querySelector('#' + trigger.dataset.modal);
if (!modal) {
console.warn('Volta: modal ' + trigger.dataset.modal + ' cannot be found');
}
trigger.addEventListener('click', function () {
create(modal).open();
});
}
}
}
/**
* @private
*
* @description Close the modal, triggered by cancel button, passes false to callback function
* @param {event} e
*/
function cancelModal(e) {
return this.dismiss(e, false);
}
/**
* @private
*
* @description Close the modal, triggered by confirm button, passes true to callback function
* @param {event} e
*/
function confirmModal(e) {
return this.dismiss(e, true);
}
/**
* @private
*
* @description Close the modal, triggered by 'x' button, passes false to callback function
* @param {event} e
*/
function dismissModal(e) {
return this.dismiss(e, false);
}
/** @private
*
* @description Close the modal, triggered by 'esc' key, passes false to callback function
* @param {event} e
*/
function closeModalOnEscape(e) {
if (e && e.keyCode === 27) {
this.dismiss(e, false);
} else {
body.addEventListener('click', escHandler, {
once: true
});
}
}
/** @private
*
* @description Close the modal, triggered by 'body click, passes false to callback function
* @param {event} e
*/
function closeModalOnClick(e) {
if (!Volta._hasClass(e.target, _class.trigger) && !Volta._closest(e.target, '.' + _class.trigger, '.' + _class.trigger) && !Volta._closest(e.target, '.' + _class.panel, '.' + _class.panel)) {
this.dismiss(e, false);
} else if (this.modal) {
this.modal.addEventListener('click', clickHandler, {
once: true
});
}
}
/**
* @public
*
* @description Create the modal object
* @param {HTMLElement|string} elementOrId Reference to the modal element or the id
*. @return {Object} A modal object
*/
function create(elementOrId) {
if (!body) {
body = document.querySelector('body');
}
var modal = Object.create(Modal.prototype, {});
modal.init(elementOrId);
return modal;
}
/**
* Private functions to disable body scroll when modal is open
*/
function disableScroll() {
body.classList.add(_class.bodyModalOpen);
body.addEventListener('touchmove', preventScroll);
if (body.querySelector('.Vlt-main')) {
body.querySelector('.Vlt-main').addEventListener('touchmove', preventScroll);
} else {
body.addEventListener('touchmove', preventScroll);
}
body.querySelector('.' + _class.content).addEventListener('touchmove', allowScroll);
}
function enableScroll() {
body.classList.remove(_class.bodyModalOpen);
body.removeEventListener('touchmove', preventScroll);
if (body.querySelector('.Vlt-main')) {
body.querySelector('.Vlt-main').removeEventListener('touchmove', preventScroll);
} else {
body.removeEventListener('touchmove', preventScroll);
}
var modalContent = body.querySelector('.' + _class.content);
if (modalContent) modalContent.removeEventListener('touchmove', allowScroll);
}
function allowScroll(e) {
e.stopPropagation();
}
function preventScroll(e) {
e.preventDefault();
}
/**
* @private
*
* @description Remove the modal after dismiss, makes sure to delete the modal properties so it can be garbage collected, and removes event listeners
* @param {HTMLElement|string} elementOrId Reference to the modal element or the id
*/
function removeModal(modal) {
delete modal.modal;
if (modal.dismissBtn) {
modal.dismissBtn.removeEventListener('click', dismissModalHandler);
}
if (modal.cancelBtn) {
modal.cancelBtn.removeEventListener('click', cancelModalHandler);
}
if (modal.confirmBtn) {
modal.confirmBtn.removeEventListener('click', confirmModalHandler);
}
if (clickHandler) {
body.removeEventListener('click', clickHandler);
}
if (escHandler) {
body.removeEventListener('keyup', escHandler);
escAttached = false;
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Tabs (requires core)
*/
'use strict';
Volta.tab = function () {
var _class = {
link: 'Vlt-tabs__link',
linkJs: 'Vlt-js-tabs__link',
linkActive: 'Vlt-tabs__link_active',
linkDisabled: 'Vlt-tabs__link_disabled',
linkJsActive: 'Vlt-js-tabs__link_active',
panel: 'Vlt-tabs__panel',
panelActive: 'Vlt-tabs__panel_active',
panelJsActive: 'Vlt-js-tabs__panel_active',
tabs: 'Vlt-tabs'
};
function Tabs() {}
Tabs.prototype = {
_keys: {
left: 37,
right: 39
},
init: function (element, isWrapper) {
var _this = this,
tabsHeader,
tabsContent;
if (isWrapper) {
tabsHeader = element.children.item(0);
tabsContent = element.children.item(1);
} else {
_this.isJs = true;
tabsHeader = element;
tabsContent = element.dataset.tabContent ? document.querySelector('#' + element.dataset.tabContent) : null;
}
var linkClass = _this.isJs ? _class.linkJs : _class.link;
_this._links = tabsHeader.querySelectorAll('.' + linkClass);
_this._panels = tabsContent ? tabsContent.children : undefined;
this._deactivateElements();
this._setActiveElements();
if (_this._panels && _this._panels.length === _this._links.length) {
_this._links.forEach(function (link, index) {
var link = link;
link.index = index;
link.addEventListener('keyup', _this._keyUpEventListener.bind(_this));
link.addEventListener('toggle', function () {
_this.toggle(link);
});
link.addEventListener('click', function () {
_this.toggle(link);
});
});
} else if (_this._panels && _this._panels.length > 0) {
console.log('Volta: Tabs, number of links and panels do not match');
}
},
toggle: function (linkElement) {
var linkActiveClass = this.isJs ? _class.linkJsActive : _class.linkActive;
var panelActiveClass = this.isJs ? _class.panelJsActive : _class.panelActive;
if (!Volta._hasClass(linkElement, _class.linkDisabled) && (!this._activeLink || this._activeLink !== linkElement)) {
if (this._activeLink) {
this._activeLink.classList.remove(linkActiveClass);
this._activePanel.classList.remove(panelActiveClass);
}
this._deactivateElements();
this._setActiveElements(linkElement);
this._activeLink.classList.add(linkActiveClass);
this._activePanel.classList.add(panelActiveClass);
if (Volta.tooltip) {
Volta.tooltip.init();
}
}
},
_deactivateElements: function () {
this._links.forEach(function (link) {
link.setAttribute('tabIndex', '-1');
link.setAttribute('aria-selected', 'false');
});
Array.from(this._panels).forEach(function (panel) {
panel.setAttribute('hidden', 'hidden');
});
},
_setActiveElements: function (linkElement) {
var linkActiveClass = this.isJs ? _class.linkJsActive : _class.linkActive;
if (!linkElement) {
this._activeLink = this._links.item(linkActiveClass);
} else {
this._activeLink = linkElement;
}
var tabIndex;
var currentNode = 0;
while (!tabIndex && currentNode < this._links.length) {
if (this._links.item(currentNode) === this._activeLink) {
tabIndex = currentNode;
break;
}
currentNode++;
}
if (this._panels) {
this._activePanel = this._panels.item(tabIndex);
}
this._activeLink.setAttribute('tabindex', '0');
this._activeLink.setAttribute('aria-selected', 'true');
if (this._activePanel) {
this._activePanel.removeAttribute('hidden');
}
},
_keyUpEventListener: function (event) {
var key = event.keyCode;
switch (key) {
case this._keys.left:
case this._keys.right:
this._switchTab(event);
break;
}
},
_switchTab: function (event) {
var nextTab;
if (this._keys.left === event.keyCode) {
nextTab = this._findNextTab(-1);
} else if (this._keys.right === event.keyCode) {
nextTab = this._findNextTab(1);
}
this.toggle(nextTab);
},
_findNextTab: function (direction) {
var tab, nextTab;
var currentIndex = this._activeLink.index;
for (var i = currentIndex + direction; !nextTab && this._calculateIndex(i) !== currentIndex; i += direction) {
tab = this._links.item(this._calculateIndex(i));
if (!Volta._hasClass(tab, _class.linkDisabled)) {
nextTab = tab;
}
}
return nextTab;
},
_calculateIndex: function (i) {
var length = this._links.length;
return (i % length + length) % length;
}
};
return {
create: create,
init: attachTabHandlers
};
/**
* @public
*
* @description Attach a listener to the tab header
*/
function attachTabHandlers() {
//traditional tabs
document.querySelectorAll('.' + _class.tabs).forEach(create);
document.querySelectorAll('[data-tab-content]').forEach(create);
}
/**
* @public
*
* @description Create a tabs component
* @param {HTMLElement} element
*/
function create(element) {
var tabs = Object.create(Tabs.prototype, {});
if (Volta._hasClass(element, _class.tabs)) {
tabs.init(element, true);
} else {
tabs.init(element);
}
return tabs;
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* tables (requires core)
*/
'use strict';
Volta.table = function () {
var _class = {
table: 'Vlt-table',
tall: 'Vlt-table--tall',
short: 'Vlt-table--short',
trigger: 'Vlt-table__density',
buttonActive: 'Vlt-btn_active'
};
return {
init: attachTableDensityHandlers
};
/**
* @public
*
* @description Attach a listener to the table density triggers
*/
function attachTableDensityHandlers() {
var triggers = document.querySelectorAll('.' + _class.trigger);
if (triggers.length > 0) {
triggers.forEach(attachTriggerHandler);
}
function attachTriggerHandler(trigger) {
if (trigger.dataset.table) {
var table = document.querySelector('#' + trigger.dataset.table);
if (!table) {
console.warn('Volta: table ' + trigger.dataset.table + ' cannot be found');
return;
}
var activeButton = trigger.querySelector('.' + _class.buttonActive);
trigger.querySelectorAll('.Vlt-btn').forEach(function (button) {
button.addEventListener('click', function () {
if (this.dataset.density) {
console.log('in');
if (this.dataset.density == 'short') {
table.classList.add(_class.short);
table.classList.remove(_class.tall);
} else if (this.dataset.density == 'tall') {
table.classList.add(_class.tall);
table.classList.remove(_class.short);
} else {
table.classList.remove(_class.tall);
table.classList.remove(_class.short);
} // update classes on buttons
if (activeButton) {
activeButton.classList.remove(_class.buttonActive);
}
activeButton = this;
this.classList.add(_class.buttonActive);
}
});
});
}
}
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Tooltips (requires popper.js, tooltip.js)
*/
'use strict';
Volta.tooltip = function () {
var _class = {
bottom: 'Vlt-tooltip--bottom',
left: 'Vlt-tooltip--left',
tooltip: 'Vlt-tooltip',
top: 'Vlt-tooltip--top',
right: 'Vlt-tooltip--right'
};
var currentTooltip = undefined,
currentTooltipContent = undefined;
return {
create: create,
init: attachTooltipHandlers
};
/**
* @public
*
* @description Create a Tooltip instance for every Vlt-tooltip
*/
function attachTooltipHandlers() {
document.querySelectorAll('.' + _class.tooltip).forEach(create);
}
/**
* @public
*
* @description Create a Tooltip instance
* @param {HTMLElement} tooltip
* @return {object} a Tooltip element
*/
function create(tooltip) {
var placement;
if (Volta._hasClass(tooltip, _class.bottom)) {
placement = 'bottom';
} else if (Volta._hasClass(tooltip, _class.top)) {
placement = 'top';
} else if (Volta._hasClass(tooltip, _class.left)) {
placement = 'left';
} else if (Volta._hasClass(tooltip, _class.right)) {
placement = 'right';
}
var template = '';
var title = tooltip.title; //remove the title so deafult title does not show
tooltip.title = "";
return new _tooltip_min_js__WEBPACK_IMPORTED_MODULE_0___default.a(tooltip, {
html: true,
template: template,
title: title,
placement: placement
});
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Menu Collapse (requires core, menu)
*/
'use strict';
Volta.menuCollapse = function () {
var _class = {
animate: 'Vlt-sidenav--animate',
collapsed: 'Vlt-sidenav--collapsed',
visible: 'Vlt-sidenav_visible'
};
var _id = {
collapse: '#Vlt-sidenav-collapse-trigger'
};
var menuCollapseString = "menuCollapse";
return {
attachCloseHandler: attachCloseHandler,
init: initialise
};
/**
* @private
*
* @description Attach listener to trigger for collapsing the menu
*/
function attachMenuCollapseHandler() {
var collapseTrigger = document.querySelector(_id.collapse);
if (collapseTrigger) {
collapseTrigger.addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
var hasCollapsedClass = Volta._hasClass(Volta.menu._element, _class.collapsed);
var isMobile = Volta._hasClass(Volta.menu._element, _class.visible);
Volta.menu._element.classList.add(_class.animate);
if (isMobile) {
Volta.menu._element.classList.remove(_class.visible);
} else if (hasCollapsedClass) {
unCollapseMenu(Volta.menu._element);
} else {
collapseMenu(Volta.menu._element);
}
});
}
}
/**
* @public
*
* @description Attach listener to trigger for closing the menu
*/
function attachCloseHandler(expandedMenus) {
if (document.querySelector('.' + _class.collapsed) && expandedMenus) {
document.querySelector('body').addEventListener('click', closeMenu, {
once: true
});
}
function closeMenu(e) {
if (!Volta._hasClass(e.target, Volta.menu._class.link) && !Volta._hasClass(e.target.parentElement, Volta.menu._class.link)) {
e.preventDefault();
e.stopPropagation();
Volta.menu.closeAll();
} else {
document.querySelector('body').addEventListener('click', closeMenu, {
once: true
});
}
}
}
/**
* @private
*
* @description Collapse the expanded menu
*/
function collapseMenu() {
Volta.menu.closeAll();
Volta.menu.selectActiveTab();
Volta.menu._element.classList.add(_class.collapsed);
document.querySelectorAll(Volta.menu._class.trigger).forEach(function (menuItem) {
menuItem.nextElementSibling.style = "top: " + menuItem.positionTop;
});
if (localStorage) {
localStorage.setItem(menuCollapseString, true);
}
var sideTabs = Volta.menu._element.querySelector('.' + Volta.menu._class.sideTabs);
if (sideTabs) {
sideTabs.querySelectorAll('.' + Volta.menu._class.sideTabsTrigger).forEach(function (trigger) {
trigger.classList.remove(Volta.menu._class.sideTabsTrigger);
trigger.classList.add(Volta.menu._class.trigger);
trigger.addEventListener('click', Volta.menu.showCollapsed);
});
sideTabs.querySelectorAll('.' + Volta.menu._class.sideTabsLink).forEach(function (link) {
link.classList.remove(Volta.menu._class.sideTabsLink);
link.classList.add(Volta.menu._class.link);
});
}
Volta.menu.styleActiveTrigger();
}
/**
* @public
*
* @description Initailise the menu collapsing
*/
function initialise() {
if (!Volta.menu || !Volta.menu._element) return;
attachMenuCollapseHandler();
var menuCollapsedFlag = localStorage ? localStorage.getItem(menuCollapseString) : false;
if (menuCollapsedFlag) {
Volta.menu._element.querySelectorAll('.' + Volta.menu._class.triggerActive).forEach(function (trigger) {
trigger.classList.remove(Volta.menu._class.triggerActive);
});
collapseMenu();
} else {
Volta.menu.expand();
}
}
/**
* @public
*
* @description Expand the collapsed menu
*/
function unCollapseMenu() {
Volta.menu._element.classList.remove(_class.collapsed);
if (localStorage) {
localStorage.removeItem(menuCollapseString);
}
var sideTabs = Volta.menu._element.querySelector('.' + Volta.menu._class.sideTabs);
if (sideTabs) {
sideTabs.querySelectorAll('.' + Volta.menu._class.trigger).forEach(function (trigger) {
trigger.classList.add(Volta.menu._class.sideTabsTrigger);
trigger.classList.remove(Volta.menu._class.trigger);
trigger.removeEventListener('click', Volta.menu.showCollapsed);
});
sideTabs.querySelectorAll('.' + Volta.menu._class.link).forEach(function (link) {
link.classList.add(Volta.menu._class.sideTabsLink);
link.classList.remove(Volta.menu._class.link);
});
}
Volta.menu.expand(true);
}
}();
/**
* Copyright (c) 2001-present, Vonage.
*
* Menu (requires core)
*/
'use strict';
Volta.menu = function () {
var _class = {
mobile: 'Vlt-sidenav__mobile',
mobileOpen: 'Vlt-body--mobile-menu-open',
mobileTrigger: 'Vlt-sidenav__mobile-trigger',
link: 'Vlt-sidemenu__link',
linkActive: 'Vlt-sidemenu__link_active',
sideMenu: 'Vlt-sidemenu',
sideTabs: 'Vlt-sidetabs',
sideTabsLinkActive: 'Vlt-js-tabs__link_active',
sideTabsPanel: 'Vlt-js-tabs__panel',
sideTabsPanelActive: 'Vlt-js-tabs__panel_active',
sideTabsLink: 'Vlt-sidetabs__link',
sideTabsTrigger: 'Vlt-sidetabs__trigger',
trigger: 'Vlt-sidemenu__trigger',
triggerActive: 'Vlt-sidemenu__trigger_active',
triggerCurrent: 'Vlt-sidemenu__trigger_current',
triggerEnabled: '.Vlt-tabs__link:not(.Vlt-tabs__link_disabled)',
visible: 'Vlt-sidenav_visible'
};
var _id = {
menu: '#Vlt-sidenav',
mobileTrigger: '#Vlt-sidenav-mobile-trigger'
};
var expandedMenus = [],
mobileMenuTriggeredTwice;
return {
_class: _class,
_element: undefined,
closeAll: removeAllMenuItemsFromSelectedArr,
init: initialise,
expand: expandActiveMenu,
showCollapsed: expandMenu,
_triggerHandler: attachTriggerHandlers,
selectActiveTab: selectActiveTab,
styleActiveTrigger: styleActiveTrigger
};
/**
* @private
*
* @description Adds the parents of the active menu to the exoanded menus array
* @param {HTMLElement} element The active menu
*/
function addExpandedParentMenuToArr(element) {
var nestedMenuUl = Volta._closest(element, 'ul', '.' + _class.sideMenu);
var nestedMenuTrigger = nestedMenuUl.previousElementSibling;
if (nestedMenuTrigger && Volta._hasClass(nestedMenuTrigger, _class.trigger)) {
if (!Volta._hasClass(nestedMenuTrigger, _class.triggerActive)) {
nestedMenuTrigger.classList.add(_class.triggerActive);
}
expandedMenus.push(nestedMenuTrigger);
addExpandedParentMenuToArr(nestedMenuTrigger);
}
}
/**
* @private
*
* @description Attach the listener for the mobile menu trigger
*/
function attachMobileTriggerHandler() {
var mobileMenuTrigger = document.querySelector(_id.mobileTrigger);
if (mobileMenuTrigger) {
mobileMenuTrigger.addEventListener('click', function (e) {
if (mobileMenuTriggeredTwice) {
mobileMenuTriggeredTwice = false;
e.stopPropagation();
return;
}
if (!Volta._hasClass(Volta.menu._element, _class.visible)) {
Volta.menu._element.classList.add(_class.visible);
document.body.classList.add(_class.mobileOpen); //stop propagation otherwise will immediately call handler
e.stopPropagation();
addMobileMenuCollapseListeners();
}
});
}
}
/**
* @private
*
* @description Attach the listeners for closing the expanded mobile menu
*/
function addMobileMenuCollapseListeners() {
document.querySelector('body').addEventListener('click', closeMenu, {
once: true
});
document.querySelector('body').addEventListener('touchstart', closeMenu, {
once: true
});
}
/**
* @public
*
* @description Attach the listeners to the trigger elements of the menu
*/
function attachTriggerHandlers() {
attachMobileTriggerHandler();
Volta.menu._element.querySelectorAll('.' + _class.trigger).forEach(attachHandler);
function attachHandler(triggerElem) {
triggerElem.addEventListener('click', expandMenu);
}
}
/**
* @private
*
* @description Checks if the passed in menu is nested
* @param {HTMLElement} menuItem
* @return {boolean} If the menu item is nested returns true, otherwise false
*/
function checkMenuItemIsNested(menuItem) {
return isNestedDescendant(menuItem);
}
/**
* @private
*
* @description Recursive function to check if the passed in menu is nested
* @param {HTMLElement} menuItem
* @param {Boolean} isAncestor
* @return {boolean} If the menu item is nested returns true, otherwise false
*/
function isNestedDescendant(menuItem, isAncestor) {
var isNested = false;
var ancestor = isAncestor ? menuItem.parentElement : menuItem.parentElement.parentElement;
var ancestorSibling = ancestor.previousElementSibling;
if (ancestorSibling) {
isNested = Volta._hasClass(ancestorSibling, _class.trigger);
}
if (ancestorSibling && !isNested) {
return isNestedDescendant(ancestor, true);
}
return isNested;
}
/**
* @private
*
* @description Attach the listeners to the trigger elements of the menu
* @param {HTMLElement} menuItem
* @return {boolean} If the menu item is nested returns true, otherwise false
*/
function closeMenu(e) {
if (!Volta._hasClass(e.target, _class.sideMenu) && !Volta._closest(e.target, '.' + _class.sideMenu) && !Volta._hasClass(e.target, _class.sideTabs) && !Volta._closest(e.target, '.' + _class.sideTabs)) {
Volta.menu._element.classList.remove(_class.visible);
document.body.classList.remove(_class.mobileOpen);
var isMobileMenu = Volta._closest(e.target, '.' + _class.mobile);
if (Volta._hasClass(e.target, _class.mobileTrigger) || isMobileMenu) {
mobileMenuTriggeredTwice = true;
}
} else {
addMobileMenuCollapseListeners();
}
}
/**
* @private
*
* @description Expand the nested menu
* @param {event} e
*/
function expandMenu(e) {
e.preventDefault();
e.stopPropagation();
var _this = this;
var isNestedMenu = checkMenuItemIsNested(_this);
if (expandedMenus.indexOf(_this) >= 0 && isNestedMenu) {
removeMenuFromSelectedArr(_this);
} else if (expandedMenus.indexOf(_this) >= 0) {
removeAllMenuItemsFromSelectedArr();
} else {
if (!isNestedMenu) {
removeAllMenuItemsFromSelectedArr();
} else {
removeSiblingFromSelectedArr(_this);
}
expandedMenus.push(_this);
_this.classList.add(_class.triggerActive);
}
if (Volta.menuCollapse) {
Volta.menuCollapse.attachCloseHandler(expandedMenus);
}
}
/**
* @public
*
* @description Expand the active menu - typically used on page load
* @param {boolean} isUserForced Whether the action has been trigger by the user
*/
function expandActiveMenu(isUserForced) {
var activeMenuItem = Volta.menu._element.querySelector('.' + _class.linkActive);
selectActiveTab(activeMenuItem);
if (activeMenuItem) {
var activeTriggerUl = Volta._closest(activeMenuItem, 'ul', '.' + _class.sideMenu);
var activeTrigger = activeTriggerUl ? activeTriggerUl.previousElementSibling : null;
if (activeTrigger) {
var isNestedMenu = checkMenuItemIsNested(activeTrigger);
if (isNestedMenu) {
addExpandedParentMenuToArr(activeTrigger);
}
if (!Volta._hasClass(activeTrigger, _class.triggerActive)) {
activeTrigger.classList.add(_class.triggerActive); //console.log("HEY!!!");
}
expandedMenus.push(activeTrigger);
}
styleActiveTrigger(activeMenuItem);
}
}
/**
* @public
*
* @description Initialise the menu
* @param {boolean} menuCollapse Whether the collapse module has been included
*/
function initialise(menuCollapse) {
expandedMenus = [];
Volta.menu._element = document.querySelector(_id.menu);
if (Volta.menu._element) {
if (!Volta.menuCollapse) {
expandActiveMenu();
} else if (menuCollapse) {
Volta.menuCollapse.init();
}
attachTriggerHandlers();
}
}
/**
* @public
*
* @description Clear the selected menus array, and close all of the nested menus
*/
function removeAllMenuItemsFromSelectedArr() {
expandedMenus.forEach(function (menuItem) {
menuItem.classList.remove(_class.triggerActive);
});
expandedMenus = [];
}
/**
* @private
*
* @description Remove a specific menu item from the selected array and close
*/
function removeMenuFromSelectedArr(menuItem) {
var menuIndex = expandedMenus.indexOf(menuItem);
menuItem.classList.remove(_class.triggerActive);
expandedMenus.splice(menuIndex, 1);
}
/**
* @private
*
* @description Remove sibling menu item from the selected array and close
*/
function removeSiblingFromSelectedArr(menuItem) {
var ancestors = menuItem.parentElement.parentElement.children;
var openSibling;
var count = ancestors.length - 1;
while (openSibling === undefined && count >= 0) {
var siblingIndex = expandedMenus.indexOf(ancestors[count].children[0]);
if (siblingIndex >= 0) {
openSibling = expandedMenus[siblingIndex];
}
count--;
}
if (openSibling) {
removeMenuFromSelectedArr(openSibling);
}
}
/**
* @public
*
* @description Select the active side tab
* @param {activeMenuItem} Element(optional) The active menu item
*/
function selectActiveTab(activeMenuItem) {
activeMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);
var navTabs = document.querySelector(_id.menu + ' .' + _class.sideTabs);
if (!navTabs || !activeMenuItem) {
return null;
}
var sideMenus = Volta.menu._element.querySelectorAll('.' + _class.sideMenu);
var menuTab = Volta._closest(activeMenuItem, '.' + _class.sideTabsPanel, '.' + _class.sideMenu);
var tabIndex;
var currentNode = 0;
while (!tabIndex && currentNode < sideMenus.length) {
if (sideMenus.item(currentNode) === menuTab) {
tabIndex = currentNode;
break;
}
currentNode++;
}
var sideTabs = Volta.menu._element.querySelectorAll('.' + _class.sideTabsLink);
sideTabs[tabIndex].click();
}
/**
* @public
*
* @description Adds a class to the top level active trigger
* @param {activeMenuItem} Element(optional) The active menu item
*/
function styleActiveTrigger(activeMenuItem) {
activeMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);
if (activeMenuItem) {
var topLevelTrigger = getTopLevelTrigger(activeMenuItem);
if (topLevelTrigger) {
topLevelTrigger.classList.add(_class.triggerCurrent);
}
}
function getTopLevelTrigger(activeMenuItem) {
var element = activeMenuItem;
var trigger = null;
while (element) {
if (element.matches('ul') && Volta._hasClass(element, _class.sideMenu)) {
break;
}
if (element.matches('ul')) {
trigger = element;
}
element = element.parentElement;
}
return trigger ? trigger.previousElementSibling : null;
}
}
}();
/* harmony default export */ __webpack_exports__["default"] = (Volta);
/***/ }),
/***/ "./app/webpacker/javascript/volta_tabbed_examples/index.js":
/*!*****************************************************************!*\
!*** ./app/webpacker/javascript/volta_tabbed_examples/index.js ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return VoltaTabbedExamples; });
/* harmony import */ var _user_preference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user_preference */ "./app/webpacker/javascript/volta_tabbed_examples/user_preference.js");
class VoltaTabbedExamples {
constructor() {
this.userPreference = new _user_preference__WEBPACK_IMPORTED_MODULE_0__["default"](true);
if ($('.Vlt-tabs').length) {
this.context = $('.Vlt-tabs');
this.restoreTabs = this.restoreTabs.bind(this);
this.setupEvents = this.setupEvents.bind(this);
this.onTabClick = this.onTabClick.bind(this);
this.onPopState = this.onPopState.bind(this);
this.persistLanguage = this.persistLanguage.bind(this);
this.restoreTabs();
this.setupEvents();
}
}
shouldRestoreTabs() {
return !this.context.find('.Vlt-tabs__header--bordered').data('has-initial-tab');
}
languages() {
let obj = {};
$(this.context).find(`[data-language]`).each(function (index, el) {
$(el).data('language').split(',').forEach(function (language) {
obj[language] = {
platform: $(el).data('platform') || false
};
});
});
return obj;
}
restoreTabs() {
if (this.shouldRestoreTabs()) {
let languages = this.languages();
const language = this.userPreference.topMatch(Object.keys(languages));
if (language) {
if (languages[language]['platform']) {
this.setPlatform(languages[language]['platform'], this.context);
} else {
this.setLanguage(language);
}
}
} else {
const selectedLanguage = this.context.find('li.Vlt-tabs__link_active').data('language');
this.setLanguage(selectedLanguage);
}
}
setupEvents() {
$('.Vlt-tabs__link').click(this.onTabClick);
$(window).on('popstate', this.onPopState);
}
onPopState(event) {
if (window.history.state && window.history.state.language) {
this.setLanguage(window.history.state.language);
}
}
onTabClick(event) {
// Prevent nested tabs from changing the url
if ($(event.target).parents('.Vlt-tabs').length > 1) {
return;
}
const language = $(event.currentTarget).data('language');
const languageType = $(event.currentTarget).data('language-type');
const linkable = $(event.currentTarget).data('language-linkable');
if (language) {
if (linkable) {
document.dispatchEvent(new CustomEvent('codeLanguageChange', {
"detail": {
"language": language
}
}));
if ($(".skip-pushstate").length == 0) {
const rootPath = $('body').data('push-state-root');
window.history.pushState({
language
}, 'language', `${rootPath}/${language}`);
}
}
this.persistLanguage(language, languageType, linkable);
}
}
persistLanguage(language, languageType) {
if (language) {
this.userPreference.promote(languageType, language);
}
}
setLanguage(language) {
setTimeout(() => {
$(`[data-language='${language}']`).click(); // Remove skip pushstate after the first load. This is a bit of a hack, but it works to stop breaking
// the back button
$(".skip-pushstate").removeClass('skip-pushstate');
}, 0);
}
setPlatform(platform) {
setTimeout(() => {
$(`[data-platform='${platform}']`).click();
}, 0);
}
}
/***/ }),
/***/ "./app/webpacker/javascript/volta_tabbed_examples/user_preference.js":
/*!***************************************************************************!*\
!*** ./app/webpacker/javascript/volta_tabbed_examples/user_preference.js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return UserPreference; });
/* harmony import */ var lodash_intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/intersection */ "../../node_modules/lodash/intersection.js");
/* harmony import */ var lodash_intersection__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_intersection__WEBPACK_IMPORTED_MODULE_0__);
class UserPreference {
constructor(useSingleStore) {
this.useSingleStore = useSingleStore;
this.platformPreference = this.platforms();
this.terminalProgramsPreference = this.terminalPrograms();
this.frameworkPreference = this.frameworks();
}
languages() {
return this.get(this.getKeyFromType('languages'));
}
platforms() {
return this.get(this.getKeyFromType('platforms'));
}
terminalPrograms() {
return this.get(this.getKeyFromType('terminal_programs'));
}
frameworks() {
return this.get(this.getKeyFromType('frameworks'));
}
all() {
return this.platforms().concat(this.terminalPrograms(), this.languages(), this.frameworks());
}
getKeyFromType(type) {
if (this.useSingleStore) {
return 'preferences.all';
}
switch (type) {
case 'languages':
return 'preferences.languages';
case 'platforms':
return 'preferences.platforms';
case 'terminal_programs':
return 'preferences.terminal_programs';
case 'frameworks':
return 'preferences.frameworks';
}
}
getByType(type) {
switch (type) {
case 'languages':
return this.languages();
case 'platforms':
return this.platforms();
case 'terminal_programs':
return this.terminalPrograms();
case 'frameworks':
return this.frameworks();
}
}
get(key) {
const value = window.localStorage.getItem(key);
if (!value) {
return [];
}
return JSON.parse(value);
}
store(type, value) {
const key = this.getKeyFromType(type);
localStorage.setItem(key, JSON.stringify(value));
}
promote(type, value) {
let list = this.getByType(type) || [];
list = list.filter(item => item !== value);
list.unshift(value);
this.store(type, list);
}
topMatch(available) {
const result = lodash_intersection__WEBPACK_IMPORTED_MODULE_0___default()(this.all(), available);
return result[0] || false;
}
}
/***/ }),
/***/ "./app/webpacker/packs/application.js":
/*!********************************************!*\
!*** ./app/webpacker/packs/application.js ***!
\********************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/polyfill */ "../../node_modules/@babel/polyfill/lib/index.js");
/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_polyfill__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _vonagevolta_volta2_js_addons_prism__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vonagevolta/volta2/js/addons/prism */ "../../node_modules/@vonagevolta/volta2/js/addons/prism.js");
/* harmony import */ var _vonagevolta_volta2_js_addons_prism__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_vonagevolta_volta2_js_addons_prism__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _rails_ujs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @rails/ujs */ "../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js");
/* harmony import */ var _rails_ujs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_rails_ujs__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _stylesheets_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../stylesheets/application */ "./app/webpacker/stylesheets/application.scss");
/* harmony import */ var _stylesheets_application__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_stylesheets_application__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _javascript_volta_volta_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../javascript/volta/volta.js */ "./app/webpacker/javascript/volta/volta.js");
/* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue/dist/vue.esm */ "../../node_modules/vue/dist/vue.esm.js");
/* harmony import */ var gsap__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! gsap */ "../../node_modules/gsap/index.js");
/* harmony import */ var _javascript_github_cards__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../javascript/github_cards */ "./app/webpacker/javascript/github_cards/index.js");
/* harmony import */ var _javascript_volta_tabbed_examples__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../javascript/volta_tabbed_examples */ "./app/webpacker/javascript/volta_tabbed_examples/index.js");
/* harmony import */ var _javascript_format__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../javascript/format */ "./app/webpacker/javascript/format/index.js");
/* harmony import */ var _javascript_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../javascript/scroll */ "./app/webpacker/javascript/scroll/index.js");
/* harmony import */ var _javascript_spotlight__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../javascript/spotlight */ "./app/webpacker/javascript/spotlight/index.js");
/* harmony import */ var _javascript_notices__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../javascript/notices */ "./app/webpacker/javascript/notices/index.js");
/* harmony import */ var _javascript_components_feedback_Feedback_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../javascript/components/feedback/Feedback.vue */ "./app/webpacker/javascript/components/feedback/Feedback.vue");
/* harmony import */ var _javascript_components_jwt_generator_JwtGenerator_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../javascript/components/jwt_generator/JwtGenerator.vue */ "./app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue");
/* harmony import */ var _javascript_components_search_Search_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../javascript/components/search/Search.vue */ "./app/webpacker/javascript/components/search/Search.vue");
/* harmony import */ var _javascript_components_concatenation_Concatenation_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../javascript/components/concatenation/Concatenation.vue */ "./app/webpacker/javascript/components/concatenation/Concatenation.vue");
/* harmony import */ var _javascript_api_status__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../javascript/api_status */ "./app/webpacker/javascript/api_status/index.js");
/* harmony import */ var _javascript_code_snippet_events__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../javascript/code_snippet_events */ "./app/webpacker/javascript/code_snippet_events/index.js");
/* harmony import */ var _javascript_sidenav_index__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../javascript/sidenav/index */ "./app/webpacker/javascript/sidenav/index.js");
/* harmony import */ var _javascript_careers__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../javascript/careers */ "./app/webpacker/javascript/careers/index.js");
/* harmony import */ var _javascript_locale_switcher__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../javascript/locale_switcher */ "./app/webpacker/javascript/locale_switcher/index.js");
/* eslint no-console:0 */
// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.
//
// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate
// layout file, like app/views/layouts/application.html.erb
__webpack_require__("../../node_modules/@vonagevolta/volta2/images/logos sync recursive ^\\.\\/.*$");
__webpack_require__("../../node_modules/@vonagevolta/volta2/dist/symbol sync recursive ^\\.\\/.*$"); // XXX: hack for Volta, unfortunately it doesn't provide modules :(
$(document).ready(function () {
_rails_ujs__WEBPACK_IMPORTED_MODULE_2___default.a.start();
Object(_javascript_scroll__WEBPACK_IMPORTED_MODULE_10__["default"])();
Object(_javascript_notices__WEBPACK_IMPORTED_MODULE_12__["default"])();
Object(_javascript_github_cards__WEBPACK_IMPORTED_MODULE_7__["default"])();
new _javascript_volta_tabbed_examples__WEBPACK_IMPORTED_MODULE_8__["default"]();
new _javascript_format__WEBPACK_IMPORTED_MODULE_9__["default"]();
Object(_javascript_api_status__WEBPACK_IMPORTED_MODULE_17__["default"])();
Object(_javascript_scroll__WEBPACK_IMPORTED_MODULE_10__["default"])();
Object(_javascript_code_snippet_events__WEBPACK_IMPORTED_MODULE_18__["default"])();
new _javascript_sidenav_index__WEBPACK_IMPORTED_MODULE_19__["default"]();
Object(_javascript_spotlight__WEBPACK_IMPORTED_MODULE_11__["default"])();
new _javascript_careers__WEBPACK_IMPORTED_MODULE_20__["default"]();
new _javascript_locale_switcher__WEBPACK_IMPORTED_MODULE_21__["default"]();
if (document.getElementById('jwt-generator-app')) {
new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_5__["default"]({
el: '#jwt-generator-app',
template: '',
components: {
JwtGenerator: _javascript_components_jwt_generator_JwtGenerator_vue__WEBPACK_IMPORTED_MODULE_14__["default"]
}
});
}
if (document.getElementById('search-app')) {
new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_5__["default"]({
el: '#search-app',
template: '',
components: {
Search: _javascript_components_search_Search_vue__WEBPACK_IMPORTED_MODULE_15__["default"]
}
});
}
if (document.getElementById('feedback-app')) {
new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_5__["default"]({
el: '#feedback-app',
template: '',
render: createElement => {
let context = {
props: {
codeLanguage: window.feedbackProps.code_language || window.initialLanguage,
codeLanguageSelectedWhilstOnPage: window.feedbackProps.code_language_selected_whilst_on_page || false,
codeLanguageSetByUrl: window.feedbackProps.code_language_set_by_url,
currentUser: window.feedbackProps.current_user,
feedbackAuthor: window.feedbackProps.feedback_author,
githubUrl: window.feedbackProps.github_url,
recaptcha: window.feedbackProps.recaptcha,
source: window.feedbackProps.source
}
};
return createElement(_javascript_components_feedback_Feedback_vue__WEBPACK_IMPORTED_MODULE_13__["default"], context);
}
});
}
if (document.getElementById('concatenation-app')) {
new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_5__["default"]({
el: '#concatenation-app',
template: '',
components: {
Concatenation: _javascript_components_concatenation_Concatenation_vue__WEBPACK_IMPORTED_MODULE_16__["default"]
}
});
}
_javascript_volta_volta_js__WEBPACK_IMPORTED_MODULE_4__["default"].init(['accordion', 'tooltip', 'tab', 'modal', 'dropdown']);
setTimeout(function () {
const sidebarActive = document.querySelector('.Vlt-sidemenu__link_active');
if (sidebarActive) {
sidebarActive.scrollIntoView(true);
}
document.getElementById('header').focus();
}, 100); // If there are any links in the sidebar, we need to be able to click them
// and not trigger the Volta accordion
$(".Vlt-sidemenu__trigger a").click(function () {
window.location = $(this).attr("href");
return false;
}); // Track A/B testing clicks
$("[data-ab]").click(function (e) {
let r = new Request('/usage/ab_result', {
method: 'POST',
credentials: 'same-origin',
body: JSON.stringify({
't': $(this).data('ab')
}),
headers: {
'Content-Type': 'application/json'
}
});
fetch(r).then(response => {
if (response.ok) {
return response.json();
}
return Promise.reject({
message: 'Bad response from server',
response
});
});
}); // Mermaid diagrams
mermaid.initialize({
startOnLoad: true,
sequence: {
useMaxWidth: false
},
themeCSS: '.actor { fill: #BDD5EA; stroke: #81B1DB; }',
htmlLabels: true
});
});
/***/ }),
/***/ "./app/webpacker/stylesheets/application.scss":
/*!****************************************************!*\
!*** ./app/webpacker/stylesheets/application.scss ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
throw new Error("Module build failed (from /Users/bgreenberg2/Documents/dev/station/node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js):\nModuleBuildError: Module build failed (from /Users/bgreenberg2/Documents/dev/station/node_modules/sass-loader/dist/cjs.js):\nError: Missing binding /Users/bgreenberg2/Documents/dev/station/node_modules/node-sass/vendor/darwin-x64-83/binding.node\nNode Sass could not find a binding for your current environment: OS X 64-bit with Node.js 14.x\n\nFound bindings for the following environments:\n - OS X 64-bit with Node.js 12.x\n\nThis usually happens because your environment has changed since running `npm install`.\nRun `npm rebuild node-sass` to download the binding for your current environment.\n at module.exports (/Users/bgreenberg2/Documents/dev/station/node_modules/node-sass/lib/binding.js:15:13)\n at Object. (/Users/bgreenberg2/Documents/dev/station/node_modules/node-sass/lib/index.js:14:35)\n at Module._compile (/Users/bgreenberg2/Documents/dev/station/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:1096:10)\n at Module.load (internal/modules/cjs/loader.js:940:32)\n at Function.Module._load (internal/modules/cjs/loader.js:781:14)\n at Module.require (internal/modules/cjs/loader.js:964:19)\n at require (/Users/bgreenberg2/Documents/dev/station/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)\n at getDefaultSassImplementation (/Users/bgreenberg2/Documents/dev/station/node_modules/sass-loader/dist/utils.js:43:10)\n at getSassImplementation (/Users/bgreenberg2/Documents/dev/station/node_modules/sass-loader/dist/utils.js:57:30)\n at Object.loader (/Users/bgreenberg2/Documents/dev/station/node_modules/sass-loader/dist/index.js:34:59)\n at /Users/bgreenberg2/Documents/dev/station/node_modules/webpack/lib/NormalModule.js:316:20\n at /Users/bgreenberg2/Documents/dev/station/node_modules/loader-runner/lib/LoaderRunner.js:367:11\n at /Users/bgreenberg2/Documents/dev/station/node_modules/loader-runner/lib/LoaderRunner.js:233:18\n at runSyncOrAsync (/Users/bgreenberg2/Documents/dev/station/node_modules/loader-runner/lib/LoaderRunner.js:143:3)\n at iterateNormalLoaders (/Users/bgreenberg2/Documents/dev/station/node_modules/loader-runner/lib/LoaderRunner.js:232:2)\n at Array. (/Users/bgreenberg2/Documents/dev/station/node_modules/loader-runner/lib/LoaderRunner.js:205:4)\n at Storage.finished (/Users/bgreenberg2/Documents/dev/station/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)\n at /Users/bgreenberg2/Documents/dev/station/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9\n at /Users/bgreenberg2/Documents/dev/station/node_modules/graceful-fs/graceful-fs.js:123:16\n at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)");
/***/ })
},[["./app/webpacker/packs/application.js","runtime~application","vendors~application"]]]);
//# sourceMappingURL=application-d280e78dd4f9d3d9b466.chunk.js.map