openstack-uicore-foundation 4.0.97 → 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 -1
- package/lib/components/attendance-tracker.js +1992 -1
- package/lib/components/bulk-actions-selector.js +194 -1
- package/lib/components/circle-button.js +223 -1
- package/lib/components/clock.js +678 -1
- package/lib/components/exclusive-wrapper.js +151 -1
- package/lib/components/extra-questions.js +1902 -1
- package/lib/components/form-validation.js +190 -1
- package/lib/components/forms/rsvp-form.js +940 -1
- package/lib/components/forms/simple-form.js +708 -1
- package/lib/components/free-text-search.js +2042 -1
- package/lib/components/google-map.js +576 -1
- package/lib/components/index.js +12840 -1
- package/lib/components/inputs/access-levels-input.js +2306 -1
- package/lib/components/inputs/action-dropdown.js +219 -1
- package/lib/components/inputs/checkbox-list.js +339 -1
- package/lib/components/inputs/company-input.js +2341 -1
- package/lib/components/inputs/country-dropdown.js +2399 -1
- package/lib/components/inputs/country-input.js +2302 -1
- package/lib/components/inputs/datetimepicker.js +314 -1
- package/lib/components/inputs/dropdown.js +259 -1
- package/lib/components/inputs/editor-input.js +270 -1
- package/lib/components/inputs/event-input.js +2280 -1
- package/lib/components/inputs/free-multi-text-input.js +252 -1
- package/lib/components/inputs/group-input.js +2275 -1
- package/lib/components/inputs/grouped-dropdown.js +244 -1
- package/lib/components/inputs/language-input.js +2307 -1
- package/lib/components/inputs/member-input.js +2302 -1
- package/lib/components/inputs/operator-input.js +328 -1
- package/lib/components/inputs/organization-input.js +2325 -1
- package/lib/components/inputs/promocode-input.js +2310 -1
- package/lib/components/inputs/radio-list.js +297 -1
- package/lib/components/inputs/registration-company-input.js +2470 -1
- package/lib/components/inputs/speaker-input.js +2336 -1
- package/lib/components/inputs/sponsor-input.js +2284 -1
- package/lib/components/inputs/stepped-select.js +197 -1
- package/lib/components/inputs/summit-days-select.js +162 -1
- package/lib/components/inputs/summit-input.js +2282 -1
- package/lib/components/inputs/summit-venues-select.js +172 -1
- package/lib/components/inputs/tag-input.js +2352 -1
- package/lib/components/inputs/text-input.js +202 -1
- package/lib/components/inputs/textarea-input.js +181 -1
- package/lib/components/inputs/ticket-types-input.js +2338 -1
- package/lib/components/inputs/upload-input-v2.js +834 -1
- package/lib/components/inputs/upload-input.js +391 -1
- package/lib/components/progressive-img.js +289 -1
- package/lib/components/raw-html.js +125 -1
- package/lib/components/schedule-builder-constants.js +81 -1
- package/lib/components/schedule-builder-view.js +1684 -1
- package/lib/components/sections/panel.js +156 -1
- package/lib/components/simple-link-list.js +790 -1
- package/lib/components/sponsored-project-input.js +2281 -1
- package/lib/components/summit-dropdown.js +214 -1
- package/lib/components/table-editable.js +895 -1
- package/lib/components/table-selectable.js +552 -1
- package/lib/components/table-sortable.js +657 -1
- package/lib/components/table.js +510 -1
- package/lib/components/video-stream.js +226 -1
- package/lib/css/components/bulk-actions-selector.css +16 -1
- package/lib/css/components/circle-button.css +24 -1
- package/lib/css/components/extra-questions.css +29 -1
- package/lib/css/components/form-validation.css +29 -1
- package/lib/css/components/free-text-search.css +29 -1
- package/lib/css/components/index.css +1354 -2
- package/lib/css/components/inputs/action-dropdown.css +46 -1
- package/lib/css/components/inputs/datetimepicker.css +208 -1
- package/lib/css/components/inputs/grouped-dropdown.css +25 -1
- package/lib/css/components/inputs/stepped-select.css +12 -1
- package/lib/css/components/inputs/upload-input-v2.css +106 -1
- package/lib/css/components/inputs/upload-input.css +43 -1
- package/lib/css/components/progressive-img.css +16 -1
- package/lib/css/components/schedule-builder-view.css +230 -1
- package/lib/css/components/simple-link-list.css +189 -1
- package/lib/css/components/summit-dropdown.css +35 -1
- package/lib/css/components/table-editable.css +145 -1
- package/lib/css/components/table-selectable.css +147 -1
- package/lib/css/components/table-sortable.css +150 -1
- package/lib/css/components/table.css +147 -1
- package/lib/i18n.js +449 -1
- package/lib/models/index.js +238 -1
- package/lib/models/summit-event.js +210 -1
- package/lib/security/abstract-auth-callback-route.js +2114 -1
- package/lib/security/actions.js +1818 -1
- package/lib/security/constants.js +71 -1
- package/lib/security/methods.js +1818 -1
- package/lib/security/reducers.js +1961 -1
- package/lib/security/session-checker.js +2179 -1
- package/lib/utils/actions.js +1818 -1
- package/lib/utils/fragment-parser.js +207 -1
- package/lib/utils/methods.js +369 -1
- package/lib/utils/query-actions.js +2154 -1
- package/lib/utils/questions-set.js +609 -1
- package/lib/utils/reducers.js +1874 -1
- package/lib/utils/use-fit-text.js +178 -1
- package/package.json +1 -1
|
@@ -1 +1,178 @@
|
|
|
1
|
-
|
|
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
|
+
/***/ "react":
|
|
16
|
+
/*!************************!*\
|
|
17
|
+
!*** external "react" ***!
|
|
18
|
+
\************************/
|
|
19
|
+
/***/ ((module) => {
|
|
20
|
+
|
|
21
|
+
module.exports = require("react");
|
|
22
|
+
|
|
23
|
+
/***/ })
|
|
24
|
+
|
|
25
|
+
/******/ });
|
|
26
|
+
/************************************************************************/
|
|
27
|
+
/******/ // The module cache
|
|
28
|
+
/******/ var __webpack_module_cache__ = {};
|
|
29
|
+
/******/
|
|
30
|
+
/******/ // The require function
|
|
31
|
+
/******/ function __webpack_require__(moduleId) {
|
|
32
|
+
/******/ // Check if module is in cache
|
|
33
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
34
|
+
/******/ if (cachedModule !== undefined) {
|
|
35
|
+
/******/ return cachedModule.exports;
|
|
36
|
+
/******/ }
|
|
37
|
+
/******/ // Create a new module (and put it into the cache)
|
|
38
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
39
|
+
/******/ // no module.id needed
|
|
40
|
+
/******/ // no module.loaded needed
|
|
41
|
+
/******/ exports: {}
|
|
42
|
+
/******/ };
|
|
43
|
+
/******/
|
|
44
|
+
/******/ // Execute the module function
|
|
45
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
46
|
+
/******/
|
|
47
|
+
/******/ // Return the exports of the module
|
|
48
|
+
/******/ return module.exports;
|
|
49
|
+
/******/ }
|
|
50
|
+
/******/
|
|
51
|
+
/************************************************************************/
|
|
52
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
53
|
+
/******/ (() => {
|
|
54
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
55
|
+
/******/ __webpack_require__.n = (module) => {
|
|
56
|
+
/******/ var getter = module && module.__esModule ?
|
|
57
|
+
/******/ () => (module['default']) :
|
|
58
|
+
/******/ () => (module);
|
|
59
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
60
|
+
/******/ return getter;
|
|
61
|
+
/******/ };
|
|
62
|
+
/******/ })();
|
|
63
|
+
/******/
|
|
64
|
+
/******/ /* webpack/runtime/define property getters */
|
|
65
|
+
/******/ (() => {
|
|
66
|
+
/******/ // define getter functions for harmony exports
|
|
67
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
68
|
+
/******/ for(var key in definition) {
|
|
69
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
70
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
71
|
+
/******/ }
|
|
72
|
+
/******/ }
|
|
73
|
+
/******/ };
|
|
74
|
+
/******/ })();
|
|
75
|
+
/******/
|
|
76
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
77
|
+
/******/ (() => {
|
|
78
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
79
|
+
/******/ })();
|
|
80
|
+
/******/
|
|
81
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
82
|
+
/******/ (() => {
|
|
83
|
+
/******/ // define __esModule on exports
|
|
84
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
85
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
86
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
87
|
+
/******/ }
|
|
88
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
89
|
+
/******/ };
|
|
90
|
+
/******/ })();
|
|
91
|
+
/******/
|
|
92
|
+
/************************************************************************/
|
|
93
|
+
var __webpack_exports__ = {};
|
|
94
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
95
|
+
(() => {
|
|
96
|
+
/*!****************************************!*\
|
|
97
|
+
!*** ./src/components/use-fit-text.js ***!
|
|
98
|
+
\****************************************/
|
|
99
|
+
__webpack_require__.r(__webpack_exports__);
|
|
100
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
101
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
102
|
+
/* harmony export */ });
|
|
103
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
104
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
const useFitText = (maxSize = 50, minSize = 130) => {
|
|
108
|
+
const MIN_FONT_SIZE = minSize;
|
|
109
|
+
const MAX_FONT_SIZE = maxSize;
|
|
110
|
+
const RESOLUTION = 5;
|
|
111
|
+
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
112
|
+
const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
|
|
113
|
+
fontSize: MAX_FONT_SIZE,
|
|
114
|
+
fontSizePrev: MIN_FONT_SIZE,
|
|
115
|
+
fontSizeMax: MAX_FONT_SIZE,
|
|
116
|
+
fontSizeMin: MIN_FONT_SIZE
|
|
117
|
+
});
|
|
118
|
+
const {
|
|
119
|
+
fontSize,
|
|
120
|
+
fontSizeMax,
|
|
121
|
+
fontSizeMin,
|
|
122
|
+
fontSizePrev
|
|
123
|
+
} = state;
|
|
124
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
125
|
+
const isDone = Math.abs(fontSize - fontSizePrev) <= RESOLUTION;
|
|
126
|
+
const isOverflow = !!ref.current && (ref.current.scrollHeight > ref.current.offsetHeight || ref.current.scrollWidth > ref.current.offsetWidth);
|
|
127
|
+
const isAsc = fontSize > fontSizePrev; // return if the font size has been adjusted "enough" (change within RESOLUTION)
|
|
128
|
+
// reduce font size by one increment if it's overflowing
|
|
129
|
+
|
|
130
|
+
if (isDone) {
|
|
131
|
+
if (isOverflow) {
|
|
132
|
+
const fontSizeNew = fontSizePrev < fontSize ? fontSizePrev : fontSize - (fontSizePrev - fontSize);
|
|
133
|
+
setState({
|
|
134
|
+
fontSize: fontSizeNew,
|
|
135
|
+
fontSizeMax,
|
|
136
|
+
fontSizeMin,
|
|
137
|
+
fontSizePrev
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return;
|
|
142
|
+
} // binary search to adjust font size
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
let delta;
|
|
146
|
+
let newMax = fontSizeMax;
|
|
147
|
+
let newMin = fontSizeMin;
|
|
148
|
+
|
|
149
|
+
if (isOverflow) {
|
|
150
|
+
delta = isAsc ? fontSizePrev - fontSize : fontSizeMin - fontSize;
|
|
151
|
+
newMax = Math.min(fontSizeMax, fontSize);
|
|
152
|
+
} else {
|
|
153
|
+
delta = isAsc ? fontSizeMax - fontSize : fontSizePrev - fontSize;
|
|
154
|
+
newMin = Math.max(fontSizeMin, fontSize);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
setState({
|
|
158
|
+
fontSize: fontSize + delta / 2,
|
|
159
|
+
fontSizeMax: newMax,
|
|
160
|
+
fontSizeMin: newMin,
|
|
161
|
+
fontSizePrev: fontSize
|
|
162
|
+
});
|
|
163
|
+
}, [fontSize, fontSizeMax, fontSizeMin, fontSizePrev, ref]);
|
|
164
|
+
return {
|
|
165
|
+
fontSize: `${fontSize}%`,
|
|
166
|
+
lineHeight: `${fontSize - 10}%`,
|
|
167
|
+
ref
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useFitText);
|
|
172
|
+
})();
|
|
173
|
+
|
|
174
|
+
/******/ return __webpack_exports__;
|
|
175
|
+
/******/ })()
|
|
176
|
+
;
|
|
177
|
+
});
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YyxHQUFMLENBQVNoQixXQUFULEVBQXNCSCxRQUF0QixDQUFUO0lBQ0g7O0lBQ0RELFFBQVEsQ0FBQztNQUNMQyxRQUFRLEVBQUVBLFFBQVEsR0FBR2UsS0FBSyxHQUFHLENBRHhCO01BRUxiLFdBQVcsRUFBRWMsTUFGUjtNQUdMYixXQUFXLEVBQUVjLE1BSFI7TUFJTGhCLFlBQVksRUFBRUQ7SUFKVCxDQUFELENBQVI7RUFNSCxDQTNDUSxFQTJDTixDQUFDQSxRQUFELEVBQVdFLFdBQVgsRUFBd0JDLFdBQXhCLEVBQXFDRixZQUFyQyxFQUFtREosR0FBbkQsQ0EzQ00sQ0FBVDtFQTZDQSxPQUFPO0lBQUVHLFFBQVEsRUFBRyxHQUFFQSxRQUFTLEdBQXhCO0lBQTRCb0IsVUFBVSxFQUFHLEdBQUVwQixRQUFRLEdBQUcsRUFBRyxHQUF6RDtJQUE2REg7RUFBN0QsQ0FBUDtBQUNILENBN0REOztBQStEQSxpRUFBZU4sVUFBZixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdFwiIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vLi9zcmMvY29tcG9uZW50cy91c2UtZml0LXRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb25cIiwgW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wib3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvblwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCB1c2VGaXRUZXh0ID0gKG1heFNpemUgPSA1MCwgbWluU2l6ZSA9IDEzMCkgPT4ge1xuICAgIGNvbnN0IE1JTl9GT05UX1NJWkUgPSBtaW5TaXplO1xuICAgIGNvbnN0IE1BWF9GT05UX1NJWkUgPSBtYXhTaXplO1xuICAgIGNvbnN0IFJFU09MVVRJT04gPSA1O1xuXG4gICAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xuXG4gICAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSh7XG4gICAgICAgIGZvbnRTaXplOiBNQVhfRk9OVF9TSVpFLFxuICAgICAgICBmb250U2l6ZVByZXY6IE1JTl9GT05UX1NJWkUsXG4gICAgICAgIGZvbnRTaXplTWF4OiBNQVhfRk9OVF9TSVpFLFxuICAgICAgICBmb250U2l6ZU1pbjogTUlOX0ZPTlRfU0laRSxcbiAgICB9KTtcbiAgICBjb25zdCB7IGZvbnRTaXplLCBmb250U2l6ZU1heCwgZm9udFNpemVNaW4sIGZvbnRTaXplUHJldiB9ID0gc3RhdGU7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc0RvbmUgPSBNYXRoLmFicyhmb250U2l6ZSAtIGZvbnRTaXplUHJldikgPD0gUkVTT0xVVElPTjtcbiAgICAgICAgY29uc3QgaXNPdmVyZmxvdyA9XG4gICAgICAgICAgICAhIXJlZi5jdXJyZW50ICYmXG4gICAgICAgICAgICAocmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0ID4gcmVmLmN1cnJlbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQuc2Nyb2xsV2lkdGggPiByZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XG4gICAgICAgIGNvbnN0IGlzQXNjID0gZm9udFNpemUgPiBmb250U2l6ZVByZXY7XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHRoZSBmb250IHNpemUgaGFzIGJlZW4gYWRqdXN0ZWQgXCJlbm91Z2hcIiAoY2hhbmdlIHdpdGhpbiBSRVNPTFVUSU9OKVxuICAgICAgICAvLyByZWR1Y2UgZm9udCBzaXplIGJ5IG9uZSBpbmNyZW1lbnQgaWYgaXQncyBvdmVyZmxvd2luZ1xuICAgICAgICBpZiAoaXNEb25lKSB7XG4gICAgICAgICAgICBpZiAoaXNPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbnRTaXplTmV3ID1cbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVQcmV2IDwgZm9udFNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZm9udFNpemVQcmV2XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGZvbnRTaXplIC0gKGZvbnRTaXplUHJldiAtIGZvbnRTaXplKTtcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBmb250U2l6ZU5ldyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVNYXgsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplTWluLFxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZVByZXYsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiaW5hcnkgc2VhcmNoIHRvIGFkanVzdCBmb250IHNpemVcbiAgICAgICAgbGV0IGRlbHRhO1xuICAgICAgICBsZXQgbmV3TWF4ID0gZm9udFNpemVNYXg7XG4gICAgICAgIGxldCBuZXdNaW4gPSBmb250U2l6ZU1pbjtcbiAgICAgICAgaWYgKGlzT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIGRlbHRhID0gaXNBc2MgPyBmb250U2l6ZVByZXYgLSBmb250U2l6ZSA6IGZvbnRTaXplTWluIC0gZm9udFNpemU7XG4gICAgICAgICAgICBuZXdNYXggPSBNYXRoLm1pbihmb250U2l6ZU1heCwgZm9udFNpemUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsdGEgPSBpc0FzYyA/IGZvbnRTaXplTWF4IC0gZm9udFNpemUgOiBmb250U2l6ZVByZXYgLSBmb250U2l6ZTtcbiAgICAgICAgICAgIG5ld01pbiA9IE1hdGgubWF4KGZvbnRTaXplTWluLCBmb250U2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgZm9udFNpemU6IGZvbnRTaXplICsgZGVsdGEgLyAyLFxuICAgICAgICAgICAgZm9udFNpemVNYXg6IG5ld01heCxcbiAgICAgICAgICAgIGZvbnRTaXplTWluOiBuZXdNaW4sXG4gICAgICAgICAgICBmb250U2l6ZVByZXY6IGZvbnRTaXplLFxuICAgICAgICB9KTtcbiAgICB9LCBbZm9udFNpemUsIGZvbnRTaXplTWF4LCBmb250U2l6ZU1pbiwgZm9udFNpemVQcmV2LCByZWZdKTtcblxuICAgIHJldHVybiB7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCwgbGluZUhlaWdodDogYCR7Zm9udFNpemUgLSAxMH0lYCwgcmVmIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1c2VGaXRUZXh0O1xuIl0sIm5hbWVzIjpbInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlRml0VGV4dCIsIm1heFNpemUiLCJtaW5TaXplIiwiTUlOX0ZPTlRfU0laRSIsIk1BWF9GT05UX1NJWkUiLCJSRVNPTFVUSU9OIiwicmVmIiwic3RhdGUiLCJzZXRTdGF0ZSIsImZvbnRTaXplIiwiZm9udFNpemVQcmV2IiwiZm9udFNpemVNYXgiLCJmb250U2l6ZU1pbiIsImlzRG9uZSIsIk1hdGgiLCJhYnMiLCJpc092ZXJmbG93IiwiY3VycmVudCIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsInNjcm9sbFdpZHRoIiwib2Zmc2V0V2lkdGgiLCJpc0FzYyIsImZvbnRTaXplTmV3IiwiZGVsdGEiLCJuZXdNYXgiLCJuZXdNaW4iLCJtaW4iLCJtYXgiLCJsaW5lSGVpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==
|