@linzjs/lui 17.10.1 → 17.11.0
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/CHANGELOG.md +16 -0
- package/dist/components/LuiAccordicard/LuiAccordicard.d.ts +1 -0
- package/dist/components/LuiAccordicardStatic/LuiAccordicardStatic.d.ts +1 -0
- package/dist/components/LuiFormElements/LuiCheckboxInput/LuiCheckboxInput.d.ts +1 -0
- package/dist/components/LuiForms/LuiComboSelect/LuiComboSelect.d.ts +2 -2
- package/dist/components/LuiListBox/LuiListBox.d.ts +33 -0
- package/dist/components/LuiListBox/LuiListBoxItem.d.ts +10 -0
- package/dist/components/LuiListBox/Renderers/CheckboxItemRenderer.d.ts +4 -0
- package/dist/components/LuiListBox/Renderers/DefaultItemRenderer.d.ts +3 -0
- package/dist/components/LuiListBox/Renderers/RadioItemRenderer.d.ts +4 -0
- package/dist/components/LuiListBox/helpers.d.ts +3 -0
- package/dist/components/LuiTabs/LuiTab/LuiTab.d.ts +1 -0
- package/dist/components/lol/MockBackendUtils.d.ts +85 -85
- package/dist/components/lol/handlers.d.ts +10 -10
- package/dist/index.js +858 -1010
- package/dist/index.js.map +1 -1
- package/dist/lui.css +70 -4
- package/dist/lui.css.map +1 -1
- package/dist/lui.esm.js +843 -995
- package/dist/lui.esm.js.map +1 -1
- package/dist/scss/Components/LuiAccordicard/LuiAccordicard.scss +40 -2
- package/dist/scss/Components/LuiAccordicardStatic/LuiAccordicardStatic.scss +40 -2
- package/package.json +9 -4
package/dist/index.js
CHANGED
|
@@ -13,21 +13,21 @@ var reactQuery = require('react-query');
|
|
|
13
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
14
|
|
|
15
15
|
function _interopNamespace(e) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
17
|
+
var n = Object.create(null);
|
|
18
|
+
if (e) {
|
|
19
|
+
Object.keys(e).forEach(function (k) {
|
|
20
|
+
if (k !== 'default') {
|
|
21
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
22
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () { return e[k]; }
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
n["default"] = e;
|
|
30
|
+
return Object.freeze(n);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
@@ -36,177 +36,10 @@ var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto$1);
|
|
|
36
36
|
var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
|
|
37
37
|
var lottie__default = /*#__PURE__*/_interopDefaultLegacy(lottie);
|
|
38
38
|
|
|
39
|
-
function
|
|
40
|
-
var k, y, str='';
|
|
41
|
-
|
|
42
|
-
if (typeof mix === 'string' || typeof mix === 'number') {
|
|
43
|
-
str += mix;
|
|
44
|
-
} else if (typeof mix === 'object') {
|
|
45
|
-
if (Array.isArray(mix)) {
|
|
46
|
-
for (k=0; k < mix.length; k++) {
|
|
47
|
-
if (mix[k]) {
|
|
48
|
-
if (y = toVal(mix[k])) {
|
|
49
|
-
str && (str += ' ');
|
|
50
|
-
str += y;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
} else {
|
|
55
|
-
for (k in mix) {
|
|
56
|
-
if (mix[k]) {
|
|
57
|
-
str && (str += ' ');
|
|
58
|
-
str += k;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return str;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function clsx () {
|
|
68
|
-
var i=0, tmp, x, str='';
|
|
69
|
-
while (i < arguments.length) {
|
|
70
|
-
if (tmp = arguments[i++]) {
|
|
71
|
-
if (x = toVal(tmp)) {
|
|
72
|
-
str && (str += ' ');
|
|
73
|
-
str += x;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return str;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/*! *****************************************************************************
|
|
81
|
-
Copyright (c) Microsoft Corporation.
|
|
82
|
-
|
|
83
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
84
|
-
purpose with or without fee is hereby granted.
|
|
85
|
-
|
|
86
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
87
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
88
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
89
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
90
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
91
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
92
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
93
|
-
***************************************************************************** */
|
|
94
|
-
/* global Reflect, Promise */
|
|
95
|
-
|
|
96
|
-
var extendStatics = function(d, b) {
|
|
97
|
-
extendStatics = Object.setPrototypeOf ||
|
|
98
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
99
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
100
|
-
return extendStatics(d, b);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
function __extends(d, b) {
|
|
104
|
-
if (typeof b !== "function" && b !== null)
|
|
105
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
106
|
-
extendStatics(d, b);
|
|
107
|
-
function __() { this.constructor = d; }
|
|
108
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var __assign = function() {
|
|
112
|
-
__assign = Object.assign || function __assign(t) {
|
|
113
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
114
|
-
s = arguments[i];
|
|
115
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
116
|
-
}
|
|
117
|
-
return t;
|
|
118
|
-
};
|
|
119
|
-
return __assign.apply(this, arguments);
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
function __rest(s, e) {
|
|
123
|
-
var t = {};
|
|
124
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
125
|
-
t[p] = s[p];
|
|
126
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
127
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
128
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
129
|
-
t[p[i]] = s[p[i]];
|
|
130
|
-
}
|
|
131
|
-
return t;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
135
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
136
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
137
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
138
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
139
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
140
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
function __generator(thisArg, body) {
|
|
145
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
146
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
147
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
148
|
-
function step(op) {
|
|
149
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
150
|
-
while (_) try {
|
|
151
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
152
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
153
|
-
switch (op[0]) {
|
|
154
|
-
case 0: case 1: t = op; break;
|
|
155
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
156
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
157
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
158
|
-
default:
|
|
159
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
160
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
161
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
162
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
163
|
-
if (t[2]) _.ops.pop();
|
|
164
|
-
_.trys.pop(); continue;
|
|
165
|
-
}
|
|
166
|
-
op = body.call(thisArg, _);
|
|
167
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
168
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function __read(o, n) {
|
|
173
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
174
|
-
if (!m) return o;
|
|
175
|
-
var i = m.call(o), r, ar = [], e;
|
|
176
|
-
try {
|
|
177
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
178
|
-
}
|
|
179
|
-
catch (error) { e = { error: error }; }
|
|
180
|
-
finally {
|
|
181
|
-
try {
|
|
182
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
183
|
-
}
|
|
184
|
-
finally { if (e) throw e.error; }
|
|
185
|
-
}
|
|
186
|
-
return ar;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/** @deprecated */
|
|
190
|
-
function __spreadArrays() {
|
|
191
|
-
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
192
|
-
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
193
|
-
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
194
|
-
r[k] = a[j];
|
|
195
|
-
return r;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
function __spreadArray(to, from, pack) {
|
|
199
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
200
|
-
if (ar || !(i in from)) {
|
|
201
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
202
|
-
ar[i] = from[i];
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
206
|
-
}
|
|
39
|
+
function r$2(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r$2(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r$2(e))&&(n&&(n+=" "),n+=t);return n}
|
|
207
40
|
|
|
208
41
|
// START OF GENERATED FILE`;
|
|
209
|
-
|
|
42
|
+
let iconMap = {};
|
|
210
43
|
// @TODO This is a generated file, nothing is safe.
|
|
211
44
|
iconMap['ic_account_circle'] = (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24" },
|
|
212
45
|
React__default["default"].createElement("path", { d: "M12 19.219q1.594 0 3.352-.938T18 15.984q-.047-1.313-2.109-2.203T12 12.89t-3.891.867T6 15.984q.891 1.359 2.648 2.297t3.352.938zm0-14.203q-1.219 0-2.109.891T9 8.016t.891 2.109 2.109.891 2.109-.891T15 8.016t-.891-2.109T12 5.016zm0-3q4.125 0 7.055 2.93t2.93 7.055-2.93 7.055T12 21.986t-7.055-2.93-2.93-7.055 2.93-7.055T12 2.016z" })));
|
|
@@ -504,10 +337,10 @@ iconMap['ic_zoom_out'] = (React__default["default"].createElement("svg", { viewB
|
|
|
504
337
|
React__default["default"].createElement("path", { d: "M19 13H5v-2h14v2Z" })));
|
|
505
338
|
iconMap['ic_zoom_previous'] = (React__default["default"].createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
|
|
506
339
|
React__default["default"].createElement("path", { d: "M6 6h2v12H6V6Zm12 12-8.5-6L18 6v12Zm-5.03-6L16 14.14V9.86L12.97 12Z" })));
|
|
507
|
-
|
|
340
|
+
const ICONS = iconMap;
|
|
508
341
|
// END OF GENERATED FILE
|
|
509
342
|
|
|
510
|
-
|
|
343
|
+
const ICON_SIZES = {
|
|
511
344
|
xs: 'LuiIcon--xs',
|
|
512
345
|
sm: 'LuiIcon--sm',
|
|
513
346
|
md: 'LuiIcon--md',
|
|
@@ -515,7 +348,7 @@ var ICON_SIZES = {
|
|
|
515
348
|
xl: 'LuiIcon--xl',
|
|
516
349
|
ns: 'LuiIcon--noSize',
|
|
517
350
|
};
|
|
518
|
-
|
|
351
|
+
const ICON_STATUS = {
|
|
519
352
|
none: '',
|
|
520
353
|
error: 'LuiIcon--error',
|
|
521
354
|
warning: 'LuiIcon--warning',
|
|
@@ -523,14 +356,13 @@ var ICON_STATUS = {
|
|
|
523
356
|
interactive: 'LuiIcon--interactive',
|
|
524
357
|
disabled: 'LuiIcon--disabled',
|
|
525
358
|
};
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
var iconSVG = ICONS[name];
|
|
359
|
+
const LuiIcon = ({ name, className, size = 'ns', title, alt, status = 'none', spanProps, }) => {
|
|
360
|
+
const iconSVG = ICONS[name];
|
|
529
361
|
if (!iconSVG) {
|
|
530
|
-
console.warn(
|
|
362
|
+
console.warn(`<LuiIcon>: No icon found for: ${iconSVG}`);
|
|
531
363
|
return null;
|
|
532
364
|
}
|
|
533
|
-
return (React__namespace.createElement("span",
|
|
365
|
+
return (React__namespace.createElement("span", { className: clsx('LuiIcon', className, size && ICON_SIZES[size], status && ICON_STATUS[status]), "data-icon": name, title: title, "aria-label": alt, ...spanProps }, iconSVG));
|
|
534
366
|
};
|
|
535
367
|
|
|
536
368
|
function getMaterialIconForLevel(level) {
|
|
@@ -545,85 +377,84 @@ function getMaterialIconForLevel(level) {
|
|
|
545
377
|
return 'error';
|
|
546
378
|
}
|
|
547
379
|
}
|
|
548
|
-
|
|
549
|
-
return (React__default["default"].createElement("div", { className: clsx('lui-msg-banner-container', props.className ? props.className
|
|
380
|
+
const LuiBanner = (props) => {
|
|
381
|
+
return (React__default["default"].createElement("div", { className: clsx('lui-msg-banner-container', props.className ? `${props.className}-bannerContainer` : '') },
|
|
550
382
|
React__default["default"].createElement(LuiBannerContent, { level: props.level, className: props.className }, props.children)));
|
|
551
383
|
};
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
return (React__default["default"].createElement("div", { className: clsx(
|
|
555
|
-
React__default["default"].createElement(LuiIcon, { name:
|
|
384
|
+
const LuiBannerContent = (props) => {
|
|
385
|
+
let materialIcon = getMaterialIconForLevel(props.level);
|
|
386
|
+
return (React__default["default"].createElement("div", { className: clsx(`lui-msg-${props.level} lui-msg-dynamic-banner`, props.className) },
|
|
387
|
+
React__default["default"].createElement(LuiIcon, { name: `ic_${materialIcon}`, alt: `${props.level} banner icon`, size: "lg", className: "lui-msg-status-icon" }),
|
|
556
388
|
React__default["default"].createElement("div", null, props.children)));
|
|
557
389
|
};
|
|
558
390
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
return display ? (React__default["default"].createElement("div", { className: clsx(
|
|
563
|
-
React__default["default"].createElement(LuiIcon, { name:
|
|
391
|
+
const LuiStaticMessage = (props) => {
|
|
392
|
+
const [display, setDisplay] = React.useState(true);
|
|
393
|
+
let materialIcon = getMaterialIconForLevel(props.level);
|
|
394
|
+
return display ? (React__default["default"].createElement("div", { className: clsx(`lui-msg-${props.level}`, props.className), "data-testid": 'static-message-container' },
|
|
395
|
+
React__default["default"].createElement(LuiIcon, { name: `ic_${materialIcon}`, alt: `${props.level} static icon`, size: "lg", className: "lui-msg-status-icon" }),
|
|
564
396
|
props.children,
|
|
565
|
-
(props.closable === undefined || props.closable) && (React__default["default"].createElement("button", { "aria-label": "Close dialog", onClick:
|
|
397
|
+
(props.closable === undefined || props.closable) && (React__default["default"].createElement("button", { "aria-label": "Close dialog", onClick: () => {
|
|
566
398
|
setDisplay(false);
|
|
567
399
|
} },
|
|
568
400
|
React__default["default"].createElement(LuiIcon, { name: "ic_clear", alt: 'close', size: "md", className: "LuiStaticMsg-close" }))))) : (React__default["default"].createElement(React__default["default"].Fragment, null));
|
|
569
401
|
};
|
|
570
402
|
|
|
571
|
-
|
|
572
|
-
return (React__default["default"].createElement("button",
|
|
403
|
+
const PlainButton = React__default["default"].forwardRef((props, ref) => {
|
|
404
|
+
return (React__default["default"].createElement("button", { ...props.buttonProps, type: props.type, title: props.title, disabled: props.disabled, name: props.name, onClick: props.onClick, className: clsx('lui-button', `lui-button-${props.level}`, `lui-button-${props.size}`, props.className), "data-testid": props['data-testid'], style: props.style, ref: ref }, props.children));
|
|
573
405
|
});
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
406
|
+
const LuiButton = React__default["default"].forwardRef((props, ref) => {
|
|
407
|
+
const _level = props.level ? props.level : 'primary';
|
|
408
|
+
const size = props.size ? props.size : 'med';
|
|
577
409
|
if (props.href) {
|
|
578
|
-
|
|
410
|
+
let aProps = {
|
|
579
411
|
href: props.href,
|
|
580
412
|
'data-testid': props['data-testid'],
|
|
581
413
|
name: props.name,
|
|
582
414
|
title: props.title,
|
|
583
|
-
className: clsx('lui-button',
|
|
415
|
+
className: clsx('lui-button', `lui-button-${props.level}`, `lui-button-${props.size}`, props.className),
|
|
584
416
|
style: props.style,
|
|
585
417
|
};
|
|
586
418
|
if (props.openInNewTab) {
|
|
587
419
|
aProps.target = '_blank';
|
|
588
420
|
aProps.rel = 'noopener noreferrer';
|
|
589
421
|
}
|
|
590
|
-
return React__default["default"].createElement("a",
|
|
422
|
+
return React__default["default"].createElement("a", { ...aProps }, props.children);
|
|
591
423
|
}
|
|
592
424
|
return (React__default["default"].createElement(PlainButton, { type: props.type, title: props.title, disabled: props.disabled, name: props.name, onClick: props.onClick, level: _level, size: size, "data-testid": props['data-testid'], style: props.style, className: props.className, buttonProps: props.buttonProps, ref: ref }, props.children));
|
|
593
425
|
});
|
|
594
426
|
/**
|
|
595
427
|
* A series of Lui buttons together.
|
|
596
428
|
*/
|
|
597
|
-
|
|
598
|
-
|
|
429
|
+
const LuiButtonGroup = (props) => {
|
|
430
|
+
const children = Array.isArray(props.children)
|
|
599
431
|
? props.children
|
|
600
432
|
: [props.children];
|
|
601
|
-
return (React__default["default"].createElement("div", { className: "lui-button-group", "data-testid": 'button-group' }, children.map(
|
|
433
|
+
return (React__default["default"].createElement("div", { className: "lui-button-group", "data-testid": 'button-group' }, children.map((child, i) => {
|
|
602
434
|
return (React__default["default"].createElement("div", { key: i, className: 'lui-button-wrapper' }, child));
|
|
603
435
|
})));
|
|
604
436
|
};
|
|
605
437
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
var callOnCloseAfterDissolved = function () {
|
|
438
|
+
const LuiToastMessage = ({ level, displayTimeout = 4000, display = true, requireDismiss, onClose, children, type, }) => {
|
|
439
|
+
const [className, setClassname] = React.useState('lui-msg-toast-show');
|
|
440
|
+
const [fadeOutTimer, setFadeOutTimer] = React.useState(undefined);
|
|
441
|
+
const [removeTimer, setRemoveTimer] = React.useState(undefined);
|
|
442
|
+
let materialIcon = getMaterialIconForLevel(level);
|
|
443
|
+
const callOnCloseAfterDissolved = () => {
|
|
613
444
|
// This is so the caller can remove it from the dom
|
|
614
445
|
if (onClose) {
|
|
615
|
-
|
|
446
|
+
const timer = window.setTimeout(onClose, displayTimeout);
|
|
616
447
|
setRemoveTimer(timer);
|
|
617
448
|
}
|
|
618
449
|
};
|
|
619
|
-
React.useEffect(
|
|
450
|
+
React.useEffect(() => {
|
|
620
451
|
// clear timers if previously set
|
|
621
452
|
fadeOutTimer && clearTimeout(fadeOutTimer);
|
|
622
453
|
removeTimer && clearTimeout(removeTimer);
|
|
623
454
|
setClassname('lui-msg-toast-show');
|
|
624
455
|
if (!requireDismiss && displayTimeout !== 0) {
|
|
625
456
|
// set a new timer
|
|
626
|
-
|
|
457
|
+
const timer = window.setTimeout(() => {
|
|
627
458
|
setClassname('lui-msg-toast-hide');
|
|
628
459
|
callOnCloseAfterDissolved();
|
|
629
460
|
}, displayTimeout);
|
|
@@ -631,36 +462,36 @@ var LuiToastMessage = function (_a) {
|
|
|
631
462
|
}
|
|
632
463
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
633
464
|
}, [requireDismiss, displayTimeout, children]);
|
|
634
|
-
React.useEffect(
|
|
465
|
+
React.useEffect(() => {
|
|
635
466
|
if (!display) {
|
|
636
467
|
setClassname('lui-msg-toast-hide');
|
|
637
468
|
callOnCloseAfterDissolved();
|
|
638
469
|
}
|
|
639
470
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
640
471
|
}, [display]);
|
|
641
|
-
return (React__default["default"].createElement("div", { role: "status", "data-testid": className, className:
|
|
472
|
+
return (React__default["default"].createElement("div", { role: "status", "data-testid": className, className: `lui-msg-${level} lui-msg-toast lui-msg-toast-dismissable ${className}` },
|
|
642
473
|
React__default["default"].createElement("i", { className: "lui-msg-status-icon material-icons-round" }, materialIcon),
|
|
643
474
|
children,
|
|
644
|
-
React__default["default"].createElement("button", { "aria-label": "Close dialog", type: type || 'button', onClick:
|
|
475
|
+
React__default["default"].createElement("button", { "aria-label": "Close dialog", type: type || 'button', onClick: () => {
|
|
645
476
|
setClassname('lui-msg-toast-hide');
|
|
646
477
|
callOnCloseAfterDissolved();
|
|
647
478
|
} },
|
|
648
479
|
React__default["default"].createElement("i", { className: "material-icons-round" }, "close"))));
|
|
649
480
|
};
|
|
650
481
|
|
|
651
|
-
|
|
482
|
+
const UIMessagingContext = React.createContext({
|
|
652
483
|
// @ts-ignore
|
|
653
|
-
showMessage:
|
|
484
|
+
showMessage: (props) => { },
|
|
654
485
|
});
|
|
655
486
|
function useShowLUIMessage() {
|
|
656
487
|
return React.useContext(UIMessagingContext).showMessage;
|
|
657
488
|
}
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
489
|
+
const LuiMessagingContextProvider = (props) => {
|
|
490
|
+
const [_message, setMessage] = React.useState();
|
|
491
|
+
const [_messageType, setMessageType] = React.useState();
|
|
492
|
+
const [_messageLevel, setMessageLevel] = React.useState('success');
|
|
493
|
+
const [_requireDismiss, setRequireDismiss] = React.useState(true);
|
|
494
|
+
const showMessage = (props) => {
|
|
664
495
|
setMessage(props.message);
|
|
665
496
|
setMessageType(props.messageType);
|
|
666
497
|
setMessageLevel(props.messageLevel);
|
|
@@ -668,10 +499,10 @@ var LuiMessagingContextProvider = function (props) {
|
|
|
668
499
|
? props.messageLevel === 'error'
|
|
669
500
|
: props.requireDismiss);
|
|
670
501
|
};
|
|
671
|
-
|
|
502
|
+
const renderMessage = () => {
|
|
672
503
|
switch (_messageType) {
|
|
673
504
|
case 'toast':
|
|
674
|
-
return (React__default["default"].createElement(LuiToastMessage, { onClose:
|
|
505
|
+
return (React__default["default"].createElement(LuiToastMessage, { onClose: () => {
|
|
675
506
|
setMessage(undefined);
|
|
676
507
|
}, level: _messageLevel, requireDismiss: _requireDismiss },
|
|
677
508
|
React__default["default"].createElement("span", { "data-testid": 'toastMessageShow' }, typeof _message === 'string' ? React__default["default"].createElement("h2", null, _message) : _message)));
|
|
@@ -679,45 +510,45 @@ var LuiMessagingContextProvider = function (props) {
|
|
|
679
510
|
return null;
|
|
680
511
|
}
|
|
681
512
|
};
|
|
682
|
-
return (React__default["default"].createElement(UIMessagingContext.Provider, { value: { showMessage
|
|
513
|
+
return (React__default["default"].createElement(UIMessagingContext.Provider, { value: { showMessage } },
|
|
683
514
|
_message && renderMessage(),
|
|
684
515
|
props.children));
|
|
685
516
|
};
|
|
686
517
|
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
518
|
+
const LuiExpandableBanner = (props) => {
|
|
519
|
+
const display = React.useRef(null);
|
|
520
|
+
const [collapse, setCollapse] = React.useState(true);
|
|
521
|
+
const collapseSection = (element) => {
|
|
691
522
|
// get the height of the element's inner content, regardless of its actual size
|
|
692
|
-
|
|
523
|
+
const sectionHeight = element.scrollHeight;
|
|
693
524
|
// on the next frame (as soon as the previous style change has taken effect),
|
|
694
525
|
// explicitly set the element's height to its current pixel height, so we
|
|
695
526
|
// aren't transitioning out of 'auto'
|
|
696
|
-
requestAnimationFrame(
|
|
527
|
+
requestAnimationFrame(() => {
|
|
697
528
|
element.style.height = sectionHeight + 'px';
|
|
698
529
|
// on the next frame (as soon as the previous style change has taken effect),
|
|
699
530
|
// have the element transition to height: 0
|
|
700
|
-
requestAnimationFrame(
|
|
531
|
+
requestAnimationFrame(() => {
|
|
701
532
|
element.style.height = 0 + 'px';
|
|
702
533
|
});
|
|
703
534
|
});
|
|
704
535
|
// mark the section as "currently collapsed"
|
|
705
536
|
setCollapse(true);
|
|
706
537
|
};
|
|
707
|
-
|
|
538
|
+
const expandSection = (element) => {
|
|
708
539
|
// get the height of the element's inner content, regardless of its actual size
|
|
709
|
-
|
|
540
|
+
const sectionHeight = element.scrollHeight;
|
|
710
541
|
// have the element transition to the height of its inner content
|
|
711
542
|
element.style.height = sectionHeight + 'px';
|
|
712
543
|
// when the next css transition finishes (which should be the one we just triggered)
|
|
713
|
-
setTimeout(
|
|
544
|
+
setTimeout(() => {
|
|
714
545
|
element.style.height = 'auto';
|
|
715
546
|
}, 500);
|
|
716
547
|
// mark the section as "currently not collapsed"
|
|
717
548
|
setCollapse(false);
|
|
718
549
|
};
|
|
719
|
-
|
|
720
|
-
|
|
550
|
+
const expandFunction = () => {
|
|
551
|
+
const section = display.current;
|
|
721
552
|
if (collapse) {
|
|
722
553
|
expandSection(section);
|
|
723
554
|
}
|
|
@@ -740,36 +571,33 @@ var LuiExpandableBanner = function (props) {
|
|
|
740
571
|
* A menu controlled by a user-supplied MenuButton. Open/closed state is managed internally. The defaulted style props,
|
|
741
572
|
* menuClassName and offsetY, can be overridden simply by setting them in the usual way.
|
|
742
573
|
*/
|
|
743
|
-
|
|
744
|
-
return React__default["default"].createElement(reactMenu.Menu,
|
|
574
|
+
const LuiMenu = (props) => {
|
|
575
|
+
return React__default["default"].createElement(reactMenu.Menu, { menuClassName: 'lui-menu', offsetY: 12, ...props });
|
|
745
576
|
};
|
|
746
577
|
/**
|
|
747
578
|
* A menu with state managed externally. Can be used quite conveniently as a context menu. The defaulted style props,
|
|
748
579
|
* menuClassName and offsetY, can be overridden simply by setting them in the usual way.
|
|
749
580
|
*/
|
|
750
|
-
|
|
751
|
-
return React__default["default"].createElement(reactMenu.ControlledMenu,
|
|
581
|
+
const LuiControlledMenu = (props) => {
|
|
582
|
+
return React__default["default"].createElement(reactMenu.ControlledMenu, { menuClassName: 'lui-menu', offsetY: 12, ...props });
|
|
752
583
|
};
|
|
753
584
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
return React__default["default"].createElement(reactMenu.Menu, __assign({ menuClassName: 'lui-select-menu', offsetY: 12 }, props));
|
|
585
|
+
const LuiSelectMenu = ({ ...props }) => {
|
|
586
|
+
return React__default["default"].createElement(reactMenu.Menu, { menuClassName: 'lui-select-menu', offsetY: 12, ...props });
|
|
757
587
|
};
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
return (React__default["default"].createElement(reactMenu.MenuItem, __assign({}, rest, { className: clsx('lui-select-menuItem', "lui-select-menuItem--" + (level ? level : 'primary'), rest.className), "data-testid": rest['data-testid'] }),
|
|
588
|
+
const LuiSelectMenuItem = ({ iconName, iconAlt, level, noPadding = false, ...rest }) => {
|
|
589
|
+
return (React__default["default"].createElement(reactMenu.MenuItem, { ...rest, className: clsx('lui-select-menuItem', `lui-select-menuItem--${level ? level : 'primary'}`, rest.className), "data-testid": rest['data-testid'] },
|
|
761
590
|
iconName ? (React__default["default"].createElement(LuiIcon, { className: "lui-select-icon", name: iconName, alt: iconAlt ? iconAlt : '', size: "md" })) : (''),
|
|
762
591
|
React__default["default"].createElement("p", { className: clsx('lui-select-menuItemText', {
|
|
763
592
|
'lui-select-menuItemText--noPadding': noPadding,
|
|
764
593
|
}) }, rest.children)));
|
|
765
594
|
};
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
return (React__default["default"].createElement(reactMenu.SubMenu, __assign({}, rest, { className: clsx({ 'lui-select-submenu': iconName === undefined }, { 'lui-select-submenu-with-icon': !!iconName }, rest.className), menuClassName: 'lui-select-menu', label: iconName === undefined
|
|
595
|
+
const LuiSelectSubMenuItem = ({ label, iconName, iconAlt, ...rest }) => {
|
|
596
|
+
return (React__default["default"].createElement(reactMenu.SubMenu, { ...rest, className: clsx({ 'lui-select-submenu': iconName === undefined }, { 'lui-select-submenu-with-icon': !!iconName }, rest.className), menuClassName: 'lui-select-menu', label: iconName === undefined
|
|
769
597
|
? label
|
|
770
|
-
: LuiSubMenuComponent(label, iconName, iconAlt) }
|
|
598
|
+
: LuiSubMenuComponent(label, iconName, iconAlt) }, rest.children));
|
|
771
599
|
};
|
|
772
|
-
|
|
600
|
+
const LuiSubMenuComponent = (label, iconName, iconAlt) => {
|
|
773
601
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
774
602
|
iconName === undefined ? ('') : (React__default["default"].createElement(LuiIcon, { className: "lui-menu-sub-header-icon", name: iconName, alt: iconAlt ? iconAlt : '', size: "md" })),
|
|
775
603
|
label));
|
|
@@ -804,11 +632,10 @@ let nanoid = (size = 21) => {
|
|
|
804
632
|
};
|
|
805
633
|
|
|
806
634
|
// Lui Select menu with dynamic data
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
return (React__default["default"].createElement(LuiSelectMenu, __assign({ menuClassName: 'lui-select-menu', offsetY: 12 }, props), displayMenu(props.items)));
|
|
635
|
+
const LuiSelectDataMenu = ({ ...props }) => {
|
|
636
|
+
return (React__default["default"].createElement(LuiSelectMenu, { menuClassName: 'lui-select-menu', offsetY: 12, ...props }, displayMenu(props.items)));
|
|
810
637
|
};
|
|
811
|
-
|
|
638
|
+
const displayMenu = (items) => (React__default["default"].createElement(React__default["default"].Fragment, null, items.map((item) => {
|
|
812
639
|
if (item.options === undefined) {
|
|
813
640
|
return (React__default["default"].createElement(React__default["default"].Fragment, { key: nanoid() },
|
|
814
641
|
item.header ? React__default["default"].createElement(GroupHeader, null, item.headerLabel) : null,
|
|
@@ -818,18 +645,15 @@ var displayMenu = function (items) { return (React__default["default"].createEle
|
|
|
818
645
|
return (React__default["default"].createElement(React__default["default"].Fragment, { key: nanoid() },
|
|
819
646
|
React__default["default"].createElement(LuiSelectSubMenuItem, { label: item.label, iconName: item.iconName }, displayMenu(item.options))));
|
|
820
647
|
}
|
|
821
|
-
})));
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
children && (React__default["default"].createElement(reactMenu.MenuHeader, { autoCapitalize: "false", className: "lui-select-menu-group" }, children))));
|
|
827
|
-
};
|
|
828
|
-
var LuiSelectMenuDivider = function () {
|
|
648
|
+
})));
|
|
649
|
+
const GroupHeader = ({ children, }) => (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
650
|
+
React__default["default"].createElement(reactMenu.MenuDivider, { className: "lui-select-divider" }),
|
|
651
|
+
children && (React__default["default"].createElement(reactMenu.MenuHeader, { autoCapitalize: "false", className: "lui-select-menu-group" }, children))));
|
|
652
|
+
const LuiSelectMenuDivider = () => {
|
|
829
653
|
return React__default["default"].createElement(reactMenu.MenuDivider, { className: "lui-select-divider" });
|
|
830
654
|
};
|
|
831
|
-
|
|
832
|
-
return React__default["default"].createElement(reactMenu.MenuHeader,
|
|
655
|
+
const LuiSelectMenuHeader = (props) => {
|
|
656
|
+
return React__default["default"].createElement(reactMenu.MenuHeader, { className: "lui-select-menu-group", ...props });
|
|
833
657
|
};
|
|
834
658
|
|
|
835
659
|
function styleInject(css, ref) {
|
|
@@ -859,12 +683,12 @@ function styleInject(css, ref) {
|
|
|
859
683
|
}
|
|
860
684
|
}
|
|
861
685
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
686
|
+
const LuiFilterMenu = (props) => {
|
|
687
|
+
const [filter, setFilter] = React.useState('');
|
|
688
|
+
const { toggleMenu, ...menuProps } = reactMenu.useMenuState();
|
|
689
|
+
const ref = React.useRef(null);
|
|
866
690
|
return (React__default["default"].createElement("div", { ref: ref },
|
|
867
|
-
props.menuButton(
|
|
691
|
+
props.menuButton(() => {
|
|
868
692
|
switch (props.enabled) {
|
|
869
693
|
case false: {
|
|
870
694
|
toggleMenu(false);
|
|
@@ -876,28 +700,23 @@ var LuiFilterMenu = function (props) {
|
|
|
876
700
|
}
|
|
877
701
|
}
|
|
878
702
|
}),
|
|
879
|
-
React__default["default"].createElement(reactMenu.ControlledMenu,
|
|
703
|
+
React__default["default"].createElement(reactMenu.ControlledMenu, { ...menuProps, anchorRef: ref, onClose: () => toggleMenu(false), className: "lui-menu", offsetY: 12, onChange: (e) => {
|
|
880
704
|
e.open && setFilter('');
|
|
881
705
|
}, menuStyles: props.maxRows !== undefined
|
|
882
706
|
? { maxHeight: 62 + 34 * props.maxRows, overflowY: 'auto' }
|
|
883
|
-
: {} }
|
|
884
|
-
React__default["default"].createElement(reactMenu.FocusableItem, null,
|
|
885
|
-
var ref = _a.ref;
|
|
886
|
-
return (React__default["default"].createElement("input", { ref: ref, type: "text", placeholder: "Type to filter", value: filter, onChange: function (e) { return setFilter(e.target.value); } }));
|
|
887
|
-
}),
|
|
707
|
+
: {} },
|
|
708
|
+
React__default["default"].createElement(reactMenu.FocusableItem, null, ({ ref }) => (React__default["default"].createElement("input", { ref: ref, type: "text", placeholder: "Type to filter", value: filter, onChange: (e) => setFilter(e.target.value) }))),
|
|
888
709
|
props.filteredItems
|
|
889
|
-
.filter(
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
.map(function (item) {
|
|
893
|
-
if ((item === null || item === void 0 ? void 0 : item.specialType) === 'div') {
|
|
710
|
+
.filter((item) => item.display.toUpperCase().includes(filter.trim().toUpperCase()))
|
|
711
|
+
.map((item) => {
|
|
712
|
+
if (item?.specialType === 'div') {
|
|
894
713
|
return React__default["default"].createElement(reactMenu.MenuDivider, { key: item.id });
|
|
895
714
|
}
|
|
896
|
-
else if (
|
|
715
|
+
else if (item?.specialType === 'head') {
|
|
897
716
|
return React__default["default"].createElement(reactMenu.MenuHeader, { key: item.id }, item.display);
|
|
898
717
|
}
|
|
899
718
|
else {
|
|
900
|
-
return (React__default["default"].createElement(reactMenu.MenuItem, { key: item.id, onMouseDown:
|
|
719
|
+
return (React__default["default"].createElement(reactMenu.MenuItem, { key: item.id, onMouseDown: (e) => {
|
|
901
720
|
props.onItemClick(item.id);
|
|
902
721
|
e.stopPropagation();
|
|
903
722
|
} }, item.display));
|
|
@@ -905,51 +724,50 @@ var LuiFilterMenu = function (props) {
|
|
|
905
724
|
}))));
|
|
906
725
|
};
|
|
907
726
|
|
|
908
|
-
|
|
727
|
+
const LuiTabsContext = React__default["default"].createContext({
|
|
909
728
|
activePanel: null,
|
|
910
|
-
setActivePanel:
|
|
729
|
+
setActivePanel: () => { },
|
|
911
730
|
});
|
|
912
|
-
|
|
913
|
-
|
|
731
|
+
const LuiTabs = (props) => {
|
|
732
|
+
let [activePanel, setActivePanel] = React.useState(props.defaultPanel);
|
|
914
733
|
return (React__default["default"].createElement("div", { className: "LuiTabs" },
|
|
915
|
-
React__default["default"].createElement(LuiTabsContext.Provider, { value: { activePanel
|
|
734
|
+
React__default["default"].createElement(LuiTabsContext.Provider, { value: { activePanel, setActivePanel } }, props.children)));
|
|
916
735
|
};
|
|
917
736
|
|
|
918
|
-
|
|
919
|
-
return (React__default["default"].createElement("button", { className: clsx('LuiTab', props.active && 'LuiTab--active'), id: props.id, role: "tab", "aria-selected": props.active, "aria-controls":
|
|
737
|
+
const LuiTab = (props) => {
|
|
738
|
+
return (React__default["default"].createElement("button", { className: clsx('LuiTab', props.active && 'LuiTab--active'), id: props.id, role: "tab", "aria-selected": props.active, "aria-controls": `${props.ariaControls}`, title: props.titleAttribute, onClick: props.onClick }, props.children));
|
|
920
739
|
};
|
|
921
740
|
|
|
922
741
|
// import './LuiTabsGroup.scss';
|
|
923
|
-
|
|
924
|
-
return (React__default["default"].createElement("div", { className:
|
|
742
|
+
const LuiTabsGroup = (props) => {
|
|
743
|
+
return (React__default["default"].createElement("div", { className: `LuiTabsGroup ${props.justify ? 'LuiTabsGroup--justified' : ''}`, role: "tablist", "aria-label": props.ariaLabel }, props.children));
|
|
925
744
|
};
|
|
926
745
|
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
React.useEffect(function () {
|
|
746
|
+
const LuiTabsPanel = ({ children, panel, mode = 'eager', }) => {
|
|
747
|
+
const context = React.useContext(LuiTabsContext);
|
|
748
|
+
const [shouldShow, setShouldShow] = React.useState(mode === 'eager');
|
|
749
|
+
let active = context.activePanel === panel;
|
|
750
|
+
React.useEffect(() => {
|
|
933
751
|
if (active && !shouldShow) {
|
|
934
752
|
setShouldShow(true);
|
|
935
753
|
}
|
|
936
754
|
}, [active, shouldShow]);
|
|
937
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiTabsPanel', active && 'LuiTabsPanel--active'), id: panel
|
|
755
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiTabsPanel', active && 'LuiTabsPanel--active'), id: `${panel}-tab-panel`, role: "tabpanel", "aria-labelledby": `${panel}-tab` }, shouldShow ? children : null));
|
|
938
756
|
};
|
|
939
757
|
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
return (React__default["default"].createElement(LuiTab, { id: props.targetPanel
|
|
758
|
+
const LuiTabsPanelSwitch = (props) => {
|
|
759
|
+
const context = React.useContext(LuiTabsContext);
|
|
760
|
+
let active = context.activePanel === props.targetPanel;
|
|
761
|
+
return (React__default["default"].createElement(LuiTab, { id: `${props.targetPanel}-tab`, ariaControls: `${props.targetPanel}-tab-panel`, active: active, onClick: () => {
|
|
944
762
|
if (context.setActivePanel)
|
|
945
763
|
context.setActivePanel(props.targetPanel);
|
|
946
764
|
} }, props.children));
|
|
947
765
|
};
|
|
948
766
|
|
|
949
767
|
function useDeprecatedWarning(componentName) {
|
|
950
|
-
React.useEffect(
|
|
768
|
+
React.useEffect(() => {
|
|
951
769
|
if (window.location.hostname.includes('localhost')) {
|
|
952
|
-
console.warn(componentName
|
|
770
|
+
console.warn(`${componentName} will be deprecated in future versions of Lui. Please see the 'Current Deprecations' page in Lui docs.`);
|
|
953
771
|
}
|
|
954
772
|
}, []);
|
|
955
773
|
}
|
|
@@ -957,9 +775,11 @@ function useDeprecatedWarning(componentName) {
|
|
|
957
775
|
function LuiFormikForm(props) {
|
|
958
776
|
useDeprecatedWarning('LuiFormikForm');
|
|
959
777
|
// this spreads all keys, except className
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
return (
|
|
778
|
+
const { className, ...formikProps } = { ...props };
|
|
779
|
+
const classNames = clsx(props.className);
|
|
780
|
+
return (
|
|
781
|
+
// @ts-ignore not fixing due this component being deprecated
|
|
782
|
+
React__default["default"].createElement(formik.Formik, { ...formikProps },
|
|
963
783
|
React__default["default"].createElement("div", { className: classNames },
|
|
964
784
|
React__default["default"].createElement(formik.Form, null,
|
|
965
785
|
props.children,
|
|
@@ -969,12 +789,9 @@ function LuiFormikForm(props) {
|
|
|
969
789
|
var css_248z$5 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiError {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: 600;\n margin-bottom: 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5rem;\n color: #2a292c;\n}\n.LuiError-errorIcon {\n vertical-align: middle;\n display: inline-block;\n}\n.LuiError-errorText {\n margin-left: 0.5rem;\n}";
|
|
970
790
|
styleInject(css_248z$5);
|
|
971
791
|
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
React__default["default"].createElement(LuiIcon, { className: "LuiError-errorIcon " + className + "-errorIcon", alt: 'Error', name: "ic_error", size: "md", status: "error" }),
|
|
976
|
-
error && (React__default["default"].createElement("span", { className: "LuiError-errorText " + className + "-errorText" }, error))));
|
|
977
|
-
};
|
|
792
|
+
const LuiError = ({ error, className }) => (React__default["default"].createElement("div", { className: `LuiError ${className}-error` },
|
|
793
|
+
React__default["default"].createElement(LuiIcon, { className: `LuiError-errorIcon ${className}-errorIcon`, alt: 'Error', name: "ic_error", size: "md", status: "error" }),
|
|
794
|
+
error && (React__default["default"].createElement("span", { className: `LuiError-errorText ${className}-errorText` }, error))));
|
|
978
795
|
|
|
979
796
|
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
|
980
797
|
// require the crypto API and do not support built-in fallback to lower quality random number
|
|
@@ -1051,29 +868,27 @@ function v4(options, buf, offset) {
|
|
|
1051
868
|
}
|
|
1052
869
|
|
|
1053
870
|
function useGenerateOrDefaultId(idFromProps) {
|
|
1054
|
-
|
|
871
|
+
const [id] = React.useState(idFromProps ? idFromProps : v4());
|
|
1055
872
|
return id;
|
|
1056
873
|
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
var id = useGenerateOrDefaultId((_a = props.inputProps) === null || _a === void 0 ? void 0 : _a.id);
|
|
874
|
+
const LuiTextInput = (props) => {
|
|
875
|
+
const id = useGenerateOrDefaultId(props.inputProps?.id);
|
|
1060
876
|
return (React__default["default"].createElement("div", { className: clsx('LuiTextInput', props.error && 'hasError', props.className) },
|
|
1061
877
|
React__default["default"].createElement("label", { className: 'LuiTextInput-label', htmlFor: id },
|
|
1062
878
|
props.mandatory && React__default["default"].createElement("span", { className: "LuiTextInput-mandatory" }, "*"),
|
|
1063
879
|
React__default["default"].createElement("span", { className: 'LuiTextInput-label-text ' +
|
|
1064
880
|
clsx(props.hideLabel ? 'LuiScreenReadersOnly' : '') }, props.label),
|
|
1065
881
|
React__default["default"].createElement("span", { className: "LuiTextInput-inputWrapper" },
|
|
1066
|
-
React__default["default"].createElement("input",
|
|
1067
|
-
clsx('LuiTextInput-input'), min: "0", value: props.value, onChange: props.onChange
|
|
882
|
+
React__default["default"].createElement("input", { type: 'text', className: (props.showPadlockIcon ? 'LuiTextInput-padlock-icon ' : '') +
|
|
883
|
+
clsx('LuiTextInput-input'), min: "0", value: props.value, onChange: props.onChange, ...props.inputProps, id: id }),
|
|
1068
884
|
props.icon),
|
|
1069
885
|
props.error && (React__default["default"].createElement("span", { className: "LuiTextInput-error" },
|
|
1070
886
|
React__default["default"].createElement(LuiIcon, { alt: "error", name: "ic_error", className: "LuiTextInput-error-icon", size: "sm", status: "error" }),
|
|
1071
887
|
props.error)))));
|
|
1072
888
|
};
|
|
1073
889
|
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
var id = useGenerateOrDefaultId((_a = props.inputProps) === null || _a === void 0 ? void 0 : _a.id);
|
|
890
|
+
const LuiCheckboxInput = (props) => {
|
|
891
|
+
const id = useGenerateOrDefaultId(props.inputProps?.id);
|
|
1077
892
|
return (React__default["default"].createElement("div", { className: clsx('LuiCheckboxInput', {
|
|
1078
893
|
'LuiCheckboxInput--isChecked': props.isChecked,
|
|
1079
894
|
'LuiCheckboxInput--hasError': !!props.error,
|
|
@@ -1081,27 +896,25 @@ var LuiCheckboxInput = function (props) {
|
|
|
1081
896
|
}, props.className) },
|
|
1082
897
|
React__default["default"].createElement("label", { htmlFor: id, className: "LuiCheckboxInput-group" },
|
|
1083
898
|
props.mandatory && (React__default["default"].createElement("span", { "aria-label": "Required", className: "LuiCheckboxInput-mandatory" }, "*")),
|
|
1084
|
-
React__default["default"].createElement("input",
|
|
899
|
+
React__default["default"].createElement("input", { className: clsx('LuiCheckboxInput-input'), id: id, type: "checkbox", value: props.value, onChange: props.onChange, checked: props.isChecked, disabled: props.isDisabled, ...props.inputProps }),
|
|
1085
900
|
React__default["default"].createElement("span", { className: "LuiCheckboxInput-label" },
|
|
1086
901
|
props.label,
|
|
1087
|
-
React__default["default"].createElement(LuiIcon, { name: props.isIndeterminate ? 'ic_zoom_out' : 'ic_check', size: "md", alt: props.isIndeterminate ? 'Indeterminate Check' : 'Check', className: "LuiCheckboxInput-labelCheck" }))),
|
|
902
|
+
React__default["default"].createElement(LuiIcon, { name: props.isIndeterminate ? 'ic_zoom_out' : 'ic_check', size: "md", alt: props.isIndeterminate ? 'Indeterminate Check' : 'Check', className: "LuiCheckboxInput-labelCheck", title: props.titleAttribute }))),
|
|
1088
903
|
props.error && (React__default["default"].createElement(LuiError, { className: "LuiCheckboxInput", error: props.error }))));
|
|
1089
904
|
};
|
|
1090
905
|
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
906
|
+
const LuiFileInputBox = (props) => {
|
|
907
|
+
const [file, setFile] = React.useState();
|
|
908
|
+
const [hasFileFormatError, setHasFileFormatError] = React.useState(false);
|
|
909
|
+
const onChange = (e) => {
|
|
1095
910
|
// Logic to go here to check extensions and setHasFileFormatError
|
|
1096
911
|
setHasFileFormatError(false);
|
|
1097
|
-
|
|
912
|
+
const files = e.target.files;
|
|
1098
913
|
// File upload box is configured to only accept 1 file, we can't have more than one here
|
|
1099
914
|
if (files && files.length === 1) {
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
});
|
|
1104
|
-
var fileName = selectedFile.name;
|
|
915
|
+
const selectedFile = files[0];
|
|
916
|
+
const supportedFileTypes = props.acceptedExtensions.map((ext) => ext.toUpperCase());
|
|
917
|
+
const fileName = selectedFile.name;
|
|
1105
918
|
if (!supportedFileTypes.includes(getFileNameExtension(fileName))) {
|
|
1106
919
|
setHasFileFormatError(true);
|
|
1107
920
|
setFile(undefined);
|
|
@@ -1112,10 +925,10 @@ var LuiFileInputBox = function (props) {
|
|
|
1112
925
|
}
|
|
1113
926
|
}
|
|
1114
927
|
};
|
|
1115
|
-
|
|
928
|
+
const hasError = hasFileFormatError || props.showMustSelectFileError === true;
|
|
1116
929
|
return (React__default["default"].createElement("div", { className: clsx('LuiFileInputBox-upload', hasError && 'LuiFileInputBox-upload-error'), style: { width: props.width || 320, height: props.height || 320 } },
|
|
1117
930
|
React__default["default"].createElement("input", { role: "button", "aria-label": "File Upload", type: "file", className: "LuiFileInputBox-upload-input", accept: props.acceptedExtensions
|
|
1118
|
-
.map(
|
|
931
|
+
.map((extension) => `.${extension}`)
|
|
1119
932
|
.join(','), onChange: onChange }),
|
|
1120
933
|
React__default["default"].createElement(React__default["default"].Fragment, null, hasError ? (React__default["default"].createElement("div", { className: "LuiFileInputBox-upload-container" },
|
|
1121
934
|
React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -1125,26 +938,26 @@ var LuiFileInputBox = function (props) {
|
|
|
1125
938
|
"You must select a file with extension of",
|
|
1126
939
|
' ',
|
|
1127
940
|
extensionsAsHumanReadableList(props.acceptedExtensions),
|
|
1128
|
-
"."))))) : (React__default["default"].createElement(FileUploadInfo, { fileName: file
|
|
941
|
+
"."))))) : (React__default["default"].createElement(FileUploadInfo, { fileName: file?.name, fileFormatText: props.fileFormatText, fileDescription: props.fileDescription })))));
|
|
1129
942
|
};
|
|
1130
943
|
// Only exported for chromatic
|
|
1131
|
-
|
|
1132
|
-
|
|
944
|
+
const FileUploadInfo = (props) => {
|
|
945
|
+
const DragAndDropInstruction = () => (React__default["default"].createElement("p", { className: "LuiFileInputBox-upload-text" },
|
|
1133
946
|
"Drag and drop your ",
|
|
1134
947
|
props.fileDescription,
|
|
1135
948
|
" into the box",
|
|
1136
949
|
React__default["default"].createElement("br", null),
|
|
1137
|
-
React__default["default"].createElement("span", null, "(or upload file manually)")));
|
|
1138
|
-
|
|
950
|
+
React__default["default"].createElement("span", null, "(or upload file manually)")));
|
|
951
|
+
const WaitingForFileSelection = () => (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1139
952
|
React__default["default"].createElement("div", { className: 'LuiFileInputBox-upload-icon-upload' },
|
|
1140
953
|
React__default["default"].createElement(LuiIcon, { name: "ic_publish", size: 'ns', alt: "Upload" })),
|
|
1141
954
|
React__default["default"].createElement(DragAndDropInstruction, null),
|
|
1142
|
-
props.fileFormatText && (React__default["default"].createElement("p", { className: "LuiFileInputBox-upload-text LuiFileInputBox-upload-text-no-padding" }, props.fileFormatText))));
|
|
1143
|
-
|
|
955
|
+
props.fileFormatText && (React__default["default"].createElement("p", { className: "LuiFileInputBox-upload-text LuiFileInputBox-upload-text-no-padding" }, props.fileFormatText))));
|
|
956
|
+
const UploadSuccess = () => (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1144
957
|
React__default["default"].createElement("div", { className: 'LuiFileInputBox-upload-icon-success' },
|
|
1145
958
|
React__default["default"].createElement(LuiIcon, { name: "ic_check_circle_outline", size: 'ns', alt: "Success" })),
|
|
1146
959
|
React__default["default"].createElement("p", { className: "LuiFileInputBox-upload-file-name" }, props.fileName),
|
|
1147
|
-
React__default["default"].createElement(DragAndDropInstruction, null)));
|
|
960
|
+
React__default["default"].createElement(DragAndDropInstruction, null)));
|
|
1148
961
|
return (React__default["default"].createElement("div", { className: "LuiFileInputBox-upload-container" }, props.fileName ? React__default["default"].createElement(UploadSuccess, null) : React__default["default"].createElement(WaitingForFileSelection, null)));
|
|
1149
962
|
};
|
|
1150
963
|
/**
|
|
@@ -1153,8 +966,8 @@ var FileUploadInfo = function (props) {
|
|
|
1153
966
|
* @param fileName File-name to get extension from
|
|
1154
967
|
* @return fileName extension in upper-case if found else empty string
|
|
1155
968
|
*/
|
|
1156
|
-
|
|
1157
|
-
|
|
969
|
+
const getFileNameExtension = (fileName) => {
|
|
970
|
+
const idx = fileName.lastIndexOf('.');
|
|
1158
971
|
return idx === -1 ? '' : fileName.substr(idx + 1).toUpperCase();
|
|
1159
972
|
};
|
|
1160
973
|
/**
|
|
@@ -1164,68 +977,63 @@ var getFileNameExtension = function (fileName) {
|
|
|
1164
977
|
* @param extensions List of extensions to convert.
|
|
1165
978
|
* @return Extensions in a human readable string in upper-case.
|
|
1166
979
|
*/
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
return extension.toUpperCase();
|
|
1170
|
-
});
|
|
980
|
+
const extensionsAsHumanReadableList = (extensions) => {
|
|
981
|
+
const uppercaseExtensions = extensions.map((extension) => extension.toUpperCase());
|
|
1171
982
|
if (!extensions.length)
|
|
1172
983
|
return '';
|
|
1173
984
|
if (extensions.length === 1)
|
|
1174
985
|
return uppercaseExtensions[0];
|
|
1175
|
-
return uppercaseExtensions.slice(0, -1).join(', ')
|
|
986
|
+
return `${uppercaseExtensions.slice(0, -1).join(', ')} or ${uppercaseExtensions[extensions.length - 1]}`;
|
|
1176
987
|
};
|
|
1177
988
|
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiSelect', ((_b = props.selectProps) === null || _b === void 0 ? void 0 : _b.disabled) ? 'isDisabled' : '', props.error ? 'hasError' : '') },
|
|
989
|
+
const LuiSelectInput = (props) => {
|
|
990
|
+
const id = useGenerateOrDefaultId(props.selectProps?.id);
|
|
991
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiSelect', props.selectProps?.disabled ? 'isDisabled' : '', props.error ? 'hasError' : '') },
|
|
1182
992
|
React__default["default"].createElement("label", { htmlFor: id, className: "LuiSelect-label" },
|
|
1183
993
|
props.mandatory && React__default["default"].createElement("span", { className: "LuiSelect-mandatory" }, "*"),
|
|
1184
994
|
React__default["default"].createElement("span", { className: clsx('LuiSelect-label-text', props.hideLabel ? 'LuiScreenReadersOnly' : '') }, props.label),
|
|
1185
995
|
React__default["default"].createElement("div", { className: "LuiSelect-wrapper" },
|
|
1186
|
-
React__default["default"].createElement("select",
|
|
996
|
+
React__default["default"].createElement("select", { name: id, onChange: props.onChange, value: props.value, className: "LuiSelect-select", ...props.selectProps },
|
|
1187
997
|
props.placeholderText && (React__default["default"].createElement("option", { value: "", disabled: true }, props.placeholderText)),
|
|
1188
|
-
props.options.map(
|
|
998
|
+
props.options.map((selection) => (React__default["default"].createElement("option", { key: selection.value, value: selection.value }, selection.label)))),
|
|
1189
999
|
React__default["default"].createElement(LuiIcon, { alt: 'Error', name: "ic_keyboard_arrow_down", className: "LuiSelect-chevron-icon", size: "md" })),
|
|
1190
1000
|
props.error && (React__default["default"].createElement("span", { className: "LuiSelect-error" },
|
|
1191
1001
|
React__default["default"].createElement(LuiIcon, { alt: 'Error', name: "ic_error", className: "LuiSelect-error-icon", size: "sm", status: "error" }),
|
|
1192
1002
|
props.error)))));
|
|
1193
1003
|
};
|
|
1194
1004
|
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiTextAreaInput', ((_b = props.inputProps) === null || _b === void 0 ? void 0 : _b.disabled) ? 'isDisabled' : '', (props === null || props === void 0 ? void 0 : props.error) ? 'hasError' : '') },
|
|
1005
|
+
const LuiTextAreaInput = (props) => {
|
|
1006
|
+
const id = useGenerateOrDefaultId(props.inputProps?.id);
|
|
1007
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiTextAreaInput', props.inputProps?.disabled ? 'isDisabled' : '', props?.error ? 'hasError' : '') },
|
|
1199
1008
|
React__default["default"].createElement("label", { htmlFor: id },
|
|
1200
1009
|
props.mandatory && (React__default["default"].createElement("span", { className: "LuiTextAreaInput-mandatory" }, "*")),
|
|
1201
1010
|
React__default["default"].createElement("span", { className: "LuiTextAreaInput-label" }, props.label),
|
|
1202
1011
|
React__default["default"].createElement("div", { className: "LuiTextAreaInput-wrapper" },
|
|
1203
1012
|
' ',
|
|
1204
|
-
React__default["default"].createElement("textarea",
|
|
1013
|
+
React__default["default"].createElement("textarea", { id: id, value: props.value, onChange: props.onChange, rows: 5, ...props.inputProps }))),
|
|
1205
1014
|
props.error && (React__default["default"].createElement("span", { className: "LuiTextAreaInput-error" },
|
|
1206
1015
|
React__default["default"].createElement(LuiIcon, { alt: "error", name: "ic_error", className: "LuiTextAreaInput-error-icon", size: "sm", status: "error" }),
|
|
1207
1016
|
props.error))));
|
|
1208
1017
|
};
|
|
1209
1018
|
|
|
1210
1019
|
// @NOTE Can use LuiRadioInput in block form and pass through your own legend (label)
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
var id = useGenerateOrDefaultId((_a = props.inputProps) === null || _a === void 0 ? void 0 : _a.id);
|
|
1020
|
+
const LuiRadioInput = (props) => {
|
|
1021
|
+
const id = useGenerateOrDefaultId(props.inputProps?.id);
|
|
1214
1022
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1215
1023
|
React__default["default"].createElement("div", { className: clsx('LuiRadioInput', {
|
|
1216
1024
|
'LuiRadioInput--hasError': props.error,
|
|
1217
1025
|
}) },
|
|
1218
1026
|
React__default["default"].createElement("fieldset", { className: 'LuiRadioInput-fieldset' },
|
|
1219
1027
|
props.legend && (React__default["default"].createElement("legend", { className: "LuiRadioInput-legend" }, props.legend)),
|
|
1220
|
-
props.options.map(
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1028
|
+
props.options.map((option, index) => {
|
|
1029
|
+
const radioId = `${id}-${index}`;
|
|
1030
|
+
const isSelected = props.selectedValue === option;
|
|
1031
|
+
const isDisabled = props.isOptionDisabled && props.isOptionDisabled(index);
|
|
1224
1032
|
return (React__default["default"].createElement("label", { htmlFor: radioId, className: clsx('LuiRadioInput-label', {
|
|
1225
1033
|
'LuiRadioInput-label--isDisabled': isDisabled,
|
|
1226
1034
|
'LuiRadioInput-label--isSelected': isSelected,
|
|
1227
1035
|
}), key: radioId },
|
|
1228
|
-
React__default["default"].createElement("input",
|
|
1036
|
+
React__default["default"].createElement("input", { disabled: isDisabled, className: "LuiRadioInput-input", type: "radio", id: radioId, name: option, value: option, checked: isSelected, onChange: props.onChange, ...props.inputProps }),
|
|
1229
1037
|
props.renderLabelFor ? props.renderLabelFor(option) : option));
|
|
1230
1038
|
})),
|
|
1231
1039
|
props.error && (React__default["default"].createElement("div", { className: "LuiRadioInput-errorMsg" },
|
|
@@ -1235,76 +1043,70 @@ var LuiRadioInput = function (props) {
|
|
|
1235
1043
|
|
|
1236
1044
|
function LuiFormikCheckbox(props) {
|
|
1237
1045
|
useDeprecatedWarning('LuiFormikCheckbox');
|
|
1238
|
-
|
|
1046
|
+
let ctx = formik.useFormikContext();
|
|
1239
1047
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1240
|
-
React__default["default"].createElement(formik.Field, { name: props.name },
|
|
1241
|
-
|
|
1242
|
-
var showError = formik.getIn(ctx === null || ctx === void 0 ? void 0 : ctx.errors, props.name);
|
|
1048
|
+
React__default["default"].createElement(formik.Field, { name: props.name }, ({ field }) => {
|
|
1049
|
+
const showError = formik.getIn(ctx?.errors, props.name);
|
|
1243
1050
|
return (React__default["default"].createElement("div", { className: clsx(showError && 'lui-input-error') },
|
|
1244
1051
|
React__default["default"].createElement("div", { className: "lui-input-group-wrapper " },
|
|
1245
1052
|
showError && (React__default["default"].createElement("i", { className: "lui-form-status-icon material-icons-round" }, "error")),
|
|
1246
1053
|
React__default["default"].createElement("div", { className: clsx('lui-checkbox-container', props.className) },
|
|
1247
|
-
React__default["default"].createElement("input",
|
|
1054
|
+
React__default["default"].createElement("input", { ...props.inputProps, type: "checkbox", id: props.value, disabled: !!props.disabled, checked: field.value, ...field }),
|
|
1248
1055
|
typeof props.label === 'string' ? (React__default["default"].createElement("label", { htmlFor: props.value }, props.label)) : (props.label)))));
|
|
1249
1056
|
})));
|
|
1250
1057
|
}
|
|
1251
1058
|
|
|
1252
|
-
|
|
1059
|
+
const LuiFormikFormLabel = (props) => {
|
|
1253
1060
|
useDeprecatedWarning('LuiFormikFormLabel');
|
|
1254
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiFormLabel-wrapper', props.className &&
|
|
1061
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiFormLabel-wrapper', props.className && `${props.className}`) },
|
|
1255
1062
|
props.children,
|
|
1256
|
-
React__default["default"].createElement("label", { className: "LuiFormLabel", htmlFor: props
|
|
1063
|
+
React__default["default"].createElement("label", { className: "LuiFormLabel", htmlFor: props.for },
|
|
1257
1064
|
props.required && React__default["default"].createElement("span", { className: "lui-required-input-icon" }, "*"),
|
|
1258
1065
|
props.label),
|
|
1259
1066
|
props.tooltip && React__default["default"].createElement("i", { className: "material-icons-round" }, "help")));
|
|
1260
1067
|
};
|
|
1261
1068
|
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1069
|
+
const LuiFormikTextInput = formik.connect((props) => {
|
|
1070
|
+
const error = formik.getIn(props.formik.errors, props.name);
|
|
1071
|
+
const touch = formik.getIn(props.formik.touched, props.name);
|
|
1072
|
+
const showError = touch && error;
|
|
1073
|
+
const { setFieldValue } = formik.useFormikContext();
|
|
1267
1074
|
useDeprecatedWarning('LuiFormikTextInput');
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
props.
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
} })));
|
|
1288
|
-
};
|
|
1289
|
-
return (React__default["default"].createElement("div", { className: clsx(props.className && "" + props.className) },
|
|
1290
|
-
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { required: props.required, label: props.label, "for": props.name, tooltip: props.tooltip })),
|
|
1075
|
+
const multiLineToggle = (field) => !props.multiLine ? (React__default["default"].createElement("input", { id: props.name, "data-testid": props.name, ...field, type: "text", ...props.inputProps, onChange: (event) => {
|
|
1076
|
+
setFieldValue(props.name, event.target.value, props.validateOnChange ?? true);
|
|
1077
|
+
if (props.onValueChange) {
|
|
1078
|
+
props.onValueChange({
|
|
1079
|
+
value: event.target.value,
|
|
1080
|
+
formik: props.formik,
|
|
1081
|
+
});
|
|
1082
|
+
}
|
|
1083
|
+
} })) : (React__default["default"].createElement("textarea", { id: props.name, "data-testid": props.name, ...field, rows: 1, ...props.inputProps, onChange: (event) => {
|
|
1084
|
+
setFieldValue(props.name, event.target.value, props.validateOnChange ?? true);
|
|
1085
|
+
if (props.onValueChange) {
|
|
1086
|
+
props.onValueChange({
|
|
1087
|
+
value: event.target.value,
|
|
1088
|
+
formik: props.formik,
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
} }));
|
|
1092
|
+
return (React__default["default"].createElement("div", { className: clsx(props.className && `${props.className}`) },
|
|
1093
|
+
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { required: props.required, label: props.label, for: props.name, tooltip: props.tooltip })),
|
|
1291
1094
|
props.helperInfo,
|
|
1292
|
-
React__default["default"].createElement(formik.Field, { name: props.name, validate: props.validate },
|
|
1293
|
-
var field = _a.field;
|
|
1095
|
+
React__default["default"].createElement(formik.Field, { name: props.name, validate: props.validate }, ({ field }) => {
|
|
1294
1096
|
return (React__default["default"].createElement("div", { className: clsx(showError && 'lui-input-error') },
|
|
1295
|
-
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, render:
|
|
1097
|
+
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, render: () => (React__default["default"].createElement("i", { className: "lui-form-status-icon material-icons-round" }, "error")) }),
|
|
1296
1098
|
multiLineToggle(field),
|
|
1297
1099
|
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, className: 'lui-error-msg', component: "p" })));
|
|
1298
1100
|
})));
|
|
1299
1101
|
});
|
|
1300
1102
|
|
|
1301
|
-
|
|
1302
|
-
|
|
1103
|
+
const LuiFormikRadioButton = (props) => {
|
|
1104
|
+
const [field, meta] = formik.useField(props);
|
|
1303
1105
|
useDeprecatedWarning('LuiFormikRadioButton');
|
|
1304
1106
|
return (React__default["default"].createElement("div", { className: props.className },
|
|
1305
1107
|
meta.touched && meta.error && (React__default["default"].createElement("i", { className: "lui-form-status-icon material-icons-round" }, "error")),
|
|
1306
1108
|
React__default["default"].createElement("div", { className: 'lui-radio-container' },
|
|
1307
|
-
React__default["default"].createElement("input",
|
|
1109
|
+
React__default["default"].createElement("input", { disabled: !!props.disabled, ...field, checked: props.value === field.value, value: props.value, id: props.value, type: "radio", ...props.inputProps }),
|
|
1308
1110
|
React__default["default"].createElement("label", { htmlFor: props.value }, props.label))));
|
|
1309
1111
|
};
|
|
1310
1112
|
|
|
@@ -1444,14 +1246,14 @@ camelcase$1.exports.default = camelCase;
|
|
|
1444
1246
|
var camelcase = camelcase$1.exports;
|
|
1445
1247
|
|
|
1446
1248
|
// TODO: It's annoying that we have to pass name into the RadioGroup and RadioButton
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1249
|
+
const LuiFormikRadioGroup = (props) => {
|
|
1250
|
+
let ctx = formik.useFormikContext();
|
|
1251
|
+
const error = formik.getIn(ctx.errors, props.name);
|
|
1252
|
+
const touch = formik.getIn(ctx.touched, props.name);
|
|
1253
|
+
const showError = touch && error;
|
|
1452
1254
|
useDeprecatedWarning('LuiFormikRadioGroup');
|
|
1453
|
-
|
|
1454
|
-
|
|
1255
|
+
const describedby = props.hint && camelcase(props?.hint) + 'Id';
|
|
1256
|
+
const errorDescribedBy = error && camelcase(error) + 'Id';
|
|
1455
1257
|
return (React__default["default"].createElement("div", { className: clsx('lui-fieldsetBlock-form-group', showError && 'lui-input-error') },
|
|
1456
1258
|
React__default["default"].createElement("fieldset", { "aria-describedby": clsx(props.hint && describedby + 'Id', showError && errorDescribedBy) },
|
|
1457
1259
|
React__default["default"].createElement("legend", null,
|
|
@@ -1464,42 +1266,42 @@ var LuiFormikRadioGroup = function (props) {
|
|
|
1464
1266
|
React__default["default"].createElement("div", { className: "lui-input-group-wrapper" }, props.children))));
|
|
1465
1267
|
};
|
|
1466
1268
|
|
|
1467
|
-
|
|
1269
|
+
const LuiFormikFormSubmitButton = formik.connect((props) => {
|
|
1468
1270
|
useDeprecatedWarning('LuiFormikFormSubmitButton');
|
|
1469
1271
|
return (React__default["default"].createElement(LuiButton, { type: "submit", className: props.className, level: "primary", "data-testid": props['data-testid'], disabled: !!props.disabled }, props.children));
|
|
1470
1272
|
});
|
|
1471
1273
|
|
|
1472
|
-
|
|
1274
|
+
const LuiFormikSelect = formik.connect((props) => {
|
|
1473
1275
|
useDeprecatedWarning('LuiFormikSelect');
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1276
|
+
const error = formik.getIn(props.formik.errors, props.name);
|
|
1277
|
+
const touch = formik.getIn(props.formik.touched, props.name);
|
|
1278
|
+
const showError = touch && error;
|
|
1477
1279
|
return (React__default["default"].createElement("div", { className: props.className },
|
|
1478
|
-
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { className: 'lui-margin-bottom-xxs',
|
|
1280
|
+
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { className: 'lui-margin-bottom-xxs', for: props.name, label: props.label, required: !!props.required, tooltip: props.tooltip })),
|
|
1479
1281
|
props.helperInfo,
|
|
1480
1282
|
React__default["default"].createElement("div", { className: clsx('lui-input-wrapper', showError && 'lui-input-error') },
|
|
1481
|
-
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, render:
|
|
1482
|
-
React__default["default"].createElement(formik.Field,
|
|
1283
|
+
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, render: () => (React__default["default"].createElement("i", { className: "lui-form-status-icon material-icons-round" }, "error")) }),
|
|
1284
|
+
React__default["default"].createElement(formik.Field, { disabled: props.disabled, defaultValue: props.defaultValue, name: props.name, id: props.name, validate: props.validate, as: "select", ...props.inputProps }, props.children),
|
|
1483
1285
|
React__default["default"].createElement(formik.ErrorMessage, { name: props.name, className: 'lui-error-msg', component: "p" }))));
|
|
1484
1286
|
});
|
|
1485
1287
|
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1288
|
+
const LuiBearingInput = (props) => {
|
|
1289
|
+
const maxDecimal = 1;
|
|
1290
|
+
const maxAfterDP = 4 + maxDecimal;
|
|
1291
|
+
const parseBearing = (decimalIsh) => {
|
|
1292
|
+
const sign = decimalIsh.startsWith('-') ? '-' : '+';
|
|
1293
|
+
const parts = decimalIsh.split('.');
|
|
1294
|
+
const degrees = Math.abs(parseInt(parts[0])) || 0;
|
|
1295
|
+
let remainder = parts.length > 1 ? parts[1] : '0000';
|
|
1494
1296
|
while (remainder.length < 4) {
|
|
1495
1297
|
remainder += '0';
|
|
1496
1298
|
}
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
return { sign
|
|
1299
|
+
const minutes = parseInt(remainder.substr(0, 2));
|
|
1300
|
+
const seconds = parseFloat(`${remainder.substr(2, 2)}.${remainder.length > 4 ? remainder.substr(4, 2) : '0'}`);
|
|
1301
|
+
return { sign, degrees, minutes, seconds };
|
|
1500
1302
|
};
|
|
1501
|
-
|
|
1502
|
-
|
|
1303
|
+
const validateBearing = (bearing) => {
|
|
1304
|
+
const signedDegrees = bearing.sign === '-' ? bearing.degrees * -1 : bearing.degrees;
|
|
1503
1305
|
if (signedDegrees < -360 || signedDegrees > 360)
|
|
1504
1306
|
return 'Degrees must be between -360 and 360';
|
|
1505
1307
|
if (bearing.minutes < 0 || bearing.minutes >= 60)
|
|
@@ -1510,16 +1312,16 @@ var LuiBearingInput = function (props) {
|
|
|
1510
1312
|
//here ---
|
|
1511
1313
|
return null;
|
|
1512
1314
|
};
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
return displaySign
|
|
1315
|
+
const formatBearing = (decimalIsh) => {
|
|
1316
|
+
const { sign, degrees, minutes, seconds } = parseBearing(decimalIsh);
|
|
1317
|
+
const displaySign = degrees === 0 && minutes === 0 && seconds === 0 ? '' : sign;
|
|
1318
|
+
return `${displaySign} ${degrees}° ${padToTwo(minutes)}' ${padToTwo(seconds)}"`;
|
|
1517
1319
|
};
|
|
1518
|
-
|
|
1519
|
-
|
|
1320
|
+
const onChange = (event) => {
|
|
1321
|
+
const newValue = event.target.value;
|
|
1520
1322
|
if (newValue === '' ||
|
|
1521
1323
|
newValue === '-' ||
|
|
1522
|
-
newValue.match(RegExp(
|
|
1324
|
+
newValue.match(RegExp(`^-?[0-9]+(\\.[0-9]{0,${maxAfterDP}})?$`))) {
|
|
1523
1325
|
props.onChange && props.onChange(event);
|
|
1524
1326
|
}
|
|
1525
1327
|
else {
|
|
@@ -1529,26 +1331,26 @@ var LuiBearingInput = function (props) {
|
|
|
1529
1331
|
function padToTwo(number) {
|
|
1530
1332
|
return number <= 9 ? '0' + number : number.toString();
|
|
1531
1333
|
}
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1334
|
+
const parsedBearing = parseBearing(props.value);
|
|
1335
|
+
const internalError = validateBearing(parsedBearing);
|
|
1336
|
+
const error = props.preferValidationError
|
|
1535
1337
|
? props.validationError || internalError || null
|
|
1536
1338
|
: internalError || props.validationError || null;
|
|
1537
|
-
|
|
1339
|
+
const showError = error !== null;
|
|
1538
1340
|
props.onValidate && props.onValidate(internalError);
|
|
1539
1341
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1540
|
-
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { required: !!props.required, label: props.label,
|
|
1342
|
+
props.label && (React__default["default"].createElement(LuiFormikFormLabel, { required: !!props.required, label: props.label, for: props.name, tooltip: props.tooltip })),
|
|
1541
1343
|
props.helperInfo,
|
|
1542
1344
|
React__default["default"].createElement("div", { className: clsx('lui-margin-top-xs', showError && 'lui-input-error') },
|
|
1543
1345
|
showError && (React__default["default"].createElement("i", { className: "lui-form-status-icon material-icons-round" }, "error")),
|
|
1544
1346
|
React__default["default"].createElement("div", { className: 'lui-bearing-input-wrapper' },
|
|
1545
|
-
React__default["default"].createElement("input",
|
|
1347
|
+
React__default["default"].createElement("input", { id: props.name, type: "text", disabled: props.disabled, ...props.inputProps, onChange: onChange, value: props.value }),
|
|
1546
1348
|
React__default["default"].createElement("div", { className: 'lui-bearing-display' }, formatBearing(props.value || '0'))),
|
|
1547
1349
|
showError && React__default["default"].createElement("p", null, error))));
|
|
1548
1350
|
};
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1351
|
+
const LuiBearingFormikInput = (props) => {
|
|
1352
|
+
let ctx = formik.useFormikContext();
|
|
1353
|
+
const [error, setError] = React.useState(null);
|
|
1552
1354
|
function validateBearing() {
|
|
1553
1355
|
return error;
|
|
1554
1356
|
}
|
|
@@ -1556,8 +1358,8 @@ var LuiBearingFormikInput = function (props) {
|
|
|
1556
1358
|
setError(error);
|
|
1557
1359
|
}
|
|
1558
1360
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1559
|
-
React__default["default"].createElement(formik.Field, { name: props.name, validate: validateBearing },
|
|
1560
|
-
return (React__default["default"].createElement(LuiBearingInput,
|
|
1361
|
+
React__default["default"].createElement(formik.Field, { name: props.name, validate: validateBearing }, (renderProps) => {
|
|
1362
|
+
return (React__default["default"].createElement(LuiBearingInput, { name: props.name, ...renderProps.field, validationError: formik.getIn(ctx?.errors, props.name), required: true, onValidate: onValidate, inputProps: props.inputProps, preferValidationError: props.preferValidationError }));
|
|
1561
1363
|
})));
|
|
1562
1364
|
};
|
|
1563
1365
|
|
|
@@ -1565,7 +1367,7 @@ var LinzLogoFooter = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
|
|
|
1565
1367
|
|
|
1566
1368
|
var NzGovtLogoRev = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMTkwIDIwIj4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGlkPSJhIiBkPSJNMCAwaDE4OS41NzJ2MTkuMzEySDB6Ii8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIG9wYWNpdHk9Ii43Ij4KICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2EiLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZFRkVGRSIgZD0iTTgzLjEzOSAxMy44MTNIODEuMzFWNy4wMjFjMC0uOTA0LS4wODItMS4yMjYtLjMyMy0xLjU0Ny0uMi0uMjYxLS41NjItLjQwMi0xLjAyNC0uNDAyLS43MjQgMC0xLjgxLjU2My0yLjQ5MiAxLjI4NnY3LjQ1NWgtLjkzYy0uNTg2IDAtLjktLjQ0LS45LTEuMTI3VjYuMzE4YzAtMS4yMDYtLjEtMS42NjgtLjM4MS0yLjM5MmwxLjc0OS0uNDgyYy4yNC40ODIuMzQyLjkyNC4zNDIgMS41NDcuNTgyLS40ODIuODg0LS43NDMgMS4zMDYtLjk4NGEzLjczMiAzLjczMiAwIDAgMSAxLjg2OS0uNTAyYzEuMDY0IDAgMi4wMDkuNTYyIDIuMzcgMS40MjYuMTYxLjM2Mi4yNDIuODA0LjI0MiAxLjI2N3Y3LjYxNXptOC4wNTQtMi41NTJWNS45OTZjLS41MjItLjYyMy0xLjE4Ni0uOTQ0LTIuMTMtLjk0NC0uNzYzIDAtMS4zNjcuMzgxLTEuNzQ4IDEuMDI1LS4zODIuNjYyLS41MjMgMS40NjctLjUyMyAyLjc3MyAwIDEuOTUuMjQxIDIuNDkyLjc4NCAzLjA1NC4zNDEuMzYyLjgwNC41MjMgMS40ODcuNTIzIDEuMDY1IDAgMS43ODktLjU2MyAyLjEzLTEuMTY2em0yLjE1IDIuNTUyaC0xLjc2OGMtLjEtLjMwMS0uMTItLjQ0Mi0uMTgxLS45NDQtLjcwMy43NDQtMS41MjggMS4xMDUtMi41OTIgMS4xMDUtMi41NzIgMC00LjA4LTEuOTI5LTQuMDgtNS4xMDQgMC0yLjE3Ljc0NC0zLjgzOCAyLjExLTQuNzIzYTMuNDc3IDMuNDc3IDAgMCAxIDEuOTctLjU4MmMuOTY0IDAgMS43NjguMzQxIDIuNDUxIDEuMTY2IDAtLjI4Mi0uMDQtMS44MTktLjA0LTIuNTAyVi4xNDNsMS44NDkuMzAxdjkuOTk0YzAgMS42MjcuMDYgMi43NTMuMjgxIDMuMzc1ek03MS44NiA4Ljg3Yy0uMjgyLS4wMi0uNDQyLS4wNC0uNjAzLS4wNC0xLjM4NyAwLTIuMjMuMjYxLTIuNjMzLjcyMy0uMzgxLjQ0My0uNTIyLjgwNC0uNTIyIDEuNDY3IDAgMS4xMDYuNTYzIDEuNzQ5IDEuNTg4IDEuNzQ5Ljg0MyAwIDEuNjQ4LS41MjMgMi4xMS0xLjMyN2wuMDYtMi41NzJ6bTIuNjEyIDQuMTJsLS45NDQgMS4yNDVjLS42MjMtLjI0LTEuMTA2LS43NDMtMS4zNDctMS40NDctLjI2LjMyMi0xLjEwNSAxLjMyNy0yLjg1MyAxLjMyNy0yLjAxIDAtMy4yNTUtMS4wMjUtMy4yNTUtMi45NTQgMC0yLjMzMSAxLjg2OC0zLjU3NyA1LjEyNC0zLjU3Ny4yNCAwIC40NDIgMCAuNzAzLjAyVjYuOTRjMC0xLjE4Ni0uMTYtMS45OS0xLjU2Ny0xLjk5LTEuMDY1IDAtMi4yNzIuNTIzLTMuMDk1IDEuMTQ2bC0uODQ0LTEuMzI3Yy45ODUtLjU2MiAyLjI3LTEuMzI2IDQuMjItMS4zMjYgMS40NjcgMCAyLjUzMi41NDMgMi45MTQgMS42MDguMTYuNDQyLjIuNzg0LjIgMS43NjggMCAuNzI0LS4wOCAyLjI3MS0uMDggMy43MzggMCAxLjM4Ny4wNCAxLjk1LjgyNCAyLjQzMnptLTkuMTcxLjgwM2EyLjcxIDIuNzEgMCAwIDEtMS4xNDYuMjIxYy0uNzIzIDAtMS4xODYtLjIyLTEuNTY3LS43NjMtLjMwMS0uNDIyLS4zODItLjc2NC0uMzgyLTEuNzQ5VjMuMjk1YzAtMS40MjYtLjA2LTIuMTEtLjIyMS0yLjg5M0w2My45MTUgMGMuMTguNjYzLjE4IDEuNjI4LjE4IDIuODc0djguMTQ2YzAgMS4wNjUuMDYgMS4zMDYuMjYxIDEuNDg3LjEyMS4xNDEuNDAyLjIwMS42MjMuMTQxbC4zMjIgMS4xNDV6TTU4LjI2NyA4Ljg3Yy0uMjgtLjAyLS40NDItLjA0LS42MDItLjA0LTEuMzg3IDAtMi4yMy4yNjEtMi42MzMuNzIzLS4zODIuNDQzLS41MjMuODA0LS41MjMgMS40NjcgMCAxLjEwNi41NjMgMS43NDkgMS41ODggMS43NDkuODQ0IDAgMS42NDgtLjUyMyAyLjExLTEuMzI3bC4wNi0yLjU3MnptMi42MTMgNC4xMmwtLjk0NCAxLjI0NWMtLjYyMy0uMjQtMS4xMDYtLjc0My0xLjM0Ny0xLjQ0Ny0uMjYuMzIyLTEuMTA1IDEuMzI3LTIuODU0IDEuMzI3LTIuMDA5IDAtMy4yNTUtMS4wMjUtMy4yNTUtMi45NTQgMC0yLjMzMSAxLjg2OS0zLjU3NyA1LjEyNC0zLjU3Ny4yNDEgMCAuNDQzIDAgLjcwNC4wMlY2Ljk0YzAtMS4xODYtLjE2MS0xLjk5LTEuNTY4LTEuOTktMS4wNjUgMC0yLjI3LjUyMy0zLjA5NSAxLjE0NmwtLjg0My0xLjMyN2MuOTg0LS41NjIgMi4yNy0xLjMyNiA0LjIyLTEuMzI2IDEuNDY2IDAgMi41MzIuNTQzIDIuOTE0IDEuNjA4LjE2LjQ0Mi4yLjc4NC4yIDEuNzY4IDAgLjcyNC0uMDggMi4yNzEtLjA4IDMuNzM4IDAgMS4zODcuMDQgMS45NS44MjQgMi40MzJ6TTQ5LjQ2MSA3LjgwNWMwLS45NjQtLjIyLTEuNzY4LS42MjItMi4yNzFhMS44MSAxLjgxIDAgMCAwLTEuNDQ3LS43MDNjLTEuNDA3IDAtMi4xMSAxLjE0Ni0yLjExIDIuOTc0aDQuMTh6bTEuOTMgMS4zNjZoLTYuMTN2LjI0MmMwIC44NjMuMTIxIDEuNTI3LjQyMyAyLjAxLjUyMi44MDMgMS4zNDUgMS4xODUgMi4zMSAxLjE4NS45NDUgMCAxLjc0OS0uMzIyIDIuNDcyLS45NjVsLjcwNCAxLjEwNmMtLjk4Ni44NjQtMi4xNyAxLjI4NS0zLjQ3NyAxLjI4NS0yLjc5MyAwLTQuNTAyLTIuMDI5LTQuNTAyLTUuMzI0IDAtMS43NDkuMzQyLTIuODc0IDEuMjA2LTMuOS44MDQtLjk0NCAxLjc4OS0xLjM4NiAzLjAzNS0xLjM4NiAxLjEyNSAwIDIuMDMuMzYyIDIuNzMzIDEuMDg1Ljg4NC45MDUgMS4yMDUgMi4wMyAxLjIyNiA0LjM0di4zMjJ6TTMyLjY0IDMuNzQ2bC0yLjgxMyAxMC4xNDhIMjguMDRsLTEuNDY3LTUuNDg2Yy0uMTgtLjcwMy0uNjIzLTIuMzcxLS42MjMtMi4zNzFoLS4wNnMtLjQwMiAxLjcwOC0uNTQyIDIuMjVsLTEuNTA4IDUuNjA3aC0xLjc2OEwxOS4zMTggMy44MjZsMS44NjgtLjMwMSAxLjI4NyA1LjY0NmMuMjIgMS4wMDUuNTIyIDIuNDcyLjUyMiAyLjQ3MmguMDYxcy4yMi0xLjQyNi40NjItMi4yOWwxLjUyNy01LjYwN2gxLjkxTDI4LjM2IDkuMTljLjI4MSAxLjA4NS41NjIgMi4zNTIuNTYyIDIuNDUyaC4wOGMwLS4xLjMyMi0xLjcyOC40NjMtMi4zOWwxLjI0Ni01LjUwN2gxLjkzem0tMTUuODIgNC4wNmMwLS45NjUtLjIyLTEuNzctLjYyMy0yLjI3MmExLjgwNyAxLjgwNyAwIDAgMC0xLjQ0Ni0uNzAzYy0xLjQwNyAwLTIuMTEgMS4xNDYtMi4xMSAyLjk3NGg0LjE4em0xLjkzIDEuMzY1aC02LjEzdi4yNDJjMCAuODYzLjEyMSAxLjUyNy40MjMgMi4wMS41MjMuODAzIDEuMzQ2IDEuMTg1IDIuMzEgMS4xODUuOTQ1IDAgMS43NDktLjMyMiAyLjQ3Mi0uOTY1bC43MDMgMS4xMDZjLS45ODQuODY0LTIuMTcgMS4yODUtMy40NzYgMS4yODUtMi43OTMgMC00LjUwMS0yLjAyOS00LjUwMS01LjMyNCAwLTEuNzQ5LjM0MS0yLjg3NCAxLjIwNS0zLjkuODA0LS45NDQgMS43OS0xLjM4NiAzLjAzNS0xLjM4NiAxLjEyNSAwIDIuMDMuMzYyIDIuNzMzIDEuMDg1Ljg4NC45MDUgMS4yMDUgMi4wMyAxLjIyNiA0LjM0di4zMjJ6bTE3MC44MjItNS4zOTZsLS41IDEuM2gtMS45OHY2LjAzOWMwIDEuMjQuMyAxLjYyIDEuMyAxLjYyLjM0IDAgLjYyLS4wNi45MzktLjJsLjIyIDEuMTJjLS41Ni4yOC0xLjE2LjQyLTEuODIuNDItLjY2IDAtMS4zNzktLjItMS43LS41LS40MTktLjM4MS0uNzQtLjU4LS43NC0yLjA0di02LjQ2aC0xLjE5OHYtMS4zaDEuMTk5YzAtLjc3OS4wMi0xLjguMTItMi41NTlsMS45LS40NGMtLjA4LjcyLS4xOCAxLjk4LS4xOCAzaDIuNDR6bS02Ljc3NSAxMC4wMThoLTEuODJWNy4wMzVjMC0uOS0uMDgtMS4yMi0uMzE5LTEuNTQtLjItLjI2LS41Ni0uNC0xLjAyLS40LS43MiAwLTEuOC41Ni0yLjQ4IDEuMjh2Ny40MThoLTEuODJWNi4zMzRjMC0xLjItLjEtMS42NTktLjM4LTIuMzhsMS43NC0uNDc5Yy4yNC40OC4zNC45Mi4zNCAxLjU0LjU4LS40OC44OC0uNzQgMS4zLS45OC41OC0uMzQgMS4yNC0uNSAxLjg2LS41IDEuMDYgMCAxLjk5OS41NiAyLjM2IDEuNDIuMTU5LjM2LjI0LjguMjQgMS4yNnY3LjU3OHptLTEwLjk4My01Ljk3OWMwLS45Ni0uMjItMS43Ni0uNjItMi4yNi0uMzItLjQtLjgtLjctMS40NC0uNy0xLjM5OSAwLTIuMSAxLjE0LTIuMSAyLjk2aDQuMTZ6bTEuOTIgMS4zNmgtNi4xdi4yNGMwIC44Ni4xMiAxLjUyLjQyIDIgLjUyMS44IDEuMzQgMS4xOCAyLjMgMS4xOC45NCAwIDEuNzQtLjMyIDIuNDYtLjk2bC43IDEuMWMtLjk4Ljg2LTIuMTYgMS4yOC0zLjQ2IDEuMjgtMi43OCAwLTQuNDc5LTIuMDItNC40NzktNS4zIDAtMS43NC4zNC0yLjg2IDEuMi0zLjg4LjgtLjk0IDEuNzgtMS4zNzkgMy4wMi0xLjM3OSAxLjEyIDAgMi4wMi4zNiAyLjcyIDEuMDguODguOSAxLjE5OSAyLjAyIDEuMjE5IDQuMzJ2LjMxOXptLTkuNTc3IDQuNjJoLTEuODJ2LTcuMThjMC0xLjE0LS4zNi0xLjU0LTEuMi0xLjU0LS45MiAwLTEuNTguNi0yLjMzOSAxLjM2djcuMzZoLTEuOHYtNy4xNGMwLTEuMTItLjMyLTEuNTQtMS4yNC0xLjU0LS42OCAwLTEuNDQuMzQtMi4zIDEuMTZ2Ny41MmgtMS44MnYtNy4zNmMwLTEuNDItLjA4LTEuOC0uMzU5LTIuNDk5bDEuNzItLjQyYy4yLjM0LjM0Ljg0LjM0IDEuNC44Ni0uOSAxLjg4LTEuNDIgMi44MTktMS40Mi45NCAwIDEuODguNSAyLjM4IDEuNTggMS0xLjA2IDIuMDQtMS41OCAzLjA2LTEuNTggMS41NTkgMCAyLjU1OS45OCAyLjU1OSAyLjgydjcuNDc4em0tMTQuMzk3IDBoLTEuODJ2LTYuNzZjMC0uODk5LS4wOC0xLjIyLS4zMi0xLjU0LS4yLS4yNi0uNTYtLjQtMS4wMi0uNC0uNzIgMC0xLjc5OS41Ni0yLjQ4IDEuMjh2Ny40MmgtMS44MnYtNy40NmMwLTEuMi0uMDk5LTEuNjU5LS4zNzktMi4zOGwxLjc0LS40NzljLjI0LjQ4LjM0LjkyLjM0IDEuNTQuNTgtLjQ4Ljg4LS43NCAxLjMtLjk4LjU4LS4zNCAxLjI0LS41IDEuODYtLjUgMS4wNTkgMCAxLjk5OS41NiAyLjM2IDEuNDIuMTU5LjM2LjIzOS44LjIzOSAxLjI2djcuNTc4em0tOC43ODItMTAuMjM5bC0uNjQgMS44NGExLjUgMS41IDAgMCAwLS41Mi0uMWMtMS4xMiAwLTIuMDc5Ljk0LTIuMDc5IDIuMDM5djYuNDZoLTEuODR2LTcuMzZjMC0xLjIyLS4xNC0xLjg4LS4zOC0yLjQ5OWwxLjc4LS40NmMuMTguMzguMzQgMS4wNC4zNCAxLjU0di4xOGMuOC0xLjE2IDEuNjYtMS43NCAyLjcyLTEuNzQuMjQgMCAuNDYuMDQuNjIuMXptLTguNjAzIDQuMjU5YzAtLjk2LS4yMi0xLjc2LS42Mi0yLjI2LS4zMi0uNC0uOC0uNy0xLjQ0LS43LTEuMzk5IDAtMi4xIDEuMTQtMi4xIDIuOTZoNC4xNnptMS45MiAxLjM2aC02LjF2LjI0YzAgLjg2LjEyIDEuNTIuNDIxIDIgLjUyLjggMS4zNCAxLjE4IDIuMyAxLjE4LjkzOSAwIDEuNzQtLjMyIDIuNDU5LS45NmwuNyAxLjFjLS45OC44Ni0yLjE2IDEuMjgtMy40NiAxLjI4LTIuNzc5IDAtNC40NzktMi4wMi00LjQ3OS01LjMgMC0xLjc0LjM0LTIuODYgMS4yLTMuODguOC0uOTQgMS43OC0xLjM3OSAzLjAyLTEuMzc5IDEuMTIgMCAyLjAyLjM2IDIuNzE5IDEuMDguODguOSAxLjIgMi4wMiAxLjIyIDQuMzJ2LjMxOXptLTguMzczLTUuNGwtMy42NTkgMTAuMWgtMS43MmwtMy41OC0xMC4wNiAxLjktLjMgMS45OCA2LjA2Yy4yMi42OC40NCAxLjQ4LjYgMi4xNi4xNi0uNi4zNi0xLjM4LjY0LTIuMmwxLjktNS43NmgxLjk0em0tMTEuMjU4IDUuMThjMC0zLjEtLjktNC4wNC0yLjM0LTQuMDQtMS42IDAtMi4yNTkgMS4xNC0yLjI1OSAzLjY2IDAgMy4wNi43OCA0LjA4IDIuMzQgNC4wOCAxLjQgMCAyLjI2LTEuMDggMi4yNi0zLjd6bTIuMDYtLjA4YzAgMy4xOC0xLjcgNS4yLTQuMzYgNS4yLTIuNjc5IDAtNC4zNC0yLjA0LTQuMzQtNS4zIDAtMy4yNCAxLjY2MS01LjI4IDQuMy01LjI4IDIuOTYgMCA0LjQgMi4zNiA0LjQgNS4zOHptLTEwLjAyNSA0LjAyYy0xLjEyLjctMi42MiAxLjEtNC4wOCAxLjEtMS44NCAwLTMuMy0uNjItNC4zNTgtMS44Ni0xLjEtMS4yOC0xLjYtMi45LTEuNi01LjE2IDAtMS45MTMuOC00LjEwMyAyLjM4LTUuNDAzLjk5OC0uODIgMi4wOTktMS4xOCAzLjQ1OS0xLjE4IDEuNSAwIDIuODE5LjQ0IDMuODk5IDEuMzhsLS45MiAxLjJjLTEuMDItLjc0LTEuODgtMS4wNC0yLjk0LTEuMDQtMS4zMiAwLTIuMjk4LjU1Mi0yLjk1OSAxLjc2LS40ODEuODgtLjc2IDEuNzQ0LS43NiAzLjM4MyAwIDEuOS4zNCAzLjMyLjk4IDQuMTYuNi43OCAxLjc4IDEuMjQgMi45NiAxLjI0Ljc3OSAwIDEuNDgtLjIgMi4wNC0uNTJ2LTMuOTJoLTIuNTRsLS4zMi0xLjU4aDQuNzU5djYuNDR6bS02My4yMy0uMzc0bC0uNDggMS42aC04LjIxOHYtMS40OGw1LjU1OS04Ljc4MmMuMy0uNTIuNy0xLjA2Ljk4LTEuNDItLjQuMDQtLjkuMDYtMS41OC4wNmgtNC43MTlsLjQ2LTEuNmg3LjkxOHYxLjU0bC01LjQ5OSA4Ljc4M2MtLjMuNTItLjYyLjkyLS44NiAxLjMyLjQyLS4wMi44OC0uMDIgMS4zOC0uMDJoNS4wNnpNOS4xOTQgMTMuOTU3aC0yLjA2bC0zLjYyLTcuMzE5Yy0uNy0xLjQyLTEuNDE5LTIuOTgtMS42NzktMy43OGwtLjEyLjAyYy4xIDEuMTguMTQgMi41Ni4xNiAzLjg0bC4wOCA3LjIzOWgtLjc1NmMtLjg3MyAwLTEuMTg0LS44NDQtMS4xODQtMS43OTZWLjE4aDIuMjRsMy44NCA3LjU5OWMuNTggMS4xNCAxLjI2IDIuOTIgMS4zNiAzLjNsLjEyLS4wNDFjLS4wNC0uNC0uMi0yLjU4LS4yLTQuMUw3LjMzMy4xOGgxLjg2djEzLjc3OHpNMCAxOC4zNTlzMjMuOTA5LTIuNjk5IDQ2LjUyMy0yLjY5OWMyMy4xIDAgNDcuMTUgMi43IDQ3LjE1IDIuN3YuOTUycy0yNC4yMS0yLjU1OS00Ny4xNDYtMi41NTlDMjMuOTEgMTYuNzUzIDAgMTkuMzEzIDAgMTkuMzEzdi0uOTU0eiIgbWFzaz0idXJsKCNiKSIvPgogICAgPC9nPgo8L3N2Zz4=';
|
|
1567
1369
|
|
|
1568
|
-
|
|
1370
|
+
const LuiFooter = (props) => {
|
|
1569
1371
|
return (React__default["default"].createElement("footer", { className: 'lui-footer' },
|
|
1570
1372
|
React__default["default"].createElement("div", { className: 'lui-footer-columns' },
|
|
1571
1373
|
React__default["default"].createElement("h2", null, props.footerText),
|
|
@@ -25058,35 +24860,33 @@ var loaderDataChristmas = {
|
|
|
25058
24860
|
* Very trivial react wrapper for Lottie-web light. Using lottie-web directly rather than with `react-lottie` or
|
|
25059
24861
|
* `lottie-react` reduces our bundle size and enables use to use lottie-web in light mode.
|
|
25060
24862
|
*/
|
|
25061
|
-
|
|
25062
|
-
|
|
25063
|
-
|
|
25064
|
-
|
|
25065
|
-
React__default["default"].useEffect(function () {
|
|
24863
|
+
const LuiLottieLight = ({ animationData, style, rendererSettings, autoplay, loop, }) => {
|
|
24864
|
+
const element = React__default["default"].useRef(null);
|
|
24865
|
+
const lottieInstance = React__default["default"].useRef();
|
|
24866
|
+
React__default["default"].useEffect(() => {
|
|
25066
24867
|
if (element.current) {
|
|
25067
24868
|
lottieInstance.current = lottie__default["default"].loadAnimation({
|
|
25068
|
-
animationData
|
|
24869
|
+
animationData,
|
|
25069
24870
|
container: element.current,
|
|
25070
|
-
rendererSettings
|
|
25071
|
-
autoplay
|
|
25072
|
-
loop
|
|
24871
|
+
rendererSettings,
|
|
24872
|
+
autoplay,
|
|
24873
|
+
loop,
|
|
25073
24874
|
});
|
|
25074
24875
|
}
|
|
25075
|
-
return
|
|
25076
|
-
|
|
25077
|
-
(_a = lottieInstance.current) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
24876
|
+
return () => {
|
|
24877
|
+
lottieInstance.current?.destroy();
|
|
25078
24878
|
};
|
|
25079
24879
|
}, [animationData, autoplay, loop, rendererSettings]);
|
|
25080
24880
|
return React__default["default"].createElement("div", { style: style, ref: element });
|
|
25081
24881
|
};
|
|
25082
24882
|
|
|
25083
24883
|
// This prevents spinners from animating and causing diffs in chromatic
|
|
25084
|
-
|
|
25085
|
-
|
|
25086
|
-
|
|
24884
|
+
const autoplay = !isChromatic();
|
|
24885
|
+
const style = { height: 148, width: 148 };
|
|
24886
|
+
const renderSettings = {
|
|
25087
24887
|
preserveAspectRatio: 'xMidYMid slice',
|
|
25088
24888
|
};
|
|
25089
|
-
|
|
24889
|
+
const LuiLoadingSpinnerBase = (props) => {
|
|
25090
24890
|
return (React__default["default"].createElement("div", { style: {
|
|
25091
24891
|
position: 'absolute',
|
|
25092
24892
|
top: '50%',
|
|
@@ -25100,7 +24900,7 @@ var LuiLoadingSpinnerBase = function (props) {
|
|
|
25100
24900
|
/**
|
|
25101
24901
|
* A LuiSpinner with a status message beneath it.
|
|
25102
24902
|
*/
|
|
25103
|
-
|
|
24903
|
+
const LuiStatusSpinner = (props) => {
|
|
25104
24904
|
return (React__default["default"].createElement("div", { className: 'LuiStatusSpinner' },
|
|
25105
24905
|
React__default["default"].createElement(LuiLoadingSpinner, null),
|
|
25106
24906
|
React__default["default"].createElement("div", { style: {
|
|
@@ -25115,24 +24915,25 @@ var LuiStatusSpinner = function (props) {
|
|
|
25115
24915
|
width: '300px',
|
|
25116
24916
|
} }, props.children))));
|
|
25117
24917
|
};
|
|
25118
|
-
|
|
25119
|
-
return (React__default["default"].createElement("div",
|
|
24918
|
+
const LuiMiniSpinner = (props) => {
|
|
24919
|
+
return (React__default["default"].createElement("div", { ...props.divProps },
|
|
25120
24920
|
React__default["default"].createElement(LuiLottieLight, { animationData: loaderData, loop: true, autoplay: autoplay, rendererSettings: {
|
|
25121
24921
|
preserveAspectRatio: 'xMidYMid slice',
|
|
25122
24922
|
}, style: { height: props.size, width: props.size } })));
|
|
25123
24923
|
};
|
|
25124
|
-
|
|
24924
|
+
const LuiLoadingSpinner = () => {
|
|
25125
24925
|
return React__default["default"].createElement(LuiLoadingSpinnerBase, { animationData: loaderData });
|
|
25126
24926
|
};
|
|
25127
|
-
|
|
24927
|
+
const LuiLoadingSpinnerEaster = () => {
|
|
25128
24928
|
return React__default["default"].createElement(LuiLoadingSpinnerBase, { animationData: loaderDataEaster });
|
|
25129
24929
|
};
|
|
25130
|
-
|
|
24930
|
+
const LuiLoadingSpinnerChristmas = () => {
|
|
25131
24931
|
return React__default["default"].createElement(LuiLoadingSpinnerBase, { animationData: loaderDataChristmas });
|
|
25132
24932
|
};
|
|
25133
24933
|
// this function was extracted from chromatic/isChromatic. It was causing TS issues for the consumer
|
|
25134
24934
|
function isChromatic() {
|
|
25135
|
-
return !!(
|
|
24935
|
+
return !!(window?.navigator.userAgent.match(/Chromatic/) ||
|
|
24936
|
+
window?.location.href.match(/chromatic=true/));
|
|
25136
24937
|
}
|
|
25137
24938
|
|
|
25138
24939
|
var css_248z$4 = ":export {\n charcoal: #2a292c;\n fuscous: #6b6966;\n gray: #989189;\n silver: #beb9b4;\n lily: #eaeaea;\n hint: #f9f9f9;\n snow: #ffffff;\n white: #ffffff;\n teal: #00425d;\n sea: #007198;\n electric: #0096cc;\n spray: #73c8e1;\n polar: #e2f3f7;\n sherpa: #004b50;\n surfie: #017a76;\n persian: #00a599;\n downy: #73cdc8;\n iceberg: #dcf5f0;\n sacramento: #004e32;\n salem: #08814d;\n pigment: #0aa245;\n granny: #9bd79b;\n panache: #e9fae7;\n brand-primary: #004b50;\n brand-secondary: #017a76;\n error: #cc0000;\n error-bg: #f5cccc;\n error-focus: #5a0000;\n warning: #ea6a2e;\n warning-bg: #fbdfd2;\n warning-focus: #b33a01;\n success: #0aa245;\n success-bg: #e9fae7;\n info: #3a7cdf;\n info-bg: #d8e5f9;\n visited: #00425d;\n green-hover: #107c3a;\n green-active: #094a22;\n green-btn: #0aa245;\n txt-link: #0096cc;\n primary-hover-btn: #005678;\n selection: #c7e9f3;\n heading-color: #017a76;\n heading-color--secondary: #2a292c;\n base-type-color: #2a292c;\n input-text: #2a292c;\n input-placeholder: #6b6966;\n input-placeholder-when-disabled: #989189;\n base-icon-color: #007198;\n disabled-color: #989189;\n disabled-color-dark: #6b6966;\n linz-color-primary: #023d48;\n linz-color-primary-hover: #01818a;\n linz-color-tertiary: #e1e44a;\n linz-color-tertiary-hover: #cdcf59;\n color-test-pink: #f09;\n linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}";
|
|
@@ -25243,61 +25044,114 @@ var CreatableSelect = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
25243
25044
|
/**
|
|
25244
25045
|
* A wrapper around React Select with Lui styling
|
|
25245
25046
|
*/
|
|
25246
|
-
|
|
25047
|
+
const LuiComboSelect = React.forwardRef(LuiComboSelectActual);
|
|
25247
25048
|
// declare the indicator in here so it gets the types from
|
|
25248
25049
|
// the function declaration
|
|
25249
|
-
|
|
25050
|
+
const LuiLoadingIndicator = () => React__default["default"].createElement(LuiMiniSpinner, { size: 25 });
|
|
25250
25051
|
function LuiComboSelectActual(givenProps, ref) {
|
|
25251
|
-
|
|
25252
|
-
noOptionsMessage:
|
|
25253
|
-
return "No options found containing '" + i.inputValue + "'";
|
|
25254
|
-
},
|
|
25052
|
+
const props = Object.assign({
|
|
25053
|
+
noOptionsMessage: (i) => `No options found containing '${i.inputValue}'`,
|
|
25255
25054
|
}, givenProps);
|
|
25256
|
-
props.components =
|
|
25055
|
+
props.components = {
|
|
25056
|
+
LoadingIndicator: LuiLoadingIndicator,
|
|
25057
|
+
...props.components,
|
|
25058
|
+
};
|
|
25257
25059
|
// box-shadow: "-8px 0px 0 0 #cc0000";
|
|
25258
25060
|
// border-radius: "4px";
|
|
25259
|
-
|
|
25260
|
-
|
|
25261
|
-
|
|
25061
|
+
const id = useGenerateOrDefaultId(props?.id);
|
|
25062
|
+
const selectProp = {
|
|
25063
|
+
inputId: id,
|
|
25064
|
+
...props,
|
|
25065
|
+
classNamePrefix: 'LuiComboSelect',
|
|
25066
|
+
theme: (theme) => ({
|
|
25067
|
+
...theme,
|
|
25068
|
+
colors: {
|
|
25069
|
+
...theme.colors,
|
|
25070
|
+
primary: css_248z$4['sea'],
|
|
25071
|
+
primary75: css_248z$4['electric'],
|
|
25072
|
+
primary50: css_248z$4['spray'],
|
|
25073
|
+
primary25: css_248z$4['polar'],
|
|
25074
|
+
neutral90: css_248z$4['charcoal'],
|
|
25075
|
+
neutral80: css_248z$4['charcoal'],
|
|
25076
|
+
neutral70: css_248z$4['charcoal'],
|
|
25077
|
+
neutral60: css_248z$4['fuscous'],
|
|
25078
|
+
neutral50: css_248z$4['fuscous'],
|
|
25079
|
+
neutral40: css_248z$4['gray'],
|
|
25080
|
+
neutral30: css_248z$4['gray'],
|
|
25081
|
+
neutral20: css_248z$4['silver'],
|
|
25082
|
+
neutral10: css_248z$4['lily'],
|
|
25083
|
+
neutral5: css_248z$4['hint'],
|
|
25084
|
+
danger: css_248z$4['error'],
|
|
25085
|
+
dangerLight: css_248z$4['error-bg'],
|
|
25086
|
+
},
|
|
25087
|
+
}),
|
|
25088
|
+
styles: {
|
|
25089
|
+
control: (provided, state) => ({
|
|
25090
|
+
...provided,
|
|
25262
25091
|
/* matches style of .LuiTextInput-input */
|
|
25263
|
-
boxShadow: 'none',
|
|
25092
|
+
boxShadow: 'none',
|
|
25093
|
+
border: state.isFocused ? '1px solid #053d52' : '1px solid #b2b2b2',
|
|
25094
|
+
'&:hover, &:active': {
|
|
25264
25095
|
borderColor: '#053d52',
|
|
25265
|
-
}
|
|
25266
|
-
|
|
25267
|
-
|
|
25268
|
-
|
|
25096
|
+
},
|
|
25097
|
+
}),
|
|
25098
|
+
dropdownIndicator: (provided) => ({
|
|
25099
|
+
...provided,
|
|
25100
|
+
color: css_248z$4['fuscous'],
|
|
25101
|
+
}),
|
|
25102
|
+
indicatorSeparator: (provided) => ({
|
|
25103
|
+
...provided,
|
|
25104
|
+
width: 0,
|
|
25105
|
+
}),
|
|
25106
|
+
input: (provided) => ({
|
|
25107
|
+
...provided,
|
|
25108
|
+
height: '40px',
|
|
25109
|
+
minHeight: '40px',
|
|
25110
|
+
fontWeight: 400,
|
|
25111
|
+
input: {
|
|
25269
25112
|
height: '38px !important',
|
|
25270
|
-
}
|
|
25271
|
-
|
|
25272
|
-
|
|
25113
|
+
},
|
|
25114
|
+
}),
|
|
25115
|
+
singleValue: (provided) => ({
|
|
25116
|
+
...provided,
|
|
25117
|
+
color: '#414042',
|
|
25118
|
+
fontWeight: 400,
|
|
25119
|
+
}),
|
|
25120
|
+
placeholder: (provided) => ({
|
|
25121
|
+
...provided,
|
|
25273
25122
|
/* please keep this in sync with FormVars.scss/mixin.formPlaceholder */
|
|
25274
|
-
fontWeight: 'normal',
|
|
25275
|
-
|
|
25276
|
-
|
|
25277
|
-
|
|
25278
|
-
}
|
|
25279
|
-
|
|
25123
|
+
fontWeight: 'normal',
|
|
25124
|
+
fontStyle: 'italic',
|
|
25125
|
+
color: css_248z$4['input-placeholder'],
|
|
25126
|
+
}),
|
|
25127
|
+
option: (provided, { isSelected }) => ({
|
|
25128
|
+
...provided,
|
|
25129
|
+
color: css_248z$4['input-text'],
|
|
25130
|
+
backgroundColor: isSelected ? css_248z$4['selection'] : css_248z$4['white'],
|
|
25131
|
+
}),
|
|
25132
|
+
},
|
|
25133
|
+
};
|
|
25280
25134
|
return (React__default["default"].createElement("label", { htmlFor: id, className: clsx('LuiComboSelect-label', props.error && 'hasError') },
|
|
25281
25135
|
React__default["default"].createElement("span", { className: clsx('LuiSelect-label-text', props.hideLabel ? 'LuiScreenReadersOnly' : '') }, props.label),
|
|
25282
|
-
props.isCreateable ? (React__default["default"].createElement(CreatableSelect,
|
|
25136
|
+
props.isCreateable ? (React__default["default"].createElement(CreatableSelect, { formatCreateLabel: (inputValue) => inputValue, createOptionPosition: "first", ref: ref, ...selectProp })) : (React__default["default"].createElement(Select, { ref: ref, ...selectProp })),
|
|
25283
25137
|
props.error && (React__default["default"].createElement("span", { className: "LuiComboSelect-error" },
|
|
25284
25138
|
React__default["default"].createElement(LuiIcon, { alt: 'Error', name: "ic_error", className: "LuiComboSelect-error-icon", size: "sm", status: "error" }),
|
|
25285
25139
|
props.error))));
|
|
25286
25140
|
}
|
|
25287
25141
|
|
|
25288
|
-
|
|
25142
|
+
const LuiShadow = (props) => {
|
|
25289
25143
|
return (React__default["default"].createElement("div", { className: clsx('LuiShadow', props.className) }, props.children));
|
|
25290
25144
|
};
|
|
25291
25145
|
|
|
25292
|
-
|
|
25146
|
+
const HelpInfo = (props) => (React__default["default"].createElement("div", { className: clsx('lui-small', 'HelpInfo') },
|
|
25293
25147
|
React__default["default"].createElement(LuiIcon, { name: "ic_error_outline", className: 'HelpInfo-icon', size: "sm", alt: "Extra Information" }),
|
|
25294
|
-
React__default["default"].createElement("div", { className: 'HelpInfo-info' }, props.info)));
|
|
25148
|
+
React__default["default"].createElement("div", { className: 'HelpInfo-info' }, props.info)));
|
|
25295
25149
|
|
|
25296
|
-
|
|
25150
|
+
const LuiFormSectionHeader = (props) => (React__default["default"].createElement("div", { className: "LuiFormSectionHeader" },
|
|
25297
25151
|
React__default["default"].createElement("div", { className: "LuiFormSectionHeader-header" },
|
|
25298
25152
|
React__default["default"].createElement("h3", { className: "LuiFormSectionHeader-heading" }, props.header),
|
|
25299
25153
|
props.details && React__default["default"].createElement(HelpInfo, { info: props.details })),
|
|
25300
|
-
React__default["default"].createElement(LuiShadow, { className: 'LuiFormSectionHeader-details' }, props.children)));
|
|
25154
|
+
React__default["default"].createElement(LuiShadow, { className: 'LuiFormSectionHeader-details' }, props.children)));
|
|
25301
25155
|
|
|
25302
25156
|
var logo = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMywgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSI3MHB4IiB2aWV3Qm94PSIwIDAgMzAwIDcwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgNzA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KCS5zdDF7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8yXyk7fQoJLnN0M3tmaWxsOnVybCgjU1ZHSURfM18pO30KCS5zdDR7ZmlsbDp1cmwoI1NWR0lEXzRfKTt9Cgkuc3Q1e2ZpbGw6dXJsKCNTVkdJRF81Xyk7fQoJLnN0NntvcGFjaXR5OjAuNDtmaWxsOnVybCgjU1ZHSURfNl8pO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQo8L3N0eWxlPgoJPGcgaWQ9IkxheWVyXzJfMl8iPgoJPGcgaWQ9IlRvaXR1X0xvZ29zIj4KCQk8ZyBpZD0iQmFkZ2VfVG9pdHUiPgoJCQk8ZyBpZD0iX0dyb3VwXyI+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTUuOSw1LjZjLTIuMSwwLTMuOS0wLjEtNi4zLTAuMWMwLDAuNiwwLDEuNCwwLDEuOHYxMC41YzAsMS4xLDAsMy4zLDAuMSw0LjFoLTVjMC4xLTEuNCwwLjItNS4xLDAuMi03di01CgkJCQkJYzAtMS4xLDAtMy0wLjEtNC41Yy0yLjQsMC00LjQsMC02LjQsMC4xYzAuMS0xLjIsMC4xLTIuNywwLjEtNGMyLjcsMC4xLDUuNCwwLjEsOC43LDAuMXM2LjEtMC4xLDguOC0wLjEKCQkJCQlDOTYsMyw5NS45LDQuMyw5NS45LDUuNnoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMDAsMjIuNmMtMy43LDAuMS02LjktMi44LTctNi41YzAtMC4yLDAtMC4zLDAtMC41YzAtNC40LDIuOS03LjcsNy4zLTcuN2MzLjctMC4xLDYuOSwyLjgsNyw2LjUKCQkJCQljMCwwLjIsMCwwLjMsMCwwLjVDMTA3LjQsMTkuMywxMDQuNSwyMi42LDEwMCwyMi42eiBNMTAwLjMsMTEuMWMtMS44LDAtMywxLjUtMyw0YzAsMywxLjIsNC4yLDIuOSw0LjJjMS45LDAsMy0xLjUsMy00CgkJCQkJQzEwMy4yLDEyLjMsMTAxLjksMTEuMSwxMDAuMywxMS4xeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExMS44LDUuOGMtMS4zLDAuMS0yLjQtMC45LTIuNS0yLjJjMCwwLDAtMC4xLDAtMC4xYzAtMS40LDEuMS0yLjQsMi41LTIuNGMwLDAsMC4xLDAsMC4xLDAKCQkJCQljMS4zLTAuMSwyLjQsMC45LDIuNSwyLjNjMCwwLDAsMCwwLDBjMCwxLjMtMS4xLDIuNC0yLjUsMi40QzExMS44LDUuOCwxMTEuOCw1LjgsMTExLjgsNS44eiBNMTA5LjMsMjIuMQoJCQkJCWMwLjEtMS42LDAuMi0zLjEsMC4yLTQuN3YtNC4xYzAtMS43LTAuMS0zLjctMC4yLTQuOWMxLDAsMy44LTAuMiw0LjctMC4zYy0wLjEsMC43LTAuMSwyLjEtMC4xLDMuMXY4LjFjMCwwLjksMCwxLjksMC4xLDIuOAoJCQkJCUwxMDkuMywyMi4xeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNS40LDIxLjdjLTEsMC41LTIuMSwwLjgtMy4yLDAuOGMtMi45LDAtNC41LTEuMi00LjUtNC44di02LjVoLTIuNGwwLjctMy4xaDEuN2wwLjMtMi44bDQtMS4zdjQuMmgzLjUKCQkJCQljLTAuMSwwLjYtMC4xLDIuMS0wLjEsMy4xSDEyMnY2YzAsMS40LDAuNSwxLjgsMS41LDEuOGMwLjcsMCwxLjQtMC4yLDIuMS0wLjZMMTI1LjQsMjEuN3oiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMzcuMiwyMi4xbC0wLjUtMi40Yy0wLjksMS43LTIuNywyLjgtNC43LDIuOWMtMywwLTQuNi0xLjgtNC42LTUuMnYtNC4yYzAtMS42LTAuMS0zLjQtMC4xLTQuOAoJCQkJCWMxLjYsMCwzLjMtMC4xLDQuNi0wLjJjLTAuMSwxLjEtMC4yLDIuMS0wLjEsMy4ydjQuOWMwLDIsMC41LDIuOSwyLjEsMi45YzEuNC0wLjEsMi42LTEuMiwyLjctMi43di0zLjNjMC0xLjYtMC4xLTMuNC0wLjItNC44CgkJCQkJYzEuNiwwLDMuMy0wLjEsNC43LTAuMmMtMC4xLDEuMS0wLjIsMi4xLTAuMiwzLjJ2NS45YzAsMS42LDAuMSwzLjIsMC4yLDQuOEwxMzcuMiwyMi4xeiBNMTM5LjIsNS40Yy0xLjMsMC0yLjMtMC4xLTMuNC0wLjFoLTMKCQkJCQljLTEuNCwwLTIuNCwwLTMuNCwwLjFjMC4xLTAuNywwLjEtMi4xLDAuMS0yLjljMS42LDAuMSwyLjgsMC4xLDUsMC4xYzEuNSwwLDMuMywwLDQuOS0wLjFDMTM5LjMsMy4zLDEzOS4yLDQuNCwxMzkuMiw1LjR6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTY1LjEsNS42Yy0yLjEsMC0zLjktMC4xLTYuMy0wLjFjMCwwLjYsMCwxLjQsMCwxLjh2MTAuNWMwLDEuMSwwLDMuMywwLjEsNC4xaC01YzAuMS0xLjQsMC4yLTUuMSwwLjItNwoJCQkJCXYtNWMwLTEuMSwwLTMtMC4xLTQuNWMtMi40LDAtNC40LDAtNi40LDAuMWMwLjEtMS4yLDAuMS0yLjcsMC4xLTRjMi43LDAuMSw1LjQsMC4xLDguNywwLjFzNi4xLTAuMSw4LjktMC4xCgkJCQkJQzE2NS4yLDMsMTY1LjEsNC4zLDE2NS4xLDUuNnoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzUuMSwxNS44bC04LDAuMmMwLjEsMi4xLDEuNCwzLjIsMy43LDMuMmMxLjgsMCwzLjYtMC42LDUuMi0xLjZsLTAuMSwzLjNjLTEuNywxLjEtMy42LDEuNi01LjYsMS42CgkJCQkJYy01LDAtNy40LTMuMi03LjQtNy4xYzAtNC40LDMtNy42LDcuNC03LjZjNC40LDAsNi4yLDMsNi4yLDYuOEwxNzUuMSwxNS44eiBNMTcyLjYsMTMuOGMtMC4yLTEuOC0wLjktMi44LTIuNS0yLjgKCQkJCQljLTEuNywwLTIuNywxLjMtMywzTDE3Mi42LDEzLjh6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjA1LjgsMTYuNmMtMC45LDIuNS0xLjQsNC0xLjksNS43bC0zLDAuM2wtNC42LTEzLjNsLTIuNyw4Yy0wLjUsMS42LTEuMiwzLjMtMS44LDUuMmgtM2wtNS4xLTE0LjcKCQkJCQljLTAuNi0xLjgtMS40LTQuMS0yLjEtNS45bDUtMC4ybDQuMSwxMy42bDIuOC04LjhjMC40LTEuMiwxLjItMy42LDEuNi00LjhsMi44LTAuM2w0LjYsMTMuN2wyLjUtOC42bDEuNC00LjdoNC44TDIwNS44LDE2LjZ6IgoJCQkJLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMjAuOSwyMi4xYzAuMS0xLjIsMC4yLTMuMiwwLjItNC45VjE0YzAtMS43LTAuNC0yLjYtMS44LTIuNmMtMS42LDAtMi45LDEuMy0zLDIuOXY1YzAsMSwwLDEuOSwwLjEsMi45CgkJCQkJaC00LjZjMC4xLTEuMiwwLjItMy4xLDAuMi00Ljh2LTExYzAtMS43LTAuMS0zLjQtMC4yLTQuNmMxLTAuMSwzLjgtMC4zLDQuNi0wLjVjLTAuMSwwLjgtMC4xLDMuMy0wLjEsMy44djYKCQkJCQljMS0xLjgsMi45LTIuOSw1LTMuMWMyLjksMCw0LjIsMS44LDQuMiw0Ljl2Ni4zYzAsMSwwLjEsMi4yLDAuMSwzSDIyMC45eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTIzOS43LDE1LjhsLTgsMC4yYzAuMSwyLjEsMS40LDMuMiwzLjcsMy4yYzEuOSwwLDMuNy0wLjYsNS4yLTEuNmwtMC4xLDMuM2MtMS43LDEuMS0zLjYsMS42LTUuNiwxLjYKCQkJCQljLTUsMC03LjQtMy4yLTcuNC03LjFjMC00LjQsMy03LjYsNy40LTcuNnM2LjIsMyw2LjIsNi44TDIzOS43LDE1Ljh6IE0yMzcuMiwxMy44Yy0wLjItMS44LTAuOS0yLjgtMi41LTIuOGMtMS43LDAtMi43LDEuMy0zLDMKCQkJCQlMMjM3LjIsMTMuOHoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNTIuMSwyMi4xYzAuMS0xLjIsMC4yLTMuMiwwLjItNC45VjE0YzAtMS43LTAuNC0yLjYtMS44LTIuNmMtMS42LDAuMS0yLjksMS4zLTMsMi45djQuOWMwLDEsMCwyLDAuMSwzCgkJCQkJSDI0M2MwLjEtMS4yLDAuMi0zLjIsMC4yLTQuOXYtNGMwLTEuNy0wLjEtMy41LTAuMi00LjhjMSwwLDMuNC0wLjMsNC4zLTAuNGwwLjIsMi45YzEtMS44LDIuOS0zLDUtMy4xYzIuOSwwLDQuMiwxLjgsNC4yLDQuOQoJCQkJCXY2LjNjMCwxLDAuMSwyLjIsMC4xLDNIMjUyLjF6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjY5LjEsMjIuMWwtMC41LTIuNGMtMC45LDEuNy0yLjcsMi44LTQuNywyLjljLTMsMC00LjUtMS44LTQuNS01LjJ2LTQuMmMwLTEuNi0wLjEtMy40LTAuMS00LjgKCQkJCQljMS42LDAsMy4zLTAuMSw0LjYtMC4yYy0wLjEsMS4xLTAuMiwyLjEtMC4xLDMuMnY0LjljMCwyLDAuNSwyLjksMi4xLDIuOWMxLjQtMC4xLDIuNi0xLjIsMi43LTIuN3YtMy4zYzAtMS42LTAuMS0zLjQtMC4yLTQuOAoJCQkJCWMxLjYsMCwzLjMtMC4xLDQuNy0wLjJjLTAuMSwxLjEtMC4yLDIuMS0wLjIsMy4ydjUuOWMwLDEuNiwwLjEsMy4yLDAuMiw0LjhMMjY5LjEsMjIuMXoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNzQuOSwxOC42YzAtMi43LDIuNC00LjYsNy4xLTQuNmMwLjMsMCwwLjcsMCwxLjEsMC4xbDAtMC40YzAuMS0xLjUtMC42LTIuMy0yLjQtMi4zCgkJCQkJYy0xLjUsMC0yLjksMC41LTQuMiwxLjNsLTAuNi0zLjJjMS43LTEsMy43LTEuNSw1LjYtMS41YzQsMCw1LjgsMS45LDUuNyw1LjVsLTAuMSw1YzAsMC44LDAuMiwxLjEsMC44LDEuMQoJCQkJCWMwLjMsMCwwLjYtMC4xLDAuOS0wLjJsLTAuMiwyLjZjLTAuNywwLjMtMS41LDAuNC0yLjMsMC41Yy0xLjQsMC0yLjYtMC42LTMtMi4zYy0wLjksMS40LTIuNSwyLjMtNC4yLDIuMwoJCQkJCUMyNzYuNSwyMi40LDI3NC45LDIxLDI3NC45LDE4LjZ6IE0yODMsMTcuM1YxNmMtMC4zLDAtMC42LTAuMS0wLjktMC4xYy0yLjMsMC0zLjIsMC45LTMuMiwyLjFjLTAuMSwwLjksMC42LDEuNiwxLjUsMS43CgkJCQkJYzAuMSwwLDAuMiwwLDAuMywwQzI4MiwxOS44LDI4Mi45LDE4LjgsMjgzLDE3LjN6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTMuMiw0Ni4yYy0xLjQtMC4xLTMtMC4xLTQuNy0wLjFzLTMuNCwwLTQuOSwwLjFjMC4xLTEsMC4xLTMuOCwwLjEtNS4ydi00LjdjMC0xLjQsMC00LjEtMC4xLTUuMQoJCQkJCWMwLjgsMCwyLjksMCwzLjYtMC4xYy0wLjEsMC42LTAuMSwyLjMtMC4xLDMuMXY4YzAsMC40LDAsMC44LDAsMS4yYzAuNSwwLDEuMSwwLDEuNywwYzEuNiwwLDMsMCw0LjQtMC4xCgkJCQkJQzkzLjMsNDQuMiw5My4yLDQ1LjEsOTMuMiw0Ni4yeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTk0LjMsNDMuNWMwLTIuMSwxLjctMy40LDUuMi0zLjRjMC4yLDAsMC41LDAsMC44LDB2LTAuM2MwLTEuMS0wLjQtMS43LTEuNy0xLjdjLTEuMSwwLTIuMiwwLjQtMy4xLDAuOQoJCQkJCWwtMC40LTIuNGMxLjMtMC43LDIuNy0xLjEsNC4yLTEuMWMyLjksMCw0LjMsMS40LDQuMiw0LjFsLTAuMSwzLjdjMCwwLjYsMC4yLDAuOCwwLjYsMC44YzAuMiwwLDAuNCwwLDAuNi0wLjFsLTAuMiwxLjkKCQkJCQljLTAuNSwwLjItMS4xLDAuMy0xLjcsMC4zYy0xLjEsMC4xLTItMC42LTIuMi0xLjdjLTAuNywxLjEtMS45LDEuNy0zLjEsMS43Qzk1LjYsNDYuNCw5NC4zLDQ1LjMsOTQuMyw0My41eiBNMTAwLjMsNDIuNnYtMQoJCQkJCWMtMC4yLDAtMC40LDAtMC43LDBjLTEuNywwLTIuNCwwLjctMi40LDEuNmMwLDAuNywwLjUsMS4yLDEuMSwxLjNjMC4xLDAsMC4xLDAsMC4yLDBjMC45LDAsMS43LTAuNywxLjctMS43CgkJCQkJQzEwMC4zLDQyLjcsMTAwLjMsNDIuNiwxMDAuMyw0Mi42TDEwMC4zLDQyLjZ6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTEyLjYsNDYuMWMwLjEtMC45LDAuMS0yLjQsMC4xLTMuNnYtMi40YzAtMS4yLTAuMy0yLTEuNC0yYy0xLjIsMC0yLjEsMS0yLjIsMi4xdjMuNmMwLDAuNywwLDEuNiwwLjEsMi4yCgkJCQkJaC0zLjRjMC4xLTAuOSwwLjEtMi40LDAuMS0zLjZ2LTIuOWMwLTEuMiwwLTIuNi0wLjEtMy41YzAuNywwLDIuNS0wLjIsMy4yLTAuM2wwLjIsMi4xYzAuOC0xLjQsMi4yLTIuMiwzLjgtMi4zCgkJCQkJYzIuMSwwLDMuMSwxLjQsMy4xLDMuNnY0LjdjMCwwLjcsMCwxLjYsMC4xLDIuMkgxMTIuNnoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjQuOSwzNi4zdi0xLjljMC0xLjIsMC0yLjUtMC4xLTMuNGMwLjgtMC4xLDIuOC0wLjMsMy40LTAuNGMtMC4xLDAuNi0wLjEsMS42LTAuMSwyLjN2OS42CgkJCQkJYzAsMS4yLDAsMi42LDAuMiwzLjVoLTMuMUwxMjUsNDVjLTAuNywwLjktMS44LDEuNC0yLjksMS40Yy0yLjgsMC00LjUtMi40LTQuNS01YzAtMy4zLDIuMS01LjgsNS4xLTUuOAoJCQkJCUMxMjMuNCwzNS42LDEyNC4yLDM1LjgsMTI0LjksMzYuM3ogTTEyMC44LDQxLjFjMCwyLDEsMywyLjMsM2MwLjcsMCwxLjQtMC40LDEuOC0xdi00LjVjLTAuNS0wLjQtMS4xLTAuNy0xLjctMC42CgkJCQkJQzEyMS42LDM4LDEyMC44LDM5LjQsMTIwLjgsNDEuMXoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMzUuMyw0Ni4xYzAuMS0xLDAuMi0zLjcsMC4yLTUuMXYtNC43YzAtMS40LDAtNC4xLTAuMi01LjFjMC44LDAsMywwLDMuNy0wLjFjLTAuMSwwLjYtMC4xLDIuMy0wLjEsMy4xCgkJCQkJVjQzYzAsMC44LDAsMi41LDAuMSwzLjFIMTM1LjN6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQ4LjMsNDYuMWMwLjEtMC45LDAuMi0yLjQsMC4yLTMuNnYtMi40YzAtMS4yLTAuMy0yLTEuNC0yYy0xLjIsMC0yLjEsMS0yLjIsMi4xdjMuNmMwLDAuNywwLDEuNiwwLjEsMi4yCgkJCQkJaC0zLjRjMC4xLTAuOSwwLjEtMi40LDAuMS0zLjZ2LTIuOWMwLTEuMiwwLTIuNi0wLjEtMy41YzAuNywwLDIuNS0wLjIsMy4yLTAuM2wwLjIsMi4xYzAuOC0xLjMsMi4yLTIuMiwzLjctMi4zCgkJCQkJYzIuMSwwLDMuMSwxLjQsMy4xLDMuNnY0LjdjMCwwLjcsMCwxLjYsMC4xLDIuMkgxNDguM3oiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjAuNCwzMy4zYy0wLjMtMC4xLTAuNi0wLjItMS0wLjJjLTEuMSwwLTEuNywwLjctMS43LDIuMXYwLjdoMi41Yy0wLjEsMC41LTAuMSwxLjUtMC4xLDIuM2gtMi40djUuOQoJCQkJCWMwLDAuNywwLDEuNCwwLjEsMi4xaC0zLjRjMC4xLTEuMiwwLjItMi4zLDAuMi0zLjV2LTQuNWgtMS44bDAuNS0yLjNoMS4zdi0wLjVjMC0yLjksMS41LTQuNyw0LjMtNC43YzAuNSwwLDAuOSwwLjEsMS40LDAuMgoJCQkJCUwxNjAuNCwzMy4zeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE2NS45LDQ2LjVjLTIuOCwwLjEtNS4xLTIuMS01LjEtNC44YzAtMC4xLDAtMC4yLDAtMC4zYzAtMy4zLDIuMi01LjcsNS40LTUuN2MyLjgtMC4xLDUuMSwyLDUuMiw0LjgKCQkJCQljMCwwLjEsMCwwLjMsMCwwLjRDMTcxLjMsNDQsMTY5LjIsNDYuNSwxNjUuOSw0Ni41eiBNMTY2LjEsMzhjLTEuMywwLTIuMiwxLjEtMi4yLDNjMCwyLjIsMC45LDMuMSwyLjEsMy4xYzEuNCwwLDIuMi0xLjEsMi4yLTMKCQkJCQlDMTY4LjIsMzguOSwxNjcuMywzOCwxNjYuMSwzOHoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzkuNiwzOC43Yy0xLjYtMC4yLTMuNCwwLjMtMy40LDIuMXYzYzAsMC43LDAsMS42LDAuMSwyLjJoLTMuNGMwLjEtMS4yLDAuMS0yLjQsMC4xLTMuNnYtMy4xCgkJCQkJYzAtMS4xLDAtMi4yLTAuMi0zLjJjMS4xLTAuMSwyLjEtMC4yLDMuMi0wLjRsMC4yLDIuNGMwLjYtMS41LDIuMS0yLjQsMy42LTIuNUwxNzkuNiwzOC43eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE5My44LDQ2LjFjMC4xLTEuMiwwLjEtMi40LDAuMS0zLjZ2LTIuNGMwLTEuMi0wLjMtMi0xLjMtMmMtMS4xLDAtMiwwLjktMiwxLjljMCwwLDAsMCwwLDB2My44CgkJCQkJYzAsMC43LDAsMS42LDAuMSwyLjJoLTMuNGMwLjEtMC45LDAuMS0yLjQsMC4xLTMuNnYtMi4zYzAtMS4yLTAuMi0yLTEuMi0yYy0xLjEsMC0yLDAuOS0yLDJ2My44YzAsMC43LDAsMS41LDAuMSwyLjJoLTMuNAoJCQkJCWMwLjEtMC45LDAuMS0yLjQsMC4xLTMuNnYtMi45YzAtMS4yLDAtMi42LTAuMS0zLjVjMC43LDAsMi41LTAuMiwzLjItMC4zbDAuMiwxLjljMC43LTEuMiwyLTIsMy40LTIuMWMxLjQtMC4xLDIuNiwwLjgsMi45LDIuMQoJCQkJCWMwLjctMS4zLDIuMS0yLjEsMy41LTIuMWMyLjEsMCwzLjEsMS40LDMuMSwzLjZ2NC43YzAsMC43LDAsMS41LDAuMSwyLjJMMTkzLjgsNDYuMXoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOTguNyw0My41YzAtMi4xLDEuNy0zLjQsNS4yLTMuNGMwLjIsMCwwLjUsMCwwLjgsMHYtMC4zYzAtMS4xLTAuNC0xLjctMS43LTEuN2MtMS4xLDAtMi4yLDAuNC0zLjEsMC45CgkJCQkJbC0wLjQtMi40YzEuMy0wLjcsMi43LTEuMSw0LjItMS4xYzIuOSwwLDQuMywxLjQsNC4yLDQuMWwtMC4xLDMuN2MwLDAuNiwwLjIsMC44LDAuNiwwLjhjMC4yLDAsMC40LDAsMC42LTAuMWwtMC4xLDEuOQoJCQkJCWMtMC41LDAuMi0xLjEsMC4zLTEuNywwLjNjLTEuMSwwLjEtMi0wLjYtMi4yLTEuN2MtMC43LDEuMS0xLjksMS43LTMuMSwxLjdDMTk5LjksNDYuNCwxOTguNyw0NS4zLDE5OC43LDQzLjV6IE0yMDQuNyw0Mi42di0xCgkJCQkJYy0wLjIsMC0wLjQsMC0wLjcsMGMtMS43LDAtMi40LDAuNy0yLjQsMS42YzAsMC43LDAuNSwxLjIsMS4xLDEuM2MwLjEsMCwwLjEsMCwwLjIsMGMxLDAsMS43LTAuNywxLjgtMS43CgkJCQkJQzIwNC43LDQyLjcsMjA0LjcsNDIuNiwyMDQuNyw0Mi42TDIwNC43LDQyLjZ6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjE2LjUsNDUuOGMtMC43LDAuNC0xLjUsMC42LTIuNCwwLjZjLTIuMSwwLTMuNC0wLjktMy40LTMuNXYtNC44SDIwOWwwLjUtMi4zaDEuM2wwLjItMi4xbDMtMXYzLjFoMi42CgkJCQkJYzAsMC41LTAuMSwxLjUtMC4xLDIuM0gyMTR2NC40YzAsMS4xLDAuNCwxLjMsMS4xLDEuM2MwLjUsMCwxLjEtMC4yLDEuNS0wLjVMMjE2LjUsNDUuOHoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTkuOSwzNC4xYy0xLDAuMS0xLjgtMC42LTEuOC0xLjZjMCwwLDAsMCwwLTAuMWMwLTEsMC44LTEuOCwxLjgtMS44YzAsMCwwLDAsMC4xLDBjMSwwLDEuOCwwLjcsMS44LDEuNwoJCQkJCWMwLDAsMCwwLDAsMEMyMjEuOCwzMy4zLDIyMSwzNC4xLDIxOS45LDM0LjFDMjIwLDM0LjEsMjE5LjksMzQuMSwyMTkuOSwzNC4xeiBNMjE4LjEsNDYuMWMwLjEtMS4yLDAuMi0yLjMsMC4yLTMuNXYtMwoJCQkJCWMwLTEuMiwwLTIuNC0wLjItMy42YzAuOCwwLDIuOC0wLjEsMy40LTAuMmMtMC4xLDAuNS0wLjEsMS41LTAuMSwyLjN2NmMwLDAuNywwLDEuNCwwLjEsMi4xTDIxOC4xLDQ2LjF6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjI4LjIsNDYuNWMtMi44LDAuMS01LjEtMi4xLTUuMS00LjhjMC0wLjEsMC0wLjIsMC0wLjNjMC0zLjMsMi4yLTUuNyw1LjQtNS43YzIuNy0wLjEsNS4xLDIuMSw1LjEsNC44CgkJCQkJYzAsMC4xLDAsMC4yLDAsMC40QzIzMy42LDQ0LDIzMS41LDQ2LjUsMjI4LjIsNDYuNXogTTIyOC40LDM4Yy0xLjMsMC0yLjIsMS4xLTIuMiwzYzAsMi4yLDAuOSwzLjEsMi4xLDMuMWMxLjQsMCwyLjItMS4xLDIuMi0zCgkJCQkJQzIzMC41LDM4LjksMjI5LjYsMzgsMjI4LjQsMzh6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQyLDQ2LjFjMC4xLTEuMiwwLjItMi40LDAuMi0zLjZ2LTIuNGMwLTEuMi0wLjMtMi0xLjMtMmMtMS4yLDAtMi4xLDEtMi4yLDIuMXYzLjZjMCwwLjcsMCwxLjUsMC4xLDIuMgoJCQkJCWgtMy40YzAuMS0wLjksMC4xLTIuNCwwLjEtMy42di0yLjljMC0xLjIsMC0yLjYtMC4xLTMuNWMwLjcsMCwyLjUtMC4yLDMuMi0wLjNsMC4yLDIuMWMwLjgtMS4zLDIuMi0yLjIsMy43LTIuMwoJCQkJCWMyLjEsMCwzLjEsMS40LDMuMSwzLjZ2NC43YzAsMC43LDAsMS42LDAuMSwyLjJIMjQyeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTgzLjcsNjIuMmwwLTQuOWMwLTEuNCwwLTQtMC4xLTVsMi4xLTAuMmw4LDkuNnYtNC4yYzAtMS40LDAtNC4xLTAuMi01LjFjMC44LDAsMi44LDAsMy41LTAuMQoJCQkJCWMtMC4xLDAuNi0wLjEsMi4zLTAuMSwzLjFMOTcsNjQuNGMwLDAuOCwwLDIuNSwwLDMuMUw5NSw2Ny43bC04LTkuNnY2LjJjMCwwLjgsMCwyLjUsMC4xLDMuMWgtMy41CgkJCQkJQzgzLjYsNjYuMyw4My43LDYzLjYsODMuNyw2Mi4yeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwOC4yLDYyLjhsLTUuOSwwLjJjMC4xLDEuNiwxLDIuNCwyLjcsMi40YzEuNCwwLDIuNy0wLjQsMy44LTEuMmwwLDIuNGMtMS4yLDAuOC0yLjcsMS4yLTQuMSwxLjIKCQkJCQljLTMuNywwLTUuNC0yLjQtNS40LTUuMmMwLTMuMywyLjItNS42LDUuNC01LjZjMy4yLDAsNC42LDIuMiw0LjYsNUwxMDguMiw2Mi44eiBNMTA2LjMsNjEuMmMtMC4xLTEuNC0wLjctMi4xLTEuOC0yLjEKCQkJCQlzLTIuMSwwLjktMi4yLDIuMkwxMDYuMyw2MS4yeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExMS45LDY0bC0xLTIuN2MtMC41LTEuMy0xLjEtMy0xLjUtMy45YzAuMywwLDIuOC0wLjIsMy4yLTAuMmwxLjksNmwwLjgtMi4zbDEuMi0zLjZsMi4xLTAuMWwyLjEsNgoJCQkJCWwwLjgtMi4zYzAuMS0wLjQsMC45LTMsMS4xLTMuNmMxLjIsMCwyLjEsMCwzLjEtMC4xbC0zLjgsMTAuM2wtMi4yLDAuMWMtMC4zLTEuMS0wLjgtMi40LTEuMy0zLjhsLTAuOC0yLjFsLTIuMSw1LjlsLTIuMywwLjEKCQkJCQlDMTEyLjgsNjYuNSwxMTIuNCw2NS4zLDExMS45LDY0eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE0My40LDUzLjhsLTgsMTAuOWgyLjZjMS44LDAsMy45LDAsNS4xLTAuMWMtMC4xLDAuOS0wLjIsMS44LTAuMiwyLjhjLTEuMy0wLjEtMy43LTAuMS01LjgtMC4xCgkJCQkJYy0yLjQsMC00LjcsMC02LjMsMC4xbC0wLjMtMS42bDgtMTAuOGgtMi4zYy0xLjksMC0zLjYsMC01LDBjMC4xLTAuOCwwLjItMS45LDAuMy0yLjhjMi4xLDAuMSwzLDAuMSw1LjgsMC4xCgkJCQkJYzIuNywwLDQuNCwwLDUuOC0wLjFMMTQzLjQsNTMuOHoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTMuMiw2Mi44bC01LjksMC4yYzAuMSwxLjYsMSwyLjQsMi43LDIuNGMxLjQsMCwyLjctMC40LDMuOC0xLjJsLTAuMSwyLjRjLTEuMiwwLjgtMi43LDEuMi00LjEsMS4yCgkJCQkJYy0zLjcsMC01LjQtMi40LTUuNC01LjJjMC0zLjMsMi4yLTUuNiw1LjQtNS42YzMuMiwwLDQuNiwyLjIsNC42LDVMMTUzLjIsNjIuOHogTTE1MS40LDYxLjJjLTAuMS0xLjQtMC43LTIuMS0xLjgtMi4xCgkJCQkJcy0yLjEsMC45LTIuMiwyLjJMMTUxLjQsNjEuMnoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTUuMSw2NC44YzAtMi4xLDEuNy0zLjQsNS4yLTMuNGMwLjIsMCwwLjUsMCwwLjgsMHYtMC4zYzAtMS4xLTAuNC0xLjctMS43LTEuN2MtMS4xLDAtMi4yLDAuNC0zLjEsMC45CgkJCQkJbC0wLjQtMi40YzEuMy0wLjcsMi43LTEuMSw0LjItMS4xYzIuOSwwLDQuMywxLjQsNC4yLDQuMWwtMC4xLDMuN2MwLDAuNiwwLjIsMC44LDAuNiwwLjhjMC4yLDAsMC40LDAsMC42LTAuMWwtMC4yLDEuOQoJCQkJCWMtMC41LDAuMi0xLjEsMC4zLTEuNywwLjNjLTEuMSwwLjEtMi0wLjYtMi4yLTEuN2MtMC43LDEuMS0xLjksMS43LTMuMSwxLjdDMTU2LjMsNjcuNiwxNTUuMSw2Ni42LDE1NS4xLDY0Ljh6IE0xNjEuMSw2My45di0xCgkJCQkJYy0wLjIsMC0wLjUsMC0wLjcsMGMtMS43LDAtMi40LDAuNy0yLjQsMS42YzAsMC43LDAuNSwxLjIsMS4xLDEuM2MwLjEsMCwwLjEsMCwwLjIsMGMxLDAsMS43LTAuNywxLjgtMS43CgkJCQkJQzE2MS4xLDYzLjksMTYxLjEsNjMuOSwxNjEuMSw2My45TDE2MS4xLDYzLjl6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTY2LjYsNjcuNGMwLjEtMC45LDAuMS0yLjMsMC4xLTMuNnYtOC4xYzAtMS4yLDAtMi41LTAuMS0zLjRjMC43LDAsMi44LTAuMywzLjQtMC40CgkJCQkJYy0wLjEsMC42LTAuMSwyLjQtMC4xLDIuOHYxMC41YzAsMC43LDAsMS42LDAuMSwyLjFIMTY2LjZ6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTcxLjUsNjQuOGMwLTIuMSwxLjctMy40LDUuMi0zLjRjMC4yLDAsMC41LDAsMC44LDB2LTAuM2MwLTEuMS0wLjQtMS43LTEuNy0xLjdjLTEuMSwwLTIuMiwwLjQtMy4xLDAuOQoJCQkJCWwtMC40LTIuNGMxLjMtMC43LDIuNy0xLjEsNC4yLTEuMWMyLjksMCw0LjMsMS40LDQuMiw0LjFsLTAuMSwzLjdjMCwwLjYsMC4yLDAuOCwwLjYsMC44YzAuMiwwLDAuNCwwLDAuNi0wLjFsLTAuMSwxLjkKCQkJCQljLTAuNSwwLjItMS4xLDAuMy0xLjcsMC4zYy0xLDAuMS0yLTAuNi0yLjItMS43Yy0wLjcsMS4xLTEuOCwxLjctMy4xLDEuN0MxNzIuNyw2Ny42LDE3MS41LDY2LjYsMTcxLjUsNjQuOHogTTE3Ny40LDYzLjl2LTEKCQkJCQljLTAuMiwwLTAuNCwwLTAuNywwYy0xLjcsMC0yLjQsMC43LTIuNCwxLjZjMCwwLjcsMC41LDEuMiwxLjEsMS4zYzAuMSwwLDAuMSwwLDAuMiwwYzAuOSwwLDEuNy0wLjcsMS44LTEuNwoJCQkJCUMxNzcuNCw2NCwxNzcuNCw2My45LDE3Ny40LDYzLjlMMTc3LjQsNjMuOXoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xODkuNyw2Ny40YzAuMS0xLjIsMC4yLTIuNCwwLjItMy42di0yLjRjMC0xLjItMC4zLTItMS4zLTJjLTEuMiwwLTIuMSwxLTIuMiwyLjF2My42YzAsMC43LDAsMS41LDAuMSwyLjIKCQkJCQlIMTgzYzAuMS0wLjksMC4xLTIuNCwwLjEtMy42di0yLjljMC0xLjIsMC0yLjYtMC4xLTMuNWMwLjcsMCwyLjUtMC4yLDMuMi0wLjNsMC4xLDIuMWMwLjgtMS4zLDIuMi0yLjIsMy43LTIuMwoJCQkJCWMyLjEsMCwzLjEsMS40LDMuMSwzLjZ2NC43YzAsMC43LDAsMS42LDAuMSwyLjJMMTg5LjcsNjcuNHoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMDIsNTcuNXYtMS45YzAtMS4yLDAtMi41LTAuMS0zLjRjMC44LTAuMSwyLjgtMC4zLDMuNC0wLjRjLTAuMSwwLjYtMC4xLDEuNi0wLjEsMi4zdjkuNgoJCQkJCWMwLDEuMiwwLDIuNCwwLjIsMy41aC0zLjFsLTAuMS0xLjFjLTAuNywwLjktMS44LDEuNC0yLjksMS40Yy0yLjgsMC00LjUtMi40LTQuNS01YzAtMy4zLDIuMS01LjgsNS4xLTUuOAoJCQkJCUMyMDAuNSw1Ni44LDIwMS4zLDU3LjEsMjAyLDU3LjV6IE0xOTcuOSw2Mi40YzAsMi4xLDEsMywyLjMsM2MwLjcsMCwxLjQtMC40LDEuOC0xdi00LjVjLTAuNS0wLjQtMS4xLTAuNy0xLjctMC42CgkJCQkJQzE5OC44LDU5LjIsMTk3LjksNjAuNywxOTcuOSw2Mi40TDE5Ny45LDYyLjR6Ii8+CgkJCTwvZz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTczLDE1LjFjLTAuNS0xLTEuNS0xLjYtMi42LTEuN2wtMS4xLTAuMWMwLjEtMC4xLDAuMS0wLjIsMC4yLTAuNGMwLjktMS41LDAuNC0zLjQtMS4xLTQuNAoJCQkJYy0wLjQtMC4zLTAuOS0wLjQtMS40LTAuNGgtMC4yaC0wLjFoLTAuMWgtMC4yaC0wLjFMNjQuOCw4YzAtMS43LTEuMy0zLjEtMi45LTMuMmwtMC42LDBoLTAuMUM1NS40LDQuMyw0OS40LDQsNDMuNiw0CgkJCQljLTEuMywwLTMuMywwLTQuNiwwLjFsLTAuMy0wLjNjLTAuMy0wLjQtMC42LTAuOC0wLjktMS4yYy0wLjMtMC40LTAuNy0wLjgtMS4yLTFjLTAuNS0wLjMtMS0wLjQtMS42LTAuNEgzNWgtMC43bDAsMGgtMC41bDAsMAoJCQkJYy0yLjQsMC4xLTQuNiwwLjItNi45LDAuNGgtMC4yYy0yLjIsMC4yLTQuMSwwLjMtNS45LDAuNWMtMC43LDAuMS0xLjQsMC40LTEuOSwwLjljLTMsMy01LjksNy41LTguOSwxMy4ydjAuMQoJCQkJYy0wLjEsMC4xLTAuMSwwLjMtMC4yLDAuNGMtMS4xLDIuMi0yLjIsNC41LTMuMiw2LjljMCwwLDAsMCwwLDAuMUw2LjQsMjRjLTAuOSwyLjItMS44LDQuNS0yLjcsNi45bDAsMC4xbC0wLjEsMC4zbC0wLjEsMC4yCgkJCQljMCwwLDAsMC4xLDAsMC4xQzIuNywzMy44LDIsMzYsMS4zLDM4LjNjMCwwLDAsMC4xLDAsMC4xbC0wLjEsMC4zbDAsMC4xYzAsMCwwLDAuMSwwLDAuMWMtMC45LDIuOC0xLjYsNS41LTIuMSw4bDAsMFY0N3YwbDAsMC4yCgkJCQlsLTAuMSwwLjNjLTAuMywxLjcsMC44LDMuNCwyLjUsMy43YzAuMiwwLDAuNCwwLjEsMC42LDAuMWgwLjFjLTAuMSwwLjQtMC4yLDAuOC0wLjMsMS4ydjAuMWwtMC4xLDAuNmMtMC40LDEuNywwLjcsMy40LDIuNSwzLjgKCQkJCUM0LjYsNTcsNC44LDU3LDUsNTdoMC4xYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMmMwLDAsMCwwLjEsMCwwLjF2MC4xbDAsMHYwLjFjMCwwLDAsMC4xLDAsMC4xdjAuMmMtMC40LDEuNywwLjcsMy40LDIuNSwzLjgKCQkJCWMwLjIsMCwwLjMsMC4xLDAuNSwwLjFIOGMtMC4xLDAuMy0wLjEsMC43LTAuMiwxYy0wLjMsMS43LDAuOCwzLjQsMi41LDMuN2MwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMC4yLDAsMC4zLDAsMC41LDAKCQkJCWM2LjMtMC44LDEyLjYtMS4yLDE4LjktMS4yYzguMywwLDE2LjYsMC41LDI0LjgsMS41YzAuMSwwLDAuMywwLDAuNCwwYzEuNiwwLDIuOS0xLjEsMy4xLTIuN2MyLjItMTQuNyw3LjEtMzQuNywxNC40LTQ3CgkJCQlDNzMuNSwxNy4zLDczLjUsMTYuMSw3MywxNS4xeiIvPgoKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNS40MDE4IiB5MT0iNDYuMjE0MiIgeDI9IjY3LjUxNzQiIHkyPSI0LjA5MTciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA3MikiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzczQzhFMSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzAwNzE5OSIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzAuMiwxNi44QzU1LjcsMTUuNiw0MiwxNS45LDMyLjMsMTdjLTkuMSw5LjMtMTguNSwzMi4xLTIxLjYsNDcuOEMyMSw2My4zLDM4LjEsNjMsNTUuNCw2NS4yCgkJCQlDNTcuNSw1MC44LDYyLjUsMjkuOSw3MC4yLDE2Ljh6Ii8+CgoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjIyLjE2NTQiIHkxPSI1MS4zNDE5IiB4Mj0iNjMuODM1IiB5Mj0iOS42NzIzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNzIpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiM3NUNCQzciLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDg3ODIiLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTY2LjYsMTEuNWMtMTQuNS0xLjItMjguMS0wLjktMzcuOSwwLjNjLTkuMSw5LjMtMTcuOSwzMi4zLTIxLDQ3LjljMTAuNC0xLjUsMjUuOS0yLDQyLjUtMC41CgkJCQlDNTMsNDIuOSw1OC40LDI1LjMsNjYuNiwxMS41eiIvPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNy42LDU5LjlsMC4xLTAuNmMxMS40LTEuNywyNy4xLTEuOSw0Mi4yLTAuNWMzLjItMTguMiw4LjktMzQuOSwxNi4zLTQ3LjRsMC42LDAKCQkJCUM1OS40LDI0LDUzLjUsNDEuMSw1MC40LDU5LjNsMCwwLjNoLTAuMkMzNSw1OC4xLDE5LDU4LjMsNy42LDU5Ljl6Ii8+CgoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzNfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE4LjcwOTQiIHkxPSI1NS4zMzA2IiB4Mj0iNTguNjkxMSIgeTI9IjE1LjM1NTgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA3MikiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzlERDE5QSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC41IiBzdHlsZT0ic3RvcC1jb2xvcjojMDZBMjRBIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik00NS42LDMyLjRsMS41LTRsNy4xLTguMWMwLjMtMC4xLDAuNi0wLjEsMC45LTAuMUM1Ni45LDE2LDU5LDEyLDYxLjMsOC4xYy0xMy45LTEuMi0yNy0wLjktMzYuNCwwLjIKCQkJCUMxNi4zLDE3LjEsNy43LDM5LjEsNC44LDUzLjljNS40LTAuNywxMC44LTEuMiwxNi4yLTEuM2MtMC4zLTAuMi0wLjEtMS40LTAuMS0xLjVjMC40LTEuNiwxLjUtMi44LDMtNC4xYzEuNS0xLjMsMC44LTIuMSwyLTIuNgoJCQkJYzIuNS0xLjEsNC45LTIuNSw3LjEtNC4xYzIuOC0yLjEsMy44LTkuMiwzLjktOC43YzAuMSwwLjUsMS4xLDAuMywxLjEsMC43YzAsMC40LDAuMywxLjIsMC41LDEuM3MxLTIuMSwyLjktMi4yCgkJCQljMS4yLDAuMSwyLjQsMC41LDMuMywxLjNjMC4xLDAsMC44LTAuMSwwLjgtMC4xTDQ1LjYsMzIuNHoiLz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU0LjksMjEuMWwtMC41LTAuM2wwLjQtMC43YzEuOC00LjEsMy45LTguMiw2LjItMTJsMC42LDBjLTIuNCwzLjktNC41LDgtNi4zLDEyLjJMNTQuOSwyMS4xeiIvPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzYuOCw3LjFjLTAuMiwwLjEsMC4xLDAuMiwwLjUsMC43YzAuNSwwLjYsMC45LDEuMywxLjIsMi4xYzAsMC40LTAuNSwwLjIsMC4xLDAuOGMwLjUsMC42LDIuMywzLjIsMi41LDMuNwoJCQkJczAuNSwwLjMsMC41LDAuMWMwLTAuMywwLjMsMC4yLDAuNCwwLjVjMCwwLjItMC4yLDAuMS0wLjIsMC4yczAuNiwwLjgsMSwyLjFjMC41LDEuNCwxLDIuMSwwLjksMy41Yy0wLjEsMS4zLTAuNCwzLjMtMS40LDMuOAoJCQkJYy0xLDAuNS0xLjksMC42LTEuOCwxLjZjMC4xLDEsMS4xLDEuMSwxLjgsMS42YzAuNywwLjUsMS44LDAuMywyLjIsMS4zcy0wLjEsMi43LTAuOCwzLjRzLTAuOSwxLjEtMC42LDEuNAoJCQkJYzAuMywwLjMsMC42LDAuMywwLjksMC4yczAuNSwwLjEsMC41LDAuNXMwLjIsMC41LDEuMy0wLjJzMS42LTIuMSwyLjUtMy4xYzAuOC0xLDEuNC0yLjEsMi0zLjJjMC4xLTAuMiwwLjEtMC4zLTAuMy0wLjQKCQkJCWMtMC40LTAuMS0wLjUtMC41LTAuNC0wLjljMCwwLDAtMC4xLDAtMC4xYzAuNC0wLjksMS4yLTEsMS45LTEuMmMwLjQtMC4xLDAuNy0wLjEsMS4xLDBjMC4zLDAuMywwLjEsMC44LDAuMiwwLjcKCQkJCWMwLjItMC4yLDAuMy0wLjQsMC40LTAuN2MwLTAuMSwwLTAuMS0wLjEtMC4yYy0wLjEsMC0wLjMtMC4zLTAuMS0wLjljMC4zLTAuOCwxLjItMC41LDEuNC0xLjljMC4zLTEuMywxLTIuMSwwLjYtMi42CgkJCQljLTAuNC0wLjUtMS4yLTAuMy0xLjktMC4xYy0wLjYsMC4zLTEuNCwxLjYtMi4zLDEuM2MtMC45LTAuMy0zLTAuOS0zLjMtMS41Yy0wLjQtMS4xLTAuNy0yLjItMC45LTMuM2MtMC4xLTAuOC0wLjctMC41LTEtMC45CgkJCQljLTAuMy0wLjQtMC41LDAuMy0wLjQsMWMwLjEsMC43LDAuOCwxLjQsMC4zLDEuN3MtMC44LTEtMS40LTEuM3MtMC45LTAuNi0wLjgtMS45YzAuMS0xLjMtMS4xLTEuNS0wLjktMi4yCgkJCQljMC4yLTAuNywwLjQtMS40LTEuMS0yLjRjLTEuNS0xLTIuMS0wLjgtMi42LTEuM2MtMC41LTAuNS0xLTAuOC0xLTEuM3MwLjQtMC43LTAuNC0wLjVDMzcuMSw3LjEsMzcsNywzNi44LDcuMXoiLz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTQxLjIsMzYuMmMwLjMtMC4zLDAuNS0wLjcsMC42LTEuMWMwLjEtMC4yLTAuNy0wLjItMC43LTAuN2MwLTAuNiwwLjQtMS4xLDAuNC0xLjRjMC0wLjItMC4yLTAuMS0wLjMtMC4xCgkJCQljLTAuMSwwLTAuMy0wLjEtMC4zLTAuMmMtMC4xLTAuMy0wLjQtMC4zLTEtMC4xYy0wLjYsMC4yLTEuMiwxLTEuNCwwLjljLTAuMiwwLTAuNS0wLjktMC41LTEuM3MtMS4xLTAuMi0xLTAuOAoJCQkJYzAtMC4yLDAuMS0wLjQsMC4yLTAuNWMwLDAsMC4xLTAuMSwwLTAuMmMtMC44LTAuMS0xLjQsMC44LTEuOCwxLjJDMzUsMzIuMywzNiwzMy43LDM1LDM0LjVjLTEsMC44LTEuNCwwLjYtMS41LDEKCQkJCWMtMC4zLDItMS4zLDMuOC0yLjksNC45Yy0yLjcsMi4yLTQuMiwzLjUtNS40LDRzLTEuNCwyLjEtMi44LDMuNGMtMS40LDEuMy0yLjMsNC4yLTEuNSw1YzAuNiwwLjUsMS40LDAuNywyLjEsMC40CgkJCQljMC40LTAuMSwwLjgsMCwxLjEsMC4zYzAuMiwwLjMsMC45LTAuMSwxLjMsMC4zYzAuNiwwLjQsMS40LDAuNiwyLjEsMC41YzEtMC4xLDIuNy0wLjksNC4xLTMuMWMxLjQtMi4zLDEuMi00LjMsMS41LTUuMQoJCQkJYzAuNC0xLjEsMS4zLTIsMi41LTIuNGMxLjItMC4zLDEuNC0wLjUsMS44LTAuM3MxLjMsMC4zLDEuMi0wLjRzLTEuMS0wLjUtMS4xLTEuMWMwLTAuNi0wLjItMSwwLjYtMS40YzAuOC0wLjMsMS4yLTEuNCwxLjctMi4zCgkJCQlDNDAuMSwzNy4zLDQwLjcsMzcsNDEuMiwzNi4yeiIvPgoKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC4yMzUiIHkxPSI1NC4xODQzIiB4Mj0iNDAuNDI1NCIgeTI9IjIzLjk4NyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDcyKSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojOUREMTlBIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDZBMjRBIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik00NC41LDI4LjljLTAuMS0wLjEtMC4yLTAuMy0wLjMtMC40Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMtMC41LTAuMy0xLjItMC4zLTEuNi0wLjcKCQkJCUM0MS42LDI3LDQwLjYsMjcsNDAuNSwyNnMwLjgtMS4xLDEuOC0xLjZjMS0wLjUsMS4zLTIuNCwxLjQtMy44YzAuMS0xLjMtMC40LTIuMS0wLjktMy41Yy0wLjUtMS4yLTEtMS45LTEtMi4xczAuMiwwLDAuMi0wLjIKCQkJCWMtMC4xLTAuMy0wLjQtMC42LTAuNC0wLjVzLTAuMywwLjQtMC41LTAuMWMtMC4zLTAuNC0yLjEtMy4xLTIuNS0zLjdzLTAuMS0wLjQtMC4xLTAuOGMtMC4zLTAuOC0wLjctMS41LTEuMi0yLjEKCQkJCWMtMC4xLTAuMi0wLjMtMC4zLTAuNC0wLjVsMCwwYy0wLjEsMC0wLjEsMCwwLDBjLTAuMS0wLjEtMC4xLTAuMS0wLjEtMC4yYy0wLjQtMC45LTAuOS0xLjctMS41LTIuNWMtMC4xLTAuMS0wLjItMC4yLTAuNC0wLjMKCQkJCWMtNC45LDAuMS0xMC4yLDAuNS0xNCwwLjlDMTIuOCwxMy42LDQuOCwzMy43LDIsNDcuOWM0LjItMC42LDEzLjEtMS4zLDE5LjItMS40aDAuOGwwLjgsMGgwLjljMC41LTAuOSwwLjktMS42LDEuNi0xLjkKCQkJCWMxLjEtMC41LDIuNy0xLjgsNS40LTRjMS42LTEuMiwyLjctMywyLjktNC45YzAuMS0wLjQsMC41LTAuMiwxLjUtMWMxLTAuOCwwLTIuMywwLjQtMi43YzAuNC0wLjQsMS0xLjMsMS44LTEuMgoJCQkJYzAuMSwwLDAsMC4xLDAsMC4yYy0wLjEsMC4yLTAuMiwwLjMtMC4yLDAuNWMwLDAuNSwxLDAuMywxLDAuOGMwLDAuNCwwLjMsMS4zLDAuNSwxLjNzMC43LTAuNywxLjQtMC45bDAuMi0wLjFsMCwwCgkJCQljMC4xLDAsMC4yLTAuMSwwLjMtMC4xbDAsMGMwLjYsMCwxLjIsMC4xLDEuOCwwLjRjMC4zLDAuMiwwLjUsMC40LDAuNywwLjdjMC0wLjIsMC4yLTAuNiwwLjctMS4xQzQ0LjQsMzEuNiw0NC45LDI5LjgsNDQuNSwyOC45CgkJCQl6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMC42LDUyLjRjLTUuMywwLjEtMTAuNSwwLjYtMTUuOCwxLjNsLTAuMSwwLjZjNS40LTAuNywxMC44LTEuMSwxNi4zLTEuM2MwLDAtMC4xLTAuMS0wLjEtMC4xCgkJCQlDMjAuOCw1Mi43LDIwLjcsNTIuNSwyMC42LDUyLjR6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMy42LDQ2LjRoLTAuOWwtMC44LDBoLTAuOGMtNi4xLDAuMS0xNSwwLjgtMTkuMiwxLjR2MC4xdjAuMmwtMC4xLDAuM2M0LjEtMC42LDEzLjItMS4zLDE5LjMtMS40SDIybDEuMiwwCgkJCQljMC4xLTAuMSwwLjItMC4yLDAuMy0wLjRsMCwwTDIzLjYsNDYuNEwyMy42LDQ2LjR6Ii8+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNC4zLDU0LjVjLTAuNS0wLjItMC4zLDAuMy0wLjMsMC43YzAsMC40LTAuMiwwLjMtMC4zLDAuN2MtMC4xLDAuMy0wLjIsMC43LTAuMSwwLjlzMC4yLDAuMiwwLjUtMC4xCgkJCQljMC4zLTAuMywwLjMtMC4zLDAuNy0wLjNzMC42LTAuMSwwLjYtMC42QzI1LjIsNTUuMSwyNC44LDU0LjcsMjQuMyw1NC41eiIvPgoKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF81XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMy45ODAyIiB5MT0iNjAuMzg1MyIgeDI9IjMwLjQ0MDkiIHkyPSIzMC4wNzgzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNzIpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4xIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGNsYXNzPSJzdDUiIGQ9Ik03LjUsNDcuM2gwLjRjMC43LTIuNywxLjMtNS4zLDIuMS03LjdjMS45LTAuMSw0LjItMC4yLDYuNi0wLjNjLTAuNywyLjQtMS40LDQuOS0yLjEsNy42SDE1CgkJCQljMC43LTIuNywxLjMtNS4yLDIuMS03LjVjMi4xLTAuMSw0LjMtMC4yLDYuNi0wLjJjLTAuNywyLjQtMS40LDQuOS0yLjEsNy41aDAuMkgyMmMwLjYtMi42LDEuMy01LjEsMi4xLTcuNWMyLjIsMCw0LjQsMCw2LjYsMAoJCQkJYy0wLjIsMC42LTAuNCwxLjItMC41LDEuOGMwLjEtMC4xLDAuMi0wLjIsMC40LTAuM2wwLjItMC4yYzAuMS0wLjUsMC4zLTAuOSwwLjQtMS40aDAuOWMwLjEtMC4xLDAuMi0wLjMsMC4zLTAuNGgtMS4xCgkJCQljMC43LTIuNCwxLjUtNC43LDIuMy02LjlsMi4xLDBjMC4xLTAuMSwwLjItMC4yLDAuNC0wLjRjLTAuNywwLTEuNSwwLTIuMy0wLjFjMC45LTIuNSwxLjgtNC43LDIuNy02LjljMS44LDAsMy42LDAuMSw1LjQsMC4yCgkJCQljMC4yLTAuMSwwLjQtMC4yLDAuNS0wLjNjMC4xLDAsMC4xLTAuMSwwLjItMC4xYy0xLjktMC4xLTMuOS0wLjItNS45LTAuMmMxLjEtMi41LDIuMi00LjgsMy4yLTYuOWMxLDAsMi4xLDAsMy4xLDAuMWwtMC4xLTAuMgoJCQkJTDQyLjcsMTdjLTAuOSwwLTEuOC0wLjEtMi43LTAuMWMwLjQtMC44LDAuOC0xLjUsMS4yLTIuM2MtMC4xLTAuMS0wLjEtMC4xLTAuMS0wLjJMNDEsMTQuM2MtMC41LDAuOC0wLjksMS43LTEuNCwyLjYKCQkJCWMtMi4yLDAtNC40LDAtNi42LDBjMS40LTIuNywyLjctNSw0LTYuOWgxLjVjMCwwLDAtMC4xLDAtMC4xYzAtMC4xLDAtMC4yLTAuMS0wLjNoLTEuMmMwLjItMC40LDAuNS0wLjcsMC43LTEKCQkJCWMtMC4xLTAuMS0wLjItMC4yLTAuMi0wLjRjLTAuMywwLjQtMC42LDAuOS0wLjksMS40Yy0yLjMsMC00LjUsMC4xLTYuNSwwLjJjMS4yLTEuOSwyLjYtMy43LDQuMS01LjRoLTAuNQoJCQkJYy0xLjUsMS43LTIuOCwzLjUtNCw1LjRjLTIuNCwwLjEtNC42LDAuMi02LjUsMC4zYzEuMi0xLjksMi42LTMuNyw0LjEtNS41bC0wLjYsMGMtMS41LDEuNy0yLjgsMy41LTQsNS40CgkJCQljLTMsMC4yLTUuMSwwLjMtNS45LDAuNGMtMC4xLDAuMS0wLjIsMC4zLTAuMywwLjRjMC40LDAsMi42LTAuMiw1LjktMC40Yy0xLjIsMS44LTIuNSw0LjEtNCw2LjljLTMsMC4yLTUuMSwwLjQtNS45LDAuNAoJCQkJbC0wLjIsMC40YzAuNSwwLDIuNy0wLjIsNS45LTAuNGMtMS4xLDItMi4xLDQuMy0zLjIsNi44Yy0yLjgsMC4yLTQuOSwwLjMtNS44LDAuNGwtMC4yLDAuNGMwLjctMC4xLDIuOS0wLjIsNS44LTAuNAoJCQkJYy0wLjksMi4xLTEuOCw0LjQtMi43LDYuOWMtMi45LDAuMi01LDAuNC01LjcsMC40bC0wLjEsMC40YzAuNSwwLDIuNi0wLjIsNS43LTAuNGMtMC44LDIuMS0xLjUsNC40LTIuMyw2LjkKCQkJCWMtMi45LDAuMi01LDAuMy01LjcsMC40QzQsMzkuNyw0LDM5LjksNCw0MGMwLjUsMCwyLjYtMC4yLDUuNy0wLjRDOC45LDQyLDguMiw0NC41LDcuNSw0Ny4zeiBNMjMuOCwzOC41Yy0yLjMsMC00LjUsMC4xLTYuNiwwLjIKCQkJCWMwLjctMi40LDEuNS00LjcsMi4zLTYuOWMyLjEtMC4xLDQuMy0wLjIsNi42LTAuMkMyNS4zLDMzLjksMjQuNiwzNi4xLDIzLjgsMzguNXogTTI4LjksMjQuNWMtMC45LDIuMS0xLjgsNC40LTIuNyw2LjkKCQkJCWMtMi4zLDAtNC41LDAuMS02LjYsMC4yYzAuOS0yLjUsMS44LTQuNywyLjctNi45QzI0LjQsMjQuNiwyNi42LDI0LjUsMjguOSwyNC41eiBNMjIuNSwyNC4yYzEuMS0yLjUsMi4yLTQuOCwzLjMtNi45CgkJCQljMi4xLTAuMSw0LjMtMC4yLDYuNi0wLjJjLTEsMi4xLTIuMSw0LjMtMy4yLDYuOUMyNi44LDI0LjEsMjQuNiwyNC4yLDIyLjUsMjQuMnogTTMwLjksMzguNWMtMi4yLDAtNC40LDAtNi42LDAKCQkJCWMwLjctMi40LDEuNS00LjcsMi4zLTYuOWMyLjIsMCw0LjQsMCw2LjYsMEMzMi40LDMzLjgsMzEuNiwzNi4xLDMwLjksMzguNXogTTMzLjMsMzEuM2MtMi4yLDAtNC40LDAtNi42LDAKCQkJCWMwLjktMi41LDEuOC00LjcsMi43LTYuOWMyLjIsMCw0LjQsMCw2LjYsMEMzNS4xLDI2LjYsMzQuMiwyOC44LDMzLjMsMzEuM3ogTTM5LjQsMTcuMmMtMSwyLjEtMi4xLDQuMy0zLjIsNi45CgkJCQljLTIuMiwwLTQuNCwwLTYuNiwwYzEuMS0yLjUsMi4yLTQuOCwzLjItNi45QzM0LjksMTcuMiwzNy4yLDE3LjIsMzkuNCwxNy4yTDM5LjQsMTcuMnogTTI5LjksMTAuMmMyLjEtMC4xLDQuMy0wLjIsNi41LTAuMgoJCQkJYy0xLjIsMS45LTIuNSw0LjEtMy45LDYuOWMtMi4zLDAtNC41LDAuMS02LjYsMC4yQzI3LjQsMTQuMywyOC43LDEyLDI5LjksMTAuMnogTTIyLjksMTAuNWMxLjktMC4xLDQuMS0wLjIsNi42LTAuMwoJCQkJYy0xLjIsMS44LTIuNSw0LjEtNCw2LjljLTIuNCwwLjEtNC43LDAuMi02LjYsMC4zQzIwLjMsMTQuNiwyMS43LDEyLjQsMjIuOSwxMC41eiBNMTguNywxNy44YzEuOS0wLjEsNC4yLTAuMiw2LjYtMC4zCgkJCQljLTEsMi4xLTIuMSw0LjMtMy4yLDYuOWMtMi40LDAuMS00LjcsMC4yLTYuNiwwLjNDMTYuNSwyMi4xLDE3LjYsMTkuOCwxOC43LDE3Ljh6IE0xNS4zLDI1YzEuOS0wLjEsNC4yLTAuMiw2LjYtMC4zCgkJCQljLTAuOSwyLjEtMS44LDQuNC0yLjcsNi45Yy0yLjUsMC4xLTQuNywwLjItNi42LDAuM0MxMy40LDI5LjQsMTQuNCwyNy4xLDE1LjMsMjV6IE0xMi40LDMyLjNjMS45LTAuMSw0LjItMC4yLDYuNi0wLjMKCQkJCWMtMC44LDIuMS0xLjUsNC40LTIuMiw2LjhjLTIuNSwwLjEtNC43LDAuMi02LjYsMC4zQzEwLjksMzYuNywxMS42LDM0LjQsMTIuNCwzMi4zeiIvPgoKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzOS4yOTMxIiB5MT0iNDMuMjE1NiIgeDI9IjQxLjc5MDYiIHkyPSIzOC42MDQ3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNzIpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkY3OTk7c3RvcC1vcGFjaXR5OjAuOSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRjhBMztzdG9wLW9wYWNpdHk6MC4xIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik00MC43LDMxLjZjMC41LTEuNCwxLTIuNywxLjUtNGMtMC4xLTAuMS0wLjItMC4yLTAuMy0wLjJjLTAuNSwxLjQtMS4xLDIuNy0xLjYsNC4yYy0xLTAuMS0yLjEtMC4xLTMuMi0wLjIKCQkJCWMwLDAuMywwLjMsMC4zLDAuNiwwLjRjMC44LDAsMS42LDAuMSwyLjQsMC4xTDQwLDMyLjZINDBjMC4xLTAuMSwwLjMtMC4xLDAuNC0wLjFsMC4yLTAuNGMxLjEsMC4xLDIuMiwwLjIsMy4yLDAuMwoJCQkJYzAuMS0wLjEsMC4yLTAuMiwwLjItMC40QzQzLDMxLjgsNDEuOSwzMS43LDQwLjcsMzEuNnoiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+';
|
|
25303
25157
|
|
|
@@ -25308,15 +25162,15 @@ var motif = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id
|
|
|
25308
25162
|
*
|
|
25309
25163
|
* @param onEscape the handler function
|
|
25310
25164
|
*/
|
|
25311
|
-
|
|
25312
|
-
|
|
25165
|
+
const useEscapeFunction = (onEscape) => {
|
|
25166
|
+
const escFunction = React.useCallback((event) => {
|
|
25313
25167
|
if (event.keyCode === 27) {
|
|
25314
25168
|
onEscape();
|
|
25315
25169
|
}
|
|
25316
25170
|
}, [onEscape]);
|
|
25317
|
-
React.useEffect(
|
|
25171
|
+
React.useEffect(() => {
|
|
25318
25172
|
document.addEventListener('keydown', escFunction, false);
|
|
25319
|
-
return
|
|
25173
|
+
return () => {
|
|
25320
25174
|
document.removeEventListener('keydown', escFunction, false);
|
|
25321
25175
|
};
|
|
25322
25176
|
}, [escFunction]);
|
|
@@ -25329,14 +25183,13 @@ var useEscapeFunction = function (onEscape) {
|
|
|
25329
25183
|
* @param onClickOutsideArg handler for mouse clicks outside the element
|
|
25330
25184
|
* @return a react ref which can be bound to an html element
|
|
25331
25185
|
*/
|
|
25332
|
-
|
|
25333
|
-
|
|
25334
|
-
|
|
25335
|
-
|
|
25336
|
-
React.useEffect(
|
|
25337
|
-
|
|
25338
|
-
|
|
25339
|
-
if ((_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {
|
|
25186
|
+
const usePageClickFunction = (onClickInsideArg, onClickOutsideArg) => {
|
|
25187
|
+
const elementRef = React.useRef(null);
|
|
25188
|
+
const onClickInside = React.useCallback(onClickInsideArg, []);
|
|
25189
|
+
const onClickOutside = React.useCallback(onClickOutsideArg, []);
|
|
25190
|
+
React.useEffect(() => {
|
|
25191
|
+
const handleClick = (e) => {
|
|
25192
|
+
if (elementRef.current?.contains(e.target)) {
|
|
25340
25193
|
onClickInside(e);
|
|
25341
25194
|
}
|
|
25342
25195
|
else {
|
|
@@ -25346,18 +25199,17 @@ var usePageClickFunction = function (onClickInsideArg, onClickOutsideArg) {
|
|
|
25346
25199
|
// add when mounted
|
|
25347
25200
|
document.addEventListener('click', handleClick);
|
|
25348
25201
|
// return function to be called when unmounted
|
|
25349
|
-
return
|
|
25202
|
+
return () => {
|
|
25350
25203
|
document.removeEventListener('click', handleClick);
|
|
25351
25204
|
};
|
|
25352
25205
|
}, [elementRef, onClickInside, onClickOutside]);
|
|
25353
25206
|
return elementRef;
|
|
25354
25207
|
};
|
|
25355
25208
|
|
|
25356
|
-
|
|
25357
|
-
|
|
25358
|
-
|
|
25359
|
-
|
|
25360
|
-
var idx = sizes.indexOf(size);
|
|
25209
|
+
const sizes = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
25210
|
+
const buildHideClassDict = ({ from = 'xs', upto = 'xl', }) => {
|
|
25211
|
+
const inRange = (size) => {
|
|
25212
|
+
const idx = sizes.indexOf(size);
|
|
25361
25213
|
return idx >= sizes.indexOf(from) && idx <= sizes.indexOf(upto);
|
|
25362
25214
|
};
|
|
25363
25215
|
return {
|
|
@@ -25369,15 +25221,14 @@ var buildHideClassDict = function (_a) {
|
|
|
25369
25221
|
};
|
|
25370
25222
|
};
|
|
25371
25223
|
|
|
25372
|
-
|
|
25373
|
-
|
|
25374
|
-
|
|
25375
|
-
var logoContainer = logoElement;
|
|
25224
|
+
const LuiHeader = ({ headingText, size = 'small', homeLink, transparent, children, sticky = true, }) => {
|
|
25225
|
+
const logoElement = size === 'normal' ? (React__default["default"].createElement("img", { className: "linz-logo", alt: "LINZ Logo", src: logo })) : (React__default["default"].createElement("img", { className: "linz-motif", alt: "LINZ Logo", src: motif }));
|
|
25226
|
+
let logoContainer = logoElement;
|
|
25376
25227
|
if (typeof homeLink === 'string') {
|
|
25377
25228
|
logoContainer = React__default["default"].createElement("a", { href: homeLink }, logoElement);
|
|
25378
25229
|
}
|
|
25379
25230
|
else if (typeof homeLink === 'function') {
|
|
25380
|
-
logoContainer = (React__default["default"].createElement("div", { className: "clickable", onClick:
|
|
25231
|
+
logoContainer = (React__default["default"].createElement("div", { className: "clickable", onClick: () => {
|
|
25381
25232
|
homeLink();
|
|
25382
25233
|
} }, logoElement));
|
|
25383
25234
|
}
|
|
@@ -25399,55 +25250,48 @@ var LuiHeader = function (_a) {
|
|
|
25399
25250
|
* Note that it depends on it being rendered inside a LuiHeader for its styles to apply properly.
|
|
25400
25251
|
* To configure the item for responsiveness, ensure to set any of the hideOn* properties.
|
|
25401
25252
|
*/
|
|
25402
|
-
|
|
25403
|
-
|
|
25404
|
-
|
|
25405
|
-
var resolvedIcon = !icon && !label ? 'menu' : icon;
|
|
25253
|
+
const LuiHeaderMenuItem = React.forwardRef(({ icon, label, badge, hide, onClick, 'data-testid': dataTestId = 'menu-item', children, }, ref) => {
|
|
25254
|
+
const menuItemClasses = clsx('lui-header-menu-item', hide && buildHideClassDict(hide));
|
|
25255
|
+
const resolvedIcon = !icon && !label ? 'menu' : icon;
|
|
25406
25256
|
return (React__default["default"].createElement("div", { className: menuItemClasses, ref: ref },
|
|
25407
25257
|
React__default["default"].createElement("div", { className: clsx('lui-header-menu-icon', onClick && 'clickable'), onClick: onClick, "data-testid": dataTestId },
|
|
25408
|
-
resolvedIcon && (React__default["default"].createElement("i", { className: "material-icons-round md-36" }, resolvedIcon)),
|
|
25258
|
+
resolvedIcon && (React__default["default"].createElement("i", { title: "Main menu", className: "material-icons-round md-36" }, resolvedIcon)),
|
|
25409
25259
|
label && React__default["default"].createElement("div", { className: "lui-menu-label" }, label),
|
|
25410
25260
|
badge && React__default["default"].createElement("div", { className: "badge" }, badge)),
|
|
25411
25261
|
children));
|
|
25412
25262
|
});
|
|
25413
|
-
|
|
25414
|
-
isOpen:
|
|
25415
|
-
open:
|
|
25416
|
-
close:
|
|
25263
|
+
const LuiCloseableHeaderMenuContext = React.createContext({
|
|
25264
|
+
isOpen: () => false,
|
|
25265
|
+
open: () => { },
|
|
25266
|
+
close: () => { },
|
|
25417
25267
|
});
|
|
25418
|
-
|
|
25419
|
-
|
|
25420
|
-
|
|
25421
|
-
var menuDiv = usePageClickFunction(function (event) { return open || event.stopPropagation(); }, function (event) {
|
|
25268
|
+
const LuiCloseableHeaderMenuItem = ({ open, setOpen, ...props }) => {
|
|
25269
|
+
useEscapeFunction(() => setOpen(false));
|
|
25270
|
+
const menuDiv = usePageClickFunction((event) => open || event.stopPropagation(), (event) => {
|
|
25422
25271
|
if (!open) {
|
|
25423
25272
|
event.stopPropagation();
|
|
25424
25273
|
setOpen(false);
|
|
25425
25274
|
}
|
|
25426
25275
|
});
|
|
25427
|
-
|
|
25428
|
-
isOpen:
|
|
25429
|
-
open:
|
|
25430
|
-
close:
|
|
25276
|
+
const menuControls = {
|
|
25277
|
+
isOpen: () => open,
|
|
25278
|
+
open: () => setOpen(true),
|
|
25279
|
+
close: () => setOpen(false),
|
|
25431
25280
|
};
|
|
25432
|
-
|
|
25281
|
+
const menuItemProps = { onClick: () => menuControls.open(), ...props };
|
|
25433
25282
|
return (React__default["default"].createElement(LuiCloseableHeaderMenuContext.Provider, { value: menuControls },
|
|
25434
|
-
React__default["default"].createElement(LuiHeaderMenuItem,
|
|
25283
|
+
React__default["default"].createElement(LuiHeaderMenuItem, { ref: menuDiv, ...menuItemProps }, props.children)));
|
|
25435
25284
|
};
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
|
|
25439
|
-
var classes = clsx('material-icons-round', 'lui-menu-close-button', hide && buildHideClassDict(hide));
|
|
25285
|
+
const LuiMenuCloseButton = ({ icon = 'close', hide, 'data-testid': dataTestId = 'close-button', }) => {
|
|
25286
|
+
const menu = React.useContext(LuiCloseableHeaderMenuContext);
|
|
25287
|
+
const classes = clsx('material-icons-round', 'lui-menu-close-button', hide && buildHideClassDict(hide));
|
|
25440
25288
|
return (React__default["default"].createElement("i", { className: classes, onClick: menu.close, "data-testid": dataTestId }, icon));
|
|
25441
25289
|
};
|
|
25442
25290
|
|
|
25443
|
-
|
|
25444
|
-
|
|
25445
|
-
|
|
25446
|
-
|
|
25447
|
-
var LuiDrawerMenuOption = function (_a) {
|
|
25448
|
-
var icon = _a.icon, label = _a.label, badge = _a.badge, _b = _a.onClick, onClick = _b === void 0 ? function () { } : _b;
|
|
25449
|
-
var menu = React.useContext(LuiCloseableHeaderMenuContext);
|
|
25450
|
-
return (React__default["default"].createElement("div", { className: "lui-menu-drawer-option", onClick: function () {
|
|
25291
|
+
const LuiDrawerMenuOptions = ({ children }) => (React__default["default"].createElement("div", { className: "lui-menu-drawer-options" }, children));
|
|
25292
|
+
const LuiDrawerMenuOption = ({ icon, label, badge, onClick = () => { }, }) => {
|
|
25293
|
+
const menu = React.useContext(LuiCloseableHeaderMenuContext);
|
|
25294
|
+
return (React__default["default"].createElement("div", { className: "lui-menu-drawer-option", onClick: () => {
|
|
25451
25295
|
menu.close();
|
|
25452
25296
|
onClick();
|
|
25453
25297
|
}, "data-testid": 'drawer-option' },
|
|
@@ -25456,13 +25300,17 @@ var LuiDrawerMenuOption = function (_a) {
|
|
|
25456
25300
|
label),
|
|
25457
25301
|
badge));
|
|
25458
25302
|
};
|
|
25459
|
-
|
|
25460
|
-
|
|
25461
|
-
|
|
25462
|
-
|
|
25463
|
-
|
|
25464
|
-
|
|
25465
|
-
|
|
25303
|
+
const LuiDrawerMenu = ({ ...restOfProps }) => {
|
|
25304
|
+
const { children, hasStickyHeader = true, ...menuPropsCopy } = restOfProps;
|
|
25305
|
+
const [open, setOpen] = React.useState(false);
|
|
25306
|
+
const closeableMenuProps = {
|
|
25307
|
+
...menuPropsCopy,
|
|
25308
|
+
open,
|
|
25309
|
+
setOpen,
|
|
25310
|
+
icon: open ? 'close' : 'menu',
|
|
25311
|
+
onClick: () => setOpen(!open),
|
|
25312
|
+
};
|
|
25313
|
+
React.useEffect(() => {
|
|
25466
25314
|
// Support for non-sticky headers. Scroll back to top when menu is opened
|
|
25467
25315
|
if (open && !hasStickyHeader) {
|
|
25468
25316
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
@@ -25475,18 +25323,17 @@ var LuiDrawerMenu = function (_a) {
|
|
|
25475
25323
|
document.body.classList.remove('lui-menu-drawer-open');
|
|
25476
25324
|
}
|
|
25477
25325
|
}, [open, hasStickyHeader]);
|
|
25478
|
-
return (React__default["default"].createElement(LuiCloseableHeaderMenuItem,
|
|
25326
|
+
return (React__default["default"].createElement(LuiCloseableHeaderMenuItem, { ...closeableMenuProps },
|
|
25479
25327
|
React__default["default"].createElement("div", { className: clsx({
|
|
25480
25328
|
'lui-menu-drawer': true,
|
|
25481
25329
|
'lui-menu-drawer-closed': !open,
|
|
25482
25330
|
}), "data-testid": 'drawer', "aria-hidden": !open }, children)));
|
|
25483
25331
|
};
|
|
25484
|
-
|
|
25485
|
-
|
|
25486
|
-
|
|
25487
|
-
|
|
25488
|
-
|
|
25489
|
-
return (React__default["default"].createElement(LuiCloseableHeaderMenuItem, __assign({}, closeableMenuProps),
|
|
25332
|
+
const LuiDropdownMenu = ({ ...restOfProps }) => {
|
|
25333
|
+
const { children, ...menuPropsCopy } = restOfProps;
|
|
25334
|
+
const [open, setOpen] = React.useState(false);
|
|
25335
|
+
const closeableMenuProps = { ...menuPropsCopy, open, setOpen };
|
|
25336
|
+
return (React__default["default"].createElement(LuiCloseableHeaderMenuItem, { ...closeableMenuProps },
|
|
25490
25337
|
React__default["default"].createElement("div", { className: clsx({
|
|
25491
25338
|
'lui-menu-dropdown lui-box-shadow': true,
|
|
25492
25339
|
'lui-menu-dropdown-closed': !open,
|
|
@@ -25494,8 +25341,8 @@ var LuiDropdownMenu = function (_a) {
|
|
|
25494
25341
|
children,
|
|
25495
25342
|
' ')));
|
|
25496
25343
|
};
|
|
25497
|
-
|
|
25498
|
-
|
|
25344
|
+
const LuiDrawerMenuSection = (props) => {
|
|
25345
|
+
const { children, title, collapsible } = props;
|
|
25499
25346
|
return (React__default["default"].createElement("div", null,
|
|
25500
25347
|
collapsible && (React__default["default"].createElement(LuiExpandableBanner, { label: title || '', className: "LuiDrawerMenuSection-header" }, children)),
|
|
25501
25348
|
!collapsible && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -25504,7 +25351,7 @@ var LuiDrawerMenuSection = function (props) {
|
|
|
25504
25351
|
React__default["default"].createElement("h3", null, title)))),
|
|
25505
25352
|
children))));
|
|
25506
25353
|
};
|
|
25507
|
-
|
|
25354
|
+
const LuiDrawerMenuDivider = () => {
|
|
25508
25355
|
return React__default["default"].createElement("hr", { className: "LuiDrawerMenuDivider" });
|
|
25509
25356
|
};
|
|
25510
25357
|
|
|
@@ -27852,8 +27699,8 @@ function polyfill(Component) {
|
|
|
27852
27699
|
}
|
|
27853
27700
|
|
|
27854
27701
|
var reactLifecyclesCompat_es = /*#__PURE__*/Object.freeze({
|
|
27855
|
-
|
|
27856
|
-
|
|
27702
|
+
__proto__: null,
|
|
27703
|
+
polyfill: polyfill
|
|
27857
27704
|
});
|
|
27858
27705
|
|
|
27859
27706
|
var require$$6 = /*@__PURE__*/getAugmentedNamespace(reactLifecyclesCompat_es);
|
|
@@ -28146,30 +27993,29 @@ module.exports = exports["default"];
|
|
|
28146
27993
|
|
|
28147
27994
|
var Modal = /*@__PURE__*/getDefaultExportFromCjs(lib.exports);
|
|
28148
27995
|
|
|
28149
|
-
|
|
28150
|
-
|
|
28151
|
-
var node = React.useRef(null);
|
|
27996
|
+
const LuiUpdatesSplashModal = (props) => {
|
|
27997
|
+
const node = React.useRef(null);
|
|
28152
27998
|
// We have to do this as the CSS takes over a lot of the page
|
|
28153
27999
|
// https://medium.com/@pitipatdop/little-neat-trick-to-capture-click-outside-with-react-hook-ba77c37c7e82
|
|
28154
|
-
|
|
28000
|
+
const handleClickOutside = React.useCallback((e) => {
|
|
28155
28001
|
console.log('clicking anywhere');
|
|
28156
28002
|
// current DOES have a contains!
|
|
28157
|
-
if (
|
|
28003
|
+
if (node?.current && node.current.contains(e.target)) {
|
|
28158
28004
|
// inside click
|
|
28159
28005
|
return;
|
|
28160
28006
|
}
|
|
28161
28007
|
// outside click
|
|
28162
28008
|
props.onClose();
|
|
28163
28009
|
}, [props]);
|
|
28164
|
-
React.useEffect(
|
|
28010
|
+
React.useEffect(() => {
|
|
28165
28011
|
document.addEventListener('mousedown', handleClickOutside);
|
|
28166
|
-
return
|
|
28012
|
+
return () => {
|
|
28167
28013
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
28168
28014
|
};
|
|
28169
28015
|
}, [handleClickOutside]);
|
|
28170
28016
|
// process may be undefined, e.g. webpack 5 does not include a polyfill for it. Assume if process is undefined then
|
|
28171
28017
|
// this isn't running in a test.
|
|
28172
|
-
if (typeof process === 'undefined' ||
|
|
28018
|
+
if (typeof process === 'undefined' || process?.env?.NODE_ENV !== 'test') {
|
|
28173
28019
|
Modal.setAppElement('#root');
|
|
28174
28020
|
}
|
|
28175
28021
|
return (React__default["default"].createElement(Modal, { key: props.id, isOpen: true, shouldCloseOnOverlayClick: true, onRequestClose: props.onClose, contentLabel: "Recent updates", className: "lui-scrim", style: { overlay: { backgroundColor: 'transparent' } } },
|
|
@@ -28183,12 +28029,11 @@ var LuiUpdatesSplashModal = function (props) {
|
|
|
28183
28029
|
React__default["default"].createElement("div", { className: 'lui-feature-text' }, props.children))));
|
|
28184
28030
|
};
|
|
28185
28031
|
|
|
28186
|
-
|
|
28187
|
-
|
|
28188
|
-
|
|
28189
|
-
var handleClickOutside = React.useCallback(function (e) {
|
|
28032
|
+
const LuiModal = (props) => {
|
|
28033
|
+
const node = React.useRef(null);
|
|
28034
|
+
const handleClickOutside = React.useCallback((e) => {
|
|
28190
28035
|
// current DOES have a contains!
|
|
28191
|
-
if (
|
|
28036
|
+
if (node?.current && node.current.contains(e.target)) {
|
|
28192
28037
|
// inside click
|
|
28193
28038
|
return;
|
|
28194
28039
|
}
|
|
@@ -28197,37 +28042,37 @@ var LuiModal = function (props) {
|
|
|
28197
28042
|
props.onClose && props.onClose();
|
|
28198
28043
|
}
|
|
28199
28044
|
}, [props]);
|
|
28200
|
-
React.useEffect(
|
|
28045
|
+
React.useEffect(() => {
|
|
28201
28046
|
document.addEventListener('mousedown', handleClickOutside);
|
|
28202
|
-
return
|
|
28047
|
+
return () => {
|
|
28203
28048
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
28204
28049
|
};
|
|
28205
28050
|
}, [handleClickOutside]);
|
|
28206
|
-
|
|
28051
|
+
let isTest = false;
|
|
28207
28052
|
// this is here for the tests
|
|
28208
28053
|
if (typeof process !== 'undefined') {
|
|
28209
|
-
isTest =
|
|
28054
|
+
isTest = process?.env?.NODE_ENV === 'test';
|
|
28210
28055
|
if (!isTest) {
|
|
28211
28056
|
Modal.setAppElement('#root');
|
|
28212
28057
|
}
|
|
28213
28058
|
}
|
|
28214
|
-
return (React__default["default"].createElement(Modal,
|
|
28215
|
-
|
|
28216
|
-
|
|
28059
|
+
return (React__default["default"].createElement(Modal, { key: props.key, isOpen: true, shouldCloseOnOverlayClick: props.shouldCloseOnOverlayClick, onRequestClose: props.onClose, overlayClassName: "modal", className: props.lowContrast ? 'lui-scrim-low-contrast' : 'lui-scrim', ariaHideApp: !isTest, ...(props.appendToElement && {
|
|
28060
|
+
parentSelector: props.appendToElement,
|
|
28061
|
+
}) },
|
|
28217
28062
|
React__default["default"].createElement("div", { ref: node, className: clsx('lui-modal lui-box-shadow', props.maxWidth && 'lui-max-width', props.headingText && 'lui-modal-no-padding', props.className) },
|
|
28218
28063
|
props.headingText && (React__default["default"].createElement(LuiModalHeader, { headingText: props.headingText, onClose: props.onClose })),
|
|
28219
28064
|
React__default["default"].createElement("div", { className: clsx(props.headingText && 'lui-modal-container') }, props.children))));
|
|
28220
28065
|
};
|
|
28221
|
-
|
|
28222
|
-
|
|
28223
|
-
return (React__default["default"].createElement(LuiModal, { key: props.key, shouldCloseOnOverlayClick: props.shouldCloseOnOverlayClick, onClose: props.onClose, className: clsx(
|
|
28224
|
-
React__default["default"].createElement(LuiIcon, { name:
|
|
28066
|
+
const LuiAlertModal = (props) => {
|
|
28067
|
+
let materialIcon = getMaterialIconForLevel(props.level);
|
|
28068
|
+
return (React__default["default"].createElement(LuiModal, { key: props.key, shouldCloseOnOverlayClick: props.shouldCloseOnOverlayClick, onClose: props.onClose, className: clsx(`lui-modal-${props.level}`, props.className), appendToElement: props.appendToElement },
|
|
28069
|
+
React__default["default"].createElement(LuiIcon, { name: `ic_${materialIcon}`, alt: `${props.level} status icon`, size: "lg", className: "lui-msg-status-icon" }),
|
|
28225
28070
|
props.children));
|
|
28226
28071
|
};
|
|
28227
|
-
|
|
28072
|
+
const LuiAlertModalButtons = (props) => {
|
|
28228
28073
|
return React__default["default"].createElement("div", { className: "modal-btn-row" }, props.children);
|
|
28229
28074
|
};
|
|
28230
|
-
|
|
28075
|
+
const LuiModalHeader = (props) => {
|
|
28231
28076
|
return (React__default["default"].createElement("header", { className: "lui-modal-header" }, props.headingText && (React__default["default"].createElement("div", { className: "lui-modal-header-title" },
|
|
28232
28077
|
React__default["default"].createElement("h1", null, props.headingText),
|
|
28233
28078
|
props.onClose && (React__default["default"].createElement("button", { className: "lui-modal-header-close-btn", onClick: props.onClose },
|
|
@@ -28328,18 +28173,17 @@ function Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, con
|
|
|
28328
28173
|
: elements));
|
|
28329
28174
|
}
|
|
28330
28175
|
|
|
28331
|
-
|
|
28332
|
-
|
|
28333
|
-
|
|
28334
|
-
|
|
28335
|
-
|
|
28336
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiSearchInput-resultEntry', isSelected && 'selected'), key: result.id, ref: isSelected ? selectedRef : null, onClick: function () { return onClick(result.id); }, onMouseEnter: function () { return setSelectedId(result.id); } }, renderItem(result)));
|
|
28176
|
+
const SKELETON_COUNT = 3;
|
|
28177
|
+
const ResultsDisplay = ({ isLoading, onClick, children, selectedId, selectedRef, setSelectedId, results, renderItem, }) => {
|
|
28178
|
+
const ResultLine = (result) => {
|
|
28179
|
+
const isSelected = result.id === selectedId;
|
|
28180
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiSearchInput-resultEntry', isSelected && 'selected'), key: result.id, ref: isSelected ? selectedRef : null, onClick: () => onClick(result.id), onMouseEnter: () => setSelectedId(result.id) }, renderItem(result)));
|
|
28337
28181
|
};
|
|
28338
|
-
|
|
28182
|
+
const GroupedResult = (result) => {
|
|
28339
28183
|
return (React__default["default"].createElement("div", null,
|
|
28340
28184
|
React__default["default"].createElement("div", { className: "LuiSearchInput-resultHeader" }, result.label),
|
|
28341
|
-
result.items.map(
|
|
28342
|
-
return React__default["default"].createElement(ResultLine,
|
|
28185
|
+
result.items.map((item) => {
|
|
28186
|
+
return React__default["default"].createElement(ResultLine, { key: item.id, ...item });
|
|
28343
28187
|
})));
|
|
28344
28188
|
};
|
|
28345
28189
|
return (React__default["default"].createElement("div", { className: "LuiSearchInput-results" },
|
|
@@ -28347,15 +28191,15 @@ var ResultsDisplay = function (_a) {
|
|
|
28347
28191
|
React__default["default"].createElement(Skeleton, { className: "LuiSearchInput-skeletonItem", count: SKELETON_COUNT }))),
|
|
28348
28192
|
!isLoading &&
|
|
28349
28193
|
isGroupedResult(results) &&
|
|
28350
|
-
results.map(
|
|
28194
|
+
results.map((result, index) => {
|
|
28351
28195
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
28352
|
-
React__default["default"].createElement(GroupedResult,
|
|
28196
|
+
React__default["default"].createElement(GroupedResult, { key: result.id, ...result }),
|
|
28353
28197
|
index !== results.length - 1 && (React__default["default"].createElement("hr", { className: "LuiSearchInput-groupSeparator" }))));
|
|
28354
28198
|
}),
|
|
28355
28199
|
!isLoading &&
|
|
28356
28200
|
!isGroupedResult(results) &&
|
|
28357
|
-
results.map(
|
|
28358
|
-
return React__default["default"].createElement(ResultLine,
|
|
28201
|
+
results.map((result) => {
|
|
28202
|
+
return React__default["default"].createElement(ResultLine, { key: result.id, ...result });
|
|
28359
28203
|
}),
|
|
28360
28204
|
children));
|
|
28361
28205
|
};
|
|
@@ -28368,36 +28212,34 @@ function isGroupedResult(result) {
|
|
|
28368
28212
|
}
|
|
28369
28213
|
function flatten(items) {
|
|
28370
28214
|
if (isGroupedResult(items)) {
|
|
28371
|
-
return items.flatMap(
|
|
28215
|
+
return items.flatMap((item) => item.items);
|
|
28372
28216
|
}
|
|
28373
28217
|
return items;
|
|
28374
28218
|
}
|
|
28375
|
-
|
|
28376
|
-
|
|
28377
|
-
|
|
28378
|
-
|
|
28379
|
-
|
|
28380
|
-
|
|
28381
|
-
|
|
28382
|
-
|
|
28219
|
+
const LuiSearchInput = (props) => {
|
|
28220
|
+
const [typedValue, setTypedValue] = React.useState(props.initialValue ? props.initialValue : '');
|
|
28221
|
+
const [results, setResults] = React.useState([]);
|
|
28222
|
+
const [selectedId, setSelectedId] = React.useState('');
|
|
28223
|
+
const [haveFocus, setHaveFocus] = React.useState(false);
|
|
28224
|
+
const [isLoading, setIsLoading] = React.useState(false);
|
|
28225
|
+
const inputRef = React.useRef(null);
|
|
28226
|
+
const selectedRef = React.useRef(null);
|
|
28383
28227
|
//set focus to inut box
|
|
28384
|
-
React.useEffect(
|
|
28385
|
-
var _a;
|
|
28228
|
+
React.useEffect(() => {
|
|
28386
28229
|
if (props.focusUpdate !== undefined)
|
|
28387
|
-
|
|
28230
|
+
inputRef.current?.focus();
|
|
28388
28231
|
}, [props.focusUpdate]);
|
|
28389
28232
|
//clear result after search types changed
|
|
28390
|
-
React.useEffect(
|
|
28233
|
+
React.useEffect(() => {
|
|
28391
28234
|
setResults([]);
|
|
28392
28235
|
}, [props.getOptions]);
|
|
28393
28236
|
function setInputValue(value) {
|
|
28394
28237
|
setTypedValue(props.inputTransformer ? props.inputTransformer(value) : value);
|
|
28395
28238
|
}
|
|
28396
28239
|
function moveDown() {
|
|
28397
|
-
|
|
28398
|
-
|
|
28399
|
-
for (
|
|
28400
|
-
var item = items_1[_i];
|
|
28240
|
+
const items = flatten(results);
|
|
28241
|
+
let takeNext = selectedId === '';
|
|
28242
|
+
for (const item of items) {
|
|
28401
28243
|
if (item.id === selectedId) {
|
|
28402
28244
|
takeNext = true;
|
|
28403
28245
|
}
|
|
@@ -28409,10 +28251,9 @@ var LuiSearchInput = function (props) {
|
|
|
28409
28251
|
return;
|
|
28410
28252
|
}
|
|
28411
28253
|
function moveUp() {
|
|
28412
|
-
|
|
28413
|
-
|
|
28414
|
-
for (
|
|
28415
|
-
var item = _a[_i];
|
|
28254
|
+
const items = flatten(results);
|
|
28255
|
+
let takeNext = false;
|
|
28256
|
+
for (const item of [...items].reverse()) {
|
|
28416
28257
|
if (item.id === selectedId) {
|
|
28417
28258
|
takeNext = true;
|
|
28418
28259
|
}
|
|
@@ -28424,42 +28265,30 @@ var LuiSearchInput = function (props) {
|
|
|
28424
28265
|
return;
|
|
28425
28266
|
}
|
|
28426
28267
|
function selectItem(itemId) {
|
|
28427
|
-
|
|
28428
|
-
|
|
28268
|
+
const id = itemId ? itemId : selectedId;
|
|
28269
|
+
const selectedItem = flatten(results).find((item) => item.id === id);
|
|
28429
28270
|
if (selectedItem) {
|
|
28430
28271
|
setHaveFocus(false);
|
|
28431
28272
|
setInputValue(selectedItem.description);
|
|
28432
28273
|
props.onSelectOption(selectedItem);
|
|
28433
28274
|
}
|
|
28434
28275
|
}
|
|
28435
|
-
function retrieveResults(input) {
|
|
28436
|
-
|
|
28437
|
-
|
|
28438
|
-
|
|
28439
|
-
|
|
28440
|
-
|
|
28441
|
-
|
|
28442
|
-
|
|
28443
|
-
|
|
28444
|
-
|
|
28445
|
-
_a.trys.push([1, , 3, 4]);
|
|
28446
|
-
return [4 /*yield*/, props.getOptions(input)];
|
|
28447
|
-
case 2:
|
|
28448
|
-
results_1 = _a.sent();
|
|
28449
|
-
items = flatten(results_1);
|
|
28450
|
-
setResults(results_1);
|
|
28451
|
-
selectedIdInResults = items.some(function (item) { return item.id === selectedId; });
|
|
28452
|
-
if (!selectedIdInResults) {
|
|
28453
|
-
setSelectedId(items.length ? items[0].id : '');
|
|
28454
|
-
}
|
|
28455
|
-
return [3 /*break*/, 4];
|
|
28456
|
-
case 3:
|
|
28457
|
-
setIsLoading(false);
|
|
28458
|
-
return [7 /*endfinally*/];
|
|
28459
|
-
case 4: return [2 /*return*/];
|
|
28276
|
+
async function retrieveResults(input) {
|
|
28277
|
+
if (input !== '' && input.length >= props.minCharactersForSearch) {
|
|
28278
|
+
setIsLoading(true);
|
|
28279
|
+
try {
|
|
28280
|
+
const results = await props.getOptions(input);
|
|
28281
|
+
const items = flatten(results);
|
|
28282
|
+
setResults(results);
|
|
28283
|
+
const selectedIdInResults = items.some((item) => item.id === selectedId);
|
|
28284
|
+
if (!selectedIdInResults) {
|
|
28285
|
+
setSelectedId(items.length ? items[0].id : '');
|
|
28460
28286
|
}
|
|
28461
|
-
}
|
|
28462
|
-
|
|
28287
|
+
}
|
|
28288
|
+
finally {
|
|
28289
|
+
setIsLoading(false);
|
|
28290
|
+
}
|
|
28291
|
+
}
|
|
28463
28292
|
}
|
|
28464
28293
|
function handleKeyDown(event) {
|
|
28465
28294
|
switch (event.key) {
|
|
@@ -28482,19 +28311,19 @@ var LuiSearchInput = function (props) {
|
|
|
28482
28311
|
}
|
|
28483
28312
|
function scrollToViewSelected(topOfView) {
|
|
28484
28313
|
// Wait for ref to update before scrolling to it
|
|
28485
|
-
setTimeout(
|
|
28314
|
+
setTimeout(() => selectedRef.current?.scrollIntoView(topOfView), 0);
|
|
28486
28315
|
}
|
|
28487
|
-
React.useEffect(
|
|
28316
|
+
React.useEffect(() => {
|
|
28488
28317
|
retrieveResults(typedValue);
|
|
28489
28318
|
}, [typedValue]);
|
|
28490
|
-
|
|
28491
|
-
onClick:
|
|
28319
|
+
const cancelIcon = typedValue !== '' ? (React__default["default"].createElement(LuiIcon, { alt: "clear", name: "ic_cancel_clear", size: "md", className: 'LuiSearchInput-iconPosition', spanProps: {
|
|
28320
|
+
onClick: () => {
|
|
28492
28321
|
setInputValue('');
|
|
28493
28322
|
setResults([]);
|
|
28494
28323
|
},
|
|
28495
28324
|
} })) : null;
|
|
28496
|
-
|
|
28497
|
-
|
|
28325
|
+
const searchIcon = (React__default["default"].createElement(LuiIcon, { className: 'LuiSearchInput-startIconPosition', name: "ic_search", size: "md", alt: "search", spanProps: { onClick: () => inputRef.current?.focus() } }));
|
|
28326
|
+
const typeMore = 'You need to type a few more characters';
|
|
28498
28327
|
function enoughChars(input) {
|
|
28499
28328
|
if (typeof props.minCharactersForSearch === 'number')
|
|
28500
28329
|
return input.length >= props.minCharactersForSearch;
|
|
@@ -28509,20 +28338,20 @@ var LuiSearchInput = function (props) {
|
|
|
28509
28338
|
return typeMore;
|
|
28510
28339
|
}
|
|
28511
28340
|
if (props.name)
|
|
28512
|
-
return
|
|
28341
|
+
return `The ${props.name} could not be displayed or does not exist.`;
|
|
28513
28342
|
else
|
|
28514
28343
|
return null;
|
|
28515
28344
|
}
|
|
28516
28345
|
return (React__default["default"].createElement("div", { className: "LuiSearchInput" },
|
|
28517
28346
|
React__default["default"].createElement("span", { className: "LuiSearchInput-inputWrapper" },
|
|
28518
28347
|
searchIcon,
|
|
28519
|
-
React__default["default"].createElement("input", { type: "text", className: clsx('LuiSearchInput-input'), ref: inputRef, value: typedValue, placeholder: props.placeholderText, "aria-label": "Search", onChange:
|
|
28348
|
+
React__default["default"].createElement("input", { type: "text", className: clsx('LuiSearchInput-input'), ref: inputRef, value: typedValue, placeholder: props.placeholderText, "aria-label": "Search", onChange: (e) => setInputValue(e.target.value), onKeyDown: handleKeyDown, onFocus: (e) => {
|
|
28520
28349
|
e.target.select();
|
|
28521
28350
|
retrieveResults(typedValue);
|
|
28522
28351
|
setHaveFocus(true);
|
|
28523
28352
|
},
|
|
28524
28353
|
// This timeout could be a little brittle but allows the menu to stay open long enough to click it
|
|
28525
|
-
onBlur:
|
|
28354
|
+
onBlur: () => setTimeout(() => setHaveFocus(false), 200) }),
|
|
28526
28355
|
cancelIcon),
|
|
28527
28356
|
(isLoading || results.length > 0) && haveFocus && (React__default["default"].createElement("div", null,
|
|
28528
28357
|
React__default["default"].createElement(ResultsDisplay, { results: results, selectedId: selectedId, setSelectedId: setSelectedId, selectedRef: selectedRef, onClick: selectItem, isLoading: isLoading, renderItem: props.renderItem }))),
|
|
@@ -28538,43 +28367,33 @@ var LuiSearchInput = function (props) {
|
|
|
28538
28367
|
React__default["default"].createElement("div", { "data-testid": "disclaimer", className: "LuiSearchInput-disclaimer" }, props.disclaimer)))));
|
|
28539
28368
|
};
|
|
28540
28369
|
|
|
28541
|
-
|
|
28370
|
+
const resultStyle$1 = { verticalAlign: 'middle' };
|
|
28542
28371
|
/**
|
|
28543
28372
|
* LuiSearchBox is a search input with select menu.
|
|
28544
28373
|
* The options of the menu and input can be passed in as an array.
|
|
28545
28374
|
* See examples in SearchBox in storybook.
|
|
28546
28375
|
*/
|
|
28547
|
-
|
|
28548
|
-
|
|
28549
|
-
|
|
28550
|
-
var value = _a.value;
|
|
28551
|
-
return value === initOptionValue;
|
|
28552
|
-
});
|
|
28553
|
-
var _b = React.useState(initOption ? initOption : searchBoxOptions[0]), selectedMenuOption = _b[0], setSelectedMenuOption = _b[1];
|
|
28376
|
+
const LuiSearchBox = ({ searchBoxOptions, initOptionValue, onMenuSelect, autoFocus, }) => {
|
|
28377
|
+
const initOption = searchBoxOptions.find(({ value }) => value === initOptionValue);
|
|
28378
|
+
const [selectedMenuOption, setSelectedMenuOption,] = React.useState(initOption ? initOption : searchBoxOptions[0]);
|
|
28554
28379
|
//auto focus every time select a menu item
|
|
28555
|
-
|
|
28380
|
+
const [focusUpdate, setFocusUpdate] = React.useState(false);
|
|
28556
28381
|
//don't focus when first time display
|
|
28557
|
-
|
|
28558
|
-
React.useEffect(
|
|
28559
|
-
|
|
28560
|
-
var value = _a.value;
|
|
28561
|
-
return value === initOptionValue;
|
|
28562
|
-
});
|
|
28382
|
+
const [isFocus, setIsFocus] = React.useState(false);
|
|
28383
|
+
React.useEffect(() => {
|
|
28384
|
+
const updatedOption = searchBoxOptions.find(({ value }) => value === initOptionValue);
|
|
28563
28385
|
if (updatedOption)
|
|
28564
28386
|
setSelectedMenuOption(updatedOption);
|
|
28565
28387
|
}, [initOptionValue]);
|
|
28566
|
-
|
|
28388
|
+
const handleMenuSelected = (e) => {
|
|
28567
28389
|
setSelectedMenuOption(findSelectedOption(e.value));
|
|
28568
28390
|
if (onMenuSelect !== undefined)
|
|
28569
28391
|
onMenuSelect(e);
|
|
28570
28392
|
setIsFocus(true);
|
|
28571
28393
|
setFocusUpdate(!focusUpdate);
|
|
28572
28394
|
};
|
|
28573
|
-
|
|
28574
|
-
|
|
28575
|
-
var value = _a.value;
|
|
28576
|
-
return value === v;
|
|
28577
|
-
});
|
|
28395
|
+
const findSelectedOption = (v) => {
|
|
28396
|
+
const selectedOption = searchBoxOptions.find(({ value }) => value === v);
|
|
28578
28397
|
return selectedOption ? selectedOption : searchBoxOptions[0];
|
|
28579
28398
|
};
|
|
28580
28399
|
return (React__default["default"].createElement("div", { className: "LuiSearchBox" },
|
|
@@ -28582,23 +28401,23 @@ var LuiSearchBox = function (_a) {
|
|
|
28582
28401
|
React__default["default"].createElement("div", { className: "LuiSearchBox-right" },
|
|
28583
28402
|
React__default["default"].createElement(LuiSearchInput, { name: selectedMenuOption.name ? selectedMenuOption.name : undefined, minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
28584
28403
|
? selectedMenuOption.renderItem
|
|
28585
|
-
:
|
|
28404
|
+
: (item) => {
|
|
28586
28405
|
return React__default["default"].createElement("span", { style: resultStyle$1 }, item.description);
|
|
28587
28406
|
}, disclaimer: selectedMenuOption.disclaimer, focusUpdate: autoFocus && isFocus ? focusUpdate : undefined }))));
|
|
28588
28407
|
};
|
|
28589
|
-
|
|
28590
|
-
return (React__default["default"].createElement(LuiButton,
|
|
28408
|
+
const LuiSearchBoxButton = React__default["default"].forwardRef((props, ref) => {
|
|
28409
|
+
return (React__default["default"].createElement(LuiButton, { level: "tertiary", ...props, ref: ref, className: "LuiSearchBox-button" },
|
|
28591
28410
|
props.children,
|
|
28592
28411
|
React__default["default"].createElement(LuiIcon, { size: "md", name: 'ic_keyboard_arrow_down', className: 'LuiSearchBox-button-icon', alt: '' })));
|
|
28593
28412
|
});
|
|
28594
|
-
|
|
28413
|
+
const renderSelectMenu = (items, onClick) => (React__default["default"].createElement(React__default["default"].Fragment, null, items.map((item) => {
|
|
28595
28414
|
return (React__default["default"].createElement(React__default["default"].Fragment, { key: item.value },
|
|
28596
28415
|
item.groupDivider ? React__default["default"].createElement(LuiSelectMenuDivider, null) : null,
|
|
28597
28416
|
item.groupTitle ? (React__default["default"].createElement(LuiSelectMenuHeader, null, item.groupTitle)) : null,
|
|
28598
|
-
React__default["default"].createElement(LuiSelectMenuItem, { "data-testid":
|
|
28599
|
-
})));
|
|
28417
|
+
React__default["default"].createElement(LuiSelectMenuItem, { "data-testid": `select-box-${item.value}`, value: item.value, onClick: onClick, noPadding: true }, item.title)));
|
|
28418
|
+
})));
|
|
28600
28419
|
|
|
28601
|
-
|
|
28420
|
+
const exampleSearchResults = [
|
|
28602
28421
|
{
|
|
28603
28422
|
id: 'DP44035-1',
|
|
28604
28423
|
description: 'This is a example Newlands search result',
|
|
@@ -28608,27 +28427,27 @@ var exampleSearchResults = [
|
|
|
28608
28427
|
description: 'This is a example Newlands search result 2',
|
|
28609
28428
|
},
|
|
28610
28429
|
];
|
|
28611
|
-
|
|
28430
|
+
const getDefaultOptions = (input) => {
|
|
28612
28431
|
if (input) {
|
|
28613
|
-
|
|
28432
|
+
const results = exampleSearchResults.filter((item) => {
|
|
28614
28433
|
return item.description.toUpperCase().includes(input.toUpperCase());
|
|
28615
28434
|
});
|
|
28616
|
-
return new Promise(
|
|
28617
|
-
setTimeout(
|
|
28435
|
+
return new Promise((resolve) => {
|
|
28436
|
+
setTimeout(() => resolve(results), 250);
|
|
28618
28437
|
});
|
|
28619
28438
|
}
|
|
28620
28439
|
else {
|
|
28621
28440
|
return Promise.resolve([]);
|
|
28622
28441
|
}
|
|
28623
28442
|
};
|
|
28624
|
-
|
|
28443
|
+
const defaultSelectOption = (selectedOption) => {
|
|
28625
28444
|
console.log('SELECTED OPTION: ', selectedOption);
|
|
28626
28445
|
};
|
|
28627
|
-
|
|
28628
|
-
|
|
28446
|
+
const resultStyle = { verticalAlign: 'middle' };
|
|
28447
|
+
const defaultRenderItem = (item) => {
|
|
28629
28448
|
return React__default["default"].createElement("span", { style: resultStyle }, item.description);
|
|
28630
28449
|
};
|
|
28631
|
-
|
|
28450
|
+
const searchBoxOptions = [
|
|
28632
28451
|
{
|
|
28633
28452
|
groupTitle: 'Title',
|
|
28634
28453
|
value: 'address',
|
|
@@ -28688,17 +28507,16 @@ var searchBoxOptions = [
|
|
|
28688
28507
|
onSelectOption: defaultSelectOption,
|
|
28689
28508
|
},
|
|
28690
28509
|
];
|
|
28691
|
-
|
|
28510
|
+
const getDefaultSearchMenuOptions = () => {
|
|
28692
28511
|
return searchBoxOptions;
|
|
28693
28512
|
};
|
|
28694
|
-
|
|
28695
|
-
var searchBoxOptions = _a.searchBoxOptions, initOptionValue = _a.initOptionValue, onMenuSelect = _a.onMenuSelect;
|
|
28513
|
+
const LOLSearchBox = ({ searchBoxOptions, initOptionValue, onMenuSelect, }) => {
|
|
28696
28514
|
return (React__default["default"].createElement(LuiSearchBox, { onMenuSelect: onMenuSelect, initOptionValue: initOptionValue, searchBoxOptions: searchBoxOptions ? searchBoxOptions : getDefaultSearchMenuOptions() }));
|
|
28697
28515
|
};
|
|
28698
28516
|
|
|
28699
28517
|
var mountainBroken = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzAwIDI1MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7fS5jbHMtMntmaWxsOiM0MjQ1NDc7fS5jbHMtM3tjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgpO30uY2xzLTR7ZmlsbDojN2E3YTdhO30uY2xzLTV7b3BhY2l0eTowLjU7fS5jbHMtNntmaWxsOmdyYXk7fS5jbHMtN3tmaWxsOiNhM2EzYTM7fS5jbHMtOHtmaWxsOiNmZmY7fS5jbHMtOXtmaWxsOnVybCgjcmFkaWFsLWdyYWRpZW50KTt9LmNscy0xMHtmaWxsOnVybCgjcmFkaWFsLWdyYWRpZW50LTIpO30uY2xzLTExe2ZpbGw6dXJsKCNsaW5lYXItZ3JhZGllbnQpO30uY2xzLTEye2ZpbGw6I2ViY2VhYzt9LmNscy0xM3tmaWxsOiNkNGJhOWI7fS5jbHMtMTR7b3BhY2l0eTowLjM7fS5jbHMtMTUsLmNscy0xNntmaWxsOiM3ZDczNjg7fS5jbHMtMTZ7b3BhY2l0eTowLjI7fS5jbHMtMTd7ZmlsbDojYjNlZWY4O30uY2xzLTE4e2ZpbGw6IzAwYTRhMjt9LmNscy0xOXtmaWxsOiM2YmNhYzk7fS5jbHMtMjB7ZmlsbDojOTZkYWQ5O30uY2xzLTIxe2ZpbGw6IzAwNjkyYTt9LmNscy0yMntmaWxsOiMwMDgzOWQ7fS5jbHMtMjN7ZmlsbDojMDA4YTE3O30uY2xzLTI0e2ZpbGw6IzAwNjU1Yzt9LmNscy0yNXtmaWxsOiMwMGFkMWI7fS5jbHMtMjZ7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudC0yKTt9LmNscy0yN3tmaWxsOiM2YjE2MGY7fS5jbHMtMjh7ZmlsbDojYmMyNjFhO30uY2xzLTI5e2ZpbGw6IzNkMDUwMDt9LmNscy0zMHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTMpO30uY2xzLTMxe2ZpbGw6I2ViNGMzZjt9LmNscy0zMntmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTQpO30uY2xzLTMze2ZpbGw6IzYxNjA2MDt9LmNscy0zNHtmaWxsOiNkYmQ5ZDk7fTwvc3R5bGU+PGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPjxwb2x5Z29uIGNsYXNzPSJjbHMtMSIgcG9pbnRzPSIyMTEuMTQgMTIwLjAxIDE3NS43MSA3MC44NiAxNDUuNDIgMjMuNDMgMTE5LjMyIDc2LjU4IDk0LjU2IDExNS40NCA1Ni44NCAxNzkuNDUgMTI4LjkzIDE3NC42OSAxODMuNzEgMTgxLjc0IDI1OS43MiAxNjcuNDUgMjExLjE0IDEyMC4wMSIvPjwvY2xpcFBhdGg+PHJhZGlhbEdyYWRpZW50IGlkPSJyYWRpYWwtZ3JhZGllbnQiIGN4PSIxNDguNiIgY3k9IjEwNC40NSIgcj0iNzYuODIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAuMTMiIHN0b3AtY29sb3I9IiM3Zjg1OGEiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMC4yMiIgc3RvcC1jb2xvcj0iIzZlNzM3NyIgc3RvcC1vcGFjaXR5PSIwLjA5Ii8+PHN0b3Agb2Zmc2V0PSIwLjk2IiBzdG9wLWNvbG9yPSIjMGUwZjBmIiBzdG9wLW9wYWNpdHk9IjAuNiIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPSJyYWRpYWwtZ3JhZGllbnQtMiIgY3g9IjExNS40OSIgY3k9Ijg0LjE3IiByPSIxNTUuMjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiN2MwYzciLz48c3RvcCBvZmZzZXQ9IjAuMDQiIHN0b3AtY29sb3I9IiNhY2I0YmIiLz48c3RvcCBvZmZzZXQ9IjAuMjgiIHN0b3AtY29sb3I9IiM3NDdhN2UiLz48c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzQ4NGM0ZSIvPjxzdG9wIG9mZnNldD0iMC43IiBzdG9wLWNvbG9yPSIjMjgyYjJjIi8+PHN0b3Agb2Zmc2V0PSIwLjg2IiBzdG9wLWNvbG9yPSIjMTUxNjE3Ii8+PHN0b3Agb2Zmc2V0PSIwLjk2IiBzdG9wLWNvbG9yPSIjMGUwZjBmIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudCIgeDE9IjIwMC44MSIgeTE9IjE5NC43OSIgeDI9IjI5MC4wOSIgeTI9IjE5NC43OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2JhYmFiYSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2Y1ZjVmNSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMiIgeDE9IjExMi40MSIgeTE9IjE5NC4zNiIgeDI9IjE1NCIgeTI9IjE4NC4wMyIgeGxpbms6aHJlZj0iI2xpbmVhci1ncmFkaWVudCIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTMiIHgxPSItMjc2LjQyIiB5MT0iLTc2Ljg3IiB4Mj0iLTI1NC44OSIgeTI9Ii03Ny4xNSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtNzcuNTUgMzgyKSByb3RhdGUoMTE3LjY5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2M3ZDBkNiIvPjxzdG9wIG9mZnNldD0iMC4wOSIgc3RvcC1jb2xvcj0iI2FlYjZiYiIvPjxzdG9wIG9mZnNldD0iMC4zMiIgc3RvcC1jb2xvcj0iIzc2N2I3ZSIvPjxzdG9wIG9mZnNldD0iMC41MyIgc3RvcC1jb2xvcj0iIzQ5NGM0ZSIvPjxzdG9wIG9mZnNldD0iMC43MSIgc3RvcC1jb2xvcj0iIzI5MmIyYyIvPjxzdG9wIG9mZnNldD0iMC44NiIgc3RvcC1jb2xvcj0iIzE1MTYxNyIvPjxzdG9wIG9mZnNldD0iMC45NiIgc3RvcC1jb2xvcj0iIzBlMGYwZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNCIgeDE9IjExNi4yNCIgeTE9IjE4NC42NSIgeDI9IjExNi4yOCIgeTI9IjE4OC4zNiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEuNDEgMTcuODcpIHJvdGF0ZSgtNy4wNSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNhNmFmYjUiLz48c3RvcCBvZmZzZXQ9IjAuMjQiIHN0b3AtY29sb3I9IiM3NDdhN2UiLz48c3RvcCBvZmZzZXQ9IjAuNDciIHN0b3AtY29sb3I9IiM0ODRjNGUiLz48c3RvcCBvZmZzZXQ9IjAuNjgiIHN0b3AtY29sb3I9IiMyODJiMmMiLz48c3RvcCBvZmZzZXQ9IjAuODUiIHN0b3AtY29sb3I9IiMxNTE2MTciLz48c3RvcCBvZmZzZXQ9IjAuOTYiIHN0b3AtY29sb3I9IiMwZTBmMGYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMjExLjE0IDEyMC4wMSAxNzUuNzEgNzAuODYgMTQ1LjQyIDIzLjQzIDExOS4zMiA3Ni41OCA5NC41NiAxMTUuNDQgNTYuODQgMTc5LjQ1IDEyOC45MyAxNzQuNjkgMTgzLjcxIDE4MS43NCAyNTkuNzIgMTY3LjQ1IDIxMS4xNCAxMjAuMDEiLz48ZyBjbGFzcz0iY2xzLTMiPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTE0Ni43OSw2OS44MmwtMS0uNDNjLS44Mi0uMzQtLjg3LTEtLjEyLTEuNDdsMS0uNTljLjc1LS40Ny42NC0uOS0uMjUtMWwtMS4xMS0uMDdjLS44OS0uMDYtMS4xNS0uNjYtLjU5LTEuMzVsLjctLjg3Yy41Ni0uNjkuMzItMS4wNS0uNTQtLjgybC0xLjA4LjNjLS44NS4yMy0xLjMtLjI2LTEtMS4wOWwuMzgtMWMuMzEtLjgzLDAtMS4xLS43Ny0uNmwtLjkzLjYzYy0uNzMuNS0xLjMxLjE5LTEuMjktLjdsMC0xLjEyYzAtLjg4LS40LTEtLjkzLS4zMmwtLjY3LjljLS41Mi43MS0xLjE4LjYtMS40NS0uMjRsLS4zNC0xLjA3Yy0uMjctLjg0LS43MS0uODQtMSwwTDEzNS40Myw2MGMtLjI3Ljg0LS45MywxLTEuNDUuMjRsLS42Ny0uOWMtLjUzLS43MS0uOTUtLjU2LS45My4zMmwwLDEuMTJjMCwuODktLjU2LDEuMi0xLjI5LjdsLS45My0uNjNjLS43My0uNS0xLjA4LS4yMy0uNzcuNmwuMzgsMWMuMzEuODMtLjE0LDEuMzItMSwxLjA5bC0xLjA4LS4zYy0uODYtLjIzLTEuMS4xMy0uNTQuODJsLjcxLjg3Yy41NS42OS4yOSwxLjI5LS42LDEuMzVsLTEuMTEuMDdjLS44OS4wNS0xLC40OC0uMjUsMWwxLC41OWMuNzUuNDcuNjksMS4xMy0uMTMsMS40N2wtMSwuNDNjLS44Mi4zNC0uNzguNzguMDgsMWwxLjA5LjI1Yy44Ni4yLDEsLjg0LjM2LDEuNDNsLS44NC43NGMtLjY2LjU4LS40OCwxLC40LjlsMS4xMS0uMTJjLjg4LS4wOSwxLjI0LjQ2LjgxLDEuMjNsLS41NiwxYy0uNDMuNzctLjEzLDEuMDkuNjcuNzJsMS0uNDdjLjgxLS4zNywxLjMzLDAsMS4xNy45bC0uMjEsMS4xYy0uMTcuODcuMjIsMS4wOC44Ni40N2wuODEtLjc4Yy42NC0uNjEsMS4yNi0uMzksMS4zOS40OGwuMTYsMS4xMWMuMTMuODguNTcsMSwxLC4xNmwuNTEtMWMuNDEtLjc5LDEuMDctLjc5LDEuNDgsMGwuNTEsMWMuNC43OS44NC43MiwxLS4xNmwuMTYtMS4xMWMuMTMtLjg3Ljc1LTEuMDksMS4zOS0uNDhsLjgxLjc4Yy42NC42MSwxLC40Ljg2LS40N2wtLjIxLTEuMWMtLjE2LS44Ny4zNi0xLjI3LDEuMTctLjlsMSwuNDdjLjgxLjM3LDEuMSwwLC42Ny0uNzJsLS41Ni0xYy0uNDMtLjc3LS4wNy0xLjMyLjgxLTEuMjNsMS4xMS4xMmMuODguMDksMS4wNi0uMzIuNC0uOWwtLjg0LS43NGMtLjY2LS41OS0uNS0xLjIzLjM2LTEuNDNsMS4wOS0uMjVDMTQ3LjU3LDcwLjYsMTQ3LjYxLDcwLjE2LDE0Ni43OSw2OS44MlptLTEwLjUzLDYuODNhNy4zLDcuMywwLDEsMSw3LjMtNy4yOUE3LjI5LDcuMjksMCwwLDEsMTM2LjI2LDc2LjY1WiIvPjxjaXJjbGUgY2xhc3M9ImNscy00IiBjeD0iMTM2LjI2IiBjeT0iNjkuMzYiIHI9IjMuNjIiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMTEsMTI5LjgzbC0xLjY1LS42OGMtMS4zLS41NC0xLjM4LTEuNTktLjE5LTIuMzRsMS41MS0uOTRjMS4xOS0uNzQsMS0xLjQyLS4zOC0xLjUxbC0xLjc4LS4xMWMtMS40MS0uMDktMS44My0xLS45NC0yLjE0bDEuMTItMS4zOWMuODktMS4wOS41LTEuNjgtLjg1LTEuM2wtMS43Mi40N2MtMS4zNi4zNy0yLjA3LS40LTEuNTktMS43MmwuNjItMS42OGMuNDgtMS4zMi0uMDctMS43NS0xLjIzLS45NWwtMS40NywxYy0xLjE3Ljc5LTIuMDkuMjktMi4wNi0xLjExbDAtMS43OGMwLTEuNDEtLjYzLTEuNjQtMS40Ny0uNTFsLTEuMDcsMS40M2MtLjg0LDEuMTItMS44OCwxLTIuMzEtLjM5bC0uNTQtMS42OWMtLjQzLTEuMzQtMS4xMy0xLjM0LTEuNTYsMEw5MywxMTQuMThjLS40MywxLjM0LTEuNDcsMS41MS0yLjMxLjM5bC0xLjA3LTEuNDNjLS44NC0xLjEzLTEuNS0uOS0xLjQ3LjUxbDAsMS43OGMwLDEuNC0uODksMS45LTIsMS4xMWwtMS40OC0xYy0xLjE2LS44LTEuNzEtLjM3LTEuMjMuOTVsLjYyLDEuNjhjLjQ4LDEuMzItLjIzLDIuMDktMS41OSwxLjcybC0xLjcyLS40N2MtMS4zNS0uMzgtMS43NC4yMS0uODUsMS4zTDgxLDEyMi4xMWMuODksMS4wOS40NywyLS45NCwyLjE0bC0xLjc3LjExYy0xLjQxLjA5LTEuNTguNzctLjM5LDEuNTFsMS41MS45NGMxLjIuNzUsMS4xMSwxLjgtLjE5LDIuMzRsLTEuNjUuNjhjLTEuMjkuNTQtMS4yNCwxLjI0LjEzLDEuNTVsMS43NC40MWMxLjM3LjMxLDEuNjMsMS4zMy41NywyLjI2bC0xLjMzLDEuMThjLTEuMDYuOTMtLjc3LDEuNTguNjIsMS40M2wxLjc4LS4xOGMxLjQtLjE1LDIsLjc0LDEuMjgsMkw4MS40MywxNDBjLS43LDEuMjItLjIyLDEuNzQsMSwxLjE1bDEuNjItLjc1YzEuMjgtLjU5LDIuMTEuMDUsMS44NSwxLjQzbC0uMzMsMS43NWMtLjI2LDEuMzkuMzYsMS43MiwxLjM3Ljc1bDEuMjktMS4yNGMxLTEsMi0uNjMsMi4yMS43NmwuMjYsMS43N2MuMiwxLjM5Ljg5LDEuNSwxLjUzLjI1bC44Mi0xLjU4Yy42NC0xLjI1LDEuNy0xLjI1LDIuMzQsMGwuODIsMS41OGMuNjQsMS4yNSwxLjMzLDEuMTQsMS41NC0uMjVsLjI1LTEuNzdjLjIxLTEuMzksMS4yLTEuNzMsMi4yMi0uNzZsMS4yOCwxLjI0YzEsMSwxLjYzLjY0LDEuMzctLjc1bC0uMzMtMS43NWMtLjI2LTEuMzguNTgtMiwxLjg1LTEuNDNsMS42Mi43NWMxLjI3LjU5LDEuNzUuMDcsMS0xLjE1bC0uODgtMS41NWMtLjY5LTEuMjItLjExLTIuMTEsMS4yOC0ybDEuNzguMThjMS4zOS4xNSwxLjY4LS41LjYyLTEuNDNsLTEuMzMtMS4xOGMtMS4wNi0uOTMtLjgtMiwuNTctMi4yNmwxLjc0LS40MUMxMTIuMjYsMTMxLjA3LDExMi4zMiwxMzAuMzcsMTExLDEyOS44M1pNOTQuMjcsMTQwLjdhMTEuNjEsMTEuNjEsMCwxLDEsMTEuNi0xMS42MUExMS42LDExLjYsMCwwLDEsOTQuMjcsMTQwLjdaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTQiIGN4PSI5NC4yNyIgY3k9IjEyOS4wOSIgcj0iNS43NSIvPjxnIGNsYXNzPSJjbHMtNSI+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIxMzQuMTYiIHk9Ijc3LjMiIHdpZHRoPSIzOS40NCIgaGVpZ2h0PSIzNS45MSIgcng9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMi4yOCAxMzYuNzEpIHJvdGF0ZSgtNDUpIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxNTMuODgiIGN5PSI5NS4yNSIgcj0iNy41MiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMjA0LjIxIiB5PSI4MSIgd2lkdGg9IjIzLjQyIiBoZWlnaHQ9IjE1Mi41OSIgcng9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00Ny45OCAxOTguNzUpIHJvdGF0ZSgtNDUpIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNTguNzUiIHk9IjExMS4zNiIgd2lkdGg9IjIzLjQyIiBoZWlnaHQ9IjAuOTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yOS4xNSAxNTMuMjkpIHJvdGF0ZSgtNDUpIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNjAuMzUiIHk9IjExMi45NiIgd2lkdGg9IjIzLjQyIiBoZWlnaHQ9IjAuOTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yOS44MSAxNTQuODkpIHJvdGF0ZSgtNDUpIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNjEuOTciIHk9IjExNC41OCIgd2lkdGg9IjIzLjQyIiBoZWlnaHQ9IjAuOTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMC40OSAxNTYuNTEpIHJvdGF0ZSgtNDUpIi8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTE3MC42OSw5NS45LDE2OSw5NS4yMmMtMS4yOS0uNTQtMS4zOC0xLjU5LS4xOS0yLjMzbDEuNTEtMWMxLjE5LS43NCwxLTEuNDItLjM4LTEuNTFsLTEuNzgtLjExYy0xLjQtLjA5LTEuODMtMS0uOTQtMi4xNGwxLjEyLTEuMzljLjg5LTEuMDkuNTEtMS42OC0uODUtMS4zbC0xLjcyLjQ3Yy0xLjM1LjM3LTIuMDctLjQtMS41OC0xLjcybC42MS0xLjY3Yy40OC0xLjMyLS4wNy0xLjc2LTEuMjMtMWwtMS40NywxYy0xLjE2Ljc5LTIuMDkuMjktMi4wNi0xLjExbDAtMS43OGMwLTEuNDEtLjY0LTEuNjQtMS40OC0uNTFsLTEuMDYsMS40M2MtLjg0LDEuMTMtMS44OCwxLTIuMzEtLjM5bC0uNTUtMS42OWMtLjQyLTEuMzQtMS4xMy0xLjM0LTEuNTYsMGwtLjU0LDEuNjljLS40MywxLjM0LTEuNDcsMS41Mi0yLjMxLjM5bC0xLjA2LTEuNDNjLS44NC0xLjEzLTEuNTEtLjktMS40OC41MWwwLDEuNzhjMCwxLjQtLjksMS45LTIuMDYsMS4xMWwtMS40Ny0xYy0xLjE2LS44LTEuNzItLjM2LTEuMjMsMWwuNjEsMS42N2MuNDgsMS4zMi0uMjMsMi4wOS0xLjU5LDEuNzJsLTEuNzEtLjQ3Yy0xLjM2LS4zOC0xLjc0LjIxLS44NiwxLjNsMS4xMywxLjM5Yy44OCwxLjA5LjQ2LDItLjk0LDIuMTRsLTEuNzguMTFjLTEuNC4wOS0xLjU4Ljc3LS4zOCwxLjUxbDEuNTEsMWMxLjE5Ljc0LDEuMSwxLjc5LS4yLDIuMzNsLTEuNjQuNjhjLTEuMy41NC0xLjI0LDEuMjQuMTMsMS41NmwxLjczLjRjMS4zNy4zMSwxLjYzLDEuMzQuNTgsMi4yN2wtMS4zNCwxLjE4Yy0xLjA1LjkzLS43NywxLjU3LjYzLDEuNDJsMS43Ny0uMThjMS40LS4xNCwyLC43NCwxLjI4LDJsLS44OCwxLjU1Yy0uNjksMS4yMi0uMjIsMS43NCwxLjA2LDEuMTVsMS42MS0uNzVjMS4yOC0uNTksMi4xMS4wNSwxLjg1LDEuNDRsLS4zMywxLjc1Yy0uMjYsMS4zOC4zNiwxLjcxLDEuMzcuNzRsMS4yOS0xLjIzYzEtMSwyLS42NCwyLjIxLjc2bC4yNiwxLjc2Yy4yLDEuMzkuODksMS41LDEuNTQuMjVsLjgxLTEuNThjLjY1LTEuMjUsMS43LTEuMjUsMi4zNCwwbC44MiwxLjU4Yy42NCwxLjI1LDEuMzQsMS4xNCwxLjU0LS4yNWwuMjYtMS43NmMuMi0xLjQsMS4xOS0xLjc0LDIuMjEtLjc2bDEuMjgsMS4yM2MxLDEsMS42NC42NCwxLjM4LS43NGwtLjMzLTEuNzVjLS4yNi0xLjM5LjU3LTIsMS44NC0xLjQ0bDEuNjIuNzVjMS4yOC41OSwxLjc1LjA3LDEuMDYtMS4xNWwtLjg4LTEuNTVjLS43LTEuMjItLjEyLTIuMSwxLjI4LTJsMS43Ny4xOGMxLjQuMTUsMS42OC0uNDkuNjMtMS40MmwtMS4zNC0xLjE4Yy0xLjA1LS45My0uNzktMiwuNTgtMi4yN2wxLjczLS40QzE3MS45Myw5Ny4xNCwxNzIsOTYuNDQsMTcwLjY5LDk1LjlabS0xNi43NSwxMC44N2ExMS42MSwxMS42MSwwLDEsMSwxMS42MS0xMS42MUExMS42MSwxMS42MSwwLDAsMSwxNTMuOTQsMTA2Ljc3WiIvPjxjaXJjbGUgY2xhc3M9ImNscy03IiBjeD0iMTUzLjk0IiBjeT0iOTUuMTYiIHI9IjUuNzUiLz48cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjExNi4wMyIgeT0iMTAwLjA3IiB3aWR0aD0iNDguNTUiIGhlaWdodD0iNTMuMzIiIHJ4PSI2Ljc2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAuMTYgMjQxLjIxKSByb3RhdGUoLTc5LjM2KSIvPjxjaXJjbGUgY2xhc3M9ImNscy0yIiBjeD0iMTQwLjMiIGN5PSIxMjYuNzMiIHI9IjEwLjE3Ii8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIxNS4yNSIgeT0iMjI3LjQ3IiB3aWR0aD0iMjA2LjI5IiBoZWlnaHQ9IjMxLjY3IiByeD0iNi43NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE0Mi41OSAzMTQuNzIpIHJvdGF0ZSgtNzkuMzYpIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxMTguNjEiIHk9IjE1Ny4yNSIgd2lkdGg9IjMxLjY3IiBoZWlnaHQ9IjEuMjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMxLjQ3IC0yMi4xMikgcm90YXRlKDEwLjY0KSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTE4LjA1IiB5PSIxNjAuMjUiIHdpZHRoPSIzMS42NyIgaGVpZ2h0PSIxLjI4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMi4wMiAtMjEuOTYpIHJvdGF0ZSgxMC42NCkiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjExNy40OCIgeT0iMTYzLjMiIHdpZHRoPSIzMS42NyIgaGVpZ2h0PSIxLjI4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMi41NyAtMjEuOCkgcm90YXRlKDEwLjY0KSIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTEzOC43OSwxMDAuODdjLjY3LTIuMSwxLjc3LTIuMSwyLjQ0LDBsLjg1LDIuNjVjLjY3LDIuMSwyLjMsMi4zNywzLjYxLjZsMS42Ny0yLjIzYzEuMzEtMS43NiwyLjM1LTEuNDEsMi4zMS43OWwtLjA2LDIuNzljLS4wNSwyLjIsMS40LDMsMy4yMiwxLjc0bDIuMy0xLjU3YzEuODItMS4yNCwyLjY4LS41NywxLjkzLDEuNWwtMSwyLjYyYy0uNzYsMi4wNi4zNiwzLjI3LDIuNDgsMi42OWwyLjY5LS43NGMyLjEyLS41OCwyLjcyLjM0LDEuMzMsMi4wNWwtMS43NiwyLjE2Yy0xLjM4LDEuNzEtLjcyLDMuMjIsMS40OCwzLjM1bDIuNzguMThjMi4xOS4xMywyLjQ2LDEuMi42LDIuMzZsLTIuMzcsMS40OGMtMS44NiwxLjE2LTEuNzMsMi44MS4zLDMuNjVsMi41OCwxLjA2YzIsLjg1LDEuOTQsMS45NC0uMiwyLjQ0bC0yLjcyLjYzYy0yLjE0LjQ5LTIuNTUsMi4wOS0uOSwzLjU1bDIuMDksMS44NGMxLjY1LDEuNDYsMS4yMSwyLjQ2LTEsMi4yNGwtMi43Ny0uMjljLTIuMTktLjIzLTMuMDksMS4xNS0yLDMuMDdsMS4zNywyLjQyYzEuMDksMS45MS4zNSwyLjcyLTEuNjUsMS43OWwtMi41My0xLjE3Yy0yLS45Mi0zLjMuMDktMi44OSwyLjI1bC41MiwyLjc0Yy40LDIuMTYtLjU2LDIuNjktMi4xNSwxLjE2bC0yLTEuOTNjLTEuNTktMS41Mi0zLjE1LTEtMy40NywxLjE5bC0uNCwyLjc2Yy0uMzIsMi4xOC0xLjQsMi4zNi0yLjQxLjRsLTEuMjctMi40OGMtMS0yLTIuNjYtMi0zLjY2LDBsLTEuMjgsMi40OGMtMSwyLTIuMDksMS43OC0yLjQxLS40bC0uNC0yLjc2Yy0uMzItMi4xNy0xLjg4LTIuNzEtMy40Ni0xLjE5bC0yLDEuOTNjLTEuNTksMS41My0yLjU2LDEtMi4xNS0xLjE2bC41MS0yLjc0Yy40MS0yLjE2LS44OS0zLjE3LTIuODktMi4yNWwtMi41MywxLjE3Yy0yLC45My0yLjc0LjEyLTEuNjUtMS43OWwxLjM4LTIuNDJjMS4wOC0xLjkyLjE4LTMuMy0yLTMuMDdsLTIuNzguMjljLTIuMTkuMjItMi42My0uNzgtMS0yLjI0bDIuMDktMS44NGMxLjY1LTEuNDYsMS4yNS0zLjA2LS45LTMuNTVsLTIuNzEtLjYzYy0yLjE1LS41LTIuMjQtMS41OS0uMi0yLjQ0bDIuNTctMS4wNmMyLS44NCwyLjE3LTIuNDkuMy0zLjY1bC0yLjM2LTEuNDhjLTEuODctMS4xNi0xLjYtMi4yMy42LTIuMzZsMi43OC0uMThjMi4yLS4xMywyLjg2LTEuNjQsMS40Ny0zLjM1bC0xLjc2LTIuMTZjLTEuMzgtMS43MS0uNzgtMi42MywxLjM0LTIuMDVsMi42OS43NGMyLjEyLjU4LDMuMjMtLjYzLDIuNDgtMi42OWwtMS0yLjYyYy0uNzYtMi4wNy4xMS0yLjc0LDEuOTItMS41bDIuMzEsMS41N2MxLjgxLDEuMjQsMy4yNi40NiwzLjIyLTEuNzRsLS4wNi0yLjc5YzAtMi4yLDEtMi41NSwyLjMxLS43OWwxLjY2LDIuMjNjMS4zMiwxLjc3LDIuOTQsMS41LDMuNjItLjZaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxNDAuMDEiIGN5PSIxMjYuODUiIHI9IjE4LjE1Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTgiIGN4PSIxNDAuMDEiIGN5PSIxMjYuODUiIHI9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0xMDcuNDYsMTQxLjc0Yy42Ny0yLjA5LDEuNzctMi4wOSwyLjQ0LDBsLjg1LDIuNjZjLjY3LDIuMDksMi4yOSwyLjM2LDMuNjEuNmwxLjY3LTIuMjRjMS4zMS0xLjc2LDIuMzUtMS40LDIuMy44bDAsMi43OGMwLDIuMiwxLjQsMywzLjIyLDEuNzVsMi4zLTEuNThjMS44Mi0xLjI0LDIuNjgtLjU2LDEuOTMsMS41bC0xLDIuNjJjLS43NiwyLjA3LjM2LDMuMjgsMi40OCwyLjdsMi42OC0uNzRjMi4xMy0uNTksMi43My4zMywxLjM0LDJsLTEuNzYsMi4xNmMtMS4zOCwxLjcxLS43MiwzLjIyLDEuNDcsMy4zNmwyLjc5LjE3YzIuMTkuMTQsMi40NiwxLjIuNiwyLjM3TDEzMiwxNjQuMTZjLTEuODcsMS4xNy0xLjczLDIuODEuMywzLjY1bDIuNTgsMS4wN2MyLC44NCwxLjk0LDEuOTQtLjIsMi40M2wtMi43Mi42M2MtMi4xNC41LTIuNTUsMi4wOS0uOSwzLjU1bDIuMDksMS44NWMxLjY1LDEuNDUsMS4yMSwyLjQ2LTEsMi4yM2wtMi43Ny0uMjljLTIuMTktLjIyLTMuMDksMS4xNi0yLDMuMDdsMS4zNywyLjQyYzEuMDksMS45Mi4zNCwyLjcyLTEuNjUsMS44bC0yLjUzLTEuMTdjLTItLjkzLTMuMy4wOC0yLjg5LDIuMjVsLjUyLDIuNzRjLjQsMi4xNi0uNTYsMi42OC0yLjE1LDEuMTZsLTItMS45M2MtMS41OS0xLjUzLTMuMTUtMS0zLjQ3LDEuMTlsLS40LDIuNzZjLS4zMiwyLjE3LTEuNCwyLjM1LTIuNDEuNGwtMS4yNy0yLjQ4Yy0xLTItMi42Ni0yLTMuNjYsMEwxMDUuNTcsMTk0Yy0xLDEuOTUtMi4wOSwxLjc3LTIuNDEtLjRsLS40LTIuNzZjLS4zMi0yLjE4LTEuODgtMi43Mi0zLjQ2LTEuMTlsLTIsMS45M2MtMS41OCwxLjUyLTIuNTUsMS0yLjE0LTEuMTZsLjUxLTIuNzRjLjQxLTIuMTctLjg5LTMuMTgtMi44OS0yLjI1bC0yLjUzLDEuMTdjLTIsLjkyLTIuNzQuMTItMS42NS0xLjhMOTAsMTgyLjM1YzEuMDgtMS45MS4xOC0zLjI5LTItMy4wN2wtMi43Ny4yOWMtMi4xOS4yMy0yLjYzLS43OC0xLTIuMjNsMi4wOS0xLjg1YzEuNjUtMS40NiwxLjI0LTMuMDUtLjktMy41NWwtMi43MS0uNjNjLTIuMTUtLjQ5LTIuMjQtMS41OS0uMjEtMi40M2wyLjU4LTEuMDdjMi0uODQsMi4xNy0yLjQ4LjMtMy42NUw4MywxNjIuNjljLTEuODctMS4xNy0xLjYtMi4yMy42LTIuMzdsMi43OC0uMTdjMi4xOS0uMTQsMi44Ni0xLjY1LDEuNDctMy4zNmwtMS43Ni0yLjE2Yy0xLjM4LTEuNzEtLjc4LTIuNjMsMS4zNC0ybDIuNjkuNzRjMi4xMi41OCwzLjIzLS42MywyLjQ4LTIuN2wtMS0yLjYyYy0uNzYtMi4wNi4xMS0yLjc0LDEuOTItMS41bDIuMywxLjU4YzEuODIsMS4yNCwzLjI3LjQ1LDMuMjItMS43NWwwLTIuNzhjMC0yLjIsMS0yLjU2LDIuMzEtLjhMMTAzLDE0NWMxLjMyLDEuNzYsMi45NCwxLjQ5LDMuNjEtLjZaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxMDguNjgiIGN5PSIxNjcuNzMiIHI9IjE4LjE1Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTgiIGN4PSIxMDguNjgiIGN5PSIxNjcuNzMiIHI9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0xNzAuMjksMTQyLjM0Yy41LTEuNTUsMS4zMS0xLjU1LDEuODEsMHMxLjY5LDEuNzUsMi42Ny40NSwxLjc0LTEsMS43LjU4LDEsMi4yMSwyLjM4LDEuMjksMi0uNDIsMS40MywxLjExLjI2LDIuNDIsMS44MywyLDIsLjI1LDEsMS41MS0uNTQsMi4zOCwxLjA4LDIuNDgsMS44My44OS40NSwxLjc1LTEuMjgsMi4wNy4yMiwyLjcsMS40NCwxLjQzLS4xNSwxLjgtMS44OCwxLjU0LS42NiwyLjYyLjg5LDEuODItLjczLDEuNjUtMi4yOC44NS0xLjQ4LDIuMjcuMjUsMi0xLjIyLDEuMzMtMi40NC4wNi0yLjE0LDEuNjYtLjQxLDItMS41OC44Ni0yLjMzLS43My0yLjU2Ljg4LTEsMS43NC0xLjc4LjI5LTItMS40NC0yLjcxLDAtMS41NCwxLjMxLTEuNzgtLjI5LTEuMzktMi0yLjU2LS44OC0xLjg5Ljc0LTEuNTktLjg2LS42Ni0yLjM1LTIuMTMtMS42Ni0yLC4wOC0xLjIyLTEuMzMuMTMtMi40NC0xLjQ4LTIuMjctMi0uNTctLjczLTEuNjUuOTItMi4yNi0uNjYtMi42Mi0xLjY2LTEuMTgtLjE1LTEuOCwxLjYtMS44NC4yMi0yLjctMS4xOC0xLjY1LjQ0LTEuNzUsMi4xMi0xLjIyLDEuMDktMi40OC0uNTgtMS45NCwxLTEuNTEsMi4zOS0uNDYsMS44My0yLC4wOC0yLDEuNDItMS4xMSwyLjQyLjM0LDIuMzktMS4yOS43My0xLjg5LDEuNy0uNThTMTY5LjgsMTQzLjg5LDE3MC4yOSwxNDIuMzRaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxNzEuMTkiIGN5PSIxNTUuODYiIHI9IjkuOTUiLz48Y2lyY2xlIGNsYXNzPSJjbHMtOCIgY3g9IjE3MS4xOSIgY3k9IjE1NS44NiIgcj0iNy4wNCIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTE5OS42OCwxMjcuNTJjLjcxLTMuMDcsMS44Ny0zLjA3LDIuNTksMHMzLDMuNjIsNSwxLjI0LDMuMDktMS44NCwyLjMsMS4yLDEsNC41OSwzLjg4LDMuNDQsMy41OC0uMiwxLjQ3LDIuMTMtMS4yOSw0LjUxLDEuODQsNC44NSwzLjI2LDEuNDkuMzEsMi41Ny0zLjI0LDMuMzktLjYzLDUuMTUsMi4yLDIuODQtLjkyLDIuNDItNC40NCwxLjUtMi45NCw0LjI2LjYzLDMuNTQtMS45NCwxLjcyLTQuNjMtLjczLTQuNTksMi40MS0xLjA5LDMuNDMtMi41Mi42Mi0zLjc1LTIuOC01LjE4LDAtMi41NiwyLjUzLTIuNTItLjYyLTItNC4yMy00LjU5LTIuNDEtMy40MywxLjA1LTEuOTQtMS43Mi4xOC00LjY4LTIuOTQtNC4yNi0zLjUzLS42Ny0uOTItMi40MiwyLjMzLTQuMDctLjYyLTUuMTUtMi44Mi0yLjIzLjMxLTIuNTcsNC0yLjUyLDEuODQtNC44NS0xLjQ2LTMuMjksMS40Ny0yLjEzLDQuNjctLjQsMy44OC0zLjQ0LjI0LTMuNTksMi4yOS0xLjJTMTk5LDEzMC41OCwxOTkuNjgsMTI3LjUyWiIvPjxjaXJjbGUgY2xhc3M9ImNscy0yIiBjeD0iMjAwLjk3IiBjeT0iMTQzLjI5IiByPSI3Ljk5Ii8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNMTYxLjY2LDQxLjY0Yy43MS0zLjA2LDEuODgtMy4wNiwyLjU5LDBzMywzLjYzLDUsMS4yNCwzLjA4LTEuODQsMi4yOSwxLjIxLjk1LDQuNTksMy44OCwzLjQzLDMuNTktLjE5LDEuNDcsMi4xNC0xLjI5LDQuNTEsMS44NCw0Ljg0LDMuMjcsMS41LjMxLDIuNTgtMy4yMywzLjM5LS42Miw1LjE0LDIuMiwyLjg1LS45MiwyLjQzLTQuNDQsMS41LTIuOTUsNC4yNi42MywzLjU0LTEuOTQsMS43MlMxNjgsNjkuODksMTY4LjA3LDczcy0xLjEsMy40Mi0yLjUyLjYyLTMuNzYtMi44MS01LjE4LDAtMi41NiwyLjUzLTIuNTItLjYyLTItNC4yMy00LjU5LTIuNDEtMy40NCwxLjA1LTEuOTQtMS43Mi4xNy00LjY4LTIuOTUtNC4yNi0zLjUzLS42Ny0uOTEtMi40MywyLjMzLTQuMDctLjYzLTUuMTQtMi44Mi0yLjI0LjMxLTIuNTgsNC0yLjUxLDEuODQtNC44NC0xLjQ1LTMuMjksMS40Ny0yLjE0LDQuNjgtLjM5LDMuODgtMy40My4yNC0zLjU5LDIuMy0xLjIxUzE2MSw0NC43MSwxNjEuNjYsNDEuNjRaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxNjIuOTYiIGN5PSI1Ny40MiIgcj0iNy45OSIvPjwvZz48L2c+PGcgaWQ9IkxheWVyXzUiIGRhdGEtbmFtZT0iTGF5ZXIgNSI+PHBvbHlnb24gY2xhc3M9ImNscy05IiBwb2ludHM9IjIxMS4xNCAxMjAuMDEgMTc1LjcxIDcwLjg2IDE0NS40MiAyMy40MyAxMTkuMzIgNzYuNTggOTQuNTYgMTE1LjQ0IDU2Ljg0IDE3OS40NSAxMjguOTMgMTc0LjY5IDE4My43MSAxODEuNzQgMjU5LjcyIDE2Ny40NSAyMTEuMTQgMTIwLjAxIi8+PC9nPjxnIGlkPSJMYXllcl80IiBkYXRhLW5hbWU9IkxheWVyIDQiPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTAiIHBvaW50cz0iNjEuOTEgMTc4LjcyIDEwMy45NSAxMDcuNDIgMTIzLjE3IDc4LjIyIDE0Ny4yNSAyNi4yOSAxNDUuNDIgMjMuNDMgMTE5LjMyIDc2LjU4IDkzLjE0IDExNy44MyA1Ni44NCAxNzkuNDUgNjEuOTEgMTc4LjcyIi8+PC9nPjxnIGlkPSJMYXllcl83IiBkYXRhLW5hbWU9IkxheWVyIDciPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTEiIHBvaW50cz0iMjUxLjMgMjE0LjAzIDI2MS41OSAyMDAuMzUgMjc1LjAyIDE5OS4wOCAyNzQuMDUgMTg5LjQyIDI5MC4wOSAxNzUuNTUgMjQ5LjM1IDE3Ny45OCAyMDAuODEgMTgyLjk4IDI1MS4zIDIxNC4wMyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTIiIHBvaW50cz0iMjQxLjc1IDE5My40NiAyNjQuMzIgMTkxLjY0IDI2NC40MiAxOTMuMTkgMjQyLjc5IDE5NC42NiAyNDEuNzUgMTkzLjQ2Ii8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTIzMywyMDMuMDhjMS0uMTIsNDItNCw0Mi00TDIxNC42Myw2Ny42MVY4Nmw0OS43OSwxMDcuMTYtMzAuNiwyLjA3Ii8+PGcgY2xhc3M9ImNscy0xNCI+PHBhdGggY2xhc3M9ImNscy0xNSIgZD0iTTI2NC41NywxNzYuMzMsMjE0LjYzLDY3LjYxVjg2bDQ3LjcsMTAyLjY3QzI2Mi40NywxODIuOSwyNjQuNDYsMTgxLjQxLDI2NC41NywxNzYuMzNaIi8+PHBhdGggY2xhc3M9ImNscy0xNSIgZD0iTTI0MS42LDIwMi4yNWwyMC0xLjljLjExLTEuNTguNzYtMy44Ny44Ny03bC0yOC42NCwxLjk0LS42NCw2LjMxWiIvPjwvZz48cG9seWdvbiBjbGFzcz0iY2xzLTE2IiBwb2ludHM9IjI2Mi40NiAxOTMuMzIgMjYzLjIzIDE5MS45MiAyNDEuMTIgMTkzLjM2IDI0MS4xMiAxOTQuNzcgMjYyLjQ2IDE5My4zMiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTMiIHBvaW50cz0iMjQ4LjIzIDIxNC45NiAyNTEuMyAyMTQuMDMgMjM2LjYgMTM5Ljk4IDIyNC4yMiA4MS41MSAyMTIuNzkgMjQuNjMgMjEwLjM1IDI0LjYzIDIxOC43NCA4Ni4wMyAyNDEuNzUgMjA4LjA3IDI0OC4yMyAyMTQuOTYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTE3IiBwb2ludHM9IjIxMC4zNSAyNC42MyAyMDEuMDMgNzkuODIgMjIxLjE2IDgxLjUxIDIxMC4zNSAyNC42MyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTgiIHBvaW50cz0iMjIxLjE2IDgxLjUxIDIzMy44MSAxNDEuMDEgMjE0LjYzIDEyOC4zMSAyMjEuMTYgODEuNTEiLz48cG9seWdvbiBjbGFzcz0iY2xzLTE5IiBwb2ludHM9IjIwMS4wMyA3OS44MiAyMjEuMTYgODEuNTEgMjE0LjYzIDEyOC4zMSAyMDEuMDMgNzkuODIiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIwIiBwb2ludHM9IjIwMS4wMyA3OS44MiAxOTIuMTggMTE5LjM3IDIxNC42MyAxMjguMzEgMjAxLjAzIDc5LjgyIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yMSIgcG9pbnRzPSIyNDguMjMgMjE0Ljk2IDIxMi43MiAyMTAuNDMgMjMzLjgxIDE0MS4wMSAyNDguMjMgMjE0Ljk2Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0yMiIgcG9pbnRzPSIyMzMuODEgMTQxLjAxIDIxNC42MyAxMjguMzEgMjEyLjcyIDIxMC40MyAyMzMuODEgMTQxLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yMyIgcG9pbnRzPSIyMTIuNzIgMjEwLjQzIDIwMC4yMiAxODYuMjIgMjE0LjYzIDEyOC4zMSAyMTIuNzIgMjEwLjQzIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yNCIgcG9pbnRzPSIxOTIuMTggMTE5LjM3IDIxNC42MyAxMjguMzEgMjAwLjIyIDE4Ni4yMiAxOTIuMTggMTE5LjM3Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0yNSIgcG9pbnRzPSIxNzYuODggMTgxLjU0IDE5Mi4xOCAxMTkuMzcgMjAwLjIyIDE4Ni4yMiAxNzYuODggMTgxLjU0Ii8+PC9nPjxnIGlkPSJ0b29sX2JveCIgZGF0YS1uYW1lPSJ0b29sIGJveCI+PHBvbHlnb24gY2xhc3M9ImNscy0yNiIgcG9pbnRzPSI5OC41NCAyMDAuMTkgMTQ0LjkgMTkyLjIgMTQ3Ljk1IDE4Ni42MSAxMzkuNjQgMTg1LjExIDE0Mi45NiAxODMuNTQgMTQwLjA1IDE4My41NCAxMzYuNTkgMTg0LjQ3IDEzMi4xNiAxODMuNTQgOTguNTQgMjAwLjE5Ii8+PHBhdGggY2xhc3M9ImNscy0yNyIgZD0iTTcxLjQsMTY5LjU2bDM2LjM0LTMuOTRzMTAuODQsNi40NCwxMC40Nyw2LjQ5LTEuMzIsMy42NC0xLjMyLDMuNjRsLTM1LDUuNzlaIi8+PHBhdGggY2xhc3M9ImNscy0yOCIgZD0iTTEwNy41LDE2OC4xOHM5Ljc3LDYuMyw5LjY5LDUuOTEsMS0yLDEtMmwtMTAuNDctNi40OVoiLz48cG9seWdvbiBjbGFzcz0iY2xzLTI5IiBwb2ludHM9IjcxIDE3Mi41MSAxMDcuNSAxNjguMTggMTA3Ljc0IDE2NS42MiA3MS40IDE2OS41NiA3MSAxNzIuNTEiLz48cG9seWdvbiBjbGFzcz0iY2xzLTI3IiBwb2ludHM9IjgzLjI1IDE3OC4yOSAxMTkuMjIgMTcyLjczIDEzNC43OSAxNzcuNDUgMTI4LjcgMTg0LjQgOTQuMDMgMTkxLjQ3IDgzLjI1IDE3OC4yOSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMjkiIHBvaW50cz0iMTE4LjcyIDE3Mi44MSA4My4yNSAxNzguMjkgOTQuMDMgMTkxLjQ3IDExOS42NyAxODAuNDkgMTE4LjcyIDE3Mi44MSIvPjxwYXRoIGNsYXNzPSJjbHMtMzAiIGQ9Ik0xMjEuMywxNzIuNjZhMy43NCwzLjc0LDAsMSwwLTMuNzktMi4zNWgwTDEwOSwxODYuNDRsMy45NCwyLjA3Wm0tMy4xMy0zLjYxLDEuMzEtMi41MSwyLjgzLS4xMSwxLjUxLDIuMzktMS4zMSwyLjUxLTIuODMuMTFaIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yOCIgcG9pbnRzPSI5OC41NCAyMDAuMTkgMTM1LjMgMTkxLjc5IDEzNC43OSAxNzcuNDUgOTcuNiAxODQuMzEgOTguNTQgMjAwLjE5Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zMSIgcG9pbnRzPSI5Ny42IDE4NC4zMSA4My4yNSAxNzguMjkgODQuMjkgMTkzLjQ4IDk4LjU0IDIwMC4xOSA5Ny42IDE4NC4zMSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMzEiIHBvaW50cz0iODIuNjEgMTc4LjM3IDgxLjkxIDE4MS41NCA3MC42OSAxNzIuNzMgNzEuNCAxNjkuNTYgODIuNjEgMTc4LjM3Ii8+PHBhdGggY2xhc3M9ImNscy0zMiIgZD0iTTExNC44OCwxODVsLjQsMi41N3MuNzYsMS4zNiwxLjkxLDEuMTIuODgtMS44My44OC0xLjgzbC0uMy0yLjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMzMiIGQ9Ik0xMTUuMjYsMTg1LjA2bC4zOSwyLjU3cy42LDEuMjksMS43NCwxLjA2LDEtMS43NywxLTEuNzdsLS4zLTIuNDFaIi8+PHBvbHlnb24gY2xhc3M9ImNscy0zNCIgcG9pbnRzPSIxMTguMTQgMTg0LjUxIDExNy43NyAxODQuNDcgMTE0Ljg5IDE4NS4wMiAxMTUuMjYgMTg1LjA2IDExOC4xNCAxODQuNTEiLz48L2c+PC9zdmc+';
|
|
28700
28518
|
|
|
28701
|
-
|
|
28519
|
+
const LuiErrorPage = (props) => {
|
|
28702
28520
|
return (React__default["default"].createElement("div", { className: 'LuiErrorPage' },
|
|
28703
28521
|
props.header,
|
|
28704
28522
|
React__default["default"].createElement("div", { className: 'Container' },
|
|
@@ -28709,36 +28527,36 @@ var LuiErrorPage = function (props) {
|
|
|
28709
28527
|
props.footer));
|
|
28710
28528
|
};
|
|
28711
28529
|
|
|
28712
|
-
|
|
28530
|
+
const userHasAnyPrivilege = (privileges, selectedFirm) => {
|
|
28713
28531
|
return (privileges.length === 0 ||
|
|
28714
28532
|
(selectedFirm !== undefined &&
|
|
28715
|
-
selectedFirm.privileges.filter(
|
|
28533
|
+
selectedFirm.privileges.filter((value) => privileges.indexOf(value) > -1)
|
|
28716
28534
|
.length > 0));
|
|
28717
28535
|
};
|
|
28718
|
-
|
|
28719
|
-
|
|
28536
|
+
const userIsInternal = (user) => {
|
|
28537
|
+
const loginType = user?.loginType.code || user?.loginType;
|
|
28720
28538
|
return loginType === 'INTN';
|
|
28721
28539
|
};
|
|
28722
28540
|
|
|
28723
28541
|
function useLOLUserContext() {
|
|
28724
28542
|
return React.useContext(LOLUserContext);
|
|
28725
28543
|
}
|
|
28726
|
-
|
|
28544
|
+
const LOLUserContext = React__default["default"].createContext({
|
|
28727
28545
|
user: undefined,
|
|
28728
28546
|
selectedFirm: undefined,
|
|
28729
|
-
changeFirm:
|
|
28547
|
+
changeFirm: (firmId) => {
|
|
28730
28548
|
console.error('Called changeFirm before UserContext loaded', firmId);
|
|
28731
28549
|
},
|
|
28732
|
-
isInternal:
|
|
28733
|
-
hasAnyPrivilege:
|
|
28550
|
+
isInternal: () => false,
|
|
28551
|
+
hasAnyPrivilege: () => false,
|
|
28734
28552
|
});
|
|
28735
28553
|
function LOLUserContextProvider(props) {
|
|
28736
|
-
|
|
28737
|
-
|
|
28738
|
-
|
|
28739
|
-
React.useEffect(
|
|
28554
|
+
const { isLoading, data, isError } = useGetUserInfo();
|
|
28555
|
+
const [selectedFirm, setSelectedFirm] = React.useState();
|
|
28556
|
+
const [ready, setReady] = React.useState(false);
|
|
28557
|
+
React.useEffect(() => {
|
|
28740
28558
|
// User data is still loading
|
|
28741
|
-
if (!
|
|
28559
|
+
if (!data?.user) {
|
|
28742
28560
|
return;
|
|
28743
28561
|
}
|
|
28744
28562
|
// Clear firm value if there are no firms
|
|
@@ -28749,23 +28567,22 @@ function LOLUserContextProvider(props) {
|
|
|
28749
28567
|
}
|
|
28750
28568
|
if (data.user.firms.length > 0 &&
|
|
28751
28569
|
(!getSelectedFirmIdCache() ||
|
|
28752
|
-
!data.user.firms.find(
|
|
28753
|
-
|
|
28570
|
+
!data.user.firms.find((firm) => firm.id === getSelectedFirmIdCache()))) {
|
|
28571
|
+
const firstFirm = data.user.firms[0];
|
|
28754
28572
|
setSelectedFirmCache(firstFirm.id, firstFirm.name);
|
|
28755
28573
|
setSelectedFirm(firstFirm);
|
|
28756
28574
|
setReady(true);
|
|
28757
28575
|
}
|
|
28758
28576
|
else {
|
|
28759
28577
|
// pull firm from cache and use it
|
|
28760
|
-
|
|
28761
|
-
|
|
28578
|
+
const selectedFirmIdFromCache = getSelectedFirmIdCache();
|
|
28579
|
+
const selectedFirmDerivedFromCache = data.user.firms.find((firm) => firm.id === selectedFirmIdFromCache);
|
|
28762
28580
|
setSelectedFirm(selectedFirmDerivedFromCache || undefined);
|
|
28763
28581
|
setReady(true);
|
|
28764
28582
|
}
|
|
28765
28583
|
}, [data]);
|
|
28766
|
-
|
|
28767
|
-
|
|
28768
|
-
var firm = (_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.firms.find(function (f) {
|
|
28584
|
+
const changeFirm = React.useCallback((firmId) => {
|
|
28585
|
+
const firm = data?.user?.firms.find((f) => {
|
|
28769
28586
|
return f.id === firmId;
|
|
28770
28587
|
});
|
|
28771
28588
|
if (firm === undefined) {
|
|
@@ -28776,14 +28593,12 @@ function LOLUserContextProvider(props) {
|
|
|
28776
28593
|
setSelectedFirmCache(firm.id, firm.name);
|
|
28777
28594
|
setSelectedFirm(firm);
|
|
28778
28595
|
}, [data]);
|
|
28779
|
-
|
|
28780
|
-
|
|
28781
|
-
|
|
28782
|
-
|
|
28783
|
-
React.useEffect(function () {
|
|
28784
|
-
var onCachedFirmUpdate = function (event) {
|
|
28596
|
+
const isInternal = React.useCallback(() => userIsInternal(data?.user), [data]);
|
|
28597
|
+
const hasAnyPrivilege = React.useCallback((privileges) => userHasAnyPrivilege(privileges, selectedFirm), [selectedFirm]);
|
|
28598
|
+
React.useEffect(() => {
|
|
28599
|
+
const onCachedFirmUpdate = (event) => {
|
|
28785
28600
|
if (event.storageArea === localStorage && event.key === FIRM_KEY) {
|
|
28786
|
-
|
|
28601
|
+
const selectedFirmId = event.newValue;
|
|
28787
28602
|
if (selectedFirmId) {
|
|
28788
28603
|
changeFirm(selectedFirmId);
|
|
28789
28604
|
}
|
|
@@ -28794,7 +28609,7 @@ function LOLUserContextProvider(props) {
|
|
|
28794
28609
|
window.addEventListener('storage', onCachedFirmUpdate, false);
|
|
28795
28610
|
}
|
|
28796
28611
|
// cleanup listener on unmount
|
|
28797
|
-
return
|
|
28612
|
+
return () => {
|
|
28798
28613
|
window.removeEventListener('storage', onCachedFirmUpdate, false);
|
|
28799
28614
|
};
|
|
28800
28615
|
}, [ready, changeFirm]);
|
|
@@ -28808,10 +28623,10 @@ function LOLUserContextProvider(props) {
|
|
|
28808
28623
|
if (data && data.user && data.user.id) {
|
|
28809
28624
|
return (React__default["default"].createElement(LOLUserContext.Provider, { value: {
|
|
28810
28625
|
user: data.user,
|
|
28811
|
-
selectedFirm
|
|
28812
|
-
changeFirm
|
|
28813
|
-
isInternal
|
|
28814
|
-
hasAnyPrivilege
|
|
28626
|
+
selectedFirm,
|
|
28627
|
+
changeFirm,
|
|
28628
|
+
isInternal,
|
|
28629
|
+
hasAnyPrivilege,
|
|
28815
28630
|
} }, props.children));
|
|
28816
28631
|
}
|
|
28817
28632
|
else {
|
|
@@ -28820,41 +28635,24 @@ function LOLUserContextProvider(props) {
|
|
|
28820
28635
|
}
|
|
28821
28636
|
}
|
|
28822
28637
|
function useGetUserInfo() {
|
|
28823
|
-
|
|
28824
|
-
|
|
28825
|
-
|
|
28826
|
-
|
|
28827
|
-
|
|
28828
|
-
|
|
28829
|
-
url = "/auth/api/userinfo";
|
|
28830
|
-
return [4 /*yield*/, fetch(url)];
|
|
28831
|
-
case 1:
|
|
28832
|
-
res = _a.sent();
|
|
28833
|
-
return [4 /*yield*/, checkForStandardErrors(res)];
|
|
28834
|
-
case 2:
|
|
28835
|
-
_a.sent();
|
|
28836
|
-
return [4 /*yield*/, res.json()];
|
|
28837
|
-
case 3: return [2 /*return*/, _a.sent()];
|
|
28838
|
-
}
|
|
28839
|
-
});
|
|
28840
|
-
}); });
|
|
28638
|
+
return reactQuery.useQuery(`useGetUserInfo`, async () => {
|
|
28639
|
+
const url = `/auth/api/userinfo`;
|
|
28640
|
+
const res = await fetch(url);
|
|
28641
|
+
await checkForStandardErrors(res);
|
|
28642
|
+
return await res.json();
|
|
28643
|
+
});
|
|
28841
28644
|
}
|
|
28842
28645
|
function reAuthUser() {
|
|
28843
|
-
|
|
28844
|
-
window.location.assign(
|
|
28646
|
+
const redirectPath = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
28647
|
+
window.location.assign(`/auth/login?redirectPath=${encodeURIComponent(redirectPath)}`);
|
|
28845
28648
|
}
|
|
28846
|
-
function checkForStandardErrors(res) {
|
|
28847
|
-
|
|
28848
|
-
|
|
28849
|
-
|
|
28850
|
-
reAuthUser();
|
|
28851
|
-
}
|
|
28852
|
-
return [2 /*return*/];
|
|
28853
|
-
});
|
|
28854
|
-
});
|
|
28649
|
+
async function checkForStandardErrors(res) {
|
|
28650
|
+
if (res.status !== 200) {
|
|
28651
|
+
reAuthUser();
|
|
28652
|
+
}
|
|
28855
28653
|
}
|
|
28856
|
-
|
|
28857
|
-
|
|
28654
|
+
const FIRM_KEY = 'firmId';
|
|
28655
|
+
const FIRM_NAME_KEY = 'firmName';
|
|
28858
28656
|
function getSelectedFirmIdCache() {
|
|
28859
28657
|
return window.localStorage.getItem(FIRM_KEY);
|
|
28860
28658
|
}
|
|
@@ -28869,21 +28667,21 @@ function setSelectedFirmCache(firmId, firmName) {
|
|
|
28869
28667
|
}
|
|
28870
28668
|
}
|
|
28871
28669
|
|
|
28872
|
-
|
|
28873
|
-
|
|
28874
|
-
|
|
28670
|
+
const ClearableLuiTextInput = (props) => {
|
|
28671
|
+
const [currentValue, setCurrentValue] = React.useState(props.value ? props.value : '');
|
|
28672
|
+
const clear = () => {
|
|
28875
28673
|
setCurrentValue('');
|
|
28876
28674
|
if (props.onValueChange) {
|
|
28877
28675
|
props.onValueChange('');
|
|
28878
28676
|
}
|
|
28879
28677
|
};
|
|
28880
|
-
|
|
28881
|
-
return (React__default["default"].createElement(LuiTextInput,
|
|
28678
|
+
const cancelIcon = currentValue !== '' ? (React__default["default"].createElement(LuiIcon, { alt: "clear", name: "ic_cancel_clear", size: "lg", className: 'LuiTextInput-iconPosition', spanProps: { onClick: clear } })) : undefined;
|
|
28679
|
+
return (React__default["default"].createElement(LuiTextInput, { ...props, icon: cancelIcon, value: currentValue, onChange: (e) => {
|
|
28882
28680
|
setCurrentValue(e.target.value);
|
|
28883
28681
|
if (props.onValueChange) {
|
|
28884
28682
|
props.onValueChange(e.target.value);
|
|
28885
28683
|
}
|
|
28886
|
-
} }))
|
|
28684
|
+
} }));
|
|
28887
28685
|
};
|
|
28888
28686
|
|
|
28889
28687
|
/**
|
|
@@ -28892,42 +28690,42 @@ var ClearableLuiTextInput = function (props) {
|
|
|
28892
28690
|
* @param props
|
|
28893
28691
|
* @constructor
|
|
28894
28692
|
*/
|
|
28895
|
-
|
|
28896
|
-
|
|
28897
|
-
|
|
28693
|
+
const LuiFilterContainer = (props) => {
|
|
28694
|
+
const { renderFunction, filterFunction, showFilter = true, isFilterClearable = true, } = props;
|
|
28695
|
+
const [filter, setFilter] = React.useState('');
|
|
28898
28696
|
return (React__default["default"].createElement("div", null,
|
|
28899
28697
|
showFilter && (React__default["default"].createElement("div", { className: 'LuiFilterContainer-filter-container LuiDeprecatedForms' },
|
|
28900
28698
|
isFilterClearable && (React__default["default"].createElement(ClearableLuiTextInput, { label: 'Filter', inputProps: {
|
|
28901
28699
|
placeholder: 'Type to filter',
|
|
28902
|
-
}, hideLabel: true, onValueChange:
|
|
28903
|
-
!isFilterClearable && (React__default["default"].createElement("input", { type: "text", placeholder: "Type to filter", value: filter, onChange:
|
|
28700
|
+
}, hideLabel: true, onValueChange: (value) => setFilter(value) })),
|
|
28701
|
+
!isFilterClearable && (React__default["default"].createElement("input", { type: "text", placeholder: "Type to filter", value: filter, onChange: (e) => setFilter(e.target.value) })))),
|
|
28904
28702
|
renderFunction(filterFunction(filter))));
|
|
28905
28703
|
};
|
|
28906
28704
|
|
|
28907
28705
|
function useLOLGlobalClientRefContext() {
|
|
28908
28706
|
return React.useContext(LOLGlobalClientRefContext);
|
|
28909
28707
|
}
|
|
28910
|
-
|
|
28708
|
+
const LOLGlobalClientRefContext = React__default["default"].createContext({
|
|
28911
28709
|
clientRef: '',
|
|
28912
|
-
changeClientRef:
|
|
28710
|
+
changeClientRef: () => {
|
|
28913
28711
|
// no-op
|
|
28914
28712
|
},
|
|
28915
28713
|
});
|
|
28916
|
-
|
|
28917
|
-
|
|
28918
|
-
|
|
28919
|
-
|
|
28920
|
-
|
|
28921
|
-
|
|
28714
|
+
const LOLGlobalClientRefContextProvider = (props) => {
|
|
28715
|
+
const { useUserIdAsClientReference } = props;
|
|
28716
|
+
const { user, selectedFirm } = useLOLUserContext();
|
|
28717
|
+
const [clientRef, setClientRef] = React.useState('');
|
|
28718
|
+
const [lastSelectedFirmId, setLastSelectedFirmId] = React.useState(undefined);
|
|
28719
|
+
const changeClientRef = React.useCallback((clientRef) => {
|
|
28922
28720
|
setClientRef(clientRef);
|
|
28923
28721
|
setGlobalClientRefCache(clientRef);
|
|
28924
28722
|
}, []);
|
|
28925
|
-
React.useEffect(
|
|
28723
|
+
React.useEffect(() => {
|
|
28926
28724
|
if (!user) {
|
|
28927
28725
|
return;
|
|
28928
28726
|
}
|
|
28929
|
-
|
|
28930
|
-
|
|
28727
|
+
const cachedClientRef = getGlobalClientRefCache();
|
|
28728
|
+
let clientRef = '';
|
|
28931
28729
|
if (cachedClientRef === null && useUserIdAsClientReference) {
|
|
28932
28730
|
clientRef = user.id;
|
|
28933
28731
|
}
|
|
@@ -28936,9 +28734,9 @@ var LOLGlobalClientRefContextProvider = function (props) {
|
|
|
28936
28734
|
}
|
|
28937
28735
|
setClientRef(clientRef);
|
|
28938
28736
|
setGlobalClientRefCache(clientRef);
|
|
28939
|
-
setLastSelectedFirmId(selectedFirm
|
|
28737
|
+
setLastSelectedFirmId(selectedFirm?.id);
|
|
28940
28738
|
}, [user, selectedFirm, useUserIdAsClientReference]);
|
|
28941
|
-
React.useEffect(
|
|
28739
|
+
React.useEffect(() => {
|
|
28942
28740
|
if (!selectedFirm ||
|
|
28943
28741
|
!lastSelectedFirmId ||
|
|
28944
28742
|
selectedFirm.id === lastSelectedFirmId) {
|
|
@@ -28955,11 +28753,11 @@ var LOLGlobalClientRefContextProvider = function (props) {
|
|
|
28955
28753
|
useUserIdAsClientReference,
|
|
28956
28754
|
]);
|
|
28957
28755
|
return (React__default["default"].createElement(LOLGlobalClientRefContext.Provider, { value: {
|
|
28958
|
-
clientRef
|
|
28959
|
-
changeClientRef
|
|
28756
|
+
clientRef,
|
|
28757
|
+
changeClientRef,
|
|
28960
28758
|
} }, props.children));
|
|
28961
28759
|
};
|
|
28962
|
-
|
|
28760
|
+
const GLOBAL_CLIENT_REFERENCE_KEY = 'globalClientReference';
|
|
28963
28761
|
function getGlobalClientRefCache() {
|
|
28964
28762
|
return window.sessionStorage.getItem(GLOBAL_CLIENT_REFERENCE_KEY);
|
|
28965
28763
|
}
|
|
@@ -28972,17 +28770,16 @@ function setGlobalClientRefCache(clientReference) {
|
|
|
28972
28770
|
}
|
|
28973
28771
|
}
|
|
28974
28772
|
|
|
28975
|
-
|
|
28976
|
-
|
|
28977
|
-
|
|
28978
|
-
|
|
28979
|
-
|
|
28980
|
-
var clientRefElement = showClientRef ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
28773
|
+
const LOLFirmSwitcherMenu = ({ showClientRef = false, ...restOfProps }) => {
|
|
28774
|
+
const { user, selectedFirm, changeFirm, isInternal } = useLOLUserContext();
|
|
28775
|
+
const { clientRef } = useLOLGlobalClientRefContext();
|
|
28776
|
+
const firms = user.firms;
|
|
28777
|
+
const clientRefElement = showClientRef ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
28981
28778
|
React__default["default"].createElement("br", null),
|
|
28982
28779
|
React__default["default"].createElement("span", null,
|
|
28983
28780
|
"Client Ref: ",
|
|
28984
28781
|
clientRef))) : null;
|
|
28985
|
-
|
|
28782
|
+
const label = isInternal() ? (React__default["default"].createElement("div", { className: "LOLFirmSwitcherMenu-header" },
|
|
28986
28783
|
user.id,
|
|
28987
28784
|
clientRefElement)) : (React__default["default"].createElement("div", { className: "LOLFirmSwitcherMenu-header" },
|
|
28988
28785
|
selectedFirm && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -28992,97 +28789,69 @@ var LOLFirmSwitcherMenu = function (_a) {
|
|
|
28992
28789
|
"User ID: ",
|
|
28993
28790
|
user.id),
|
|
28994
28791
|
clientRefElement));
|
|
28995
|
-
|
|
28792
|
+
const dropdownMenuProps = {
|
|
28793
|
+
...restOfProps,
|
|
28794
|
+
label,
|
|
28795
|
+
};
|
|
28996
28796
|
if (firms.length < 2) {
|
|
28997
|
-
return React__default["default"].createElement(LuiHeaderMenuItem,
|
|
28797
|
+
return React__default["default"].createElement(LuiHeaderMenuItem, { ...dropdownMenuProps });
|
|
28998
28798
|
}
|
|
28999
|
-
return (React__default["default"].createElement(LuiDropdownMenu,
|
|
28799
|
+
return (React__default["default"].createElement(LuiDropdownMenu, { ...dropdownMenuProps },
|
|
29000
28800
|
React__default["default"].createElement(LOLFirmSwitcherMenuContent, { firms: firms, selectedFirm: selectedFirm, changeFirm: changeFirm })));
|
|
29001
28801
|
};
|
|
29002
|
-
|
|
29003
|
-
|
|
29004
|
-
var showFilter = firms.length >= minimumFilterCount;
|
|
28802
|
+
const LOLFirmSwitcherMenuContent = ({ firms, selectedFirm, changeFirm, collapsible = false, minimumFilterCount = 5, }) => {
|
|
28803
|
+
const showFilter = firms.length >= minimumFilterCount;
|
|
29005
28804
|
return (React__default["default"].createElement(LuiDrawerMenuSection, { title: "Switch account", collapsible: collapsible && showFilter },
|
|
29006
|
-
React__default["default"].createElement(FirmSwitcher, { options: firms, selectedId: selectedFirm
|
|
29007
|
-
return [2 /*return*/, changeFirm(id)];
|
|
29008
|
-
}); }); }, showFilter: showFilter })));
|
|
28805
|
+
React__default["default"].createElement(FirmSwitcher, { options: firms, selectedId: selectedFirm?.id, onSelect: async (id) => changeFirm(id), showFilter: showFilter })));
|
|
29009
28806
|
};
|
|
29010
|
-
|
|
29011
|
-
|
|
29012
|
-
return (React__default["default"].createElement("div", { className: 'LOLFirmSwitcherMenu-option', onClick: function () { return onSelect(id); }, "aria-disabled": disabled, "data-testid": "firm-" + id },
|
|
28807
|
+
const FirmOption = ({ value: { id, name }, onSelect, selected, disabled, }) => {
|
|
28808
|
+
return (React__default["default"].createElement("div", { className: 'LOLFirmSwitcherMenu-option', onClick: () => onSelect(id), "aria-disabled": disabled, "data-testid": `firm-${id}` },
|
|
29013
28809
|
React__default["default"].createElement("span", null, name),
|
|
29014
28810
|
selected && React__default["default"].createElement("i", { className: "material-icons-round" }, "check_circle")));
|
|
29015
28811
|
};
|
|
29016
|
-
|
|
29017
|
-
|
|
29018
|
-
|
|
29019
|
-
|
|
29020
|
-
|
|
29021
|
-
|
|
29022
|
-
|
|
29023
|
-
|
|
29024
|
-
|
|
29025
|
-
|
|
29026
|
-
|
|
29027
|
-
|
|
29028
|
-
setBusy(false);
|
|
29029
|
-
_a.label = 2;
|
|
29030
|
-
case 2: return [2 /*return*/];
|
|
29031
|
-
}
|
|
29032
|
-
});
|
|
29033
|
-
}); };
|
|
29034
|
-
var filterFunction = React.useCallback(function (filterString) {
|
|
29035
|
-
var upperCaseFilterString = filterString.trim().toUpperCase();
|
|
29036
|
-
return options.filter(function (firm) {
|
|
29037
|
-
return firm.name.toUpperCase().includes(upperCaseFilterString);
|
|
29038
|
-
});
|
|
28812
|
+
const FirmSwitcher = ({ options, selectedId, onSelect, showFilter = true, }) => {
|
|
28813
|
+
const [busy, setBusy] = React.useState(false);
|
|
28814
|
+
const onSelectInternal = async (optionId) => {
|
|
28815
|
+
if (!busy) {
|
|
28816
|
+
setBusy(true);
|
|
28817
|
+
await onSelect(optionId);
|
|
28818
|
+
setBusy(false);
|
|
28819
|
+
}
|
|
28820
|
+
};
|
|
28821
|
+
const filterFunction = React.useCallback((filterString) => {
|
|
28822
|
+
const upperCaseFilterString = filterString.trim().toUpperCase();
|
|
28823
|
+
return options.filter((firm) => firm.name.toUpperCase().includes(upperCaseFilterString));
|
|
29039
28824
|
}, [options]);
|
|
29040
|
-
|
|
29041
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, filteredOptions.map(
|
|
28825
|
+
const renderFunction = (filteredOptions) => {
|
|
28826
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, filteredOptions.map((option) => (React__default["default"].createElement(FirmOption, { key: option.id, value: option, selected: option.id === selectedId, onSelect: onSelectInternal, disabled: busy })))));
|
|
29042
28827
|
};
|
|
29043
28828
|
return (React__default["default"].createElement("div", { className: "LOLFirmSwitcherMenu" },
|
|
29044
28829
|
React__default["default"].createElement(LuiFilterContainer, { showFilter: showFilter, filterFunction: filterFunction, renderFunction: renderFunction })));
|
|
29045
28830
|
};
|
|
29046
28831
|
|
|
29047
|
-
|
|
29048
|
-
|
|
29049
|
-
|
|
28832
|
+
const LOLLogoutLink = (props) => {
|
|
28833
|
+
const redirectPathString = props.redirectPath();
|
|
28834
|
+
const { user } = useLOLUserContext();
|
|
29050
28835
|
if (!user) {
|
|
29051
28836
|
return null;
|
|
29052
28837
|
}
|
|
29053
|
-
|
|
29054
|
-
|
|
29055
|
-
|
|
29056
|
-
|
|
29057
|
-
|
|
29058
|
-
|
|
29059
|
-
|
|
29060
|
-
|
|
29061
|
-
|
|
29062
|
-
|
|
29063
|
-
|
|
29064
|
-
case 2:
|
|
29065
|
-
if (_a) {
|
|
29066
|
-
return [2 /*return*/];
|
|
29067
|
-
}
|
|
29068
|
-
return [4 /*yield*/, fetch('/auth/api/logout')];
|
|
29069
|
-
case 3:
|
|
29070
|
-
res = _b.sent();
|
|
29071
|
-
if (res.status === 200) {
|
|
29072
|
-
window.location.assign("/auth/login?redirectPath=" + redirectPathString);
|
|
29073
|
-
}
|
|
29074
|
-
return [2 /*return*/];
|
|
29075
|
-
}
|
|
29076
|
-
});
|
|
29077
|
-
}); };
|
|
29078
|
-
return React__default["default"].createElement(LuiDrawerMenuOption, { label: "Logout " + user.id, onClick: logout });
|
|
28838
|
+
const logout = async () => {
|
|
28839
|
+
if (props.callBackBeforeLogout &&
|
|
28840
|
+
(await props.callBackBeforeLogout()) === false) {
|
|
28841
|
+
return;
|
|
28842
|
+
}
|
|
28843
|
+
const res = await fetch('/auth/api/logout');
|
|
28844
|
+
if (res.status === 200) {
|
|
28845
|
+
window.location.assign(`/auth/login?redirectPath=${redirectPathString}`);
|
|
28846
|
+
}
|
|
28847
|
+
};
|
|
28848
|
+
return React__default["default"].createElement(LuiDrawerMenuOption, { label: `Logout ${user.id}`, onClick: logout });
|
|
29079
28849
|
};
|
|
29080
28850
|
|
|
29081
|
-
|
|
29082
|
-
|
|
29083
|
-
|
|
29084
|
-
|
|
29085
|
-
var lastLoginISO = (_a = context === null || context === void 0 ? void 0 : context.user) === null || _a === void 0 ? void 0 : _a.lastLogin;
|
|
28851
|
+
const LOLUserLastLogin = () => {
|
|
28852
|
+
let lastLogin;
|
|
28853
|
+
const context = useLOLUserContext();
|
|
28854
|
+
const lastLoginISO = context?.user?.lastLogin;
|
|
29086
28855
|
lastLogin = lastLoginISO
|
|
29087
28856
|
? new Date(lastLoginISO).toLocaleString('en-NZ')
|
|
29088
28857
|
: null;
|
|
@@ -29096,11 +28865,11 @@ var LOLUserLastLogin = function () {
|
|
|
29096
28865
|
React__default["default"].createElement("span", null, "Not you? Please, call us on 0800 665 463"))));
|
|
29097
28866
|
};
|
|
29098
28867
|
|
|
29099
|
-
|
|
29100
|
-
|
|
29101
|
-
|
|
29102
|
-
|
|
29103
|
-
React.useEffect(
|
|
28868
|
+
const LOLActiveFirmMessage = (props) => {
|
|
28869
|
+
const { selectedFirm, user } = useLOLUserContext();
|
|
28870
|
+
const [visible, setVisible] = React.useState(false);
|
|
28871
|
+
const hide = props.showFrom !== 'xl' ? { from: props.showFrom || 'sm' } : undefined;
|
|
28872
|
+
React.useEffect(() => {
|
|
29104
28873
|
setVisible(true);
|
|
29105
28874
|
}, [selectedFirm]);
|
|
29106
28875
|
if (!selectedFirm || !visible || user.firms.length < 2) {
|
|
@@ -29110,7 +28879,7 @@ var LOLActiveFirmMessage = function (props) {
|
|
|
29110
28879
|
React__default["default"].createElement(LuiBannerContent, { level: 'info' },
|
|
29111
28880
|
"Active account is ",
|
|
29112
28881
|
selectedFirm.name,
|
|
29113
|
-
React__default["default"].createElement("button", { "aria-label": "Close dialog", onClick:
|
|
28882
|
+
React__default["default"].createElement("button", { "aria-label": "Close dialog", onClick: () => {
|
|
29114
28883
|
setVisible(false);
|
|
29115
28884
|
} },
|
|
29116
28885
|
React__default["default"].createElement("i", { className: "material-icons-round" }, "close")))));
|
|
@@ -29118,20 +28887,17 @@ var LOLActiveFirmMessage = function (props) {
|
|
|
29118
28887
|
|
|
29119
28888
|
var ExternalIcon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzk4OTE4OSI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDE5SDVWNWg3VjNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03eiIvPjwvc3ZnPg==';
|
|
29120
28889
|
|
|
29121
|
-
|
|
29122
|
-
|
|
29123
|
-
|
|
29124
|
-
|
|
29125
|
-
|
|
29126
|
-
|
|
29127
|
-
|
|
29128
|
-
|
|
29129
|
-
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
return [2 /*return*/];
|
|
29133
|
-
});
|
|
29134
|
-
}); };
|
|
28890
|
+
const LOLAuthorisedLink = (props) => {
|
|
28891
|
+
const { hasAnyPrivilege } = useLOLUserContext();
|
|
28892
|
+
const { icon, activeIcon, active, label, path, openExternally, anyPrivileges, } = props;
|
|
28893
|
+
const onClickHandler = async () => {
|
|
28894
|
+
if (openExternally) {
|
|
28895
|
+
window.open(path, '_blank');
|
|
28896
|
+
}
|
|
28897
|
+
else {
|
|
28898
|
+
window.location.assign(path);
|
|
28899
|
+
}
|
|
28900
|
+
};
|
|
29135
28901
|
if (!hasAnyPrivilege(anyPrivileges)) {
|
|
29136
28902
|
return null;
|
|
29137
28903
|
}
|
|
@@ -29160,26 +28926,26 @@ var TitlesIconActive = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy
|
|
|
29160
28926
|
|
|
29161
28927
|
function createLink(pathname, label, target, activeIcon, icon, anyPrivileges) {
|
|
29162
28928
|
return {
|
|
29163
|
-
label
|
|
28929
|
+
label,
|
|
29164
28930
|
path: target,
|
|
29165
|
-
icon
|
|
29166
|
-
activeIcon
|
|
28931
|
+
icon,
|
|
28932
|
+
activeIcon,
|
|
29167
28933
|
active: pathname.startsWith(target),
|
|
29168
|
-
anyPrivileges
|
|
28934
|
+
anyPrivileges,
|
|
29169
28935
|
openExternally: true,
|
|
29170
28936
|
};
|
|
29171
28937
|
}
|
|
29172
|
-
|
|
29173
|
-
|
|
29174
|
-
|
|
29175
|
-
|
|
29176
|
-
|
|
29177
|
-
|
|
29178
|
-
|
|
28938
|
+
const SEARCH_LABEL = 'Search';
|
|
28939
|
+
const NOC_LABEL = 'Post registered NoC';
|
|
28940
|
+
const SURVEY_LABEL = 'Survey';
|
|
28941
|
+
const TITLES_LABEL = 'Titles';
|
|
28942
|
+
const LOLAppLauncherMenu = (props) => {
|
|
28943
|
+
const { user, isInternal } = useLOLUserContext();
|
|
28944
|
+
const { pathname, enableNOCLink = false, enableSurveyLink = false, enableTitlesLink = false, } = props;
|
|
29179
28945
|
if (!user) {
|
|
29180
28946
|
return null;
|
|
29181
28947
|
}
|
|
29182
|
-
|
|
28948
|
+
const links = [
|
|
29183
28949
|
createLink(pathname, SEARCH_LABEL, '/search', SearchIconActive, SearchIcon, isInternal() ? [] : ['prv_search_privilege', 'prv_spatial_view']),
|
|
29184
28950
|
];
|
|
29185
28951
|
if (!isInternal() && enableNOCLink) {
|
|
@@ -29223,13 +28989,13 @@ var LOLAppLauncherMenu = function (props) {
|
|
|
29223
28989
|
'prv_withdraw_dealing',
|
|
29224
28990
|
]));
|
|
29225
28991
|
}
|
|
29226
|
-
return (React__default["default"].createElement(LuiDrawerMenuSection, { title: "Launch app" }, links.map(
|
|
28992
|
+
return (React__default["default"].createElement(LuiDrawerMenuSection, { title: "Launch app" }, links.map((link) => (React__default["default"].createElement(LOLAuthorisedLink, { key: link.path, ...link })))));
|
|
29227
28993
|
};
|
|
29228
28994
|
|
|
29229
|
-
|
|
29230
|
-
|
|
29231
|
-
|
|
29232
|
-
|
|
28995
|
+
const LOLDrawerMenuFirmSwitcher = (props) => {
|
|
28996
|
+
const { minimumFilterCount } = props;
|
|
28997
|
+
const { user, selectedFirm, changeFirm } = useLOLUserContext();
|
|
28998
|
+
const firms = user?.firms;
|
|
29233
28999
|
if (!firms || !selectedFirm) {
|
|
29234
29000
|
return null;
|
|
29235
29001
|
}
|
|
@@ -29239,18 +29005,18 @@ var LOLDrawerMenuFirmSwitcher = function (props) {
|
|
|
29239
29005
|
return (React__default["default"].createElement(LOLFirmSwitcherMenuContent, { firms: firms, selectedFirm: selectedFirm, changeFirm: changeFirm, collapsible: true, minimumFilterCount: minimumFilterCount }));
|
|
29240
29006
|
};
|
|
29241
29007
|
|
|
29242
|
-
|
|
29008
|
+
const LOLDrawerMenu = (props) => {
|
|
29243
29009
|
return (React__default["default"].createElement(LuiDrawerMenu, { hasStickyHeader: props.hasStickyHeader },
|
|
29244
29010
|
React__default["default"].createElement("div", { className: "LOLDrawerMenu" },
|
|
29245
29011
|
React__default["default"].createElement("div", { className: "LOLDrawerMenu-contents" }, props.children),
|
|
29246
29012
|
React__default["default"].createElement("div", { className: "LOLDrawerMenu-footer" },
|
|
29247
29013
|
React__default["default"].createElement(LOLUserLastLogin, null)))));
|
|
29248
29014
|
};
|
|
29249
|
-
|
|
29250
|
-
|
|
29015
|
+
const LOLCommonDrawerMenu = (props) => {
|
|
29016
|
+
const { appSpecificLinks, appSpecificSections, path, hasStickyHeader, showRequestsLink, ...restOfProps } = props;
|
|
29251
29017
|
return (React__default["default"].createElement(LOLDrawerMenu, { hasStickyHeader: hasStickyHeader },
|
|
29252
29018
|
appSpecificSections,
|
|
29253
|
-
React__default["default"].createElement(LOLAppLauncherMenu,
|
|
29019
|
+
React__default["default"].createElement(LOLAppLauncherMenu, { pathname: path, ...restOfProps }),
|
|
29254
29020
|
React__default["default"].createElement(LOLDrawerMenuFirmSwitcher, { minimumFilterCount: 5 }),
|
|
29255
29021
|
showRequestsLink && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
29256
29022
|
React__default["default"].createElement(LuiDrawerMenuDivider, null),
|
|
@@ -29261,24 +29027,24 @@ var LOLCommonDrawerMenu = function (props) {
|
|
|
29261
29027
|
React__default["default"].createElement(LuiDrawerMenuDivider, null),
|
|
29262
29028
|
React__default["default"].createElement(LOLCommonDrawerMenuAfterLinks, { path: path })));
|
|
29263
29029
|
};
|
|
29264
|
-
|
|
29265
|
-
|
|
29266
|
-
|
|
29267
|
-
|
|
29268
|
-
|
|
29030
|
+
const LOLCommonDrawerMenuAfterLinks = (props) => {
|
|
29031
|
+
const { isInternal } = useLOLUserContext();
|
|
29032
|
+
const { path } = props;
|
|
29033
|
+
const contextPath = path.substr(0, path.indexOf('/', 1));
|
|
29034
|
+
const gotoLink = (url) => {
|
|
29269
29035
|
window.location.assign(url);
|
|
29270
29036
|
};
|
|
29271
29037
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
29272
|
-
!isInternal() && (React__default["default"].createElement(LuiDrawerMenuOption, { label: "Change password", onClick:
|
|
29273
|
-
gotoLink(
|
|
29038
|
+
!isInternal() && (React__default["default"].createElement(LuiDrawerMenuOption, { label: "Change password", onClick: () => {
|
|
29039
|
+
gotoLink(`/manage/my-preferences?redirectPath=${encodeURIComponent(path)}`);
|
|
29274
29040
|
} })),
|
|
29275
|
-
React__default["default"].createElement(LOLLogoutLink, { redirectPath:
|
|
29041
|
+
React__default["default"].createElement(LOLLogoutLink, { redirectPath: () => contextPath })));
|
|
29276
29042
|
};
|
|
29277
|
-
|
|
29278
|
-
|
|
29043
|
+
const LOLCommonMenuRequestsLink = () => {
|
|
29044
|
+
const openRequestsApp = () => {
|
|
29279
29045
|
window.open('/requests', '_blank');
|
|
29280
29046
|
};
|
|
29281
|
-
return (React__default["default"].createElement(LuiDrawerMenuOption, { label: 'Create request', onClick:
|
|
29047
|
+
return (React__default["default"].createElement(LuiDrawerMenuOption, { label: 'Create request', onClick: () => {
|
|
29282
29048
|
openRequestsApp();
|
|
29283
29049
|
}, badge: React__default["default"].createElement("img", { src: ExternalIcon, alt: "Link opens in a new tab", style: { width: '16px', height: '16px', marginTop: '4px' } }) }));
|
|
29284
29050
|
};
|
|
@@ -32812,27 +32578,26 @@ styleInject(css_248z$2);
|
|
|
32812
32578
|
var css_248z$1 = ".tippy-box{border:1px transparent}.tippy-box[data-placement^=top]>.tippy-arrow:after{border-top-color:inherit;border-width:8px 8px 0;bottom:-8px;left:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:inherit;border-width:0 8px 8px;top:-8px;left:0}.tippy-box[data-placement^=left]>.tippy-arrow:after{border-left-color:inherit;border-width:8px 0 8px 8px;right:-8px;top:0}.tippy-box[data-placement^=right]>.tippy-arrow:after{border-width:8px 8px 8px 0;left:-8px;top:0;border-right-color:inherit}.tippy-box[data-placement^=top]>.tippy-svg-arrow>svg:first-child:not(:last-child){top:17px}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow>svg:first-child:not(:last-child){bottom:17px}.tippy-box[data-placement^=left]>.tippy-svg-arrow>svg:first-child:not(:last-child){left:12px}.tippy-box[data-placement^=right]>.tippy-svg-arrow>svg:first-child:not(:last-child){right:12px}.tippy-arrow{border-color:inherit}.tippy-arrow:after{content:\"\";z-index:-1;position:absolute;border-color:transparent;border-style:solid}";
|
|
32813
32579
|
styleInject(css_248z$1);
|
|
32814
32580
|
|
|
32815
|
-
|
|
32816
|
-
|
|
32817
|
-
|
|
32818
|
-
|
|
32819
|
-
|
|
32581
|
+
let id = 0;
|
|
32582
|
+
const getKey = () => id++;
|
|
32583
|
+
const LuiTooltip = (props) => {
|
|
32584
|
+
const { children, message, placement, trigger, animation = true } = props;
|
|
32585
|
+
const id = `LuiToolTip_${React.useMemo(getKey, [])}`;
|
|
32820
32586
|
if (typeof message !== 'string') {
|
|
32821
32587
|
throw new Error('LuiTooltip message must be a string!');
|
|
32822
32588
|
}
|
|
32823
|
-
React.useEffect(
|
|
32824
|
-
tippy(
|
|
32589
|
+
React.useEffect(() => {
|
|
32590
|
+
tippy(`#${id}`, {
|
|
32825
32591
|
content: message,
|
|
32826
32592
|
arrow: true,
|
|
32827
|
-
trigger
|
|
32593
|
+
trigger,
|
|
32828
32594
|
theme: 'LUI',
|
|
32829
|
-
placement
|
|
32595
|
+
placement,
|
|
32830
32596
|
offset: [0, 24],
|
|
32831
|
-
animation
|
|
32597
|
+
animation,
|
|
32832
32598
|
});
|
|
32833
|
-
return
|
|
32834
|
-
|
|
32835
|
-
(_b = (_a = document.getElementById(id)) === null || _a === void 0 ? void 0 : _a._tippy) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
32599
|
+
return () => {
|
|
32600
|
+
document.getElementById(id)?._tippy?.destroy();
|
|
32836
32601
|
};
|
|
32837
32602
|
}, [id, message, placement, trigger, animation]);
|
|
32838
32603
|
return React__default["default"].createElement("span", { id: id }, children);
|
|
@@ -32851,45 +32616,44 @@ var LuiTooltip = function (props) {
|
|
|
32851
32616
|
```
|
|
32852
32617
|
*/
|
|
32853
32618
|
function useClickedOutsideElement(refElement, handleClickOutside) {
|
|
32854
|
-
React__default["default"].useEffect(
|
|
32619
|
+
React__default["default"].useEffect(() => {
|
|
32855
32620
|
function onOutsideClicked(event) {
|
|
32856
|
-
|
|
32857
|
-
if (!
|
|
32621
|
+
const element = refElement.current;
|
|
32622
|
+
if (!element?.contains(event.target)) {
|
|
32858
32623
|
handleClickOutside();
|
|
32859
32624
|
}
|
|
32860
32625
|
}
|
|
32861
32626
|
document.addEventListener('mousedown', onOutsideClicked);
|
|
32862
|
-
return
|
|
32627
|
+
return () => {
|
|
32863
32628
|
document.removeEventListener('mousedown', onOutsideClicked);
|
|
32864
32629
|
};
|
|
32865
32630
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32866
32631
|
}, []);
|
|
32867
32632
|
}
|
|
32868
32633
|
|
|
32869
|
-
|
|
32634
|
+
const LuiBadge = (props) => (React__default["default"].createElement("p", { className: clsx('LuiBadge', props.size === 'sm' && 'LuiBadge--sm', props.size === 'lg' && 'LuiBadge--lg', props.backgroundFill && 'LuiBadge--fill', props.variation === 'warning' && 'LuiBadge--warning'), "aria-roledescription": props.ariaRoleDescription }, props.children));
|
|
32870
32635
|
|
|
32871
|
-
|
|
32636
|
+
const LuiSidePanelContext = React__default["default"].createContext({ setProps: () => undefined });
|
|
32872
32637
|
/* eslint-disable react/prop-types */
|
|
32873
|
-
|
|
32874
|
-
|
|
32875
|
-
|
|
32876
|
-
|
|
32877
|
-
|
|
32878
|
-
return function () {
|
|
32638
|
+
const LuiSidePanel = ({ children, onClose, width, top }) => {
|
|
32639
|
+
const { setProps } = React__default["default"].useContext(LuiSidePanelContext);
|
|
32640
|
+
React__default["default"].useEffect(() => {
|
|
32641
|
+
setProps({ children, onClose, width, top });
|
|
32642
|
+
return () => {
|
|
32879
32643
|
setProps(undefined);
|
|
32880
32644
|
};
|
|
32881
32645
|
}, [setProps, children, onClose, width, top]);
|
|
32882
32646
|
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
32883
32647
|
};
|
|
32884
|
-
|
|
32885
|
-
|
|
32648
|
+
const LuiSidePanelContainer = (props) => {
|
|
32649
|
+
const { children, onClose, width = '50%', top = 60 } = props ?? {};
|
|
32886
32650
|
return (React__default["default"].createElement("section", { style: {
|
|
32887
32651
|
position: 'fixed',
|
|
32888
32652
|
right: 0,
|
|
32889
32653
|
bottom: 0,
|
|
32890
32654
|
top: top,
|
|
32891
32655
|
background: 'white',
|
|
32892
|
-
width: children ? width
|
|
32656
|
+
width: children ? width ?? '50%' : '0%',
|
|
32893
32657
|
transition: 'width 0.2s ease',
|
|
32894
32658
|
boxShadow: '-0.1em 0 0.4em rgba(0, 0, 0, 0.2)',
|
|
32895
32659
|
padding: 0,
|
|
@@ -32909,25 +32673,105 @@ var LuiSidePanelContainer = function (props) {
|
|
|
32909
32673
|
React__default["default"].createElement(LuiIcon, { alt: "Close", name: "ic_clear", size: "lg", status: "interactive" }))),
|
|
32910
32674
|
children));
|
|
32911
32675
|
};
|
|
32912
|
-
|
|
32913
|
-
|
|
32914
|
-
|
|
32915
|
-
return (React__default["default"].createElement(LuiSidePanelContext.Provider, { value: { setProps: setProps } },
|
|
32676
|
+
const LuiSidePanelProvider = ({ children }) => {
|
|
32677
|
+
const [props, setProps] = React__default["default"].useState();
|
|
32678
|
+
return (React__default["default"].createElement(LuiSidePanelContext.Provider, { value: { setProps } },
|
|
32916
32679
|
children,
|
|
32917
|
-
React__default["default"].createElement(LuiSidePanelContainer,
|
|
32680
|
+
React__default["default"].createElement(LuiSidePanelContainer, { ...props })));
|
|
32918
32681
|
};
|
|
32919
32682
|
|
|
32920
32683
|
var css_248z = ".lui-switch-checkbox {\n height: 0;\n width: 0;\n visibility: hidden;\n}\n\n.lui-switch-label {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n width: 40px;\n height: 20px;\n background: grey;\n border-radius: 40px;\n position: relative;\n transition: background-color 0.2s;\n}\n\n.lui-switch-label .lui-switch-button {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 2px;\n width: 18px;\n height: 16px;\n border-radius: 18px;\n transition: 0.2s;\n background: #fff;\n box-shadow: 0 0 2px 0 rgba(10, 10, 10, 0.29);\n}\n\n.lui-switch-checkbox:checked + .lui-switch-label .lui-switch-button {\n left: calc(100% - 2px);\n transform: translateX(-100%);\n}\n\n.lui-switch-label:active .lui-switch-button {\n width: 20px;\n}";
|
|
32921
32684
|
styleInject(css_248z);
|
|
32922
32685
|
|
|
32923
|
-
|
|
32924
|
-
|
|
32686
|
+
const LuiSwitchButton = (props) => {
|
|
32687
|
+
const generatedId = useGenerateOrDefaultId();
|
|
32925
32688
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
32926
|
-
React__default["default"].createElement("input",
|
|
32927
|
-
React__default["default"].createElement("label", { "data-testid":
|
|
32928
|
-
React__default["default"].createElement("span", { className:
|
|
32689
|
+
React__default["default"].createElement("input", { className: "lui-switch-checkbox", type: "checkbox", "data-testid": 'lui-switch-new', id: generatedId, ...props }),
|
|
32690
|
+
React__default["default"].createElement("label", { "data-testid": `label`, style: { background: props.checked ? '#007198' : 'gray' }, className: "lui-switch-label", htmlFor: generatedId },
|
|
32691
|
+
React__default["default"].createElement("span", { className: `lui-switch-button` }))));
|
|
32929
32692
|
};
|
|
32930
32693
|
|
|
32694
|
+
/******************************************************************************
|
|
32695
|
+
Copyright (c) Microsoft Corporation.
|
|
32696
|
+
|
|
32697
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
32698
|
+
purpose with or without fee is hereby granted.
|
|
32699
|
+
|
|
32700
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
32701
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
32702
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
32703
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
32704
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
32705
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
32706
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
32707
|
+
***************************************************************************** */
|
|
32708
|
+
/* global Reflect, Promise */
|
|
32709
|
+
|
|
32710
|
+
var extendStatics = function(d, b) {
|
|
32711
|
+
extendStatics = Object.setPrototypeOf ||
|
|
32712
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
32713
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
32714
|
+
return extendStatics(d, b);
|
|
32715
|
+
};
|
|
32716
|
+
|
|
32717
|
+
function __extends(d, b) {
|
|
32718
|
+
if (typeof b !== "function" && b !== null)
|
|
32719
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
32720
|
+
extendStatics(d, b);
|
|
32721
|
+
function __() { this.constructor = d; }
|
|
32722
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
32723
|
+
}
|
|
32724
|
+
|
|
32725
|
+
var __assign = function() {
|
|
32726
|
+
__assign = Object.assign || function __assign(t) {
|
|
32727
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
32728
|
+
s = arguments[i];
|
|
32729
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
32730
|
+
}
|
|
32731
|
+
return t;
|
|
32732
|
+
};
|
|
32733
|
+
return __assign.apply(this, arguments);
|
|
32734
|
+
};
|
|
32735
|
+
|
|
32736
|
+
function __rest(s, e) {
|
|
32737
|
+
var t = {};
|
|
32738
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
32739
|
+
t[p] = s[p];
|
|
32740
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
32741
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
32742
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32743
|
+
t[p[i]] = s[p[i]];
|
|
32744
|
+
}
|
|
32745
|
+
return t;
|
|
32746
|
+
}
|
|
32747
|
+
|
|
32748
|
+
function __read(o, n) {
|
|
32749
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
32750
|
+
if (!m) return o;
|
|
32751
|
+
var i = m.call(o), r, ar = [], e;
|
|
32752
|
+
try {
|
|
32753
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
32754
|
+
}
|
|
32755
|
+
catch (error) { e = { error: error }; }
|
|
32756
|
+
finally {
|
|
32757
|
+
try {
|
|
32758
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
32759
|
+
}
|
|
32760
|
+
finally { if (e) throw e.error; }
|
|
32761
|
+
}
|
|
32762
|
+
return ar;
|
|
32763
|
+
}
|
|
32764
|
+
|
|
32765
|
+
function __spreadArray(to, from, pack) {
|
|
32766
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
32767
|
+
if (ar || !(i in from)) {
|
|
32768
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32769
|
+
ar[i] = from[i];
|
|
32770
|
+
}
|
|
32771
|
+
}
|
|
32772
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
32773
|
+
}
|
|
32774
|
+
|
|
32931
32775
|
var createDefinition = function (propNames) { return ({
|
|
32932
32776
|
isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },
|
|
32933
32777
|
}); };
|
|
@@ -40485,11 +40329,11 @@ var AnimatePresence = function (_a) {
|
|
|
40485
40329
|
};
|
|
40486
40330
|
|
|
40487
40331
|
// import clsx from 'clsx';
|
|
40488
|
-
|
|
40489
|
-
|
|
40490
|
-
|
|
40491
|
-
|
|
40492
|
-
return (React__default["default"].createElement(motion.div, { key: "content", initial: ['collapsed'], animate: "open", exit: "collapsed", variants: {
|
|
40332
|
+
const LuiAccordicard = (props) => {
|
|
40333
|
+
const { defaultToOpen = false, children, headerContent } = props;
|
|
40334
|
+
const [isOpen, setIsOpen] = React.useState(defaultToOpen);
|
|
40335
|
+
const AccordicardContent = () => {
|
|
40336
|
+
return (React__default["default"].createElement(motion.div, { className: "LuiAccordicard-contentWrapper", key: "content", initial: ['collapsed'], animate: "open", exit: "collapsed", variants: {
|
|
40493
40337
|
open: {
|
|
40494
40338
|
opacity: 1,
|
|
40495
40339
|
height: 'auto',
|
|
@@ -40525,24 +40369,28 @@ var LuiAccordicard = function (props) {
|
|
|
40525
40369
|
} },
|
|
40526
40370
|
React__default["default"].createElement("div", { className: clsx('LuiAccordicard-content', isOpen ? 'LuiAccordicard-content--isOpen' : null) }, isOpen ? children : React__default["default"].createElement(React__default["default"].Fragment, null))));
|
|
40527
40371
|
};
|
|
40528
|
-
return (React__default["default"].createElement(motion.div, { initial: false, className: clsx('LuiAccordicard', props.className, isOpen ? 'LuiAccordicard--isOpen' : null) },
|
|
40372
|
+
return (React__default["default"].createElement(motion.div, { initial: false, className: clsx('LuiAccordicard', props.className, isOpen ? 'LuiAccordicard--isOpen' : null, props.warning ? 'LuiAccordicard--warning' : null) },
|
|
40373
|
+
props.warning && (React__default["default"].createElement("div", { className: "LuiAccordicard-sideBar" },
|
|
40374
|
+
React__default["default"].createElement(LuiIcon, { className: "LuiAccordicard-warningIcon", alt: "Accordicard warning", name: 'ic_warning', size: 'md' }))),
|
|
40529
40375
|
React__default["default"].createElement(motion.header, { layout: true, initial: false, className: "LuiAccordicard-header" },
|
|
40530
40376
|
React__default["default"].createElement("div", { className: "LuiAccordicard-headerContent" }, headerContent)),
|
|
40531
40377
|
React__default["default"].createElement(AnimatePresence, { initial: false }, isOpen && React__default["default"].createElement(AccordicardContent, null)),
|
|
40532
|
-
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicard-trigger", onClick:
|
|
40378
|
+
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicard-trigger", onClick: () => setIsOpen(!isOpen) },
|
|
40533
40379
|
React__default["default"].createElement(LuiIcon, { className: clsx('LuiAccordicard-chevron', isOpen ? 'LuiAccordicard-chevron--isOpen' : null), name: 'ic_expand_more', alt: "expand", size: "md" }))));
|
|
40534
40380
|
};
|
|
40535
40381
|
|
|
40536
|
-
|
|
40537
|
-
|
|
40538
|
-
|
|
40539
|
-
return (React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic', isOpen ? 'LuiAccordicardStatic--isOpen' : null, props.className) },
|
|
40382
|
+
const LuiAccordicardStatic = (props) => {
|
|
40383
|
+
const { defaultToOpen = false, children, headerContent } = props;
|
|
40384
|
+
const [isOpen, setIsOpen] = React.useState(defaultToOpen);
|
|
40385
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic', isOpen ? 'LuiAccordicardStatic--isOpen' : null, props.warning ? 'LuiAccordicardStatic--warning' : null, props.className) },
|
|
40386
|
+
props.warning && (React__default["default"].createElement("div", { className: "LuiAccordicardStatic-sideBar" },
|
|
40387
|
+
React__default["default"].createElement(LuiIcon, { className: "LuiAccordicardStatic-warningIcon", alt: "Accordicard warning", name: 'ic_warning', size: 'md' }))),
|
|
40540
40388
|
React__default["default"].createElement("div", { className: "LuiAccordicardStatic-header" },
|
|
40541
40389
|
React__default["default"].createElement("div", { className: "LuiAccordicardStatic-headerContent" }, headerContent)),
|
|
40542
40390
|
React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic-contentWrapper', isOpen ? 'LuiAccordicardStatic-contentWrapper--isOpen' : null) },
|
|
40543
40391
|
React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic-content', isOpen ? 'LuiAccordicardStatic-content--isOpen' : null) }, isOpen ? children : React__default["default"].createElement(React__default["default"].Fragment, null))),
|
|
40544
|
-
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicardStatic-trigger", onClick:
|
|
40545
|
-
React__default["default"].createElement(LuiIcon, { className: clsx('LuiAccordicardStatic-chevron', isOpen ? 'LuiAccordicardStatic-chevron--isOpen' : null), name: 'ic_expand_more', alt: "expand", size: "md" }))));
|
|
40392
|
+
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicardStatic-trigger", onClick: () => setIsOpen(!isOpen) },
|
|
40393
|
+
React__default["default"].createElement(LuiIcon, { className: clsx('LuiAccordicardStatic-chevron', isOpen ? 'LuiAccordicardStatic-chevron--isOpen' : null), name: 'ic_expand_more', alt: "expand", title: "Expand and collapse panel", size: "md" }))));
|
|
40546
40394
|
};
|
|
40547
40395
|
|
|
40548
40396
|
exports.FIRM_KEY = FIRM_KEY;
|