@homebound/beam 2.389.0 → 2.391.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/dist/index.cjs +573 -535
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -2
- package/dist/index.d.ts +43 -2
- package/dist/index.js +221 -187
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -129,6 +129,7 @@ __export(index_exports, {
|
|
|
129
129
|
Palette: () => Palette,
|
|
130
130
|
PresentationProvider: () => PresentationProvider,
|
|
131
131
|
PreventBrowserScroll: () => PreventBrowserScroll,
|
|
132
|
+
RIGHT_SIDEBAR_MIN_WIDTH: () => RIGHT_SIDEBAR_MIN_WIDTH,
|
|
132
133
|
RadioGroupField: () => RadioGroupField,
|
|
133
134
|
ResponsiveGrid: () => ResponsiveGrid,
|
|
134
135
|
ResponsiveGridItem: () => ResponsiveGridItem,
|
|
@@ -192,6 +193,9 @@ __export(index_exports, {
|
|
|
192
193
|
calcColumnSizes: () => calcColumnSizes,
|
|
193
194
|
cardStyle: () => cardStyle,
|
|
194
195
|
checkboxFilter: () => checkboxFilter,
|
|
196
|
+
chipBaseStyles: () => chipBaseStyles,
|
|
197
|
+
chipDisabledStyles: () => chipDisabledStyles,
|
|
198
|
+
chipHoverStyles: () => chipHoverStyles,
|
|
195
199
|
collapseColumn: () => collapseColumn,
|
|
196
200
|
column: () => column,
|
|
197
201
|
condensedStyle: () => condensedStyle,
|
|
@@ -4445,6 +4449,9 @@ function useAutoSaveStatus() {
|
|
|
4445
4449
|
return (0, import_react2.useContext)(AutoSaveStatusContext);
|
|
4446
4450
|
}
|
|
4447
4451
|
|
|
4452
|
+
// src/components/Chip.tsx
|
|
4453
|
+
var import_react6 = require("react");
|
|
4454
|
+
|
|
4448
4455
|
// src/components/Icon.tsx
|
|
4449
4456
|
var import_react4 = __toESM(require("react"), 1);
|
|
4450
4457
|
|
|
@@ -5235,43 +5242,40 @@ var ChipTypes = {
|
|
|
5235
5242
|
darkMode: "darkMode",
|
|
5236
5243
|
info: "info"
|
|
5237
5244
|
};
|
|
5238
|
-
function Chip({
|
|
5239
|
-
type = ChipTypes.neutral,
|
|
5240
|
-
...props
|
|
5241
|
-
}) {
|
|
5245
|
+
function Chip(props) {
|
|
5242
5246
|
const { fieldProps } = usePresentationContext();
|
|
5243
|
-
const { text, title, xss = {}, compact = fieldProps?.compact, icon } = props;
|
|
5247
|
+
const { text, title, xss = {}, compact = fieldProps?.compact, icon, type = ChipTypes.neutral } = props;
|
|
5244
5248
|
const tid = useTestIds(props, "chip");
|
|
5249
|
+
const styles = (0, import_react6.useMemo)(
|
|
5250
|
+
() => ({
|
|
5251
|
+
...chipBaseStyles(compact),
|
|
5252
|
+
...typeStyles[type],
|
|
5253
|
+
...xss
|
|
5254
|
+
}),
|
|
5255
|
+
[type, xss, compact]
|
|
5256
|
+
);
|
|
5245
5257
|
return maybeTooltip({
|
|
5246
5258
|
title,
|
|
5247
5259
|
placement: "bottom",
|
|
5248
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
5249
|
-
|
|
5250
|
-
{
|
|
5251
|
-
|
|
5252
|
-
...Css[compact ? "xs" : "sm"].dif.aic.gapPx(4).br16.pl1.px1.pyPx(2).gray900.$,
|
|
5253
|
-
...typeStyles[type],
|
|
5254
|
-
...xss
|
|
5255
|
-
},
|
|
5256
|
-
...tid,
|
|
5257
|
-
children: [
|
|
5258
|
-
icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { icon, inc: 2, xss: Css.fs0.$ }),
|
|
5259
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { css: Css.lineClamp1.wbba.$, children: text })
|
|
5260
|
-
]
|
|
5261
|
-
}
|
|
5262
|
-
)
|
|
5260
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { css: styles, ...tid, children: [
|
|
5261
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { icon, inc: 2, xss: Css.fs0.$ }),
|
|
5262
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { css: Css.lineClamp1.wbba.$, children: text })
|
|
5263
|
+
] })
|
|
5263
5264
|
});
|
|
5264
5265
|
}
|
|
5265
5266
|
var typeStyles = {
|
|
5266
5267
|
caution: Css.bgYellow200.$,
|
|
5267
|
-
warning: Css.
|
|
5268
|
-
success: Css.
|
|
5268
|
+
warning: Css.bgRed100.$,
|
|
5269
|
+
success: Css.bgGreen100.$,
|
|
5269
5270
|
light: Css.bgWhite.$,
|
|
5270
5271
|
dark: Css.bgGray900.white.$,
|
|
5271
5272
|
neutral: Css.bgGray200.$,
|
|
5272
5273
|
darkMode: Css.bgGray700.white.$,
|
|
5273
5274
|
info: Css.bgBlue100.$
|
|
5274
5275
|
};
|
|
5276
|
+
var chipBaseStyles = (compact) => Css.xsMd.dif.aic.br16.px1.gapPx(4).pyPx(pyHeight(compact)).mhPx(minhPx(compact)).gray900.bgGray200.$;
|
|
5277
|
+
var pyHeight = (compact) => compact ? 2 : 4;
|
|
5278
|
+
var minhPx = (compact) => compact ? 20 : 24;
|
|
5275
5279
|
|
|
5276
5280
|
// src/components/Chips.tsx
|
|
5277
5281
|
var import_jsx_runtime6 = require("@emotion/react/jsx-runtime");
|
|
@@ -5297,17 +5301,17 @@ function Chips(props) {
|
|
|
5297
5301
|
// src/components/Table/GridTable.tsx
|
|
5298
5302
|
var import_memoize_one = __toESM(require("memoize-one"), 1);
|
|
5299
5303
|
var import_mobx10 = require("mobx");
|
|
5300
|
-
var
|
|
5304
|
+
var import_react69 = __toESM(require("react"), 1);
|
|
5301
5305
|
var import_react_virtuoso2 = require("react-virtuoso");
|
|
5302
5306
|
|
|
5303
5307
|
// src/components/Table/GridTableApi.ts
|
|
5304
5308
|
var import_mobx9 = require("mobx");
|
|
5305
5309
|
var import_mobx_utils = require("mobx-utils");
|
|
5306
|
-
var
|
|
5310
|
+
var import_react67 = require("react");
|
|
5307
5311
|
|
|
5308
5312
|
// src/components/Table/utils/TableState.ts
|
|
5309
5313
|
var import_mobx8 = require("mobx");
|
|
5310
|
-
var
|
|
5314
|
+
var import_react66 = __toESM(require("react"), 1);
|
|
5311
5315
|
|
|
5312
5316
|
// src/components/Table/utils/ColumnStates.ts
|
|
5313
5317
|
var import_change_case5 = require("change-case");
|
|
@@ -5317,20 +5321,20 @@ var import_mobx5 = require("mobx");
|
|
|
5317
5321
|
var import_mobx3 = require("mobx");
|
|
5318
5322
|
|
|
5319
5323
|
// src/components/Table/components/CollapseToggle.tsx
|
|
5320
|
-
var
|
|
5324
|
+
var import_react14 = require("react");
|
|
5321
5325
|
|
|
5322
5326
|
// src/hooks/useBreakpoint.tsx
|
|
5323
5327
|
var import_fast_deep_equal = __toESM(require("fast-deep-equal"), 1);
|
|
5324
|
-
var
|
|
5328
|
+
var import_react7 = require("react");
|
|
5325
5329
|
var import_use_debounce = require("use-debounce");
|
|
5326
5330
|
function useBreakpoint() {
|
|
5327
|
-
const [breakpoints, setBreakpoints] = (0,
|
|
5331
|
+
const [breakpoints, setBreakpoints] = (0, import_react7.useState)(matchMediaBreakpoints());
|
|
5328
5332
|
const handleResize = (0, import_use_debounce.useDebouncedCallback)(() => {
|
|
5329
5333
|
const newBps = matchMediaBreakpoints();
|
|
5330
5334
|
if ((0, import_fast_deep_equal.default)(breakpoints, newBps)) return;
|
|
5331
5335
|
setBreakpoints(newBps);
|
|
5332
5336
|
}, 250);
|
|
5333
|
-
(0,
|
|
5337
|
+
(0, import_react7.useEffect)(() => {
|
|
5334
5338
|
window.addEventListener("resize", handleResize);
|
|
5335
5339
|
return () => window.removeEventListener("resize", handleResize);
|
|
5336
5340
|
}, [handleResize]);
|
|
@@ -5346,7 +5350,7 @@ function matchMediaBreakpoints() {
|
|
|
5346
5350
|
|
|
5347
5351
|
// src/hooks/useComputed.ts
|
|
5348
5352
|
var import_mobx = require("mobx");
|
|
5349
|
-
var
|
|
5353
|
+
var import_react8 = require("react");
|
|
5350
5354
|
|
|
5351
5355
|
// src/utils/shallowEqual.ts
|
|
5352
5356
|
function shallowEqual(objA, objB) {
|
|
@@ -5372,13 +5376,13 @@ function shallowEqual(objA, objB) {
|
|
|
5372
5376
|
|
|
5373
5377
|
// src/hooks/useComputed.ts
|
|
5374
5378
|
function useComputed(fn, deps) {
|
|
5375
|
-
const [, setTick] = (0,
|
|
5376
|
-
const ref = (0,
|
|
5379
|
+
const [, setTick] = (0, import_react8.useState)(0);
|
|
5380
|
+
const ref = (0, import_react8.useRef)({
|
|
5377
5381
|
runner: void 0,
|
|
5378
5382
|
value: void 0,
|
|
5379
5383
|
hasRan: false
|
|
5380
5384
|
});
|
|
5381
|
-
(0,
|
|
5385
|
+
(0, import_react8.useMemo)(() => {
|
|
5382
5386
|
const { current } = ref;
|
|
5383
5387
|
if (current.runner) {
|
|
5384
5388
|
current.runner();
|
|
@@ -5395,7 +5399,7 @@ function useComputed(fn, deps) {
|
|
|
5395
5399
|
}
|
|
5396
5400
|
});
|
|
5397
5401
|
}, deps);
|
|
5398
|
-
(0,
|
|
5402
|
+
(0, import_react8.useEffect)(() => {
|
|
5399
5403
|
return ref.current.runner;
|
|
5400
5404
|
}, []);
|
|
5401
5405
|
if (!ref.current.hasRan) {
|
|
@@ -5405,9 +5409,9 @@ function useComputed(fn, deps) {
|
|
|
5405
5409
|
}
|
|
5406
5410
|
|
|
5407
5411
|
// src/hooks/useFilter.ts
|
|
5408
|
-
var
|
|
5412
|
+
var import_react9 = require("react");
|
|
5409
5413
|
function useFilter({ filterDefs }) {
|
|
5410
|
-
const [filter, setFilter] = (0,
|
|
5414
|
+
const [filter, setFilter] = (0, import_react9.useState)(
|
|
5411
5415
|
Object.fromEntries(
|
|
5412
5416
|
safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
|
|
5413
5417
|
)
|
|
@@ -5416,21 +5420,21 @@ function useFilter({ filterDefs }) {
|
|
|
5416
5420
|
}
|
|
5417
5421
|
|
|
5418
5422
|
// src/hooks/useGroupBy.ts
|
|
5419
|
-
var
|
|
5423
|
+
var import_react11 = require("react");
|
|
5420
5424
|
|
|
5421
5425
|
// src/hooks/useQueryState.ts
|
|
5422
|
-
var
|
|
5426
|
+
var import_react10 = require("react");
|
|
5423
5427
|
var import_use_query_params = require("use-query-params");
|
|
5424
5428
|
function useQueryState(name, initialValue) {
|
|
5425
5429
|
const [params, setParams] = (0, import_use_query_params.useQueryParams)({ [name]: import_use_query_params.StringParam });
|
|
5426
5430
|
const value = params[name] || initialValue;
|
|
5427
|
-
const setValue = (0,
|
|
5431
|
+
const setValue = (0, import_react10.useCallback)((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
|
|
5428
5432
|
return [value, setValue];
|
|
5429
5433
|
}
|
|
5430
5434
|
|
|
5431
5435
|
// src/hooks/useGroupBy.ts
|
|
5432
5436
|
function useGroupBy(opts) {
|
|
5433
|
-
const options = (0,
|
|
5437
|
+
const options = (0, import_react11.useMemo)(
|
|
5434
5438
|
() => safeEntries(opts).map(([key, value2]) => ({ id: key, name: value2 })),
|
|
5435
5439
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5436
5440
|
[]
|
|
@@ -5447,11 +5451,11 @@ function useHover(props) {
|
|
|
5447
5451
|
}
|
|
5448
5452
|
|
|
5449
5453
|
// src/hooks/usePersistedFilter.ts
|
|
5450
|
-
var
|
|
5454
|
+
var import_react12 = require("react");
|
|
5451
5455
|
var import_use_query_params2 = require("use-query-params");
|
|
5452
5456
|
function usePersistedFilter({ storageKey, filterDefs }) {
|
|
5453
5457
|
const filterKeys = Object.keys(filterDefs);
|
|
5454
|
-
const defaultFilter = (0,
|
|
5458
|
+
const defaultFilter = (0, import_react12.useMemo)(
|
|
5455
5459
|
() => Object.fromEntries(
|
|
5456
5460
|
safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
|
|
5457
5461
|
),
|
|
@@ -5462,7 +5466,7 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
5462
5466
|
const isQueryParamFilterValid = hasValidFilterKeys(queryParamsFilter, filterKeys);
|
|
5463
5467
|
const filter = isQueryParamFilterValid ? queryParamsFilter : storedFilter ?? defaultFilter;
|
|
5464
5468
|
const setFilter = (filter2) => setQueryParams({ filter: filter2 });
|
|
5465
|
-
(0,
|
|
5469
|
+
(0, import_react12.useEffect)(
|
|
5466
5470
|
() => {
|
|
5467
5471
|
if (queryParamsFilter === void 0) {
|
|
5468
5472
|
setQueryParams({ filter: storedFilter }, "replaceIn");
|
|
@@ -5483,14 +5487,14 @@ function hasValidFilterKeys(queryParamsFilter, definedKeys) {
|
|
|
5483
5487
|
}
|
|
5484
5488
|
|
|
5485
5489
|
// src/hooks/useSessionStorage.ts
|
|
5486
|
-
var
|
|
5490
|
+
var import_react13 = require("react");
|
|
5487
5491
|
function useSessionStorage(key, defaultValue) {
|
|
5488
5492
|
let hasSessionStorage = false;
|
|
5489
5493
|
try {
|
|
5490
5494
|
hasSessionStorage = !!window.sessionStorage;
|
|
5491
5495
|
} catch (e) {
|
|
5492
5496
|
}
|
|
5493
|
-
const [state, setState] = (0,
|
|
5497
|
+
const [state, setState] = (0, import_react13.useState)(() => {
|
|
5494
5498
|
if (!hasSessionStorage) {
|
|
5495
5499
|
return defaultValue;
|
|
5496
5500
|
}
|
|
@@ -5501,7 +5505,7 @@ function useSessionStorage(key, defaultValue) {
|
|
|
5501
5505
|
sessionStorage.setItem(key, JSON.stringify(defaultValue));
|
|
5502
5506
|
return defaultValue;
|
|
5503
5507
|
});
|
|
5504
|
-
const setAndSave = (0,
|
|
5508
|
+
const setAndSave = (0, import_react13.useCallback)(
|
|
5505
5509
|
(value) => {
|
|
5506
5510
|
if (hasSessionStorage && value) {
|
|
5507
5511
|
sessionStorage.setItem(key, JSON.stringify(value));
|
|
@@ -5525,7 +5529,7 @@ function getParsedStorage(key) {
|
|
|
5525
5529
|
var import_jsx_runtime7 = require("@emotion/react/jsx-runtime");
|
|
5526
5530
|
function CollapseToggle(props) {
|
|
5527
5531
|
const { row, compact } = props;
|
|
5528
|
-
const { tableState } = (0,
|
|
5532
|
+
const { tableState } = (0, import_react14.useContext)(TableStateContext);
|
|
5529
5533
|
const isCollapsed = useComputed(() => tableState.isCollapsed(row.id), [tableState]);
|
|
5530
5534
|
const iconKey = isCollapsed ? "chevronRight" : "chevronDown";
|
|
5531
5535
|
const headerIconKey = isCollapsed ? "chevronsRight" : "chevronsDown";
|
|
@@ -5546,10 +5550,10 @@ function CollapseToggle(props) {
|
|
|
5546
5550
|
}
|
|
5547
5551
|
|
|
5548
5552
|
// src/components/Table/components/SelectToggle.tsx
|
|
5549
|
-
var
|
|
5553
|
+
var import_react65 = require("react");
|
|
5550
5554
|
|
|
5551
5555
|
// src/inputs/Autocomplete.tsx
|
|
5552
|
-
var
|
|
5556
|
+
var import_react47 = require("react");
|
|
5553
5557
|
var import_react_aria28 = require("react-aria");
|
|
5554
5558
|
var import_react_stately8 = require("react-stately");
|
|
5555
5559
|
|
|
@@ -5557,12 +5561,12 @@ var import_react_stately8 = require("react-stately");
|
|
|
5557
5561
|
var import_react_day_picker3 = require("react-day-picker");
|
|
5558
5562
|
|
|
5559
5563
|
// src/components/internal/DatePicker/Day.tsx
|
|
5560
|
-
var
|
|
5564
|
+
var import_react15 = require("react");
|
|
5561
5565
|
var import_react_day_picker = require("react-day-picker");
|
|
5562
5566
|
var import_jsx_runtime8 = require("@emotion/react/jsx-runtime");
|
|
5563
5567
|
function Day(props) {
|
|
5564
5568
|
const tid = useTestIds(props, "datePickerDay");
|
|
5565
|
-
const buttonRef = (0,
|
|
5569
|
+
const buttonRef = (0, import_react15.useRef)(null);
|
|
5566
5570
|
const { isHidden, isButton, activeModifiers, buttonProps, divProps } = (0, import_react_day_picker.useDayRender)(
|
|
5567
5571
|
props.date,
|
|
5568
5572
|
props.displayMonth,
|
|
@@ -5636,13 +5640,13 @@ var import_date_fns = require("date-fns");
|
|
|
5636
5640
|
var import_react_day_picker2 = require("react-day-picker");
|
|
5637
5641
|
|
|
5638
5642
|
// src/components/IconButton.tsx
|
|
5639
|
-
var
|
|
5643
|
+
var import_react17 = require("react");
|
|
5640
5644
|
var import_react_aria3 = require("react-aria");
|
|
5641
5645
|
|
|
5642
5646
|
// src/hooks/useGetRef.ts
|
|
5643
|
-
var
|
|
5647
|
+
var import_react16 = require("react");
|
|
5644
5648
|
var useGetRef = (maybeRef) => {
|
|
5645
|
-
const newRef = (0,
|
|
5649
|
+
const newRef = (0, import_react16.useRef)(null);
|
|
5646
5650
|
return maybeRef || newRef;
|
|
5647
5651
|
};
|
|
5648
5652
|
|
|
@@ -5702,7 +5706,7 @@ function IconButton(props) {
|
|
|
5702
5706
|
const { focusProps, isFocusVisible } = (0, import_react_aria3.useFocusRing)(ariaProps);
|
|
5703
5707
|
const { hoverProps, isHovered } = (0, import_react_aria3.useHover)(ariaProps);
|
|
5704
5708
|
const testIds = useTestIds(props, icon);
|
|
5705
|
-
const styles = (0,
|
|
5709
|
+
const styles = (0, import_react17.useMemo)(
|
|
5706
5710
|
() => ({
|
|
5707
5711
|
...iconButtonStylesReset,
|
|
5708
5712
|
...circle ? iconButtonCircle : compact ? iconButtonCompact : iconButtonNormal,
|
|
@@ -5854,7 +5858,7 @@ function DateRangePicker(props) {
|
|
|
5854
5858
|
|
|
5855
5859
|
// src/components/internal/Menu.tsx
|
|
5856
5860
|
var import_change_case2 = require("change-case");
|
|
5857
|
-
var
|
|
5861
|
+
var import_react33 = require("react");
|
|
5858
5862
|
var import_react_aria13 = require("react-aria");
|
|
5859
5863
|
var import_react_stately3 = require("react-stately");
|
|
5860
5864
|
|
|
@@ -5875,10 +5879,10 @@ function MenuSectionImpl(props) {
|
|
|
5875
5879
|
|
|
5876
5880
|
// src/inputs/internal/MenuSearchField.tsx
|
|
5877
5881
|
var import_textfield = require("@react-aria/textfield");
|
|
5878
|
-
var
|
|
5882
|
+
var import_react32 = require("react");
|
|
5879
5883
|
|
|
5880
5884
|
// src/inputs/TextFieldBase.tsx
|
|
5881
|
-
var
|
|
5885
|
+
var import_react31 = require("react");
|
|
5882
5886
|
var import_react_aria12 = require("react-aria");
|
|
5883
5887
|
|
|
5884
5888
|
// src/components/HelperText.tsx
|
|
@@ -5889,7 +5893,7 @@ function HelperText(props) {
|
|
|
5889
5893
|
}
|
|
5890
5894
|
|
|
5891
5895
|
// src/components/Label.tsx
|
|
5892
|
-
var
|
|
5896
|
+
var import_react18 = __toESM(require("react"), 1);
|
|
5893
5897
|
var import_react_aria5 = require("react-aria");
|
|
5894
5898
|
var import_jsx_runtime18 = require("@emotion/react/jsx-runtime");
|
|
5895
5899
|
function LabelComponent(props) {
|
|
@@ -5912,7 +5916,7 @@ function LabelComponent(props) {
|
|
|
5912
5916
|
);
|
|
5913
5917
|
return hidden ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria5.VisuallyHidden, { children: labelEl }) : labelEl;
|
|
5914
5918
|
}
|
|
5915
|
-
var Label =
|
|
5919
|
+
var Label = import_react18.default.memo(LabelComponent);
|
|
5916
5920
|
function InlineLabel({ labelProps, label, contrast, multiline = false, ...others }) {
|
|
5917
5921
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
5918
5922
|
"label",
|
|
@@ -5930,19 +5934,19 @@ function InlineLabel({ labelProps, label, contrast, multiline = false, ...others
|
|
|
5930
5934
|
|
|
5931
5935
|
// src/components/Table/components/Row.tsx
|
|
5932
5936
|
var import_mobx_react = require("mobx-react");
|
|
5933
|
-
var
|
|
5937
|
+
var import_react30 = require("react");
|
|
5934
5938
|
|
|
5935
5939
|
// src/components/Table/components/cell.tsx
|
|
5936
5940
|
var import_react_router_dom2 = require("react-router-dom");
|
|
5937
5941
|
|
|
5938
5942
|
// src/components/CssReset.tsx
|
|
5939
|
-
var
|
|
5943
|
+
var import_react19 = require("@emotion/react");
|
|
5940
5944
|
var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
|
|
5941
5945
|
function CssReset() {
|
|
5942
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5946
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react19.Global, { styles: [modernNormalizeReset, tailwindPreflightReset, ourReset] });
|
|
5943
5947
|
}
|
|
5944
5948
|
var navLink = "navLink";
|
|
5945
|
-
var ourReset =
|
|
5949
|
+
var ourReset = import_react19.css`
|
|
5946
5950
|
a:not(.${navLink}) {
|
|
5947
5951
|
color: ${"rgba(29, 78, 216, 1)" /* Blue700 */};
|
|
5948
5952
|
}
|
|
@@ -5988,7 +5992,7 @@ var ourReset = import_react18.css`
|
|
|
5988
5992
|
}
|
|
5989
5993
|
}
|
|
5990
5994
|
`;
|
|
5991
|
-
var modernNormalizeReset =
|
|
5995
|
+
var modernNormalizeReset = import_react19.css`
|
|
5992
5996
|
/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
|
|
5993
5997
|
|
|
5994
5998
|
/*
|
|
@@ -6297,7 +6301,7 @@ Add the correct display in Chrome and Safari.
|
|
|
6297
6301
|
padding: 0;
|
|
6298
6302
|
}
|
|
6299
6303
|
`;
|
|
6300
|
-
var tailwindPreflightReset =
|
|
6304
|
+
var tailwindPreflightReset = import_react19.css`
|
|
6301
6305
|
/**
|
|
6302
6306
|
* Tailwind custom reset styles
|
|
6303
6307
|
*/
|
|
@@ -6494,7 +6498,7 @@ var tailwindPreflightReset = import_react18.css`
|
|
|
6494
6498
|
height: auto;
|
|
6495
6499
|
}
|
|
6496
6500
|
`;
|
|
6497
|
-
var tailwindFormResets =
|
|
6501
|
+
var tailwindFormResets = import_react19.css`
|
|
6498
6502
|
[type="text"],
|
|
6499
6503
|
[type="email"],
|
|
6500
6504
|
[type="url"],
|
|
@@ -6732,32 +6736,32 @@ var rowClickRenderFn = (as, api, colSpan) => (key, css2, content, row, rowStyle,
|
|
|
6732
6736
|
};
|
|
6733
6737
|
|
|
6734
6738
|
// src/components/Table/components/KeptGroupRow.tsx
|
|
6735
|
-
var
|
|
6739
|
+
var import_react29 = require("react");
|
|
6736
6740
|
|
|
6737
6741
|
// src/components/Table/components/EditColumnsButton.tsx
|
|
6738
|
-
var
|
|
6742
|
+
var import_react25 = require("react");
|
|
6739
6743
|
var import_react_aria10 = require("react-aria");
|
|
6740
6744
|
var import_react_stately2 = require("react-stately");
|
|
6741
6745
|
|
|
6742
6746
|
// src/components/Button.tsx
|
|
6743
|
-
var
|
|
6747
|
+
var import_react24 = require("react");
|
|
6744
6748
|
var import_react_aria9 = require("react-aria");
|
|
6745
6749
|
|
|
6746
6750
|
// src/components/internal/OverlayTrigger.tsx
|
|
6747
|
-
var
|
|
6751
|
+
var import_react23 = require("react");
|
|
6748
6752
|
var import_react_aria8 = require("react-aria");
|
|
6749
6753
|
|
|
6750
6754
|
// src/components/Avatar/AvatarButton.tsx
|
|
6751
|
-
var
|
|
6755
|
+
var import_react21 = require("react");
|
|
6752
6756
|
var import_react_aria6 = require("react-aria");
|
|
6753
6757
|
|
|
6754
6758
|
// src/components/Avatar/Avatar.tsx
|
|
6755
|
-
var
|
|
6759
|
+
var import_react20 = require("react");
|
|
6756
6760
|
var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
|
|
6757
6761
|
function Avatar({ src, name, size = "md", showName = false, disableTooltip = false, ...others }) {
|
|
6758
6762
|
const tid = useTestIds(others, "avatar");
|
|
6759
6763
|
const px2 = sizeToPixel[size];
|
|
6760
|
-
const [showFallback, setShowFallback] = (0,
|
|
6764
|
+
const [showFallback, setShowFallback] = (0, import_react20.useState)(src === void 0);
|
|
6761
6765
|
const styles = Css.br100.wPx(px2).hPx(px2).mwPx(px2).oh.$;
|
|
6762
6766
|
const img = showFallback ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { css: { ...styles, ...Css[sizeToFallbackTypeScale[size]].bgGray400.gray100.df.aic.jcc.$ }, ...tid, children: name ? nameToInitials(name) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icon, { icon: "userCircle", inc: sizeToIconInc[size] }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
6763
6767
|
"img",
|
|
@@ -6831,7 +6835,7 @@ function AvatarButton(props) {
|
|
|
6831
6835
|
const { focusProps, isFocusVisible } = (0, import_react_aria6.useFocusRing)(ariaProps);
|
|
6832
6836
|
const { hoverProps, isHovered } = (0, import_react_aria6.useHover)(ariaProps);
|
|
6833
6837
|
const tid = useTestIds(props, avatarProps.name);
|
|
6834
|
-
const styles = (0,
|
|
6838
|
+
const styles = (0, import_react21.useMemo)(
|
|
6835
6839
|
() => ({
|
|
6836
6840
|
...resetStyles,
|
|
6837
6841
|
...isHovered && hoverStyles,
|
|
@@ -6868,7 +6872,7 @@ var pressedStyles = Css.addIn(
|
|
|
6868
6872
|
).$;
|
|
6869
6873
|
|
|
6870
6874
|
// src/components/NavLink.tsx
|
|
6871
|
-
var
|
|
6875
|
+
var import_react22 = require("react");
|
|
6872
6876
|
var import_react_aria7 = require("react-aria");
|
|
6873
6877
|
var import_jsx_runtime23 = require("@emotion/react/jsx-runtime");
|
|
6874
6878
|
function NavLink(props) {
|
|
@@ -6887,7 +6891,7 @@ function NavLink(props) {
|
|
|
6887
6891
|
const { buttonProps, isPressed } = (0, import_react_aria7.useButton)({ ...ariaProps, elementType: href ? "a" : "button" }, ref);
|
|
6888
6892
|
const { hoverProps, isHovered } = (0, import_react_aria7.useHover)({ isDisabled });
|
|
6889
6893
|
const { isFocusVisible, focusProps } = (0, import_react_aria7.useFocusRing)(ariaProps);
|
|
6890
|
-
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3 } = (0,
|
|
6894
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3 } = (0, import_react22.useMemo)(
|
|
6891
6895
|
() => getNavLinkStyles(variant, contrast),
|
|
6892
6896
|
[variant, contrast]
|
|
6893
6897
|
);
|
|
@@ -6959,7 +6963,7 @@ function OverlayTrigger(props) {
|
|
|
6959
6963
|
showActiveBorder = false,
|
|
6960
6964
|
contrast = false
|
|
6961
6965
|
} = props;
|
|
6962
|
-
const popoverRef = (0,
|
|
6966
|
+
const popoverRef = (0, import_react23.useRef)(null);
|
|
6963
6967
|
const { overlayProps: positionProps } = (0, import_react_aria8.useOverlayPosition)({
|
|
6964
6968
|
targetRef: buttonRef,
|
|
6965
6969
|
overlayRef: popoverRef,
|
|
@@ -7069,7 +7073,7 @@ function Button(props) {
|
|
|
7069
7073
|
} = props;
|
|
7070
7074
|
const asLink = typeof onPress === "string";
|
|
7071
7075
|
const showExternalLinkIcon = asLink && isAbsoluteUrl(onPress) || openInNew;
|
|
7072
|
-
const [asyncInProgress, setAsyncInProgress] = (0,
|
|
7076
|
+
const [asyncInProgress, setAsyncInProgress] = (0, import_react24.useState)(false);
|
|
7073
7077
|
const isDisabled = !!disabled;
|
|
7074
7078
|
const ariaProps = { onPress, isDisabled: isDisabled || asyncInProgress, ...otherProps, ...menuTriggerProps };
|
|
7075
7079
|
const {
|
|
@@ -7099,7 +7103,7 @@ function Button(props) {
|
|
|
7099
7103
|
);
|
|
7100
7104
|
const { isFocusVisible, focusProps } = (0, import_react_aria9.useFocusRing)(ariaProps);
|
|
7101
7105
|
const { hoverProps, isHovered } = (0, import_react_aria9.useHover)(ariaProps);
|
|
7102
|
-
const { baseStyles: baseStyles5, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3, focusStyles: focusStyles2 } = (0,
|
|
7106
|
+
const { baseStyles: baseStyles5, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3, focusStyles: focusStyles2 } = (0, import_react24.useMemo)(
|
|
7103
7107
|
() => getButtonStyles(variant, size, contrast),
|
|
7104
7108
|
[variant, size, contrast]
|
|
7105
7109
|
);
|
|
@@ -7215,13 +7219,13 @@ var import_jsx_runtime26 = require("@emotion/react/jsx-runtime");
|
|
|
7215
7219
|
function EditColumnsButton(props) {
|
|
7216
7220
|
const { defaultOpen, disabled, columns, trigger, title, api } = props;
|
|
7217
7221
|
const state = (0, import_react_stately2.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
7218
|
-
const buttonRef = (0,
|
|
7222
|
+
const buttonRef = (0, import_react25.useRef)(null);
|
|
7219
7223
|
const { menuTriggerProps } = (0, import_react_aria10.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
7220
7224
|
const tid = useTestIds(
|
|
7221
7225
|
props,
|
|
7222
7226
|
isTextButton(trigger) ? labelOr(trigger, "editColumnsButton") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
7223
7227
|
);
|
|
7224
|
-
const options = (0,
|
|
7228
|
+
const options = (0, import_react25.useMemo)(
|
|
7225
7229
|
() => columns.filter((column2) => column2.canHide).filter((column2) => {
|
|
7226
7230
|
if (!column2.name || column2.name.length === 0 || !column2.id || column2.id.length === 0) {
|
|
7227
7231
|
console.warn("Column is missing 'name' and/or 'id' property required by the Edit Columns button", column2);
|
|
@@ -7232,7 +7236,7 @@ function EditColumnsButton(props) {
|
|
|
7232
7236
|
[columns]
|
|
7233
7237
|
);
|
|
7234
7238
|
const selectedValues = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
7235
|
-
const setSelectedValues = (0,
|
|
7239
|
+
const setSelectedValues = (0, import_react25.useCallback)(
|
|
7236
7240
|
(ids) => {
|
|
7237
7241
|
api.setVisibleColumns(
|
|
7238
7242
|
columns.filter((column2) => column2.canHide ? ids.includes(column2.id) : true).map((c) => c.id)
|
|
@@ -7267,15 +7271,15 @@ function EditColumnsButton(props) {
|
|
|
7267
7271
|
}
|
|
7268
7272
|
|
|
7269
7273
|
// src/components/Table/components/SortHeader.tsx
|
|
7270
|
-
var
|
|
7274
|
+
var import_react26 = require("react");
|
|
7271
7275
|
var import_jsx_runtime27 = require("@emotion/react/jsx-runtime");
|
|
7272
7276
|
function SortHeader(props) {
|
|
7273
7277
|
const { content, xss, iconOnLeft = false, sortKey, tooltipEl } = props;
|
|
7274
7278
|
const { isHovered, hoverProps } = useHover({});
|
|
7275
|
-
const { tableState } = (0,
|
|
7279
|
+
const { tableState } = (0, import_react26.useContext)(TableStateContext);
|
|
7276
7280
|
const current = useComputed(() => tableState.sortState?.current, [tableState]);
|
|
7277
7281
|
const sorted = sortKey === current?.columnId ? current?.direction : void 0;
|
|
7278
|
-
const toggleSort = (0,
|
|
7282
|
+
const toggleSort = (0, import_react26.useCallback)(() => tableState.setSortKey(sortKey), [sortKey, tableState]);
|
|
7279
7283
|
const tid = useTestIds(props, "sortHeader");
|
|
7280
7284
|
const icon = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
7281
7285
|
Icon,
|
|
@@ -7300,22 +7304,22 @@ function SortHeader(props) {
|
|
|
7300
7304
|
|
|
7301
7305
|
// src/components/Table/hooks/useSetupColumnSizes.ts
|
|
7302
7306
|
var import_utils17 = require("@react-aria/utils");
|
|
7303
|
-
var
|
|
7307
|
+
var import_react27 = require("react");
|
|
7304
7308
|
var import_use_debounce2 = require("use-debounce");
|
|
7305
7309
|
function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
7306
|
-
const calculateImmediately = (0,
|
|
7307
|
-
const [tableWidth, setTableWidth] = (0,
|
|
7308
|
-
const [columnSizes, setColumnSizes] = (0,
|
|
7310
|
+
const calculateImmediately = (0, import_react27.useRef)(true);
|
|
7311
|
+
const [tableWidth, setTableWidth] = (0, import_react27.useState)();
|
|
7312
|
+
const [columnSizes, setColumnSizes] = (0, import_react27.useState)(
|
|
7309
7313
|
calcColumnSizes(columns, tableWidth, style.minWidthPx, expandedColumnIds)
|
|
7310
7314
|
);
|
|
7311
|
-
const setTableAndColumnWidths = (0,
|
|
7315
|
+
const setTableAndColumnWidths = (0, import_react27.useCallback)(
|
|
7312
7316
|
(width2) => {
|
|
7313
7317
|
setTableWidth(width2);
|
|
7314
7318
|
setColumnSizes(calcColumnSizes(columns, width2, style.minWidthPx, expandedColumnIds));
|
|
7315
7319
|
},
|
|
7316
7320
|
[setTableWidth, setColumnSizes, columns, style, expandedColumnIds]
|
|
7317
7321
|
);
|
|
7318
|
-
(0,
|
|
7322
|
+
(0, import_react27.useEffect)(
|
|
7319
7323
|
() => {
|
|
7320
7324
|
if (!calculateImmediately.current) {
|
|
7321
7325
|
const width2 = resizeRef.current?.clientWidth;
|
|
@@ -7327,7 +7331,7 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
|
7327
7331
|
[columns, setTableAndColumnWidths]
|
|
7328
7332
|
);
|
|
7329
7333
|
const setTableAndColumnWidthsDebounced = (0, import_use_debounce2.useDebouncedCallback)(setTableAndColumnWidths, 100);
|
|
7330
|
-
const onResize = (0,
|
|
7334
|
+
const onResize = (0, import_react27.useCallback)(
|
|
7331
7335
|
() => {
|
|
7332
7336
|
const target = resizeRef.current;
|
|
7333
7337
|
if (target && target.clientWidth !== tableWidth) {
|
|
@@ -7555,7 +7559,7 @@ function simpleDataRows(data = []) {
|
|
|
7555
7559
|
}
|
|
7556
7560
|
|
|
7557
7561
|
// src/components/Table/components/ExpandableHeader.tsx
|
|
7558
|
-
var
|
|
7562
|
+
var import_react28 = require("react");
|
|
7559
7563
|
|
|
7560
7564
|
// src/components/Loader.tsx
|
|
7561
7565
|
var import_jsx_runtime28 = require("@emotion/react/jsx-runtime");
|
|
@@ -7581,10 +7585,10 @@ var sizeToPixels = {
|
|
|
7581
7585
|
var import_jsx_runtime29 = require("@emotion/react/jsx-runtime");
|
|
7582
7586
|
function ExpandableHeader(props) {
|
|
7583
7587
|
const { title, column: column2, minStickyLeftOffset, as, tooltipEl } = props;
|
|
7584
|
-
const { tableState } = (0,
|
|
7588
|
+
const { tableState } = (0, import_react28.useContext)(TableStateContext);
|
|
7585
7589
|
const expandedColumnIds = useComputed(() => tableState.expandedColumnIds, [tableState]);
|
|
7586
7590
|
const isExpanded = expandedColumnIds.includes(column2.id);
|
|
7587
|
-
const [isLoading, setIsLoading] = (0,
|
|
7591
|
+
const [isLoading, setIsLoading] = (0, import_react28.useState)(false);
|
|
7588
7592
|
const applyStickyStyles = isExpanded && as !== "table";
|
|
7589
7593
|
const { hoverProps, isHovered } = useHover({});
|
|
7590
7594
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
@@ -7898,7 +7902,7 @@ var import_jsx_runtime31 = require("@emotion/react/jsx-runtime");
|
|
|
7898
7902
|
function KeptGroupRow(props) {
|
|
7899
7903
|
const { as, columnSizes, style, row, colSpan } = props;
|
|
7900
7904
|
const CellTag = as === "table" ? "td" : "div";
|
|
7901
|
-
const { tableState } = (0,
|
|
7905
|
+
const { tableState } = (0, import_react29.useContext)(TableStateContext);
|
|
7902
7906
|
const numHiddenSelectedRows = useComputed(() => tableState.keptRows.length, [tableState]);
|
|
7903
7907
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
7904
7908
|
CellTag,
|
|
@@ -8226,7 +8230,7 @@ function RowImpl(props) {
|
|
|
8226
8230
|
onDragOver,
|
|
8227
8231
|
...others
|
|
8228
8232
|
} = props;
|
|
8229
|
-
const { tableState } = (0,
|
|
8233
|
+
const { tableState } = (0, import_react30.useContext)(TableStateContext);
|
|
8230
8234
|
const { api, visibleColumns: columns } = tableState;
|
|
8231
8235
|
const { row, api: rowApi, isActive, isKept: isKeptRow, isLastKeptRow, level } = rs;
|
|
8232
8236
|
const isHeader = row.kind === HEADER;
|
|
@@ -8274,8 +8278,8 @@ function RowImpl(props) {
|
|
|
8274
8278
|
let foundFirstContentColumn = false;
|
|
8275
8279
|
let minStickyLeftOffset = 0;
|
|
8276
8280
|
let expandColumnHidden = false;
|
|
8277
|
-
const ref = (0,
|
|
8278
|
-
const dragOverCallback = (0,
|
|
8281
|
+
const ref = (0, import_react30.useRef)(null);
|
|
8282
|
+
const dragOverCallback = (0, import_react30.useCallback)(
|
|
8279
8283
|
(row2, evt) => onDragOver?.(row2, evt),
|
|
8280
8284
|
[onDragOver]
|
|
8281
8285
|
);
|
|
@@ -8495,7 +8499,7 @@ function TextFieldBase(props) {
|
|
|
8495
8499
|
const labelSuffix = useLabelSuffix(required, inputProps.readOnly);
|
|
8496
8500
|
const ElementType = multiline ? "textarea" : "input";
|
|
8497
8501
|
const tid = useTestIds(props, defaultTestId(label));
|
|
8498
|
-
const [isFocused, setIsFocused] = (0,
|
|
8502
|
+
const [isFocused, setIsFocused] = (0, import_react31.useState)(false);
|
|
8499
8503
|
const { hoverProps, isHovered } = (0, import_react_aria12.useHover)({});
|
|
8500
8504
|
const { focusWithinProps } = (0, import_react_aria12.useFocusWithin)({ onFocusWithinChange: setIsFocused });
|
|
8501
8505
|
const fieldRef = useGetRef(inputRef);
|
|
@@ -8705,7 +8709,7 @@ function getInputStylePalette(inputStylePalette) {
|
|
|
8705
8709
|
var import_jsx_runtime35 = require("@emotion/react/jsx-runtime");
|
|
8706
8710
|
function MenuSearchField(props) {
|
|
8707
8711
|
const tid = useTestIds(props);
|
|
8708
|
-
const inputRef = (0,
|
|
8712
|
+
const inputRef = (0, import_react32.useRef)(null);
|
|
8709
8713
|
const { labelProps, inputProps } = (0, import_textfield.useTextField)({ ...props }, inputRef);
|
|
8710
8714
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8711
8715
|
TextFieldBase,
|
|
@@ -8730,9 +8734,9 @@ function Menu(props) {
|
|
|
8730
8734
|
getKey: (item) => (0, import_change_case2.camelCase)(item.label),
|
|
8731
8735
|
getChildren: (item) => item.items ?? []
|
|
8732
8736
|
});
|
|
8733
|
-
const [search, setSearch] = (0,
|
|
8737
|
+
const [search, setSearch] = (0, import_react33.useState)(void 0);
|
|
8734
8738
|
const { contains } = (0, import_react_aria13.useFilter)({ sensitivity: "base" });
|
|
8735
|
-
const filteredTree = (0,
|
|
8739
|
+
const filteredTree = (0, import_react33.useMemo)(() => {
|
|
8736
8740
|
const { items: items2, ...others } = tree;
|
|
8737
8741
|
const [itemsSection, persistentSection] = items2;
|
|
8738
8742
|
if (search) {
|
|
@@ -8750,7 +8754,7 @@ function Menu(props) {
|
|
|
8750
8754
|
return tree;
|
|
8751
8755
|
}
|
|
8752
8756
|
}, [tree, search, contains]);
|
|
8753
|
-
const menuChildren = (0,
|
|
8757
|
+
const menuChildren = (0, import_react33.useMemo)(() => {
|
|
8754
8758
|
return filteredTree.items.map(({ value: s }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_stately3.Section, { title: s.label, items: s.items, children: (item) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_stately3.Item, { children: item.label }, item.label.replace(/"/g, "")) }, s.label.replace(/"/g, "")));
|
|
8755
8759
|
}, [filteredTree]);
|
|
8756
8760
|
const state = (0, import_react_stately3.useTreeState)({
|
|
@@ -8763,10 +8767,10 @@ function Menu(props) {
|
|
|
8763
8767
|
keys !== "all" && onChange && onChange([...keys.values()].map((k) => k.toString())[0]);
|
|
8764
8768
|
}
|
|
8765
8769
|
});
|
|
8766
|
-
const menuRef = (0,
|
|
8770
|
+
const menuRef = (0, import_react33.useRef)(null);
|
|
8767
8771
|
const { menuProps } = (0, import_react_aria13.useMenu)({ ...ariaMenuProps, autoFocus: searchable ? false : true }, state, menuRef);
|
|
8768
8772
|
const tid = useTestIds(props);
|
|
8769
|
-
(0,
|
|
8773
|
+
(0, import_react33.useEffect)(() => filteredTree.update("items", { label: "items", items }), [items]);
|
|
8770
8774
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria13.FocusScope, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
8771
8775
|
"div",
|
|
8772
8776
|
{
|
|
@@ -8803,13 +8807,13 @@ function Menu(props) {
|
|
|
8803
8807
|
}
|
|
8804
8808
|
|
|
8805
8809
|
// src/components/internal/MenuItem.tsx
|
|
8806
|
-
var
|
|
8810
|
+
var import_react35 = require("react");
|
|
8807
8811
|
var import_react_aria16 = require("react-aria");
|
|
8808
8812
|
var import_react_router = require("react-router");
|
|
8809
8813
|
var import_react_router_dom3 = require("react-router-dom");
|
|
8810
8814
|
|
|
8811
8815
|
// src/components/ButtonModal.tsx
|
|
8812
|
-
var
|
|
8816
|
+
var import_react34 = require("react");
|
|
8813
8817
|
var import_react_aria15 = require("react-aria");
|
|
8814
8818
|
var import_react_stately4 = require("react-stately");
|
|
8815
8819
|
|
|
@@ -8830,7 +8834,7 @@ var import_jsx_runtime38 = require("@emotion/react/jsx-runtime");
|
|
|
8830
8834
|
function ButtonModal(props) {
|
|
8831
8835
|
const { storybookDefaultOpen, trigger, disabled, content, title } = props;
|
|
8832
8836
|
const state = (0, import_react_stately4.useMenuTriggerState)({ isOpen: storybookDefaultOpen });
|
|
8833
|
-
const buttonRef = (0,
|
|
8837
|
+
const buttonRef = (0, import_react34.useRef)(null);
|
|
8834
8838
|
const { menuTriggerProps } = (0, import_react_aria15.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
8835
8839
|
const tid = useTestIds(
|
|
8836
8840
|
props,
|
|
@@ -8884,7 +8888,7 @@ function MenuItemImpl(props) {
|
|
|
8884
8888
|
const isDisabled = Boolean(disabled);
|
|
8885
8889
|
const isSelected = state.selectionManager.selectedKeys.has(label);
|
|
8886
8890
|
const isFocused = state.selectionManager.focusedKey === item.key;
|
|
8887
|
-
const ref = (0,
|
|
8891
|
+
const ref = (0, import_react35.useRef)(null);
|
|
8888
8892
|
const history = (0, import_react_router.useHistory)();
|
|
8889
8893
|
const { hoverProps, isHovered } = (0, import_react_aria16.useHover)({});
|
|
8890
8894
|
const tid = useTestIds(props);
|
|
@@ -9005,19 +9009,19 @@ function Popover(props) {
|
|
|
9005
9009
|
}
|
|
9006
9010
|
|
|
9007
9011
|
// src/inputs/internal/ComboBoxBase.tsx
|
|
9008
|
-
var
|
|
9012
|
+
var import_react46 = require("react");
|
|
9009
9013
|
var import_react_aria27 = require("react-aria");
|
|
9010
9014
|
var import_react_stately7 = require("react-stately");
|
|
9011
9015
|
|
|
9012
9016
|
// src/inputs/internal/ComboBoxInput.tsx
|
|
9013
|
-
var
|
|
9017
|
+
var import_react45 = require("react");
|
|
9014
9018
|
var import_react_aria26 = require("react-aria");
|
|
9015
9019
|
|
|
9016
9020
|
// src/inputs/hooks/useGrowingTextField.tsx
|
|
9017
9021
|
var import_utils32 = require("@react-aria/utils");
|
|
9018
|
-
var
|
|
9022
|
+
var import_react36 = require("react");
|
|
9019
9023
|
function useGrowingTextField({ inputRef, inputWrapRef, value, disabled }) {
|
|
9020
|
-
const onHeightChange = (0,
|
|
9024
|
+
const onHeightChange = (0, import_react36.useCallback)(() => {
|
|
9021
9025
|
if (disabled) return;
|
|
9022
9026
|
const input = inputRef.current;
|
|
9023
9027
|
const inputWrap = inputWrapRef.current;
|
|
@@ -9049,12 +9053,12 @@ function useGrowingTextField({ inputRef, inputWrapRef, value, disabled }) {
|
|
|
9049
9053
|
}
|
|
9050
9054
|
|
|
9051
9055
|
// src/inputs/TreeSelectField/TreeSelectField.tsx
|
|
9052
|
-
var
|
|
9056
|
+
var import_react44 = __toESM(require("react"), 1);
|
|
9053
9057
|
var import_react_aria25 = require("react-aria");
|
|
9054
9058
|
var import_react_stately6 = require("react-stately");
|
|
9055
9059
|
|
|
9056
9060
|
// src/inputs/internal/ListBox.tsx
|
|
9057
|
-
var
|
|
9061
|
+
var import_react43 = require("react");
|
|
9058
9062
|
var import_react_aria24 = require("react-aria");
|
|
9059
9063
|
|
|
9060
9064
|
// src/inputs/internal/constants.ts
|
|
@@ -9065,25 +9069,25 @@ var sectionSeparatorHeight = 1;
|
|
|
9065
9069
|
var import_react_aria23 = require("react-aria");
|
|
9066
9070
|
|
|
9067
9071
|
// src/inputs/internal/Option.tsx
|
|
9068
|
-
var
|
|
9072
|
+
var import_react39 = require("react");
|
|
9069
9073
|
var import_react_aria20 = require("react-aria");
|
|
9070
9074
|
|
|
9071
9075
|
// src/inputs/ChipSelectField.tsx
|
|
9072
9076
|
var import_change_case3 = require("change-case");
|
|
9073
|
-
var
|
|
9077
|
+
var import_react38 = require("react");
|
|
9074
9078
|
var import_react_aria19 = require("react-aria");
|
|
9075
9079
|
var import_react_stately5 = require("react-stately");
|
|
9076
9080
|
|
|
9077
9081
|
// src/inputs/ChipTextField.tsx
|
|
9078
|
-
var
|
|
9082
|
+
var import_react37 = require("react");
|
|
9079
9083
|
var import_react_aria18 = require("react-aria");
|
|
9080
9084
|
var import_jsx_runtime42 = require("@emotion/react/jsx-runtime");
|
|
9081
9085
|
function ChipTextField(props) {
|
|
9082
9086
|
const { autoFocus, onFocus, onBlur, onEnter, onChange, required, label, value, blurOnEscape = true } = props;
|
|
9083
9087
|
const { fieldProps } = usePresentationContext();
|
|
9084
|
-
const valueRef = (0,
|
|
9088
|
+
const valueRef = (0, import_react37.useRef)(value);
|
|
9085
9089
|
const tid = useTestIds(props, "chipField");
|
|
9086
|
-
const [isFocused, setIsFocused] = (0,
|
|
9090
|
+
const [isFocused, setIsFocused] = (0, import_react37.useState)(false);
|
|
9087
9091
|
const { focusProps } = (0, import_react_aria18.useFocus)({
|
|
9088
9092
|
onFocus: (e) => {
|
|
9089
9093
|
if (fieldRef.current) {
|
|
@@ -9100,9 +9104,8 @@ function ChipTextField(props) {
|
|
|
9100
9104
|
onBlur: () => maybeCall(onBlur),
|
|
9101
9105
|
onFocusChange: setIsFocused
|
|
9102
9106
|
});
|
|
9103
|
-
const fieldRef = (0,
|
|
9104
|
-
|
|
9105
|
-
(0, import_react36.useEffect)(
|
|
9107
|
+
const fieldRef = (0, import_react37.useRef)(null);
|
|
9108
|
+
(0, import_react37.useEffect)(
|
|
9106
9109
|
() => {
|
|
9107
9110
|
autoFocus && fieldRef.current?.focus();
|
|
9108
9111
|
},
|
|
@@ -9135,8 +9138,9 @@ function ChipTextField(props) {
|
|
|
9135
9138
|
},
|
|
9136
9139
|
...focusProps,
|
|
9137
9140
|
css: {
|
|
9138
|
-
...
|
|
9139
|
-
...
|
|
9141
|
+
...chipBaseStyles(fieldProps?.compact),
|
|
9142
|
+
...Css.mwPx(32).outline0.$,
|
|
9143
|
+
...isFocused && Css.bshFocus.$
|
|
9140
9144
|
},
|
|
9141
9145
|
...tid,
|
|
9142
9146
|
children: valueRef.current
|
|
@@ -9148,14 +9152,7 @@ function ChipTextField(props) {
|
|
|
9148
9152
|
var import_jsx_runtime43 = require("@emotion/react/jsx-runtime");
|
|
9149
9153
|
function ListBoxChip({ label }) {
|
|
9150
9154
|
const { fieldProps } = usePresentationContext();
|
|
9151
|
-
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9152
|
-
"span",
|
|
9153
|
-
{
|
|
9154
|
-
css: Css[fieldProps?.typeScale ?? "sm"].tal.bgGray300.gray900.br16.pxPx(10).pyPx(2).lineClamp1.wbba.$,
|
|
9155
|
-
title: label,
|
|
9156
|
-
children: label
|
|
9157
|
-
}
|
|
9158
|
-
);
|
|
9155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { css: { ...chipBaseStyles(fieldProps?.compact), ...Css.truncate.dib.$ }, title: label, children: label });
|
|
9159
9156
|
}
|
|
9160
9157
|
|
|
9161
9158
|
// src/inputs/Value.ts
|
|
@@ -9207,7 +9204,7 @@ function defaultOptionLabel(opt) {
|
|
|
9207
9204
|
// src/inputs/ChipSelectField.tsx
|
|
9208
9205
|
var import_jsx_runtime44 = require("@emotion/react/jsx-runtime");
|
|
9209
9206
|
function ChipSelectField(props) {
|
|
9210
|
-
const firstRender = (0,
|
|
9207
|
+
const firstRender = (0, import_react38.useRef)(true);
|
|
9211
9208
|
const { fieldProps } = usePresentationContext();
|
|
9212
9209
|
const {
|
|
9213
9210
|
label,
|
|
@@ -9229,9 +9226,9 @@ function ChipSelectField(props) {
|
|
|
9229
9226
|
const typeScale = fieldProps?.typeScale ?? "sm";
|
|
9230
9227
|
const isDisabled = !!disabled;
|
|
9231
9228
|
const showClearButton = !disabled && clearable && !!value;
|
|
9232
|
-
const chipStyles =
|
|
9233
|
-
const [visualFocus, setVisualFocus] = (0,
|
|
9234
|
-
const [isClearFocused, setIsClearFocused] = (0,
|
|
9229
|
+
const chipStyles = { ...chipBaseStyles(), ...Css.pyPx(2).gap0.aiStretch.$ };
|
|
9230
|
+
const [visualFocus, setVisualFocus] = (0, import_react38.useState)(false);
|
|
9231
|
+
const [isClearFocused, setIsClearFocused] = (0, import_react38.useState)(false);
|
|
9235
9232
|
const { focusProps } = (0, import_react_aria19.useFocus)({
|
|
9236
9233
|
onFocus: (e) => {
|
|
9237
9234
|
if (popoverRef.current && popoverRef.current.contains(e.relatedTarget)) {
|
|
@@ -9249,10 +9246,10 @@ function ChipSelectField(props) {
|
|
|
9249
9246
|
onFocusChange: (isFocused) => !state.isOpen && setVisualFocus(isFocused)
|
|
9250
9247
|
});
|
|
9251
9248
|
const { focusProps: clearFocusProps } = (0, import_react_aria19.useFocus)({ onFocusChange: setIsClearFocused });
|
|
9252
|
-
const buttonRef = (0,
|
|
9253
|
-
const popoverRef = (0,
|
|
9254
|
-
const listBoxRef = (0,
|
|
9255
|
-
const wrapperRef = (0,
|
|
9249
|
+
const buttonRef = (0, import_react38.useRef)(null);
|
|
9250
|
+
const popoverRef = (0, import_react38.useRef)(null);
|
|
9251
|
+
const listBoxRef = (0, import_react38.useRef)(null);
|
|
9252
|
+
const wrapperRef = (0, import_react38.useRef)(null);
|
|
9256
9253
|
const listData = (0, import_react_stately5.useListData)({
|
|
9257
9254
|
initialItems: !onCreateNew ? options : [
|
|
9258
9255
|
{ title: "Options", options },
|
|
@@ -9261,7 +9258,7 @@ function ChipSelectField(props) {
|
|
|
9261
9258
|
initialSelectedKeys: [valueToKey(value)],
|
|
9262
9259
|
getKey: (item) => isListBoxSection(item) ? item.title : getOptionValue(item)
|
|
9263
9260
|
});
|
|
9264
|
-
(0,
|
|
9261
|
+
(0, import_react38.useEffect)(
|
|
9265
9262
|
() => {
|
|
9266
9263
|
if (!firstRender.current) {
|
|
9267
9264
|
if (onCreateNew) {
|
|
@@ -9277,7 +9274,7 @@ function ChipSelectField(props) {
|
|
|
9277
9274
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9278
9275
|
[options]
|
|
9279
9276
|
);
|
|
9280
|
-
const selectChildren = (0,
|
|
9277
|
+
const selectChildren = (0, import_react38.useMemo)(
|
|
9281
9278
|
() => listData.items.map((s) => {
|
|
9282
9279
|
if (isListBoxSection(s)) {
|
|
9283
9280
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_stately5.Section, { title: s.title, items: s.options, children: (item) => {
|
|
@@ -9341,7 +9338,7 @@ function ChipSelectField(props) {
|
|
|
9341
9338
|
// Ensures the menu never gets too small.
|
|
9342
9339
|
minWidth: 200
|
|
9343
9340
|
};
|
|
9344
|
-
const [showInput, setShowInput] = (0,
|
|
9341
|
+
const [showInput, setShowInput] = (0, import_react38.useState)(false);
|
|
9345
9342
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
9346
9343
|
showInput && onCreateNew && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9347
9344
|
CreateNewField,
|
|
@@ -9363,7 +9360,7 @@ function ChipSelectField(props) {
|
|
|
9363
9360
|
ref: wrapperRef,
|
|
9364
9361
|
css: {
|
|
9365
9362
|
...chipStyles,
|
|
9366
|
-
...Css.
|
|
9363
|
+
...Css.relative.p0.mwPx(32).$,
|
|
9367
9364
|
...visualFocus ? Css.bshFocus.$ : {},
|
|
9368
9365
|
...showInput ? Css.dn.$ : {}
|
|
9369
9366
|
},
|
|
@@ -9376,8 +9373,8 @@ function ChipSelectField(props) {
|
|
|
9376
9373
|
ref: buttonRef,
|
|
9377
9374
|
css: {
|
|
9378
9375
|
...Css.tal.br16.pxPx(10).pyPx(2).outline0.if(showClearButton).prPx(4).borderRadius("16px 0 0 16px").$,
|
|
9379
|
-
...isDisabled ?
|
|
9380
|
-
"&:hover:not(:disabled)":
|
|
9376
|
+
...isDisabled ? chipDisabledStyles : {},
|
|
9377
|
+
"&:hover:not(:disabled)": chipHoverStyles
|
|
9381
9378
|
},
|
|
9382
9379
|
title: state.selectedItem ? state.selectedItem.textValue : placeholder,
|
|
9383
9380
|
...tid,
|
|
@@ -9390,7 +9387,7 @@ function ChipSelectField(props) {
|
|
|
9390
9387
|
...clearFocusProps,
|
|
9391
9388
|
css: {
|
|
9392
9389
|
...Css.prPx(4).borderRadius("0 16px 16px 0").outline0.$,
|
|
9393
|
-
"&:hover":
|
|
9390
|
+
"&:hover": chipHoverStyles,
|
|
9394
9391
|
...isClearFocused ? Css.boxShadow(`0px 0px 0px 2px rgba(3,105,161,1)`).$ : {}
|
|
9395
9392
|
},
|
|
9396
9393
|
onClick: () => {
|
|
@@ -9399,7 +9396,7 @@ function ChipSelectField(props) {
|
|
|
9399
9396
|
},
|
|
9400
9397
|
"aria-label": "Remove",
|
|
9401
9398
|
...tid.clearButton,
|
|
9402
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Icon, { icon: "x", inc: typeScale === "xs" ? 2 : void 0 })
|
|
9399
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Icon, { icon: "x", color: "rgba(141, 141, 141, 1)" /* Gray600 */, inc: typeScale === "xs" ? 2 : void 0 })
|
|
9403
9400
|
}
|
|
9404
9401
|
)
|
|
9405
9402
|
]
|
|
@@ -9446,7 +9443,7 @@ function isListBoxSection(obj) {
|
|
|
9446
9443
|
}
|
|
9447
9444
|
function CreateNewField(props) {
|
|
9448
9445
|
const { onBlur, onEnter } = props;
|
|
9449
|
-
const [value, setValue] = (0,
|
|
9446
|
+
const [value, setValue] = (0, import_react38.useState)("Add new");
|
|
9450
9447
|
const tid = useTestIds(props);
|
|
9451
9448
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9452
9449
|
ChipTextField,
|
|
@@ -9466,7 +9463,7 @@ function CreateNewField(props) {
|
|
|
9466
9463
|
var import_jsx_runtime45 = require("@emotion/react/jsx-runtime");
|
|
9467
9464
|
function Option(props) {
|
|
9468
9465
|
const { item, state, contrast = false, scrollToIndex, disabledReason } = props;
|
|
9469
|
-
const ref = (0,
|
|
9466
|
+
const ref = (0, import_react39.useRef)(null);
|
|
9470
9467
|
const { hoverProps, isHovered } = (0, import_react_aria20.useHover)({});
|
|
9471
9468
|
const themeStyles = {
|
|
9472
9469
|
item: Css.gray900.if(contrast).white.$,
|
|
@@ -9513,7 +9510,7 @@ function Option(props) {
|
|
|
9513
9510
|
}
|
|
9514
9511
|
|
|
9515
9512
|
// src/inputs/internal/VirtualizedOptions.tsx
|
|
9516
|
-
var
|
|
9513
|
+
var import_react42 = require("react");
|
|
9517
9514
|
var import_react_virtuoso = require("react-virtuoso");
|
|
9518
9515
|
|
|
9519
9516
|
// src/inputs/internal/LoadingDots.tsx
|
|
@@ -9537,11 +9534,11 @@ function LoadingDots({ contrast }) {
|
|
|
9537
9534
|
}
|
|
9538
9535
|
|
|
9539
9536
|
// src/inputs/TreeSelectField/TreeOption.tsx
|
|
9540
|
-
var
|
|
9537
|
+
var import_react41 = require("react");
|
|
9541
9538
|
var import_react_aria22 = require("react-aria");
|
|
9542
9539
|
|
|
9543
9540
|
// src/inputs/CheckboxBase.tsx
|
|
9544
|
-
var
|
|
9541
|
+
var import_react40 = require("react");
|
|
9545
9542
|
var import_react_aria21 = require("react-aria");
|
|
9546
9543
|
var import_jsx_runtime47 = require("@emotion/react/jsx-runtime");
|
|
9547
9544
|
function CheckboxBase(props) {
|
|
@@ -9558,7 +9555,7 @@ function CheckboxBase(props) {
|
|
|
9558
9555
|
withLabelElement = true,
|
|
9559
9556
|
tooltip
|
|
9560
9557
|
} = props;
|
|
9561
|
-
const ref = (0,
|
|
9558
|
+
const ref = (0, import_react40.useRef)(null);
|
|
9562
9559
|
const { isFocusVisible, focusProps } = (0, import_react_aria21.useFocusRing)(ariaProps);
|
|
9563
9560
|
const tid = useTestIds(props, defaultTestId(label));
|
|
9564
9561
|
const Tag2 = withLabelElement ? "label" : "div";
|
|
@@ -9639,7 +9636,7 @@ function TreeOption(props) {
|
|
|
9639
9636
|
const leveledOption = item.value;
|
|
9640
9637
|
if (!leveledOption) return null;
|
|
9641
9638
|
const [option, level] = leveledOption;
|
|
9642
|
-
const ref = (0,
|
|
9639
|
+
const ref = (0, import_react41.useRef)(null);
|
|
9643
9640
|
const { hoverProps, isHovered } = (0, import_react_aria22.useHover)({});
|
|
9644
9641
|
const tid = useTestIds(props, "treeOption");
|
|
9645
9642
|
const { collapsedKeys, setCollapsedKeys, getOptionValue } = useTreeSelectFieldProvider();
|
|
@@ -9756,10 +9753,10 @@ function VirtualizedOptions(props) {
|
|
|
9756
9753
|
isTree,
|
|
9757
9754
|
allowCollapsing
|
|
9758
9755
|
} = props;
|
|
9759
|
-
const virtuosoRef = (0,
|
|
9756
|
+
const virtuosoRef = (0, import_react42.useRef)(null);
|
|
9760
9757
|
const focusedItem = state.collection.getItem(state.selectionManager.focusedKey);
|
|
9761
9758
|
const selectedItem = state.selectionManager.selectedKeys.size > 0 ? state.collection.getItem([...state.selectionManager.selectedKeys.values()][0]) : void 0;
|
|
9762
|
-
(0,
|
|
9759
|
+
(0, import_react42.useEffect)(
|
|
9763
9760
|
() => {
|
|
9764
9761
|
if (scrollOnFocus && virtuosoRef.current && focusedItem?.index) {
|
|
9765
9762
|
virtuosoRef.current.scrollToIndex({ index: focusedItem.index, align: "center" });
|
|
@@ -9899,13 +9896,13 @@ function ListBox(props) {
|
|
|
9899
9896
|
const { listBoxProps } = (0, import_react_aria24.useListBox)({ disallowEmptySelection: true, ...props }, state, listBoxRef);
|
|
9900
9897
|
const positionMaxHeight = positionProps.style?.maxHeight;
|
|
9901
9898
|
const popoverMaxHeight = positionMaxHeight && typeof positionMaxHeight === "number" ? Math.min(positionMaxHeight, maxPopoverHeight) : maxPopoverHeight;
|
|
9902
|
-
const [popoverHeight, setPopoverHeight] = (0,
|
|
9899
|
+
const [popoverHeight, setPopoverHeight] = (0, import_react43.useState)(popoverMaxHeight);
|
|
9903
9900
|
const isMultiSelect = state.selectionManager.selectionMode === "multiple";
|
|
9904
9901
|
const firstItem = state.collection.at(0);
|
|
9905
9902
|
const hasSections = firstItem && firstItem.type === "section";
|
|
9906
|
-
const selectedList = (0,
|
|
9907
|
-
const firstRender = (0,
|
|
9908
|
-
const virtuosoListHeight = (0,
|
|
9903
|
+
const selectedList = (0, import_react43.useRef)(null);
|
|
9904
|
+
const firstRender = (0, import_react43.useRef)(true);
|
|
9905
|
+
const virtuosoListHeight = (0, import_react43.useRef)(0);
|
|
9909
9906
|
const onListHeightChange = (listHeight) => {
|
|
9910
9907
|
virtuosoListHeight.current = listHeight;
|
|
9911
9908
|
const height = (selectedList.current?.offsetHeight || 0) + listHeight;
|
|
@@ -9913,7 +9910,7 @@ function ListBox(props) {
|
|
|
9913
9910
|
Math.min(popoverMaxHeight, hasSections ? height + persistentItemHeight + sectionSeparatorHeight : height)
|
|
9914
9911
|
);
|
|
9915
9912
|
};
|
|
9916
|
-
(0,
|
|
9913
|
+
(0, import_react43.useEffect)(
|
|
9917
9914
|
() => {
|
|
9918
9915
|
if (!firstRender.current && isMultiSelect && (state.selectionManager.selectedKeys.size === 0 || state.selectionManager.selectedKeys.size === 1)) {
|
|
9919
9916
|
onListHeightChange(virtuosoListHeight.current);
|
|
@@ -10000,13 +9997,13 @@ function TreeSelectField(props) {
|
|
|
10000
9997
|
defaultCollapsed = false,
|
|
10001
9998
|
...otherProps
|
|
10002
9999
|
} = props;
|
|
10003
|
-
const [collapsedKeys, setCollapsedKeys] = (0,
|
|
10004
|
-
(0,
|
|
10000
|
+
const [collapsedKeys, setCollapsedKeys] = (0, import_react44.useState)([]);
|
|
10001
|
+
(0, import_react44.useEffect)(() => {
|
|
10005
10002
|
setCollapsedKeys(
|
|
10006
10003
|
!Array.isArray(options) ? [] : defaultCollapsed ? options.map((o) => getOptionValue(o)) : options.flatMap(flattenOptions).filter((o) => o.defaultCollapsed).map((o) => getOptionValue(o))
|
|
10007
10004
|
);
|
|
10008
10005
|
}, [options, defaultCollapsed]);
|
|
10009
|
-
const contextValue = (0,
|
|
10006
|
+
const contextValue = (0, import_react44.useMemo)(
|
|
10010
10007
|
() => ({ collapsedKeys, setCollapsedKeys, getOptionValue }),
|
|
10011
10008
|
// TODO: validate this eslint-disable. It was automatically ignored as part of https://app.shortcut.com/homebound-team/story/40033/enable-react-hooks-exhaustive-deps-for-react-projects
|
|
10012
10009
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -10027,9 +10024,9 @@ function TreeSelectField(props) {
|
|
|
10027
10024
|
) });
|
|
10028
10025
|
}
|
|
10029
10026
|
function useTreeSelectFieldProvider() {
|
|
10030
|
-
return (0,
|
|
10027
|
+
return (0, import_react44.useContext)(CollapsedContext);
|
|
10031
10028
|
}
|
|
10032
|
-
var CollapsedContext =
|
|
10029
|
+
var CollapsedContext = import_react44.default.createContext({
|
|
10033
10030
|
collapsedKeys: [],
|
|
10034
10031
|
setCollapsedKeys: () => {
|
|
10035
10032
|
},
|
|
@@ -10063,7 +10060,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10063
10060
|
const { contains } = (0, import_react_aria25.useFilter)({ sensitivity: "base" });
|
|
10064
10061
|
const { collapsedKeys } = useTreeSelectFieldProvider();
|
|
10065
10062
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
10066
|
-
const initTreeFieldState = (0,
|
|
10063
|
+
const initTreeFieldState = (0, import_react44.useCallback)(() => {
|
|
10067
10064
|
const selectedKeys = new Set(
|
|
10068
10065
|
values?.flatMap((v) => {
|
|
10069
10066
|
const foundOptions = findOptions(initialOptions, valueToKey(v), getOptionValue);
|
|
@@ -10113,13 +10110,13 @@ function TreeSelectFieldBase(props) {
|
|
|
10113
10110
|
getOptionValue,
|
|
10114
10111
|
collapsedKeys
|
|
10115
10112
|
]);
|
|
10116
|
-
const [fieldState, setFieldState] = (0,
|
|
10117
|
-
(0,
|
|
10113
|
+
const [fieldState, setFieldState] = (0, import_react44.useState)(() => initTreeFieldState());
|
|
10114
|
+
(0, import_react44.useEffect)(() => {
|
|
10118
10115
|
if (Array.isArray(options)) {
|
|
10119
10116
|
setFieldState((prevState) => ({ ...prevState, allOptions: options }));
|
|
10120
10117
|
}
|
|
10121
10118
|
}, [options]);
|
|
10122
|
-
(0,
|
|
10119
|
+
(0, import_react44.useEffect)(() => {
|
|
10123
10120
|
const selectedKeys = fieldState.selectedOptions.map((o) => valueToKey(getOptionValue(o)));
|
|
10124
10121
|
if (
|
|
10125
10122
|
// If the values were cleared
|
|
@@ -10129,8 +10126,8 @@ function TreeSelectFieldBase(props) {
|
|
|
10129
10126
|
setFieldState(initTreeFieldState());
|
|
10130
10127
|
}
|
|
10131
10128
|
}, [getOptionValue, initTreeFieldState, values]);
|
|
10132
|
-
const reactToCollapse = (0,
|
|
10133
|
-
(0,
|
|
10129
|
+
const reactToCollapse = (0, import_react44.useRef)(false);
|
|
10130
|
+
(0, import_react44.useEffect)(
|
|
10134
10131
|
() => {
|
|
10135
10132
|
if (reactToCollapse.current) {
|
|
10136
10133
|
setFieldState(({ allOptions, inputValue, ...others }) => ({
|
|
@@ -10150,7 +10147,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10150
10147
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10151
10148
|
[collapsedKeys]
|
|
10152
10149
|
);
|
|
10153
|
-
const onInputChange = (0,
|
|
10150
|
+
const onInputChange = (0, import_react44.useCallback)(
|
|
10154
10151
|
(inputValue) => {
|
|
10155
10152
|
setFieldState((prevState) => {
|
|
10156
10153
|
return {
|
|
@@ -10167,7 +10164,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10167
10164
|
},
|
|
10168
10165
|
[collapsedKeys, contains, getOptionLabel, getOptionValue]
|
|
10169
10166
|
);
|
|
10170
|
-
const maybeInitLoad = (0,
|
|
10167
|
+
const maybeInitLoad = (0, import_react44.useCallback)(
|
|
10171
10168
|
async (options2, fieldState2, setFieldState2) => {
|
|
10172
10169
|
if (!Array.isArray(options2)) {
|
|
10173
10170
|
setFieldState2((prevState) => ({ ...prevState, optionsLoading: true }));
|
|
@@ -10187,7 +10184,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10187
10184
|
},
|
|
10188
10185
|
[collapsedKeys, contains, getOptionLabel, getOptionValue]
|
|
10189
10186
|
);
|
|
10190
|
-
const firstOpen = (0,
|
|
10187
|
+
const firstOpen = (0, import_react44.useRef)(true);
|
|
10191
10188
|
function onOpenChange(isOpen) {
|
|
10192
10189
|
if (firstOpen.current && isOpen) {
|
|
10193
10190
|
maybeInitLoad(options, fieldState, setFieldState);
|
|
@@ -10323,12 +10320,12 @@ function TreeSelectFieldBase(props) {
|
|
|
10323
10320
|
}));
|
|
10324
10321
|
}
|
|
10325
10322
|
}
|
|
10326
|
-
const comboBoxRef = (0,
|
|
10327
|
-
const triggerRef = (0,
|
|
10328
|
-
const inputRef = (0,
|
|
10329
|
-
const inputWrapRef = (0,
|
|
10330
|
-
const listBoxRef = (0,
|
|
10331
|
-
const popoverRef = (0,
|
|
10323
|
+
const comboBoxRef = (0, import_react44.useRef)(null);
|
|
10324
|
+
const triggerRef = (0, import_react44.useRef)(null);
|
|
10325
|
+
const inputRef = (0, import_react44.useRef)(null);
|
|
10326
|
+
const inputWrapRef = (0, import_react44.useRef)(null);
|
|
10327
|
+
const listBoxRef = (0, import_react44.useRef)(null);
|
|
10328
|
+
const popoverRef = (0, import_react44.useRef)(null);
|
|
10332
10329
|
const {
|
|
10333
10330
|
buttonProps: triggerProps,
|
|
10334
10331
|
inputProps,
|
|
@@ -10465,7 +10462,7 @@ function ComboBoxInput(props) {
|
|
|
10465
10462
|
const { wrap = false } = usePresentationContext();
|
|
10466
10463
|
const allowWrap = wrap || multiline;
|
|
10467
10464
|
const { collapsedKeys, setCollapsedKeys } = useTreeSelectFieldProvider();
|
|
10468
|
-
const [isFocused, setIsFocused] = (0,
|
|
10465
|
+
const [isFocused, setIsFocused] = (0, import_react45.useState)(false);
|
|
10469
10466
|
const isMultiSelect = state.selectionManager.selectionMode === "multiple";
|
|
10470
10467
|
const showNumSelection = isMultiSelect && state.selectionManager.selectedKeys.size > 1;
|
|
10471
10468
|
const showChipSelection = isMultiSelect && state.selectionManager.selectedKeys.size > 0;
|
|
@@ -10631,41 +10628,41 @@ function ComboBoxBase(props) {
|
|
|
10631
10628
|
...otherProps
|
|
10632
10629
|
} = props;
|
|
10633
10630
|
const labelStyle = otherProps.labelStyle ?? fieldProps?.labelStyle ?? "above";
|
|
10634
|
-
const getOptionLabel = (0,
|
|
10631
|
+
const getOptionLabel = (0, import_react46.useCallback)(
|
|
10635
10632
|
(o) => unsetLabel && o === unsetOption ? unsetLabel : onAddNew && o === addNewOption ? addNewOption.name : propOptionLabel(o),
|
|
10636
10633
|
// propOptionLabel is basically always a lambda, so don't dep on it
|
|
10637
10634
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10638
10635
|
[unsetLabel]
|
|
10639
10636
|
);
|
|
10640
|
-
const getOptionValue = (0,
|
|
10637
|
+
const getOptionValue = (0, import_react46.useCallback)(
|
|
10641
10638
|
(o) => unsetLabel && o === unsetOption ? void 0 : onAddNew && o === addNewOption ? addNewOption.id : propOptionValue(o),
|
|
10642
10639
|
// propOptionValue is basically always a lambda, so don't dep on it
|
|
10643
10640
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10644
10641
|
[unsetLabel]
|
|
10645
10642
|
);
|
|
10646
|
-
const getOptionMenuLabel = (0,
|
|
10643
|
+
const getOptionMenuLabel = (0, import_react46.useCallback)(
|
|
10647
10644
|
(o) => propOptionMenuLabel ? propOptionMenuLabel(o, Boolean(unsetLabel) && o === unsetOption, Boolean(onAddNew) && o === addNewOption) : getOptionLabel(o),
|
|
10648
10645
|
// propOptionMenuLabel is basically always a lambda, so don't dep on it
|
|
10649
10646
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10650
10647
|
[unsetLabel, getOptionLabel]
|
|
10651
10648
|
);
|
|
10652
|
-
const options = (0,
|
|
10649
|
+
const options = (0, import_react46.useMemo)(
|
|
10653
10650
|
() => initializeOptions(propOptions, getOptionValue, unsetLabel, !!onAddNew),
|
|
10654
10651
|
// If the caller is using { current, load, options }, memoize on only `current` and `options` values.
|
|
10655
10652
|
// ...and don't bother on memoizing on getOptionValue b/c it's basically always a lambda
|
|
10656
10653
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10657
10654
|
Array.isArray(propOptions) ? [propOptions, unsetLabel, onAddNew] : [propOptions.current, propOptions.options, unsetLabel, onAddNew]
|
|
10658
10655
|
);
|
|
10659
|
-
const values = (0,
|
|
10660
|
-
const inputStylePalette = (0,
|
|
10661
|
-
const selectedOptions = (0,
|
|
10656
|
+
const values = (0, import_react46.useMemo)(() => propValues ?? [], [propValues]);
|
|
10657
|
+
const inputStylePalette = (0, import_react46.useMemo)(() => propsInputStylePalette, [propsInputStylePalette]);
|
|
10658
|
+
const selectedOptions = (0, import_react46.useMemo)(
|
|
10662
10659
|
() => options.filter((o) => values.includes(getOptionValue(o))),
|
|
10663
10660
|
[options, values, getOptionValue]
|
|
10664
10661
|
);
|
|
10665
10662
|
const { contains } = (0, import_react_aria27.useFilter)({ sensitivity: "base" });
|
|
10666
10663
|
const isDisabled = !!disabled;
|
|
10667
10664
|
const isReadOnly = !!readOnly;
|
|
10668
|
-
const [fieldState, setFieldState] = (0,
|
|
10665
|
+
const [fieldState, setFieldState] = (0, import_react46.useState)(() => {
|
|
10669
10666
|
return {
|
|
10670
10667
|
inputValue: getInputValue(selectedOptions, getOptionLabel, multiselect, nothingSelectedText, isReadOnly),
|
|
10671
10668
|
searchValue: void 0,
|
|
@@ -10673,7 +10670,7 @@ function ComboBoxBase(props) {
|
|
|
10673
10670
|
};
|
|
10674
10671
|
});
|
|
10675
10672
|
const { searchValue } = fieldState;
|
|
10676
|
-
const filteredOptions = (0,
|
|
10673
|
+
const filteredOptions = (0, import_react46.useMemo)(() => {
|
|
10677
10674
|
return !searchValue ? options : options.filter((o) => contains(getOptionLabel(o), searchValue) || o === addNewOption);
|
|
10678
10675
|
}, [options, searchValue, getOptionLabel, contains]);
|
|
10679
10676
|
function resetField() {
|
|
@@ -10712,7 +10709,7 @@ function ComboBoxBase(props) {
|
|
|
10712
10709
|
setFieldState((prevState) => ({ ...prevState, optionsLoading: false }));
|
|
10713
10710
|
}
|
|
10714
10711
|
}
|
|
10715
|
-
const firstOpen = (0,
|
|
10712
|
+
const firstOpen = (0, import_react46.useRef)(true);
|
|
10716
10713
|
function onOpenChange(isOpen) {
|
|
10717
10714
|
if (firstOpen.current && isOpen) {
|
|
10718
10715
|
maybeInitLoad();
|
|
@@ -10722,12 +10719,12 @@ function ComboBoxBase(props) {
|
|
|
10722
10719
|
setFieldState((prevState) => ({ ...prevState, inputValue: "" }));
|
|
10723
10720
|
}
|
|
10724
10721
|
}
|
|
10725
|
-
const comboBoxRef = (0,
|
|
10726
|
-
const triggerRef = (0,
|
|
10727
|
-
const inputRef = (0,
|
|
10728
|
-
const inputWrapRef = (0,
|
|
10729
|
-
const listBoxRef = (0,
|
|
10730
|
-
const popoverRef = (0,
|
|
10722
|
+
const comboBoxRef = (0, import_react46.useRef)(null);
|
|
10723
|
+
const triggerRef = (0, import_react46.useRef)(null);
|
|
10724
|
+
const inputRef = (0, import_react46.useRef)(null);
|
|
10725
|
+
const inputWrapRef = (0, import_react46.useRef)(null);
|
|
10726
|
+
const listBoxRef = (0, import_react46.useRef)(null);
|
|
10727
|
+
const popoverRef = (0, import_react46.useRef)(null);
|
|
10731
10728
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
10732
10729
|
const comboBoxProps = {
|
|
10733
10730
|
...otherProps,
|
|
@@ -10755,7 +10752,7 @@ function ComboBoxBase(props) {
|
|
|
10755
10752
|
}
|
|
10756
10753
|
}
|
|
10757
10754
|
});
|
|
10758
|
-
const selectedKeys = (0,
|
|
10755
|
+
const selectedKeys = (0, import_react46.useMemo)(() => {
|
|
10759
10756
|
return selectedOptions.map((o) => valueToKey(getOptionValue(o)));
|
|
10760
10757
|
}, [selectedOptions, getOptionValue]);
|
|
10761
10758
|
state.selectionManager.state = (0, import_react_stately7.useMultipleSelectionState)({
|
|
@@ -10766,7 +10763,7 @@ function ComboBoxBase(props) {
|
|
|
10766
10763
|
onSelectionChange
|
|
10767
10764
|
});
|
|
10768
10765
|
const [debouncedSearch] = (0, import_use_debounce4.useDebounce)(searchValue, 300);
|
|
10769
|
-
(0,
|
|
10766
|
+
(0, import_react46.useEffect)(() => {
|
|
10770
10767
|
if (state.isOpen && multiselect && !debouncedSearch) {
|
|
10771
10768
|
setFieldState((prevState) => ({
|
|
10772
10769
|
...prevState,
|
|
@@ -10781,7 +10778,7 @@ function ComboBoxBase(props) {
|
|
|
10781
10778
|
}));
|
|
10782
10779
|
}
|
|
10783
10780
|
}, [state.isOpen, selectedOptions, getOptionLabel, multiselect, nothingSelectedText, isReadOnly, debouncedSearch]);
|
|
10784
|
-
(0,
|
|
10781
|
+
(0, import_react46.useEffect)(() => {
|
|
10785
10782
|
onSearch?.(debouncedSearch ?? "");
|
|
10786
10783
|
}, [onSearch, debouncedSearch]);
|
|
10787
10784
|
const {
|
|
@@ -10947,10 +10944,10 @@ function Autocomplete(props) {
|
|
|
10947
10944
|
...others
|
|
10948
10945
|
};
|
|
10949
10946
|
const state = (0, import_react_stately8.useComboBoxState)(comboBoxProps);
|
|
10950
|
-
const inputWrapRef = (0,
|
|
10951
|
-
const inputRef = (0,
|
|
10952
|
-
const listBoxRef = (0,
|
|
10953
|
-
const popoverRef = (0,
|
|
10947
|
+
const inputWrapRef = (0, import_react47.useRef)(null);
|
|
10948
|
+
const inputRef = (0, import_react47.useRef)(null);
|
|
10949
|
+
const listBoxRef = (0, import_react47.useRef)(null);
|
|
10950
|
+
const popoverRef = (0, import_react47.useRef)(null);
|
|
10954
10951
|
const { inputProps, listBoxProps, labelProps } = (0, import_react_aria28.useComboBox)(
|
|
10955
10952
|
{
|
|
10956
10953
|
...comboBoxProps,
|
|
@@ -11017,7 +11014,7 @@ function Autocomplete(props) {
|
|
|
11017
11014
|
}
|
|
11018
11015
|
|
|
11019
11016
|
// src/inputs/Checkbox.tsx
|
|
11020
|
-
var
|
|
11017
|
+
var import_react48 = require("react");
|
|
11021
11018
|
var import_react_aria29 = require("react-aria");
|
|
11022
11019
|
var import_react_stately9 = require("react-stately");
|
|
11023
11020
|
var import_jsx_runtime57 = require("@emotion/react/jsx-runtime");
|
|
@@ -11027,7 +11024,7 @@ function Checkbox(props) {
|
|
|
11027
11024
|
const isIndeterminate = selected === "indeterminate";
|
|
11028
11025
|
const ariaProps = { isSelected, isDisabled: !!disabled, isIndeterminate, ...otherProps };
|
|
11029
11026
|
const checkboxProps = { ...ariaProps, "aria-label": label };
|
|
11030
|
-
const ref = (0,
|
|
11027
|
+
const ref = (0, import_react48.useRef)(null);
|
|
11031
11028
|
const toggleState = (0, import_react_stately9.useToggleState)(ariaProps);
|
|
11032
11029
|
const { inputProps } = (0, import_react_aria29.useCheckbox)(checkboxProps, toggleState, ref);
|
|
11033
11030
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
@@ -11046,7 +11043,7 @@ function Checkbox(props) {
|
|
|
11046
11043
|
}
|
|
11047
11044
|
|
|
11048
11045
|
// src/inputs/CheckboxGroup.tsx
|
|
11049
|
-
var
|
|
11046
|
+
var import_react49 = require("react");
|
|
11050
11047
|
var import_react_aria30 = require("react-aria");
|
|
11051
11048
|
var import_react_stately10 = require("react-stately");
|
|
11052
11049
|
var import_jsx_runtime58 = require("@emotion/react/jsx-runtime");
|
|
@@ -11096,7 +11093,7 @@ function CheckboxGroupItem(props) {
|
|
|
11096
11093
|
} = props;
|
|
11097
11094
|
const ariaProps = { isSelected, isDisabled, isIndeterminate, value, ...otherProps };
|
|
11098
11095
|
const checkboxProps = { ...ariaProps, "aria-label": label };
|
|
11099
|
-
const ref = (0,
|
|
11096
|
+
const ref = (0, import_react49.useRef)(null);
|
|
11100
11097
|
const { inputProps } = (0, import_react_aria30.useCheckboxGroupItem)(checkboxProps, groupState, ref);
|
|
11101
11098
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11102
11099
|
CheckboxBase,
|
|
@@ -11115,12 +11112,12 @@ function CheckboxGroupItem(props) {
|
|
|
11115
11112
|
|
|
11116
11113
|
// src/inputs/DateFields/DateField.mock.tsx
|
|
11117
11114
|
var import_date_fns3 = require("date-fns");
|
|
11118
|
-
var
|
|
11115
|
+
var import_react50 = require("react");
|
|
11119
11116
|
var import_jsx_runtime59 = require("@emotion/react/jsx-runtime");
|
|
11120
11117
|
function DateFieldMock(props) {
|
|
11121
11118
|
const { onChange = () => {
|
|
11122
11119
|
}, errorMsg, onBlur, onFocus } = props;
|
|
11123
|
-
const [value, setValue] = (0,
|
|
11120
|
+
const [value, setValue] = (0, import_react50.useState)(props.value ? (0, import_date_fns3.format)(props.value, "MM/dd/yy") : "");
|
|
11124
11121
|
const tid = useTestIds(props, "date");
|
|
11125
11122
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11126
11123
|
"input",
|
|
@@ -11143,7 +11140,7 @@ function DateFieldMock(props) {
|
|
|
11143
11140
|
}
|
|
11144
11141
|
|
|
11145
11142
|
// src/inputs/DateFields/DateFieldBase.tsx
|
|
11146
|
-
var
|
|
11143
|
+
var import_react51 = require("react");
|
|
11147
11144
|
var import_react_aria31 = require("react-aria");
|
|
11148
11145
|
var import_react_day_picker5 = require("react-day-picker");
|
|
11149
11146
|
var import_react_stately11 = require("react-stately");
|
|
@@ -11235,14 +11232,14 @@ function DateFieldBase(props) {
|
|
|
11235
11232
|
...others
|
|
11236
11233
|
} = props;
|
|
11237
11234
|
const isRangeMode = mode === "range";
|
|
11238
|
-
const inputRef = (0,
|
|
11239
|
-
const inputWrapRef = (0,
|
|
11240
|
-
const buttonRef = (0,
|
|
11241
|
-
const overlayRef = (0,
|
|
11242
|
-
const isFocused = (0,
|
|
11235
|
+
const inputRef = (0, import_react51.useRef)(null);
|
|
11236
|
+
const inputWrapRef = (0, import_react51.useRef)(null);
|
|
11237
|
+
const buttonRef = (0, import_react51.useRef)(null);
|
|
11238
|
+
const overlayRef = (0, import_react51.useRef)(null);
|
|
11239
|
+
const isFocused = (0, import_react51.useRef)(false);
|
|
11243
11240
|
const dateFormat = getDateFormat(format4);
|
|
11244
|
-
const [wipValue, setWipValue] = (0,
|
|
11245
|
-
const [inputValue, setInputValue] = (0,
|
|
11241
|
+
const [wipValue, setWipValue] = (0, import_react51.useState)(value);
|
|
11242
|
+
const [inputValue, setInputValue] = (0, import_react51.useState)(
|
|
11246
11243
|
(isRangeMode ? formatDateRange(props.value, dateFormat) : formatDate(props.value, dateFormat)) ?? ""
|
|
11247
11244
|
);
|
|
11248
11245
|
const tid = useTestIds(props, defaultTestId(label));
|
|
@@ -11315,7 +11312,7 @@ function DateFieldBase(props) {
|
|
|
11315
11312
|
shouldUpdatePosition: true,
|
|
11316
11313
|
offset: 4
|
|
11317
11314
|
});
|
|
11318
|
-
(0,
|
|
11315
|
+
(0, import_react51.useEffect)(() => {
|
|
11319
11316
|
if (!isFocused.current && !state.isOpen) {
|
|
11320
11317
|
setWipValue(value);
|
|
11321
11318
|
setInputValue(
|
|
@@ -11323,7 +11320,7 @@ function DateFieldBase(props) {
|
|
|
11323
11320
|
);
|
|
11324
11321
|
}
|
|
11325
11322
|
}, [value, dateFormat]);
|
|
11326
|
-
const onChange = (0,
|
|
11323
|
+
const onChange = (0, import_react51.useCallback)(
|
|
11327
11324
|
(d) => {
|
|
11328
11325
|
setWipValue(d);
|
|
11329
11326
|
if (d && isParsedDateValid(d)) {
|
|
@@ -11466,7 +11463,7 @@ function DateRangeField(props) {
|
|
|
11466
11463
|
}
|
|
11467
11464
|
|
|
11468
11465
|
// src/inputs/IconCard.tsx
|
|
11469
|
-
var
|
|
11466
|
+
var import_react52 = require("react");
|
|
11470
11467
|
var import_react_aria32 = require("react-aria");
|
|
11471
11468
|
var import_react_stately12 = require("react-stately");
|
|
11472
11469
|
var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
|
|
@@ -11486,7 +11483,7 @@ function IconCard(props) {
|
|
|
11486
11483
|
const { hoverProps, isHovered } = (0, import_react_aria32.useHover)({ isDisabled });
|
|
11487
11484
|
const toggleState = (0, import_react_stately12.useToggleState)(ariaProps);
|
|
11488
11485
|
const { inputProps } = (0, import_react_aria32.useCheckbox)(checkboxProps, toggleState, ref);
|
|
11489
|
-
const styles = (0,
|
|
11486
|
+
const styles = (0, import_react52.useMemo)(
|
|
11490
11487
|
() => ({
|
|
11491
11488
|
...baseStyles3,
|
|
11492
11489
|
...isHovered && iconCardStylesHover,
|
|
@@ -11512,7 +11509,7 @@ var disabledStyles2 = Css.bcGray200.bgGray50.$;
|
|
|
11512
11509
|
var iconCardStylesHover = Css.bgGray100.$;
|
|
11513
11510
|
|
|
11514
11511
|
// src/inputs/MultiLineSelectField.tsx
|
|
11515
|
-
var
|
|
11512
|
+
var import_react53 = require("react");
|
|
11516
11513
|
var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
|
|
11517
11514
|
function MultiLineSelectField(props) {
|
|
11518
11515
|
const {
|
|
@@ -11525,7 +11522,7 @@ function MultiLineSelectField(props) {
|
|
|
11525
11522
|
...otherProps
|
|
11526
11523
|
} = props;
|
|
11527
11524
|
const tid = useTestIds(props, "");
|
|
11528
|
-
const [isDisplayed, setIsDisplayed] = (0,
|
|
11525
|
+
const [isDisplayed, setIsDisplayed] = (0, import_react53.useState)(true);
|
|
11529
11526
|
const currentOptions = options.filter((o) => !values.includes(getOptionValue(o)));
|
|
11530
11527
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: Css.mt1.if(labelStyle === "left").df.$, children: [
|
|
11531
11528
|
labelStyle !== "hidden" && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { css: Css.if(labelStyle === "left").w50.$, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Label, { ...tid.label, label: props.label }) }),
|
|
@@ -11614,7 +11611,7 @@ function MultiSelectField(props) {
|
|
|
11614
11611
|
|
|
11615
11612
|
// src/inputs/NumberField.tsx
|
|
11616
11613
|
var import_number = require("@internationalized/number");
|
|
11617
|
-
var
|
|
11614
|
+
var import_react54 = require("react");
|
|
11618
11615
|
var import_react_aria33 = require("react-aria");
|
|
11619
11616
|
var import_react_stately13 = require("react-stately");
|
|
11620
11617
|
var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
|
|
@@ -11649,7 +11646,7 @@ function NumberField(props) {
|
|
|
11649
11646
|
const isReadOnly = !!readOnly;
|
|
11650
11647
|
const factor = type === "percent" ? 100 : type === "cents" ? 100 : type === "mills" ? 1e3 : type === "basisPoints" ? 1e4 : 1;
|
|
11651
11648
|
const signDisplay = displayDirection ? "always" : "auto";
|
|
11652
|
-
const defaultFormatOptions = (0,
|
|
11649
|
+
const defaultFormatOptions = (0, import_react54.useMemo)(
|
|
11653
11650
|
() => ({
|
|
11654
11651
|
[truncate ? "maximumFractionDigits" : "minimumFractionDigits"]: numFractionDigits,
|
|
11655
11652
|
...numIntegerDigits !== void 0 && { minimumIntegerDigits: numIntegerDigits },
|
|
@@ -11659,15 +11656,15 @@ function NumberField(props) {
|
|
|
11659
11656
|
[truncate, numIntegerDigits, useGrouping, signDisplay, numFractionDigits]
|
|
11660
11657
|
);
|
|
11661
11658
|
const { locale } = (0, import_react_aria33.useLocale)();
|
|
11662
|
-
const formatOptions = (0,
|
|
11659
|
+
const formatOptions = (0, import_react54.useMemo)(() => {
|
|
11663
11660
|
if (numberFormatOptions !== void 0) {
|
|
11664
11661
|
return numberFormatOptions;
|
|
11665
11662
|
}
|
|
11666
11663
|
const typeFormat = type === "percent" ? { style: "percent" } : type === "basisPoints" ? { style: "percent", minimumFractionDigits: 2 } : type === "cents" ? { style: "currency", currency: "USD", minimumFractionDigits: 2 } : type === "mills" ? { style: "currency", currency: "USD", minimumFractionDigits: 3 } : type === "dollars" ? { style: "currency", currency: "USD", minimumFractionDigits: numFractionDigits ?? 2 } : type === "days" ? { style: "unit", unit: "day", unitDisplay: "long", maximumFractionDigits: 0 } : {};
|
|
11667
11664
|
return { ...defaultFormatOptions, ...typeFormat };
|
|
11668
11665
|
}, [type, numberFormatOptions, defaultFormatOptions, numFractionDigits]);
|
|
11669
|
-
const numberParser = (0,
|
|
11670
|
-
const valueRef = (0,
|
|
11666
|
+
const numberParser = (0, import_react54.useMemo)(() => new import_number.NumberParser(locale, formatOptions), [locale, formatOptions]);
|
|
11667
|
+
const valueRef = (0, import_react54.useRef)({ wip: false });
|
|
11671
11668
|
const useProps = {
|
|
11672
11669
|
locale,
|
|
11673
11670
|
// We want percents && cents to be integers, useNumberFieldState excepts them as decimals
|
|
@@ -11696,7 +11693,7 @@ function NumberField(props) {
|
|
|
11696
11693
|
...otherProps
|
|
11697
11694
|
};
|
|
11698
11695
|
const state = (0, import_react_stately13.useNumberFieldState)(useProps);
|
|
11699
|
-
const inputRef = (0,
|
|
11696
|
+
const inputRef = (0, import_react54.useRef)(null);
|
|
11700
11697
|
const { labelProps, inputProps, groupProps } = (0, import_react_aria33.useNumberField)(useProps, state, inputRef);
|
|
11701
11698
|
if (readOnly && !inputRef.current) {
|
|
11702
11699
|
inputRef.current = document.createElement("input");
|
|
@@ -11741,14 +11738,14 @@ function formatValue(value, factor, numFractionDigits, numIntegerDigits, positiv
|
|
|
11741
11738
|
}
|
|
11742
11739
|
|
|
11743
11740
|
// src/inputs/RadioGroupField.tsx
|
|
11744
|
-
var
|
|
11741
|
+
var import_react55 = require("react");
|
|
11745
11742
|
var import_react_aria34 = require("react-aria");
|
|
11746
11743
|
var import_react_stately14 = require("react-stately");
|
|
11747
11744
|
var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
|
|
11748
11745
|
var nextNameId = 0;
|
|
11749
11746
|
function RadioGroupField(props) {
|
|
11750
11747
|
const { label, labelStyle, value, onChange, options, disabled = false, errorMsg, helperText, ...otherProps } = props;
|
|
11751
|
-
const name = (0,
|
|
11748
|
+
const name = (0, import_react55.useMemo)(() => `radio-group-${++nextNameId}`, []);
|
|
11752
11749
|
const state = (0, import_react_stately14.useRadioGroupState)({
|
|
11753
11750
|
name,
|
|
11754
11751
|
value,
|
|
@@ -11765,7 +11762,7 @@ function RadioGroupField(props) {
|
|
|
11765
11762
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { ...radioGroupProps, children: [
|
|
11766
11763
|
options.map((option) => {
|
|
11767
11764
|
const isDisabled = state.isDisabled || !!option.disabled;
|
|
11768
|
-
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
11765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react55.Fragment, { children: maybeTooltip({
|
|
11769
11766
|
title: resolveTooltip(option.disabled),
|
|
11770
11767
|
placement: "bottom",
|
|
11771
11768
|
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
@@ -11796,7 +11793,7 @@ function Radio(props) {
|
|
|
11796
11793
|
const disabled = state.isDisabled;
|
|
11797
11794
|
const labelId = `${parentId}-${value}-label`;
|
|
11798
11795
|
const descriptionId = `${parentId}-${value}-description`;
|
|
11799
|
-
const ref = (0,
|
|
11796
|
+
const ref = (0, import_react55.useRef)(null);
|
|
11800
11797
|
const { inputProps } = (0, import_react_aria34.useRadio)({ value, "aria-labelledby": labelId }, state, ref);
|
|
11801
11798
|
const { focusProps, isFocusVisible } = (0, import_react_aria34.useFocusRing)();
|
|
11802
11799
|
const { hoverProps, isHovered } = (0, import_react_aria34.useHover)({ isDisabled: disabled });
|
|
@@ -11875,19 +11872,19 @@ var radioDisabled = {
|
|
|
11875
11872
|
};
|
|
11876
11873
|
|
|
11877
11874
|
// src/inputs/RichTextField.tsx
|
|
11878
|
-
var
|
|
11875
|
+
var import_react57 = require("@emotion/react");
|
|
11879
11876
|
var import_dompurify = __toESM(require("dompurify"), 1);
|
|
11880
|
-
var
|
|
11877
|
+
var import_react58 = require("react");
|
|
11881
11878
|
|
|
11882
11879
|
// src/inputs/RichTextField.mock.tsx
|
|
11883
11880
|
var import_change_case4 = require("change-case");
|
|
11884
|
-
var
|
|
11881
|
+
var import_react56 = require("react");
|
|
11885
11882
|
var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
|
|
11886
11883
|
function RichTextFieldMock(props) {
|
|
11887
11884
|
const { onBlur = () => {
|
|
11888
11885
|
}, onFocus = () => {
|
|
11889
11886
|
}, readOnly } = props;
|
|
11890
|
-
const [value, setValue] = (0,
|
|
11887
|
+
const [value, setValue] = (0, import_react56.useState)(props.value || "");
|
|
11891
11888
|
const tid = useTestIds(props, defaultTestId2(props.label || "richTextField"));
|
|
11892
11889
|
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11893
11890
|
"input",
|
|
@@ -11929,16 +11926,16 @@ function RichTextFieldImpl(props) {
|
|
|
11929
11926
|
readOnly,
|
|
11930
11927
|
fullWidth = fieldProps?.fullWidth ?? false
|
|
11931
11928
|
} = props;
|
|
11932
|
-
const [editor, setEditor] = (0,
|
|
11933
|
-
const editorElement = (0,
|
|
11934
|
-
const currentHtml = (0,
|
|
11935
|
-
const onChangeRef = (0,
|
|
11929
|
+
const [editor, setEditor] = (0, import_react58.useState)();
|
|
11930
|
+
const editorElement = (0, import_react58.useRef)();
|
|
11931
|
+
const currentHtml = (0, import_react58.useRef)(void 0);
|
|
11932
|
+
const onChangeRef = (0, import_react58.useRef)(onChange);
|
|
11936
11933
|
onChangeRef.current = onChange;
|
|
11937
|
-
const onBlurRef = (0,
|
|
11934
|
+
const onBlurRef = (0, import_react58.useRef)(onBlur);
|
|
11938
11935
|
onBlurRef.current = onBlur;
|
|
11939
|
-
const onFocusRef = (0,
|
|
11936
|
+
const onFocusRef = (0, import_react58.useRef)(onFocus);
|
|
11940
11937
|
onFocusRef.current = onFocus;
|
|
11941
|
-
const id = (0,
|
|
11938
|
+
const id = (0, import_react58.useMemo)(() => {
|
|
11942
11939
|
if (readOnly) return;
|
|
11943
11940
|
const id2 = `trix-editor-${trixId}`;
|
|
11944
11941
|
trixId++;
|
|
@@ -11979,7 +11976,7 @@ function RichTextFieldImpl(props) {
|
|
|
11979
11976
|
window.addEventListener("trix-initialize", onEditorInit);
|
|
11980
11977
|
return id2;
|
|
11981
11978
|
}, [readOnly]);
|
|
11982
|
-
(0,
|
|
11979
|
+
(0, import_react58.useEffect)(() => {
|
|
11983
11980
|
if (!readOnly && editor && value !== currentHtml.current) {
|
|
11984
11981
|
editor.loadHTML(value || "");
|
|
11985
11982
|
}
|
|
@@ -11990,7 +11987,7 @@ function RichTextFieldImpl(props) {
|
|
|
11990
11987
|
label && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Label, { labelProps: {}, label }),
|
|
11991
11988
|
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: { ...Css.br4.bgWhite.$, ...trixCssOverrides }, children: [
|
|
11992
11989
|
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("input", { type: "hidden", id: `input-${id}`, value }),
|
|
11993
|
-
(0,
|
|
11990
|
+
(0, import_react58.createElement)("trix-editor", {
|
|
11994
11991
|
id,
|
|
11995
11992
|
input: `input-${id}`,
|
|
11996
11993
|
// Autofocus attribute is case sensitive since this is standard HTML
|
|
@@ -11998,7 +11995,7 @@ function RichTextFieldImpl(props) {
|
|
|
11998
11995
|
...placeholder ? { placeholder } : {}
|
|
11999
11996
|
})
|
|
12000
11997
|
] }),
|
|
12001
|
-
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
11998
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react57.Global, { styles: [tributeOverrides] })
|
|
12002
11999
|
] });
|
|
12003
12000
|
} else {
|
|
12004
12001
|
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: Css.w100.if(!fullWidth).maxw("550px").$, children: [
|
|
@@ -12073,7 +12070,7 @@ function extractIdsFromMentions(mergeTags, content) {
|
|
|
12073
12070
|
var trixId = 1;
|
|
12074
12071
|
|
|
12075
12072
|
// src/inputs/SelectField.tsx
|
|
12076
|
-
var
|
|
12073
|
+
var import_react59 = require("react");
|
|
12077
12074
|
var import_jsx_runtime71 = require("@emotion/react/jsx-runtime");
|
|
12078
12075
|
function SelectField(props) {
|
|
12079
12076
|
const {
|
|
@@ -12084,7 +12081,7 @@ function SelectField(props) {
|
|
|
12084
12081
|
value,
|
|
12085
12082
|
...otherProps
|
|
12086
12083
|
} = props;
|
|
12087
|
-
const values = (0,
|
|
12084
|
+
const values = (0, import_react59.useMemo)(() => [value], [value]);
|
|
12088
12085
|
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
12089
12086
|
ComboBoxBase,
|
|
12090
12087
|
{
|
|
@@ -12104,7 +12101,7 @@ function SelectField(props) {
|
|
|
12104
12101
|
}
|
|
12105
12102
|
|
|
12106
12103
|
// src/inputs/Switch.tsx
|
|
12107
|
-
var
|
|
12104
|
+
var import_react60 = require("react");
|
|
12108
12105
|
var import_react_aria35 = require("react-aria");
|
|
12109
12106
|
var import_jsx_runtime72 = require("@emotion/react/jsx-runtime");
|
|
12110
12107
|
function Switch(props) {
|
|
@@ -12124,7 +12121,7 @@ function Switch(props) {
|
|
|
12124
12121
|
const isDisabled = !!disabled;
|
|
12125
12122
|
const ariaProps = { isSelected, isDisabled, ...otherProps };
|
|
12126
12123
|
const state = toToggleState(isSelected, onChange);
|
|
12127
|
-
const ref = (0,
|
|
12124
|
+
const ref = (0, import_react60.useRef)(null);
|
|
12128
12125
|
const { inputProps } = (0, import_react_aria35.useSwitch)({ ...ariaProps, "aria-label": label }, state, ref);
|
|
12129
12126
|
const { isFocusVisible: isKeyboardFocus, focusProps } = (0, import_react_aria35.useFocusRing)(otherProps);
|
|
12130
12127
|
const { hoverProps, isHovered } = (0, import_react_aria35.useHover)(ariaProps);
|
|
@@ -12200,7 +12197,7 @@ function switchCircleSelectedStyles(isCompact) {
|
|
|
12200
12197
|
}
|
|
12201
12198
|
|
|
12202
12199
|
// src/inputs/TextAreaField.tsx
|
|
12203
|
-
var
|
|
12200
|
+
var import_react61 = require("react");
|
|
12204
12201
|
var import_react_aria36 = require("react-aria");
|
|
12205
12202
|
var import_jsx_runtime73 = require("@emotion/react/jsx-runtime");
|
|
12206
12203
|
function TextAreaField(props) {
|
|
@@ -12217,8 +12214,8 @@ function TextAreaField(props) {
|
|
|
12217
12214
|
const isDisabled = !!disabled;
|
|
12218
12215
|
const isReadOnly = !!readOnly;
|
|
12219
12216
|
const textFieldProps = { ...otherProps, value, isDisabled, isReadOnly };
|
|
12220
|
-
const inputRef = (0,
|
|
12221
|
-
const inputWrapRef = (0,
|
|
12217
|
+
const inputRef = (0, import_react61.useRef)(null);
|
|
12218
|
+
const inputWrapRef = (0, import_react61.useRef)(null);
|
|
12222
12219
|
useGrowingTextField({ inputRef, inputWrapRef, value });
|
|
12223
12220
|
const { labelProps, inputProps } = (0, import_react_aria36.useTextField)(
|
|
12224
12221
|
{
|
|
@@ -12256,7 +12253,7 @@ function TextAreaField(props) {
|
|
|
12256
12253
|
}
|
|
12257
12254
|
|
|
12258
12255
|
// src/inputs/TextField.tsx
|
|
12259
|
-
var
|
|
12256
|
+
var import_react62 = require("react");
|
|
12260
12257
|
var import_react_aria37 = require("react-aria");
|
|
12261
12258
|
var import_jsx_runtime74 = require("@emotion/react/jsx-runtime");
|
|
12262
12259
|
function TextField(props) {
|
|
@@ -12284,7 +12281,7 @@ function TextField(props) {
|
|
|
12284
12281
|
validationState: errorMsg ? "invalid" : "valid",
|
|
12285
12282
|
value
|
|
12286
12283
|
};
|
|
12287
|
-
const inputRef = (0,
|
|
12284
|
+
const inputRef = (0, import_react62.useRef)(null);
|
|
12288
12285
|
const { labelProps, inputProps } = (0, import_react_aria37.useTextField)(
|
|
12289
12286
|
{
|
|
12290
12287
|
...textFieldProps,
|
|
@@ -12320,13 +12317,13 @@ function TextField(props) {
|
|
|
12320
12317
|
}
|
|
12321
12318
|
|
|
12322
12319
|
// src/inputs/ToggleButton.tsx
|
|
12323
|
-
var
|
|
12320
|
+
var import_react63 = require("react");
|
|
12324
12321
|
var import_react_aria38 = require("react-aria");
|
|
12325
12322
|
var import_react_stately15 = require("react-stately");
|
|
12326
12323
|
var import_jsx_runtime75 = require("@emotion/react/jsx-runtime");
|
|
12327
12324
|
function ToggleButton(props) {
|
|
12328
12325
|
const { selected: isSelected = false, disabled = false, label, onChange, icon, ...otherProps } = props;
|
|
12329
|
-
const [asyncInProgress, setAsyncInProgress] = (0,
|
|
12326
|
+
const [asyncInProgress, setAsyncInProgress] = (0, import_react63.useState)(false);
|
|
12330
12327
|
const isDisabled = !!disabled || asyncInProgress;
|
|
12331
12328
|
const ariaProps = { "aria-label": label, isSelected, isDisabled, ...otherProps };
|
|
12332
12329
|
const state = (0, import_react_stately15.useToggleState)({
|
|
@@ -12340,8 +12337,8 @@ function ToggleButton(props) {
|
|
|
12340
12337
|
return result;
|
|
12341
12338
|
}
|
|
12342
12339
|
});
|
|
12343
|
-
const labelRef = (0,
|
|
12344
|
-
const ref = (0,
|
|
12340
|
+
const labelRef = (0, import_react63.useRef)(null);
|
|
12341
|
+
const ref = (0, import_react63.useRef)(null);
|
|
12345
12342
|
const tid = useTestIds(props, label);
|
|
12346
12343
|
const { isPressed, pressProps } = (0, import_react_aria38.usePress)({ ref: labelRef, isDisabled });
|
|
12347
12344
|
const { inputProps } = (0, import_react_aria38.useSwitch)(ariaProps, state, ref);
|
|
@@ -12377,7 +12374,7 @@ var toggleFocusStyles = Css.bshFocus.$;
|
|
|
12377
12374
|
var togglePressStyles = Css.bgGray300.$;
|
|
12378
12375
|
|
|
12379
12376
|
// src/inputs/ToggleChipGroup.tsx
|
|
12380
|
-
var
|
|
12377
|
+
var import_react64 = require("react");
|
|
12381
12378
|
var import_react_aria39 = require("react-aria");
|
|
12382
12379
|
var import_react_stately16 = require("react-stately");
|
|
12383
12380
|
var import_jsx_runtime76 = require("@emotion/react/jsx-runtime");
|
|
@@ -12425,7 +12422,7 @@ function ToggleChipGroup(props) {
|
|
|
12425
12422
|
function ToggleChip2(props) {
|
|
12426
12423
|
const { label, value, groupState, selected: isSelected, disabled = false, startAdornment, xss, ...others } = props;
|
|
12427
12424
|
const isDisabled = !!disabled;
|
|
12428
|
-
const ref = (0,
|
|
12425
|
+
const ref = (0, import_react64.useRef)(null);
|
|
12429
12426
|
const { inputProps } = (0, import_react_aria39.useCheckboxGroupItem)({ value, "aria-label": label, isDisabled }, groupState, ref);
|
|
12430
12427
|
const { isFocusVisible, focusProps } = (0, import_react_aria39.useFocusRing)();
|
|
12431
12428
|
const tooltip = resolveTooltip(disabled);
|
|
@@ -12460,7 +12457,7 @@ function ToggleChip2(props) {
|
|
|
12460
12457
|
// src/components/Table/components/SelectToggle.tsx
|
|
12461
12458
|
var import_jsx_runtime77 = require("@emotion/react/jsx-runtime");
|
|
12462
12459
|
function SelectToggle({ id, disabled }) {
|
|
12463
|
-
const { tableState } = (0,
|
|
12460
|
+
const { tableState } = (0, import_react65.useContext)(TableStateContext);
|
|
12464
12461
|
const state = useComputed(() => tableState.getSelected(id), [tableState]);
|
|
12465
12462
|
const selected = state === "checked" ? true : state === "unchecked" ? false : "indeterminate";
|
|
12466
12463
|
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
@@ -13184,7 +13181,7 @@ var TableState = class {
|
|
|
13184
13181
|
this.rowStates.maybeSetRowDraggedOver(id, draggedOver, requireSameParentRow);
|
|
13185
13182
|
}
|
|
13186
13183
|
};
|
|
13187
|
-
var TableStateContext =
|
|
13184
|
+
var TableStateContext = import_react66.default.createContext({
|
|
13188
13185
|
get tableState() {
|
|
13189
13186
|
throw new Error("No TableStateContext provider");
|
|
13190
13187
|
}
|
|
@@ -13213,7 +13210,7 @@ function deriveSortState(currentSortState, clickedKey, initialSortState) {
|
|
|
13213
13210
|
|
|
13214
13211
|
// src/components/Table/GridTableApi.ts
|
|
13215
13212
|
function useGridTableApi() {
|
|
13216
|
-
return (0,
|
|
13213
|
+
return (0, import_react67.useMemo)(() => new GridTableApiImpl(), []);
|
|
13217
13214
|
}
|
|
13218
13215
|
var GridTableApiImpl = class {
|
|
13219
13216
|
// This is public to GridTable but not exported outside of Beam
|
|
@@ -13363,10 +13360,10 @@ function maybeApply(maybeFn) {
|
|
|
13363
13360
|
}
|
|
13364
13361
|
|
|
13365
13362
|
// src/hooks/useRenderCount.ts
|
|
13366
|
-
var
|
|
13363
|
+
var import_react68 = require("react");
|
|
13367
13364
|
function useRenderCount() {
|
|
13368
|
-
const ref = (0,
|
|
13369
|
-
const getCount = (0,
|
|
13365
|
+
const ref = (0, import_react68.useRef)(/* @__PURE__ */ new Map());
|
|
13366
|
+
const getCount = (0, import_react68.useCallback)((id) => {
|
|
13370
13367
|
const count = ref.current.get(id) || 1;
|
|
13371
13368
|
ref.current.set(id, count + 1);
|
|
13372
13369
|
return { "data-render": count };
|
|
@@ -13415,11 +13412,11 @@ function GridTable(props) {
|
|
|
13415
13412
|
onRowDrop: droppedCallback,
|
|
13416
13413
|
csvPrefixRows
|
|
13417
13414
|
} = props;
|
|
13418
|
-
const columnsWithIds = (0,
|
|
13419
|
-
const virtuosoRef = (0,
|
|
13420
|
-
const virtuosoRangeRef = (0,
|
|
13421
|
-
const resizeRef = (0,
|
|
13422
|
-
const api = (0,
|
|
13415
|
+
const columnsWithIds = (0, import_react69.useMemo)(() => assignDefaultColumnIds(_columns), [_columns]);
|
|
13416
|
+
const virtuosoRef = (0, import_react69.useRef)(null);
|
|
13417
|
+
const virtuosoRangeRef = (0, import_react69.useRef)(null);
|
|
13418
|
+
const resizeRef = (0, import_react69.useRef)(null);
|
|
13419
|
+
const api = (0, import_react69.useMemo)(
|
|
13423
13420
|
() => {
|
|
13424
13421
|
const api2 = props.api ?? new GridTableApiImpl();
|
|
13425
13422
|
api2.init(persistCollapse, virtuosoRef, virtuosoRangeRef);
|
|
@@ -13432,8 +13429,8 @@ function GridTable(props) {
|
|
|
13432
13429
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13433
13430
|
[props.api]
|
|
13434
13431
|
);
|
|
13435
|
-
const [draggedRow, _setDraggedRow] = (0,
|
|
13436
|
-
const draggedRowRef = (0,
|
|
13432
|
+
const [draggedRow, _setDraggedRow] = (0, import_react69.useState)(void 0);
|
|
13433
|
+
const draggedRowRef = (0, import_react69.useRef)(draggedRow);
|
|
13437
13434
|
const setDraggedRow = (row) => {
|
|
13438
13435
|
draggedRowRef.current = row;
|
|
13439
13436
|
_setDraggedRow(row);
|
|
@@ -13441,7 +13438,7 @@ function GridTable(props) {
|
|
|
13441
13438
|
const style = resolveStyles(maybeStyle);
|
|
13442
13439
|
const { tableState } = api;
|
|
13443
13440
|
tableState.onRowSelect = onRowSelect;
|
|
13444
|
-
(0,
|
|
13441
|
+
(0, import_react69.useEffect)(() => {
|
|
13445
13442
|
(0, import_mobx10.runInAction)(() => {
|
|
13446
13443
|
tableState.setRows(rows);
|
|
13447
13444
|
tableState.setColumns(columnsWithIds, visibleColumnsStorageKey);
|
|
@@ -13587,7 +13584,7 @@ function GridTable(props) {
|
|
|
13587
13584
|
const borderless = style?.presentationSettings?.borderless;
|
|
13588
13585
|
const typeScale = style?.presentationSettings?.typeScale;
|
|
13589
13586
|
const borderOnHover = style?.presentationSettings?.borderOnHover;
|
|
13590
|
-
const fieldProps = (0,
|
|
13587
|
+
const fieldProps = (0, import_react69.useMemo)(
|
|
13591
13588
|
() => ({
|
|
13592
13589
|
labelStyle: "hidden",
|
|
13593
13590
|
numberAlignment: "right",
|
|
@@ -13601,7 +13598,7 @@ function GridTable(props) {
|
|
|
13601
13598
|
[borderOnHover, borderless, typeScale]
|
|
13602
13599
|
);
|
|
13603
13600
|
const _as = as === "virtual" && runningInJest ? "div" : as;
|
|
13604
|
-
const rowStateContext = (0,
|
|
13601
|
+
const rowStateContext = (0, import_react69.useMemo)(() => ({ tableState }), [tableState]);
|
|
13605
13602
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TableStateContext.Provider, { value: rowStateContext, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(PresentationProvider, { fieldProps, wrap: style?.presentationSettings?.wrap, children: [
|
|
13606
13603
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { ref: resizeRef, css: getTableRefWidthStyles(as === "virtual") }),
|
|
13607
13604
|
renders[_as](
|
|
@@ -13698,11 +13695,11 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, firs
|
|
|
13698
13695
|
);
|
|
13699
13696
|
}
|
|
13700
13697
|
function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, _stickyOffset, infiniteScroll) {
|
|
13701
|
-
const { footerStyle, listStyle } = (0,
|
|
13698
|
+
const { footerStyle, listStyle } = (0, import_react69.useMemo)(() => {
|
|
13702
13699
|
const { paddingBottom, ...otherRootStyles } = style.rootCss ?? {};
|
|
13703
13700
|
return { footerStyle: { paddingBottom }, listStyle: { ...style, rootCss: otherRootStyles } };
|
|
13704
13701
|
}, [style]);
|
|
13705
|
-
const [fetchMoreInProgress, setFetchMoreInProgress] = (0,
|
|
13702
|
+
const [fetchMoreInProgress, setFetchMoreInProgress] = (0, import_react69.useState)(false);
|
|
13706
13703
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13707
13704
|
import_react_virtuoso2.Virtuoso,
|
|
13708
13705
|
{
|
|
@@ -13710,7 +13707,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, fi
|
|
|
13710
13707
|
ref: virtuosoRef,
|
|
13711
13708
|
components: {
|
|
13712
13709
|
// Applying a zIndex: 2 to ensure it stays on top of sticky columns
|
|
13713
|
-
TopItemList:
|
|
13710
|
+
TopItemList: import_react69.default.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13714
13711
|
"div",
|
|
13715
13712
|
{
|
|
13716
13713
|
...props,
|
|
@@ -13770,7 +13767,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, fi
|
|
|
13770
13767
|
}
|
|
13771
13768
|
var VirtualRoot = (0, import_memoize_one.default)(
|
|
13772
13769
|
(gs, _columns, id, xss) => {
|
|
13773
|
-
return
|
|
13770
|
+
return import_react69.default.forwardRef(function VirtualRoot2({ style, children }, ref) {
|
|
13774
13771
|
const isHeader = Object.keys(style || {}).length === 0;
|
|
13775
13772
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13776
13773
|
"div",
|
|
@@ -13800,8 +13797,9 @@ var VirtualRoot = (0, import_memoize_one.default)(
|
|
|
13800
13797
|
// src/components/ToggleChip.tsx
|
|
13801
13798
|
var import_jsx_runtime80 = require("@emotion/react/jsx-runtime");
|
|
13802
13799
|
function ToggleChip(props) {
|
|
13803
|
-
const { text, onClick, xss = {}, disabled = false } = props;
|
|
13800
|
+
const { text, onClick, xss = {}, disabled = false, icon } = props;
|
|
13804
13801
|
const { fieldProps } = usePresentationContext();
|
|
13802
|
+
const { hoverProps, isHovered } = useHover({});
|
|
13805
13803
|
const compact = fieldProps?.compact;
|
|
13806
13804
|
const tid = useTestIds(props, "chip");
|
|
13807
13805
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
@@ -13809,21 +13807,27 @@ function ToggleChip(props) {
|
|
|
13809
13807
|
{
|
|
13810
13808
|
type: "button",
|
|
13811
13809
|
css: {
|
|
13812
|
-
...
|
|
13813
|
-
|
|
13814
|
-
|
|
13810
|
+
...chipBaseStyles(compact),
|
|
13811
|
+
...isHovered && !disabled && chipHoverStyles,
|
|
13812
|
+
// Use a lower right-padding to get closer to the `X` circle when clearable, i.e. not disabled
|
|
13813
|
+
...!disabled && Css.prPx(4).$,
|
|
13814
|
+
...disabled && { ...chipDisabledStyles, ...Css.pr1.$ },
|
|
13815
13815
|
...xss
|
|
13816
13816
|
},
|
|
13817
13817
|
disabled,
|
|
13818
13818
|
onClick,
|
|
13819
|
+
...hoverProps,
|
|
13819
13820
|
...tid,
|
|
13820
13821
|
children: [
|
|
13821
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: Css.
|
|
13822
|
-
|
|
13822
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: Css.fs0.$, ...tid.icon, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { icon, color: "rgba(36, 36, 36, 1)" /* Gray900 */, inc: 2 }) }),
|
|
13823
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: Css.tal.lineClamp1.wbba.if(disabled).pr0.$, title: text, children: text }),
|
|
13824
|
+
!disabled && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: { ...Css.fs0.br16.bgGray200.$, ...isHovered && chipHoverStyles }, ...tid.x, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Icon, { icon: "x", color: "rgba(141, 141, 141, 1)" /* Gray600 */, inc: 2 }) })
|
|
13823
13825
|
]
|
|
13824
13826
|
}
|
|
13825
13827
|
);
|
|
13826
13828
|
}
|
|
13829
|
+
var chipHoverStyles = Css.bgGray300.$;
|
|
13830
|
+
var chipDisabledStyles = Css.gray600.cursorNotAllowed.$;
|
|
13827
13831
|
|
|
13828
13832
|
// src/components/ToggleChips.tsx
|
|
13829
13833
|
var import_jsx_runtime81 = require("@emotion/react/jsx-runtime");
|
|
@@ -13835,7 +13839,7 @@ function ToggleChips(props) {
|
|
|
13835
13839
|
|
|
13836
13840
|
// src/components/Accordion.tsx
|
|
13837
13841
|
var import_utils67 = require("@react-aria/utils");
|
|
13838
|
-
var
|
|
13842
|
+
var import_react70 = require("react");
|
|
13839
13843
|
var import_react_aria40 = require("react-aria");
|
|
13840
13844
|
var import_jsx_runtime82 = require("@emotion/react/jsx-runtime");
|
|
13841
13845
|
function Accordion(props) {
|
|
@@ -13857,28 +13861,28 @@ function Accordion(props) {
|
|
|
13857
13861
|
} = props;
|
|
13858
13862
|
const tid = useTestIds(props, "accordion");
|
|
13859
13863
|
const id = (0, import_utils67.useId)();
|
|
13860
|
-
const [expanded, setExpanded] = (0,
|
|
13864
|
+
const [expanded, setExpanded] = (0, import_react70.useState)(defaultExpanded && !disabled);
|
|
13861
13865
|
const { isFocusVisible, focusProps } = (0, import_react_aria40.useFocusRing)();
|
|
13862
|
-
const contentRef = (0,
|
|
13863
|
-
const [contentHeight, setContentHeight] = (0,
|
|
13864
|
-
(0,
|
|
13866
|
+
const contentRef = (0, import_react70.useRef)(null);
|
|
13867
|
+
const [contentHeight, setContentHeight] = (0, import_react70.useState)(expanded ? "auto" : "0");
|
|
13868
|
+
(0, import_react70.useEffect)(() => {
|
|
13865
13869
|
setExpanded(defaultExpanded && !disabled);
|
|
13866
13870
|
}, [defaultExpanded, disabled]);
|
|
13867
|
-
(0,
|
|
13871
|
+
(0, import_react70.useEffect)(() => {
|
|
13868
13872
|
setContentHeight(expanded && contentRef.current ? `${contentRef.current.scrollHeight}px` : "0");
|
|
13869
13873
|
}, [expanded]);
|
|
13870
|
-
const onResize = (0,
|
|
13874
|
+
const onResize = (0, import_react70.useCallback)(() => {
|
|
13871
13875
|
if (contentRef.current && expanded) {
|
|
13872
13876
|
setContentHeight(`${contentRef.current.scrollHeight}px`);
|
|
13873
13877
|
}
|
|
13874
13878
|
}, [expanded, setContentHeight]);
|
|
13875
13879
|
(0, import_utils67.useResizeObserver)({ ref: contentRef, onResize });
|
|
13876
|
-
const toggle = (0,
|
|
13880
|
+
const toggle = (0, import_react70.useCallback)(() => {
|
|
13877
13881
|
setExpanded((prev) => !prev);
|
|
13878
13882
|
if (setExpandedIndex) setExpandedIndex(index);
|
|
13879
13883
|
if (onToggle) onToggle();
|
|
13880
13884
|
}, [index, setExpandedIndex, onToggle]);
|
|
13881
|
-
const touchableStyle = (0,
|
|
13885
|
+
const touchableStyle = (0, import_react70.useMemo)(
|
|
13882
13886
|
() => ({
|
|
13883
13887
|
...Css.df.jcsb.gapPx(12).aic.p2.baseMd.outline("none").onHover.bgGray100.if(!!titleOnClick).baseSb.$,
|
|
13884
13888
|
...compact && Css.smMd.pl2.prPx(10).py1.bgGray100.mbPx(4).br8.onHover.bgGray200.$,
|
|
@@ -13961,11 +13965,11 @@ var accordionSizes = {
|
|
|
13961
13965
|
};
|
|
13962
13966
|
|
|
13963
13967
|
// src/components/AccordionList.tsx
|
|
13964
|
-
var
|
|
13968
|
+
var import_react71 = require("react");
|
|
13965
13969
|
var import_jsx_runtime83 = require("@emotion/react/jsx-runtime");
|
|
13966
13970
|
function AccordionList(props) {
|
|
13967
13971
|
const { accordions, size, allowMultipleExpanded = true, compact = false } = props;
|
|
13968
|
-
const [expandedIndex, setExpandedIndex] = (0,
|
|
13972
|
+
const [expandedIndex, setExpandedIndex] = (0, import_react71.useState)(
|
|
13969
13973
|
accordions.findIndex((a) => a.defaultExpanded)
|
|
13970
13974
|
);
|
|
13971
13975
|
const tid = useTestIds(props, "accordionList");
|
|
@@ -13986,7 +13990,7 @@ function AccordionList(props) {
|
|
|
13986
13990
|
}
|
|
13987
13991
|
|
|
13988
13992
|
// src/components/AutoSaveIndicator.tsx
|
|
13989
|
-
var
|
|
13993
|
+
var import_react72 = require("react");
|
|
13990
13994
|
|
|
13991
13995
|
// src/types.ts
|
|
13992
13996
|
function assertNever(x) {
|
|
@@ -13997,7 +14001,7 @@ function assertNever(x) {
|
|
|
13997
14001
|
var import_jsx_runtime84 = require("@emotion/react/jsx-runtime");
|
|
13998
14002
|
function AutoSaveIndicator({ hideOnIdle, doNotReset }) {
|
|
13999
14003
|
const { status, resetStatus, errors } = useAutoSaveStatus();
|
|
14000
|
-
(0,
|
|
14004
|
+
(0, import_react72.useEffect)(
|
|
14001
14005
|
() => {
|
|
14002
14006
|
if (doNotReset) return;
|
|
14003
14007
|
return () => resetStatus();
|
|
@@ -14060,42 +14064,42 @@ var variantStyles2 = {
|
|
|
14060
14064
|
};
|
|
14061
14065
|
|
|
14062
14066
|
// src/components/BeamContext.tsx
|
|
14063
|
-
var
|
|
14067
|
+
var import_react93 = require("react");
|
|
14064
14068
|
var import_react_aria44 = require("react-aria");
|
|
14065
14069
|
|
|
14066
14070
|
// src/components/Modal/Modal.tsx
|
|
14067
14071
|
var import_utils71 = require("@react-aria/utils");
|
|
14068
|
-
var
|
|
14072
|
+
var import_react75 = require("react");
|
|
14069
14073
|
var import_react_aria41 = require("react-aria");
|
|
14070
14074
|
var import_react_dom2 = require("react-dom");
|
|
14071
14075
|
|
|
14072
14076
|
// src/components/Modal/useModal.tsx
|
|
14073
|
-
var
|
|
14077
|
+
var import_react74 = require("react");
|
|
14074
14078
|
|
|
14075
14079
|
// src/components/Modal/ModalContext.tsx
|
|
14076
|
-
var
|
|
14080
|
+
var import_react73 = require("react");
|
|
14077
14081
|
var import_jsx_runtime86 = require("@emotion/react/jsx-runtime");
|
|
14078
|
-
var ModalContext = (0,
|
|
14082
|
+
var ModalContext = (0, import_react73.createContext)({ inModal: false });
|
|
14079
14083
|
function ModalProvider({ children }) {
|
|
14080
|
-
const value = (0,
|
|
14084
|
+
const value = (0, import_react73.useMemo)(() => ({ inModal: true }), []);
|
|
14081
14085
|
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ModalContext.Provider, { value, children });
|
|
14082
14086
|
}
|
|
14083
14087
|
function useModalContext() {
|
|
14084
|
-
return (0,
|
|
14088
|
+
return (0, import_react73.useContext)(ModalContext);
|
|
14085
14089
|
}
|
|
14086
14090
|
|
|
14087
14091
|
// src/components/Modal/useModal.tsx
|
|
14088
14092
|
function useModal() {
|
|
14089
14093
|
const { modalState, modalCanCloseChecks } = useBeamContext();
|
|
14090
14094
|
const { inModal } = useModalContext();
|
|
14091
|
-
const lastCanClose = (0,
|
|
14092
|
-
const api = (0,
|
|
14093
|
-
(0,
|
|
14095
|
+
const lastCanClose = (0, import_react74.useRef)();
|
|
14096
|
+
const api = (0, import_react74.useRef)();
|
|
14097
|
+
(0, import_react74.useEffect)(() => {
|
|
14094
14098
|
return () => {
|
|
14095
14099
|
modalCanCloseChecks.current = modalCanCloseChecks.current.filter((c) => c !== lastCanClose.current);
|
|
14096
14100
|
};
|
|
14097
14101
|
}, [modalCanCloseChecks]);
|
|
14098
|
-
return (0,
|
|
14102
|
+
return (0, import_react74.useMemo)(
|
|
14099
14103
|
() => ({
|
|
14100
14104
|
openModal(props) {
|
|
14101
14105
|
modalState.current = { ...props, api };
|
|
@@ -14134,7 +14138,7 @@ var import_jsx_runtime87 = require("@emotion/react/jsx-runtime");
|
|
|
14134
14138
|
function Modal(props) {
|
|
14135
14139
|
const { size = "md", content, forceScrolling, api, drawHeaderBorder = false, allowClosing = true } = props;
|
|
14136
14140
|
const isFixedHeight = typeof size !== "string";
|
|
14137
|
-
const ref = (0,
|
|
14141
|
+
const ref = (0, import_react75.useRef)(null);
|
|
14138
14142
|
const { modalBodyDiv, modalFooterDiv, modalHeaderDiv } = useBeamContext();
|
|
14139
14143
|
const { closeModal } = useModal();
|
|
14140
14144
|
const { overlayProps, underlayProps } = (0, import_react_aria41.useOverlay)(
|
|
@@ -14151,20 +14155,20 @@ function Modal(props) {
|
|
|
14151
14155
|
);
|
|
14152
14156
|
const { modalProps } = (0, import_react_aria41.useModal)();
|
|
14153
14157
|
const { dialogProps, titleProps } = (0, import_react_aria41.useDialog)({ role: "dialog" }, ref);
|
|
14154
|
-
const [[width2, height], setSize] = (0,
|
|
14155
|
-
const modalBodyRef = (0,
|
|
14156
|
-
const modalFooterRef = (0,
|
|
14157
|
-
const modalHeaderRef = (0,
|
|
14158
|
+
const [[width2, height], setSize] = (0, import_react75.useState)(getSize(size));
|
|
14159
|
+
const modalBodyRef = (0, import_react75.useRef)(null);
|
|
14160
|
+
const modalFooterRef = (0, import_react75.useRef)(null);
|
|
14161
|
+
const modalHeaderRef = (0, import_react75.useRef)(null);
|
|
14158
14162
|
const testId = useTestIds({}, testIdPrefix);
|
|
14159
14163
|
(0, import_react_aria41.usePreventScroll)();
|
|
14160
14164
|
const { sm } = useBreakpoint();
|
|
14161
14165
|
if (api) {
|
|
14162
14166
|
api.current = { setSize: (size2 = "md") => setSize(getSize(size2)) };
|
|
14163
14167
|
}
|
|
14164
|
-
const [hasScroll, setHasScroll] = (0,
|
|
14168
|
+
const [hasScroll, setHasScroll] = (0, import_react75.useState)(forceScrolling ?? false);
|
|
14165
14169
|
(0, import_utils71.useResizeObserver)({
|
|
14166
14170
|
ref: modalBodyRef,
|
|
14167
|
-
onResize: (0,
|
|
14171
|
+
onResize: (0, import_react75.useCallback)(
|
|
14168
14172
|
() => {
|
|
14169
14173
|
const target = modalBodyRef.current;
|
|
14170
14174
|
if (forceScrolling === void 0 && !isFixedHeight) {
|
|
@@ -14176,7 +14180,7 @@ function Modal(props) {
|
|
|
14176
14180
|
[]
|
|
14177
14181
|
)
|
|
14178
14182
|
});
|
|
14179
|
-
(0,
|
|
14183
|
+
(0, import_react75.useEffect)(
|
|
14180
14184
|
() => {
|
|
14181
14185
|
modalHeaderRef.current.appendChild(modalHeaderDiv);
|
|
14182
14186
|
modalBodyRef.current.appendChild(modalBodyDiv);
|
|
@@ -14251,7 +14255,7 @@ function getSize(size) {
|
|
|
14251
14255
|
}
|
|
14252
14256
|
|
|
14253
14257
|
// src/components/Snackbar/SnackbarContext.tsx
|
|
14254
|
-
var
|
|
14258
|
+
var import_react76 = require("react");
|
|
14255
14259
|
|
|
14256
14260
|
// src/components/Snackbar/SnackbarNotice.tsx
|
|
14257
14261
|
var import_jsx_runtime88 = require("@emotion/react/jsx-runtime");
|
|
@@ -14304,26 +14308,26 @@ var defaultOffset = {
|
|
|
14304
14308
|
|
|
14305
14309
|
// src/components/Snackbar/SnackbarContext.tsx
|
|
14306
14310
|
var import_jsx_runtime90 = require("@emotion/react/jsx-runtime");
|
|
14307
|
-
var SnackbarContext = (0,
|
|
14311
|
+
var SnackbarContext = (0, import_react76.createContext)({ setNotices: () => {
|
|
14308
14312
|
}, setOffset: () => {
|
|
14309
14313
|
} });
|
|
14310
14314
|
function SnackbarProvider(props) {
|
|
14311
|
-
const [notices, setNotices] = (0,
|
|
14312
|
-
const [offset, setOffset] = (0,
|
|
14313
|
-
const contextValue = (0,
|
|
14315
|
+
const [notices, setNotices] = (0, import_react76.useState)([]);
|
|
14316
|
+
const [offset, setOffset] = (0, import_react76.useState)({});
|
|
14317
|
+
const contextValue = (0, import_react76.useMemo)(() => ({ setNotices, setOffset }), []);
|
|
14314
14318
|
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(SnackbarContext.Provider, { value: contextValue, children: [
|
|
14315
14319
|
props.children,
|
|
14316
14320
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Snackbar, { notices, offset })
|
|
14317
14321
|
] });
|
|
14318
14322
|
}
|
|
14319
14323
|
function useSnackbarContext() {
|
|
14320
|
-
return (0,
|
|
14324
|
+
return (0, import_react76.useContext)(SnackbarContext);
|
|
14321
14325
|
}
|
|
14322
14326
|
|
|
14323
14327
|
// src/components/SuperDrawer/SuperDrawer.tsx
|
|
14324
|
-
var
|
|
14328
|
+
var import_react77 = require("@emotion/react");
|
|
14325
14329
|
var import_framer_motion = require("framer-motion");
|
|
14326
|
-
var
|
|
14330
|
+
var import_react78 = require("react");
|
|
14327
14331
|
var import_react_dom3 = require("react-dom");
|
|
14328
14332
|
|
|
14329
14333
|
// src/components/SuperDrawer/utils.ts
|
|
@@ -14335,17 +14339,17 @@ var SuperDrawerWidth = /* @__PURE__ */ ((SuperDrawerWidth2) => {
|
|
|
14335
14339
|
|
|
14336
14340
|
// src/components/SuperDrawer/SuperDrawer.tsx
|
|
14337
14341
|
var import_jsx_runtime91 = require("@emotion/react/jsx-runtime");
|
|
14338
|
-
var
|
|
14342
|
+
var import_react79 = require("@emotion/react");
|
|
14339
14343
|
function SuperDrawer() {
|
|
14340
14344
|
const { drawerContentStack: contentStack, sdHeaderDiv } = useBeamContext();
|
|
14341
14345
|
const { closeDrawer } = useSuperDrawer();
|
|
14342
|
-
const headerRef = (0,
|
|
14346
|
+
const headerRef = (0, import_react78.useRef)(null);
|
|
14343
14347
|
const testId = useTestIds({}, "superDrawer");
|
|
14344
14348
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
14345
14349
|
const { content } = currentContent ?? {};
|
|
14346
14350
|
const firstContent = contentStack.current[0]?.opts;
|
|
14347
14351
|
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
14348
|
-
(0,
|
|
14352
|
+
(0, import_react78.useEffect)(
|
|
14349
14353
|
() => {
|
|
14350
14354
|
if (headerRef.current?.childNodes.length === 0 && content) {
|
|
14351
14355
|
headerRef.current.appendChild(sdHeaderDiv);
|
|
@@ -14357,8 +14361,8 @@ function SuperDrawer() {
|
|
|
14357
14361
|
);
|
|
14358
14362
|
return (0, import_react_dom3.createPortal)(
|
|
14359
14363
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_framer_motion.AnimatePresence, { children: content && /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(import_jsx_runtime91.Fragment, { children: [
|
|
14360
|
-
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
14361
|
-
/* @__PURE__ */ (0,
|
|
14364
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react77.Global, { styles: { body: Css.oh.$ } }),
|
|
14365
|
+
/* @__PURE__ */ (0, import_react79.createElement)(
|
|
14362
14366
|
import_framer_motion.motion.div,
|
|
14363
14367
|
{
|
|
14364
14368
|
...testId,
|
|
@@ -14395,7 +14399,7 @@ function SuperDrawer() {
|
|
|
14395
14399
|
}
|
|
14396
14400
|
|
|
14397
14401
|
// src/components/Layout/FormPageLayout.tsx
|
|
14398
|
-
var
|
|
14402
|
+
var import_react86 = __toESM(require("react"), 1);
|
|
14399
14403
|
var import_react_aria43 = require("react-aria");
|
|
14400
14404
|
|
|
14401
14405
|
// src/forms/BoundCheckboxField.tsx
|
|
@@ -14621,7 +14625,7 @@ function BoundDateRangeField(props) {
|
|
|
14621
14625
|
}
|
|
14622
14626
|
|
|
14623
14627
|
// src/forms/BoundForm.tsx
|
|
14624
|
-
var
|
|
14628
|
+
var import_react82 = require("react");
|
|
14625
14629
|
|
|
14626
14630
|
// src/forms/BoundIconCardField.tsx
|
|
14627
14631
|
var import_mobx_react7 = require("mobx-react");
|
|
@@ -14650,7 +14654,7 @@ function BoundIconCardField(props) {
|
|
|
14650
14654
|
var import_mobx_react8 = require("mobx-react");
|
|
14651
14655
|
|
|
14652
14656
|
// src/inputs/IconCardGroup.tsx
|
|
14653
|
-
var
|
|
14657
|
+
var import_react80 = require("react");
|
|
14654
14658
|
var import_react_aria42 = require("react-aria");
|
|
14655
14659
|
var import_jsx_runtime98 = require("@emotion/react/jsx-runtime");
|
|
14656
14660
|
function IconCardGroup(props) {
|
|
@@ -14665,9 +14669,9 @@ function IconCardGroup(props) {
|
|
|
14665
14669
|
disabled: isDisabled = false,
|
|
14666
14670
|
onChange
|
|
14667
14671
|
} = props;
|
|
14668
|
-
const [selected, setSelected] = (0,
|
|
14669
|
-
const exclusiveOptions = (0,
|
|
14670
|
-
const toggleValue = (0,
|
|
14672
|
+
const [selected, setSelected] = (0, import_react80.useState)(values);
|
|
14673
|
+
const exclusiveOptions = (0, import_react80.useMemo)(() => options.filter((o) => o.exclusive), [options]);
|
|
14674
|
+
const toggleValue = (0, import_react80.useCallback)(
|
|
14671
14675
|
(value) => {
|
|
14672
14676
|
if (isDisabled) return;
|
|
14673
14677
|
const option = options.find((o) => o.value === value);
|
|
@@ -15263,7 +15267,7 @@ function BoundTreeSelectField(props) {
|
|
|
15263
15267
|
}
|
|
15264
15268
|
|
|
15265
15269
|
// src/forms/FormLines.tsx
|
|
15266
|
-
var
|
|
15270
|
+
var import_react81 = require("react");
|
|
15267
15271
|
var import_jsx_runtime112 = require("@emotion/react/jsx-runtime");
|
|
15268
15272
|
function FormLines(props) {
|
|
15269
15273
|
const { inModal } = useModal();
|
|
@@ -15293,9 +15297,9 @@ function FormLines(props) {
|
|
|
15293
15297
|
// Purposefully use this instead of childGap3 to put margin-bottom on the last line
|
|
15294
15298
|
"& > *": Css.mb(gap).$
|
|
15295
15299
|
},
|
|
15296
|
-
children:
|
|
15300
|
+
children: import_react81.Children.map(children, (child) => {
|
|
15297
15301
|
if (child && typeof child === "object" && "type" in child && child.type.isFormHeading) {
|
|
15298
|
-
const clone = (0,
|
|
15302
|
+
const clone = (0, import_react81.cloneElement)(child, { isFirst: firstFormHeading });
|
|
15299
15303
|
firstFormHeading = false;
|
|
15300
15304
|
return clone;
|
|
15301
15305
|
} else {
|
|
@@ -15330,7 +15334,7 @@ var listFieldPrefix = "listField";
|
|
|
15330
15334
|
function BoundForm(props) {
|
|
15331
15335
|
const { rows, formState } = props;
|
|
15332
15336
|
const tid = useTestIds({}, "boundForm");
|
|
15333
|
-
const getRowKey = (0,
|
|
15337
|
+
const getRowKey = (0, import_react82.useCallback)((row, rowType) => {
|
|
15334
15338
|
return `${rowType}-${Object.keys(row).join("-")}`;
|
|
15335
15339
|
}, []);
|
|
15336
15340
|
return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(FormLines, { width: "full", gap: 3.5, children: rows.map(
|
|
@@ -15339,7 +15343,7 @@ function BoundForm(props) {
|
|
|
15339
15343
|
}
|
|
15340
15344
|
function FormRow({ row, formState }) {
|
|
15341
15345
|
const tid = useTestIds({}, "boundFormRow");
|
|
15342
|
-
const componentsWithConfig = (0,
|
|
15346
|
+
const componentsWithConfig = (0, import_react82.useMemo)(() => {
|
|
15343
15347
|
return Object.entries(row).map(([key, fieldFnOrCustomNode]) => {
|
|
15344
15348
|
if (typeof fieldFnOrCustomNode === "function" && !isCustomReactNodeKey(key)) {
|
|
15345
15349
|
const field = formState[key] ?? fail(`Field ${key.toString()} not found in formState`);
|
|
@@ -15465,7 +15469,7 @@ function boundTreeSelectField(props) {
|
|
|
15465
15469
|
}
|
|
15466
15470
|
|
|
15467
15471
|
// src/components/internal/CompoundField.tsx
|
|
15468
|
-
var
|
|
15472
|
+
var import_react83 = require("react");
|
|
15469
15473
|
var import_jsx_runtime114 = require("@emotion/react/jsx-runtime");
|
|
15470
15474
|
function CompoundField({ children }) {
|
|
15471
15475
|
if (children?.length !== 2) {
|
|
@@ -15490,7 +15494,7 @@ function CompoundField({ children }) {
|
|
|
15490
15494
|
...Css.bl.borderRadius("4px 0 0 4px").$,
|
|
15491
15495
|
"&:focus-within": Css.bcBlue700.$
|
|
15492
15496
|
},
|
|
15493
|
-
children: (0,
|
|
15497
|
+
children: (0, import_react83.cloneElement)(children[0], {
|
|
15494
15498
|
internalProps
|
|
15495
15499
|
})
|
|
15496
15500
|
}
|
|
@@ -15504,7 +15508,7 @@ function CompoundField({ children }) {
|
|
|
15504
15508
|
...Css.fg1.br.borderRadius("0 4px 4px 0").$,
|
|
15505
15509
|
"&:focus-within": Css.bcBlue700.$
|
|
15506
15510
|
},
|
|
15507
|
-
children: (0,
|
|
15511
|
+
children: (0, import_react83.cloneElement)(children[1], {
|
|
15508
15512
|
internalProps
|
|
15509
15513
|
})
|
|
15510
15514
|
}
|
|
@@ -15602,36 +15606,39 @@ function SubmitButton(props) {
|
|
|
15602
15606
|
);
|
|
15603
15607
|
}
|
|
15604
15608
|
|
|
15609
|
+
// src/components/Layout/FormPageLayout.tsx
|
|
15610
|
+
var import_use_debounce5 = require("use-debounce");
|
|
15611
|
+
|
|
15605
15612
|
// src/components/RightSidebar.tsx
|
|
15606
15613
|
var import_framer_motion2 = require("framer-motion");
|
|
15607
|
-
var
|
|
15614
|
+
var import_react84 = require("react");
|
|
15608
15615
|
var import_jsx_runtime119 = require("@emotion/react/jsx-runtime");
|
|
15616
|
+
var RIGHT_SIDEBAR_MIN_WIDTH = "250px";
|
|
15609
15617
|
function RightSidebar({ content }) {
|
|
15610
|
-
const [selectedIcon, setSelectedIcon] = (0,
|
|
15618
|
+
const [selectedIcon, setSelectedIcon] = (0, import_react84.useState)(void 0);
|
|
15611
15619
|
const tid = useTestIds({}, "rightSidebar");
|
|
15612
|
-
const width2 = 380;
|
|
15613
15620
|
return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
|
|
15614
|
-
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.jcfe.
|
|
15615
|
-
|
|
15621
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.jcfe.absolute.right0.pr3.$, children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_framer_motion2.AnimatePresence, { children: !selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15622
|
+
import_framer_motion2.motion.div,
|
|
15616
15623
|
{
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
|
|
15621
|
-
|
|
15622
|
-
|
|
15623
|
-
|
|
15624
|
-
)
|
|
15624
|
+
css: Css.df.fdc.gap2.z1.$,
|
|
15625
|
+
initial: { x: "100%", opacity: 0 },
|
|
15626
|
+
animate: { x: 0, opacity: 1 },
|
|
15627
|
+
exit: { x: "100%", opacity: 0 },
|
|
15628
|
+
transition: { ease: [0.51, 0.92, 0.24, 1], duration: 0.3, delay: 0.2 },
|
|
15629
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(IconButtonList, { content, selectedIcon, onIconClick: setSelectedIcon })
|
|
15630
|
+
}
|
|
15631
|
+
) }) }),
|
|
15625
15632
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_framer_motion2.AnimatePresence, { children: selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15626
15633
|
import_framer_motion2.motion.div,
|
|
15627
15634
|
{
|
|
15628
|
-
initial: { x:
|
|
15635
|
+
initial: { x: "100%", opacity: 0 },
|
|
15629
15636
|
animate: { x: 0, opacity: 1 },
|
|
15630
|
-
transition: { delay: 0.2, ease:
|
|
15631
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
15632
|
-
css: Css.
|
|
15633
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.relative.
|
|
15634
|
-
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.absolute.leftPx(-24).$, children: [
|
|
15637
|
+
transition: { delay: 0.2, ease: [0.51, 0.92, 0.24, 1], duration: 0.3 },
|
|
15638
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: "100%" },
|
|
15639
|
+
css: Css.w100.mw(RIGHT_SIDEBAR_MIN_WIDTH).z0.$,
|
|
15640
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.relative.z0.px3.$, children: [
|
|
15641
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.absolute.leftPx(-24).top0.$, children: [
|
|
15635
15642
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15636
15643
|
IconButton,
|
|
15637
15644
|
{
|
|
@@ -15644,68 +15651,76 @@ function RightSidebar({ content }) {
|
|
|
15644
15651
|
),
|
|
15645
15652
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.absolute.topPx(48).leftPx(23).h("calc(100vh - 168px)").wPx(1).bgGray300.$ })
|
|
15646
15653
|
] }),
|
|
15647
|
-
|
|
15654
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.aic.jcfe.gap2.mb3.$, children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(IconButtonList, { content, selectedIcon, onIconClick: setSelectedIcon }) }),
|
|
15655
|
+
selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { ...tid.content, children: content.find((sidebar) => sidebar.icon === selectedIcon)?.render() })
|
|
15648
15656
|
] })
|
|
15649
15657
|
},
|
|
15650
15658
|
"rightSidebar"
|
|
15651
15659
|
) })
|
|
15652
15660
|
] });
|
|
15653
15661
|
}
|
|
15662
|
+
function IconButtonList({ content, selectedIcon, onIconClick }) {
|
|
15663
|
+
return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_jsx_runtime119.Fragment, { children: content.map(({ icon }) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15664
|
+
IconButton,
|
|
15665
|
+
{
|
|
15666
|
+
circle: true,
|
|
15667
|
+
active: icon === selectedIcon,
|
|
15668
|
+
onClick: () => onIconClick(icon),
|
|
15669
|
+
icon,
|
|
15670
|
+
inc: 3.5
|
|
15671
|
+
},
|
|
15672
|
+
`${icon}-${selectedIcon}`
|
|
15673
|
+
)) });
|
|
15674
|
+
}
|
|
15654
15675
|
|
|
15655
15676
|
// src/components/Layout/PageHeaderBreadcrumbs.tsx
|
|
15656
|
-
var
|
|
15677
|
+
var import_react85 = require("react");
|
|
15657
15678
|
var import_react_router_dom4 = require("react-router-dom");
|
|
15658
15679
|
var import_jsx_runtime120 = require("@emotion/react/jsx-runtime");
|
|
15659
15680
|
function PageHeaderBreadcrumbs({ breadcrumb }) {
|
|
15660
15681
|
const tids = useTestIds({}, "pageHeaderBreadcrumbs");
|
|
15661
15682
|
const breadcrumbs = Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb];
|
|
15662
|
-
return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { css: Css.df.aic.mbPx(4).$, ...tids, children: breadcrumbs.map((breadcrumb2, i) => /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
|
|
15683
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { css: Css.df.aic.mbPx(4).$, ...tids, children: breadcrumbs.map((breadcrumb2, i) => /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_react85.Fragment, { children: [
|
|
15663
15684
|
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { css: Css.smMd.gray700.mr1.ml1.$, children: "/" }),
|
|
15664
15685
|
/* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_react_router_dom4.Link, { to: breadcrumb2.href, css: Css.smMd.gray700.onHover.gray900.$, className: "navLink", ...tids.navLink, children: breadcrumb2.label })
|
|
15665
15686
|
] }, `bc-${breadcrumb2.label}`)) });
|
|
15666
15687
|
}
|
|
15667
15688
|
|
|
15668
15689
|
// src/components/Layout/FormPageLayout.tsx
|
|
15669
|
-
var import_jsx_runtime121 = (
|
|
15670
|
-
// This page is `fixed` to the full screen to allow it to act as a full screen modal while content is mounted below
|
|
15671
|
-
// since this layout will be replacing most superdrawers/sidebars, we keep the listing mounted below to preserve the users's
|
|
15672
|
-
// scroll position & filters
|
|
15673
|
-
// Adding "align-items: start" allows "position: sticky" to work within a grid for the sidebars
|
|
15674
|
-
require("@emotion/react/jsx-runtime")
|
|
15675
|
-
);
|
|
15690
|
+
var import_jsx_runtime121 = require("@emotion/react/jsx-runtime");
|
|
15676
15691
|
var headerHeightPx = 120;
|
|
15692
|
+
var maxContentWidthPx = 1600;
|
|
15677
15693
|
function FormPageLayoutComponent(props) {
|
|
15678
15694
|
const { formSections, formState, rightSideBar } = props;
|
|
15679
15695
|
const tids = useTestIds(props, "formPageLayout");
|
|
15680
|
-
const sectionsWithRefs = (0,
|
|
15696
|
+
const sectionsWithRefs = (0, import_react86.useMemo)(
|
|
15681
15697
|
() => formSections.map((section, id) => ({
|
|
15682
15698
|
section,
|
|
15683
|
-
ref: (0,
|
|
15699
|
+
ref: (0, import_react86.createRef)(),
|
|
15684
15700
|
// Unique key for each section to use in the observer
|
|
15685
15701
|
sectionKey: `section-${section.title ?? id}`
|
|
15686
15702
|
})),
|
|
15687
15703
|
[formSections]
|
|
15688
15704
|
);
|
|
15689
|
-
const gridColumns =
|
|
15690
|
-
return
|
|
15691
|
-
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
|
|
15698
|
-
|
|
15699
|
-
|
|
15700
|
-
|
|
15701
|
-
}
|
|
15705
|
+
const gridColumns = `minMax(100px, 250px) minMax(350px, 1000px) minMax(${RIGHT_SIDEBAR_MIN_WIDTH}, 380px)`;
|
|
15706
|
+
return (
|
|
15707
|
+
// This page is `fixed` to the full screen to allow it to act as a full screen modal while content is mounted below
|
|
15708
|
+
// since this layout will be replacing most superdrawers/sidebars, we keep the listing mounted below to preserve the users's
|
|
15709
|
+
// scroll position & filters
|
|
15710
|
+
// Adding "align-items: start" allows "position: sticky" to work within a grid for the sidebars
|
|
15711
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { css: Css.fixed.top0.bottom0.left0.right0.z(1e3).oya.bgWhite.df.jcc.aifs.$, ...tids, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: Css.w100.maxwPx(maxContentWidthPx).dg.gtc(gridColumns).gtr("auto 1fr").cg3.ais.$, children: [
|
|
15712
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(PageHeader, { ...props, ...tids.pageHeader }),
|
|
15713
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(LeftNav, { sectionsWithRefs, ...tids }),
|
|
15714
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(FormSections, { sectionsWithRefs, formState, ...tids }),
|
|
15715
|
+
rightSideBar && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("aside", { css: Css.gr(2).gc("3 / 4").sticky.topPx(headerHeightPx).$, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(RightSidebar, { content: rightSideBar }) })
|
|
15716
|
+
] }) })
|
|
15702
15717
|
);
|
|
15703
15718
|
}
|
|
15704
|
-
var FormPageLayout =
|
|
15719
|
+
var FormPageLayout = import_react86.default.memo(FormPageLayoutComponent);
|
|
15705
15720
|
function PageHeader(props) {
|
|
15706
15721
|
const { pageTitle, breadCrumb, submitAction, cancelAction, tertiaryAction, formState } = props;
|
|
15707
15722
|
const tids = useTestIds(props);
|
|
15708
|
-
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("header", { css: Css.gr(1).gc("
|
|
15723
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("header", { css: Css.gr(1).gc("1 / 4").sticky.top0.hPx(headerHeightPx).bgWhite.z5.$, ...tids, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: Css.py2.px3.df.jcsb.aic.$, children: [
|
|
15709
15724
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { children: [
|
|
15710
15725
|
breadCrumb && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
15711
15726
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("h1", { css: Css.xl3Sb.$, ...tids.pageTitle, children: pageTitle })
|
|
@@ -15738,14 +15753,15 @@ function PageHeader(props) {
|
|
|
15738
15753
|
function FormSections(props) {
|
|
15739
15754
|
const { sectionsWithRefs, formState } = props;
|
|
15740
15755
|
const tids = useTestIds(props);
|
|
15741
|
-
|
|
15756
|
+
const bottomPaddingPx = sectionsWithRefs.length > 1 ? 200 : 0;
|
|
15757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("article", { css: Css.gr(2).gc("2 / 3").pbPx(bottomPaddingPx).pr2.$, children: sectionsWithRefs.map(({ section, ref, sectionKey }, i) => (
|
|
15742
15758
|
// Subgrid here allows for icon placement to the left of the section content
|
|
15743
15759
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
15744
15760
|
"section",
|
|
15745
15761
|
{
|
|
15746
15762
|
id: sectionKey,
|
|
15747
15763
|
ref,
|
|
15748
|
-
css: Css.dg.gtc("50px 1fr").gtr("auto").
|
|
15764
|
+
css: Css.dg.gtc("50px 1fr").gtr("auto").mbPx(72).add("scrollMarginTop", `${headerHeightPx}px`).$,
|
|
15749
15765
|
...tids.formSection,
|
|
15750
15766
|
children: [
|
|
15751
15767
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { css: Css.gc(1).$, children: section.icon && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Icon, { icon: section.icon, inc: 3.5 }) }),
|
|
@@ -15762,12 +15778,12 @@ function FormSections(props) {
|
|
|
15762
15778
|
function LeftNav(props) {
|
|
15763
15779
|
const { sectionsWithRefs } = props;
|
|
15764
15780
|
const tids = useTestIds(props);
|
|
15765
|
-
const sectionWithTitles = (0,
|
|
15781
|
+
const sectionWithTitles = (0, import_react86.useMemo)(
|
|
15766
15782
|
() => sectionsWithRefs.filter(({ section }) => !!section.title),
|
|
15767
15783
|
[sectionsWithRefs]
|
|
15768
15784
|
);
|
|
15769
15785
|
const activeSection = useActiveSection(sectionWithTitles);
|
|
15770
|
-
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("aside", { css: Css.gr(2).gc("
|
|
15786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("aside", { css: Css.gr(2).gc("1 / 2").sticky.topPx(headerHeightPx).px3.df.fdc.gap1.$, ...tids.nav, children: sectionWithTitles.map((sectionWithRef) => /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
15771
15787
|
SectionNavLink,
|
|
15772
15788
|
{
|
|
15773
15789
|
sectionWithRef,
|
|
@@ -15784,11 +15800,11 @@ function SectionNavLink(props) {
|
|
|
15784
15800
|
const { sectionWithRef, activeSection } = props;
|
|
15785
15801
|
const { section, ref: sectionRef } = sectionWithRef;
|
|
15786
15802
|
const active = activeSection === sectionWithRef.sectionKey;
|
|
15787
|
-
const handleNavClick = (0,
|
|
15803
|
+
const handleNavClick = (0, import_react86.useCallback)(() => {
|
|
15788
15804
|
sectionRef.current?.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
15789
15805
|
}, [sectionRef]);
|
|
15790
15806
|
const tids = useTestIds(props);
|
|
15791
|
-
const buttonRef = (0,
|
|
15807
|
+
const buttonRef = (0, import_react86.useRef)(null);
|
|
15792
15808
|
const { buttonProps, isPressed } = (0, import_react_aria43.useButton)({ onPress: handleNavClick }, buttonRef);
|
|
15793
15809
|
const { isFocusVisible, focusProps } = (0, import_react_aria43.useFocusRing)();
|
|
15794
15810
|
const { hoverProps, isHovered } = useHover({});
|
|
@@ -15811,19 +15827,37 @@ function SectionNavLink(props) {
|
|
|
15811
15827
|
);
|
|
15812
15828
|
}
|
|
15813
15829
|
function useActiveSection(sectionsWithRefs) {
|
|
15814
|
-
const [activeSection, setActiveSection] = (0,
|
|
15815
|
-
(0,
|
|
15830
|
+
const [activeSection, setActiveSection] = (0, import_react86.useState)(null);
|
|
15831
|
+
const debouncedIntersectionCallback = (0, import_use_debounce5.useDebouncedCallback)(
|
|
15832
|
+
(entries) => {
|
|
15833
|
+
const sectionsInView = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio > 0.2).sort((a, b) => {
|
|
15834
|
+
const ratioDiff = b.intersectionRatio - a.intersectionRatio;
|
|
15835
|
+
if (Math.abs(ratioDiff) > 0.05) return ratioDiff;
|
|
15836
|
+
const aTop = a.boundingClientRect.top;
|
|
15837
|
+
const bTop = b.boundingClientRect.top;
|
|
15838
|
+
return aTop - bTop;
|
|
15839
|
+
});
|
|
15840
|
+
if (sectionsInView[0]) {
|
|
15841
|
+
setActiveSection(sectionsInView[0].target.id);
|
|
15842
|
+
}
|
|
15843
|
+
},
|
|
15844
|
+
200,
|
|
15845
|
+
{ maxWait: 500 }
|
|
15846
|
+
);
|
|
15847
|
+
(0, import_react86.useEffect)(() => {
|
|
15816
15848
|
if (!("IntersectionObserver" in window)) return;
|
|
15817
|
-
const observer2 = new IntersectionObserver(
|
|
15818
|
-
|
|
15819
|
-
|
|
15820
|
-
|
|
15821
|
-
|
|
15822
|
-
|
|
15823
|
-
|
|
15824
|
-
|
|
15825
|
-
|
|
15826
|
-
|
|
15849
|
+
const observer2 = new IntersectionObserver((entries) => debouncedIntersectionCallback(entries), {
|
|
15850
|
+
/**
|
|
15851
|
+
* Creating rules to determine when a section is "in view" is a real challenge given the section sizes
|
|
15852
|
+
* are unknown and will likely be mixed (optimizing for large sections makes tracking small sections
|
|
15853
|
+
* more difficult and vice versa). This approach attempts to solve for this by creating a narrowed
|
|
15854
|
+
* "focus zone" trying to approximate where a users attention is likely to be. In this case, blocking
|
|
15855
|
+
* out the top 25% and bottom 35% of the viewport to focus on the middle-top 40%.
|
|
15856
|
+
*/
|
|
15857
|
+
rootMargin: "-25% 0px -35% 0px",
|
|
15858
|
+
// Multiple threshold points allow for more granular detection of section visibility
|
|
15859
|
+
threshold: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]
|
|
15860
|
+
});
|
|
15827
15861
|
sectionsWithRefs.forEach(({ ref }) => {
|
|
15828
15862
|
if (ref.current) {
|
|
15829
15863
|
observer2.observe(ref.current);
|
|
@@ -15836,17 +15870,17 @@ function useActiveSection(sectionsWithRefs) {
|
|
|
15836
15870
|
}
|
|
15837
15871
|
});
|
|
15838
15872
|
};
|
|
15839
|
-
}, [sectionsWithRefs]);
|
|
15873
|
+
}, [sectionsWithRefs, debouncedIntersectionCallback]);
|
|
15840
15874
|
return activeSection;
|
|
15841
15875
|
}
|
|
15842
15876
|
|
|
15843
15877
|
// src/components/Layout/FullBleed.tsx
|
|
15844
|
-
var
|
|
15878
|
+
var import_react88 = require("react");
|
|
15845
15879
|
|
|
15846
15880
|
// src/components/Layout/ScrollableParent.tsx
|
|
15847
|
-
var
|
|
15881
|
+
var import_react87 = require("react");
|
|
15848
15882
|
var import_jsx_runtime122 = require("@emotion/react/jsx-runtime");
|
|
15849
|
-
var ScrollableParentContext = (0,
|
|
15883
|
+
var ScrollableParentContext = (0, import_react87.createContext)({
|
|
15850
15884
|
scrollableEl: null,
|
|
15851
15885
|
pr: 0,
|
|
15852
15886
|
pl: 0,
|
|
@@ -15855,14 +15889,14 @@ var ScrollableParentContext = (0, import_react86.createContext)({
|
|
|
15855
15889
|
});
|
|
15856
15890
|
function ScrollableParent(props) {
|
|
15857
15891
|
const { children, xss, tagName: Tag2 = "div" } = props;
|
|
15858
|
-
const scrollableEl = (0,
|
|
15892
|
+
const scrollableEl = (0, import_react87.useMemo)(() => {
|
|
15859
15893
|
const el = document.createElement("div");
|
|
15860
15894
|
el.style.height = "100%";
|
|
15861
15895
|
return el;
|
|
15862
15896
|
}, []);
|
|
15863
|
-
const [, setTick] = (0,
|
|
15897
|
+
const [, setTick] = (0, import_react87.useState)(0);
|
|
15864
15898
|
const hasScrollableContent = scrollableEl.childNodes.length > 0;
|
|
15865
|
-
const scrollableRef = (0,
|
|
15899
|
+
const scrollableRef = (0, import_react87.useRef)(null);
|
|
15866
15900
|
const { paddingLeft, paddingRight, ...otherXss } = xss || {};
|
|
15867
15901
|
const context = {
|
|
15868
15902
|
scrollableEl,
|
|
@@ -15870,7 +15904,7 @@ function ScrollableParent(props) {
|
|
|
15870
15904
|
pr: paddingRight ?? 0,
|
|
15871
15905
|
setPortalTick: setTick
|
|
15872
15906
|
};
|
|
15873
|
-
(0,
|
|
15907
|
+
(0, import_react87.useEffect)(() => {
|
|
15874
15908
|
scrollableRef.current.appendChild(scrollableEl);
|
|
15875
15909
|
}, [scrollableEl]);
|
|
15876
15910
|
return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(ScrollableParentContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Tag2, { css: { ...Css.mh0.mw0.fg1.df.fdc.$, ...otherXss }, children: [
|
|
@@ -15888,14 +15922,14 @@ function ScrollableParent(props) {
|
|
|
15888
15922
|
] }) });
|
|
15889
15923
|
}
|
|
15890
15924
|
function useScrollableParent() {
|
|
15891
|
-
return (0,
|
|
15925
|
+
return (0, import_react87.useContext)(ScrollableParentContext);
|
|
15892
15926
|
}
|
|
15893
15927
|
var scrollContainerBottomPadding = Css.addIn("&:after", Css.contentEmpty.db.h2.$).$;
|
|
15894
15928
|
|
|
15895
15929
|
// src/components/Layout/FullBleed.tsx
|
|
15896
15930
|
function FullBleed({ children, omitPadding = false }) {
|
|
15897
15931
|
const { pr, pl } = useScrollableParent();
|
|
15898
|
-
return !pr && !pl ? children : (0,
|
|
15932
|
+
return !pr && !pl ? children : (0, import_react88.cloneElement)(children, {
|
|
15899
15933
|
style: Css.ml(`-${pl}`).mr(`-${pr}`).if(!omitPadding).pl(pl).pr(pr).$
|
|
15900
15934
|
});
|
|
15901
15935
|
}
|
|
@@ -15912,9 +15946,9 @@ function PreventBrowserScroll({ children }) {
|
|
|
15912
15946
|
}
|
|
15913
15947
|
|
|
15914
15948
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
15915
|
-
var
|
|
15949
|
+
var import_react89 = __toESM(require("react"), 1);
|
|
15916
15950
|
var import_jsx_runtime124 = require("@emotion/react/jsx-runtime");
|
|
15917
|
-
var RightPaneContext =
|
|
15951
|
+
var RightPaneContext = import_react89.default.createContext({
|
|
15918
15952
|
openInPane: () => {
|
|
15919
15953
|
},
|
|
15920
15954
|
closePane: () => {
|
|
@@ -15925,35 +15959,35 @@ var RightPaneContext = import_react88.default.createContext({
|
|
|
15925
15959
|
rightPaneContent: null
|
|
15926
15960
|
});
|
|
15927
15961
|
function RightPaneProvider({ children }) {
|
|
15928
|
-
const [rightPaneContent, setRightPaneContent] = (0,
|
|
15929
|
-
const [isRightPaneOpen, setIsRightPaneOpen] = (0,
|
|
15930
|
-
const openInPane = (0,
|
|
15962
|
+
const [rightPaneContent, setRightPaneContent] = (0, import_react89.useState)(void 0);
|
|
15963
|
+
const [isRightPaneOpen, setIsRightPaneOpen] = (0, import_react89.useState)(false);
|
|
15964
|
+
const openInPane = (0, import_react89.useCallback)(
|
|
15931
15965
|
(opts) => {
|
|
15932
15966
|
setRightPaneContent(opts?.content);
|
|
15933
15967
|
setIsRightPaneOpen(true);
|
|
15934
15968
|
},
|
|
15935
15969
|
[setRightPaneContent]
|
|
15936
15970
|
);
|
|
15937
|
-
const closePane = (0,
|
|
15938
|
-
const clearPane = (0,
|
|
15939
|
-
const context = (0,
|
|
15971
|
+
const closePane = (0, import_react89.useCallback)(() => setIsRightPaneOpen(false), []);
|
|
15972
|
+
const clearPane = (0, import_react89.useCallback)(() => setRightPaneContent(void 0), [setRightPaneContent]);
|
|
15973
|
+
const context = (0, import_react89.useMemo)(
|
|
15940
15974
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
15941
15975
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
15942
15976
|
);
|
|
15943
15977
|
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(RightPaneContext.Provider, { value: context, children });
|
|
15944
15978
|
}
|
|
15945
15979
|
function useRightPaneContext() {
|
|
15946
|
-
return (0,
|
|
15980
|
+
return (0, import_react89.useContext)(RightPaneContext);
|
|
15947
15981
|
}
|
|
15948
15982
|
|
|
15949
15983
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
15950
15984
|
var import_framer_motion3 = require("framer-motion");
|
|
15951
|
-
var
|
|
15985
|
+
var import_react90 = require("react");
|
|
15952
15986
|
var import_jsx_runtime125 = require("@emotion/react/jsx-runtime");
|
|
15953
15987
|
function RightPaneLayout(props) {
|
|
15954
15988
|
const { children, paneBgColor = "rgba(255,255,255,1)" /* White */, paneWidth = 450, defaultPaneContent } = props;
|
|
15955
15989
|
const { isRightPaneOpen, rightPaneContent, clearPane, closePane } = useRightPaneContext();
|
|
15956
|
-
(0,
|
|
15990
|
+
(0, import_react90.useEffect)(() => closePane, [closePane]);
|
|
15957
15991
|
return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { css: Css.h100.df.oxh.$, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_jsx_runtime125.Fragment, { children: [
|
|
15958
15992
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
15959
15993
|
"div",
|
|
@@ -16003,13 +16037,13 @@ function useRightPane() {
|
|
|
16003
16037
|
}
|
|
16004
16038
|
|
|
16005
16039
|
// src/components/Layout/ScrollableContent.tsx
|
|
16006
|
-
var
|
|
16040
|
+
var import_react91 = require("react");
|
|
16007
16041
|
var import_react_dom4 = require("react-dom");
|
|
16008
16042
|
var import_jsx_runtime126 = require("@emotion/react/jsx-runtime");
|
|
16009
16043
|
function ScrollableContent(props) {
|
|
16010
16044
|
const { children, virtualized = false, omitBottomPadding, bgColor } = props;
|
|
16011
16045
|
const { scrollableEl, setPortalTick, pl, pr } = useScrollableParent();
|
|
16012
|
-
(0,
|
|
16046
|
+
(0, import_react91.useEffect)(() => {
|
|
16013
16047
|
setPortalTick((prev) => prev + 1);
|
|
16014
16048
|
return () => setPortalTick((prev) => prev + 1);
|
|
16015
16049
|
}, [setPortalTick]);
|
|
@@ -16033,9 +16067,9 @@ function ScrollableContent(props) {
|
|
|
16033
16067
|
}
|
|
16034
16068
|
|
|
16035
16069
|
// src/components/Toast/ToastContext.tsx
|
|
16036
|
-
var
|
|
16070
|
+
var import_react92 = require("react");
|
|
16037
16071
|
var import_jsx_runtime127 = require("@emotion/react/jsx-runtime");
|
|
16038
|
-
var ToastContext = (0,
|
|
16072
|
+
var ToastContext = (0, import_react92.createContext)({
|
|
16039
16073
|
setNotice: () => {
|
|
16040
16074
|
throw new Error("Missing ToastProvider");
|
|
16041
16075
|
},
|
|
@@ -16044,18 +16078,18 @@ var ToastContext = (0, import_react91.createContext)({
|
|
|
16044
16078
|
notice: void 0
|
|
16045
16079
|
});
|
|
16046
16080
|
function ToastProvider(props) {
|
|
16047
|
-
const [notice, setNotice] = (0,
|
|
16048
|
-
const clear = (0,
|
|
16049
|
-
const contextValue = (0,
|
|
16081
|
+
const [notice, setNotice] = (0, import_react92.useState)();
|
|
16082
|
+
const clear = (0, import_react92.useCallback)(() => setNotice(void 0), [setNotice]);
|
|
16083
|
+
const contextValue = (0, import_react92.useMemo)(() => ({ setNotice, notice, clear }), [notice, clear]);
|
|
16050
16084
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ToastContext.Provider, { value: contextValue, children: props.children });
|
|
16051
16085
|
}
|
|
16052
16086
|
function useToastContext() {
|
|
16053
|
-
return (0,
|
|
16087
|
+
return (0, import_react92.useContext)(ToastContext);
|
|
16054
16088
|
}
|
|
16055
16089
|
|
|
16056
16090
|
// src/components/BeamContext.tsx
|
|
16057
16091
|
var import_jsx_runtime128 = require("@emotion/react/jsx-runtime");
|
|
16058
|
-
var BeamContext = (0,
|
|
16092
|
+
var BeamContext = (0, import_react93.createContext)({
|
|
16059
16093
|
modalState: new EmptyRef(),
|
|
16060
16094
|
modalCanCloseChecks: new EmptyRef(),
|
|
16061
16095
|
modalHeaderDiv: void 0,
|
|
@@ -16067,21 +16101,21 @@ var BeamContext = (0, import_react92.createContext)({
|
|
|
16067
16101
|
sdHeaderDiv: void 0
|
|
16068
16102
|
});
|
|
16069
16103
|
function BeamProvider({ children, ...presentationProps }) {
|
|
16070
|
-
const [, tick] = (0,
|
|
16071
|
-
const modalRef = (0,
|
|
16072
|
-
const modalHeaderDiv = (0,
|
|
16073
|
-
const modalBodyDiv = (0,
|
|
16104
|
+
const [, tick] = (0, import_react93.useReducer)((prev) => prev + 1, 0);
|
|
16105
|
+
const modalRef = (0, import_react93.useRef)();
|
|
16106
|
+
const modalHeaderDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16107
|
+
const modalBodyDiv = (0, import_react93.useMemo)(() => {
|
|
16074
16108
|
const el = document.createElement("div");
|
|
16075
16109
|
el.style.height = "100%";
|
|
16076
16110
|
return el;
|
|
16077
16111
|
}, []);
|
|
16078
|
-
const modalCanCloseChecksRef = (0,
|
|
16079
|
-
const modalFooterDiv = (0,
|
|
16080
|
-
const drawerContentStackRef = (0,
|
|
16081
|
-
const drawerCanCloseChecks = (0,
|
|
16082
|
-
const drawerCanCloseDetailsChecks = (0,
|
|
16083
|
-
const sdHeaderDiv = (0,
|
|
16084
|
-
const context = (0,
|
|
16112
|
+
const modalCanCloseChecksRef = (0, import_react93.useRef)([]);
|
|
16113
|
+
const modalFooterDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16114
|
+
const drawerContentStackRef = (0, import_react93.useRef)([]);
|
|
16115
|
+
const drawerCanCloseChecks = (0, import_react93.useRef)([]);
|
|
16116
|
+
const drawerCanCloseDetailsChecks = (0, import_react93.useRef)([]);
|
|
16117
|
+
const sdHeaderDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16118
|
+
const context = (0, import_react93.useMemo)(() => {
|
|
16085
16119
|
return {
|
|
16086
16120
|
// These two keys need to trigger re-renders on change
|
|
16087
16121
|
modalState: new PretendRefThatTicks(modalRef, tick),
|
|
@@ -16118,18 +16152,18 @@ var PretendRefThatTicks = class {
|
|
|
16118
16152
|
}
|
|
16119
16153
|
};
|
|
16120
16154
|
function useBeamContext() {
|
|
16121
|
-
return (0,
|
|
16155
|
+
return (0, import_react93.useContext)(BeamContext);
|
|
16122
16156
|
}
|
|
16123
16157
|
|
|
16124
16158
|
// src/components/ButtonDatePicker.tsx
|
|
16125
|
-
var
|
|
16159
|
+
var import_react94 = require("react");
|
|
16126
16160
|
var import_react_aria45 = require("react-aria");
|
|
16127
16161
|
var import_react_stately17 = require("react-stately");
|
|
16128
16162
|
var import_jsx_runtime129 = require("@emotion/react/jsx-runtime");
|
|
16129
16163
|
function ButtonDatePicker(props) {
|
|
16130
16164
|
const { defaultOpen, disabled, trigger, onSelect, ...datePickerProps } = props;
|
|
16131
16165
|
const state = (0, import_react_stately17.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
16132
|
-
const buttonRef = (0,
|
|
16166
|
+
const buttonRef = (0, import_react94.useRef)(null);
|
|
16133
16167
|
const { menuTriggerProps, menuProps } = (0, import_react_aria45.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
16134
16168
|
const tid = useTestIds(
|
|
16135
16169
|
props,
|
|
@@ -16149,7 +16183,7 @@ function ButtonDatePicker(props) {
|
|
|
16149
16183
|
}
|
|
16150
16184
|
|
|
16151
16185
|
// src/components/ButtonGroup.tsx
|
|
16152
|
-
var
|
|
16186
|
+
var import_react95 = require("react");
|
|
16153
16187
|
var import_react_aria46 = require("react-aria");
|
|
16154
16188
|
var import_jsx_runtime130 = (
|
|
16155
16189
|
// Disable the button if the ButtonGroup is disabled or if the current button is disabled.
|
|
@@ -16166,7 +16200,7 @@ function ButtonGroup(props) {
|
|
|
16166
16200
|
function GroupButton(props) {
|
|
16167
16201
|
const { icon, iconInc, iconColor, text, active, onClick: onPress, disabled, size, tooltip, ...otherProps } = props;
|
|
16168
16202
|
const ariaProps = { onPress, isDisabled: !!disabled, ...otherProps };
|
|
16169
|
-
const ref = (0,
|
|
16203
|
+
const ref = (0, import_react95.useRef)(null);
|
|
16170
16204
|
const { buttonProps, isPressed } = (0, import_react_aria46.useButton)(ariaProps, ref);
|
|
16171
16205
|
const { isFocusVisible, focusProps } = (0, import_react_aria46.useFocusRing)();
|
|
16172
16206
|
const { hoverProps, isHovered } = (0, import_react_aria46.useHover)(ariaProps);
|
|
@@ -16225,7 +16259,7 @@ var iconStyles2 = {
|
|
|
16225
16259
|
};
|
|
16226
16260
|
|
|
16227
16261
|
// src/components/ButtonMenu.tsx
|
|
16228
|
-
var
|
|
16262
|
+
var import_react96 = require("react");
|
|
16229
16263
|
var import_react_aria47 = require("react-aria");
|
|
16230
16264
|
var import_react_stately18 = require("react-stately");
|
|
16231
16265
|
var import_jsx_runtime131 = require("@emotion/react/jsx-runtime");
|
|
@@ -16237,7 +16271,7 @@ function ButtonMenu(props) {
|
|
|
16237
16271
|
onChange = props.onChange;
|
|
16238
16272
|
}
|
|
16239
16273
|
const state = (0, import_react_stately18.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
16240
|
-
const buttonRef = (0,
|
|
16274
|
+
const buttonRef = (0, import_react96.useRef)(null);
|
|
16241
16275
|
const { menuTriggerProps, menuProps } = (0, import_react_aria47.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
16242
16276
|
const tid = useTestIds(
|
|
16243
16277
|
props,
|
|
@@ -16274,19 +16308,19 @@ function isSelectionButtonMenuProps(props) {
|
|
|
16274
16308
|
}
|
|
16275
16309
|
|
|
16276
16310
|
// src/components/Card.tsx
|
|
16277
|
-
var
|
|
16311
|
+
var import_react98 = require("react");
|
|
16278
16312
|
var import_react_aria48 = require("react-aria");
|
|
16279
16313
|
|
|
16280
16314
|
// src/components/Tag.tsx
|
|
16281
16315
|
var import_utils107 = require("@react-aria/utils");
|
|
16282
|
-
var
|
|
16316
|
+
var import_react97 = require("react");
|
|
16283
16317
|
var import_jsx_runtime132 = require("@emotion/react/jsx-runtime");
|
|
16284
16318
|
function Tag(props) {
|
|
16285
16319
|
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
16286
16320
|
const typeStyles2 = getStyles(type);
|
|
16287
16321
|
const tid = useTestIds(otherProps);
|
|
16288
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
16289
|
-
const ref = (0,
|
|
16322
|
+
const [showTooltip, setShowTooltip] = (0, import_react97.useState)(false);
|
|
16323
|
+
const ref = (0, import_react97.useRef)(null);
|
|
16290
16324
|
(0, import_utils107.useResizeObserver)({
|
|
16291
16325
|
ref,
|
|
16292
16326
|
onResize: () => {
|
|
@@ -16337,7 +16371,7 @@ function Card(props) {
|
|
|
16337
16371
|
const { hoverProps, isHovered } = (0, import_react_aria48.useHover)({ isDisabled });
|
|
16338
16372
|
const isList = type === "list";
|
|
16339
16373
|
const imgHeight = isList ? 96 : bordered ? 224 : 256;
|
|
16340
|
-
const styles = (0,
|
|
16374
|
+
const styles = (0, import_react98.useMemo)(
|
|
16341
16375
|
() => ({
|
|
16342
16376
|
...baseStyles4(type),
|
|
16343
16377
|
...isList && listStyles,
|
|
@@ -16400,43 +16434,43 @@ function Copy(props) {
|
|
|
16400
16434
|
|
|
16401
16435
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16402
16436
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
16403
|
-
var
|
|
16437
|
+
var import_react100 = require("react");
|
|
16404
16438
|
|
|
16405
16439
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
16406
|
-
var
|
|
16407
|
-
var DnDGridContext = (0,
|
|
16440
|
+
var import_react99 = require("react");
|
|
16441
|
+
var DnDGridContext = (0, import_react99.createContext)({
|
|
16408
16442
|
dragEl: { current: void 0 },
|
|
16409
16443
|
onDragHandleKeyDown: () => {
|
|
16410
16444
|
}
|
|
16411
16445
|
});
|
|
16412
16446
|
function useDnDGridContext() {
|
|
16413
|
-
return (0,
|
|
16447
|
+
return (0, import_react99.useContext)(DnDGridContext);
|
|
16414
16448
|
}
|
|
16415
16449
|
|
|
16416
16450
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16417
16451
|
var import_jsx_runtime135 = require("@emotion/react/jsx-runtime");
|
|
16418
16452
|
function DnDGrid(props) {
|
|
16419
16453
|
const { children, gridStyles, onReorder, activeItemStyles } = props;
|
|
16420
|
-
const gridEl = (0,
|
|
16421
|
-
const dragEl = (0,
|
|
16422
|
-
const cloneEl = (0,
|
|
16423
|
-
const initialOrder = (0,
|
|
16424
|
-
const reorderViaKeyboard = (0,
|
|
16425
|
-
const transformFrom = (0,
|
|
16454
|
+
const gridEl = (0, import_react100.useRef)(null);
|
|
16455
|
+
const dragEl = (0, import_react100.useRef)();
|
|
16456
|
+
const cloneEl = (0, import_react100.useRef)();
|
|
16457
|
+
const initialOrder = (0, import_react100.useRef)();
|
|
16458
|
+
const reorderViaKeyboard = (0, import_react100.useRef)(false);
|
|
16459
|
+
const transformFrom = (0, import_react100.useRef)({ x: 0, y: 0 });
|
|
16426
16460
|
const tid = useTestIds(props, "dndGrid");
|
|
16427
|
-
const getGridItems = (0,
|
|
16461
|
+
const getGridItems = (0, import_react100.useCallback)(() => {
|
|
16428
16462
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
16429
16463
|
}, []);
|
|
16430
|
-
const getGridItemIdOrder = (0,
|
|
16464
|
+
const getGridItemIdOrder = (0, import_react100.useCallback)(() => {
|
|
16431
16465
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
16432
16466
|
}, [getGridItems]);
|
|
16433
|
-
const initReorder = (0,
|
|
16467
|
+
const initReorder = (0, import_react100.useCallback)(() => {
|
|
16434
16468
|
if (gridEl.current && dragEl.current) {
|
|
16435
16469
|
initialOrder.current = getGridItemIdOrder();
|
|
16436
16470
|
dragEl.current.classList.add(activeGridItemClass);
|
|
16437
16471
|
}
|
|
16438
16472
|
}, [getGridItemIdOrder]);
|
|
16439
|
-
const commitReorder = (0,
|
|
16473
|
+
const commitReorder = (0, import_react100.useCallback)(() => {
|
|
16440
16474
|
if (gridEl.current && dragEl.current) {
|
|
16441
16475
|
const currentOrder = getGridItemIdOrder();
|
|
16442
16476
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -16446,7 +16480,7 @@ function DnDGrid(props) {
|
|
|
16446
16480
|
initialOrder.current = currentOrder;
|
|
16447
16481
|
}
|
|
16448
16482
|
}, [onReorder, getGridItemIdOrder]);
|
|
16449
|
-
const cancelReorder = (0,
|
|
16483
|
+
const cancelReorder = (0, import_react100.useCallback)(() => {
|
|
16450
16484
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
16451
16485
|
const currentOrder = getGridItemIdOrder();
|
|
16452
16486
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -16468,7 +16502,7 @@ function DnDGrid(props) {
|
|
|
16468
16502
|
reorderViaKeyboard.current = false;
|
|
16469
16503
|
}
|
|
16470
16504
|
}, [getGridItemIdOrder, getGridItems]);
|
|
16471
|
-
const onMove = (0,
|
|
16505
|
+
const onMove = (0, import_react100.useCallback)((e) => {
|
|
16472
16506
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16473
16507
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
16474
16508
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -16489,7 +16523,7 @@ function DnDGrid(props) {
|
|
|
16489
16523
|
}
|
|
16490
16524
|
}
|
|
16491
16525
|
}, []);
|
|
16492
|
-
const onDragStart = (0,
|
|
16526
|
+
const onDragStart = (0, import_react100.useCallback)(
|
|
16493
16527
|
(e) => {
|
|
16494
16528
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
16495
16529
|
initReorder();
|
|
@@ -16520,7 +16554,7 @@ function DnDGrid(props) {
|
|
|
16520
16554
|
},
|
|
16521
16555
|
[initReorder, onMove]
|
|
16522
16556
|
);
|
|
16523
|
-
const onDragEnd = (0,
|
|
16557
|
+
const onDragEnd = (0, import_react100.useCallback)(
|
|
16524
16558
|
(e) => {
|
|
16525
16559
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16526
16560
|
e.preventDefault();
|
|
@@ -16536,7 +16570,7 @@ function DnDGrid(props) {
|
|
|
16536
16570
|
},
|
|
16537
16571
|
[commitReorder, onMove]
|
|
16538
16572
|
);
|
|
16539
|
-
const onDragHandleKeyDown = (0,
|
|
16573
|
+
const onDragHandleKeyDown = (0, import_react100.useCallback)(
|
|
16540
16574
|
(e) => {
|
|
16541
16575
|
const moveHandle = e.target;
|
|
16542
16576
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -16634,11 +16668,11 @@ function DnDGridItemHandle(props) {
|
|
|
16634
16668
|
}
|
|
16635
16669
|
|
|
16636
16670
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
16637
|
-
var
|
|
16671
|
+
var import_react101 = require("react");
|
|
16638
16672
|
function useDnDGridItem(props) {
|
|
16639
16673
|
const { id, itemRef } = props;
|
|
16640
16674
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
16641
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
16675
|
+
const { dragItemProps, dragHandleProps } = (0, import_react101.useMemo)(
|
|
16642
16676
|
() => {
|
|
16643
16677
|
function initDraggable() {
|
|
16644
16678
|
if (itemRef.current) {
|
|
@@ -17035,15 +17069,15 @@ var CheckboxFilter = class extends BaseFilter {
|
|
|
17035
17069
|
};
|
|
17036
17070
|
|
|
17037
17071
|
// src/components/Filters/FilterModal.tsx
|
|
17038
|
-
var
|
|
17072
|
+
var import_react103 = require("react");
|
|
17039
17073
|
|
|
17040
17074
|
// src/components/Modal/OpenModal.tsx
|
|
17041
|
-
var
|
|
17075
|
+
var import_react102 = require("react");
|
|
17042
17076
|
var import_jsx_runtime145 = require("@emotion/react/jsx-runtime");
|
|
17043
17077
|
function OpenModal(props) {
|
|
17044
17078
|
const { openModal } = useModal();
|
|
17045
17079
|
const { size, children, keepOpen } = props;
|
|
17046
|
-
(0,
|
|
17080
|
+
(0, import_react102.useEffect)(() => {
|
|
17047
17081
|
if (!keepOpen) {
|
|
17048
17082
|
openModal({ size, content: children });
|
|
17049
17083
|
}
|
|
@@ -17061,7 +17095,7 @@ function FilterModal(props) {
|
|
|
17061
17095
|
const { filter, filters, onApply } = props;
|
|
17062
17096
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
17063
17097
|
const { closeModal } = useModal();
|
|
17064
|
-
const [modalFilter, setModalFilter] = (0,
|
|
17098
|
+
const [modalFilter, setModalFilter] = (0, import_react103.useState)(filter);
|
|
17065
17099
|
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
|
|
17066
17100
|
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalHeader, { children: "More Filters" }),
|
|
17067
17101
|
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.df.fdc.$, children: safeEntries(filters).map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalFilterItem, { label: f.hideLabelInModal ? void 0 : f.label, children: f.render(
|
|
@@ -17110,13 +17144,13 @@ function ModalFilterItem({ label, children }) {
|
|
|
17110
17144
|
}
|
|
17111
17145
|
|
|
17112
17146
|
// src/components/Filters/Filters.tsx
|
|
17113
|
-
var
|
|
17147
|
+
var import_react104 = require("react");
|
|
17114
17148
|
var import_jsx_runtime147 = require("@emotion/react/jsx-runtime");
|
|
17115
17149
|
function Filters(props) {
|
|
17116
17150
|
const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
|
|
17117
17151
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
17118
17152
|
const { openModal } = useModal();
|
|
17119
|
-
const [pageFilters, modalFilters] = (0,
|
|
17153
|
+
const [pageFilters, modalFilters] = (0, import_react104.useMemo)(() => {
|
|
17120
17154
|
const impls = safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]);
|
|
17121
17155
|
if (!vertical && impls.length > numberOfInlineFilters) {
|
|
17122
17156
|
return [
|
|
@@ -17169,7 +17203,7 @@ function Filters(props) {
|
|
|
17169
17203
|
}
|
|
17170
17204
|
);
|
|
17171
17205
|
}
|
|
17172
|
-
var _Filters = (0,
|
|
17206
|
+
var _Filters = (0, import_react104.memo)(Filters);
|
|
17173
17207
|
|
|
17174
17208
|
// src/components/Filters/ToggleFilter.tsx
|
|
17175
17209
|
var import_jsx_runtime148 = require("@emotion/react/jsx-runtime");
|
|
@@ -17229,7 +17263,7 @@ function ResponsiveGridItem(props) {
|
|
|
17229
17263
|
}
|
|
17230
17264
|
|
|
17231
17265
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17232
|
-
var
|
|
17266
|
+
var import_react105 = require("react");
|
|
17233
17267
|
|
|
17234
17268
|
// src/components/Grid/utils.ts
|
|
17235
17269
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
@@ -17237,7 +17271,7 @@ var gridItemDataAttribute = "data-grid-item-span";
|
|
|
17237
17271
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17238
17272
|
function useResponsiveGrid(props) {
|
|
17239
17273
|
const { minColumnWidth, gap, columns } = props;
|
|
17240
|
-
const gridStyles = (0,
|
|
17274
|
+
const gridStyles = (0, import_react105.useMemo)(() => {
|
|
17241
17275
|
const gapCount = columns - 1;
|
|
17242
17276
|
const totalGapWidth = gap * gapCount;
|
|
17243
17277
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -17278,7 +17312,7 @@ function useResponsiveGridItem({ colSpan = 1 }) {
|
|
|
17278
17312
|
}
|
|
17279
17313
|
|
|
17280
17314
|
// src/components/HbLoadingSpinner.tsx
|
|
17281
|
-
var
|
|
17315
|
+
var import_react106 = __toESM(require("react"), 1);
|
|
17282
17316
|
|
|
17283
17317
|
// src/components/HbLoadingSpinner.base64.ts
|
|
17284
17318
|
var HbLoadingSpinner_base64_default = "data:image/gif,GIF89a%80%00%80%00%E7%00%00%00%00%00%0D%0D%0D%16%16%16%1C%1C%1C%22%22%22%26%26%26%2A%2A%2A...222555888%3B%3B%3B%3D%3D%3D%40%40%40BBBEEEGGGIIIKKKMMMOOOQQQSSSUUUVVVXXXZZZ%5C%5C%5C%5D%5D%5D___%60%60%60bbbccceeefffhhhiiijjjlllmmmnnnpppqqqrrrsssuuuvvvwwwxxxyyyzzz%7C%7C%7C%7D%7D%7D~~~%7F%7F%7F%80%80%80%81%81%81%82%82%82%83%83%83%84%84%84%85%85%85%86%86%86%87%87%87%88%88%88%89%89%89%8A%8A%8A%8B%8B%8B%8C%8C%8C%8D%8D%8D%8E%8E%8E%8F%8F%8F%90%90%90%91%91%91%92%92%92%93%93%93%94%94%94%95%95%95%96%96%96%97%97%97%98%98%98%99%99%99%9A%9A%9A%9B%9B%9B%9C%9C%9C%9D%9D%9D%9E%9E%9E%9F%9F%9F%A0%A0%A0%A1%A1%A1%A2%A2%A2%A3%A3%A3%A4%A4%A4%A5%A5%A5%A6%A6%A6%A7%A7%A7%A8%A8%A8%A9%A9%A9%AA%AA%AA%AB%AB%AB%AC%AC%AC%AD%AD%AD%AE%AE%AE%AF%AF%AF%B0%B0%B0%B1%B1%B1%B2%B2%B2%B3%B3%B3%B4%B4%B4%B5%B5%B5%B6%B6%B6%B7%B7%B7%B8%B8%B8%B9%B9%B9%BA%BA%BA%BB%BB%BB%BC%BC%BC%BD%BD%BD%BE%BE%BE%BF%BF%BF%C0%C0%C0%C1%C1%C1%C2%C2%C2%C3%C3%C3%C4%C4%C4%C5%C5%C5%C6%C6%C6%C7%C7%C7%C8%C8%C8%C9%C9%C9%CA%CA%CA%CB%CB%CB%CC%CC%CC%CD%CD%CD%CE%CE%CE%CF%CF%CF%D0%D0%D0%D1%D1%D1%D2%D2%D2%D3%D3%D3%D4%D4%D4%D5%D5%D5%D6%D6%D6%D7%D7%D7%D8%D8%D8%D9%D9%D9%DA%DA%DA%DB%DB%DB%DC%DC%DC%DD%DD%DD%DE%DE%DE%DF%DF%DF%E0%E0%E0%E1%E1%E1%E2%E2%E2%E3%E3%E3%E4%E4%E4%E5%E5%E5%E6%E6%E6%E7%E7%E7%E8%E8%E8%E9%E9%E9%EA%EA%EA%EB%EB%EB%EC%EC%EC%ED%ED%ED%EE%EE%EE%EF%EF%EF%F0%F0%F0%F1%F1%F1%F2%F2%F2%F3%F3%F3%F4%F4%F4%F5%F5%F5%F6%F6%F6%F7%F7%F7%F8%F8%F8%F9%F9%F9%FA%FA%FA%FB%FB%FB%FC%FC%FC%FD%FD%FD%FE%FE%FE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%21%FF%0BNETSCAPE2.0%03%01%00%00%00%21%FE%11Created%20with%20GIMP%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%DD%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%EC7%80%80%C7%02%02%EC%0D%40%99%F2%E4%CA%92%2F%5B%E6%5B%99%B1%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%BB%B6%ED%DB%B8s%EB%DE%CD%BB%B7%EF%DF%C0%83%D7%0E%08%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FC%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF7%03%88%1E-Z%80%E9%01%04%0A%188p%00A%82%05%0D%1EH%A8%C0%964i%D3%02P%ABn%FD%9A%01%5C%DB%A3O%EB%5EM%17x%00%DC%A8%EF%1A%3F%0E%BA%B9%F3%E7%D0%A3K%9FN%BD%BA%F5%EB%D8%B3k%DF%CE%BD%3B%CA%80%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%20%03%88%160%80%40%81%03%09%16%40%B0%D0%A1%04%8C%1EK%B0%90%89%B3%87%D0%A2H%966y%0A5%AAT%29S%A7P%A5J%A5J%D5%AA%E3%C8Y%B1Z%15U%F4h%D2%04%0C%20X%F0%80B%06%11%2Cp%14%A1%22%06%0E%9FB%8D%2A%B7m%02E%EAT%AAU%AD%5C%BD%82%05%2B%96%AC%F7%B2f%C9%9FO%D5y%00%E8%A8%19%3C%60%5D%C2%05%8F%25Y%981%87%1F%88DrI%27%A2%94%82%8A%2A%E9%AD%D7%1E%7C%F1%CD7KU%F6A%27%9D%02%0EH%80%C1%07%29%D0%10%84%13%5D%ACq%C7%20%8CL%A2%09y%A7%A8%C2J%2B%EB%C5%E2%DE%7B%12NhU%85%A5I%B7%80%03%13l%20%C2%0A7%18AE%18o%ECQ%88%23%96p%12%8A%82%E8%B5%F8b%84%F2%7D%E5%9C%00%D0%15p%A1~%11P%60%01%06%1Al%D0A%07%1E%7C%00%C2%97%21%84%29f%08%A0%95i%E6%99h%A6%A9%E6%9Al%B6%E9%E6%9Bp%C6%29%E7%9Ctf%15%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%14%03%88%160%80%80%01%04%0D%26p%40%81C%89%965w%02%25z4%C9R%A6M%9D%3C%7D%FA%04%2AT%28Q%A3F%91%22U%AAxqS%A6N%9DB%C5%1CU%AA%E7%AA%A2%ABZE%FD%E8%E8%D2%06%124%A8%00%82%05%8F%27a%E4%D6%FCI%14%E9%12%A7O%A1%88%27_%0E%9D%3A%2BV%AD%E2%BB%9A%FF%EA%15%AC%FB%B0b%E9%8F%25%AB%BF%7F%A4%A2%05%20%80i%0A%3C%60%01%08-%F8%10%05%19t%00%B2%C8%24%99t%02%CA%28%A5%24%E7%5C%2A%D3%AD%F2%5E%7C%F2%D5g%1F~%FB%F1%E7%DF%7F%00%8A%86%5D%81%07%BA%F0%83%14%0C%06%C2%08%25%9Ax%22%0A%29%16b%E8%1E%7C%1C%D2W%1F%88%FB%8D%D8%DF%2C%B2%285%DA%80%D99%60A%08.%001E%19u%0C%D2H%25%9BLX%0A%7B%D3m%98%A3%2B%3B%F2%28%A2%8F%B3%00%F9T%80%A4%99%96%00%03%0FHP%C1%05%19l%C0A%07%1Dx%E0%C1%07p%C6%F9%01%08t%D6i%27%08%21%E4%A9%E7%9E%21%80%E6%E7%9F%80%06%2A%E8%A0%84%16j%E8%A1%88%26%AA%E8%A2%8C6%9AU%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%0E%03%88%1EP%E0%00%83%0A%20%60%0C%C1%82%A6%CE%9FC%8C%1EE%9AD%A9%92%25K%970e%CA%A4I%D3%A6M%9C8u%F2D%FC%D3%27P%A0B%29%17%25j%94sR%A4JI%9F%5E%CA%94%F5S%D8%7F%8A%0E0%80%80%01%05%116%EF%A4%E0%21%A5L%1DA%8B%22U%CA%04%7C%B8%F1%E4%A1%98%3F%9F~%1D%3B%2AT%A9R%A9%DA%BF%AA%3F%AB%FF%AD%04%18%A0%2B%04%BE%F2%8A%2BA%05%20%00i%08%9C%16%02%0CFl%E1%06%1F%88%3C%B2%1Ep%9E%1C%97%9C%7C%A3%40%27%5D%7D%F7%DD%A7%1F%7F%FE%01%28%60%2B%04%BAb%E0%2B%B0%BC%92%A0%82%DE%29%00%81%06%27%E8%10E%19v%0C%D2%C8%24%98l%D2%89%86%F1%3D%17%DD%87%D8%9D%22b~%24%AE%F2%1F%2B%27%A6X%E0%8A-%0A%25%9A%00%04%98FAjFh%E1%86%1F%89Dr%89%8F%C7q%E8au%A6%D8w%E4~%AA%94%C8%E4%89%28%3E%C9%22%2Cp%C2b%D4%94%0C.%E0%80%04%15%5C%90%81%06%1Bp%E0g%07%80%06%DA%81%07%84%16Z%E8%07%88%26%AA%28%A2%204%EA%E8%A3%8E%82%26%E9%A4%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%9AU%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%08%03%88%1EP%00%C1%03%0C%26t%40%19%23%87%8F%A0C%8A%185r%F4%A86%A4H%B8%25%E9%9E4%89%92%EFJ%C0%2BY%1An%E9%92qL%982e%D2%C4%5C%D3%A6%E7%9C6q%9A%DE%A9%BA%A7%EB%D8u%8E.%DD%E0B%89%1CQ%CC%F2%D4%09%94%C8%91%24J%C2%8D_J%BE%9C9t%EA%D5%3Ba%FFD%FF%13%28P%A1%F2%87%12%C5%7F%94%FFQ%A4%04X%CA%80%03%9Ab%E0%29%A6h%17%C0%00%04%1C%C0%40%05%22%D4%B0D%18s%FC%91%C8%23%93Tb%9Cr%ED9%27%1D%7C%D8yR%DF%7D%F8%E9%C7_%7F%FE%05%28%20%81%06%1Ex%CA%8B%A7%28%28%00%01%06%28%20%C1%070%18%D1%05%1C~%20%82aq%ED%3D%F7a%7C%F2%898%E2%7D%26%A2%F8%9F%8A%04%B2%E8%E2%8B%A8D%89%CAN%DB%25%00%C1%06%2A%00%81%05%1B%7C%F8H%89%25%CB%7D%C8I%7C%F3%D9%87d%89%FB%9D%B8%E4%8AN%3E%09%A5%94R%FA%24%9A%00%A4%21%B0%C0%03%12TpA%06%19h%A0%C1%06%80%06%1A%28%07%84%16j%28%A1%1D%24%AA%E8%A2%8Bz%E0%E8%A3%90F%EA%01h%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%2A%EA%A8Y%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%03%03%04%18P%E0%40%83%0B%25r%3C%11%03gO%A0B%87%10%25%9A%AD%A86%ED%DA%B8%15%CDN%A4%BB7%EE%DD%BAy%E7%BE%1D%5C%B8%EF%E0%BF%13%D1%0C%20%80t%82%07%1AR%F8%B0%92%06%8F%A0D%8D%1EE%92%C4%BD%BB%F7%EF%E0%C3%A7%8B%1FO%DE%FB%F2%D1%05%9EkX%01%C4%CA%9A%3C%83%149%8A4i%12%A5%FB%F8%F3%EB%DF%CF%1F%BF%FD%FE%00%F27%C9y%A4%21%F0%C0%06%ECa%B1%C6%1E%850%02%89%7D%95D%18%A1%25%14JXI%85%17Z%22%21%86%16%5E8%A1%86%19n%D8%21%85%20~%18%E1y%02%10%A0%9E%0A%40d%D1%06%1F%874%22%09%25%17%5Eb%E3%8D8%E6%A8%E3%8E%3C%F6%E8%E3%8D8%89%D6%1C%01%06%400%81%05%17%60%90A%06%1A4%E9%E4%93PF%29%E5%94TV%F9%24hXf%A9%E5%96%5Cv%E9%E5%97%60%86%29%E6%98d%96i%E6%99Y%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CD%01%02%08%20%60%40A%84%0E%2C~P13%87O%A0B%87b%CB%8Em%A8P%21B%84%06%09%DA%1D%A8%F7%9F%DF%7F%FC%F4%E9%C3%87%CF%9E%3Dz%F2%E0%C1s%E7%8E%9D%E7u%EA%D0%A13G%8E%9C8p%E0%BCq%D3%A6%3B%9B5%E0%D3%FE%88Gs%C6%8C%992%2CC%8B%1Ep%80%81%85%115%96%80%81%C3%A7%90%A2F%8F%20Az%C4%FF%91%23G%8D%04%C8%08%23%8B%2C%A2%88%22%89%24%82%C8%82%87%D4f%5Bn%BC%05%02%08%20%C1%F9a%21q%C7%21%97%87r%CDE7%1Du%D6e%97%DD%1B%DD%B5%14%DA%00%05%24%E0%00%06%27%EC%20%85%19u%00%82%08~%91Hbc%248%EE%E7%DF%7F%0062%20%81%08%2A%88%88l%0E%E2F%C8n%82%F4Fa%85%C3%19%A7%21%87%CEy%08%A2u%D8%C1a%A2%00%03%94%26%01%07%2C%04%91%C5%1Az%10%B2%C8%23%92L2%09%25fNrc%8E%FD%FD%17%A0%8F%05%1A%98%A0%82%B4%15%09%21oK%06G%9C%93%7Bl%98Gs%D0IG%5Du%E9%89F%40%7B%15%880%83%12_%C4%F1%07%22%8EHB%09%25%95T%3A%29%9Aj%AE%19%89%8En%0A8%A0%9C%092H%DB%83%10%2A%B9%E4%85%C5e%98%1Cs%80z%08ShNX%12P%C0%01%09%28%B0%00%03%0C4%D0%40%06%BC%F6%EA%2B%06%C0%06%8B%C1%05%C4%16k%EC%05%16%24%ABl%B2%154%EBl%B3%14D%2Bm%B4%13Tkm%B5%12d%AB%EDg%DCv%EB%ED%B7%E0%86%2B%EE%B8%E4%96k%EE%B9%E8%A6%AB%EE%BAj%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%C9%01%02%08%20%60%40%01%84%0C%25j%24%D1%92%A6N%1FA%87%10%25%9A%8D%08%D1%A1C%85%0A%0D%12%14%28%D0%9F%3F~%F8%F0%D9%93%07%CF%1D%3Bu%E8%CC%91%03%E7%8D%9B6m%D6%A8I%83%C6L%192c%C2%84%F9%E2e%8B%96%2CX%AC%FET%A1%22%25%0A%94%27M%98%2CY%92%C4H%91%21A%80%FC%F8%D1c%87%8E%1C7j%94%14%3D%A0%00%02%07%16%8C0%83%11Z%A8q%87%20%894%F2H%24%92H%12I%24%90%3C%E2H%23%8C0%B2%08m%B8%11B%08o%80%00%D7%C7py%E4q%5Crr0%F7%06t%D2Qg%1D%19bl%E7%05%17%DEeq%85%15TLQ%1E%14N%A8%97%04%12%EE%11%21%84%7C%3E%F00Rh%A2%11p%C0%02%12p%B0%82%0FR%94A%C7%1F%884%12%C9%24TR%E9%60%24%12Nh%E1%85%B6e%B8%5B%20%1D%06%07%A2q%C9-%17Gsm%B0%91%E2%19%2B%8A%01%06w%5Ch%F1%DD%8C5Jq%5Ez%EC%F1H%C4%10%3F%FE%20Rh%02%08%D0_%02%A7%95p%C3%12%5E%C0%D1%C7%21RRR%C9%A3%95Pb%25%84YR%B8%88%22%89%D8fH%21%84%7C%19%A6pz%14wG%99r%9C%F9%9C%9A%D3%B1%89%5D%18%60x%F1%E2w%B4%E1%D1xc%8EK%28%91%C4%11F%EC%19%C4%90%82%1A%C9%40%05%20%C0%40%04%16j%E4A%08%23%91Pb%C9%25%CC%5EbI%A4%92%3A%18%A1%23Z%5E%9A%E9%21%9Bn%D8%1Bp%C1%ED%11%EA%88%CA%99x%EA%1A%2A%5E%97%5D%AB%5D%C4%18%5E%156F%F1%04%AD%EC%E1J%C4I%80%0E%40%40%01%07%24%A0%C0%02%0C0%D0%C0%BF%00%03%DC%2F%06%04%13%7C%C1%C1%07%5B%A0%B0%05%154%5C%01%05%10S0%C1%C4%13K%60q%04%18G%00%C1%C6%1B%3F%E0%F1%03%0E%84%EC%40%C0%FD%96%BC%C0%C9%27%2B%A0%B2%02%09%7C%E6%F2%CB0%C7%2C%F3%CC4%D7l%F3%CD8%E7%AC%F3%CE%3C%F7%ACV%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%C3%01%02%0C%20%60%00A%83%09%1AH%C8%10%22%25L%9B%3B%7F%0A%25b%E4%E8%91mG%8E%1A1R%94%08%D1%A1B%84%06%05%02%F4%C7%0F%9F%3Dy%EE%D8%A13%27%CE%9B6m%D6%A49c%86%8C%980%5E%BAh%C1r%A5%CA%94%28P%9A%FE0Y%92%C4%08%91%20%40%7C%F0%D0%81%C3%06%0D%191%5E%B8%60%A1%02%C5%89%12%25F%8C%00%01%C2C%87%0D%1Ah%90%C1%05%16T%80Qh%02%90%A6%80%03%14t%90%C2%0DH%60qF%1D%7F%20%E2%88%24%95Xr%C9%86%97XR%09%25%93H%12%C9%23%B91%B2Ho%86%00%27%08q%7D%EC%A1Gru%D0%21%87s%D1MW%9D%18%60x%C1%C5vVP%21E%14O4%B1%04%12F%14%21Dz%EB%B5%F7%5E%7C-%AC%A0B%0A%27%98%40%C2%08%21%F4%E7%1F%07%01bPQh%01%080%9A%01%098PA%07%28%DC%90%84%16h%D4%11H%22%8FPrI%26%9A%C4%99I%26%1D~%18%E2%88%25%9E%E8%5B%21%83%08%12%C8%1F-%EA%81%C7%1D1%CA%01%C7s%D2%A1qc%8E%3Bb%D1%E3%8FN%8CW%1E%11G%AA%C7%9E%7B3%C47%DF%93QN%29%02%08%1F%5C%B9A%06%5B%22HZ%98%15x%90%02%0Eg%AAq%87%20%EB%8BDR%09%26%9Al%C2%C9%26%9B%C8%B9%A1%87w%92%A8%9B%9E%BF%11%B2%22%A0%7C%08J%A8%8C%87F%A7%86%A2%D61%CA%A3%8FPD%3A%A4y%95%26%89i%0C04%C9%A9%94T%82%EA%1F%80%14%21%F8%E5%82%A9%AA%80%83%12%5B%AC%91%07%21%8CHr%89%26%9Ct%22o%27%9C%DC%AAI%26%98%D4y%27%24y%F6%16%EC%B0%C6%BDx%AC%A1%88%DA%D8%AC%8E%CF%FE%18%E4%90G%18%89%E4%A54d%FA%82%B6Pr%FBi%A8%1Dp%90%11%97%5E%12P%40i%09%28%B0%00%03%0D%94%EC%C0%C9%27%97%AC%F2%CA%0C%B4%EC%F2%02%16%C4%5C%60%05%15P%60%F3%048K%A0s%04%3CC%E0%F3%03%40%A7%5C%F2%CB%0B%14%AD%C0%D1%09%24%9D%00%02L%1F%E0%B4%D3%06Dm%40%01TWM%C0%D5%04%7C%A6%F5%D6%5Cw%ED%F5%D7%60%87-%F6%D8d%97m%F6%D9h%A7%ADV%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9s%C4%00%01%F6%82%0E%20%20%B4%5E%D2%A4%09%188%80%80%01%84%0A%1AD%A8%A0%01%84%09%961m%EE%FC1%B4%E8%D1%24K%972i%D2%B4i%93%A6L%99.Y%B2T%89%D2%24I%90%1E9b%B4%28%11%A2C%85%06%05%FA%E3%87%CF%9E%3Cw%EA%FE%CC%89%F3%A6%CD%9A4f%C8%8C%09%E3%85K%96%2BU%A4%40q%C2D%C9%11%22B~%F4%D8%91%C3%06%8D%180%B8%C0%82%0A%28%98%40%C2%08%21%7C%E0A%07%1Ch%90%01%06%16T%40%C1%04%12D%00%C1%03%0F4%D0%C0%02%0B%28%E0a%02%08%20%20P%00%03%0CP%C0%01%09%B8F%81%06%21%AC%60%C3%10Pla%86%1C%7B%10%B2%88%24%97h%D2%09%28%A2%8C2%0A%29%3E%8E%22%8A%28%A0%80%F2I%27%9Cpr%1C%26%974%27I%24%D2Q%97%08v%84l%D7%9D%1Ex%D8A%87%1Cp%98%97%C6%19e%88%01%86%17%5BdaE%7CP4%B1D%12F%0C%01%84%0F%3C%E4p%03%0D3%048%60%81%07%86%00%C2%82%0DfpA%84%13Vx%A1%03%1A2%D0%E1%87%00%90%A8%1A%02%0B%3C%40A%06%20%A4%20%C3%0FKdA%06%1Cz%0C%B2H%24%96l%F2I%28%A2%90R%CA%A8%A3%92%02%A4%28%A1%18%E9%09%92%C6%25g%89s%FE%D09%D2%08%23%D6%19B%88%20%DBy%07%9Ex%E4y%99%5E%18_t%A1%05%16VL%21%05%7D%F6%E1%A7%9F%0E8%D80C%0C%2F%B4%B0B%0Ax%22%A8%60%07%1B%3C%F8g%A0%12%400h%03%86r%E8a%A2%27%26%D0%40%04%17x%60B%0C%3D%24aE%18m%E0%11H%22%9Cn%E2I%A8%A3%9Ar%8A%29%FC%9AR%AA%90%A9~%B2%AA%92%99%60%C2%1C%25OJ%D7Hu%88%14r%2B%20Wf%B9%25%1Cn%B0%A1%06%98c%8C%B9%85%16%F0%C9%E7%C4%9Am%02%D1%03%0F%CC%D6%20%83%9D%2A%A4pB%09%23%88%00%C2%07%0C%3A%08%A1%84%14Z%08%01%A1%E0%8A%AB%00%00%02%A4%F8%DA%06%23%B4%90%83%11S%7C%A1F%1D%7F%20%F2H%25%9E%E2%7B%CA%29%A8D%8D%CA%D3%FC%96r%2A%AAF%B2%BA%E4%AB%CFE%B7%B0%22%D7e%B7%5D%1F%DF%857%B1%AFd%00%DBE%99%C5J%F1D%13%C9%06%A1%DF%0E%CD%D2p%B2%B4%04%9AP%82w%08%09.%B8%81%06%18l%3BA%CD%DF%86%DB%E1%88%A4%090%00%01%04%14%B0Z%02%0A%2C%C0%00%03%0D8%E0%00%86%98g%AE9%86%96wn%B9%86%A0%83%3B%F9%E8%1C%96%EE%E1%E0%83KPa%046c%FE%B9%E8%86%7F%98%00%88%21%1E%60%FB%01%06%E4%5E%C0%EE%BB3%CEx%89%C0%03%2F%C0%F0%C4%97%06%9Ag%C8%27%AF%FC%F2%CC7%EF%FC%F3%D0G%2F%FD%F4%D4Wo%FD%F5%7B%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1c%AD%01%FAF%0E%40yo%00%01%98%23%E7%0D0%A03%01%02z%03%140p%E0%80%01%BD%02%12%28%60%E0%80%81%5E%02%0F%24P%B80A%EF%81%0C%1CB%94%F0%A0w%01%8A%163t%B8%D0%1B%C1%07%91%25R%84%E8%D5p%C5%0B%994V%F4%8ExC%27%8F%1F4z%5B%0CB%B4%E8Q%1D%BD6%26%FEY%CA%B4%E9%8F%5E%1F%9EB%89%22eH%AF%10S%A7R%A9Z%A4%D7%08%2BV%ADZ5%D2%9B%C4%D5%AB%FF%8E%E8%A5D%2C%04%C6%F2%88%80%B2%24%28%CB%2B%AA%A8%92%CA%83%A8%A0r%CA%84%A6%94ba%29%A4%8C2%8A%28%A1%80%02%8A%27%9Et%C2%89%26%99%60r%89%25%95L%22I%24%8F8%C2%C8%22%89%1Cb%08%21%82%FC%E1%07%1Fz%DCa%07%1Dr%C0%D1%C6%1Ai%98A%86%18_p%A1%05%16UH%F1%04%13K%20a%C4%10%40%F4%A0%03%0E5%CC%10%83%0B%2C%A4%80B%09%24%8C%10%C2%07%1Dp%A0A%06%17TP%01%05%13D%00%C1%03%0E%B4%C6%C0%02%0A%24%90%00%02%08%94V%9A%01%05%E4%F9%D9g%00%2C%A1%E0%9F%05%C2%02%CB%7F%AE%E4%97%1F%2B%AB4%98J%84%A7T%98%21%87%A0%7C%22%E2%26%99%9CH%C9%24%91%40%E2%22%8C%87%14%22H%207%EA%81%87%1Ds%C4%F1%06%1Bj%9C%21d%18%5E%1C%99%24%14%FEM4Y%84%10%3F%F0%A0%C3%0D4%C8%00C%0B%2B%A4p%82%09%24%7C%E9A%07%1Bh%80%81%05%15L%20%81%9A%0F%B0%D9%C0%9B%0AD%3Bg%9D%A6%E5Y%C0%9E%A0-1%CB%2C%7F%CA%12%A8%A0%AF%B8Rh%2B%F7%AD%92%28%84%8Db%B8a%87%9Fx%C2%C9%26%24%A2%A8%22%8B%8DpZ%08%21%81%FC%C1%C7%1E%A3%F2%E8%23%90%AB%B6%8A%85%15SD%E1%C4%12I%3C%19%E5%94U%C6%F0%02%0B%2A%FCJ%82%08%20%80%B9A%06%18%94%89%A6%9Ak%3A%F0%2C%B4q%D2Y%27%9Ez%EE%D9%E7%B6%DC%2A%F8%ED%A0%E1%8E%5B%AE%83%8B%A6%FB%28%BB%21%8EX%A9%25%94%AC%F8H%23%8C%28%82%C8%8C%F9%F6%B1G%1Ew%D4%D1%A3%1B%00%93%C1%2A%17YXA%85%92%08%1BAD%10%3E%EC%80%83%0D3%C8%F0B%0B%2A%A0%00%AC%08_%86i%EC%05%C8%A6%19A%04%CE2%00%B2%02t%DAi%ED%B5%7Cj%8B2%A0%04%82%DB%B2%A1%88%2A%2Aa%A0%85%18%8A%02i%CD%94Z%8Ai%8B%2F%C6%E8%29%207%12%5D%07%1D%A6%A2z%C6%90_t%A1%C5%15%AF2%A1%C4%11%B3%D6%9A%83%0D4%C4%00%83%0B%BD%9EP%82%97%1F%0C%7B1%D9%C9.%DBq%03%CF.%00%27%DBmW%5B2h%05%9C%CD1%04%B8%E7%AE%FB%EE%CD%F6%EE%3B%9Bm%06%EF1%EB%AC%ABm%BC%EB%AEG%AB%BC%9Cr%E6%DEl%9B%C4%AB%9D%BC%B4%D3Rk%9A%01%D8%BF%8Dmg%DC%0F%80%D9%F7%99Q%26%FE%F8%E4k%F6%D8%F9%E8%A7%AF%FE%FA%EC%B7%EF%FE%FB%F0%C7%2F%FF%FC%F4%D7o%FF%FD%F8%DF%14%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%85%06%000xo%80%C3%87%F5%06%18%C0X%40a%BC%02%0AH.%40%40%EF%80%04%98%13%18%D0%5B%00%82g%08%0C%F4%22%D0%B0%A1%F4%04%BD%0DV%B0%60%B1%E2%83%5E%0AB%86%C8%86%A1%D7%03%97%DB%5C%8A%E8EAg%8E%EF%2Czg%1C%1A~%28%8D%5E%1E%95%2AY%B2tG%AF%10P%D0A%01%D2k%E4%94%F5S%86%F4%26a%C5%9D%95%22%BDK%5E%FE%B9%1A%DF%08%3C%2CX%AF%5E9%D2%CB%24%96%7BX%EB%F32%91%25%CB%FD%23%F6%F4%EB%DF%97%9F%3F%D6~%BC%F3%D5%E7%1F~%F4%0D%C8_%81%FF%DD%15%A0~%04%DAG%20%83%07B%08%60%7F%09%DA%B5%04%85%E0a%98%D7%85%08f%D8%E1%86%05%C6%E2J%2A%A9%A0%82%8Au%A6%94%A2b%29%A4%8C%22J%28%A1%80%F2%89%27%9Dp%B2I%26%98%5CbI%25%94H%12%C9%23%8D0%A2%08%22%87%14BH%20%7F%F8%B1G%1Ev%D4%21%07%1Cm%AC%91%86%19d%88%01F%17Z%60Q%85%14O0%B1D%12E%08%F1C%0F%3A%D8%40C%0C0%B8%B0B%0A%26%900B%08%1Ft%C0%81%06%19%5C%60A%05%14H%10%81g%0E4%C0%C0%02%0B%28%A0%40%02%08%1C%60%E8%01%06%18%20%19%01%8C%12%C0%D8%A3%02D%0A%00%87%EE%BD%87%9Ex%ADd%CA%CA%2A%AB%A8R%E2%89%29%B6%F8%E2%8C5%DE%A8c%8F%3F%069%A4%21G%FE%D1%C7%1E%FEx%D8AG%1Co%B0%A1%C6%19f%8Cq%A5%16WP%21%05%14M%28q%04%11A%F4%B0%03%0E6%CC%10%83%9A%29%9CP%C2%08%22%80%E0%01%07%1Bh%80%C1%9D%13%E8%19%C1%03%0E%FC%09%A8%A0%98%15%8A%E8d%8D%3A%FA%E8%00%91%0A0i%7F%96%A6%E7J%A6%ADl%DA%E9%A7%A7%84%EAb%8C4r%A2I%26%A7%FA%08%24%23%89%20b%24%92%AF%C6J%87%1Co%B4%A1%06%1Ae%E8%8Ae%AF%5C2%21%2C%11%40%90%89C%0D%CA2%7B%82%09oJ%DB%C1%06%19%60pA%05%D9J%00%01%B7%0Cx%0B.%02%E2%2A%BAh%B9%E7%A6%BBn%88%B1%9C%E7.%BC%DC%CDkb%BD%2C%DEK%AA%BE%FCZ%82%EA%BFC%0E%EC%2A%AC%B2%3E%A90%C3b%7C%C1%85%16V%F8%DA%E5%C4%15%EBp%F1%0Ci%AE%E9%2C%B4%1E%83%7C-%C9z%9E%DC%A7%9F%81%0E%CA%B2%A1.S%D6h%CC2s%28%E0y%97%8E%A7%29%A7%9E%96%C8%B3%A8%A1%7C%F2I%87%A9A%0F%DD%C8%22%01%1B%5Dp%1D%07C%B9%C6%19e4%8De%D4%11%0B%3BD%C5%C7%26%9Bu%0A%28%3C%1BB%D7%21%8F%9C%ED%9E%DC%F6%A92%A1-%93%BB6%DB%EAv%F6%D9%E9%A8%7B%F6%C0%EA%AC%B3%EE%C0%EB%B07%20%FB%EC%29%A7%0C%E8%ED%82%82%9B%19%CBg%1B%2A%BB%ED%DF%0E%1A%AE%B8%88%26%3A%99%DA%A3C%9An%BA%885%EF%BC%F3%81E%2F%FD%F4%D4Wo%FD%F5%D8g%AF%FD%F6%DCw%EF%FD%F7%E0%87%2F%FE%F8%E4%8B%14%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%9F%06%0007nB%01%02%02%E8%B5k0%C0%00%02%80%07%E0%D5%5B7n%80%03%0A%10%208%60%A0%00%81%01%03%0A%C7%3DPA%C2%03%07%0C%16%24%40%60%40r%DC%05%23%3Ch%B8P%B9A%01%BE%04%25%D8%80%A1%A2%04%08%07%9E%F9jx%82%04%88%0E%13%A8%0D%8E0%03%26%8B%14%1C%B9%0B%B6%D8S%07N%9A%25%C1%09%D6%60%84h%90%1F%2F%C9%07%F2%D0tI%92%237%D1%05%0A%19%15%AA%D3%26%3D%D9%01%FE%14Iu%AA%D4%28A%E1%91%B4b%B5%2A%15%A2%F0J%5E%B9j%D5j%11%7CX%B0%E47%0A%BF%24V%2C%FC%8E%F0%27%8B%2C%FF%05%98%DD%12%03%FA%F7HxL%24%18%CB%82%07%3A%08at%08%12%F8%A0%80%16N%98%5C%83%192h%21%2C%1A%06%D7%A0%7F%17f7%A2%82%1E%92%18bnL%F8%07%20%83.%C2b%60t-%FE%27%23%8C.%CE%98%5C%7F6%EA%28b%8C%3E%B2%08%24%7FC%1Eh%E3%2B%FB%1D%88_~IR%B8%24%92%FC%3D%D9%E4%8E%F8%BD%02%A5%92%F9%5D%E9d%96S%06%B7D%96%AEt%99%5B%7CV%BA%C2%08%7CV%CAwfvd%BA%12%26%9A%F2%99%19%5E%12e%B6%B2J%29x%922%8A%28%A2%84%02%CA%27%9Ex%D2%09%27%9Bh%82%C9%25%96TB%89%24%91%3C%D2%08%23%8A%24r%88%21%84%04%F2%87%1F%7C%E8%81%87%1Dt%C8%01G%1Bk%A4a%06%19b%80%E1%85%16XT%21%C5%13L%2C%91%84%11%FEC%FC%D0%83%0E7%D4%20C%0C%2F%B0%A0%C2%09%25%8C%20B%08%1Ft%C0%81%06%19%90V%01%05%12D%00%C1e%0Dd%A6%80%02%9B%29%B6%18c%05T%EB%18%60%8FA%06%19%5E%DC%E2%05%40%9B%F4%AD%C7%9E%2A%A9%A0%82%CA%29%A6%E4%D9%E7%9F%82%16%9A%C9%25%95L%C2%A8%A3%8C%24%82H%21%84%08r%E9%1Ey%DC%D1%29%1Cn%84%3Aj%18_p%91%85%15SH%01E%13J%1CA%04%10%B3%E2P%C3%0C%B8%EA%8A%82%09%24%88%00B%B0%C3bp%81%05%15L%90%EC%B2%0E4%BB%C0%02%D0J%CBXc%D6b%9B%AD%B6%DDr%FBm%9C%E1%B22n%B9%A7%A0%5B%8A%9E%EB%02%EA%9D%A1%89%CA%0B%89%A3%8BH%8A%AF%A5%7D%F0%CB%A9%A7%A0%A2a%C6%18ax%B1%05%16%08G%C1%EA%ABC%40%AC%83%C42%C0%E0%C2%0A%29%F0%3AB%08%1Bw%B0%81%06%18X%60%01%05%22%2B%CB%AC%C9%29%2Bv%00%B5%D5b%AB%ED%DD%82%C5%0C%00%FE%9D%F3%D1g%F3%2A%AB%90%7B%AE%CE%3C%FB%F9%C9%A0%85b%12t%24%908%C2H%D1%87%14%22H%20%98jZG%A7o%80zF%19%A5v%A1%C5%15%AA.%BC%04%12E%08%F1%03%0F%B4%D2%D0%F5%D7a%F7J%F6%07%1Cl%90A%DA%21%27%ABl%C9%26%A3%1C%F7%DC%2C%D7m%F7%DD1%7B%CBw%CD%E3%0A%AE%F3%CE%3D%0BJ%E8%BB%96%2C%DA%A8%E3%8A%20rH%BE%80%60%DAo%1Ds%C4%E1%06%1B%A2%92A%B0%E7VP%B1%2A%13J%90%1E%84%0F%3B%E4p%83%EA%2F%B4%B0%C2%C5%19%03%EB%81%D9%C5%AE%DD%F6%B2%0F4%D0%C0%C9%28G%3B-%CB.%7B%D9%B6%82%27%00%00%14%00%02%08L%E0%03%16%C8%40%06%3A%E0%81%10%C4%9D%FE%F4%C7%80%0Af%86%7F%BA%7BV%026%E8%3F%B9%CDme%06%60%99%067%E8A%DE%85%D0Z%D7%0A%0C%DE%F2%D6-%C2%B8%F0%850%0C%8F%0CgH%C3%1A%DA%F0%868%CC%A1%0Ew%C8%C3%1E%FA%F0%87%0D%40%0C%A2%10%87H%C4%22%1Aq%25%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%ACY%89%01%02%9C%AD%18%40%40Z%B5%00%E0%AE%5D%18%A0%80%01%02%04%06%08p%9Bv%AE%C2%00%0B%228Pp%E0%EE%00%BDr%FD%16%0CP%21%C5%08%0E%15%200Hp%20%AFb%84%1D%964%09RC%05%88%0C%13%1E%28%18p%D9%A0%860x%DA%88%B1%B2%A4G%8C%13%1E%1A%24.%0D%21%8D%25H%88%FC%D0Q%F3EJ%11%12%05J%13%2C%E0%25%14%29P%9A%285%2A%C4G%0E%94%08%C2%07%06x%02%AA%D5%AAT%A5Du%C2%24i%8F%8C%E8%03k%FEX%82%05%EBU%2BV%AAN%91%CAD%854%F8%0E%85d%C9%8AE%FE%95%ABV%A8%E64%00%0F%E0A%1EX%F2%C9G_y%84t%C0%9F%40J%CC2K%80%F3%C5rI%0E%07%0E%94%C4%82%0C%8A%22%C5l%FC%25%C1%20%2Bi%1C%10aAJ0%08%C9%87%06%85%18%E0%88%24%12%B4%84%88%29%AA%18%60%2C%8F%B48%D0%8A%02%C6%28%23%00%26%CEg%A3%8C%26%C6%02%E3%8D%00%AC%E8%23%2C%8E%00%29%24%7DE%DE%B8%84%8F%F4%ED%D8%E2%92C%3A%99%22%94%E4%25%29%23%95D%1A9d%96J%0E%08K%23F%D6%F7%0A%98J%8AI%E6%95f%86%F9%8A%7Dg%3E%B9%A6%2B%AE0b%E4%9Bq%CE%09g%2Br%2Ay%27%9EF%DE%D7%0A%9Fz%FE%D9%CA%22%7D%0AJ%E8%8DJ%08%CA%CA%A1%3C%FE%C9%CA%A2%40%26z%1E%2B%8AD%EA%E8%2A%95%DE%88%C4%A3%AC%AC%92%08%90%9Bv%EA%29%A8%8F%AE%A2%CA%A7%9A%AEb%AA%2A%88%80%AA%AA%2A%FE%A9%B4%9A%AA%2A%B0%CA%2A%23%12%A6%A6%12%2B%90G%D0%9A%0A%2A%87%00i%84%AE%A8%00%2B%EC%AF%A8%9Cb%C8%B1%C5%2A%0Bd%11%BF%9EbJ%21%CF6k%0A%29%9Dp%B2%C9%26%9Adr%89%25%95P2%89%24%91%3C%E2H%23%8B%24%82%C8%21%86%10%22%08%20%7F%F4%B1G%1Ew%D8A%87%1Cp%B4%C1%86%1Ah%981F%18_p%A1%05%16VL%11%85%13L%2C%91%84%11C%00%E1%C3%0E9%DCP%83%0C1%BC%C0%82%0A%28%98P%C2%08%22%80%F0A%07%1Ch%90%01%06%17TP%C1%04%12D%00%C1%03%0E8%D0%C0%02%0A%24%90%00%02%07%14V%00%5Ez%F1%F5%16DE%24kJ%29%A5%902%8A%28%A1%80%F2%89%27%D9n%92%09%26%E0RB.%24%8E0%92.%22%ED%0A%F2%87%1F%7C%CCk%2F%BEn%EC%7BF%19%FFz%C1E%16VP%21%05%14O0%91%C4%11D8%0C%F1%0D4%C8%00%83%0B%17g%BCq%08%20x%00%B2%FE%C8%24W%40%01%CA%2A%B3%DC%00%030%2B%10%B3%CD7%E7%95%B3%CE%0F%15q%8A%B4%40%93Bt%D1%9F%24%DD%ED%B7%95%8C%5B.%BA%EA%1ER%88%20%81%F8%21%2F%BDu%CC%01%C7%1Bm%AC%91%86%19d%00%DC%85%16WTa0%C2J%1CQ%84%10%3F%F0%A0%03%0E5%C4%FDB%0B%2B%A4pB%09%24t%AC7%07%1Bh%40%B2%05%7F%A7%1C%B8%CB%2F%1B~%B8%01%D4%27%9E%D7%5E%D8c%88%90%E3%3F%07%3D4%E5Hk%AB%09%D3%E1%92k.%23%8A%24%E29%21%81%5C%CD%87%1Exl%0DG%D7i%A0%016%18%5DlA%B6%D9O4%A10%C3n%8BX%DC%E6%C6%82%14d%8C%04%23%08%C1%07%3C%80%BC%E4a%C0%02~s%DE%CAZ68%98%CD%8Cf53%40%016%A88%EC%F1%A5%21D%80%9C%D0D%21%0A%A3UN%7C%DE%0A%D7%24%CAu%AE%A9%19%E2s%A1%CB%1A%E9%E6%10%07%D4%A9%8Eu%00%13X%ECf%C7%04%25%20%A1%08%84A%C8%DD%EEj0%83%8A%01Ox%1B%EB%D8%02%917%B2%0B0%0Fp%13t%19%E1%2Cx%C1%0Cn%F0f%87Y%DC%CE%16B%80%07%B0%ACe%60%A4%60%03%C68F%06%98%D1%8C%0BHc%1A%A5g8%99%B9%11%01p%84c%CD%E6H%BD%3A%5E%91%83x%21%C0%1C%0BS%BD%3B%E6%11gY%CC%A2%07%B3%F7%96B%1A%B2%2F%40J%A4%22%17%C9%C8F%3A%F2%91%90%8C%A4%24%27I%C9JZ%F2%92%98%CC%A4%267%C9%C9N%C6%24%20%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%2B%C4%00%5E%3F%0A%18%1B%A0l%D8%8C%04%0E%14%180%40%80%D9%B3%15%0FP%90%C0%00%C1Z%B2p%27%2AX%21%A3%84%86%08u%0B%10%18%006%EF%C3%03A%C6P%19%22%83D%06%BA%07%06%18~8%60%C9%A0%40t%C8P%11%12%83%84%06%07%92%277%1C%22%89S%25F%81%E6%90%91%12D%C5%02%D1%0DO%28JeJ%94iF%7F%E4x9%21%00%F6%C2%0C%7DZ%B5Z%95%AA%94mJ%89%AC%28%F0%AD0%01%1AU%AF%5C%B5b%B5%0AU%29Py40O%28%C0J%29X%AF%A2%FE%0Bg%A5%2AR%8D%ED%09%81h%82%05%3E%BC%F4V%A0%B2%F4Fo%B0%04%22%F6%EC%DD%BBJ%15%E75%FD%82%12%E8%F1J%2C%F8%85%F7J%2B%81%5C%F0_A%06%90%A1J%2C%10%E6%17%DD%23%2B%2CHP%00Q%88B%20~%EDu%E2%84%85%04%D5%60%09%84%1B%B6w%8A%18%04%80%28P%07%84%90%18%21%7B%AD%E0%E1%80%8A%008%80%C7%2B%B2%90X%60%21%1E%D0%28P%12%B2%E4%A8%23%2C%97%E0%E0%E3%40H%08I%A2%28Q%14v%24%00H%E8%B8%0A%1A%07%3CIP%12%2F%3AbeAQn%A8%E5%96%03%25%C1%E1%97%60%02%20f~%8D%94%F9%A3%84i%AA%29%A6%81m%96%89%84~q%82%99Dt%D21%A2%A6%99%AE%BC%A7%A7%9B%7D%0A%F7%A7%9C%EF%B5%B2%C8%9EH%087%DD%A1n%8E%C7%0A%A3e%26%E1%A8%22%88%B2b%E9%2A%89T%BA%CA%A6%99%AA%89%04u%AB%A8%D2%A9%9C%A1%AA%A2%0A%22%88%86%9AJ%2A%A8z%AA%CA%AA%FE%A8%B4%2A%27%AC%A8%1C%B2%E7%11%A9%A0%82%CA%29%86%DC%AA%EB%29%A6%F4%AA%E6%11%BB%9AbJ%21%7B%1A%01%AC%29%A5%20%AB%A6%11%C6%96B%0A%21%7B%16%C1%2C%29%A4%0CR%AD%B4%A4%8C%22%C8%B6%DD%8A%F2%AD%9AD%84%1BJ%20%7B%0E1%CA%28%A1%9C%BB%A7%10%A2%88%12%0A%28%80%EC%19D%BB%A0%7C%F2%87%BD%F9~%E2%89%1F%7B%02%91%AF%27%9D%00%AC%26%10%FEz%C2%09%1F%01%7BB%F0%26%0C%AB%F9C%27%9Dp%B2%C9%1E%7B%F6%C0%89%C5%9A%E8%91%F1%26%9Bh%82I%1E%1Fk%92%C9%25x%EC%C9%83%C9%97Xr%C7%9E%3B%9ClI%25%920%B2H%22%88%1CbH%21%84%08%12%C8%1F~%F0%B1%87%1Ex%D8Q%C7%1Cr%C0%E1F%1Bk%A8%91%86%19d%8C%11%06%18%5El%A1%05%16VP%21%05%14N0%B1D%12G%14%21D%10%3F%F0%A0%03%0E7%D40C%0C0%BC%D0%C2%0A%29%9C%60B%09%24%8C%10%02%08%1Et%C0%81%FE%06%19%60%60A%05%15L%00A%03%0A%24p%80%01%83%B55%D2%0E-WB%C9%24%92%40%F2H%236%E3%7C%08%CF%3E%03%DD%C7%1Ey%DCQ%07%1DI%C3%D1%06%1BN%9F%11u%18%5ET%9D%C5%15UL%21%C5%13M%2C%A1%04%12E%0C%11%84%0Ff%A3M%C3%DA%2F%B8%C0%02%DC%28%CCM%82%08%20%7C%90%F7%06%7C%FB%1Dx%04%0F4%B0%80%E1%82%B5%E5%E4G%3A%CC%FCx%24%91%3C%E2%88%CD%8A%E4%8C%F9%CFAs%EE9%E8q%BC1%BA%D3f%94%21%F5%17%5Dh%B1z%EB%AF%7B%3D%BB%11%B6%E3%AEC%0Ei%F3%EE%BB%0A%29%04_%C2%08%22%08%C1%07%F4%B6%B7%BE%5D%A0%02%14%98%80%04%20%E0%00%06%28%00%01%06%88%9E%5BB%A2%03%C7ANr%8Eh%C4%CD%BC%D73%F0%09%ADs%9F%93C%1CDG%3A4%40m%7D%ED%C3%9A%15%A6%10%85%27x%0DlF%18%9B%FD%F0%A76%B6%ED%2Fns%03%A0%00%F3%C6%01%E4a%E0%02%B5%7FK%E0%02%1F%C0%80%E7A0q%13%FCH%0E%28%21%89HH%AE%11%1A%B4%DC%F7%80%264%3D%8CO%84%24%5C%C3%D3N%E7%85%14Z%A1u-%8C%1D%D8jw%3B%B3%D1pm0%B8%A1%DC%FEG%3C%E3%E9%0Dy%7D%0B%E2%04%26%10%01%066%80%01%09%40%C0%E1%06%E3%96%B7p%84%00%0C%08d%20%17%40%C8B%2A%E0%90%88L%80%22%15%89%80F%3A%F2%00%90%8C%A4%01%26I%C9%08%16%E0%92%98%24%80%267%998%B6%0C%C0%92%98%14%0C%27%3B%E9I%B6%8C%E5%94%7D%2C%CB%F4%F6%C4%CAV%BA%F2%95%B0%8C%A5%2CgI%CBZ%DA%F2%96%B8%CC%A5.w%C9%CB%5E%FA%F2%97%C0%E4I%40%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%95g%80%00UO%0E%18%20%00kV%91%01%10%280%40%80%EB%D5%AF%1F%1Dt%B8%E0%20A%01%B3%5E%D1j%BC%10%E4%07%8B%0E%12%16%1C%20%20%40%80%5C%8D%14%BA%C8%F9%B2%C4%06%09%0C%0F%DC%FA%FD%7B%D1A%99I%8A%F6%A4%B1%12%C4%C5%07%0A%08%E22%9EX%00%0B%A7P%9A%20%0D%A2%13%86%09%0E%0F%066W%0C%D0%A4%93%AAS%A3%3AUR%C4gM%93%0A%AA%2B%C6%90%D4%8A%D5%2AT%A5%40G%F2%E3c%40%EE%89%1B%02%B5Z%EE%3B%95%A9Q%9B%C8%2C8.qA%1BU%CB%7B77%D5g%03%F5%88%04%B6%FE%90%CA%CE%7C%95%2AH3%BEGD%D2%C9%15y%ED%9A%8E%A8%87x%82%91%2B%F7%E4Y%91%2A%93z~C%0C%7C%B4%82_v%AC%A4%A2%C7%04%FE5%94%C0%19%A8%BC%C7%CA%83%88%84%90%20C%02X1%CA%80%CC%B1BI%0E%132%F4C%26%18j%07J%16%8Bu%88%10%09%86%DC%97%1F%2B%A7%C01%9D%89%08Ip%87%80%2B%AE%F2%C7%050%22d%80%18%A7%84%F8%20%23%2B%E4xP%00N%7C%F2%9Ev%9B0%21%E4A3L%A2%22%81%FA%81A%C0%92%05q%A0%1C%86%0F%A6R%87%03T%12%E4%80%1D%AB%F8%B8%8A%20%1DtY%D0%11%3Ejh%83%99%06%19q%A4%27Nh%C6%A6%40Edh%0A%19%FD%CDY%90%9B%0F%B2%B2%88%9E%08%15%D1%E7%2A%8A%00z%90%11%AB%24%BAJ%22%86%B6i%9E%2A%AA0%DA%28AE%3C%9A%0A%22%93R%AAJ%2A%A9%A0%82i%A6tr%8A%8A%A7%A0%D29%2A%2A%A7%18R%2A%00E%A0z%8A%29%FE%AA%96J%C4%AB%A6%94R%C8%AAD%D4ZJ%29%84%AC%3A%C4%AE%A4%902%08%AE%A5%902%CA%28%82%F8j%AC%28%A2%24%5B%AA%10%A3%88%12J%28%81%AC%2A%84%B4%A1%80%02%C8%AAAd%0B%CA%27%7Fp%FB%C9%B8%9E%F8%21%AE%27%9Et%D2%C7%AA%40%A4%DB%09%27%7C%B0%FB%EE%26%9B%EC%B1%EA%0F%9Cl%A2%89%26z%AC%EA%83%BE%99%60%92%C7%AA%3D%04%7C%89%25w%10%7C%B0%25%95%D8%B1%2A%0F%0CSBI%1D%AB%EEP%09%25%93HB%C7%AA%3AL%92q%24s%AC%9A%83%24%91%40%F2%88%1C%AB%E2%10%C9%23%8F8%02%C7%AA7%B4%DC%08%23n%ACjC%233%2F%D2%C6%AA50%B2%88%22%89%AC%B1%2A%0D%40%23r%88%1A%AB%CE%60%F4%21%85%A4%B1%AA%0CL%13B%88%19%AB%C6P%08%21%82%08R%C6%AA0%0C%22H%20%80%90%B1%EA%0B%60%FF%E1%87%18%AB%BA%60%B6%1F%7C%80%B1j%0Bl%EF%A1%87%17%AB%B2%B0%C7%1Ey%E0%D1%C5%FE%AA%2A%E4%91%C7%1Dv%CC%D1F%1Bl%AC%91%06%1Af%94A%06%19c%84%01%86%17%5El%A1E%16X%5Ca%05%15RD%01%85%13M0%B1%84%12H%1CQ%C4%10A%00%F1%83%0F%3C%EC%90%03%0E6%D4%40%C3%0C1%C0%00%83%0B-%B0%B0%82%0A%28%A0p%82%09%24%8C0%82%08%20%7C%E0%01%07%1A%60P%81%04%0F%2C%80%C0%5E%5D%C9y%92%0A%80%D7A%C7%1Cr%C4%01%C7%1Bm%ACa8%E2f0%EE%B8%17%5Dp%219%16VT%81%B9%14P%3C%D1%C4%12K%24%81D%11D%90%0E%04%EA%3B%E8%80%C3%0D6%BC.%03%0C%2F%D0n%7B%0A%29%D0%9D%09J%F0%BB%10%80%C0%03%1D%D8%80%06.%40%81%084%40yo%B9%CAYR%92%02%E9Q%CFzopC%F6%D4%90%863t%8F%0Cbx%5C%F8%B4%A0%85%CA%5DN%0A%E8S%9F%E7%92p%04%23%10A%08B%A8%0B%0Fx%60%3F%FC%D5%60%062%88%DD%0Bjw%BB%00%EE%AE%04%F1%BD%03%9E%F0%3A%C0%81%0Dd%80%81%11p%80%F2%C82%80%09%A6%04%05t%A8%DE%F5%06%B7%06%0E%22nqb%08%C3%17%C0GB%13Va%0A%29%EC%DC%E7%90%60%84%D1%09%C1t%A8%D3%C1%EAn%E0%3A%1C%F2%CF%05%B6S%81%0F%07%18D%03%0E%B1%88%19%C0%00%12%1F%C0%00%04%18%E0-%5DY%C9%09%E4p%3D%0Dj%EFp%89%03%E1%F7%BA%20%B9%2CX%EE%8B%99%7B%82%13%3C%07%3A%D1%0D%21%86%F3%EBA%FDX%D7%3A%1C%C6%A0%7F-X%C1%0A%E6%08%C4%DF%89%20%04C%24%A2%02%8Fh%01%0A%20%8F%01%098%00%20%9DW%12%01%20%E0%96%B8%5C%DE%01v%C9%CB%03%18%E0%97%C0%FCe%01%86I%CCb%12%E0%98%C8L%E6V%96%C9Lf%F6%A5%2F%C9Tf3%B9%D2%17%09%D2rU%D8%CC%A66%B7%C9%CDnz%F3%9B%E0%0C%A78%C7I%CEr%9A%F3%9C%E8L%A7%3A%D7%C9%CE%A1%04%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5Dj1%80S%A6%2F%05%14%280%20%00T%96%02%1CDP%40%D5%EAU%94%02%3C%B8%F8%40%81%C1%01%02%02%9E~%25Y%E2%0A%14%1C%24.8%40%405%EDZ%91%27%E4%F8Yc%C5G%0A%0D%10%12%14%10p7%24%869%9A%22%09%82%B3%85%88%0B%0F%12%0Ex-%DCq%81%1AR%A4%3AQ2D%07%8C%92%19%18%08P%F6X%E0%0B%A9U%A8Hy%AA%94%28O%99%1E%0CF%7B%FC%A1%A9%15%2B%D4%A5%40%5Db%04%C7%84%EC%8E1%22%B5%B2%7D%3BU%A9P%93%A2%88%FE%ADqC%A0%E1%C3o%ABB5%AAMl%E6%19%21%C4Q%05%9D%D5%EDU%A9%02%FEu%C0%9E%B1%80%96Q%D1%BD%7F%8FT%83%3C%C6%00M%3A%A9%9F%BFJ%13%12%F7%18a%40R%BF%AA%7F%FFQd%18%80%9FE%1A%FC%E1%DF%81%A8%D1%E1%C0%80%15-%B0%06%2A%07%AA%22a%2A%82x%C0%20E%04d%11%8A%7F%12N%08%C9%0C%17RTD%26%1DN%98J%2A%98%18%11%E2D%26%20R%E2%89%27%862%86%80%2BBtA%1E%A8%A8%92%8A%89%A8%98r%87%045B%94%00%19%A4%C0%08%23%2A%A8%14%F2A%90%0F%09%20%C5%27G%22%89d%2470%F9%10%0F%93H%29%E5%29%A7pb%05aV24B%20Hri%E6%29%A2%B0%A1%40%98%0CE0%87%29eri%8A%29%A5%ECQ%01%9B%0B%15%E0E%28g%CE9%E7%21%28%E0%A9P%00Jd%22%A7%9FtR%92%84%A0%0A%C1%D0%08%A2t%96RJ%27Z%0C%C0%28B%1A%EC%E1%A7%A4%9C%8A%02G%03%97%1E%D4%00%1C%A4pZ%0Af%A4%8C%B2%C7%06%A1%22%14%84%A9%FE%98%8D2%0A%232%B4%9A%10%10%A8%A6%3A%0A%25HLf%ABA%3F%C8%2Ak%27%5E%D0%F8%2BB%3F%88%12J%28%A2%08r%ECB%3F%84%02%CA%B4%80%3C%AB%D0%0F%D3~%F2%C9%1F%D6%26%E4%83%B6%9Ex%E2G%B7%08%F9%10n%27%9D%8CK%AEA%3Dp%E2%EE%26%7C%ACk%10%0F%9B%D4%AB%C9%1E%F2%16%C4%83%26%9Ad%92%89%1E%F9%12%B4C%26%98%5Cr%09%1E%01%0F%A4%C3%25%96XR%C9%1D%09%0B%A4C%25%95PBI%1D%11%03%90%03%25%93L%22%09%1D%19%E3%20%89%24%91D2G%C67D%02%C9%23%8F%C8%91%B1%0D%8F8%E2H%23pd%5CC%23%8D0%B2%88%1B%19%D3%B0%C8%22%8A%24%D2F%CF%89%24%82%08%22kd%3C%C3%21L%1B%92F%C62%14R%08%21%84%A0%91q%0C%83%0C%22%88%20fd%0CC%20%81%00%F2%07%19%19%BF%F0%C7%1F~%F8%21F%C6.%F8%C1%07%1F%7B%80%91q%0B%7B%E8%A1G%1E%5Ed%BCB%FE%1Ex%DCq%07%17%19%AB%60G%1D%84k%91q%0At%D01%87%1CXd%8C%82%1Cr%C4%01%87%15%19%9F%00%C7%1Bo%B8QE%C6%25%B4%D1%06%1BlH%911%09k%AC%A1F%1AQd%3CB%1Ai%9Ca%86%13%19%8B%60F%19d%90%B1D%C6%21%901%86%18a%2C%1A1%08a%80%F1%85%17Gd%FC%81%17%5Et%C1E%11%19%7B%C0%C5%16Zh%21D%C6%1Cd%81%C5%15W%FC%40%BD%15VTAE%0F%19k0%85%14%E4%EF%90q%06Q%40%F1%C4%139d%8C%81%13M4%C1%C4%12F%14Q%C4%10C%08%11D%10%3F%F4%EFC%0F%3C%E0%C1%0Ev%A0%83%1C%E4%00%077%B0A%0Dh%C0%C0%19%C8%20%06%10%84%C1%0B%5E%E0%02%17%B4%80%05%2CX%81%0AT%90%02%14x%F0%04%26%08a%09H0%82%12%8A%20%04%1F%E8%00%070P%81%084%00%01%06%40%8BZb%82%81%25%D8P%09I%40%C2%11%EAW%04%22%E4O%7F%FE%40%F8%C1%FF%00%28%40%02%1E%F0%06%09%B4A%03g%E0%40%09R%D0%82%17%5C%81%069%D8A%14%9C%E0%8A%22%24%E1%09A%E0%01%0Eh%C0%02%13p%80%02b%98%16_%BD%E4%02I%C8%E1%0E%7B%F8%C3%20%00%21%88%3F%00%E0%00uP%40%1C%20P%81%0Bd%A2%0C%1E%18%03%09B%11%83R%A4%A2%15%B1h%82%12%8C%90%84%238a%08%40%90B%0Ed%C0%02%12%10%E3Y%CA8%13%0B%F0%D0%87%40%F4%DF%FF%04X%40%03%DE%11%8F5p%60%04%9DH%C1%28n0%05%A8%FC%60%21%0F%89%C8D%86%60%91%1F%F0%80%07T%B8%81GFR%01t%29%A3%19%5BR%816%BEq%88%014b%0E%90%98%C0%1A%2C%90%06%7B%7C%A0%13%2B%D8%82%28j0%95W%04%A1%21%5B%29%02E%C22%96%B3%E4%00%076%A0%01%16Fr%010%AC%CA%0C_%12%00%02%98%F3%9C%E8L%27%01%06%C0%CEv%BA%F3%9D%F0%7C%A7%00%E6I%CFz%DA%93%9E%E8%27t%E7%3C%9D%B2%CB%8C%F9%F3%9F%00%0D%A8%40%07J%D0%82%1A%F4%A0%08M%A8B%17%CA%D0%86%3A%F4%A1%10%8D%A8D%A1%12%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05%28%29%94%85%01R%99A%24u%8A%24h%8D%0B%01O%5B%9EH%94%8A%D4TAo%B2%E8%80%905e%06%3E%ACX%A1%1A%C5%89%EA%1B-AVP%18P%96%24%038%AB%5C%B5Z%B5v%13%A4%40o%E3j%80P%A0.H%02%5EJ%B9Z%BC%B7o%A2%3Fn%B2%C4%DD%00%21A%81%00%869%FE%D0%B4Xo%2BV%AANy%22%B3%C0%82%15%C9%2B%28%5B%1E%809%F3%C5%17%90Z%B5%F2%2C%5B%AD%1D%0A%04%3D%E8P%A1%BA%C0%00%01%AD%5DK%D4%C0G%B6q%E3%AB%06%7D8H%00C%EF%DF%C1%85%3B%5C%B0%26%D5%F1%E3%8CV%2C%2C%C0%605p%E9%0E%0B%FE%7C%21%95%B6%7CyH2%1E%12%F0%1D%20%3Ax%84%3E0%ADZ%C5j%3E%7DV%9B%98%B8o%18%E0%FB%7B%8408b%DF%80%AB%8CB%86%01%16%ED%F7%9F%06~%A8%E2%E0%83%0E%A2B%87%03%FFu%F4%C0%1B%A6%A4%A2%E1%86%1A%06%E2A%85%1C%11p%05%28%1A%A2%82%0A%87%8F%D0%00%E2F%01%2C%91%89%89%26%9E%02%E3%25F%AC%B8%91%0B%8C%9C%A2%E3%8E%3A%82%22%06%826b%94%C1%1E%A5%98b%E4%91%A6%90%22%07%85A%5E%A4%80%19%A2%94%22%E5%94R%FA%C1A%93%17%0D%40%C5%26%A4t%E9e%97%8C%C4%80%E5E%40H2%CA%99h%8EB%CA%24B%8Ci%D1%08%81%88%22%E7%9Crn%E2%05%90nJT%81%1C%A0%84%E2%E7%9F%A1%7C%22G%04yN%84%40%17%9B%80%A2%E8%A2%8A%FA%D1A%A1%12%09%B0%04%25%9FTji%A5%89%CC%00%A9D5%24%D2%C9%A7%9E%84%1A%AA%24P%60%B5%E9C%1F%D8%C1%C9%AA%AC%AE%8A%09%19%FE%09%9C%FA%D0%03hd%B2%C9%AD%B8n%A2%89%1C%13%C8%1A%DE%14%94h%22l%26%C4%0A%CB%07%09%BE%F2%07%C4%22%97%5C%82%89%B3%CF%5E%82%08%10%C96%94%82%1F%96d%ABm%B6%8EDAW%B5%0AY%C0%06%25%95%94K%C9%B9%94LB%1A%B8%0A-%00F%24%93%C4%2B%EF%24%92%B4q%01%BB%0B%D5%10%C9%BE%91H%C2%2F%1F%2A%E0%CB%10%0D%8F%14l%B0%20%3C%28%28pA34%E2%C8%C3%89%3CQ%D8%C2%0C%C9%C0%C8%C5%8C%C0A%B1C1%28%E2%B1%22ml%DCP%0C%88%94%8C%08%1B%223%04%83%21%85%18b%88%1A%29%2F%F4%02%214%13%82F%CC%0A%B9%20%C8%CE%82%98%81sB-%00%22%F4%1Fd%FC%8C%10%0B~%24%ED%C7%18F%1F%B4%02%1F%7BD%1DF%D3%06%A9%90%C7%D5yxAuA%29%D8%E1%F5%1D%5DlM%10%0At%94M%87%16b%0Ft%82%1Cl%CB%81E%DA%02%99%00%C7%DCpX%017%00%25%B4%A1w%FE%1BU%DCM%C2%1A%80%AF%21%C5%DD%23%A4ax%1AQ%DC-%82%19e%98a%86%13w%870%C6%18b%88%B1%C4%DD%20%80%A1%F9%17I%DC%FD%81%17%5Et%D1%C5%11w%7B%B0%85%16%A8%13qw%07X%5C%81%05%16m%C2%BD%81%15UTa%C5%0Fwk%20%C5%EER%F4pw%06P%04%0F%85%0Ewc%D0D%13L4%81C%F1K%28%A1%C4%125%DC%7D%C1%11%D4%1F%A1%29%DC%16%10%A1%3D%11b%C2MA%10%E0%07%F1%C2%DD%13%FC%E0%C3%F9-%DC-%01%0F%3B%B4%AF%1D%DC%12%E4%80C%0E9%A4pw%046%E4o%C3%09wC0%C3%FF30%C1%DD%1E%10%83%02%C6%60%04ws%80%0B%5C%F0%02%17%84%E0n%0D%60%81%04Y%00%02%08%AA%E0%82%29%F8%10%DC%18%80%82%0E%9E%E0Q%1B%2C%81%09LP%82%0D%DCm%01%24%18%81%0AE%C0B%16%86%E0%85%2F%14A%0C%5B%28%C3%19%CE%D0%854%8C%21%0CuH%C3%1A%86%00%04%F5%1F%E8%00%070P%81%084%20%01%07%20%00p%14%16%13%05%C8%B0%87-%84%A1%0BC%20%82%11D%91%8AP%CC%21%14m%B8%C5%17%02%D1%03%1C%C8%80%05%24pD%03%10%805L%84%89%02%40%C0%C6%1F%FE%90%8D%40%04%E2%07%E0%E8E8%CE%11%8Ex%CC%23%08%DE%18G6%DE%B1%8F%1F%08%E4%07%3C%D0%81%0D%10%D1%88%080%E3%12s%92%80Az%C0%91%81%F4%80%24%1F9IAF%B2%92%8E%AC%24%26%059IIv%A0%93%93%EC%80%289%B0%01%0D%5C%60%02%10%60%00%02%7C%B3H%9C%24%60%94B%14%A5%2Cg%09KZ%8A%92%90%1C%C8%E5%2C9%60KX%E6%92%97%B5%24%25%295%20F%09%3C%60%01%ABD%A3N%FA%23%80f%3A%F3%99%D0%8C%A64%A7I%CDj%3E%F37KL%E3%DD%B6%C9%CDnz%F3%9B%E0%0C%A78%C7I%CEr%9A%F3%9C%E8L%A7%3A%D7%C9%CEv%BA%F3%9D%C2%09%08%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05X%19%E5%07%03R%99E8%C1%9A%CA%AAM%82%A7-O0z%C5%F5%D5TX%A4%AC%04%C0%8A2%03%9FV%AE%5Cu%5D%FBJ%D2%0A%B2%24%19%BCI%856%AD%5D%B5k%5B%E1y%00%F7%23%01.%A3Z%09%1E%9C%D6%14%AB%BBi%5B%8D%922%B6%AFF%1F%97XIf5%B8U%2A9%0FF8r%85v%F0%AAT%89H8%BE%E8%A2%D1%AAU%93%27%AB%DAc%81%A0%13R%83Y%A9%3A5JS%18%04%A3%25f%C8%93J%95%AA%D3%C0U%11%02q%F0%81%1D%D4%9FK%85%CA%E4%A8%0E%8B%DC%0E%17%A4%29%95%AA%BA%EF%EB%8CT%2Cl1i6%29O%95%14%FE%E99%F3%E3%2At%84%04%B6%7CB%C5%BE%BA%7BG1%1C%0E%E8%02J%14%27I%85%E8%84YBCB%E3%F3%03%ED%40%89%29%A7%14%C8%DE%29%A8%60%B2%C4%7F%0EQ%60G%26%8F%04%F2%86%16E%C0%F0%01%04%03%00%08%40%0B%89%94%E2%A1%29%04%16%F8%89%18%06T%E4%C2%1E%7C%A4A%85%0F%2Ah%00A%02%04%40%87A%1E%A3%90B%8A%87%1F%92%22%87%03%18%0D%B0C%18O%E0P%C2%05%0E%20P%C0%00%0C%3E%E5%40%1A%9F%8C%E2d%8D6%92%E2G%07%1C5%40%C3%0C%22T%C0%C0%01%04%08%10%40%92E%11%20%C5%25%A1%84%22%CA%99%A28%B9%88%0C%209%90%81%04%0B%180%80%97O%05%40%04%24%9F%7C%02%CA%9Ee%86%12%89%10%23%05%90%40%02G%D2y%94%0A%83x%A2%A8%27y%E6%89I%17%25%96%14%C0%9C_%1Ae%81%1C%9Bp%A2i%27%9Cz%B2%C9%1A%0D%A8T%29Q%09ta%89%26%9Al%A2j%A6%9C%D8%A1%81%86%FE%1D%0D%B0%84%23%97%60%92%C9%AD%99%A0%3AH%0B%B0v%84%03%21%95Tb%C9%B0%97%D4%8A%08%0F%BDr%D4%C1%1C%92L2%09%25%D0%0A%FB%88%15%05%24%AB%91%04d%3C%12%C9%B6%92t%3B%89%24g%F0e-F%07%3C%81%88%23%8E%3C%A2.%24%90D%22%C7%AB%E3%5E%14%40%0F%81%2C%C2%08%23%8D%E4%8B%EE%1Eo%C5%7B%91%0Au%20%82H%22%8A%2Cb0%23%82%10%01%A6%BF%10a0F%21%86%18r%C8%21%02%27R%88%15%B81L%D1%02T%04%22%C8%20%84%10R%08%C4%86%84%01%81%C6%14%0D%00D%1E%7F%00%12%88%C7%82%7C%9C%06%95%28K%14%C0%0Bp%F0%D1%87%1F%3C%FF%D1%B2%1Cl%D6%2CQ%07c%E4%91%87%1E%7B%A0%C8%07%1Fv%FC%20%80%D0%11%3D%20E%1Du%D8q%C7%1Dx%18%8D%C7%13%19C%ED%D0%01F%C0%21%C7%1Ct%D0A%B5%1DuX%11%81%D7%11%91%F0%06%1Cp%C71%F6%1Ca%7C%C0%B6D%22%B0%D1%86%FE%1Bo%BC%5DF%BFwG%24B%1Ak%AC%C1F%1A8d%18%B8D%21%9C%81F%1AjH%B18E%20%94a%86%19g%401%F9D%1F%8CA%C6%E7Ml.%91%07%60%84%11%86%18K%88%1EQ%07%5E%B4%FEE%12%AAC%C4%C1%16%5Cp%D1%85%11%B1%3F%B4%01%16Yh%A1%05%11%B9%3B%B4A%15VXq%05%A0%C13%94%81%14SPQ%C5%0F%C93%84%01%14QH%21E%0F%D1%2F%84A%13N%3C%01%C5%0E%D9%2Bt%C1%12%E47%91C%F8%09Y%80%04%12I%2Ca%03%FA%08UP%84%11F%1CA%03%FC%07Q%20%C4%10C%10%114%FE%04%A1%C0%0F%80%10%84%20%C0%00%80%05%99%00%0Fz%E0%03%1F%F0%0A%81%03%91%80%0Et%B0%03%1E%3C%07%82%02%89%C0%0Dp%90%03%1Dh%07%83%00%80%00%0Dj%60%83%1B%A0%00%84%00x%80%0Cf0B%13%A0%F0%010%80A%0Cd%20%1A%10%3A%A0%05.p%01%0CF%80%C2%06%AC%80%05%FE%2ChA%08z%98%02%15%A8%60%05%C4%01%21%03N%80%02%14%A4%C0%03%28%5C%00%09L%60%82%13p%20%8A%23%20A%09J%B0%01%14%2A%40%04%22%18%C1%082%E0E%10%84%E0%8Cd%04a%02%3C%F0%816%5E%00%85%09%E8%40%07%3C%E0%81%D6%80%10%01%1B%E0%80%1E%2B%80B%04h%E0%8F%1B%98%00%0A%0F%80%01%0Cd%20%03%82%04%E1%01%2Cp%81%0B%60%40%02%83%AC%40%05%18%B96%10%1A%80%02%98%AC%80%B80h%80%09L%80%02%13%E0%11%08%0B%10%01%09x2T%A3%84%40%04V%89J%0C%16%E0%01%0F%80%00%04%18%80%C2%028%00%96%B8%C4%A5%2Ce%B9%CAR%9A%D2%93%99%94%A4%24-%40LF%16%B2%90%87%CC%00%207%90G%3Dr%40%8E%1C%D8%40%06.P%81%084%20%01%07%28%D4%C2pB%00%07x%D3%9B%B9%DC%A5%2A%7B%29%81r~2%98%C3ld%23%91y%C8e6S%8E%F0%EC%80%1E5p%01%0A%CC%12%01%06%B1%E8%D2%A8zB%00%064%E0%9F%0D%F8f.c%B9Kr%9A%F3%93%C0%1Cf1%D7%89%CC%3Fj%80%99%10%8D%E6%064%80%81%0AH%C0%01%0A%C8%26%A5%B6y%93%01%2C%80%01%FE%04%E87Gz%CB%82%1A%B4%9C%BF%3Cg%26%17zLej%C0%A5%7F%3C%A4%05%260%CB%04%E4%13I%1C%ED%E8GA%CA%D3%90%8A%14%9C%B0%14g%2FW%89RO%26T%A1%EA%3C%A6R%2F%60%01%0AD%C0%01%0B0%D2F%83%F2%A5%AAZ%F5%AAX%CD%AAV%B7%EA%A5%00%08%A0%ABXE%A1X%C7J%D6%B2%9A%F5%AChM%ABZ%D7%CA%D6%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%95m%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05T%01%C5%E7%02R%99C2%B5%9A%9A%8A%0D%82%A7-M%20Z%C5%8A%D5%D4%A9%A1%AA%04%C0%8A%12C%9ET%AB%D2v%F5%FA%15%D2%0A%B2%24%17%AC%29%95J%95%DD%B4%5C%BB~eu%E7%01%DC%8F%03%B0%7CB%85%2A%95%E1%BB%A4R%AD%FD%DA%AA%94%D8%BF%1BuH2u%EA%14%E1%C2%AAJ%BDq%20%82%D1Z%B6S%25%A9%80%7Cq%C5%A1R%A8MQ%B6l%0AO%05%82LD%E5%05%CD%B7%01i%89%17%E4%88%1AE%8A%14%EAR%A6J%01%FAp%D0A%1DU%8B%BF%8A%AAr%DB%A1%021%9DB%89%DA%CD%DB%F7%A1%14%0B%5BH%9A%CD%F8%91%89%E6%09%09%FET%B1%F4%09%14%28%E9%D4%11%BDp8%C0%0B%A9%BC%8CU%B5%B9%0A%9E%60%8DE%9D%3Ay%F2T%FE%BC%A4%23cAd%81%1Fj%81%D6J%27D%D4%07%00%0A%7Fh%B2%09%27%9C%E8%C7%DF%25%5D%18PQ%0E%99%7C%B6%D6%2A%86pp%5B%05m%5C%92I%26%9A8%08%A1%26j%D8v%11%01_%98%82%D7%2A%AA%A4r%0A%28a%14%00%17%03%5EDR%89%25%97%88H%A2%26ul%C0%D1%07%88%D8%15%E3%29%A5%84%B2%09%21%2C%3C5%C0%11%89H2%C9%24%94X%C2%E3%25%81%B4%00R%11%9C%C8X%8A%28%9DT%B2%88%1FS%2CPT%009%00%F2%C8%23%90D%22%25%25%95%14%B2%C3H%0B%BCA%CA%28%9Fd%02%09%21u%90%C1%84%06%01%02%25%82%1C%8C0%D2%88%23l%BA%C9%C8%146%96%04%82%20%9AL%92%08%1Fk%60Q%84%0C%1C4%DA%93%04a%1C%92%88%22%8B%18%8Ah%23%60%98%89R%00E%10%12%88%1Ca4%91%03%0A%FE%1AD%60%E1N%070%11H%21%86%1C%82%C8%A7%8B%2C%92%86%05-%29%C0%C4%19V%08%F1%02%08%144%80%40%01%81%D6%24%C0%0Ew%04%22%C8%20%84%14r%88%AEt%7C%07%D3%04%3A%D8%60%82%06%10%28%60%00%01%034%2B%93%0Am%F8%E1%C7%1F%80H%5B%ED%1D2%D0%14%C0%04%1BL%C0%C0%01%E4%0A%60%EEK%16p%91%87%1E%7B%F0%D1%C7%BA%81%EC%81%04%017%09%A0%40%02%05%0C%A0%EF%BE%2C5%C0%C4%1Cu%DC%81%C7%BF%01%F3a%05%03%3B%090%80%C3%10%ABT%40%0Ek%C4%21%07%1Du%D8aq%1E%5EP%00T%C8%A7%AE%40F%1Bn%C0%01%87%1C%27%F7%19%82%82%1Eup%05%1Ai%A8%B1%06%CD6%A71%03%CC%3CO%F4%00%11c%90a%C6%19i%A4%B1%06%1Bi%041k%D2%19%1Dp%03%17_%84%21%06%19e%98%01t%12%A6b%8D%91%00%27T%A1%C5%16%5Dx%D1%F5%D7O%B8lvF%1C%2CQ%85%15Xd%A1%05%FE%17%5ExA%C5%08sg%14A%0FPH1%05%15V%5C%81%85%16V%A8%20%40%E0%17%21%F0%C2%12L4%F1D%14%86SA%C5%0C%9AB%3E%11%01%26%10%81D%12KP%EE%04%14Q%D8P%B6%E7%14M%10%C4%10E%18q%04%12J0%E1%C3%04%ACc%24%C1%0F%40%BC%1E%BB%0F%19%E4.8%0F%3E%F0%FE%C3%07%8F%0B%8FQ%04%3A%EC%D0%83%0FZ%2A%9F%11%048%E4%D0%7C%93%D2c%04A%0D6T%3FZ%F6%17%3D0%03%0D5%DC%80%1D%F8%169%10%83%0C%E3%9F%80~%FA.%C0%10%C3%0C%DA%BE%3FQ%03-%B8%F0%02%0C%24%D8OQ%03%2B%60A%FE%00%E7%3F%890%00%05%2A%08%20%08%0Ah%C0%13%A0%20%05%2AX%20%03%21%B2%00%12%98%C0%81%1E%98%20D%140%82%12%5C%D0C%1At%8E%08F%40%82%12%08%29%84%0DQ%40%08F8%02%0D%A0%B0%21%09%F8%00%08V%18%BC%17.%24%01%1E%F8%80%0C1%60%C3%85%20%80%03%FE%1D%F0%80%07%80%D5%C3%84%20%60%03%1B%00%22%11%8Bx%10%04d%40%03H%94%1B%13%0Dr%00%0C%3CQ%03%B8%9B%22%15%2F%60%C5%0CdQ%8B%041%80%05.%C0%C5%08%80%B1%20%06%A0%40%05%2C%60%013%9Eq%20%06%98%00%05%D4%08%817%C2Q%02%12%90%A3_%EC%08%80%02D%00%8F%13p%00%1F%FB%08%81%08%18REv%24%C0%03%20PH%8E%F1%91%00%0Ex%C0%22%1D%99%C8%068%20%92%AB%3B%23%01%1A%60I%07d%12%8C%04%60%00%03%2C%A9%80A%0E%60%01%0B%18e%02L%89%CAT%AE%92%8F%03P%80%02RI%1F%3B%0E%20%01%09%40e-%DFxKY.%60%97g%BC%25.%15p%80A%0A%00%01%B8L%401%F9xLd%26%E0jo%14%C0%01%0E%80%00%04%40%F3%8C%D2%9C%A65%8Di%00m%22%60%9A%DEL%E60%5B%99%CAQF2%92%8C%8C%40%21%F3%28%C7%0A%B8s%8Dc%24%A3%05%2A0%01%084%40%99%E3%C3%12%80%BE%8A%22%00%03t%13%9C%D4%AC%A63e9Kr%8A%B2%93%E8d%24%04%F0%98G5%BA3%9E%F2%A4g%04%3Ci%CD%7C%05%00i%1D%2B%40%01%FC%F9%CF%80%3A3%99%045%28%27-%29%C9E%1A%F2%8F%13H%E9%1A%DFY%01%0A%D4%D3%01%0Cx%A6E%2F%CAO%8D%DA%D4%9F%00%15%E8%40%7D%D9%CAQr%F2%92%095%24%20%E7%D8R%97J%00%020Uf%C3%1Ev%94%00%D8T%A3%1C%ED%A8GA%8A%CA%82%A2%D2%A7%24%5Dd%21%85%9A%D2%09H%40%9D0U%805AFS%05%5D%F4%AChM%ABZ%D7%CAV%8C%0E%F2%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%0D%AC%60%07%AB%BC%80%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05D%D1t%C7%02R%99%3E%26%99%3Auj%14%1A%04O%5B%8E%08D%AA%94%A9%A9%A7Pq%92%12%20%2BJ%0BqB%89%1A%D5%D5%EBTT%A8%18%A50KR%01%99M%A0%D4%AEm%FB5%2C%AASt%1C%D0%FD8%20%0A%25O%9F%40%E5%5D%3B%AA%D3%28%AFT%E1%A6%02Ev%F0F%1A%876q%EA%84Xq%A8Ni%1A%800%04%D9o%2AU%8E%E6Z%B6Xb%0F%A6L%9A4s%FE%E4%29%0E%05%82H8%81E%95%EA4%AA%3A%0DVK%A4%60%86R%25K%AFcs%E2t%87%C3A%07qJ%99%3E%AD%0A%D4%14%E1%0E%11Xi%24i%92%F1K%C9%FB%FE%94X%B8%C2Q%E4%DE%AAT%ADj4%1E%3B%C2%01I%0C9z%14%A9%3B%25K%97%FC%A8p8%60K%28%D3%E9%AD%82%CA%1AX%B9G%D0%0Ax%2C%C2H%23%F3%D57%89%21%3E%94%05Q%05%7B%98%C2%1Bz%AB%AC%D2%09%11%06%02%00%02%1B%86%20%92%88%82%0CB%A2%88%14%05TtC%25%17%06%98a%22%1D%08%17%C1%16%81%0CR%C8%21%22%2A%C2%C8%22%5E%2C%80%11%01%5D%8C%82%5E%80%AC%9C%B2%86%01t%25%B0%84%1E~%00%22%08%217%22%82%C8%19%17p%E4%81%21C%AA%B7%0A%2B%9C%04%F1%D4%006%C0%A1%C7%1E%7D%FC%11%C8%93%85%C0%D1%9EGDl%82%E1%96%AC%B4%92%C8%06F%A9%60F%1Dw%E0%A1%07%1F~%98IG%0C%23-%00%C7%29%E9%A9%C7J%9C%A6%7C1%80P%19d%01%87%1Ct%E0%99%C7%1E%7C%DCQ%04%01%26%89%B0%88%8B%87%1Ez%C9%0C%3F5%80%C4%1Al%B8%F1%E8%1Ct%D8q%87%13%09%A4%14%80%14%FE%A0h%09%27%2B%AB%FC%11%C1N%05%D4%40%C6%19i%90j%AA%1CrTq%2BK%0E%D0qZ%86%19%AA%92%8A%27P%E0%24%C0%09Y%84A%86%19%BC%AE%D1%86%1B%5C%C4%08S%0B%91%14%9A%CA_%A5%88%12%C8%075m%D0%04%17%5E%80%21-%B5ix%B1fL%04x%21%24%2A%A6%90%12%0A%27%960%D2%04%A609%D0%83%15Xh%81%EE%17%D2~A%C3%A26Y%B0G%29%A3%80%C2I%25%8E%10%92%07%18t%B6%84%00%0CPHA%05%C0Yl%E1%85%17%3E%B4%AAS%0D%8DlRI%23%83%DC%A1%06%17L%A4%90bJ%03%88pD%13Od%BC%F1%15Z%0C%21XO%04%3C%91H%CAih%B1%04%0F-%7C%A0%00J%18%F4%60D%12K0%E1D%14%1A%1B%E1TP%14p%11%F4%12%3B%B4%10%C2%05%10%24%20%00I%10%C8%00%84%10D%1C%C1%B4%D3H%84%20%E1P%1C%08%A1%03%0B%20p%BD%C0%01%05%7C%0D%12%02%26%E8%C0%83%FE%0Fc%97%9D%04%12%29%F0k%94%00%16%7C%60%C1%03%0A%D0%3D%80%00koD%40%074%DC%80%83%DE%7C%0B%21%04%0B%07%D0E%00%03s%17%B0x%E3%19%05%40%01%0B1%CC%40%83%0D%93%F3%D0%83%0B%0C%087%40%01%040%DEQ%03%25%B0%D0%C2%0B1%C8p%3A%0E1%DCf%A0%00%B2k%84%00%07%27%A0%A0%82%ED%B8%CB%00%C3%05%A0w%F8%A3%05%22%8CPB%F1%C7%BB%E0%02%07%08%3B%AF%91%00%11x%00B%08%D2%9BP%7C%0A%1C%20%A9%3DG%08t%E0%C1%07%20DO%82%09%1F%88%7C%3E%FA%1C%A8%FFA%08%22x%D0%FA%FC%1E%1D%B0A%FD%1E%E8%C0%03%9A%C7%BF%8C%1C%40%03%1B%D8%40%07%A6V%C0%FEe%00%81%1C%A8%40%03%3Fr%80%0B%60%E0%81%13%98%A0G%0C%60%01%0Bf%20%83%1A%E4%88%01%2A%D0%C1%0F%86P%84%14%A8%80%05%25p%C2%8D%14%80%02%29%B4%C0%B0Z%88%11%03L%60%02%29%84%00%0D3R%00%09H%00%87%FE%0F%D8%21F%0A%00%01%1FN%60gB%AC%08%11%23%E0C%24%26q%22%04x%00%04%22%10%81%E0%3C%91%22%04p%80%14%23%B0%BF%2BJ%24%8BZ%84%40%17%BD%08%11%024%C0%01Z%1C%23%19%1D%B2%B93%3E%C0Gk%84%C8%00%16pF%07%1C-%8E%0F%99%23%03%1A%D0%00%F9%E1%91%21zd%00%03%FC%F8G%85%E8q%01%0B%20d%21%DF%83HD%2Ar%91%06%19%80%02%1AY%20H%26d%00%09%98%E4%02%2Ai%C9%83%60R%01%A0%CC%5C%27%DF%83%80%04dR%94%A3%8C%24%02J%99%00T%A6%92%20%03X%E5%2A%CD%F7J%82%08%40%96%08%A0e-%05%22%80%03%F82%97%BB%B4%A5%01~%A9%CB%5D%0A%C0%00%C3%3C%401kyLd%D2-%98%03%11%40%01%0A%80%CC%97AS%9A%D4%7C%264%01%80Md%0A.%98%01%20%00%01%A8%F9%CD%5D%86s%9C%B0%DB%26%00%CE9%CEr%D6%92%9D%E2T%27%3C%B3%07Nq%8A%93%9E%E6%BF%24%C0%00%EE%29%CF%01%EC%D3%9E%E8%9C%A63%7DI%D0%03%AC%D2%94%A0D%E4%1E%D1%A8%C5%07%A0%B1%01%9CS%40%02%10%407%7D2.%00%185K%00%FC%09Pq%C2n%9A%D94%E8AM%99IM%EE%B1%8E%0DEcD%27j%00%CF%5D%94%80G%D9%A8%3F%FF%09P%90%86%D4%A0%24E%E8%24%05%29H%3E%F2q%A5%14m%E9%E70%0AS%A3%C8%94%A3%1D%0D%285%939%D2%92%26T%A1%9C%5B%80Dg%09%BB%A1%165%A63EjRm%9AL%91%96T%A7%9A%9C%AA2%ABj%D5%ABj%90%A8hM%ABY%D5%C9%D6%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%5Dd%40%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05%20i%D4%86%02R%996%0Aa%CA%B4%E9%12%98%03O%5Bz%98S%C9%D2%A5L%9A6q%92%B4%24%40V%94%12%C8%3C%92D%A9%2B%A6%B0%9C%3Ay%22d%E2%2CI%04U%129%82%14i%12%25%AF%60%C5z%FA%E4%A9M%03%BB%1F%05%08%09%B4%88%91%A3G%91%D8Vzd%09%AE%DCO%A0.51%8BXc%8A9%87%10%25Z%D4ho%24G%5E%18p%E0c%193%A8P%87%EAv%B6%D8%C1L%A0A%85B7v%D4%88L%04%82A%24%C5%1D%FCZT%A87%0CfK%7C%20%85%CF%1F%40%82%08%15%12%BD%28%0D%86%83%0C%D2l%BA%5C%7CT%A6%27%CA%1D%FE%1A%10B%27%0F%9F%3E%7Fn%E7n%F3a%E1%89B%C4C%89%1AE%8A%14%A2%11%E1%13%0A%A8%B1%86%8E%1D%3Cz%F0%E1%07tm%88%E0%90%00U%60%82%99%7C%F4%952%0A%1A%08%E4W%D0%07%5E%BC%11%C7%1Cu%DC%91%C7%1E~%C8%21%03g%0FM%40%C7%27%0C6h%0A%26BH%08%80%05R%A4%B1F%1Bp%C8AG%1Dx%D01%04%01%15%CD%E0%08%83%A4%94R%8A%29%A7%14%C2%81r%0B%04A%86%19h%A8%C1%86%85r%C8%B1D%02%18%11%80%05%27%F3%F5%08%E4%29%A4%A4a%80%5D%06%CC%B0%05%18b%94q%86%8Bm%BC%21%C5o%1Bq%10H%83%3F%9E%82%0A%2A%99%FC%F0%94%00%23D%91%05%17%5E%84AF%19If1%E4G%40Xb%E5%29n%A6%92%CA%21%1A%18%B5%01%12TX%81%85%16%5D%7C%A1%A7%16%24%8C%A4%C0%1A%A3%B4Yh%2A%A4x1%80P%0F%E8%D0%04%14RTq%85%16xj%11%C3%A7%25%81pH%9B%FE%A8%18%AA%CA%2A%96%CC%F0%13%02%2B%1C%A1%04%13ND1%85%A3Z%DC%B0%25J%01%3C%D1%09%A1%B1%AA2%AB%2A%7F%A0%99%D3%00%1F%F80%84%11I%2C%C1%C4%13RP%B1Cr%2C9%20G%29o%A6%A2%EC%2A%AB%88B%05N%01XP%03%0F%3F%08A%84%AEK8%01%C4%041%B1%F0H%AC%E2%CE%CA%0A%2B%8F%C86%D3%03%2C%DC%90%C3%0E%3D%001m%12%40%5C7%D3%00%5D%8C%22%2B%B9%AC%B4%A2%0A%1BX%C1t%80%080%CCP%03%0E%3A%B0%1B%C4%0F%21%08p%93%05%7C%88%0Bq%2B%28%7B%92bK%04d%A0B%0B%2F%C4%40%83%0D%03%F3%60B%01%3B%E5p%89%BE%11%A3%EC%CA%22%89%A6%14%40%04%24%A0%A0%02%0B.%C0%20C%0D7%A4%10aO%04xa%CA%2A%FB%A2%8C%F2%29b%B0Z%12%03%1F%90P%C2%09%29%AC%D0%82%0B1%A8%E0%80P%1F%20Bu%CF%3E_%22%C3%5D%18%80%00%82%08%24%98%604%0B%29%D0%5BT%FE%11%9E%EC%CBv%2B%AB%E8q%D8G%04D%C0%81%07%1F%80%10%C2%08_%9Fp%81%C8G%25%A0F%2AT%93%BBJ%2A%A8l%E2DG%028%90%81%06%1Bt%80x%08tc%80%E3Y%230%A2%8A%A1%A7%982%0A%28%9D%F0%F1%27F%09P%60%01%06%19l%C0%81%E8%20%600%2Cb%01H%D1I%29%A4%84%D2I%26%948B%88%12%A7Sd%00%04%13T%60%C1%05%B8%87%9E%81%02%12%3A%C0F%27%9A%24%8FH%20x%BC%91E%D0%11%0D%C0%40%04%12L%40%81%F4%17d%80%01%B7%2A%02P%C2%1E%89%08%A2G%1Cgp%21%C5%11%274%CF%90%00%09p%C0%03%20%20%81%F4%D9%CE%02%0E%00Q%FC%00%20%00%1F%B8%21%0D_%A8B%12x0%83%14%7C%00~%09%09%C0%01%1A%D0%00%01B%20%02%E8%A3%80%03%B4%B6%40%82%2C%60%07K%00%82%0DV0%02%0E%5C%E0%01%0C1%1F%03%3A%E8%C1%088%C0%7F%254%88%03LP%02%0F%60%40%02%FE%23%8C%E1%02fHC%07%FC.%87%19d%C0%04%1E%C0%80%23%26d%00Cd%80%14%9D%88D%85%08%C0%00TD%C8%00%14%B0%80%21B%A9%8A%1F%D9%22%17%17%F0E0vD%8C%5D%2C%A3%1972%80%04%24%C0%8Bk%3Cc%02%B8%C8%80%A7%C5Q%23m%7C%E3%02%ECxG%8C%00p%8E%7B%EC%A3F%FE%C8E%3E%0A%B2%22%02%40%00%02%14%A0%80%8A%1D%D2%22%89D%80%1B%1D%F9H%8ADR%92%94%AC%A4D.%89%80%2Cj%F2%40%078%80%22%3D%F9%C9%FF%85R%94%A4%2C%A5%15%0D%10%CAN%AAr%93XD%E5%2B%23%22%80%02%B0%F2%008%9B%E5Cj%19%CB%5C%EA%B2%21W%BC%A5%2F%7F%B9%90%00%D8%12%8B%C3%24f%06%8Fi%00%1C%2A%F3%20%C6%2C%80-%9D%F9%CC%82%04%80%00%D2%2C%005%AB9%90kfs%9B%DC%04%C05%B1%A9%CDp%22d%9C%D2%04%277%C7%89MuV%93%9D%E54%A7A%E0%E9%CEg%B2%93%00%24%C1%94%A7%40%EE%99O%7D%F2S%9F%D6%1C%00%01%06%DAOy%06%60%00%02%C5%27%40%09r%D0%84%16%D4%9C%0D%15%E8C%C3%19Q%85.t%9F%08%CD%E8E1%9AQ%C8%5D4%A2%03%F0%E8B%03%20%80%8EnT%9C%25E%A8H%01J%D2%8C%BAt%A0%03%CD%A64%B1h%80c%CA%14%9F%2A%15%40%00v%AA%C0%05%924%A5%2F%85%299e%AAM%98%22%14%9F%02H%2AO%C5%C9%D4%1C%FE4%A9.M%A8P%C9i%D4%A4ZU%A7%3B%ED%E3S%A3%9AQ%82J%15%A9%21U%AAY%B2%AA%D5%ABv%94%ABQ%D5%A9Z%B1z%D2%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%0D%AC%60%B9%19%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%03%DC%B8%A3%05%02R%99%28%DA%FC%11D%28%10%14%03O%5BZ%E0%B2%87%8F%9F%40%82%0A%1D%F2%E3%23%40V%94%0D%98%D0%B9%93%C7%2BXB%86%10%29%92%F3%E1%2CI%03%3F%DA%C8%A9%C3v%8F%1F%40T%E3%2Ab%C4%E8%CB%02%BB%1F%05%BC%20%D3%06%8E%9C%B5y%F6%F4%C9%F3g%90%D8D%8B%1A%3DB%24%C4%2Cb%8D%1C%AE%A0Q%D3%E6%CDc%3Bx%EC0I%60%01%8DXD%99%1DA%8A%A4%27%C4%E7%8B%13%96%88%21s%26%CD%1A7%8E%E7%40i%40%90%86%1F%D8%8C%1C%3D%8A4i%12%19%05%B7%25%2A%C0%B1%C5K%182f%7C%97%9E%22%E1%A0%82%2C%88%18%FEi%8E%24%89R%A5FG%A2%3B%24%B0b%0A%96%EAa%C6%98%19%5D%E5%C2B%10u%1A%C9%964%A9%D2%A5L~%80%A0%5EB%01%84%B0%C4%14U%5C%A1E%17%60%88Q%C6%14%198%24%40%12%88%2C7%09%25%96%60%A2%09%26%60%1C0%60A%13%F8%C0%C4%13R%24%A8%05%17%5EXA%82D%10%A0%C1%1C%86%FFm%C2%C9%23%3C%7C%08%40%032%1C%A1%C4%12NDA%85%15YX%E1%C2%00%15%B1%10%88y%FFi%22%A3%27%7Dh%10%DD%01%26%001D%11I%2C%D1%04%14RPA%03V%17%11%F0%04%24%19%2A%C9I%27%9Fp2%06%97Y%0D%D0%01%0E%3C%FC%20D%11HX%09%05%0E%0Cp%94%81%1D%97%88%D9%89%27%A0%84%22%89%0EO%05%40%C1%0B6%E4%C0%83%0FA%10%A1%23%0F%13%80%A4%03%23%9Bl%B2%E7%27%A0%882J%20%11%16%F5%00%0A0%CC%60%03%0E%3B%F8%20%E5%0E%F6%89%94%00%19%99p%E2%09%A5%A1X%EA%89%16%FED%06%85%C0%07%2B%B8%D0%E9%A7%3A%F4%B0%C3%07%02%98%E4%C1%1F%7B%F6i%29%29%A5D%12%C3O%04%5CpB%0A%B5%C2%20C%0D7%E0%20%02%01%29%05%A0D%25%AC%8EBl%29%A5%F0%11%C1N%01%40%10%02%09%26%A0%B0B%0B%2F%C40%03%09%1E%B2%D4%C0%1A%9F%B4%3A%0A%B7%A6%9C%E2%89%1491%C0A%08%22%90%8B%82%0A%2C%B8%60B%9D0%A5%A0%C8%B0%A5%D4%7B%0A%2A%8C%94P%13%02%17p%F0%01%BF%23%94p%82%0A%258%40%D3%00YtB%AC%C2%A8%A4b%8A%1Ah%BAD%40%04%19l%D0%81%07%20%88P1%09%13xVS%05x%24%7C%CA%C2%A9%A8%A2%0A%27A%B8%24%40%03%17%5C%80%81%06%1C%B0%CC%AF%05%B1%E6d%03%25%F5%86%9C%F3%2A%AC%24%E2d%B5%08H%40A%05Bk%A0%F2%07%16%14%E0%13%01%5C%88%E2%B4%2A%AB%40%5DJ%18I%DF%E5%40%04V%5B%20t%06%1AX%D0.P%1E%1426%D4%AC%B4r%89%FE%0C%24%0D%B0%C0%03%10%B0%7D%B5%D0%16%40W%14%11%9C%E8%8Cw%2B%8C%F3A%5Cb%070%D0%80%03%10%40%20%C1%04%15T%C0%80%CCE%25%90%06%2Ae%B3%92w%2B%AE%90bEG%01%18%B0%C0%02%92%3B%008%DB%0D%F4z%D6%08%8C%2CN%BA%2B%AFD%E2pF%04%28%B0%BA%E4%93%BB%DE%40%DAg%050%85%28%A3%BB%82%FB%2B%AC%B81%F7D%03%1C%A0%80%EF%AC%B7%DE%80%D7%03%3EPG%DE%CA%BF%F2%0A%2C%B0%80%22%C4D%02%18%80%00%02%09L%EF%3B%03%0C%94%FC%E1%0B%95%90%EE%FD%F7%B0%C4%82H%05%0F%05%40%C0%01%E7%A3%9F%BE%EF%07%E0%9C%8D%00%40%800%A0by%E0%8BE%2CTA%06%E2%1Dd%00%050%80%01%F8w%BE%F4%05p%80%08%C9%40%21%BC%07%BE%FA%C5%02%14%CF%3BH%00%0A%40%C2%09R%F0%00%B2%C3%60Bz%D0%09%FA%D5%0F%08%0C%19a%09%0Fp%00%038P%85%079%40%1BX%01%3E%404D%86%FE%12%B4%21%0E%21%22%82F%84%E2q%0B%91%21%09%A95%C4%88P%C0%21J%2C%00%13%9B%E8%11%FD%95p%8AT%E4%88%FE%08%10A%ECeQ%8B%04%E0%A2%01%B0%F8%C5%8Cl1%82d%2C%E3E%CE%28E5n%84%8Dit%23E%B6%C8%C58%CAQ%22tl%E3%1D%D7%18%C6%3A%EE%91%8Fa%D4%E3%1F%E7%D8GA%0E%12%8F%85%B4%E3%21c%D8G%02%DCp%91%8Cl%24%24%11%D9%C7GN%92%40%8D%B4%E4%25E%98%C9M%E6o%00%95%F4%24%14A%19FM%8Ar%20%01%20%A5%23O%19%C3%01%90%D2%94%ACL%E5%2BY%99DW%82%12%96%A7%94%A5-i%A9%10%5D%BA%92%97%04%B2%E5%2F%81%29Ba%E2R%94%BE%3C%A6%27%7D%99Bb%12D%96%02%18%403%9D%29%90%00%08%E0%9A%D2%A4fA%ACyM%01%08%90%9A%DC%BC%E67%9D%19Noj%F3%99%DD4%E79%AB%E9%CD%00%B8s%9D%A8t%E78%C1YMx%DA%F3%9E%F8%27%CC%A7%3E%F7%C9%CF~%FA%F3%9F%00%0D%A8%40%07J%D0%82%1A%F4%A0%08M%A8B%17%CA%D0%86%3A%F4%A1%10%8D%A8D5%12%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%03%8C%A8%D2C%01R%99%19%96p%F1%12%06%CC%0D%02O%5B%3A%E0a%25%CB%16%AAd%CC%80Y%915%25%02%18Q%A6t%FD%1A%86%CC%994k%B0X%28K%92%80%89%24N%D2%AE%05%FBv%8D%9B7I%10%D0%FD%18%60%C3%8F%24K%F2%AA%CD%C2%25%0B%98%B0p%DB%C0%91%D3FF%80%C1%1B%21%CC%10R%04Ib%BDVf%18x%D0%C4%0C%5C7p%E6%D4%B9C%26%03%E6%8B%0BV%F0%F8%C1%D9s%5E%295%12%10%2C%11f%8Dd9%AB%F3%EC%91%22%F8u%C4%02%1Fn%E8%98-%C4%08b%267%18%1C%3C%20%E4wp%3E~%EE%E00%EEP%00%86%174%94%FE%CF%1ER%24%C9%0D%07%0B1x%01~%27%0Fv%40%82%D6h%E0%9E0%80%84%14%2Fb%84%D7%D1%83v%0D%08%0E%05p%C3%1Bw%E8%81%5D%20%82%14B%88%14%06%D0W%90%02%22%AC%D0%C2%0B2%D4%A0%5C%0F6%CC%15%11%03T%B8%F7G%20%83%14rH%22~%C8%E0%20%00%07l%60%02%0A%2B%B8%00C%858%D8%C0%81%00%15%89%D0%C6%87%21%8E%B8H%23oh%88%19%01%15%8CP%C2%09%29HH%E1%0C%1F%60u%D1%00%40%F0%91%23%22%3B%3A%C2%C8%15%05%D0%25%00%04%1F%880%02%09%26%14%D9%02%0C%21%1C%C0%11%05f%88%88%88%22%8C8%02%89%24%84%CC%90%95%02%1Ax%00B%08B%9E%80%82%0A%23%2C%00%D2%0B%7B%40%D9%88%9A%92LR%89%1D%3E%0E%85%40%05%1Al%D0%C1%07tr%29B%03%23%21%60E%22%7F%AEII%25%97L%22%05%8DA%11%10%C1%05%19%24%BA%28%08%23%84%20%C1e%25e%20%07%A0%97%5E%92%89%26%FE%87%B0%F0%93%00%0BP%60%01%A8%1Ap%D0%81%07%1FL%C0%E9I%01%00%81H%A0%98%BE%BA%C9%26t%3C%B0S%00%08%400%81%AD%B8%EAZ%81%92%2B-%10%86%24%95Xb%2C%27%9ET%C2DN%A3E%20%C1%B3%15%E0j%81%980%91%F0%87%AB%9Al%D2%89%27%9F%80R%88%085%11%B0%C0%03%10D%10%C1%B3%B7VP%9CL%03H1I%BB%EF%C6%1B%CA%27d4%08%93%00%094%E0%80%03%10%E4%FB%2C%05%0B%A0Z%D3%04pl%C2m%BC%A2%8CBJ%25%3D%B8%14%C0%01%0B0%C0%80%03%F8%8A%3B%01%03%BF%E2%24%03%23%F0%82%D21%29%A5%94B%08%06%2B%11%90%C0%02%25%9F%9Cr%03%03%F8D%80%15%9A%80%12%8A%C75%9B%12%8A%17A%9B4%00%02%09%28%C0%B3%C9%0D%3C%C0%00%B5%3Fm%F0G%28%A2%D0%5C%8A%29%A7%A02%09%0C%24%09%60%40%02h%2B%205%03%0D0%A00Q%3FT%E25%D8%A8%A4%82J%1E%90%12F%C0%FE%01%07%40%1D5%CF%0B%1C%60qQ%08%90%21%CA%D7a%A7%A2%8A%2A%A0P%E1%D1%00%06%18%C07%02P%AB-8%5D%21%1CB%B7%E2%AA%AC%C2%8A%23%24h%24%40%01%05D.9%E5%09%1C%D0rY%01%40%E1I%DD%8B%7B%CEJ%2Al%A0KQ%00%03%10%40%BA%E4%7DS%DE4w%0F%C8%81J%E7%B2%B7%D2%8A%27%40L%84%3B%01%CC%93%5E%3A%DF%BF%9F%D8%82%24%AB%14%DF%8A%2B%AE%1CR%01D%020%EF%BD%F3%06%60%7D%A2%40%04%7CQ%0A%2B%AC%18%EF%CA%2B%AF%A42F%F4%08%090%40%EE%DF%93N%C0%E0%E3%13%84%C1%20%E9%AB%FF%0A%2C%9F%B0%1DBp7%3F%EF%E9%EE~%F9%5B%08%0F6%E1%BFW%FC%80%21%04%A4%1F%01%06%B0%BA%04%22%E4%00kX%C5%FA%00%D1%10%02z%AF%82%16TH%08%1A%11%8A%BC-%24%82%13%0C%A1D%B6%D7%C1%F9%E5%0E~%2A%DC%08%0Aa%18%C3%8C%CC%B0%86%1E%B9%21%0E9%A2%C3%1Dj%A4%87%A7%3E%C4%08%10%83h%91%21%12%F1v.%9C%DF%11%85%98D%10.%11%22%11T%E2%13%2B%12E%1AN1%40I%B4%E2%15%21%98%C5-%2A%AF%8B%5E%8CH%00%04%20%3F%0A%86Q%8Cd%9C%9F%13%CF8%402%CAo%8Dl4%C8%18%DD%88%BF8%D6%C7%8D%02%A8%A3%1D%DBHF%3D%EEQ%8E%01%18%A3%1F%FFH%90%CB%04r%90%84%2CH%20%13%C9%C8F%3A%F2%91%90%8C%A4%24%27I%C9JZ%F2%92%98%CC%A4%267%C9%C9Nz%F2%93%A0%0C%A5%28GI%CAR%9A%F2%94%A8L%A5%2AW%C9%CAV%BA%F2%95%B0%8C%A5%2CgI%CBZ%DA%B2%86%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%40%27%BC%10a%00%A9%CC%06%29f%D8%C8%81%E3%83%00%A7-%0F%80x%11%83%C6%0D%1D%3C%7C%E8%C8%805%25%81%0C%2A%5C%C0%90Q%E3%2B%8F%1FB%8A%DCpP%96%A4%80%09%25R%B0P%3B%A3%06%0E%1D%3D%80%0C1%A2dI%8B%02u%3F%06p%10%C2%04%0A%15-%B8J%AD%01%18%08%91%23J%98%3CY%02%221G%04%1BF%940%91bE%E4%182%3A%10H%E0%22%C8%E5%25M%A0H%A9B%24%82%E7%8B%06.%84%08%21%FA%F1%0A%17%2F%3C%20%1Eh%01H%92%25N%A2L%B1%82E%0B%8E%A6%B7%23%0E%88%E0%01D%08%11%24L%9C%80%FC%E1%C0A%02%2A%90%FEK%A1%C2%7C%8B%97%2C%27%A2%3B%0C%D0%20%03%87%EA%22D%9FH%01%02%C1%C2%07%3E%C6%5B%C9%C2%E5K%182QH%A0%9EB%0AX%90%C1%06%EF%81%80%5D%09%1E%24%B0%1E%09Q4%D7%C5%17b%94q%C6%19%3B%100%60A%05HpA%06%1A%20%08%DF%07%0DH%84%80%0E%E6%811%86%19h%A8%C1%06%19%25l%08%00%01%0EP%60%C1%87%1Ap%D0%C1%07%1E%40%10%40E%18H%F1%9F%19i%AC%D1%06%1Cr%60a%DBm%02%2C%20%C1%04%15X%80%C1%81%1Cp%20%C1U%17%09%D0%02%18D%B2%E1%06%92u%D0Q%84%86e%05%90%C0%03%11L%40A%05%17%60%10%E2%04dj%E4%80%13F%BE%11%C7%1Cu%E0%A1%C7%1B%28%60e%80%03%10D%F0%A4%8D%1FR%E0%DDG%23%8C%81%24%1Dv%E4%B1G%1F%7F%90%21%60Q%04%2C%E0%C0%03%81%0EZ%C1%04%F6%89d%C0%10p0%9A%07%1F~%00%22%C8%1FD%60%09%94%00%094%D0%C0%A5%FE%99R%40%81%02%3F%964A%17w%E8Aj%20%83%14rH%1D%24%FC%14%80%01%0B0%F0%EA%03%98%A6%C9%40%AD%27%05%20%C3%1C%90%F2%EAk%22%8A%98Q%E2N%05%28%B0%40%B1%C7%06%CA%C0%00-%25%10%85%1F%82%102%ED%22%8D%18%12DN%04%20%A0-%B7%C72%10%A7K%1D%B4A%88%21%88%24%82%EE%23%91%E0%E1AM%02%1C%80%40%02%0Ahk%AC%03%0D%0C%27%93%00D%04%82%88%22%8C8%C2%EF%24%91h%A1%B0K%01%14%80%C0%C6%04%1B%CC%C0%A16A%20%06%BA%8E%40%22%C9%24%95X%A2%88%0D%18%13%20%F0%C0%04o%BB%C0%01%CC%E2%A4B%1F%FCJBI%25%97d%A2%89%1E%16%AC%24%80%01%06%1C%20p%021%23%A0%EAN%030%C1%C8%24%94X%D2%F3%26%9CXb%C5%D2%23eL%B4%D1G%2B%80%00%B8Aa%40G%CA%98hBu%27%9F%2C%C2%02I%01%0CP%C0%DBE%BF%8C%C0%BCB%E1%A0%88%CFT%7B%F2%09%FE%28%A0%C8%C1%00Hm%13%40%C0%DB%05p%3D%B7S%07tqI%DE%7B%87%22J%26Ox%24%80%E0%82%C3m4%015%23%E5%C1%1F%9D%E8%0D%8A%E3%A3%94%82%88%08%1A%05%40y%E5p%17%909V%01%28Q%C9%E7%A2%8CBJ%29%A6%8C%82%06t%14%B5%3D%C0%E9%84%13%80%B5g%0E%B0%01J%EC%B3%9Br%0A%2A%98%F40Q%00%02%0C%E0%3C%EF%05%FC%AE%9E%0A%8C%CCN%FB%F1%A8%A4%22%08%05%10%E9%EE%FC%F3%82%83-%23A%03h%F1%C9%F5%D9%AB%A2J%29%60%88%9F%10%F3%DF%C7O%C0%00%AB%8F%2F%D0%05~%18%9F%7D%2A%AA%AC%B2%09%EE%08a%5E%F3%E2%E7%BC%FA%D9%8F%209%B0D%FAV%B1%0A%E5-D%80%03%2C%E0%01%1Br%804%98%A2%7F%7Ch%88%00%BFg%C0%09%22%04%04%89%E8%C4%B5%1E%28%80%12%96%D0%83%12%E1%9E%06M%28%80%0E%A2%F0%22%10l%E1%0B%15%C3B%17%CE0w5%BC%A1G%02%C0C%19%EA%90%23i%3Cd%9E%0D%7F%28%91%20%0E%91%88E%3C%22%12%23%A2%C4%25%3A%F1%89P%8C%A2%14%A7H%C5%2AZ%F1%8AX%CC%A2%16%B7%C8%C5.z%F1%8B%60%0C%A3%18%C7H%C62%9A%F1%8ChL%A3%1A%D7%C8%C66%BA%F1%8Dp%8C%A3%1C%E7H%C7%3A%DA%F1%8Ex%CC%A3%1E%F7%C8%C7%3E%FA%F1%8F%80%0C%A4%20%07I%C8B%1A%F2%90%88L%E4%15%03%02%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%40%3Bdy%02%01%A9%CC%05%2F%9A%8C%B9CH%CB%01%A7-%07H0%81C%EA%1DD%95%28E%09%80%15e%00%03%102p%F5%0A%16%D4%A9G%2C%CA%96%14%60%40A%DA%B5S%DB%9Ej%E5jOS%B9%1F%03%0C%20P%F7nW%2Fu%F4%B6%82%25K%95%16%B2%807%06%100%B8%B0Z%1B%2A%0EPhS%C9%EDbY%B4jaj%11%19c%80%D3%94%09%DB%CDp%A1%00A%1F%97%F62%0E%5D%8BV%1F%07%A5%2B%9E%9E%5CY%C1%82%01%07%1B%C8Y5%BBV-%5B%B6%1C%E7%9E%B8%3B5%01%01%0B%5D%5C%02m%1C9%F2K%29%96Cl.%002%C3%01dZ%FEU%B7nk%16%9D%04%DA%1B%EE%F6%FE%10%C3%A1%E3%E4%91%9BZ%92~%21%FB%89%3FD%C5%B7%1E%09D%FD%90%05%9C%01%CB~%B6%C82%C7U%FF%7D%24%82%24%04%DAR%8A%11%09%82%C4%04%2A%0DF%D2A%84%1E1%A0%07-%04%BEb%06p%18rd%82%25%0D%82%82C%88%1C%05%A0%05%2B%04%D6%82%C8%04%28n%04%81%1F%F0%C5%B7%8A%161n%24C%27%0Db%97cF%04%08H%A0%2Cr%20%F8%A3E%19%20%D2%A0%29G%1C%89%11%10%A3T%C8%81%93%16%05%18K%87g%80H%E5D%0B6%F8%89%0D%5BV4a%8B%82%E0%16%A6D%0A%CC1%0B%817%9E9%D1%09%24%12h%C9%09nF%A4%22%8B%FB%19hd%9D%0DE%40%23%81%A5%14%C1%27D3%F0H%20%23%16%0C%EAP%90%03%EE%F7J%96%8A6%B4%01%23%04%92%B2g%A4%0A%05%11%25yC%60%FA%10%02r%C8%82%5C%21%9EFD%02%25%A8%98Y%2AD%89%AE%EA%EA%ABN%B0%C6%2A%EB%AC%B4%D6j%EB%AD%B8%E6%AA%EB%AE%BC%F6%EA%EB%AF%C0%06%2B%EC%B0%C4%16k%EC%B1%C8%26%AB%EC%B2%CC6%EB%EC%B3%D0F%2B%ED%B4%D4Vk%ED%B5%D8f%AB%ED%B6%DCv%EB%ED%B7%E0%86%2B%EE%B8%E4%96k%EE%B9%E8%A6%AB%EE%BA%D9%06%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9D%CA2%00%D5%95%01%AC%5E%3D%99%B5%EB%D6%92%5D%05%0C%200%E0k%C8%B0b%09%18%40%40%C0%EC%C7%ACi%0B%20%60%20AB%01%B7%1D%03%0C%18P%E0%80%82%07%17B%B0%00%21%00%2F%C7%01%06%124%98%C0%01%C5%0D%25RB%18%DE%28%40%01%04%0C%22b%08%A9r%06%0F%9A%0A%933%06X%D0A%85%0E%26_%E2%04r4%E9J%D9%D0%17%0B%98%28rE%8D%1ED%94%3C%95%AAD%036F%0F%5B%E8%08z%A4I%14%AAV%AF%08M%F0m%F1%00%94D%96%3E%99Z%E5%2A%D6%ACTZ%98%5B%1CQhT%AAV%B0d%FE%CD%A2U%EBR%0A%ED%14%07t%29%F5J%3C%F9Z%B6d%C99%80~%E2%85A%B2%DE%C3%B7e%CB%D4%91%FA%13%F9%20J-%FB%F1%C7_%24%1C%00%18Q%01f%C4b%E0%83%AF%9C%F1%9A%82%0E%89%20%C9%83%0F~b%03%85%101%81%0A%86%FC%D5%22%88%03%1C%3A%A4%C0%1C%B3%80h%CB%2A%D9%95%D8%D0%09%96%A8h%8B%25%27%B8%C8P%00Z%B0%A2%A2%2Cs%D0g%A3B%11%F8Q%E0%83%A5%14%F1%E3B3t%22%23%23%16%1C%99%10%01g%C0%A2b%84%13%3AY%D0%06%8C%A8H%8A%8FV%1E%14%C4%28%18%0E%D1%A5B%08%C8%21%0B%7F%85%8C%C9%10%09%94%A0B%A2%9A%0C5%09%E7%9Ct%D6i%E7%9Dx%E6%A9%E7%9E%7C%F6%E9%E7%9F%80%06%2A%E8%A0%84%16j%E8%A1%88%26%AA%E8%A2%8C6%EA%E8%A3%90F%2A%E9%A4%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%2A%EA%A8%A4%96j%EA%A9%A8%A6%AA%EA%AA%AC%B6%EA%EA%AB%03%0E%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%ACY%AD%01%02%9C%B5%98%B6%AD%DA%B5%0F%DD%A6%15%40%17n%DC%B9%02%06%0C%20P%60%80%DD%86%01%F2%EA%E5%7B%00A%02%BF%7F%15%06%D8%5B%C0%00%02%05%0D%20Pp%20%20%B1%C2%01%07%120x0%01C%07%12%28%28XN%28%40%81%04%0B%1CD%A8%90%C1%E3%88%8F%07%A3%11%2A%E8p%02F%0E%22O%B2%90YC%84%40l%83%03%3E%00Yb%25%CC%9A%3A~%0C%FD%91%F1%DB%60%84%26i%E4%EC%21%C4H%12%26O%7B%264%27%28%80G%9FD%91%2C%84q%0AU%0A%15%A90%88%B7%03%90%00g%13%28R%A7T%B1r%F5%E9%80z%826%28%A5%9A%0F%2BV%90%FB%05%1D%C0%06%2B%B1%C82%08%80%07%8D%10I%29%0E%20%88%90%05%0EF%28%E1%84%14Vh%E1%85%18f%A8%E1%86%1Cv%E8%E1%87%20%86%28%E2%88%24%96h%E2%89%28%A6%A8%E2%8A%2C%B6%E8%E2%8B0%C6%28%E3%8C4%D6h%E3%8D8%E6%A8%E3%8E%3C%F6%E8%E3%8F%40%06%29%E4%90D%16i%E4%91H%26%A9%E4%92%40%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%3B";
|
|
@@ -17286,9 +17320,9 @@ var HbLoadingSpinner_base64_default = "data:image/gif,GIF89a%80%00%80%00%E7%00%0
|
|
|
17286
17320
|
// src/components/HbLoadingSpinner.tsx
|
|
17287
17321
|
var import_jsx_runtime151 = require("@emotion/react/jsx-runtime");
|
|
17288
17322
|
function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }) {
|
|
17289
|
-
const ctx = (0,
|
|
17323
|
+
const ctx = (0, import_react106.useContext)(HbLoadingSpinnerContext);
|
|
17290
17324
|
const tid = useTestIds({}, "hbSpinner");
|
|
17291
|
-
const quip = (0,
|
|
17325
|
+
const quip = (0, import_react106.useMemo)(() => {
|
|
17292
17326
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
17293
17327
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
17294
17328
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
@@ -17328,12 +17362,12 @@ var HB_QUIPS_MISSION = [
|
|
|
17328
17362
|
"In Service of Our Customers"
|
|
17329
17363
|
].map(dotDotDot);
|
|
17330
17364
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
17331
|
-
var HbLoadingSpinnerContext =
|
|
17365
|
+
var HbLoadingSpinnerContext = import_react106.default.createContext({
|
|
17332
17366
|
quips: ["Loading..."],
|
|
17333
17367
|
noQuips: false
|
|
17334
17368
|
});
|
|
17335
17369
|
function HbSpinnerProvider({ quips = [], children }) {
|
|
17336
|
-
const state = (0,
|
|
17370
|
+
const state = (0, import_react106.useMemo)(() => ({ quips, noQuips: quips.length === 0 }), [quips]);
|
|
17337
17371
|
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(HbLoadingSpinnerContext.Provider, { value: state, children });
|
|
17338
17372
|
}
|
|
17339
17373
|
|
|
@@ -17374,20 +17408,20 @@ var sizeToPixels2 = {
|
|
|
17374
17408
|
|
|
17375
17409
|
// src/components/MaxLines.tsx
|
|
17376
17410
|
var import_utils117 = require("@react-aria/utils");
|
|
17377
|
-
var
|
|
17411
|
+
var import_react107 = require("react");
|
|
17378
17412
|
var import_jsx_runtime153 = require("@emotion/react/jsx-runtime");
|
|
17379
17413
|
function MaxLines({ maxLines, children }) {
|
|
17380
|
-
const elRef = (0,
|
|
17381
|
-
const [hasMore, setHasMore] = (0,
|
|
17382
|
-
const [expanded, setExpanded] = (0,
|
|
17414
|
+
const elRef = (0, import_react107.useRef)(null);
|
|
17415
|
+
const [hasMore, setHasMore] = (0, import_react107.useState)(false);
|
|
17416
|
+
const [expanded, setExpanded] = (0, import_react107.useState)(false);
|
|
17383
17417
|
(0, import_utils117.useLayoutEffect)(() => {
|
|
17384
17418
|
if (!elRef.current) return;
|
|
17385
17419
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17386
17420
|
}, []);
|
|
17387
|
-
(0,
|
|
17421
|
+
(0, import_react107.useEffect)(() => {
|
|
17388
17422
|
setExpanded(false);
|
|
17389
17423
|
}, [children]);
|
|
17390
|
-
const onResize = (0,
|
|
17424
|
+
const onResize = (0, import_react107.useCallback)(() => {
|
|
17391
17425
|
if (!elRef.current) return;
|
|
17392
17426
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17393
17427
|
}, [expanded]);
|
|
@@ -17480,7 +17514,7 @@ function toPageNumberSize(page) {
|
|
|
17480
17514
|
|
|
17481
17515
|
// src/components/ScrollShadows.tsx
|
|
17482
17516
|
var import_utils119 = require("@react-aria/utils");
|
|
17483
|
-
var
|
|
17517
|
+
var import_react108 = require("react");
|
|
17484
17518
|
var import_jsx_runtime155 = require("@emotion/react/jsx-runtime");
|
|
17485
17519
|
function ScrollShadows(props) {
|
|
17486
17520
|
const { children, xss, horizontal = false, bgColor = "rgba(255,255,255,1)" /* White */ } = props;
|
|
@@ -17489,10 +17523,10 @@ function ScrollShadows(props) {
|
|
|
17489
17523
|
if (!bgColor.includes("rgba")) {
|
|
17490
17524
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
17491
17525
|
}
|
|
17492
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
17493
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
17494
|
-
const scrollRef = (0,
|
|
17495
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
17526
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react108.useState)(false);
|
|
17527
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react108.useState)(false);
|
|
17528
|
+
const scrollRef = (0, import_react108.useRef)(null);
|
|
17529
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react108.useMemo)(() => {
|
|
17496
17530
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
17497
17531
|
const commonStyles = Css.absolute.z3.add({ pointerEvents: "none" }).$;
|
|
17498
17532
|
const startShadowStyles2 = !horizontal ? Css.top0.left0.right0.hPx(40).$ : Css.left0.top0.bottom0.wPx(25).$;
|
|
@@ -17504,7 +17538,7 @@ function ScrollShadows(props) {
|
|
|
17504
17538
|
{ ...commonStyles, ...endShadowStyles2, ...Css.add("background", endGradient).$ }
|
|
17505
17539
|
];
|
|
17506
17540
|
}, [horizontal, bgColor]);
|
|
17507
|
-
const updateScrollProps = (0,
|
|
17541
|
+
const updateScrollProps = (0, import_react108.useCallback)(
|
|
17508
17542
|
(el) => {
|
|
17509
17543
|
const { scrollTop, scrollHeight, clientHeight, scrollWidth, scrollLeft, clientWidth } = el;
|
|
17510
17544
|
const start = horizontal ? scrollLeft : scrollTop;
|
|
@@ -17515,7 +17549,7 @@ function ScrollShadows(props) {
|
|
|
17515
17549
|
},
|
|
17516
17550
|
[horizontal]
|
|
17517
17551
|
);
|
|
17518
|
-
const onResize = (0,
|
|
17552
|
+
const onResize = (0, import_react108.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
17519
17553
|
(0, import_utils119.useResizeObserver)({ ref: scrollRef, onResize });
|
|
17520
17554
|
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
17521
17555
|
"div",
|
|
@@ -17543,10 +17577,10 @@ function ScrollShadows(props) {
|
|
|
17543
17577
|
}
|
|
17544
17578
|
|
|
17545
17579
|
// src/components/Snackbar/useSnackbar.tsx
|
|
17546
|
-
var
|
|
17580
|
+
var import_react109 = require("react");
|
|
17547
17581
|
function useSnackbar() {
|
|
17548
17582
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
17549
|
-
const onClose = (0,
|
|
17583
|
+
const onClose = (0, import_react109.useCallback)(
|
|
17550
17584
|
(noticeId) => {
|
|
17551
17585
|
setNotices((prev) => {
|
|
17552
17586
|
let returnValue = prev;
|
|
@@ -17563,7 +17597,7 @@ function useSnackbar() {
|
|
|
17563
17597
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17564
17598
|
[]
|
|
17565
17599
|
);
|
|
17566
|
-
const triggerNotice = (0,
|
|
17600
|
+
const triggerNotice = (0, import_react109.useCallback)(
|
|
17567
17601
|
(props) => {
|
|
17568
17602
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
17569
17603
|
let maybeTimeout;
|
|
@@ -17592,8 +17626,8 @@ function useSnackbar() {
|
|
|
17592
17626
|
},
|
|
17593
17627
|
[onClose, setNotices]
|
|
17594
17628
|
);
|
|
17595
|
-
const closeNotice = (0,
|
|
17596
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
17629
|
+
const closeNotice = (0, import_react109.useCallback)((id) => onClose(id), [onClose]);
|
|
17630
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react109.useEffect)(() => {
|
|
17597
17631
|
setOffset({ bottom });
|
|
17598
17632
|
return () => setOffset({});
|
|
17599
17633
|
}, [bottom]);
|
|
@@ -17602,7 +17636,7 @@ function useSnackbar() {
|
|
|
17602
17636
|
var snackbarId = 1;
|
|
17603
17637
|
|
|
17604
17638
|
// src/components/Stepper.tsx
|
|
17605
|
-
var
|
|
17639
|
+
var import_react110 = require("react");
|
|
17606
17640
|
var import_react_aria50 = require("react-aria");
|
|
17607
17641
|
var import_jsx_runtime156 = require("@emotion/react/jsx-runtime");
|
|
17608
17642
|
function Stepper(props) {
|
|
@@ -17646,7 +17680,7 @@ function Stepper(props) {
|
|
|
17646
17680
|
function StepButton(props) {
|
|
17647
17681
|
const { label, disabled, state, isCurrent, onClick } = props;
|
|
17648
17682
|
const ariaProps = { onPress: onClick, isDisabled: disabled };
|
|
17649
|
-
const ref = (0,
|
|
17683
|
+
const ref = (0, import_react110.useRef)(null);
|
|
17650
17684
|
const { buttonProps, isPressed } = (0, import_react_aria50.useButton)(ariaProps, ref);
|
|
17651
17685
|
const { isFocusVisible, focusProps } = (0, import_react_aria50.useFocusRing)();
|
|
17652
17686
|
const { hoverProps, isHovered } = (0, import_react_aria50.useHover)(ariaProps);
|
|
@@ -17761,7 +17795,7 @@ function ConfirmCloseModal(props) {
|
|
|
17761
17795
|
var import_framer_motion4 = require("framer-motion");
|
|
17762
17796
|
|
|
17763
17797
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
17764
|
-
var
|
|
17798
|
+
var import_react111 = require("react");
|
|
17765
17799
|
var import_jsx_runtime159 = require("@emotion/react/jsx-runtime");
|
|
17766
17800
|
function useSuperDrawer() {
|
|
17767
17801
|
const {
|
|
@@ -17801,7 +17835,7 @@ function useSuperDrawer() {
|
|
|
17801
17835
|
}
|
|
17802
17836
|
doChange();
|
|
17803
17837
|
}
|
|
17804
|
-
const closeActions = (0,
|
|
17838
|
+
const closeActions = (0, import_react111.useMemo)(
|
|
17805
17839
|
() => {
|
|
17806
17840
|
return {
|
|
17807
17841
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -17836,7 +17870,7 @@ function useSuperDrawer() {
|
|
|
17836
17870
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17837
17871
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
17838
17872
|
);
|
|
17839
|
-
const actions = (0,
|
|
17873
|
+
const actions = (0, import_react111.useMemo)(
|
|
17840
17874
|
() => {
|
|
17841
17875
|
return {
|
|
17842
17876
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -17935,7 +17969,7 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
17935
17969
|
|
|
17936
17970
|
// src/components/Tabs.tsx
|
|
17937
17971
|
var import_change_case7 = require("change-case");
|
|
17938
|
-
var
|
|
17972
|
+
var import_react112 = require("react");
|
|
17939
17973
|
var import_react_aria51 = require("react-aria");
|
|
17940
17974
|
var import_react_router2 = require("react-router");
|
|
17941
17975
|
var import_react_router_dom5 = require("react-router-dom");
|
|
@@ -17981,9 +18015,9 @@ function Tabs(props) {
|
|
|
17981
18015
|
) : props.selected;
|
|
17982
18016
|
const { isFocusVisible, focusProps } = (0, import_react_aria51.useFocusRing)();
|
|
17983
18017
|
const tid = useTestIds(others, "tabs");
|
|
17984
|
-
const [active, setActive] = (0,
|
|
17985
|
-
const ref = (0,
|
|
17986
|
-
(0,
|
|
18018
|
+
const [active, setActive] = (0, import_react112.useState)(selected);
|
|
18019
|
+
const ref = (0, import_react112.useRef)(null);
|
|
18020
|
+
(0, import_react112.useEffect)(() => setActive(selected), [selected]);
|
|
17987
18021
|
function onKeyUp(e) {
|
|
17988
18022
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
17989
18023
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -18025,7 +18059,7 @@ function TabImpl(props) {
|
|
|
18025
18059
|
const { disabled = false, name: label, icon, endAdornment } = tab;
|
|
18026
18060
|
const isDisabled = !!disabled;
|
|
18027
18061
|
const { hoverProps, isHovered } = (0, import_react_aria51.useHover)({ isDisabled });
|
|
18028
|
-
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0,
|
|
18062
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0, import_react112.useMemo)(
|
|
18029
18063
|
() => getTabStyles(),
|
|
18030
18064
|
[]
|
|
18031
18065
|
);
|
|
@@ -18105,10 +18139,10 @@ function Toast() {
|
|
|
18105
18139
|
}
|
|
18106
18140
|
|
|
18107
18141
|
// src/components/Toast/useToast.tsx
|
|
18108
|
-
var
|
|
18142
|
+
var import_react113 = require("react");
|
|
18109
18143
|
function useToast() {
|
|
18110
18144
|
const { setNotice, clear } = useToastContext();
|
|
18111
|
-
const showToast = (0,
|
|
18145
|
+
const showToast = (0, import_react113.useCallback)((props) => setNotice(props), [setNotice]);
|
|
18112
18146
|
return { showToast, clear };
|
|
18113
18147
|
}
|
|
18114
18148
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -18212,6 +18246,7 @@ function useToast() {
|
|
|
18212
18246
|
Palette,
|
|
18213
18247
|
PresentationProvider,
|
|
18214
18248
|
PreventBrowserScroll,
|
|
18249
|
+
RIGHT_SIDEBAR_MIN_WIDTH,
|
|
18215
18250
|
RadioGroupField,
|
|
18216
18251
|
ResponsiveGrid,
|
|
18217
18252
|
ResponsiveGridItem,
|
|
@@ -18275,6 +18310,9 @@ function useToast() {
|
|
|
18275
18310
|
calcColumnSizes,
|
|
18276
18311
|
cardStyle,
|
|
18277
18312
|
checkboxFilter,
|
|
18313
|
+
chipBaseStyles,
|
|
18314
|
+
chipDisabledStyles,
|
|
18315
|
+
chipHoverStyles,
|
|
18278
18316
|
collapseColumn,
|
|
18279
18317
|
column,
|
|
18280
18318
|
condensedStyle,
|