openstack-uicore-foundation 4.0.96 → 4.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/ajaxloader.js +184 -0
- package/lib/components/attendance-tracker.js +1992 -0
- package/lib/components/bulk-actions-selector.js +194 -0
- package/lib/components/circle-button.js +223 -0
- package/lib/components/clock.js +678 -0
- package/lib/components/exclusive-wrapper.js +151 -0
- package/lib/components/extra-questions.js +1902 -0
- package/lib/components/form-validation.js +190 -0
- package/lib/components/forms/rsvp-form.js +940 -0
- package/lib/components/forms/simple-form.js +708 -0
- package/lib/components/free-text-search.js +2042 -0
- package/lib/components/google-map.js +576 -0
- package/lib/components/index.js +12840 -0
- package/lib/components/inputs/access-levels-input.js +2306 -0
- package/lib/components/inputs/action-dropdown.js +219 -0
- package/lib/components/inputs/checkbox-list.js +339 -0
- package/lib/components/inputs/company-input.js +2341 -0
- package/lib/components/inputs/country-dropdown.js +2399 -0
- package/lib/components/inputs/country-input.js +2302 -0
- package/lib/components/inputs/datetimepicker.js +314 -0
- package/lib/components/inputs/dropdown.js +259 -0
- package/lib/components/inputs/editor-input.js +270 -0
- package/lib/components/inputs/event-input.js +2280 -0
- package/lib/components/inputs/free-multi-text-input.js +252 -0
- package/lib/components/inputs/group-input.js +2275 -0
- package/lib/components/inputs/grouped-dropdown.js +244 -0
- package/lib/components/inputs/language-input.js +2307 -0
- package/lib/components/inputs/member-input.js +2302 -0
- package/lib/components/inputs/operator-input.js +328 -0
- package/lib/components/inputs/organization-input.js +2325 -0
- package/lib/components/inputs/promocode-input.js +2310 -0
- package/lib/components/inputs/radio-list.js +297 -0
- package/lib/components/inputs/registration-company-input.js +2470 -0
- package/lib/components/inputs/speaker-input.js +2336 -0
- package/lib/components/inputs/sponsor-input.js +2284 -0
- package/lib/components/inputs/stepped-select.js +197 -0
- package/lib/components/inputs/summit-days-select.js +162 -0
- package/lib/components/inputs/summit-input.js +2282 -0
- package/lib/components/inputs/summit-venues-select.js +172 -0
- package/lib/components/inputs/tag-input.js +2352 -0
- package/lib/components/inputs/text-input.js +202 -0
- package/lib/components/inputs/textarea-input.js +181 -0
- package/lib/components/inputs/ticket-types-input.js +2338 -0
- package/lib/components/inputs/upload-input-v2.js +834 -0
- package/lib/components/inputs/upload-input.js +391 -0
- package/lib/components/progressive-img.js +289 -0
- package/lib/components/raw-html.js +125 -0
- package/lib/components/schedule-builder-constants.js +81 -0
- package/lib/components/schedule-builder-view.js +1684 -0
- package/lib/components/sections/panel.js +156 -0
- package/lib/components/simple-link-list.js +790 -0
- package/lib/components/sponsored-project-input.js +2281 -0
- package/lib/components/summit-dropdown.js +214 -0
- package/lib/components/table-editable.js +895 -0
- package/lib/components/table-selectable.js +552 -0
- package/lib/components/table-sortable.js +657 -0
- package/lib/components/table.js +510 -0
- package/lib/components/video-stream.js +226 -0
- package/lib/css/components/bulk-actions-selector.css +16 -0
- package/lib/css/components/circle-button.css +24 -0
- package/lib/css/components/extra-questions.css +29 -0
- package/lib/css/components/form-validation.css +29 -0
- package/lib/css/components/free-text-search.css +29 -0
- package/lib/css/components/index.css +1357 -0
- package/lib/css/components/inputs/action-dropdown.css +46 -0
- package/lib/css/components/inputs/datetimepicker.css +210 -0
- package/lib/css/components/inputs/grouped-dropdown.css +25 -0
- package/lib/css/components/inputs/stepped-select.css +12 -0
- package/lib/css/components/inputs/upload-input-v2.css +106 -0
- package/lib/css/components/inputs/upload-input.css +43 -0
- package/lib/css/components/progressive-img.css +16 -0
- package/lib/css/components/schedule-builder-view.css +230 -0
- package/lib/css/components/simple-link-list.css +189 -0
- package/lib/css/components/summit-dropdown.css +35 -0
- package/lib/css/components/table-editable.css +145 -0
- package/lib/css/components/table-selectable.css +147 -0
- package/lib/css/components/table-sortable.css +150 -0
- package/lib/css/components/table.css +147 -0
- package/lib/i18n.js +449 -0
- package/lib/models/index.js +238 -0
- package/lib/models/summit-event.js +210 -0
- package/lib/security/abstract-auth-callback-route.js +2114 -0
- package/lib/security/actions.js +1818 -0
- package/lib/security/constants.js +71 -0
- package/lib/security/methods.js +1818 -0
- package/lib/security/reducers.js +1961 -0
- package/lib/security/session-checker.js +2179 -0
- package/lib/utils/actions.js +1818 -0
- package/lib/utils/fragment-parser.js +207 -0
- package/lib/utils/methods.js +369 -0
- package/lib/utils/query-actions.js +2154 -0
- package/lib/utils/questions-set.js +609 -0
- package/lib/utils/reducers.js +1874 -0
- package/lib/utils/use-fit-text.js +178 -0
- package/package.json +1 -1
package/lib/i18n.js
ADDED
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define("openstack-uicore-foundation", [], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["openstack-uicore-foundation"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["openstack-uicore-foundation"] = factory();
|
|
10
|
+
})(this, () => {
|
|
11
|
+
return /******/ (() => { // webpackBootstrap
|
|
12
|
+
/******/ "use strict";
|
|
13
|
+
/******/ var __webpack_modules__ = ({
|
|
14
|
+
|
|
15
|
+
/***/ "./src/utils/methods.js":
|
|
16
|
+
/*!******************************!*\
|
|
17
|
+
!*** ./src/utils/methods.js ***!
|
|
18
|
+
\******************************/
|
|
19
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
20
|
+
|
|
21
|
+
__webpack_require__.r(__webpack_exports__);
|
|
22
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
23
|
+
/* harmony export */ "arraysEqual": () => (/* binding */ arraysEqual),
|
|
24
|
+
/* harmony export */ "base64URLEncode": () => (/* binding */ base64URLEncode),
|
|
25
|
+
/* harmony export */ "buildAPIBaseUrl": () => (/* binding */ buildAPIBaseUrl),
|
|
26
|
+
/* harmony export */ "epochToMoment": () => (/* binding */ epochToMoment),
|
|
27
|
+
/* harmony export */ "epochToMomentTimeZone": () => (/* binding */ epochToMomentTimeZone),
|
|
28
|
+
/* harmony export */ "findElementPos": () => (/* binding */ findElementPos),
|
|
29
|
+
/* harmony export */ "formatEpoch": () => (/* binding */ formatEpoch),
|
|
30
|
+
/* harmony export */ "getAllowedUserGroups": () => (/* binding */ getAllowedUserGroups),
|
|
31
|
+
/* harmony export */ "getAuthCallback": () => (/* binding */ getAuthCallback),
|
|
32
|
+
/* harmony export */ "getBackURL": () => (/* binding */ getBackURL),
|
|
33
|
+
/* harmony export */ "getCurrentHref": () => (/* binding */ getCurrentHref),
|
|
34
|
+
/* harmony export */ "getCurrentLocation": () => (/* binding */ getCurrentLocation),
|
|
35
|
+
/* harmony export */ "getCurrentPathName": () => (/* binding */ getCurrentPathName),
|
|
36
|
+
/* harmony export */ "getCurrentUserLanguage": () => (/* binding */ getCurrentUserLanguage),
|
|
37
|
+
/* harmony export */ "getFromLocalStorage": () => (/* binding */ getFromLocalStorage),
|
|
38
|
+
/* harmony export */ "getOrigin": () => (/* binding */ getOrigin),
|
|
39
|
+
/* harmony export */ "getTimeServiceUrl": () => (/* binding */ getTimeServiceUrl),
|
|
40
|
+
/* harmony export */ "hasErrors": () => (/* binding */ hasErrors),
|
|
41
|
+
/* harmony export */ "isClearingSessionState": () => (/* binding */ isClearingSessionState),
|
|
42
|
+
/* harmony export */ "isEmpty": () => (/* binding */ isEmpty),
|
|
43
|
+
/* harmony export */ "objectToQueryString": () => (/* binding */ objectToQueryString),
|
|
44
|
+
/* harmony export */ "putOnLocalStorage": () => (/* binding */ putOnLocalStorage),
|
|
45
|
+
/* harmony export */ "removeFromLocalStorage": () => (/* binding */ removeFromLocalStorage),
|
|
46
|
+
/* harmony export */ "retryPromise": () => (/* binding */ retryPromise),
|
|
47
|
+
/* harmony export */ "scrollToError": () => (/* binding */ scrollToError),
|
|
48
|
+
/* harmony export */ "setSessionClearingState": () => (/* binding */ setSessionClearingState),
|
|
49
|
+
/* harmony export */ "shallowEqual": () => (/* binding */ shallowEqual),
|
|
50
|
+
/* harmony export */ "toSlug": () => (/* binding */ toSlug)
|
|
51
|
+
/* harmony export */ });
|
|
52
|
+
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ "moment-timezone");
|
|
53
|
+
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);
|
|
54
|
+
/* harmony import */ var urijs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! urijs */ "urijs");
|
|
55
|
+
/* harmony import */ var urijs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(urijs__WEBPACK_IMPORTED_MODULE_1__);
|
|
56
|
+
/**
|
|
57
|
+
* Copyright 2018 OpenStack Foundation
|
|
58
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
59
|
+
* you may not use this file except in compliance with the License.
|
|
60
|
+
* You may obtain a copy of the License at
|
|
61
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
62
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
63
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
64
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
65
|
+
* See the License for the specific language governing permissions and
|
|
66
|
+
* limitations under the License.
|
|
67
|
+
**/
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
const findElementPos = obj => {
|
|
71
|
+
var curtop = -70;
|
|
72
|
+
|
|
73
|
+
if (obj.offsetParent) {
|
|
74
|
+
do {
|
|
75
|
+
curtop += obj.offsetTop;
|
|
76
|
+
} while (obj = obj.offsetParent);
|
|
77
|
+
|
|
78
|
+
return [curtop];
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const epochToMoment = atime => {
|
|
82
|
+
if (!atime) return atime;
|
|
83
|
+
atime = atime * 1000;
|
|
84
|
+
return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(atime);
|
|
85
|
+
};
|
|
86
|
+
const epochToMomentTimeZone = (atime, time_zone) => {
|
|
87
|
+
if (!atime) return atime;
|
|
88
|
+
atime = atime * 1000;
|
|
89
|
+
return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(atime).tz(time_zone);
|
|
90
|
+
};
|
|
91
|
+
const formatEpoch = (atime, format = 'M/D/YYYY h:mm a') => {
|
|
92
|
+
if (!atime) return atime;
|
|
93
|
+
return epochToMoment(atime).format(format);
|
|
94
|
+
};
|
|
95
|
+
const objectToQueryString = obj => {
|
|
96
|
+
var str = "";
|
|
97
|
+
|
|
98
|
+
for (var key in obj) {
|
|
99
|
+
if (str != "") {
|
|
100
|
+
str += "&";
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
str += key + "=" + encodeURIComponent(obj[key]);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return str;
|
|
107
|
+
};
|
|
108
|
+
const getBackURL = () => {
|
|
109
|
+
let url = urijs__WEBPACK_IMPORTED_MODULE_1___default()(window.location.href);
|
|
110
|
+
let query = url.search(true);
|
|
111
|
+
let fragment = url.fragment();
|
|
112
|
+
let backUrl = query.hasOwnProperty('BackUrl') ? query['BackUrl'] : null;
|
|
113
|
+
|
|
114
|
+
if (fragment != null && fragment != '') {
|
|
115
|
+
backUrl += `#${fragment}`;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return backUrl;
|
|
119
|
+
};
|
|
120
|
+
const toSlug = text => {
|
|
121
|
+
text = text.toLowerCase();
|
|
122
|
+
return text.replace(/[^a-zA-Z0-9]+/g, '_');
|
|
123
|
+
};
|
|
124
|
+
const getAuthCallback = () => {
|
|
125
|
+
if (typeof window !== 'undefined') {
|
|
126
|
+
return `${window.location.origin}/auth/callback`;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return null;
|
|
130
|
+
};
|
|
131
|
+
const getCurrentLocation = () => {
|
|
132
|
+
let location = '';
|
|
133
|
+
|
|
134
|
+
if (typeof window !== 'undefined') {
|
|
135
|
+
location = window.location; // check if we are on iframe
|
|
136
|
+
|
|
137
|
+
if (window.top) location = window.top.location;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return location;
|
|
141
|
+
};
|
|
142
|
+
const getOrigin = () => {
|
|
143
|
+
if (typeof window !== 'undefined') {
|
|
144
|
+
return window.location.origin;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return null;
|
|
148
|
+
};
|
|
149
|
+
const getCurrentPathName = () => {
|
|
150
|
+
if (typeof window !== 'undefined') {
|
|
151
|
+
return window.location.pathname;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return null;
|
|
155
|
+
};
|
|
156
|
+
const getCurrentHref = () => {
|
|
157
|
+
if (typeof window !== 'undefined') {
|
|
158
|
+
return window.location.href;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return null;
|
|
162
|
+
};
|
|
163
|
+
const getAllowedUserGroups = () => {
|
|
164
|
+
if (typeof window !== 'undefined') {
|
|
165
|
+
return window.ALLOWED_USER_GROUPS || '';
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return null;
|
|
169
|
+
};
|
|
170
|
+
const buildAPIBaseUrl = relativeUrl => {
|
|
171
|
+
if (typeof window !== 'undefined') {
|
|
172
|
+
return `${window.API_BASE_URL}${relativeUrl}`;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return null``;
|
|
176
|
+
};
|
|
177
|
+
const putOnLocalStorage = (key, value) => {
|
|
178
|
+
if (typeof window !== 'undefined') {
|
|
179
|
+
window.localStorage.setItem(key, value);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
const getFromLocalStorage = (key, removeIt) => {
|
|
183
|
+
if (typeof window !== 'undefined') {
|
|
184
|
+
let val = window.localStorage.getItem(key);
|
|
185
|
+
|
|
186
|
+
if (removeIt) {
|
|
187
|
+
console.log(`getFromLocalStorage removing key ${key}`);
|
|
188
|
+
removeFromLocalStorage(key);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return val;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return null;
|
|
195
|
+
};
|
|
196
|
+
const removeFromLocalStorage = key => {
|
|
197
|
+
if (typeof window !== 'undefined') {
|
|
198
|
+
window.localStorage.removeItem(key);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
const isClearingSessionState = () => {
|
|
202
|
+
if (typeof window !== 'undefined') {
|
|
203
|
+
return window.clearing_session_state;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return false;
|
|
207
|
+
};
|
|
208
|
+
const setSessionClearingState = val => {
|
|
209
|
+
if (typeof window !== 'undefined') {
|
|
210
|
+
window.clearing_session_state = val;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
const getCurrentUserLanguage = () => {
|
|
214
|
+
let language = 'en';
|
|
215
|
+
|
|
216
|
+
if (typeof navigator !== 'undefined') {
|
|
217
|
+
language = navigator.languages && navigator.languages[0] || navigator.language || navigator.userLanguage;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return language;
|
|
221
|
+
};
|
|
222
|
+
const scrollToError = errors => {
|
|
223
|
+
if (Object.keys(errors).length > 0) {
|
|
224
|
+
const firstError = Object.keys(errors)[0];
|
|
225
|
+
const firstNode = document.getElementById(firstError);
|
|
226
|
+
if (firstNode) window.scrollTo(0, findElementPos(firstNode));
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
const hasErrors = (field, errors) => {
|
|
230
|
+
if (field in errors) {
|
|
231
|
+
return errors[field];
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return '';
|
|
235
|
+
};
|
|
236
|
+
const shallowEqual = (object1, object2) => {
|
|
237
|
+
const keys1 = Object.keys(object1);
|
|
238
|
+
const keys2 = Object.keys(object2);
|
|
239
|
+
|
|
240
|
+
if (keys1.length !== keys2.length) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
for (let key of keys1) {
|
|
245
|
+
if (object1[key] !== object2[key]) {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
return true;
|
|
251
|
+
};
|
|
252
|
+
const arraysEqual = (a1, a2) => a1.length === a2.length && a1.every((o, idx) => shallowEqual(o, a2[idx]));
|
|
253
|
+
const isEmpty = obj => {
|
|
254
|
+
return Object.keys(obj).length === 0;
|
|
255
|
+
};
|
|
256
|
+
const base64URLEncode = str => {
|
|
257
|
+
return str.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
258
|
+
};
|
|
259
|
+
const retryPromise = async (cb, maxNumberOfRetries = 3) => {
|
|
260
|
+
for (let i = 0; i < maxNumberOfRetries; i++) {
|
|
261
|
+
if (await cb()) {
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return false;
|
|
267
|
+
};
|
|
268
|
+
const getTimeServiceUrl = () => {
|
|
269
|
+
if (typeof window !== 'undefined') {
|
|
270
|
+
return window.TIMEINTERVALSINCE1970_API_URL || process.env.TIMEINTERVALSINCE1970_API_URL;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return null;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
/***/ }),
|
|
277
|
+
|
|
278
|
+
/***/ "i18n-react":
|
|
279
|
+
/*!*****************************!*\
|
|
280
|
+
!*** external "i18n-react" ***!
|
|
281
|
+
\*****************************/
|
|
282
|
+
/***/ ((module) => {
|
|
283
|
+
|
|
284
|
+
module.exports = require("i18n-react");
|
|
285
|
+
|
|
286
|
+
/***/ }),
|
|
287
|
+
|
|
288
|
+
/***/ "moment-timezone":
|
|
289
|
+
/*!**********************************!*\
|
|
290
|
+
!*** external "moment-timezone" ***!
|
|
291
|
+
\**********************************/
|
|
292
|
+
/***/ ((module) => {
|
|
293
|
+
|
|
294
|
+
module.exports = require("moment-timezone");
|
|
295
|
+
|
|
296
|
+
/***/ }),
|
|
297
|
+
|
|
298
|
+
/***/ "urijs":
|
|
299
|
+
/*!************************!*\
|
|
300
|
+
!*** external "urijs" ***!
|
|
301
|
+
\************************/
|
|
302
|
+
/***/ ((module) => {
|
|
303
|
+
|
|
304
|
+
module.exports = require("urijs");
|
|
305
|
+
|
|
306
|
+
/***/ }),
|
|
307
|
+
|
|
308
|
+
/***/ "./src/i18n/en.json":
|
|
309
|
+
/*!**************************!*\
|
|
310
|
+
!*** ./src/i18n/en.json ***!
|
|
311
|
+
\**************************/
|
|
312
|
+
/***/ ((module) => {
|
|
313
|
+
|
|
314
|
+
module.exports = JSON.parse('{"errors":{"user_not_authz":"Hold on. Your user is not authorized!.","session_expired":"Hold on. Your session expired!.","server_error":"There was a problem with our server, please contact admin."},"general":{"select_summit":"Select a Summit...","add":"Add","clear":"Clear","remove":"Remove","drop_files":"Drop images or click to select files to upload.","search":"Search","save":"Save","done":"Done!","drag_and_drop":"Drag and Drop to sort items.","other":"Other","type_something":"Type something and press tab or enter.","are_you_sure":"Are you sure?","yes_delete":"Yes, delete.","remove_warning":"Are you sure you want to delete this?"}}');
|
|
315
|
+
|
|
316
|
+
/***/ }),
|
|
317
|
+
|
|
318
|
+
/***/ "./src/i18n/es.json":
|
|
319
|
+
/*!**************************!*\
|
|
320
|
+
!*** ./src/i18n/es.json ***!
|
|
321
|
+
\**************************/
|
|
322
|
+
/***/ ((module) => {
|
|
323
|
+
|
|
324
|
+
module.exports = JSON.parse('{"errors":{"user_not_authz":"Hold on. Your user is not authorized!.","session_expired":"Hold on. Your session expired!.","server_error":"There was a problem with our server, please contact admin."},"general":{"select_summit":"Select a Summit...","add":"Add","clear":"Clear","remove":"Remove","drop_files":"Drop images or click to select files to upload.","search":"Search","save":"Save","done":"Done!","drag_and_drop":"Drag and Drop to sort items.","other":"Other","type_something":"Type something and press tab or enter.","are_you_sure":"Are you sure?","yes_delete":"Yes, delete.","remove_warning":"Are you sure you want to delete this?"}}');
|
|
325
|
+
|
|
326
|
+
/***/ }),
|
|
327
|
+
|
|
328
|
+
/***/ "./src/i18n/zh.json":
|
|
329
|
+
/*!**************************!*\
|
|
330
|
+
!*** ./src/i18n/zh.json ***!
|
|
331
|
+
\**************************/
|
|
332
|
+
/***/ ((module) => {
|
|
333
|
+
|
|
334
|
+
module.exports = JSON.parse('{"errors":{"user_not_authz":"坚持,稍等。您的用户未经授权!","session_expired":"坚持,稍等。你的会话已经过期了!","server_error":"我们的服务器出现问题,请联系管理员。"},"general":{"select_summit":"选择峰会...","add":"加","clear":"明确","remove":"去掉","drop_files":"删除图像或单击以选择要上载的文件。","search":"搜索","save":"保存","done":"完成!","drag_and_drop":"拖放以对项目进行排序。","other":"其他","type_something":"输入内容并按Tab键或输入。","are_you_sure":"你确定吗?","yes_delete":"是的,删除。","remove_warning":"你确定要删除这个吗?"}}');
|
|
335
|
+
|
|
336
|
+
/***/ })
|
|
337
|
+
|
|
338
|
+
/******/ });
|
|
339
|
+
/************************************************************************/
|
|
340
|
+
/******/ // The module cache
|
|
341
|
+
/******/ var __webpack_module_cache__ = {};
|
|
342
|
+
/******/
|
|
343
|
+
/******/ // The require function
|
|
344
|
+
/******/ function __webpack_require__(moduleId) {
|
|
345
|
+
/******/ // Check if module is in cache
|
|
346
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
347
|
+
/******/ if (cachedModule !== undefined) {
|
|
348
|
+
/******/ return cachedModule.exports;
|
|
349
|
+
/******/ }
|
|
350
|
+
/******/ // Create a new module (and put it into the cache)
|
|
351
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
352
|
+
/******/ // no module.id needed
|
|
353
|
+
/******/ // no module.loaded needed
|
|
354
|
+
/******/ exports: {}
|
|
355
|
+
/******/ };
|
|
356
|
+
/******/
|
|
357
|
+
/******/ // Execute the module function
|
|
358
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
359
|
+
/******/
|
|
360
|
+
/******/ // Return the exports of the module
|
|
361
|
+
/******/ return module.exports;
|
|
362
|
+
/******/ }
|
|
363
|
+
/******/
|
|
364
|
+
/************************************************************************/
|
|
365
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
366
|
+
/******/ (() => {
|
|
367
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
368
|
+
/******/ __webpack_require__.n = (module) => {
|
|
369
|
+
/******/ var getter = module && module.__esModule ?
|
|
370
|
+
/******/ () => (module['default']) :
|
|
371
|
+
/******/ () => (module);
|
|
372
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
373
|
+
/******/ return getter;
|
|
374
|
+
/******/ };
|
|
375
|
+
/******/ })();
|
|
376
|
+
/******/
|
|
377
|
+
/******/ /* webpack/runtime/define property getters */
|
|
378
|
+
/******/ (() => {
|
|
379
|
+
/******/ // define getter functions for harmony exports
|
|
380
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
381
|
+
/******/ for(var key in definition) {
|
|
382
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
383
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
384
|
+
/******/ }
|
|
385
|
+
/******/ }
|
|
386
|
+
/******/ };
|
|
387
|
+
/******/ })();
|
|
388
|
+
/******/
|
|
389
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
390
|
+
/******/ (() => {
|
|
391
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
392
|
+
/******/ })();
|
|
393
|
+
/******/
|
|
394
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
395
|
+
/******/ (() => {
|
|
396
|
+
/******/ // define __esModule on exports
|
|
397
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
398
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
399
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
400
|
+
/******/ }
|
|
401
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
402
|
+
/******/ };
|
|
403
|
+
/******/ })();
|
|
404
|
+
/******/
|
|
405
|
+
/************************************************************************/
|
|
406
|
+
var __webpack_exports__ = {};
|
|
407
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
408
|
+
(() => {
|
|
409
|
+
/*!**************************!*\
|
|
410
|
+
!*** ./src/i18n/i18n.js ***!
|
|
411
|
+
\**************************/
|
|
412
|
+
__webpack_require__.r(__webpack_exports__);
|
|
413
|
+
/* harmony import */ var _utils_methods__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/methods */ "./src/utils/methods.js");
|
|
414
|
+
/* harmony import */ var i18n_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! i18n-react */ "i18n-react");
|
|
415
|
+
/* harmony import */ var i18n_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(i18n_react__WEBPACK_IMPORTED_MODULE_1__);
|
|
416
|
+
/* harmony import */ var _en_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./en.json */ "./src/i18n/en.json");
|
|
417
|
+
/* harmony import */ var _zh_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./zh.json */ "./src/i18n/zh.json");
|
|
418
|
+
/* harmony import */ var _es_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./es.json */ "./src/i18n/es.json");
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
const resources = {
|
|
425
|
+
'en': _en_json__WEBPACK_IMPORTED_MODULE_2__,
|
|
426
|
+
'zh': _zh_json__WEBPACK_IMPORTED_MODULE_3__,
|
|
427
|
+
'es': _es_json__WEBPACK_IMPORTED_MODULE_4__
|
|
428
|
+
};
|
|
429
|
+
let language = (0,_utils_methods__WEBPACK_IMPORTED_MODULE_0__.getCurrentUserLanguage)(); // language would be something like es-ES or es_ES
|
|
430
|
+
// However we store our files with format es.json or en.json
|
|
431
|
+
// therefore retrieve only the first 2 digits
|
|
432
|
+
|
|
433
|
+
if (language.length > 2) {
|
|
434
|
+
language = language.split("-")[0];
|
|
435
|
+
language = language.split("_")[0];
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
try {
|
|
439
|
+
i18n_react__WEBPACK_IMPORTED_MODULE_1___default().setTexts(resources[language]);
|
|
440
|
+
} catch (e) {
|
|
441
|
+
i18n_react__WEBPACK_IMPORTED_MODULE_1___default().setTexts(resources['en']);
|
|
442
|
+
}
|
|
443
|
+
})();
|
|
444
|
+
|
|
445
|
+
/******/ return __webpack_exports__;
|
|
446
|
+
/******/ })()
|
|
447
|
+
;
|
|
448
|
+
});
|
|
449
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bEI7QUFNQSxJQUFJekMsUUFBUSxHQUFHRCxzRUFBc0IsRUFBckMsRUFFQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUMsUUFBUSxDQUFDUSxNQUFULEdBQWtCLENBQXRCLEVBQXlCO0VBQ3JCUixRQUFRLEdBQUdBLFFBQVEsQ0FBQzJDLEtBQVQsQ0FBZSxHQUFmLEVBQW9CLENBQXBCLENBQVg7RUFDQTNDLFFBQVEsR0FBR0EsUUFBUSxDQUFDMkMsS0FBVCxDQUFlLEdBQWYsRUFBb0IsQ0FBcEIsQ0FBWDtBQUNIOztBQUVELElBQUk7RUFDQUwsMERBQUEsQ0FBV0ksU0FBUyxDQUFDMUMsUUFBRCxDQUFwQjtBQUNILENBRkQsQ0FFRSxPQUFPNkMsQ0FBUCxFQUFVO0VBQ1JQLDBEQUFBLENBQVdJLFNBQVMsQ0FBQyxJQUFELENBQXBCO0FBQ0gsQyIsInNvdXJjZXMiOlsid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uLy4vc3JjL3V0aWxzL21ldGhvZHMuanMiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL2V4dGVybmFsIGNvbW1vbmpzIFwiaTE4bi1yZWFjdFwiIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi9leHRlcm5hbCBjb21tb25qcyBcIm1vbWVudC10aW1lem9uZVwiIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi9leHRlcm5hbCBjb21tb25qcyBcInVyaWpzXCIiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi8uL3NyYy9pMThuL2kxOG4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb25cIiwgW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wib3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvblwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiLCIvKipcbiAqIENvcHlyaWdodCAyMDE4IE9wZW5TdGFjayBGb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKiovXG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCBVUkkgZnJvbSBcInVyaWpzXCI7XG5cbmV4cG9ydCBjb25zdCBmaW5kRWxlbWVudFBvcyA9IChvYmopID0+IHtcbiAgICB2YXIgY3VydG9wID0gLTcwO1xuICAgIGlmIChvYmoub2Zmc2V0UGFyZW50KSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGN1cnRvcCArPSBvYmoub2Zmc2V0VG9wO1xuICAgICAgICB9IHdoaWxlIChvYmogPSBvYmoub2Zmc2V0UGFyZW50KTtcbiAgICAgICAgcmV0dXJuIFtjdXJ0b3BdO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBlcG9jaFRvTW9tZW50ID0gKGF0aW1lKSA9PiB7XG4gICAgaWYoIWF0aW1lKSByZXR1cm4gYXRpbWU7XG4gICAgYXRpbWUgPSBhdGltZSAqIDEwMDA7XG4gICAgcmV0dXJuIG1vbWVudChhdGltZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZXBvY2hUb01vbWVudFRpbWVab25lID0gKGF0aW1lLCB0aW1lX3pvbmUpID0+IHtcbiAgICBpZighYXRpbWUpIHJldHVybiBhdGltZTtcbiAgICBhdGltZSA9IGF0aW1lICogMTAwMDtcbiAgICByZXR1cm4gbW9tZW50KGF0aW1lKS50eih0aW1lX3pvbmUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdEVwb2NoID0gKGF0aW1lLCBmb3JtYXQgPSAnTS9EL1lZWVkgaDptbSBhJykgPT4ge1xuICAgIGlmKCFhdGltZSkgcmV0dXJuIGF0aW1lO1xuICAgIHJldHVybiBlcG9jaFRvTW9tZW50KGF0aW1lKS5mb3JtYXQoZm9ybWF0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBvYmplY3RUb1F1ZXJ5U3RyaW5nID0gKG9iaikgPT4ge1xuICAgIHZhciBzdHIgPSBcIlwiO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKHN0ciAhPSBcIlwiKSB7XG4gICAgICAgICAgICBzdHIgKz0gXCImXCI7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IGtleSArIFwiPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ialtrZXldKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJhY2tVUkwgPSAoKSA9PiB7XG4gICAgbGV0IHVybCAgICAgID0gVVJJKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICBsZXQgcXVlcnkgICAgPSB1cmwuc2VhcmNoKHRydWUpO1xuICAgIGxldCBmcmFnbWVudCA9IHVybC5mcmFnbWVudCgpO1xuICAgIGxldCBiYWNrVXJsICA9IHF1ZXJ5Lmhhc093blByb3BlcnR5KCdCYWNrVXJsJykgPyBxdWVyeVsnQmFja1VybCddIDogbnVsbDtcbiAgICBpZihmcmFnbWVudCAhPSBudWxsICYmIGZyYWdtZW50ICE9ICcnKXtcbiAgICAgICAgYmFja1VybCArPSBgIyR7ZnJhZ21lbnR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGJhY2tVcmw7XG59O1xuXG5leHBvcnQgY29uc3QgdG9TbHVnID0gKHRleHQpID0+e1xuICAgIHRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCdfJyk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdXRoQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2F1dGgvY2FsbGJhY2tgO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50TG9jYXRpb24gPSAoKSA9PiB7XG4gICAgbGV0IGxvY2F0aW9uID0gJyc7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgIC8vIGNoZWNrIGlmIHdlIGFyZSBvbiBpZnJhbWVcbiAgICAgICAgaWYgKHdpbmRvdy50b3ApXG4gICAgICAgICAgICBsb2NhdGlvbiA9IHdpbmRvdy50b3AubG9jYXRpb247XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPcmlnaW4gPSAoKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRQYXRoTmFtZSA9ICgpID0+IHtcbiAgICBpZih0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRIcmVmID0gKCkgPT4ge1xuICAgIGlmKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWxsb3dlZFVzZXJHcm91cHMgPSAoKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5BTExPV0VEX1VTRVJfR1JPVVBTIHx8ICcnO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEFQSUJhc2VVcmwgPSAocmVsYXRpdmVVcmwpID0+IHtcbiAgICBpZih0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICAgIHJldHVybiBgJHt3aW5kb3cuQVBJX0JBU0VfVVJMfSR7cmVsYXRpdmVVcmx9YDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGxgYDtcbn07XG5cbmV4cG9ydCBjb25zdCBwdXRPbkxvY2FsU3RvcmFnZSA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGcm9tTG9jYWxTdG9yYWdlID0gKGtleSwgcmVtb3ZlSXQpID0+IHtcbiAgICBpZih0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXQgdmFsID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGlmKHJlbW92ZUl0KXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBnZXRGcm9tTG9jYWxTdG9yYWdlIHJlbW92aW5nIGtleSAke2tleX1gKTtcbiAgICAgICAgICAgIHJlbW92ZUZyb21Mb2NhbFN0b3JhZ2Uoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGcm9tTG9jYWxTdG9yYWdlID0gKGtleSkgPT4ge1xuICAgIGlmKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGlzQ2xlYXJpbmdTZXNzaW9uU3RhdGUgPSAoKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5jbGVhcmluZ19zZXNzaW9uX3N0YXRlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0U2Vzc2lvbkNsZWFyaW5nU3RhdGUgPSAodmFsKSA9PiB7XG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgd2luZG93LmNsZWFyaW5nX3Nlc3Npb25fc3RhdGUgPSB2YWw7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRVc2VyTGFuZ3VhZ2UgPSAoKSA9PiB7XG4gICAgbGV0IGxhbmd1YWdlID0gJ2VuJztcbiAgICBpZih0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsYW5ndWFnZSA9IChuYXZpZ2F0b3IubGFuZ3VhZ2VzICYmIG5hdmlnYXRvci5sYW5ndWFnZXNbMF0pIHx8IG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3IudXNlckxhbmd1YWdlO1xuICAgIH1cbiAgICByZXR1cm4gbGFuZ3VhZ2U7XG59O1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FcnJvciA9IChlcnJvcnMpID0+IHtcbiAgICBpZihPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgZmlyc3RFcnJvciA9IE9iamVjdC5rZXlzKGVycm9ycylbMF07XG4gICAgICAgIGNvbnN0IGZpcnN0Tm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZpcnN0RXJyb3IpO1xuICAgICAgICBpZiAoZmlyc3ROb2RlKSB3aW5kb3cuc2Nyb2xsVG8oMCwgZmluZEVsZW1lbnRQb3MoZmlyc3ROb2RlKSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGhhc0Vycm9ycyA9IChmaWVsZCwgZXJyb3JzKSA9PiB7XG4gICAgaWYoZmllbGQgaW4gZXJyb3JzKSB7XG4gICAgICAgIHJldHVybiBlcnJvcnNbZmllbGRdO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hhbGxvd0VxdWFsID0gKG9iamVjdDEsIG9iamVjdDIpID0+IHtcbiAgICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKG9iamVjdDEpO1xuICAgIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXMob2JqZWN0Mik7XG5cbiAgICBpZiAoa2V5czEubGVuZ3RoICE9PSBrZXlzMi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGtleSBvZiBrZXlzMSkge1xuICAgICAgICBpZiAob2JqZWN0MVtrZXldICE9PSBvYmplY3QyW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGFycmF5c0VxdWFsID0gKGExLCBhMikgPT5cbiAgICBhMS5sZW5ndGggPT09IGEyLmxlbmd0aCAmJiBhMS5ldmVyeSgobywgaWR4KSA9PiBzaGFsbG93RXF1YWwobywgYTJbaWR4XSkpO1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eSA9IChvYmopID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBiYXNlNjRVUkxFbmNvZGUgPSAoc3RyKSA9PiB7XG4gICAgcmV0dXJuIHN0clxuICAgICAgICAudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxuICAgICAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAgICAgLnJlcGxhY2UoLz0vZywgJycpXG59XG5cbmV4cG9ydCBjb25zdCByZXRyeVByb21pc2UgPSBhc3luYyAoXG4gICAgY2IsXG4gICAgbWF4TnVtYmVyT2ZSZXRyaWVzID0gM1xuKSA9PiB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhOdW1iZXJPZlJldHJpZXM7IGkrKykge1xuICAgICAgICBpZiAoYXdhaXQgY2IoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRUaW1lU2VydmljZVVybCA9ICgpID0+IHtcbiAgICBpZih0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gd2luZG93LlRJTUVJTlRFUlZBTFNJTkNFMTk3MF9BUElfVVJMIHx8IHByb2Nlc3MuZW52LlRJTUVJTlRFUlZBTFNJTkNFMTk3MF9BUElfVVJMO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJpMThuLXJlYWN0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1vbWVudC10aW1lem9uZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ1cmlqc1wiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHtnZXRDdXJyZW50VXNlckxhbmd1YWdlfSBmcm9tIFwiLi4vdXRpbHMvbWV0aG9kc1wiO1xuaW1wb3J0IFQgZnJvbSBcImkxOG4tcmVhY3RcIjtcbmltcG9ydCBlbiBmcm9tICcuL2VuLmpzb24nO1xuaW1wb3J0IHpoIGZyb20gJy4vemguanNvbic7XG5pbXBvcnQgZXMgZnJvbSAnLi9lcy5qc29uJztcblxuY29uc3QgcmVzb3VyY2VzID0ge1xuICAgICdlbicgOiBlbixcbiAgICAnemgnIDogemgsXG4gICAgJ2VzJyA6IGVzLFxufVxuXG5sZXQgbGFuZ3VhZ2UgPSBnZXRDdXJyZW50VXNlckxhbmd1YWdlKCk7XG5cbi8vIGxhbmd1YWdlIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGVzLUVTIG9yIGVzX0VTXG4vLyBIb3dldmVyIHdlIHN0b3JlIG91ciBmaWxlcyB3aXRoIGZvcm1hdCBlcy5qc29uIG9yIGVuLmpzb25cbi8vIHRoZXJlZm9yZSByZXRyaWV2ZSBvbmx5IHRoZSBmaXJzdCAyIGRpZ2l0c1xuXG5pZiAobGFuZ3VhZ2UubGVuZ3RoID4gMikge1xuICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3BsaXQoXCItXCIpWzBdO1xuICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3BsaXQoXCJfXCIpWzBdO1xufVxuXG50cnkge1xuICAgIFQuc2V0VGV4dHMocmVzb3VyY2VzW2xhbmd1YWdlXSk7XG59IGNhdGNoIChlKSB7XG4gICAgVC5zZXRUZXh0cyhyZXNvdXJjZXNbJ2VuJ10pO1xufSJdLCJuYW1lcyI6WyJtb21lbnQiLCJVUkkiLCJmaW5kRWxlbWVudFBvcyIsIm9iaiIsImN1cnRvcCIsIm9mZnNldFBhcmVudCIsIm9mZnNldFRvcCIsImVwb2NoVG9Nb21lbnQiLCJhdGltZSIsImVwb2NoVG9Nb21lbnRUaW1lWm9uZSIsInRpbWVfem9uZSIsInR6IiwiZm9ybWF0RXBvY2giLCJmb3JtYXQiLCJvYmplY3RUb1F1ZXJ5U3RyaW5nIiwic3RyIiwia2V5IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZ2V0QmFja1VSTCIsInVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInF1ZXJ5Iiwic2VhcmNoIiwiZnJhZ21lbnQiLCJiYWNrVXJsIiwiaGFzT3duUHJvcGVydHkiLCJ0b1NsdWciLCJ0ZXh0IiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiZ2V0QXV0aENhbGxiYWNrIiwib3JpZ2luIiwiZ2V0Q3VycmVudExvY2F0aW9uIiwidG9wIiwiZ2V0T3JpZ2luIiwiZ2V0Q3VycmVudFBhdGhOYW1lIiwicGF0aG5hbWUiLCJnZXRDdXJyZW50SHJlZiIsImdldEFsbG93ZWRVc2VyR3JvdXBzIiwiQUxMT1dFRF9VU0VSX0dST1VQUyIsImJ1aWxkQVBJQmFzZVVybCIsInJlbGF0aXZlVXJsIiwiQVBJX0JBU0VfVVJMIiwicHV0T25Mb2NhbFN0b3JhZ2UiLCJ2YWx1ZSIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJnZXRGcm9tTG9jYWxTdG9yYWdlIiwicmVtb3ZlSXQiLCJ2YWwiLCJnZXRJdGVtIiwiY29uc29sZSIsImxvZyIsInJlbW92ZUZyb21Mb2NhbFN0b3JhZ2UiLCJyZW1vdmVJdGVtIiwiaXNDbGVhcmluZ1Nlc3Npb25TdGF0ZSIsImNsZWFyaW5nX3Nlc3Npb25fc3RhdGUiLCJzZXRTZXNzaW9uQ2xlYXJpbmdTdGF0ZSIsImdldEN1cnJlbnRVc2VyTGFuZ3VhZ2UiLCJsYW5ndWFnZSIsIm5hdmlnYXRvciIsImxhbmd1YWdlcyIsInVzZXJMYW5ndWFnZSIsInNjcm9sbFRvRXJyb3IiLCJlcnJvcnMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZmlyc3RFcnJvciIsImZpcnN0Tm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxUbyIsImhhc0Vycm9ycyIsImZpZWxkIiwic2hhbGxvd0VxdWFsIiwib2JqZWN0MSIsIm9iamVjdDIiLCJrZXlzMSIsImtleXMyIiwiYXJyYXlzRXF1YWwiLCJhMSIsImEyIiwiZXZlcnkiLCJvIiwiaWR4IiwiaXNFbXB0eSIsImJhc2U2NFVSTEVuY29kZSIsInRvU3RyaW5nIiwicmV0cnlQcm9taXNlIiwiY2IiLCJtYXhOdW1iZXJPZlJldHJpZXMiLCJpIiwiZ2V0VGltZVNlcnZpY2VVcmwiLCJUSU1FSU5URVJWQUxTSU5DRTE5NzBfQVBJX1VSTCIsInByb2Nlc3MiLCJlbnYiLCJUIiwiZW4iLCJ6aCIsImVzIiwicmVzb3VyY2VzIiwic3BsaXQiLCJzZXRUZXh0cyIsImUiXSwic291cmNlUm9vdCI6IiJ9
|