@homebound/beam 2.388.0 → 2.390.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 +787 -710
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +74 -16
- package/dist/index.d.ts +74 -16
- package/dist/index.js +458 -385
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -70,6 +70,7 @@ __export(index_exports, {
|
|
|
70
70
|
ButtonGroup: () => ButtonGroup,
|
|
71
71
|
ButtonMenu: () => ButtonMenu,
|
|
72
72
|
ButtonModal: () => ButtonModal,
|
|
73
|
+
Card: () => Card,
|
|
73
74
|
Checkbox: () => Checkbox,
|
|
74
75
|
CheckboxGroup: () => CheckboxGroup,
|
|
75
76
|
Chip: () => Chip,
|
|
@@ -191,6 +192,9 @@ __export(index_exports, {
|
|
|
191
192
|
calcColumnSizes: () => calcColumnSizes,
|
|
192
193
|
cardStyle: () => cardStyle,
|
|
193
194
|
checkboxFilter: () => checkboxFilter,
|
|
195
|
+
chipBaseStyles: () => chipBaseStyles,
|
|
196
|
+
chipDisabledStyles: () => chipDisabledStyles,
|
|
197
|
+
chipHoverStyles: () => chipHoverStyles,
|
|
194
198
|
collapseColumn: () => collapseColumn,
|
|
195
199
|
column: () => column,
|
|
196
200
|
condensedStyle: () => condensedStyle,
|
|
@@ -4444,6 +4448,9 @@ function useAutoSaveStatus() {
|
|
|
4444
4448
|
return (0, import_react2.useContext)(AutoSaveStatusContext);
|
|
4445
4449
|
}
|
|
4446
4450
|
|
|
4451
|
+
// src/components/Chip.tsx
|
|
4452
|
+
var import_react6 = require("react");
|
|
4453
|
+
|
|
4447
4454
|
// src/components/Icon.tsx
|
|
4448
4455
|
var import_react4 = __toESM(require("react"), 1);
|
|
4449
4456
|
|
|
@@ -5234,43 +5241,40 @@ var ChipTypes = {
|
|
|
5234
5241
|
darkMode: "darkMode",
|
|
5235
5242
|
info: "info"
|
|
5236
5243
|
};
|
|
5237
|
-
function Chip({
|
|
5238
|
-
type = ChipTypes.neutral,
|
|
5239
|
-
...props
|
|
5240
|
-
}) {
|
|
5244
|
+
function Chip(props) {
|
|
5241
5245
|
const { fieldProps } = usePresentationContext();
|
|
5242
|
-
const { text, title, xss = {}, compact = fieldProps?.compact, icon } = props;
|
|
5246
|
+
const { text, title, xss = {}, compact = fieldProps?.compact, icon, type = ChipTypes.neutral } = props;
|
|
5243
5247
|
const tid = useTestIds(props, "chip");
|
|
5248
|
+
const styles = (0, import_react6.useMemo)(
|
|
5249
|
+
() => ({
|
|
5250
|
+
...chipBaseStyles(compact),
|
|
5251
|
+
...typeStyles[type],
|
|
5252
|
+
...xss
|
|
5253
|
+
}),
|
|
5254
|
+
[type, xss, compact]
|
|
5255
|
+
);
|
|
5244
5256
|
return maybeTooltip({
|
|
5245
5257
|
title,
|
|
5246
5258
|
placement: "bottom",
|
|
5247
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
5248
|
-
|
|
5249
|
-
{
|
|
5250
|
-
|
|
5251
|
-
...Css[compact ? "xs" : "sm"].dif.aic.gapPx(4).br16.pl1.px1.pyPx(2).gray900.$,
|
|
5252
|
-
...typeStyles[type],
|
|
5253
|
-
...xss
|
|
5254
|
-
},
|
|
5255
|
-
...tid,
|
|
5256
|
-
children: [
|
|
5257
|
-
icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { icon, inc: 2, xss: Css.fs0.$ }),
|
|
5258
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { css: Css.lineClamp1.wbba.$, children: text })
|
|
5259
|
-
]
|
|
5260
|
-
}
|
|
5261
|
-
)
|
|
5259
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { css: styles, ...tid, children: [
|
|
5260
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { icon, inc: 2, xss: Css.fs0.$ }),
|
|
5261
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { css: Css.lineClamp1.wbba.$, children: text })
|
|
5262
|
+
] })
|
|
5262
5263
|
});
|
|
5263
5264
|
}
|
|
5264
5265
|
var typeStyles = {
|
|
5265
5266
|
caution: Css.bgYellow200.$,
|
|
5266
|
-
warning: Css.
|
|
5267
|
-
success: Css.
|
|
5267
|
+
warning: Css.bgRed100.$,
|
|
5268
|
+
success: Css.bgGreen100.$,
|
|
5268
5269
|
light: Css.bgWhite.$,
|
|
5269
5270
|
dark: Css.bgGray900.white.$,
|
|
5270
5271
|
neutral: Css.bgGray200.$,
|
|
5271
5272
|
darkMode: Css.bgGray700.white.$,
|
|
5272
5273
|
info: Css.bgBlue100.$
|
|
5273
5274
|
};
|
|
5275
|
+
var chipBaseStyles = (compact) => Css.xsMd.dif.aic.br16.px1.gapPx(4).pyPx(pyHeight(compact)).mhPx(minhPx(compact)).gray900.bgGray200.$;
|
|
5276
|
+
var pyHeight = (compact) => compact ? 2 : 4;
|
|
5277
|
+
var minhPx = (compact) => compact ? 20 : 24;
|
|
5274
5278
|
|
|
5275
5279
|
// src/components/Chips.tsx
|
|
5276
5280
|
var import_jsx_runtime6 = require("@emotion/react/jsx-runtime");
|
|
@@ -5296,17 +5300,17 @@ function Chips(props) {
|
|
|
5296
5300
|
// src/components/Table/GridTable.tsx
|
|
5297
5301
|
var import_memoize_one = __toESM(require("memoize-one"), 1);
|
|
5298
5302
|
var import_mobx10 = require("mobx");
|
|
5299
|
-
var
|
|
5303
|
+
var import_react69 = __toESM(require("react"), 1);
|
|
5300
5304
|
var import_react_virtuoso2 = require("react-virtuoso");
|
|
5301
5305
|
|
|
5302
5306
|
// src/components/Table/GridTableApi.ts
|
|
5303
5307
|
var import_mobx9 = require("mobx");
|
|
5304
5308
|
var import_mobx_utils = require("mobx-utils");
|
|
5305
|
-
var
|
|
5309
|
+
var import_react67 = require("react");
|
|
5306
5310
|
|
|
5307
5311
|
// src/components/Table/utils/TableState.ts
|
|
5308
5312
|
var import_mobx8 = require("mobx");
|
|
5309
|
-
var
|
|
5313
|
+
var import_react66 = __toESM(require("react"), 1);
|
|
5310
5314
|
|
|
5311
5315
|
// src/components/Table/utils/ColumnStates.ts
|
|
5312
5316
|
var import_change_case5 = require("change-case");
|
|
@@ -5316,20 +5320,20 @@ var import_mobx5 = require("mobx");
|
|
|
5316
5320
|
var import_mobx3 = require("mobx");
|
|
5317
5321
|
|
|
5318
5322
|
// src/components/Table/components/CollapseToggle.tsx
|
|
5319
|
-
var
|
|
5323
|
+
var import_react14 = require("react");
|
|
5320
5324
|
|
|
5321
5325
|
// src/hooks/useBreakpoint.tsx
|
|
5322
5326
|
var import_fast_deep_equal = __toESM(require("fast-deep-equal"), 1);
|
|
5323
|
-
var
|
|
5327
|
+
var import_react7 = require("react");
|
|
5324
5328
|
var import_use_debounce = require("use-debounce");
|
|
5325
5329
|
function useBreakpoint() {
|
|
5326
|
-
const [breakpoints, setBreakpoints] = (0,
|
|
5330
|
+
const [breakpoints, setBreakpoints] = (0, import_react7.useState)(matchMediaBreakpoints());
|
|
5327
5331
|
const handleResize = (0, import_use_debounce.useDebouncedCallback)(() => {
|
|
5328
5332
|
const newBps = matchMediaBreakpoints();
|
|
5329
5333
|
if ((0, import_fast_deep_equal.default)(breakpoints, newBps)) return;
|
|
5330
5334
|
setBreakpoints(newBps);
|
|
5331
5335
|
}, 250);
|
|
5332
|
-
(0,
|
|
5336
|
+
(0, import_react7.useEffect)(() => {
|
|
5333
5337
|
window.addEventListener("resize", handleResize);
|
|
5334
5338
|
return () => window.removeEventListener("resize", handleResize);
|
|
5335
5339
|
}, [handleResize]);
|
|
@@ -5345,7 +5349,7 @@ function matchMediaBreakpoints() {
|
|
|
5345
5349
|
|
|
5346
5350
|
// src/hooks/useComputed.ts
|
|
5347
5351
|
var import_mobx = require("mobx");
|
|
5348
|
-
var
|
|
5352
|
+
var import_react8 = require("react");
|
|
5349
5353
|
|
|
5350
5354
|
// src/utils/shallowEqual.ts
|
|
5351
5355
|
function shallowEqual(objA, objB) {
|
|
@@ -5371,13 +5375,13 @@ function shallowEqual(objA, objB) {
|
|
|
5371
5375
|
|
|
5372
5376
|
// src/hooks/useComputed.ts
|
|
5373
5377
|
function useComputed(fn, deps) {
|
|
5374
|
-
const [, setTick] = (0,
|
|
5375
|
-
const ref = (0,
|
|
5378
|
+
const [, setTick] = (0, import_react8.useState)(0);
|
|
5379
|
+
const ref = (0, import_react8.useRef)({
|
|
5376
5380
|
runner: void 0,
|
|
5377
5381
|
value: void 0,
|
|
5378
5382
|
hasRan: false
|
|
5379
5383
|
});
|
|
5380
|
-
(0,
|
|
5384
|
+
(0, import_react8.useMemo)(() => {
|
|
5381
5385
|
const { current } = ref;
|
|
5382
5386
|
if (current.runner) {
|
|
5383
5387
|
current.runner();
|
|
@@ -5394,7 +5398,7 @@ function useComputed(fn, deps) {
|
|
|
5394
5398
|
}
|
|
5395
5399
|
});
|
|
5396
5400
|
}, deps);
|
|
5397
|
-
(0,
|
|
5401
|
+
(0, import_react8.useEffect)(() => {
|
|
5398
5402
|
return ref.current.runner;
|
|
5399
5403
|
}, []);
|
|
5400
5404
|
if (!ref.current.hasRan) {
|
|
@@ -5404,9 +5408,9 @@ function useComputed(fn, deps) {
|
|
|
5404
5408
|
}
|
|
5405
5409
|
|
|
5406
5410
|
// src/hooks/useFilter.ts
|
|
5407
|
-
var
|
|
5411
|
+
var import_react9 = require("react");
|
|
5408
5412
|
function useFilter({ filterDefs }) {
|
|
5409
|
-
const [filter, setFilter] = (0,
|
|
5413
|
+
const [filter, setFilter] = (0, import_react9.useState)(
|
|
5410
5414
|
Object.fromEntries(
|
|
5411
5415
|
safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
|
|
5412
5416
|
)
|
|
@@ -5415,21 +5419,21 @@ function useFilter({ filterDefs }) {
|
|
|
5415
5419
|
}
|
|
5416
5420
|
|
|
5417
5421
|
// src/hooks/useGroupBy.ts
|
|
5418
|
-
var
|
|
5422
|
+
var import_react11 = require("react");
|
|
5419
5423
|
|
|
5420
5424
|
// src/hooks/useQueryState.ts
|
|
5421
|
-
var
|
|
5425
|
+
var import_react10 = require("react");
|
|
5422
5426
|
var import_use_query_params = require("use-query-params");
|
|
5423
5427
|
function useQueryState(name, initialValue) {
|
|
5424
5428
|
const [params, setParams] = (0, import_use_query_params.useQueryParams)({ [name]: import_use_query_params.StringParam });
|
|
5425
5429
|
const value = params[name] || initialValue;
|
|
5426
|
-
const setValue = (0,
|
|
5430
|
+
const setValue = (0, import_react10.useCallback)((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
|
|
5427
5431
|
return [value, setValue];
|
|
5428
5432
|
}
|
|
5429
5433
|
|
|
5430
5434
|
// src/hooks/useGroupBy.ts
|
|
5431
5435
|
function useGroupBy(opts) {
|
|
5432
|
-
const options = (0,
|
|
5436
|
+
const options = (0, import_react11.useMemo)(
|
|
5433
5437
|
() => safeEntries(opts).map(([key, value2]) => ({ id: key, name: value2 })),
|
|
5434
5438
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5435
5439
|
[]
|
|
@@ -5446,11 +5450,11 @@ function useHover(props) {
|
|
|
5446
5450
|
}
|
|
5447
5451
|
|
|
5448
5452
|
// src/hooks/usePersistedFilter.ts
|
|
5449
|
-
var
|
|
5453
|
+
var import_react12 = require("react");
|
|
5450
5454
|
var import_use_query_params2 = require("use-query-params");
|
|
5451
5455
|
function usePersistedFilter({ storageKey, filterDefs }) {
|
|
5452
5456
|
const filterKeys = Object.keys(filterDefs);
|
|
5453
|
-
const defaultFilter = (0,
|
|
5457
|
+
const defaultFilter = (0, import_react12.useMemo)(
|
|
5454
5458
|
() => Object.fromEntries(
|
|
5455
5459
|
safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
|
|
5456
5460
|
),
|
|
@@ -5461,7 +5465,7 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
5461
5465
|
const isQueryParamFilterValid = hasValidFilterKeys(queryParamsFilter, filterKeys);
|
|
5462
5466
|
const filter = isQueryParamFilterValid ? queryParamsFilter : storedFilter ?? defaultFilter;
|
|
5463
5467
|
const setFilter = (filter2) => setQueryParams({ filter: filter2 });
|
|
5464
|
-
(0,
|
|
5468
|
+
(0, import_react12.useEffect)(
|
|
5465
5469
|
() => {
|
|
5466
5470
|
if (queryParamsFilter === void 0) {
|
|
5467
5471
|
setQueryParams({ filter: storedFilter }, "replaceIn");
|
|
@@ -5482,14 +5486,14 @@ function hasValidFilterKeys(queryParamsFilter, definedKeys) {
|
|
|
5482
5486
|
}
|
|
5483
5487
|
|
|
5484
5488
|
// src/hooks/useSessionStorage.ts
|
|
5485
|
-
var
|
|
5489
|
+
var import_react13 = require("react");
|
|
5486
5490
|
function useSessionStorage(key, defaultValue) {
|
|
5487
5491
|
let hasSessionStorage = false;
|
|
5488
5492
|
try {
|
|
5489
5493
|
hasSessionStorage = !!window.sessionStorage;
|
|
5490
5494
|
} catch (e) {
|
|
5491
5495
|
}
|
|
5492
|
-
const [state, setState] = (0,
|
|
5496
|
+
const [state, setState] = (0, import_react13.useState)(() => {
|
|
5493
5497
|
if (!hasSessionStorage) {
|
|
5494
5498
|
return defaultValue;
|
|
5495
5499
|
}
|
|
@@ -5500,7 +5504,7 @@ function useSessionStorage(key, defaultValue) {
|
|
|
5500
5504
|
sessionStorage.setItem(key, JSON.stringify(defaultValue));
|
|
5501
5505
|
return defaultValue;
|
|
5502
5506
|
});
|
|
5503
|
-
const setAndSave = (0,
|
|
5507
|
+
const setAndSave = (0, import_react13.useCallback)(
|
|
5504
5508
|
(value) => {
|
|
5505
5509
|
if (hasSessionStorage && value) {
|
|
5506
5510
|
sessionStorage.setItem(key, JSON.stringify(value));
|
|
@@ -5524,7 +5528,7 @@ function getParsedStorage(key) {
|
|
|
5524
5528
|
var import_jsx_runtime7 = require("@emotion/react/jsx-runtime");
|
|
5525
5529
|
function CollapseToggle(props) {
|
|
5526
5530
|
const { row, compact } = props;
|
|
5527
|
-
const { tableState } = (0,
|
|
5531
|
+
const { tableState } = (0, import_react14.useContext)(TableStateContext);
|
|
5528
5532
|
const isCollapsed = useComputed(() => tableState.isCollapsed(row.id), [tableState]);
|
|
5529
5533
|
const iconKey = isCollapsed ? "chevronRight" : "chevronDown";
|
|
5530
5534
|
const headerIconKey = isCollapsed ? "chevronsRight" : "chevronsDown";
|
|
@@ -5545,10 +5549,10 @@ function CollapseToggle(props) {
|
|
|
5545
5549
|
}
|
|
5546
5550
|
|
|
5547
5551
|
// src/components/Table/components/SelectToggle.tsx
|
|
5548
|
-
var
|
|
5552
|
+
var import_react65 = require("react");
|
|
5549
5553
|
|
|
5550
5554
|
// src/inputs/Autocomplete.tsx
|
|
5551
|
-
var
|
|
5555
|
+
var import_react47 = require("react");
|
|
5552
5556
|
var import_react_aria28 = require("react-aria");
|
|
5553
5557
|
var import_react_stately8 = require("react-stately");
|
|
5554
5558
|
|
|
@@ -5556,12 +5560,12 @@ var import_react_stately8 = require("react-stately");
|
|
|
5556
5560
|
var import_react_day_picker3 = require("react-day-picker");
|
|
5557
5561
|
|
|
5558
5562
|
// src/components/internal/DatePicker/Day.tsx
|
|
5559
|
-
var
|
|
5563
|
+
var import_react15 = require("react");
|
|
5560
5564
|
var import_react_day_picker = require("react-day-picker");
|
|
5561
5565
|
var import_jsx_runtime8 = require("@emotion/react/jsx-runtime");
|
|
5562
5566
|
function Day(props) {
|
|
5563
5567
|
const tid = useTestIds(props, "datePickerDay");
|
|
5564
|
-
const buttonRef = (0,
|
|
5568
|
+
const buttonRef = (0, import_react15.useRef)(null);
|
|
5565
5569
|
const { isHidden, isButton, activeModifiers, buttonProps, divProps } = (0, import_react_day_picker.useDayRender)(
|
|
5566
5570
|
props.date,
|
|
5567
5571
|
props.displayMonth,
|
|
@@ -5635,13 +5639,13 @@ var import_date_fns = require("date-fns");
|
|
|
5635
5639
|
var import_react_day_picker2 = require("react-day-picker");
|
|
5636
5640
|
|
|
5637
5641
|
// src/components/IconButton.tsx
|
|
5638
|
-
var
|
|
5642
|
+
var import_react17 = require("react");
|
|
5639
5643
|
var import_react_aria3 = require("react-aria");
|
|
5640
5644
|
|
|
5641
5645
|
// src/hooks/useGetRef.ts
|
|
5642
|
-
var
|
|
5646
|
+
var import_react16 = require("react");
|
|
5643
5647
|
var useGetRef = (maybeRef) => {
|
|
5644
|
-
const newRef = (0,
|
|
5648
|
+
const newRef = (0, import_react16.useRef)(null);
|
|
5645
5649
|
return maybeRef || newRef;
|
|
5646
5650
|
};
|
|
5647
5651
|
|
|
@@ -5701,7 +5705,7 @@ function IconButton(props) {
|
|
|
5701
5705
|
const { focusProps, isFocusVisible } = (0, import_react_aria3.useFocusRing)(ariaProps);
|
|
5702
5706
|
const { hoverProps, isHovered } = (0, import_react_aria3.useHover)(ariaProps);
|
|
5703
5707
|
const testIds = useTestIds(props, icon);
|
|
5704
|
-
const styles = (0,
|
|
5708
|
+
const styles = (0, import_react17.useMemo)(
|
|
5705
5709
|
() => ({
|
|
5706
5710
|
...iconButtonStylesReset,
|
|
5707
5711
|
...circle ? iconButtonCircle : compact ? iconButtonCompact : iconButtonNormal,
|
|
@@ -5853,7 +5857,7 @@ function DateRangePicker(props) {
|
|
|
5853
5857
|
|
|
5854
5858
|
// src/components/internal/Menu.tsx
|
|
5855
5859
|
var import_change_case2 = require("change-case");
|
|
5856
|
-
var
|
|
5860
|
+
var import_react33 = require("react");
|
|
5857
5861
|
var import_react_aria13 = require("react-aria");
|
|
5858
5862
|
var import_react_stately3 = require("react-stately");
|
|
5859
5863
|
|
|
@@ -5874,10 +5878,10 @@ function MenuSectionImpl(props) {
|
|
|
5874
5878
|
|
|
5875
5879
|
// src/inputs/internal/MenuSearchField.tsx
|
|
5876
5880
|
var import_textfield = require("@react-aria/textfield");
|
|
5877
|
-
var
|
|
5881
|
+
var import_react32 = require("react");
|
|
5878
5882
|
|
|
5879
5883
|
// src/inputs/TextFieldBase.tsx
|
|
5880
|
-
var
|
|
5884
|
+
var import_react31 = require("react");
|
|
5881
5885
|
var import_react_aria12 = require("react-aria");
|
|
5882
5886
|
|
|
5883
5887
|
// src/components/HelperText.tsx
|
|
@@ -5888,7 +5892,7 @@ function HelperText(props) {
|
|
|
5888
5892
|
}
|
|
5889
5893
|
|
|
5890
5894
|
// src/components/Label.tsx
|
|
5891
|
-
var
|
|
5895
|
+
var import_react18 = __toESM(require("react"), 1);
|
|
5892
5896
|
var import_react_aria5 = require("react-aria");
|
|
5893
5897
|
var import_jsx_runtime18 = require("@emotion/react/jsx-runtime");
|
|
5894
5898
|
function LabelComponent(props) {
|
|
@@ -5911,7 +5915,7 @@ function LabelComponent(props) {
|
|
|
5911
5915
|
);
|
|
5912
5916
|
return hidden ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria5.VisuallyHidden, { children: labelEl }) : labelEl;
|
|
5913
5917
|
}
|
|
5914
|
-
var Label =
|
|
5918
|
+
var Label = import_react18.default.memo(LabelComponent);
|
|
5915
5919
|
function InlineLabel({ labelProps, label, contrast, multiline = false, ...others }) {
|
|
5916
5920
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
5917
5921
|
"label",
|
|
@@ -5929,19 +5933,19 @@ function InlineLabel({ labelProps, label, contrast, multiline = false, ...others
|
|
|
5929
5933
|
|
|
5930
5934
|
// src/components/Table/components/Row.tsx
|
|
5931
5935
|
var import_mobx_react = require("mobx-react");
|
|
5932
|
-
var
|
|
5936
|
+
var import_react30 = require("react");
|
|
5933
5937
|
|
|
5934
5938
|
// src/components/Table/components/cell.tsx
|
|
5935
5939
|
var import_react_router_dom2 = require("react-router-dom");
|
|
5936
5940
|
|
|
5937
5941
|
// src/components/CssReset.tsx
|
|
5938
|
-
var
|
|
5942
|
+
var import_react19 = require("@emotion/react");
|
|
5939
5943
|
var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
|
|
5940
5944
|
function CssReset() {
|
|
5941
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react19.Global, { styles: [modernNormalizeReset, tailwindPreflightReset, ourReset] });
|
|
5942
5946
|
}
|
|
5943
5947
|
var navLink = "navLink";
|
|
5944
|
-
var ourReset =
|
|
5948
|
+
var ourReset = import_react19.css`
|
|
5945
5949
|
a:not(.${navLink}) {
|
|
5946
5950
|
color: ${"rgba(29, 78, 216, 1)" /* Blue700 */};
|
|
5947
5951
|
}
|
|
@@ -5987,7 +5991,7 @@ var ourReset = import_react18.css`
|
|
|
5987
5991
|
}
|
|
5988
5992
|
}
|
|
5989
5993
|
`;
|
|
5990
|
-
var modernNormalizeReset =
|
|
5994
|
+
var modernNormalizeReset = import_react19.css`
|
|
5991
5995
|
/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
|
|
5992
5996
|
|
|
5993
5997
|
/*
|
|
@@ -6296,7 +6300,7 @@ Add the correct display in Chrome and Safari.
|
|
|
6296
6300
|
padding: 0;
|
|
6297
6301
|
}
|
|
6298
6302
|
`;
|
|
6299
|
-
var tailwindPreflightReset =
|
|
6303
|
+
var tailwindPreflightReset = import_react19.css`
|
|
6300
6304
|
/**
|
|
6301
6305
|
* Tailwind custom reset styles
|
|
6302
6306
|
*/
|
|
@@ -6493,7 +6497,7 @@ var tailwindPreflightReset = import_react18.css`
|
|
|
6493
6497
|
height: auto;
|
|
6494
6498
|
}
|
|
6495
6499
|
`;
|
|
6496
|
-
var tailwindFormResets =
|
|
6500
|
+
var tailwindFormResets = import_react19.css`
|
|
6497
6501
|
[type="text"],
|
|
6498
6502
|
[type="email"],
|
|
6499
6503
|
[type="url"],
|
|
@@ -6731,32 +6735,32 @@ var rowClickRenderFn = (as, api, colSpan) => (key, css2, content, row, rowStyle,
|
|
|
6731
6735
|
};
|
|
6732
6736
|
|
|
6733
6737
|
// src/components/Table/components/KeptGroupRow.tsx
|
|
6734
|
-
var
|
|
6738
|
+
var import_react29 = require("react");
|
|
6735
6739
|
|
|
6736
6740
|
// src/components/Table/components/EditColumnsButton.tsx
|
|
6737
|
-
var
|
|
6741
|
+
var import_react25 = require("react");
|
|
6738
6742
|
var import_react_aria10 = require("react-aria");
|
|
6739
6743
|
var import_react_stately2 = require("react-stately");
|
|
6740
6744
|
|
|
6741
6745
|
// src/components/Button.tsx
|
|
6742
|
-
var
|
|
6746
|
+
var import_react24 = require("react");
|
|
6743
6747
|
var import_react_aria9 = require("react-aria");
|
|
6744
6748
|
|
|
6745
6749
|
// src/components/internal/OverlayTrigger.tsx
|
|
6746
|
-
var
|
|
6750
|
+
var import_react23 = require("react");
|
|
6747
6751
|
var import_react_aria8 = require("react-aria");
|
|
6748
6752
|
|
|
6749
6753
|
// src/components/Avatar/AvatarButton.tsx
|
|
6750
|
-
var
|
|
6754
|
+
var import_react21 = require("react");
|
|
6751
6755
|
var import_react_aria6 = require("react-aria");
|
|
6752
6756
|
|
|
6753
6757
|
// src/components/Avatar/Avatar.tsx
|
|
6754
|
-
var
|
|
6758
|
+
var import_react20 = require("react");
|
|
6755
6759
|
var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
|
|
6756
6760
|
function Avatar({ src, name, size = "md", showName = false, disableTooltip = false, ...others }) {
|
|
6757
6761
|
const tid = useTestIds(others, "avatar");
|
|
6758
6762
|
const px2 = sizeToPixel[size];
|
|
6759
|
-
const [showFallback, setShowFallback] = (0,
|
|
6763
|
+
const [showFallback, setShowFallback] = (0, import_react20.useState)(src === void 0);
|
|
6760
6764
|
const styles = Css.br100.wPx(px2).hPx(px2).mwPx(px2).oh.$;
|
|
6761
6765
|
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)(
|
|
6762
6766
|
"img",
|
|
@@ -6830,7 +6834,7 @@ function AvatarButton(props) {
|
|
|
6830
6834
|
const { focusProps, isFocusVisible } = (0, import_react_aria6.useFocusRing)(ariaProps);
|
|
6831
6835
|
const { hoverProps, isHovered } = (0, import_react_aria6.useHover)(ariaProps);
|
|
6832
6836
|
const tid = useTestIds(props, avatarProps.name);
|
|
6833
|
-
const styles = (0,
|
|
6837
|
+
const styles = (0, import_react21.useMemo)(
|
|
6834
6838
|
() => ({
|
|
6835
6839
|
...resetStyles,
|
|
6836
6840
|
...isHovered && hoverStyles,
|
|
@@ -6867,7 +6871,7 @@ var pressedStyles = Css.addIn(
|
|
|
6867
6871
|
).$;
|
|
6868
6872
|
|
|
6869
6873
|
// src/components/NavLink.tsx
|
|
6870
|
-
var
|
|
6874
|
+
var import_react22 = require("react");
|
|
6871
6875
|
var import_react_aria7 = require("react-aria");
|
|
6872
6876
|
var import_jsx_runtime23 = require("@emotion/react/jsx-runtime");
|
|
6873
6877
|
function NavLink(props) {
|
|
@@ -6886,7 +6890,7 @@ function NavLink(props) {
|
|
|
6886
6890
|
const { buttonProps, isPressed } = (0, import_react_aria7.useButton)({ ...ariaProps, elementType: href ? "a" : "button" }, ref);
|
|
6887
6891
|
const { hoverProps, isHovered } = (0, import_react_aria7.useHover)({ isDisabled });
|
|
6888
6892
|
const { isFocusVisible, focusProps } = (0, import_react_aria7.useFocusRing)(ariaProps);
|
|
6889
|
-
const { baseStyles:
|
|
6893
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3 } = (0, import_react22.useMemo)(
|
|
6890
6894
|
() => getNavLinkStyles(variant, contrast),
|
|
6891
6895
|
[variant, contrast]
|
|
6892
6896
|
);
|
|
@@ -6898,9 +6902,9 @@ function NavLink(props) {
|
|
|
6898
6902
|
/** aria-current represents the current page within a set of pages */
|
|
6899
6903
|
"aria-current": active ? "page" : void 0,
|
|
6900
6904
|
css: {
|
|
6901
|
-
...
|
|
6905
|
+
...baseStyles5,
|
|
6902
6906
|
...active && activeStyles4,
|
|
6903
|
-
...isDisabled &&
|
|
6907
|
+
...isDisabled && disabledStyles4,
|
|
6904
6908
|
...isFocusVisible && focusRingStyles2,
|
|
6905
6909
|
...isHovered && hoverStyles4,
|
|
6906
6910
|
...isPressed && pressedStyles3
|
|
@@ -6958,7 +6962,7 @@ function OverlayTrigger(props) {
|
|
|
6958
6962
|
showActiveBorder = false,
|
|
6959
6963
|
contrast = false
|
|
6960
6964
|
} = props;
|
|
6961
|
-
const popoverRef = (0,
|
|
6965
|
+
const popoverRef = (0, import_react23.useRef)(null);
|
|
6962
6966
|
const { overlayProps: positionProps } = (0, import_react_aria8.useOverlayPosition)({
|
|
6963
6967
|
targetRef: buttonRef,
|
|
6964
6968
|
overlayRef: popoverRef,
|
|
@@ -7068,7 +7072,7 @@ function Button(props) {
|
|
|
7068
7072
|
} = props;
|
|
7069
7073
|
const asLink = typeof onPress === "string";
|
|
7070
7074
|
const showExternalLinkIcon = asLink && isAbsoluteUrl(onPress) || openInNew;
|
|
7071
|
-
const [asyncInProgress, setAsyncInProgress] = (0,
|
|
7075
|
+
const [asyncInProgress, setAsyncInProgress] = (0, import_react24.useState)(false);
|
|
7072
7076
|
const isDisabled = !!disabled;
|
|
7073
7077
|
const ariaProps = { onPress, isDisabled: isDisabled || asyncInProgress, ...otherProps, ...menuTriggerProps };
|
|
7074
7078
|
const {
|
|
@@ -7098,7 +7102,7 @@ function Button(props) {
|
|
|
7098
7102
|
);
|
|
7099
7103
|
const { isFocusVisible, focusProps } = (0, import_react_aria9.useFocusRing)(ariaProps);
|
|
7100
7104
|
const { hoverProps, isHovered } = (0, import_react_aria9.useHover)(ariaProps);
|
|
7101
|
-
const { baseStyles:
|
|
7105
|
+
const { baseStyles: baseStyles5, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3, focusStyles: focusStyles2 } = (0, import_react24.useMemo)(
|
|
7102
7106
|
() => getButtonStyles(variant, size, contrast),
|
|
7103
7107
|
[variant, size, contrast]
|
|
7104
7108
|
);
|
|
@@ -7115,10 +7119,10 @@ function Button(props) {
|
|
|
7115
7119
|
className: asLink ? navLink : void 0,
|
|
7116
7120
|
css: {
|
|
7117
7121
|
...Css.buttonBase.tt("inherit").$,
|
|
7118
|
-
...
|
|
7122
|
+
...baseStyles5,
|
|
7119
7123
|
...isHovered && !isPressed ? hoverStyles4 : {},
|
|
7120
7124
|
...isPressed ? pressedStyles3 : {},
|
|
7121
|
-
...isDisabled || asyncInProgress ? { ...
|
|
7125
|
+
...isDisabled || asyncInProgress ? { ...disabledStyles4, ...Css.cursorNotAllowed.$ } : {},
|
|
7122
7126
|
...isFocusVisible || forceFocusStyles ? focusStyles2 : {}
|
|
7123
7127
|
},
|
|
7124
7128
|
...tid
|
|
@@ -7214,13 +7218,13 @@ var import_jsx_runtime26 = require("@emotion/react/jsx-runtime");
|
|
|
7214
7218
|
function EditColumnsButton(props) {
|
|
7215
7219
|
const { defaultOpen, disabled, columns, trigger, title, api } = props;
|
|
7216
7220
|
const state = (0, import_react_stately2.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
7217
|
-
const buttonRef = (0,
|
|
7221
|
+
const buttonRef = (0, import_react25.useRef)(null);
|
|
7218
7222
|
const { menuTriggerProps } = (0, import_react_aria10.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
7219
7223
|
const tid = useTestIds(
|
|
7220
7224
|
props,
|
|
7221
7225
|
isTextButton(trigger) ? labelOr(trigger, "editColumnsButton") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
7222
7226
|
);
|
|
7223
|
-
const options = (0,
|
|
7227
|
+
const options = (0, import_react25.useMemo)(
|
|
7224
7228
|
() => columns.filter((column2) => column2.canHide).filter((column2) => {
|
|
7225
7229
|
if (!column2.name || column2.name.length === 0 || !column2.id || column2.id.length === 0) {
|
|
7226
7230
|
console.warn("Column is missing 'name' and/or 'id' property required by the Edit Columns button", column2);
|
|
@@ -7231,7 +7235,7 @@ function EditColumnsButton(props) {
|
|
|
7231
7235
|
[columns]
|
|
7232
7236
|
);
|
|
7233
7237
|
const selectedValues = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
7234
|
-
const setSelectedValues = (0,
|
|
7238
|
+
const setSelectedValues = (0, import_react25.useCallback)(
|
|
7235
7239
|
(ids) => {
|
|
7236
7240
|
api.setVisibleColumns(
|
|
7237
7241
|
columns.filter((column2) => column2.canHide ? ids.includes(column2.id) : true).map((c) => c.id)
|
|
@@ -7266,15 +7270,15 @@ function EditColumnsButton(props) {
|
|
|
7266
7270
|
}
|
|
7267
7271
|
|
|
7268
7272
|
// src/components/Table/components/SortHeader.tsx
|
|
7269
|
-
var
|
|
7273
|
+
var import_react26 = require("react");
|
|
7270
7274
|
var import_jsx_runtime27 = require("@emotion/react/jsx-runtime");
|
|
7271
7275
|
function SortHeader(props) {
|
|
7272
7276
|
const { content, xss, iconOnLeft = false, sortKey, tooltipEl } = props;
|
|
7273
7277
|
const { isHovered, hoverProps } = useHover({});
|
|
7274
|
-
const { tableState } = (0,
|
|
7278
|
+
const { tableState } = (0, import_react26.useContext)(TableStateContext);
|
|
7275
7279
|
const current = useComputed(() => tableState.sortState?.current, [tableState]);
|
|
7276
7280
|
const sorted = sortKey === current?.columnId ? current?.direction : void 0;
|
|
7277
|
-
const toggleSort = (0,
|
|
7281
|
+
const toggleSort = (0, import_react26.useCallback)(() => tableState.setSortKey(sortKey), [sortKey, tableState]);
|
|
7278
7282
|
const tid = useTestIds(props, "sortHeader");
|
|
7279
7283
|
const icon = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
7280
7284
|
Icon,
|
|
@@ -7299,26 +7303,26 @@ function SortHeader(props) {
|
|
|
7299
7303
|
|
|
7300
7304
|
// src/components/Table/hooks/useSetupColumnSizes.ts
|
|
7301
7305
|
var import_utils17 = require("@react-aria/utils");
|
|
7302
|
-
var
|
|
7306
|
+
var import_react27 = require("react");
|
|
7303
7307
|
var import_use_debounce2 = require("use-debounce");
|
|
7304
7308
|
function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
7305
|
-
const calculateImmediately = (0,
|
|
7306
|
-
const [tableWidth, setTableWidth] = (0,
|
|
7307
|
-
const [columnSizes, setColumnSizes] = (0,
|
|
7309
|
+
const calculateImmediately = (0, import_react27.useRef)(true);
|
|
7310
|
+
const [tableWidth, setTableWidth] = (0, import_react27.useState)();
|
|
7311
|
+
const [columnSizes, setColumnSizes] = (0, import_react27.useState)(
|
|
7308
7312
|
calcColumnSizes(columns, tableWidth, style.minWidthPx, expandedColumnIds)
|
|
7309
7313
|
);
|
|
7310
|
-
const setTableAndColumnWidths = (0,
|
|
7311
|
-
(
|
|
7312
|
-
setTableWidth(
|
|
7313
|
-
setColumnSizes(calcColumnSizes(columns,
|
|
7314
|
+
const setTableAndColumnWidths = (0, import_react27.useCallback)(
|
|
7315
|
+
(width2) => {
|
|
7316
|
+
setTableWidth(width2);
|
|
7317
|
+
setColumnSizes(calcColumnSizes(columns, width2, style.minWidthPx, expandedColumnIds));
|
|
7314
7318
|
},
|
|
7315
7319
|
[setTableWidth, setColumnSizes, columns, style, expandedColumnIds]
|
|
7316
7320
|
);
|
|
7317
|
-
(0,
|
|
7321
|
+
(0, import_react27.useEffect)(
|
|
7318
7322
|
() => {
|
|
7319
7323
|
if (!calculateImmediately.current) {
|
|
7320
|
-
const
|
|
7321
|
-
|
|
7324
|
+
const width2 = resizeRef.current?.clientWidth;
|
|
7325
|
+
width2 && setTableAndColumnWidths(width2);
|
|
7322
7326
|
}
|
|
7323
7327
|
},
|
|
7324
7328
|
// 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
|
|
@@ -7326,7 +7330,7 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
|
7326
7330
|
[columns, setTableAndColumnWidths]
|
|
7327
7331
|
);
|
|
7328
7332
|
const setTableAndColumnWidthsDebounced = (0, import_use_debounce2.useDebouncedCallback)(setTableAndColumnWidths, 100);
|
|
7329
|
-
const onResize = (0,
|
|
7333
|
+
const onResize = (0, import_react27.useCallback)(
|
|
7330
7334
|
() => {
|
|
7331
7335
|
const target = resizeRef.current;
|
|
7332
7336
|
if (target && target.clientWidth !== tableWidth) {
|
|
@@ -7554,7 +7558,7 @@ function simpleDataRows(data = []) {
|
|
|
7554
7558
|
}
|
|
7555
7559
|
|
|
7556
7560
|
// src/components/Table/components/ExpandableHeader.tsx
|
|
7557
|
-
var
|
|
7561
|
+
var import_react28 = require("react");
|
|
7558
7562
|
|
|
7559
7563
|
// src/components/Loader.tsx
|
|
7560
7564
|
var import_jsx_runtime28 = require("@emotion/react/jsx-runtime");
|
|
@@ -7580,10 +7584,10 @@ var sizeToPixels = {
|
|
|
7580
7584
|
var import_jsx_runtime29 = require("@emotion/react/jsx-runtime");
|
|
7581
7585
|
function ExpandableHeader(props) {
|
|
7582
7586
|
const { title, column: column2, minStickyLeftOffset, as, tooltipEl } = props;
|
|
7583
|
-
const { tableState } = (0,
|
|
7587
|
+
const { tableState } = (0, import_react28.useContext)(TableStateContext);
|
|
7584
7588
|
const expandedColumnIds = useComputed(() => tableState.expandedColumnIds, [tableState]);
|
|
7585
7589
|
const isExpanded = expandedColumnIds.includes(column2.id);
|
|
7586
|
-
const [isLoading, setIsLoading] = (0,
|
|
7590
|
+
const [isLoading, setIsLoading] = (0, import_react28.useState)(false);
|
|
7587
7591
|
const applyStickyStyles = isExpanded && as !== "table";
|
|
7588
7592
|
const { hoverProps, isHovered } = useHover({});
|
|
7589
7593
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
@@ -7897,7 +7901,7 @@ var import_jsx_runtime31 = require("@emotion/react/jsx-runtime");
|
|
|
7897
7901
|
function KeptGroupRow(props) {
|
|
7898
7902
|
const { as, columnSizes, style, row, colSpan } = props;
|
|
7899
7903
|
const CellTag = as === "table" ? "td" : "div";
|
|
7900
|
-
const { tableState } = (0,
|
|
7904
|
+
const { tableState } = (0, import_react29.useContext)(TableStateContext);
|
|
7901
7905
|
const numHiddenSelectedRows = useComputed(() => tableState.keptRows.length, [tableState]);
|
|
7902
7906
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
7903
7907
|
CellTag,
|
|
@@ -8225,7 +8229,7 @@ function RowImpl(props) {
|
|
|
8225
8229
|
onDragOver,
|
|
8226
8230
|
...others
|
|
8227
8231
|
} = props;
|
|
8228
|
-
const { tableState } = (0,
|
|
8232
|
+
const { tableState } = (0, import_react30.useContext)(TableStateContext);
|
|
8229
8233
|
const { api, visibleColumns: columns } = tableState;
|
|
8230
8234
|
const { row, api: rowApi, isActive, isKept: isKeptRow, isLastKeptRow, level } = rs;
|
|
8231
8235
|
const isHeader = row.kind === HEADER;
|
|
@@ -8273,8 +8277,8 @@ function RowImpl(props) {
|
|
|
8273
8277
|
let foundFirstContentColumn = false;
|
|
8274
8278
|
let minStickyLeftOffset = 0;
|
|
8275
8279
|
let expandColumnHidden = false;
|
|
8276
|
-
const ref = (0,
|
|
8277
|
-
const dragOverCallback = (0,
|
|
8280
|
+
const ref = (0, import_react30.useRef)(null);
|
|
8281
|
+
const dragOverCallback = (0, import_react30.useCallback)(
|
|
8278
8282
|
(row2, evt) => onDragOver?.(row2, evt),
|
|
8279
8283
|
[onDragOver]
|
|
8280
8284
|
);
|
|
@@ -8494,7 +8498,7 @@ function TextFieldBase(props) {
|
|
|
8494
8498
|
const labelSuffix = useLabelSuffix(required, inputProps.readOnly);
|
|
8495
8499
|
const ElementType = multiline ? "textarea" : "input";
|
|
8496
8500
|
const tid = useTestIds(props, defaultTestId(label));
|
|
8497
|
-
const [isFocused, setIsFocused] = (0,
|
|
8501
|
+
const [isFocused, setIsFocused] = (0, import_react31.useState)(false);
|
|
8498
8502
|
const { hoverProps, isHovered } = (0, import_react_aria12.useHover)({});
|
|
8499
8503
|
const { focusWithinProps } = (0, import_react_aria12.useFocusWithin)({ onFocusWithinChange: setIsFocused });
|
|
8500
8504
|
const fieldRef = useGetRef(inputRef);
|
|
@@ -8704,7 +8708,7 @@ function getInputStylePalette(inputStylePalette) {
|
|
|
8704
8708
|
var import_jsx_runtime35 = require("@emotion/react/jsx-runtime");
|
|
8705
8709
|
function MenuSearchField(props) {
|
|
8706
8710
|
const tid = useTestIds(props);
|
|
8707
|
-
const inputRef = (0,
|
|
8711
|
+
const inputRef = (0, import_react32.useRef)(null);
|
|
8708
8712
|
const { labelProps, inputProps } = (0, import_textfield.useTextField)({ ...props }, inputRef);
|
|
8709
8713
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
8710
8714
|
TextFieldBase,
|
|
@@ -8729,9 +8733,9 @@ function Menu(props) {
|
|
|
8729
8733
|
getKey: (item) => (0, import_change_case2.camelCase)(item.label),
|
|
8730
8734
|
getChildren: (item) => item.items ?? []
|
|
8731
8735
|
});
|
|
8732
|
-
const [search, setSearch] = (0,
|
|
8736
|
+
const [search, setSearch] = (0, import_react33.useState)(void 0);
|
|
8733
8737
|
const { contains } = (0, import_react_aria13.useFilter)({ sensitivity: "base" });
|
|
8734
|
-
const filteredTree = (0,
|
|
8738
|
+
const filteredTree = (0, import_react33.useMemo)(() => {
|
|
8735
8739
|
const { items: items2, ...others } = tree;
|
|
8736
8740
|
const [itemsSection, persistentSection] = items2;
|
|
8737
8741
|
if (search) {
|
|
@@ -8749,7 +8753,7 @@ function Menu(props) {
|
|
|
8749
8753
|
return tree;
|
|
8750
8754
|
}
|
|
8751
8755
|
}, [tree, search, contains]);
|
|
8752
|
-
const menuChildren = (0,
|
|
8756
|
+
const menuChildren = (0, import_react33.useMemo)(() => {
|
|
8753
8757
|
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, "")));
|
|
8754
8758
|
}, [filteredTree]);
|
|
8755
8759
|
const state = (0, import_react_stately3.useTreeState)({
|
|
@@ -8762,10 +8766,10 @@ function Menu(props) {
|
|
|
8762
8766
|
keys !== "all" && onChange && onChange([...keys.values()].map((k) => k.toString())[0]);
|
|
8763
8767
|
}
|
|
8764
8768
|
});
|
|
8765
|
-
const menuRef = (0,
|
|
8769
|
+
const menuRef = (0, import_react33.useRef)(null);
|
|
8766
8770
|
const { menuProps } = (0, import_react_aria13.useMenu)({ ...ariaMenuProps, autoFocus: searchable ? false : true }, state, menuRef);
|
|
8767
8771
|
const tid = useTestIds(props);
|
|
8768
|
-
(0,
|
|
8772
|
+
(0, import_react33.useEffect)(() => filteredTree.update("items", { label: "items", items }), [items]);
|
|
8769
8773
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria13.FocusScope, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
8770
8774
|
"div",
|
|
8771
8775
|
{
|
|
@@ -8802,13 +8806,13 @@ function Menu(props) {
|
|
|
8802
8806
|
}
|
|
8803
8807
|
|
|
8804
8808
|
// src/components/internal/MenuItem.tsx
|
|
8805
|
-
var
|
|
8809
|
+
var import_react35 = require("react");
|
|
8806
8810
|
var import_react_aria16 = require("react-aria");
|
|
8807
8811
|
var import_react_router = require("react-router");
|
|
8808
8812
|
var import_react_router_dom3 = require("react-router-dom");
|
|
8809
8813
|
|
|
8810
8814
|
// src/components/ButtonModal.tsx
|
|
8811
|
-
var
|
|
8815
|
+
var import_react34 = require("react");
|
|
8812
8816
|
var import_react_aria15 = require("react-aria");
|
|
8813
8817
|
var import_react_stately4 = require("react-stately");
|
|
8814
8818
|
|
|
@@ -8829,7 +8833,7 @@ var import_jsx_runtime38 = require("@emotion/react/jsx-runtime");
|
|
|
8829
8833
|
function ButtonModal(props) {
|
|
8830
8834
|
const { storybookDefaultOpen, trigger, disabled, content, title } = props;
|
|
8831
8835
|
const state = (0, import_react_stately4.useMenuTriggerState)({ isOpen: storybookDefaultOpen });
|
|
8832
|
-
const buttonRef = (0,
|
|
8836
|
+
const buttonRef = (0, import_react34.useRef)(null);
|
|
8833
8837
|
const { menuTriggerProps } = (0, import_react_aria15.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
8834
8838
|
const tid = useTestIds(
|
|
8835
8839
|
props,
|
|
@@ -8883,7 +8887,7 @@ function MenuItemImpl(props) {
|
|
|
8883
8887
|
const isDisabled = Boolean(disabled);
|
|
8884
8888
|
const isSelected = state.selectionManager.selectedKeys.has(label);
|
|
8885
8889
|
const isFocused = state.selectionManager.focusedKey === item.key;
|
|
8886
|
-
const ref = (0,
|
|
8890
|
+
const ref = (0, import_react35.useRef)(null);
|
|
8887
8891
|
const history = (0, import_react_router.useHistory)();
|
|
8888
8892
|
const { hoverProps, isHovered } = (0, import_react_aria16.useHover)({});
|
|
8889
8893
|
const tid = useTestIds(props);
|
|
@@ -9004,19 +9008,19 @@ function Popover(props) {
|
|
|
9004
9008
|
}
|
|
9005
9009
|
|
|
9006
9010
|
// src/inputs/internal/ComboBoxBase.tsx
|
|
9007
|
-
var
|
|
9011
|
+
var import_react46 = require("react");
|
|
9008
9012
|
var import_react_aria27 = require("react-aria");
|
|
9009
9013
|
var import_react_stately7 = require("react-stately");
|
|
9010
9014
|
|
|
9011
9015
|
// src/inputs/internal/ComboBoxInput.tsx
|
|
9012
|
-
var
|
|
9016
|
+
var import_react45 = require("react");
|
|
9013
9017
|
var import_react_aria26 = require("react-aria");
|
|
9014
9018
|
|
|
9015
9019
|
// src/inputs/hooks/useGrowingTextField.tsx
|
|
9016
9020
|
var import_utils32 = require("@react-aria/utils");
|
|
9017
|
-
var
|
|
9021
|
+
var import_react36 = require("react");
|
|
9018
9022
|
function useGrowingTextField({ inputRef, inputWrapRef, value, disabled }) {
|
|
9019
|
-
const onHeightChange = (0,
|
|
9023
|
+
const onHeightChange = (0, import_react36.useCallback)(() => {
|
|
9020
9024
|
if (disabled) return;
|
|
9021
9025
|
const input = inputRef.current;
|
|
9022
9026
|
const inputWrap = inputWrapRef.current;
|
|
@@ -9048,12 +9052,12 @@ function useGrowingTextField({ inputRef, inputWrapRef, value, disabled }) {
|
|
|
9048
9052
|
}
|
|
9049
9053
|
|
|
9050
9054
|
// src/inputs/TreeSelectField/TreeSelectField.tsx
|
|
9051
|
-
var
|
|
9055
|
+
var import_react44 = __toESM(require("react"), 1);
|
|
9052
9056
|
var import_react_aria25 = require("react-aria");
|
|
9053
9057
|
var import_react_stately6 = require("react-stately");
|
|
9054
9058
|
|
|
9055
9059
|
// src/inputs/internal/ListBox.tsx
|
|
9056
|
-
var
|
|
9060
|
+
var import_react43 = require("react");
|
|
9057
9061
|
var import_react_aria24 = require("react-aria");
|
|
9058
9062
|
|
|
9059
9063
|
// src/inputs/internal/constants.ts
|
|
@@ -9064,25 +9068,25 @@ var sectionSeparatorHeight = 1;
|
|
|
9064
9068
|
var import_react_aria23 = require("react-aria");
|
|
9065
9069
|
|
|
9066
9070
|
// src/inputs/internal/Option.tsx
|
|
9067
|
-
var
|
|
9071
|
+
var import_react39 = require("react");
|
|
9068
9072
|
var import_react_aria20 = require("react-aria");
|
|
9069
9073
|
|
|
9070
9074
|
// src/inputs/ChipSelectField.tsx
|
|
9071
9075
|
var import_change_case3 = require("change-case");
|
|
9072
|
-
var
|
|
9076
|
+
var import_react38 = require("react");
|
|
9073
9077
|
var import_react_aria19 = require("react-aria");
|
|
9074
9078
|
var import_react_stately5 = require("react-stately");
|
|
9075
9079
|
|
|
9076
9080
|
// src/inputs/ChipTextField.tsx
|
|
9077
|
-
var
|
|
9081
|
+
var import_react37 = require("react");
|
|
9078
9082
|
var import_react_aria18 = require("react-aria");
|
|
9079
9083
|
var import_jsx_runtime42 = require("@emotion/react/jsx-runtime");
|
|
9080
9084
|
function ChipTextField(props) {
|
|
9081
9085
|
const { autoFocus, onFocus, onBlur, onEnter, onChange, required, label, value, blurOnEscape = true } = props;
|
|
9082
9086
|
const { fieldProps } = usePresentationContext();
|
|
9083
|
-
const valueRef = (0,
|
|
9087
|
+
const valueRef = (0, import_react37.useRef)(value);
|
|
9084
9088
|
const tid = useTestIds(props, "chipField");
|
|
9085
|
-
const [isFocused, setIsFocused] = (0,
|
|
9089
|
+
const [isFocused, setIsFocused] = (0, import_react37.useState)(false);
|
|
9086
9090
|
const { focusProps } = (0, import_react_aria18.useFocus)({
|
|
9087
9091
|
onFocus: (e) => {
|
|
9088
9092
|
if (fieldRef.current) {
|
|
@@ -9099,9 +9103,8 @@ function ChipTextField(props) {
|
|
|
9099
9103
|
onBlur: () => maybeCall(onBlur),
|
|
9100
9104
|
onFocusChange: setIsFocused
|
|
9101
9105
|
});
|
|
9102
|
-
const fieldRef = (0,
|
|
9103
|
-
|
|
9104
|
-
(0, import_react36.useEffect)(
|
|
9106
|
+
const fieldRef = (0, import_react37.useRef)(null);
|
|
9107
|
+
(0, import_react37.useEffect)(
|
|
9105
9108
|
() => {
|
|
9106
9109
|
autoFocus && fieldRef.current?.focus();
|
|
9107
9110
|
},
|
|
@@ -9134,8 +9137,9 @@ function ChipTextField(props) {
|
|
|
9134
9137
|
},
|
|
9135
9138
|
...focusProps,
|
|
9136
9139
|
css: {
|
|
9137
|
-
...
|
|
9138
|
-
...
|
|
9140
|
+
...chipBaseStyles(fieldProps?.compact),
|
|
9141
|
+
...Css.mwPx(32).outline0.$,
|
|
9142
|
+
...isFocused && Css.bshFocus.$
|
|
9139
9143
|
},
|
|
9140
9144
|
...tid,
|
|
9141
9145
|
children: valueRef.current
|
|
@@ -9147,14 +9151,7 @@ function ChipTextField(props) {
|
|
|
9147
9151
|
var import_jsx_runtime43 = require("@emotion/react/jsx-runtime");
|
|
9148
9152
|
function ListBoxChip({ label }) {
|
|
9149
9153
|
const { fieldProps } = usePresentationContext();
|
|
9150
|
-
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
9151
|
-
"span",
|
|
9152
|
-
{
|
|
9153
|
-
css: Css[fieldProps?.typeScale ?? "sm"].tal.bgGray300.gray900.br16.pxPx(10).pyPx(2).lineClamp1.wbba.$,
|
|
9154
|
-
title: label,
|
|
9155
|
-
children: label
|
|
9156
|
-
}
|
|
9157
|
-
);
|
|
9154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { css: { ...chipBaseStyles(fieldProps?.compact), ...Css.truncate.dib.$ }, title: label, children: label });
|
|
9158
9155
|
}
|
|
9159
9156
|
|
|
9160
9157
|
// src/inputs/Value.ts
|
|
@@ -9206,7 +9203,7 @@ function defaultOptionLabel(opt) {
|
|
|
9206
9203
|
// src/inputs/ChipSelectField.tsx
|
|
9207
9204
|
var import_jsx_runtime44 = require("@emotion/react/jsx-runtime");
|
|
9208
9205
|
function ChipSelectField(props) {
|
|
9209
|
-
const firstRender = (0,
|
|
9206
|
+
const firstRender = (0, import_react38.useRef)(true);
|
|
9210
9207
|
const { fieldProps } = usePresentationContext();
|
|
9211
9208
|
const {
|
|
9212
9209
|
label,
|
|
@@ -9228,9 +9225,9 @@ function ChipSelectField(props) {
|
|
|
9228
9225
|
const typeScale = fieldProps?.typeScale ?? "sm";
|
|
9229
9226
|
const isDisabled = !!disabled;
|
|
9230
9227
|
const showClearButton = !disabled && clearable && !!value;
|
|
9231
|
-
const chipStyles =
|
|
9232
|
-
const [visualFocus, setVisualFocus] = (0,
|
|
9233
|
-
const [isClearFocused, setIsClearFocused] = (0,
|
|
9228
|
+
const chipStyles = { ...chipBaseStyles(), ...Css.pyPx(2).gap0.aiStretch.$ };
|
|
9229
|
+
const [visualFocus, setVisualFocus] = (0, import_react38.useState)(false);
|
|
9230
|
+
const [isClearFocused, setIsClearFocused] = (0, import_react38.useState)(false);
|
|
9234
9231
|
const { focusProps } = (0, import_react_aria19.useFocus)({
|
|
9235
9232
|
onFocus: (e) => {
|
|
9236
9233
|
if (popoverRef.current && popoverRef.current.contains(e.relatedTarget)) {
|
|
@@ -9248,10 +9245,10 @@ function ChipSelectField(props) {
|
|
|
9248
9245
|
onFocusChange: (isFocused) => !state.isOpen && setVisualFocus(isFocused)
|
|
9249
9246
|
});
|
|
9250
9247
|
const { focusProps: clearFocusProps } = (0, import_react_aria19.useFocus)({ onFocusChange: setIsClearFocused });
|
|
9251
|
-
const buttonRef = (0,
|
|
9252
|
-
const popoverRef = (0,
|
|
9253
|
-
const listBoxRef = (0,
|
|
9254
|
-
const wrapperRef = (0,
|
|
9248
|
+
const buttonRef = (0, import_react38.useRef)(null);
|
|
9249
|
+
const popoverRef = (0, import_react38.useRef)(null);
|
|
9250
|
+
const listBoxRef = (0, import_react38.useRef)(null);
|
|
9251
|
+
const wrapperRef = (0, import_react38.useRef)(null);
|
|
9255
9252
|
const listData = (0, import_react_stately5.useListData)({
|
|
9256
9253
|
initialItems: !onCreateNew ? options : [
|
|
9257
9254
|
{ title: "Options", options },
|
|
@@ -9260,7 +9257,7 @@ function ChipSelectField(props) {
|
|
|
9260
9257
|
initialSelectedKeys: [valueToKey(value)],
|
|
9261
9258
|
getKey: (item) => isListBoxSection(item) ? item.title : getOptionValue(item)
|
|
9262
9259
|
});
|
|
9263
|
-
(0,
|
|
9260
|
+
(0, import_react38.useEffect)(
|
|
9264
9261
|
() => {
|
|
9265
9262
|
if (!firstRender.current) {
|
|
9266
9263
|
if (onCreateNew) {
|
|
@@ -9276,7 +9273,7 @@ function ChipSelectField(props) {
|
|
|
9276
9273
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9277
9274
|
[options]
|
|
9278
9275
|
);
|
|
9279
|
-
const selectChildren = (0,
|
|
9276
|
+
const selectChildren = (0, import_react38.useMemo)(
|
|
9280
9277
|
() => listData.items.map((s) => {
|
|
9281
9278
|
if (isListBoxSection(s)) {
|
|
9282
9279
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_stately5.Section, { title: s.title, items: s.options, children: (item) => {
|
|
@@ -9340,7 +9337,7 @@ function ChipSelectField(props) {
|
|
|
9340
9337
|
// Ensures the menu never gets too small.
|
|
9341
9338
|
minWidth: 200
|
|
9342
9339
|
};
|
|
9343
|
-
const [showInput, setShowInput] = (0,
|
|
9340
|
+
const [showInput, setShowInput] = (0, import_react38.useState)(false);
|
|
9344
9341
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
9345
9342
|
showInput && onCreateNew && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9346
9343
|
CreateNewField,
|
|
@@ -9362,7 +9359,7 @@ function ChipSelectField(props) {
|
|
|
9362
9359
|
ref: wrapperRef,
|
|
9363
9360
|
css: {
|
|
9364
9361
|
...chipStyles,
|
|
9365
|
-
...Css.
|
|
9362
|
+
...Css.relative.p0.mwPx(32).$,
|
|
9366
9363
|
...visualFocus ? Css.bshFocus.$ : {},
|
|
9367
9364
|
...showInput ? Css.dn.$ : {}
|
|
9368
9365
|
},
|
|
@@ -9375,8 +9372,8 @@ function ChipSelectField(props) {
|
|
|
9375
9372
|
ref: buttonRef,
|
|
9376
9373
|
css: {
|
|
9377
9374
|
...Css.tal.br16.pxPx(10).pyPx(2).outline0.if(showClearButton).prPx(4).borderRadius("16px 0 0 16px").$,
|
|
9378
|
-
...isDisabled ?
|
|
9379
|
-
"&:hover:not(:disabled)":
|
|
9375
|
+
...isDisabled ? chipDisabledStyles : {},
|
|
9376
|
+
"&:hover:not(:disabled)": chipHoverStyles
|
|
9380
9377
|
},
|
|
9381
9378
|
title: state.selectedItem ? state.selectedItem.textValue : placeholder,
|
|
9382
9379
|
...tid,
|
|
@@ -9389,7 +9386,7 @@ function ChipSelectField(props) {
|
|
|
9389
9386
|
...clearFocusProps,
|
|
9390
9387
|
css: {
|
|
9391
9388
|
...Css.prPx(4).borderRadius("0 16px 16px 0").outline0.$,
|
|
9392
|
-
"&:hover":
|
|
9389
|
+
"&:hover": chipHoverStyles,
|
|
9393
9390
|
...isClearFocused ? Css.boxShadow(`0px 0px 0px 2px rgba(3,105,161,1)`).$ : {}
|
|
9394
9391
|
},
|
|
9395
9392
|
onClick: () => {
|
|
@@ -9398,7 +9395,7 @@ function ChipSelectField(props) {
|
|
|
9398
9395
|
},
|
|
9399
9396
|
"aria-label": "Remove",
|
|
9400
9397
|
...tid.clearButton,
|
|
9401
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Icon, { icon: "x", inc: typeScale === "xs" ? 2 : void 0 })
|
|
9398
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Icon, { icon: "x", color: "rgba(141, 141, 141, 1)" /* Gray600 */, inc: typeScale === "xs" ? 2 : void 0 })
|
|
9402
9399
|
}
|
|
9403
9400
|
)
|
|
9404
9401
|
]
|
|
@@ -9445,7 +9442,7 @@ function isListBoxSection(obj) {
|
|
|
9445
9442
|
}
|
|
9446
9443
|
function CreateNewField(props) {
|
|
9447
9444
|
const { onBlur, onEnter } = props;
|
|
9448
|
-
const [value, setValue] = (0,
|
|
9445
|
+
const [value, setValue] = (0, import_react38.useState)("Add new");
|
|
9449
9446
|
const tid = useTestIds(props);
|
|
9450
9447
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
9451
9448
|
ChipTextField,
|
|
@@ -9465,7 +9462,7 @@ function CreateNewField(props) {
|
|
|
9465
9462
|
var import_jsx_runtime45 = require("@emotion/react/jsx-runtime");
|
|
9466
9463
|
function Option(props) {
|
|
9467
9464
|
const { item, state, contrast = false, scrollToIndex, disabledReason } = props;
|
|
9468
|
-
const ref = (0,
|
|
9465
|
+
const ref = (0, import_react39.useRef)(null);
|
|
9469
9466
|
const { hoverProps, isHovered } = (0, import_react_aria20.useHover)({});
|
|
9470
9467
|
const themeStyles = {
|
|
9471
9468
|
item: Css.gray900.if(contrast).white.$,
|
|
@@ -9512,7 +9509,7 @@ function Option(props) {
|
|
|
9512
9509
|
}
|
|
9513
9510
|
|
|
9514
9511
|
// src/inputs/internal/VirtualizedOptions.tsx
|
|
9515
|
-
var
|
|
9512
|
+
var import_react42 = require("react");
|
|
9516
9513
|
var import_react_virtuoso = require("react-virtuoso");
|
|
9517
9514
|
|
|
9518
9515
|
// src/inputs/internal/LoadingDots.tsx
|
|
@@ -9536,11 +9533,11 @@ function LoadingDots({ contrast }) {
|
|
|
9536
9533
|
}
|
|
9537
9534
|
|
|
9538
9535
|
// src/inputs/TreeSelectField/TreeOption.tsx
|
|
9539
|
-
var
|
|
9536
|
+
var import_react41 = require("react");
|
|
9540
9537
|
var import_react_aria22 = require("react-aria");
|
|
9541
9538
|
|
|
9542
9539
|
// src/inputs/CheckboxBase.tsx
|
|
9543
|
-
var
|
|
9540
|
+
var import_react40 = require("react");
|
|
9544
9541
|
var import_react_aria21 = require("react-aria");
|
|
9545
9542
|
var import_jsx_runtime47 = require("@emotion/react/jsx-runtime");
|
|
9546
9543
|
function CheckboxBase(props) {
|
|
@@ -9557,7 +9554,7 @@ function CheckboxBase(props) {
|
|
|
9557
9554
|
withLabelElement = true,
|
|
9558
9555
|
tooltip
|
|
9559
9556
|
} = props;
|
|
9560
|
-
const ref = (0,
|
|
9557
|
+
const ref = (0, import_react40.useRef)(null);
|
|
9561
9558
|
const { isFocusVisible, focusProps } = (0, import_react_aria21.useFocusRing)(ariaProps);
|
|
9562
9559
|
const tid = useTestIds(props, defaultTestId(label));
|
|
9563
9560
|
const Tag2 = withLabelElement ? "label" : "div";
|
|
@@ -9638,7 +9635,7 @@ function TreeOption(props) {
|
|
|
9638
9635
|
const leveledOption = item.value;
|
|
9639
9636
|
if (!leveledOption) return null;
|
|
9640
9637
|
const [option, level] = leveledOption;
|
|
9641
|
-
const ref = (0,
|
|
9638
|
+
const ref = (0, import_react41.useRef)(null);
|
|
9642
9639
|
const { hoverProps, isHovered } = (0, import_react_aria22.useHover)({});
|
|
9643
9640
|
const tid = useTestIds(props, "treeOption");
|
|
9644
9641
|
const { collapsedKeys, setCollapsedKeys, getOptionValue } = useTreeSelectFieldProvider();
|
|
@@ -9755,10 +9752,10 @@ function VirtualizedOptions(props) {
|
|
|
9755
9752
|
isTree,
|
|
9756
9753
|
allowCollapsing
|
|
9757
9754
|
} = props;
|
|
9758
|
-
const virtuosoRef = (0,
|
|
9755
|
+
const virtuosoRef = (0, import_react42.useRef)(null);
|
|
9759
9756
|
const focusedItem = state.collection.getItem(state.selectionManager.focusedKey);
|
|
9760
9757
|
const selectedItem = state.selectionManager.selectedKeys.size > 0 ? state.collection.getItem([...state.selectionManager.selectedKeys.values()][0]) : void 0;
|
|
9761
|
-
(0,
|
|
9758
|
+
(0, import_react42.useEffect)(
|
|
9762
9759
|
() => {
|
|
9763
9760
|
if (scrollOnFocus && virtuosoRef.current && focusedItem?.index) {
|
|
9764
9761
|
virtuosoRef.current.scrollToIndex({ index: focusedItem.index, align: "center" });
|
|
@@ -9898,13 +9895,13 @@ function ListBox(props) {
|
|
|
9898
9895
|
const { listBoxProps } = (0, import_react_aria24.useListBox)({ disallowEmptySelection: true, ...props }, state, listBoxRef);
|
|
9899
9896
|
const positionMaxHeight = positionProps.style?.maxHeight;
|
|
9900
9897
|
const popoverMaxHeight = positionMaxHeight && typeof positionMaxHeight === "number" ? Math.min(positionMaxHeight, maxPopoverHeight) : maxPopoverHeight;
|
|
9901
|
-
const [popoverHeight, setPopoverHeight] = (0,
|
|
9898
|
+
const [popoverHeight, setPopoverHeight] = (0, import_react43.useState)(popoverMaxHeight);
|
|
9902
9899
|
const isMultiSelect = state.selectionManager.selectionMode === "multiple";
|
|
9903
9900
|
const firstItem = state.collection.at(0);
|
|
9904
9901
|
const hasSections = firstItem && firstItem.type === "section";
|
|
9905
|
-
const selectedList = (0,
|
|
9906
|
-
const firstRender = (0,
|
|
9907
|
-
const virtuosoListHeight = (0,
|
|
9902
|
+
const selectedList = (0, import_react43.useRef)(null);
|
|
9903
|
+
const firstRender = (0, import_react43.useRef)(true);
|
|
9904
|
+
const virtuosoListHeight = (0, import_react43.useRef)(0);
|
|
9908
9905
|
const onListHeightChange = (listHeight) => {
|
|
9909
9906
|
virtuosoListHeight.current = listHeight;
|
|
9910
9907
|
const height = (selectedList.current?.offsetHeight || 0) + listHeight;
|
|
@@ -9912,7 +9909,7 @@ function ListBox(props) {
|
|
|
9912
9909
|
Math.min(popoverMaxHeight, hasSections ? height + persistentItemHeight + sectionSeparatorHeight : height)
|
|
9913
9910
|
);
|
|
9914
9911
|
};
|
|
9915
|
-
(0,
|
|
9912
|
+
(0, import_react43.useEffect)(
|
|
9916
9913
|
() => {
|
|
9917
9914
|
if (!firstRender.current && isMultiSelect && (state.selectionManager.selectedKeys.size === 0 || state.selectionManager.selectedKeys.size === 1)) {
|
|
9918
9915
|
onListHeightChange(virtuosoListHeight.current);
|
|
@@ -9999,13 +9996,13 @@ function TreeSelectField(props) {
|
|
|
9999
9996
|
defaultCollapsed = false,
|
|
10000
9997
|
...otherProps
|
|
10001
9998
|
} = props;
|
|
10002
|
-
const [collapsedKeys, setCollapsedKeys] = (0,
|
|
10003
|
-
(0,
|
|
9999
|
+
const [collapsedKeys, setCollapsedKeys] = (0, import_react44.useState)([]);
|
|
10000
|
+
(0, import_react44.useEffect)(() => {
|
|
10004
10001
|
setCollapsedKeys(
|
|
10005
10002
|
!Array.isArray(options) ? [] : defaultCollapsed ? options.map((o) => getOptionValue(o)) : options.flatMap(flattenOptions).filter((o) => o.defaultCollapsed).map((o) => getOptionValue(o))
|
|
10006
10003
|
);
|
|
10007
10004
|
}, [options, defaultCollapsed]);
|
|
10008
|
-
const contextValue = (0,
|
|
10005
|
+
const contextValue = (0, import_react44.useMemo)(
|
|
10009
10006
|
() => ({ collapsedKeys, setCollapsedKeys, getOptionValue }),
|
|
10010
10007
|
// 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
|
|
10011
10008
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -10026,9 +10023,9 @@ function TreeSelectField(props) {
|
|
|
10026
10023
|
) });
|
|
10027
10024
|
}
|
|
10028
10025
|
function useTreeSelectFieldProvider() {
|
|
10029
|
-
return (0,
|
|
10026
|
+
return (0, import_react44.useContext)(CollapsedContext);
|
|
10030
10027
|
}
|
|
10031
|
-
var CollapsedContext =
|
|
10028
|
+
var CollapsedContext = import_react44.default.createContext({
|
|
10032
10029
|
collapsedKeys: [],
|
|
10033
10030
|
setCollapsedKeys: () => {
|
|
10034
10031
|
},
|
|
@@ -10062,7 +10059,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10062
10059
|
const { contains } = (0, import_react_aria25.useFilter)({ sensitivity: "base" });
|
|
10063
10060
|
const { collapsedKeys } = useTreeSelectFieldProvider();
|
|
10064
10061
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
10065
|
-
const initTreeFieldState = (0,
|
|
10062
|
+
const initTreeFieldState = (0, import_react44.useCallback)(() => {
|
|
10066
10063
|
const selectedKeys = new Set(
|
|
10067
10064
|
values?.flatMap((v) => {
|
|
10068
10065
|
const foundOptions = findOptions(initialOptions, valueToKey(v), getOptionValue);
|
|
@@ -10112,13 +10109,13 @@ function TreeSelectFieldBase(props) {
|
|
|
10112
10109
|
getOptionValue,
|
|
10113
10110
|
collapsedKeys
|
|
10114
10111
|
]);
|
|
10115
|
-
const [fieldState, setFieldState] = (0,
|
|
10116
|
-
(0,
|
|
10112
|
+
const [fieldState, setFieldState] = (0, import_react44.useState)(() => initTreeFieldState());
|
|
10113
|
+
(0, import_react44.useEffect)(() => {
|
|
10117
10114
|
if (Array.isArray(options)) {
|
|
10118
10115
|
setFieldState((prevState) => ({ ...prevState, allOptions: options }));
|
|
10119
10116
|
}
|
|
10120
10117
|
}, [options]);
|
|
10121
|
-
(0,
|
|
10118
|
+
(0, import_react44.useEffect)(() => {
|
|
10122
10119
|
const selectedKeys = fieldState.selectedOptions.map((o) => valueToKey(getOptionValue(o)));
|
|
10123
10120
|
if (
|
|
10124
10121
|
// If the values were cleared
|
|
@@ -10128,8 +10125,8 @@ function TreeSelectFieldBase(props) {
|
|
|
10128
10125
|
setFieldState(initTreeFieldState());
|
|
10129
10126
|
}
|
|
10130
10127
|
}, [getOptionValue, initTreeFieldState, values]);
|
|
10131
|
-
const reactToCollapse = (0,
|
|
10132
|
-
(0,
|
|
10128
|
+
const reactToCollapse = (0, import_react44.useRef)(false);
|
|
10129
|
+
(0, import_react44.useEffect)(
|
|
10133
10130
|
() => {
|
|
10134
10131
|
if (reactToCollapse.current) {
|
|
10135
10132
|
setFieldState(({ allOptions, inputValue, ...others }) => ({
|
|
@@ -10149,7 +10146,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10149
10146
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10150
10147
|
[collapsedKeys]
|
|
10151
10148
|
);
|
|
10152
|
-
const onInputChange = (0,
|
|
10149
|
+
const onInputChange = (0, import_react44.useCallback)(
|
|
10153
10150
|
(inputValue) => {
|
|
10154
10151
|
setFieldState((prevState) => {
|
|
10155
10152
|
return {
|
|
@@ -10166,7 +10163,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10166
10163
|
},
|
|
10167
10164
|
[collapsedKeys, contains, getOptionLabel, getOptionValue]
|
|
10168
10165
|
);
|
|
10169
|
-
const maybeInitLoad = (0,
|
|
10166
|
+
const maybeInitLoad = (0, import_react44.useCallback)(
|
|
10170
10167
|
async (options2, fieldState2, setFieldState2) => {
|
|
10171
10168
|
if (!Array.isArray(options2)) {
|
|
10172
10169
|
setFieldState2((prevState) => ({ ...prevState, optionsLoading: true }));
|
|
@@ -10186,7 +10183,7 @@ function TreeSelectFieldBase(props) {
|
|
|
10186
10183
|
},
|
|
10187
10184
|
[collapsedKeys, contains, getOptionLabel, getOptionValue]
|
|
10188
10185
|
);
|
|
10189
|
-
const firstOpen = (0,
|
|
10186
|
+
const firstOpen = (0, import_react44.useRef)(true);
|
|
10190
10187
|
function onOpenChange(isOpen) {
|
|
10191
10188
|
if (firstOpen.current && isOpen) {
|
|
10192
10189
|
maybeInitLoad(options, fieldState, setFieldState);
|
|
@@ -10322,12 +10319,12 @@ function TreeSelectFieldBase(props) {
|
|
|
10322
10319
|
}));
|
|
10323
10320
|
}
|
|
10324
10321
|
}
|
|
10325
|
-
const comboBoxRef = (0,
|
|
10326
|
-
const triggerRef = (0,
|
|
10327
|
-
const inputRef = (0,
|
|
10328
|
-
const inputWrapRef = (0,
|
|
10329
|
-
const listBoxRef = (0,
|
|
10330
|
-
const popoverRef = (0,
|
|
10322
|
+
const comboBoxRef = (0, import_react44.useRef)(null);
|
|
10323
|
+
const triggerRef = (0, import_react44.useRef)(null);
|
|
10324
|
+
const inputRef = (0, import_react44.useRef)(null);
|
|
10325
|
+
const inputWrapRef = (0, import_react44.useRef)(null);
|
|
10326
|
+
const listBoxRef = (0, import_react44.useRef)(null);
|
|
10327
|
+
const popoverRef = (0, import_react44.useRef)(null);
|
|
10331
10328
|
const {
|
|
10332
10329
|
buttonProps: triggerProps,
|
|
10333
10330
|
inputProps,
|
|
@@ -10464,7 +10461,7 @@ function ComboBoxInput(props) {
|
|
|
10464
10461
|
const { wrap = false } = usePresentationContext();
|
|
10465
10462
|
const allowWrap = wrap || multiline;
|
|
10466
10463
|
const { collapsedKeys, setCollapsedKeys } = useTreeSelectFieldProvider();
|
|
10467
|
-
const [isFocused, setIsFocused] = (0,
|
|
10464
|
+
const [isFocused, setIsFocused] = (0, import_react45.useState)(false);
|
|
10468
10465
|
const isMultiSelect = state.selectionManager.selectionMode === "multiple";
|
|
10469
10466
|
const showNumSelection = isMultiSelect && state.selectionManager.selectedKeys.size > 1;
|
|
10470
10467
|
const showChipSelection = isMultiSelect && state.selectionManager.selectedKeys.size > 0;
|
|
@@ -10630,41 +10627,41 @@ function ComboBoxBase(props) {
|
|
|
10630
10627
|
...otherProps
|
|
10631
10628
|
} = props;
|
|
10632
10629
|
const labelStyle = otherProps.labelStyle ?? fieldProps?.labelStyle ?? "above";
|
|
10633
|
-
const getOptionLabel = (0,
|
|
10630
|
+
const getOptionLabel = (0, import_react46.useCallback)(
|
|
10634
10631
|
(o) => unsetLabel && o === unsetOption ? unsetLabel : onAddNew && o === addNewOption ? addNewOption.name : propOptionLabel(o),
|
|
10635
10632
|
// propOptionLabel is basically always a lambda, so don't dep on it
|
|
10636
10633
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10637
10634
|
[unsetLabel]
|
|
10638
10635
|
);
|
|
10639
|
-
const getOptionValue = (0,
|
|
10636
|
+
const getOptionValue = (0, import_react46.useCallback)(
|
|
10640
10637
|
(o) => unsetLabel && o === unsetOption ? void 0 : onAddNew && o === addNewOption ? addNewOption.id : propOptionValue(o),
|
|
10641
10638
|
// propOptionValue is basically always a lambda, so don't dep on it
|
|
10642
10639
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10643
10640
|
[unsetLabel]
|
|
10644
10641
|
);
|
|
10645
|
-
const getOptionMenuLabel = (0,
|
|
10642
|
+
const getOptionMenuLabel = (0, import_react46.useCallback)(
|
|
10646
10643
|
(o) => propOptionMenuLabel ? propOptionMenuLabel(o, Boolean(unsetLabel) && o === unsetOption, Boolean(onAddNew) && o === addNewOption) : getOptionLabel(o),
|
|
10647
10644
|
// propOptionMenuLabel is basically always a lambda, so don't dep on it
|
|
10648
10645
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10649
10646
|
[unsetLabel, getOptionLabel]
|
|
10650
10647
|
);
|
|
10651
|
-
const options = (0,
|
|
10648
|
+
const options = (0, import_react46.useMemo)(
|
|
10652
10649
|
() => initializeOptions(propOptions, getOptionValue, unsetLabel, !!onAddNew),
|
|
10653
10650
|
// If the caller is using { current, load, options }, memoize on only `current` and `options` values.
|
|
10654
10651
|
// ...and don't bother on memoizing on getOptionValue b/c it's basically always a lambda
|
|
10655
10652
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10656
10653
|
Array.isArray(propOptions) ? [propOptions, unsetLabel, onAddNew] : [propOptions.current, propOptions.options, unsetLabel, onAddNew]
|
|
10657
10654
|
);
|
|
10658
|
-
const values = (0,
|
|
10659
|
-
const inputStylePalette = (0,
|
|
10660
|
-
const selectedOptions = (0,
|
|
10655
|
+
const values = (0, import_react46.useMemo)(() => propValues ?? [], [propValues]);
|
|
10656
|
+
const inputStylePalette = (0, import_react46.useMemo)(() => propsInputStylePalette, [propsInputStylePalette]);
|
|
10657
|
+
const selectedOptions = (0, import_react46.useMemo)(
|
|
10661
10658
|
() => options.filter((o) => values.includes(getOptionValue(o))),
|
|
10662
10659
|
[options, values, getOptionValue]
|
|
10663
10660
|
);
|
|
10664
10661
|
const { contains } = (0, import_react_aria27.useFilter)({ sensitivity: "base" });
|
|
10665
10662
|
const isDisabled = !!disabled;
|
|
10666
10663
|
const isReadOnly = !!readOnly;
|
|
10667
|
-
const [fieldState, setFieldState] = (0,
|
|
10664
|
+
const [fieldState, setFieldState] = (0, import_react46.useState)(() => {
|
|
10668
10665
|
return {
|
|
10669
10666
|
inputValue: getInputValue(selectedOptions, getOptionLabel, multiselect, nothingSelectedText, isReadOnly),
|
|
10670
10667
|
searchValue: void 0,
|
|
@@ -10672,7 +10669,7 @@ function ComboBoxBase(props) {
|
|
|
10672
10669
|
};
|
|
10673
10670
|
});
|
|
10674
10671
|
const { searchValue } = fieldState;
|
|
10675
|
-
const filteredOptions = (0,
|
|
10672
|
+
const filteredOptions = (0, import_react46.useMemo)(() => {
|
|
10676
10673
|
return !searchValue ? options : options.filter((o) => contains(getOptionLabel(o), searchValue) || o === addNewOption);
|
|
10677
10674
|
}, [options, searchValue, getOptionLabel, contains]);
|
|
10678
10675
|
function resetField() {
|
|
@@ -10711,7 +10708,7 @@ function ComboBoxBase(props) {
|
|
|
10711
10708
|
setFieldState((prevState) => ({ ...prevState, optionsLoading: false }));
|
|
10712
10709
|
}
|
|
10713
10710
|
}
|
|
10714
|
-
const firstOpen = (0,
|
|
10711
|
+
const firstOpen = (0, import_react46.useRef)(true);
|
|
10715
10712
|
function onOpenChange(isOpen) {
|
|
10716
10713
|
if (firstOpen.current && isOpen) {
|
|
10717
10714
|
maybeInitLoad();
|
|
@@ -10721,12 +10718,12 @@ function ComboBoxBase(props) {
|
|
|
10721
10718
|
setFieldState((prevState) => ({ ...prevState, inputValue: "" }));
|
|
10722
10719
|
}
|
|
10723
10720
|
}
|
|
10724
|
-
const comboBoxRef = (0,
|
|
10725
|
-
const triggerRef = (0,
|
|
10726
|
-
const inputRef = (0,
|
|
10727
|
-
const inputWrapRef = (0,
|
|
10728
|
-
const listBoxRef = (0,
|
|
10729
|
-
const popoverRef = (0,
|
|
10721
|
+
const comboBoxRef = (0, import_react46.useRef)(null);
|
|
10722
|
+
const triggerRef = (0, import_react46.useRef)(null);
|
|
10723
|
+
const inputRef = (0, import_react46.useRef)(null);
|
|
10724
|
+
const inputWrapRef = (0, import_react46.useRef)(null);
|
|
10725
|
+
const listBoxRef = (0, import_react46.useRef)(null);
|
|
10726
|
+
const popoverRef = (0, import_react46.useRef)(null);
|
|
10730
10727
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
10731
10728
|
const comboBoxProps = {
|
|
10732
10729
|
...otherProps,
|
|
@@ -10754,7 +10751,7 @@ function ComboBoxBase(props) {
|
|
|
10754
10751
|
}
|
|
10755
10752
|
}
|
|
10756
10753
|
});
|
|
10757
|
-
const selectedKeys = (0,
|
|
10754
|
+
const selectedKeys = (0, import_react46.useMemo)(() => {
|
|
10758
10755
|
return selectedOptions.map((o) => valueToKey(getOptionValue(o)));
|
|
10759
10756
|
}, [selectedOptions, getOptionValue]);
|
|
10760
10757
|
state.selectionManager.state = (0, import_react_stately7.useMultipleSelectionState)({
|
|
@@ -10765,7 +10762,7 @@ function ComboBoxBase(props) {
|
|
|
10765
10762
|
onSelectionChange
|
|
10766
10763
|
});
|
|
10767
10764
|
const [debouncedSearch] = (0, import_use_debounce4.useDebounce)(searchValue, 300);
|
|
10768
|
-
(0,
|
|
10765
|
+
(0, import_react46.useEffect)(() => {
|
|
10769
10766
|
if (state.isOpen && multiselect && !debouncedSearch) {
|
|
10770
10767
|
setFieldState((prevState) => ({
|
|
10771
10768
|
...prevState,
|
|
@@ -10780,7 +10777,7 @@ function ComboBoxBase(props) {
|
|
|
10780
10777
|
}));
|
|
10781
10778
|
}
|
|
10782
10779
|
}, [state.isOpen, selectedOptions, getOptionLabel, multiselect, nothingSelectedText, isReadOnly, debouncedSearch]);
|
|
10783
|
-
(0,
|
|
10780
|
+
(0, import_react46.useEffect)(() => {
|
|
10784
10781
|
onSearch?.(debouncedSearch ?? "");
|
|
10785
10782
|
}, [onSearch, debouncedSearch]);
|
|
10786
10783
|
const {
|
|
@@ -10946,10 +10943,10 @@ function Autocomplete(props) {
|
|
|
10946
10943
|
...others
|
|
10947
10944
|
};
|
|
10948
10945
|
const state = (0, import_react_stately8.useComboBoxState)(comboBoxProps);
|
|
10949
|
-
const inputWrapRef = (0,
|
|
10950
|
-
const inputRef = (0,
|
|
10951
|
-
const listBoxRef = (0,
|
|
10952
|
-
const popoverRef = (0,
|
|
10946
|
+
const inputWrapRef = (0, import_react47.useRef)(null);
|
|
10947
|
+
const inputRef = (0, import_react47.useRef)(null);
|
|
10948
|
+
const listBoxRef = (0, import_react47.useRef)(null);
|
|
10949
|
+
const popoverRef = (0, import_react47.useRef)(null);
|
|
10953
10950
|
const { inputProps, listBoxProps, labelProps } = (0, import_react_aria28.useComboBox)(
|
|
10954
10951
|
{
|
|
10955
10952
|
...comboBoxProps,
|
|
@@ -11016,7 +11013,7 @@ function Autocomplete(props) {
|
|
|
11016
11013
|
}
|
|
11017
11014
|
|
|
11018
11015
|
// src/inputs/Checkbox.tsx
|
|
11019
|
-
var
|
|
11016
|
+
var import_react48 = require("react");
|
|
11020
11017
|
var import_react_aria29 = require("react-aria");
|
|
11021
11018
|
var import_react_stately9 = require("react-stately");
|
|
11022
11019
|
var import_jsx_runtime57 = require("@emotion/react/jsx-runtime");
|
|
@@ -11026,7 +11023,7 @@ function Checkbox(props) {
|
|
|
11026
11023
|
const isIndeterminate = selected === "indeterminate";
|
|
11027
11024
|
const ariaProps = { isSelected, isDisabled: !!disabled, isIndeterminate, ...otherProps };
|
|
11028
11025
|
const checkboxProps = { ...ariaProps, "aria-label": label };
|
|
11029
|
-
const ref = (0,
|
|
11026
|
+
const ref = (0, import_react48.useRef)(null);
|
|
11030
11027
|
const toggleState = (0, import_react_stately9.useToggleState)(ariaProps);
|
|
11031
11028
|
const { inputProps } = (0, import_react_aria29.useCheckbox)(checkboxProps, toggleState, ref);
|
|
11032
11029
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
@@ -11045,7 +11042,7 @@ function Checkbox(props) {
|
|
|
11045
11042
|
}
|
|
11046
11043
|
|
|
11047
11044
|
// src/inputs/CheckboxGroup.tsx
|
|
11048
|
-
var
|
|
11045
|
+
var import_react49 = require("react");
|
|
11049
11046
|
var import_react_aria30 = require("react-aria");
|
|
11050
11047
|
var import_react_stately10 = require("react-stately");
|
|
11051
11048
|
var import_jsx_runtime58 = require("@emotion/react/jsx-runtime");
|
|
@@ -11095,7 +11092,7 @@ function CheckboxGroupItem(props) {
|
|
|
11095
11092
|
} = props;
|
|
11096
11093
|
const ariaProps = { isSelected, isDisabled, isIndeterminate, value, ...otherProps };
|
|
11097
11094
|
const checkboxProps = { ...ariaProps, "aria-label": label };
|
|
11098
|
-
const ref = (0,
|
|
11095
|
+
const ref = (0, import_react49.useRef)(null);
|
|
11099
11096
|
const { inputProps } = (0, import_react_aria30.useCheckboxGroupItem)(checkboxProps, groupState, ref);
|
|
11100
11097
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
11101
11098
|
CheckboxBase,
|
|
@@ -11114,12 +11111,12 @@ function CheckboxGroupItem(props) {
|
|
|
11114
11111
|
|
|
11115
11112
|
// src/inputs/DateFields/DateField.mock.tsx
|
|
11116
11113
|
var import_date_fns3 = require("date-fns");
|
|
11117
|
-
var
|
|
11114
|
+
var import_react50 = require("react");
|
|
11118
11115
|
var import_jsx_runtime59 = require("@emotion/react/jsx-runtime");
|
|
11119
11116
|
function DateFieldMock(props) {
|
|
11120
11117
|
const { onChange = () => {
|
|
11121
11118
|
}, errorMsg, onBlur, onFocus } = props;
|
|
11122
|
-
const [value, setValue] = (0,
|
|
11119
|
+
const [value, setValue] = (0, import_react50.useState)(props.value ? (0, import_date_fns3.format)(props.value, "MM/dd/yy") : "");
|
|
11123
11120
|
const tid = useTestIds(props, "date");
|
|
11124
11121
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11125
11122
|
"input",
|
|
@@ -11142,7 +11139,7 @@ function DateFieldMock(props) {
|
|
|
11142
11139
|
}
|
|
11143
11140
|
|
|
11144
11141
|
// src/inputs/DateFields/DateFieldBase.tsx
|
|
11145
|
-
var
|
|
11142
|
+
var import_react51 = require("react");
|
|
11146
11143
|
var import_react_aria31 = require("react-aria");
|
|
11147
11144
|
var import_react_day_picker5 = require("react-day-picker");
|
|
11148
11145
|
var import_react_stately11 = require("react-stately");
|
|
@@ -11234,14 +11231,14 @@ function DateFieldBase(props) {
|
|
|
11234
11231
|
...others
|
|
11235
11232
|
} = props;
|
|
11236
11233
|
const isRangeMode = mode === "range";
|
|
11237
|
-
const inputRef = (0,
|
|
11238
|
-
const inputWrapRef = (0,
|
|
11239
|
-
const buttonRef = (0,
|
|
11240
|
-
const overlayRef = (0,
|
|
11241
|
-
const isFocused = (0,
|
|
11234
|
+
const inputRef = (0, import_react51.useRef)(null);
|
|
11235
|
+
const inputWrapRef = (0, import_react51.useRef)(null);
|
|
11236
|
+
const buttonRef = (0, import_react51.useRef)(null);
|
|
11237
|
+
const overlayRef = (0, import_react51.useRef)(null);
|
|
11238
|
+
const isFocused = (0, import_react51.useRef)(false);
|
|
11242
11239
|
const dateFormat = getDateFormat(format4);
|
|
11243
|
-
const [wipValue, setWipValue] = (0,
|
|
11244
|
-
const [inputValue, setInputValue] = (0,
|
|
11240
|
+
const [wipValue, setWipValue] = (0, import_react51.useState)(value);
|
|
11241
|
+
const [inputValue, setInputValue] = (0, import_react51.useState)(
|
|
11245
11242
|
(isRangeMode ? formatDateRange(props.value, dateFormat) : formatDate(props.value, dateFormat)) ?? ""
|
|
11246
11243
|
);
|
|
11247
11244
|
const tid = useTestIds(props, defaultTestId(label));
|
|
@@ -11314,7 +11311,7 @@ function DateFieldBase(props) {
|
|
|
11314
11311
|
shouldUpdatePosition: true,
|
|
11315
11312
|
offset: 4
|
|
11316
11313
|
});
|
|
11317
|
-
(0,
|
|
11314
|
+
(0, import_react51.useEffect)(() => {
|
|
11318
11315
|
if (!isFocused.current && !state.isOpen) {
|
|
11319
11316
|
setWipValue(value);
|
|
11320
11317
|
setInputValue(
|
|
@@ -11322,7 +11319,7 @@ function DateFieldBase(props) {
|
|
|
11322
11319
|
);
|
|
11323
11320
|
}
|
|
11324
11321
|
}, [value, dateFormat]);
|
|
11325
|
-
const onChange = (0,
|
|
11322
|
+
const onChange = (0, import_react51.useCallback)(
|
|
11326
11323
|
(d) => {
|
|
11327
11324
|
setWipValue(d);
|
|
11328
11325
|
if (d && isParsedDateValid(d)) {
|
|
@@ -11465,7 +11462,7 @@ function DateRangeField(props) {
|
|
|
11465
11462
|
}
|
|
11466
11463
|
|
|
11467
11464
|
// src/inputs/IconCard.tsx
|
|
11468
|
-
var
|
|
11465
|
+
var import_react52 = require("react");
|
|
11469
11466
|
var import_react_aria32 = require("react-aria");
|
|
11470
11467
|
var import_react_stately12 = require("react-stately");
|
|
11471
11468
|
var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
|
|
@@ -11485,7 +11482,7 @@ function IconCard(props) {
|
|
|
11485
11482
|
const { hoverProps, isHovered } = (0, import_react_aria32.useHover)({ isDisabled });
|
|
11486
11483
|
const toggleState = (0, import_react_stately12.useToggleState)(ariaProps);
|
|
11487
11484
|
const { inputProps } = (0, import_react_aria32.useCheckbox)(checkboxProps, toggleState, ref);
|
|
11488
|
-
const styles = (0,
|
|
11485
|
+
const styles = (0, import_react52.useMemo)(
|
|
11489
11486
|
() => ({
|
|
11490
11487
|
...baseStyles3,
|
|
11491
11488
|
...isHovered && iconCardStylesHover,
|
|
@@ -11511,7 +11508,7 @@ var disabledStyles2 = Css.bcGray200.bgGray50.$;
|
|
|
11511
11508
|
var iconCardStylesHover = Css.bgGray100.$;
|
|
11512
11509
|
|
|
11513
11510
|
// src/inputs/MultiLineSelectField.tsx
|
|
11514
|
-
var
|
|
11511
|
+
var import_react53 = require("react");
|
|
11515
11512
|
var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
|
|
11516
11513
|
function MultiLineSelectField(props) {
|
|
11517
11514
|
const {
|
|
@@ -11524,7 +11521,7 @@ function MultiLineSelectField(props) {
|
|
|
11524
11521
|
...otherProps
|
|
11525
11522
|
} = props;
|
|
11526
11523
|
const tid = useTestIds(props, "");
|
|
11527
|
-
const [isDisplayed, setIsDisplayed] = (0,
|
|
11524
|
+
const [isDisplayed, setIsDisplayed] = (0, import_react53.useState)(true);
|
|
11528
11525
|
const currentOptions = options.filter((o) => !values.includes(getOptionValue(o)));
|
|
11529
11526
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: Css.mt1.if(labelStyle === "left").df.$, children: [
|
|
11530
11527
|
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 }) }),
|
|
@@ -11613,7 +11610,7 @@ function MultiSelectField(props) {
|
|
|
11613
11610
|
|
|
11614
11611
|
// src/inputs/NumberField.tsx
|
|
11615
11612
|
var import_number = require("@internationalized/number");
|
|
11616
|
-
var
|
|
11613
|
+
var import_react54 = require("react");
|
|
11617
11614
|
var import_react_aria33 = require("react-aria");
|
|
11618
11615
|
var import_react_stately13 = require("react-stately");
|
|
11619
11616
|
var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
|
|
@@ -11648,7 +11645,7 @@ function NumberField(props) {
|
|
|
11648
11645
|
const isReadOnly = !!readOnly;
|
|
11649
11646
|
const factor = type === "percent" ? 100 : type === "cents" ? 100 : type === "mills" ? 1e3 : type === "basisPoints" ? 1e4 : 1;
|
|
11650
11647
|
const signDisplay = displayDirection ? "always" : "auto";
|
|
11651
|
-
const defaultFormatOptions = (0,
|
|
11648
|
+
const defaultFormatOptions = (0, import_react54.useMemo)(
|
|
11652
11649
|
() => ({
|
|
11653
11650
|
[truncate ? "maximumFractionDigits" : "minimumFractionDigits"]: numFractionDigits,
|
|
11654
11651
|
...numIntegerDigits !== void 0 && { minimumIntegerDigits: numIntegerDigits },
|
|
@@ -11658,15 +11655,15 @@ function NumberField(props) {
|
|
|
11658
11655
|
[truncate, numIntegerDigits, useGrouping, signDisplay, numFractionDigits]
|
|
11659
11656
|
);
|
|
11660
11657
|
const { locale } = (0, import_react_aria33.useLocale)();
|
|
11661
|
-
const formatOptions = (0,
|
|
11658
|
+
const formatOptions = (0, import_react54.useMemo)(() => {
|
|
11662
11659
|
if (numberFormatOptions !== void 0) {
|
|
11663
11660
|
return numberFormatOptions;
|
|
11664
11661
|
}
|
|
11665
11662
|
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 } : {};
|
|
11666
11663
|
return { ...defaultFormatOptions, ...typeFormat };
|
|
11667
11664
|
}, [type, numberFormatOptions, defaultFormatOptions, numFractionDigits]);
|
|
11668
|
-
const numberParser = (0,
|
|
11669
|
-
const valueRef = (0,
|
|
11665
|
+
const numberParser = (0, import_react54.useMemo)(() => new import_number.NumberParser(locale, formatOptions), [locale, formatOptions]);
|
|
11666
|
+
const valueRef = (0, import_react54.useRef)({ wip: false });
|
|
11670
11667
|
const useProps = {
|
|
11671
11668
|
locale,
|
|
11672
11669
|
// We want percents && cents to be integers, useNumberFieldState excepts them as decimals
|
|
@@ -11695,7 +11692,7 @@ function NumberField(props) {
|
|
|
11695
11692
|
...otherProps
|
|
11696
11693
|
};
|
|
11697
11694
|
const state = (0, import_react_stately13.useNumberFieldState)(useProps);
|
|
11698
|
-
const inputRef = (0,
|
|
11695
|
+
const inputRef = (0, import_react54.useRef)(null);
|
|
11699
11696
|
const { labelProps, inputProps, groupProps } = (0, import_react_aria33.useNumberField)(useProps, state, inputRef);
|
|
11700
11697
|
if (readOnly && !inputRef.current) {
|
|
11701
11698
|
inputRef.current = document.createElement("input");
|
|
@@ -11740,14 +11737,14 @@ function formatValue(value, factor, numFractionDigits, numIntegerDigits, positiv
|
|
|
11740
11737
|
}
|
|
11741
11738
|
|
|
11742
11739
|
// src/inputs/RadioGroupField.tsx
|
|
11743
|
-
var
|
|
11740
|
+
var import_react55 = require("react");
|
|
11744
11741
|
var import_react_aria34 = require("react-aria");
|
|
11745
11742
|
var import_react_stately14 = require("react-stately");
|
|
11746
11743
|
var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
|
|
11747
11744
|
var nextNameId = 0;
|
|
11748
11745
|
function RadioGroupField(props) {
|
|
11749
11746
|
const { label, labelStyle, value, onChange, options, disabled = false, errorMsg, helperText, ...otherProps } = props;
|
|
11750
|
-
const name = (0,
|
|
11747
|
+
const name = (0, import_react55.useMemo)(() => `radio-group-${++nextNameId}`, []);
|
|
11751
11748
|
const state = (0, import_react_stately14.useRadioGroupState)({
|
|
11752
11749
|
name,
|
|
11753
11750
|
value,
|
|
@@ -11764,7 +11761,7 @@ function RadioGroupField(props) {
|
|
|
11764
11761
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { ...radioGroupProps, children: [
|
|
11765
11762
|
options.map((option) => {
|
|
11766
11763
|
const isDisabled = state.isDisabled || !!option.disabled;
|
|
11767
|
-
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
11764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react55.Fragment, { children: maybeTooltip({
|
|
11768
11765
|
title: resolveTooltip(option.disabled),
|
|
11769
11766
|
placement: "bottom",
|
|
11770
11767
|
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
@@ -11795,7 +11792,7 @@ function Radio(props) {
|
|
|
11795
11792
|
const disabled = state.isDisabled;
|
|
11796
11793
|
const labelId = `${parentId}-${value}-label`;
|
|
11797
11794
|
const descriptionId = `${parentId}-${value}-description`;
|
|
11798
|
-
const ref = (0,
|
|
11795
|
+
const ref = (0, import_react55.useRef)(null);
|
|
11799
11796
|
const { inputProps } = (0, import_react_aria34.useRadio)({ value, "aria-labelledby": labelId }, state, ref);
|
|
11800
11797
|
const { focusProps, isFocusVisible } = (0, import_react_aria34.useFocusRing)();
|
|
11801
11798
|
const { hoverProps, isHovered } = (0, import_react_aria34.useHover)({ isDisabled: disabled });
|
|
@@ -11874,19 +11871,19 @@ var radioDisabled = {
|
|
|
11874
11871
|
};
|
|
11875
11872
|
|
|
11876
11873
|
// src/inputs/RichTextField.tsx
|
|
11877
|
-
var
|
|
11874
|
+
var import_react57 = require("@emotion/react");
|
|
11878
11875
|
var import_dompurify = __toESM(require("dompurify"), 1);
|
|
11879
|
-
var
|
|
11876
|
+
var import_react58 = require("react");
|
|
11880
11877
|
|
|
11881
11878
|
// src/inputs/RichTextField.mock.tsx
|
|
11882
11879
|
var import_change_case4 = require("change-case");
|
|
11883
|
-
var
|
|
11880
|
+
var import_react56 = require("react");
|
|
11884
11881
|
var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
|
|
11885
11882
|
function RichTextFieldMock(props) {
|
|
11886
11883
|
const { onBlur = () => {
|
|
11887
11884
|
}, onFocus = () => {
|
|
11888
11885
|
}, readOnly } = props;
|
|
11889
|
-
const [value, setValue] = (0,
|
|
11886
|
+
const [value, setValue] = (0, import_react56.useState)(props.value || "");
|
|
11890
11887
|
const tid = useTestIds(props, defaultTestId2(props.label || "richTextField"));
|
|
11891
11888
|
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11892
11889
|
"input",
|
|
@@ -11928,16 +11925,16 @@ function RichTextFieldImpl(props) {
|
|
|
11928
11925
|
readOnly,
|
|
11929
11926
|
fullWidth = fieldProps?.fullWidth ?? false
|
|
11930
11927
|
} = props;
|
|
11931
|
-
const [editor, setEditor] = (0,
|
|
11932
|
-
const editorElement = (0,
|
|
11933
|
-
const currentHtml = (0,
|
|
11934
|
-
const onChangeRef = (0,
|
|
11928
|
+
const [editor, setEditor] = (0, import_react58.useState)();
|
|
11929
|
+
const editorElement = (0, import_react58.useRef)();
|
|
11930
|
+
const currentHtml = (0, import_react58.useRef)(void 0);
|
|
11931
|
+
const onChangeRef = (0, import_react58.useRef)(onChange);
|
|
11935
11932
|
onChangeRef.current = onChange;
|
|
11936
|
-
const onBlurRef = (0,
|
|
11933
|
+
const onBlurRef = (0, import_react58.useRef)(onBlur);
|
|
11937
11934
|
onBlurRef.current = onBlur;
|
|
11938
|
-
const onFocusRef = (0,
|
|
11935
|
+
const onFocusRef = (0, import_react58.useRef)(onFocus);
|
|
11939
11936
|
onFocusRef.current = onFocus;
|
|
11940
|
-
const id = (0,
|
|
11937
|
+
const id = (0, import_react58.useMemo)(() => {
|
|
11941
11938
|
if (readOnly) return;
|
|
11942
11939
|
const id2 = `trix-editor-${trixId}`;
|
|
11943
11940
|
trixId++;
|
|
@@ -11978,7 +11975,7 @@ function RichTextFieldImpl(props) {
|
|
|
11978
11975
|
window.addEventListener("trix-initialize", onEditorInit);
|
|
11979
11976
|
return id2;
|
|
11980
11977
|
}, [readOnly]);
|
|
11981
|
-
(0,
|
|
11978
|
+
(0, import_react58.useEffect)(() => {
|
|
11982
11979
|
if (!readOnly && editor && value !== currentHtml.current) {
|
|
11983
11980
|
editor.loadHTML(value || "");
|
|
11984
11981
|
}
|
|
@@ -11989,7 +11986,7 @@ function RichTextFieldImpl(props) {
|
|
|
11989
11986
|
label && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Label, { labelProps: {}, label }),
|
|
11990
11987
|
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: { ...Css.br4.bgWhite.$, ...trixCssOverrides }, children: [
|
|
11991
11988
|
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("input", { type: "hidden", id: `input-${id}`, value }),
|
|
11992
|
-
(0,
|
|
11989
|
+
(0, import_react58.createElement)("trix-editor", {
|
|
11993
11990
|
id,
|
|
11994
11991
|
input: `input-${id}`,
|
|
11995
11992
|
// Autofocus attribute is case sensitive since this is standard HTML
|
|
@@ -11997,7 +11994,7 @@ function RichTextFieldImpl(props) {
|
|
|
11997
11994
|
...placeholder ? { placeholder } : {}
|
|
11998
11995
|
})
|
|
11999
11996
|
] }),
|
|
12000
|
-
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
11997
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react57.Global, { styles: [tributeOverrides] })
|
|
12001
11998
|
] });
|
|
12002
11999
|
} else {
|
|
12003
12000
|
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: Css.w100.if(!fullWidth).maxw("550px").$, children: [
|
|
@@ -12072,7 +12069,7 @@ function extractIdsFromMentions(mergeTags, content) {
|
|
|
12072
12069
|
var trixId = 1;
|
|
12073
12070
|
|
|
12074
12071
|
// src/inputs/SelectField.tsx
|
|
12075
|
-
var
|
|
12072
|
+
var import_react59 = require("react");
|
|
12076
12073
|
var import_jsx_runtime71 = require("@emotion/react/jsx-runtime");
|
|
12077
12074
|
function SelectField(props) {
|
|
12078
12075
|
const {
|
|
@@ -12083,7 +12080,7 @@ function SelectField(props) {
|
|
|
12083
12080
|
value,
|
|
12084
12081
|
...otherProps
|
|
12085
12082
|
} = props;
|
|
12086
|
-
const values = (0,
|
|
12083
|
+
const values = (0, import_react59.useMemo)(() => [value], [value]);
|
|
12087
12084
|
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
12088
12085
|
ComboBoxBase,
|
|
12089
12086
|
{
|
|
@@ -12103,7 +12100,7 @@ function SelectField(props) {
|
|
|
12103
12100
|
}
|
|
12104
12101
|
|
|
12105
12102
|
// src/inputs/Switch.tsx
|
|
12106
|
-
var
|
|
12103
|
+
var import_react60 = require("react");
|
|
12107
12104
|
var import_react_aria35 = require("react-aria");
|
|
12108
12105
|
var import_jsx_runtime72 = require("@emotion/react/jsx-runtime");
|
|
12109
12106
|
function Switch(props) {
|
|
@@ -12123,7 +12120,7 @@ function Switch(props) {
|
|
|
12123
12120
|
const isDisabled = !!disabled;
|
|
12124
12121
|
const ariaProps = { isSelected, isDisabled, ...otherProps };
|
|
12125
12122
|
const state = toToggleState(isSelected, onChange);
|
|
12126
|
-
const ref = (0,
|
|
12123
|
+
const ref = (0, import_react60.useRef)(null);
|
|
12127
12124
|
const { inputProps } = (0, import_react_aria35.useSwitch)({ ...ariaProps, "aria-label": label }, state, ref);
|
|
12128
12125
|
const { isFocusVisible: isKeyboardFocus, focusProps } = (0, import_react_aria35.useFocusRing)(otherProps);
|
|
12129
12126
|
const { hoverProps, isHovered } = (0, import_react_aria35.useHover)(ariaProps);
|
|
@@ -12199,7 +12196,7 @@ function switchCircleSelectedStyles(isCompact) {
|
|
|
12199
12196
|
}
|
|
12200
12197
|
|
|
12201
12198
|
// src/inputs/TextAreaField.tsx
|
|
12202
|
-
var
|
|
12199
|
+
var import_react61 = require("react");
|
|
12203
12200
|
var import_react_aria36 = require("react-aria");
|
|
12204
12201
|
var import_jsx_runtime73 = require("@emotion/react/jsx-runtime");
|
|
12205
12202
|
function TextAreaField(props) {
|
|
@@ -12216,8 +12213,8 @@ function TextAreaField(props) {
|
|
|
12216
12213
|
const isDisabled = !!disabled;
|
|
12217
12214
|
const isReadOnly = !!readOnly;
|
|
12218
12215
|
const textFieldProps = { ...otherProps, value, isDisabled, isReadOnly };
|
|
12219
|
-
const inputRef = (0,
|
|
12220
|
-
const inputWrapRef = (0,
|
|
12216
|
+
const inputRef = (0, import_react61.useRef)(null);
|
|
12217
|
+
const inputWrapRef = (0, import_react61.useRef)(null);
|
|
12221
12218
|
useGrowingTextField({ inputRef, inputWrapRef, value });
|
|
12222
12219
|
const { labelProps, inputProps } = (0, import_react_aria36.useTextField)(
|
|
12223
12220
|
{
|
|
@@ -12255,7 +12252,7 @@ function TextAreaField(props) {
|
|
|
12255
12252
|
}
|
|
12256
12253
|
|
|
12257
12254
|
// src/inputs/TextField.tsx
|
|
12258
|
-
var
|
|
12255
|
+
var import_react62 = require("react");
|
|
12259
12256
|
var import_react_aria37 = require("react-aria");
|
|
12260
12257
|
var import_jsx_runtime74 = require("@emotion/react/jsx-runtime");
|
|
12261
12258
|
function TextField(props) {
|
|
@@ -12283,7 +12280,7 @@ function TextField(props) {
|
|
|
12283
12280
|
validationState: errorMsg ? "invalid" : "valid",
|
|
12284
12281
|
value
|
|
12285
12282
|
};
|
|
12286
|
-
const inputRef = (0,
|
|
12283
|
+
const inputRef = (0, import_react62.useRef)(null);
|
|
12287
12284
|
const { labelProps, inputProps } = (0, import_react_aria37.useTextField)(
|
|
12288
12285
|
{
|
|
12289
12286
|
...textFieldProps,
|
|
@@ -12319,13 +12316,13 @@ function TextField(props) {
|
|
|
12319
12316
|
}
|
|
12320
12317
|
|
|
12321
12318
|
// src/inputs/ToggleButton.tsx
|
|
12322
|
-
var
|
|
12319
|
+
var import_react63 = require("react");
|
|
12323
12320
|
var import_react_aria38 = require("react-aria");
|
|
12324
12321
|
var import_react_stately15 = require("react-stately");
|
|
12325
12322
|
var import_jsx_runtime75 = require("@emotion/react/jsx-runtime");
|
|
12326
12323
|
function ToggleButton(props) {
|
|
12327
12324
|
const { selected: isSelected = false, disabled = false, label, onChange, icon, ...otherProps } = props;
|
|
12328
|
-
const [asyncInProgress, setAsyncInProgress] = (0,
|
|
12325
|
+
const [asyncInProgress, setAsyncInProgress] = (0, import_react63.useState)(false);
|
|
12329
12326
|
const isDisabled = !!disabled || asyncInProgress;
|
|
12330
12327
|
const ariaProps = { "aria-label": label, isSelected, isDisabled, ...otherProps };
|
|
12331
12328
|
const state = (0, import_react_stately15.useToggleState)({
|
|
@@ -12339,8 +12336,8 @@ function ToggleButton(props) {
|
|
|
12339
12336
|
return result;
|
|
12340
12337
|
}
|
|
12341
12338
|
});
|
|
12342
|
-
const labelRef = (0,
|
|
12343
|
-
const ref = (0,
|
|
12339
|
+
const labelRef = (0, import_react63.useRef)(null);
|
|
12340
|
+
const ref = (0, import_react63.useRef)(null);
|
|
12344
12341
|
const tid = useTestIds(props, label);
|
|
12345
12342
|
const { isPressed, pressProps } = (0, import_react_aria38.usePress)({ ref: labelRef, isDisabled });
|
|
12346
12343
|
const { inputProps } = (0, import_react_aria38.useSwitch)(ariaProps, state, ref);
|
|
@@ -12376,7 +12373,7 @@ var toggleFocusStyles = Css.bshFocus.$;
|
|
|
12376
12373
|
var togglePressStyles = Css.bgGray300.$;
|
|
12377
12374
|
|
|
12378
12375
|
// src/inputs/ToggleChipGroup.tsx
|
|
12379
|
-
var
|
|
12376
|
+
var import_react64 = require("react");
|
|
12380
12377
|
var import_react_aria39 = require("react-aria");
|
|
12381
12378
|
var import_react_stately16 = require("react-stately");
|
|
12382
12379
|
var import_jsx_runtime76 = require("@emotion/react/jsx-runtime");
|
|
@@ -12424,7 +12421,7 @@ function ToggleChipGroup(props) {
|
|
|
12424
12421
|
function ToggleChip2(props) {
|
|
12425
12422
|
const { label, value, groupState, selected: isSelected, disabled = false, startAdornment, xss, ...others } = props;
|
|
12426
12423
|
const isDisabled = !!disabled;
|
|
12427
|
-
const ref = (0,
|
|
12424
|
+
const ref = (0, import_react64.useRef)(null);
|
|
12428
12425
|
const { inputProps } = (0, import_react_aria39.useCheckboxGroupItem)({ value, "aria-label": label, isDisabled }, groupState, ref);
|
|
12429
12426
|
const { isFocusVisible, focusProps } = (0, import_react_aria39.useFocusRing)();
|
|
12430
12427
|
const tooltip = resolveTooltip(disabled);
|
|
@@ -12459,7 +12456,7 @@ function ToggleChip2(props) {
|
|
|
12459
12456
|
// src/components/Table/components/SelectToggle.tsx
|
|
12460
12457
|
var import_jsx_runtime77 = require("@emotion/react/jsx-runtime");
|
|
12461
12458
|
function SelectToggle({ id, disabled }) {
|
|
12462
|
-
const { tableState } = (0,
|
|
12459
|
+
const { tableState } = (0, import_react65.useContext)(TableStateContext);
|
|
12463
12460
|
const state = useComputed(() => tableState.getSelected(id), [tableState]);
|
|
12464
12461
|
const selected = state === "checked" ? true : state === "unchecked" ? false : "indeterminate";
|
|
12465
12462
|
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
@@ -13183,7 +13180,7 @@ var TableState = class {
|
|
|
13183
13180
|
this.rowStates.maybeSetRowDraggedOver(id, draggedOver, requireSameParentRow);
|
|
13184
13181
|
}
|
|
13185
13182
|
};
|
|
13186
|
-
var TableStateContext =
|
|
13183
|
+
var TableStateContext = import_react66.default.createContext({
|
|
13187
13184
|
get tableState() {
|
|
13188
13185
|
throw new Error("No TableStateContext provider");
|
|
13189
13186
|
}
|
|
@@ -13212,7 +13209,7 @@ function deriveSortState(currentSortState, clickedKey, initialSortState) {
|
|
|
13212
13209
|
|
|
13213
13210
|
// src/components/Table/GridTableApi.ts
|
|
13214
13211
|
function useGridTableApi() {
|
|
13215
|
-
return (0,
|
|
13212
|
+
return (0, import_react67.useMemo)(() => new GridTableApiImpl(), []);
|
|
13216
13213
|
}
|
|
13217
13214
|
var GridTableApiImpl = class {
|
|
13218
13215
|
// This is public to GridTable but not exported outside of Beam
|
|
@@ -13362,10 +13359,10 @@ function maybeApply(maybeFn) {
|
|
|
13362
13359
|
}
|
|
13363
13360
|
|
|
13364
13361
|
// src/hooks/useRenderCount.ts
|
|
13365
|
-
var
|
|
13362
|
+
var import_react68 = require("react");
|
|
13366
13363
|
function useRenderCount() {
|
|
13367
|
-
const ref = (0,
|
|
13368
|
-
const getCount = (0,
|
|
13364
|
+
const ref = (0, import_react68.useRef)(/* @__PURE__ */ new Map());
|
|
13365
|
+
const getCount = (0, import_react68.useCallback)((id) => {
|
|
13369
13366
|
const count = ref.current.get(id) || 1;
|
|
13370
13367
|
ref.current.set(id, count + 1);
|
|
13371
13368
|
return { "data-render": count };
|
|
@@ -13414,11 +13411,11 @@ function GridTable(props) {
|
|
|
13414
13411
|
onRowDrop: droppedCallback,
|
|
13415
13412
|
csvPrefixRows
|
|
13416
13413
|
} = props;
|
|
13417
|
-
const columnsWithIds = (0,
|
|
13418
|
-
const virtuosoRef = (0,
|
|
13419
|
-
const virtuosoRangeRef = (0,
|
|
13420
|
-
const resizeRef = (0,
|
|
13421
|
-
const api = (0,
|
|
13414
|
+
const columnsWithIds = (0, import_react69.useMemo)(() => assignDefaultColumnIds(_columns), [_columns]);
|
|
13415
|
+
const virtuosoRef = (0, import_react69.useRef)(null);
|
|
13416
|
+
const virtuosoRangeRef = (0, import_react69.useRef)(null);
|
|
13417
|
+
const resizeRef = (0, import_react69.useRef)(null);
|
|
13418
|
+
const api = (0, import_react69.useMemo)(
|
|
13422
13419
|
() => {
|
|
13423
13420
|
const api2 = props.api ?? new GridTableApiImpl();
|
|
13424
13421
|
api2.init(persistCollapse, virtuosoRef, virtuosoRangeRef);
|
|
@@ -13431,8 +13428,8 @@ function GridTable(props) {
|
|
|
13431
13428
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13432
13429
|
[props.api]
|
|
13433
13430
|
);
|
|
13434
|
-
const [draggedRow, _setDraggedRow] = (0,
|
|
13435
|
-
const draggedRowRef = (0,
|
|
13431
|
+
const [draggedRow, _setDraggedRow] = (0, import_react69.useState)(void 0);
|
|
13432
|
+
const draggedRowRef = (0, import_react69.useRef)(draggedRow);
|
|
13436
13433
|
const setDraggedRow = (row) => {
|
|
13437
13434
|
draggedRowRef.current = row;
|
|
13438
13435
|
_setDraggedRow(row);
|
|
@@ -13440,7 +13437,7 @@ function GridTable(props) {
|
|
|
13440
13437
|
const style = resolveStyles(maybeStyle);
|
|
13441
13438
|
const { tableState } = api;
|
|
13442
13439
|
tableState.onRowSelect = onRowSelect;
|
|
13443
|
-
(0,
|
|
13440
|
+
(0, import_react69.useEffect)(() => {
|
|
13444
13441
|
(0, import_mobx10.runInAction)(() => {
|
|
13445
13442
|
tableState.setRows(rows);
|
|
13446
13443
|
tableState.setColumns(columnsWithIds, visibleColumnsStorageKey);
|
|
@@ -13586,7 +13583,7 @@ function GridTable(props) {
|
|
|
13586
13583
|
const borderless = style?.presentationSettings?.borderless;
|
|
13587
13584
|
const typeScale = style?.presentationSettings?.typeScale;
|
|
13588
13585
|
const borderOnHover = style?.presentationSettings?.borderOnHover;
|
|
13589
|
-
const fieldProps = (0,
|
|
13586
|
+
const fieldProps = (0, import_react69.useMemo)(
|
|
13590
13587
|
() => ({
|
|
13591
13588
|
labelStyle: "hidden",
|
|
13592
13589
|
numberAlignment: "right",
|
|
@@ -13600,7 +13597,7 @@ function GridTable(props) {
|
|
|
13600
13597
|
[borderOnHover, borderless, typeScale]
|
|
13601
13598
|
);
|
|
13602
13599
|
const _as = as === "virtual" && runningInJest ? "div" : as;
|
|
13603
|
-
const rowStateContext = (0,
|
|
13600
|
+
const rowStateContext = (0, import_react69.useMemo)(() => ({ tableState }), [tableState]);
|
|
13604
13601
|
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: [
|
|
13605
13602
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { ref: resizeRef, css: getTableRefWidthStyles(as === "virtual") }),
|
|
13606
13603
|
renders[_as](
|
|
@@ -13697,11 +13694,11 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, firs
|
|
|
13697
13694
|
);
|
|
13698
13695
|
}
|
|
13699
13696
|
function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, _stickyOffset, infiniteScroll) {
|
|
13700
|
-
const { footerStyle, listStyle } = (0,
|
|
13697
|
+
const { footerStyle, listStyle } = (0, import_react69.useMemo)(() => {
|
|
13701
13698
|
const { paddingBottom, ...otherRootStyles } = style.rootCss ?? {};
|
|
13702
13699
|
return { footerStyle: { paddingBottom }, listStyle: { ...style, rootCss: otherRootStyles } };
|
|
13703
13700
|
}, [style]);
|
|
13704
|
-
const [fetchMoreInProgress, setFetchMoreInProgress] = (0,
|
|
13701
|
+
const [fetchMoreInProgress, setFetchMoreInProgress] = (0, import_react69.useState)(false);
|
|
13705
13702
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13706
13703
|
import_react_virtuoso2.Virtuoso,
|
|
13707
13704
|
{
|
|
@@ -13709,7 +13706,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, fi
|
|
|
13709
13706
|
ref: virtuosoRef,
|
|
13710
13707
|
components: {
|
|
13711
13708
|
// Applying a zIndex: 2 to ensure it stays on top of sticky columns
|
|
13712
|
-
TopItemList:
|
|
13709
|
+
TopItemList: import_react69.default.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13713
13710
|
"div",
|
|
13714
13711
|
{
|
|
13715
13712
|
...props,
|
|
@@ -13769,7 +13766,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, fi
|
|
|
13769
13766
|
}
|
|
13770
13767
|
var VirtualRoot = (0, import_memoize_one.default)(
|
|
13771
13768
|
(gs, _columns, id, xss) => {
|
|
13772
|
-
return
|
|
13769
|
+
return import_react69.default.forwardRef(function VirtualRoot2({ style, children }, ref) {
|
|
13773
13770
|
const isHeader = Object.keys(style || {}).length === 0;
|
|
13774
13771
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
13775
13772
|
"div",
|
|
@@ -13799,8 +13796,9 @@ var VirtualRoot = (0, import_memoize_one.default)(
|
|
|
13799
13796
|
// src/components/ToggleChip.tsx
|
|
13800
13797
|
var import_jsx_runtime80 = require("@emotion/react/jsx-runtime");
|
|
13801
13798
|
function ToggleChip(props) {
|
|
13802
|
-
const { text, onClick, xss = {}, disabled = false } = props;
|
|
13799
|
+
const { text, onClick, xss = {}, disabled = false, icon } = props;
|
|
13803
13800
|
const { fieldProps } = usePresentationContext();
|
|
13801
|
+
const { hoverProps, isHovered } = useHover({});
|
|
13804
13802
|
const compact = fieldProps?.compact;
|
|
13805
13803
|
const tid = useTestIds(props, "chip");
|
|
13806
13804
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
@@ -13808,21 +13806,27 @@ function ToggleChip(props) {
|
|
|
13808
13806
|
{
|
|
13809
13807
|
type: "button",
|
|
13810
13808
|
css: {
|
|
13811
|
-
...
|
|
13812
|
-
|
|
13813
|
-
|
|
13809
|
+
...chipBaseStyles(compact),
|
|
13810
|
+
...isHovered && !disabled && chipHoverStyles,
|
|
13811
|
+
// Use a lower right-padding to get closer to the `X` circle when clearable, i.e. not disabled
|
|
13812
|
+
...!disabled && Css.prPx(4).$,
|
|
13813
|
+
...disabled && { ...chipDisabledStyles, ...Css.pr1.$ },
|
|
13814
13814
|
...xss
|
|
13815
13815
|
},
|
|
13816
13816
|
disabled,
|
|
13817
13817
|
onClick,
|
|
13818
|
+
...hoverProps,
|
|
13818
13819
|
...tid,
|
|
13819
13820
|
children: [
|
|
13820
|
-
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: Css.
|
|
13821
|
-
|
|
13821
|
+
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 }) }),
|
|
13822
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: Css.tal.lineClamp1.wbba.if(disabled).pr0.$, title: text, children: text }),
|
|
13823
|
+
!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 }) })
|
|
13822
13824
|
]
|
|
13823
13825
|
}
|
|
13824
13826
|
);
|
|
13825
13827
|
}
|
|
13828
|
+
var chipHoverStyles = Css.bgGray300.$;
|
|
13829
|
+
var chipDisabledStyles = Css.gray600.cursorNotAllowed.$;
|
|
13826
13830
|
|
|
13827
13831
|
// src/components/ToggleChips.tsx
|
|
13828
13832
|
var import_jsx_runtime81 = require("@emotion/react/jsx-runtime");
|
|
@@ -13834,7 +13838,7 @@ function ToggleChips(props) {
|
|
|
13834
13838
|
|
|
13835
13839
|
// src/components/Accordion.tsx
|
|
13836
13840
|
var import_utils67 = require("@react-aria/utils");
|
|
13837
|
-
var
|
|
13841
|
+
var import_react70 = require("react");
|
|
13838
13842
|
var import_react_aria40 = require("react-aria");
|
|
13839
13843
|
var import_jsx_runtime82 = require("@emotion/react/jsx-runtime");
|
|
13840
13844
|
function Accordion(props) {
|
|
@@ -13856,28 +13860,28 @@ function Accordion(props) {
|
|
|
13856
13860
|
} = props;
|
|
13857
13861
|
const tid = useTestIds(props, "accordion");
|
|
13858
13862
|
const id = (0, import_utils67.useId)();
|
|
13859
|
-
const [expanded, setExpanded] = (0,
|
|
13863
|
+
const [expanded, setExpanded] = (0, import_react70.useState)(defaultExpanded && !disabled);
|
|
13860
13864
|
const { isFocusVisible, focusProps } = (0, import_react_aria40.useFocusRing)();
|
|
13861
|
-
const contentRef = (0,
|
|
13862
|
-
const [contentHeight, setContentHeight] = (0,
|
|
13863
|
-
(0,
|
|
13865
|
+
const contentRef = (0, import_react70.useRef)(null);
|
|
13866
|
+
const [contentHeight, setContentHeight] = (0, import_react70.useState)(expanded ? "auto" : "0");
|
|
13867
|
+
(0, import_react70.useEffect)(() => {
|
|
13864
13868
|
setExpanded(defaultExpanded && !disabled);
|
|
13865
13869
|
}, [defaultExpanded, disabled]);
|
|
13866
|
-
(0,
|
|
13870
|
+
(0, import_react70.useEffect)(() => {
|
|
13867
13871
|
setContentHeight(expanded && contentRef.current ? `${contentRef.current.scrollHeight}px` : "0");
|
|
13868
13872
|
}, [expanded]);
|
|
13869
|
-
const onResize = (0,
|
|
13873
|
+
const onResize = (0, import_react70.useCallback)(() => {
|
|
13870
13874
|
if (contentRef.current && expanded) {
|
|
13871
13875
|
setContentHeight(`${contentRef.current.scrollHeight}px`);
|
|
13872
13876
|
}
|
|
13873
13877
|
}, [expanded, setContentHeight]);
|
|
13874
13878
|
(0, import_utils67.useResizeObserver)({ ref: contentRef, onResize });
|
|
13875
|
-
const toggle = (0,
|
|
13879
|
+
const toggle = (0, import_react70.useCallback)(() => {
|
|
13876
13880
|
setExpanded((prev) => !prev);
|
|
13877
13881
|
if (setExpandedIndex) setExpandedIndex(index);
|
|
13878
13882
|
if (onToggle) onToggle();
|
|
13879
13883
|
}, [index, setExpandedIndex, onToggle]);
|
|
13880
|
-
const touchableStyle = (0,
|
|
13884
|
+
const touchableStyle = (0, import_react70.useMemo)(
|
|
13881
13885
|
() => ({
|
|
13882
13886
|
...Css.df.jcsb.gapPx(12).aic.p2.baseMd.outline("none").onHover.bgGray100.if(!!titleOnClick).baseSb.$,
|
|
13883
13887
|
...compact && Css.smMd.pl2.prPx(10).py1.bgGray100.mbPx(4).br8.onHover.bgGray200.$,
|
|
@@ -13960,11 +13964,11 @@ var accordionSizes = {
|
|
|
13960
13964
|
};
|
|
13961
13965
|
|
|
13962
13966
|
// src/components/AccordionList.tsx
|
|
13963
|
-
var
|
|
13967
|
+
var import_react71 = require("react");
|
|
13964
13968
|
var import_jsx_runtime83 = require("@emotion/react/jsx-runtime");
|
|
13965
13969
|
function AccordionList(props) {
|
|
13966
13970
|
const { accordions, size, allowMultipleExpanded = true, compact = false } = props;
|
|
13967
|
-
const [expandedIndex, setExpandedIndex] = (0,
|
|
13971
|
+
const [expandedIndex, setExpandedIndex] = (0, import_react71.useState)(
|
|
13968
13972
|
accordions.findIndex((a) => a.defaultExpanded)
|
|
13969
13973
|
);
|
|
13970
13974
|
const tid = useTestIds(props, "accordionList");
|
|
@@ -13985,7 +13989,7 @@ function AccordionList(props) {
|
|
|
13985
13989
|
}
|
|
13986
13990
|
|
|
13987
13991
|
// src/components/AutoSaveIndicator.tsx
|
|
13988
|
-
var
|
|
13992
|
+
var import_react72 = require("react");
|
|
13989
13993
|
|
|
13990
13994
|
// src/types.ts
|
|
13991
13995
|
function assertNever(x) {
|
|
@@ -13996,7 +14000,7 @@ function assertNever(x) {
|
|
|
13996
14000
|
var import_jsx_runtime84 = require("@emotion/react/jsx-runtime");
|
|
13997
14001
|
function AutoSaveIndicator({ hideOnIdle, doNotReset }) {
|
|
13998
14002
|
const { status, resetStatus, errors } = useAutoSaveStatus();
|
|
13999
|
-
(0,
|
|
14003
|
+
(0, import_react72.useEffect)(
|
|
14000
14004
|
() => {
|
|
14001
14005
|
if (doNotReset) return;
|
|
14002
14006
|
return () => resetStatus();
|
|
@@ -14059,42 +14063,42 @@ var variantStyles2 = {
|
|
|
14059
14063
|
};
|
|
14060
14064
|
|
|
14061
14065
|
// src/components/BeamContext.tsx
|
|
14062
|
-
var
|
|
14066
|
+
var import_react93 = require("react");
|
|
14063
14067
|
var import_react_aria44 = require("react-aria");
|
|
14064
14068
|
|
|
14065
14069
|
// src/components/Modal/Modal.tsx
|
|
14066
14070
|
var import_utils71 = require("@react-aria/utils");
|
|
14067
|
-
var
|
|
14071
|
+
var import_react75 = require("react");
|
|
14068
14072
|
var import_react_aria41 = require("react-aria");
|
|
14069
14073
|
var import_react_dom2 = require("react-dom");
|
|
14070
14074
|
|
|
14071
14075
|
// src/components/Modal/useModal.tsx
|
|
14072
|
-
var
|
|
14076
|
+
var import_react74 = require("react");
|
|
14073
14077
|
|
|
14074
14078
|
// src/components/Modal/ModalContext.tsx
|
|
14075
|
-
var
|
|
14079
|
+
var import_react73 = require("react");
|
|
14076
14080
|
var import_jsx_runtime86 = require("@emotion/react/jsx-runtime");
|
|
14077
|
-
var ModalContext = (0,
|
|
14081
|
+
var ModalContext = (0, import_react73.createContext)({ inModal: false });
|
|
14078
14082
|
function ModalProvider({ children }) {
|
|
14079
|
-
const value = (0,
|
|
14083
|
+
const value = (0, import_react73.useMemo)(() => ({ inModal: true }), []);
|
|
14080
14084
|
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ModalContext.Provider, { value, children });
|
|
14081
14085
|
}
|
|
14082
14086
|
function useModalContext() {
|
|
14083
|
-
return (0,
|
|
14087
|
+
return (0, import_react73.useContext)(ModalContext);
|
|
14084
14088
|
}
|
|
14085
14089
|
|
|
14086
14090
|
// src/components/Modal/useModal.tsx
|
|
14087
14091
|
function useModal() {
|
|
14088
14092
|
const { modalState, modalCanCloseChecks } = useBeamContext();
|
|
14089
14093
|
const { inModal } = useModalContext();
|
|
14090
|
-
const lastCanClose = (0,
|
|
14091
|
-
const api = (0,
|
|
14092
|
-
(0,
|
|
14094
|
+
const lastCanClose = (0, import_react74.useRef)();
|
|
14095
|
+
const api = (0, import_react74.useRef)();
|
|
14096
|
+
(0, import_react74.useEffect)(() => {
|
|
14093
14097
|
return () => {
|
|
14094
14098
|
modalCanCloseChecks.current = modalCanCloseChecks.current.filter((c) => c !== lastCanClose.current);
|
|
14095
14099
|
};
|
|
14096
14100
|
}, [modalCanCloseChecks]);
|
|
14097
|
-
return (0,
|
|
14101
|
+
return (0, import_react74.useMemo)(
|
|
14098
14102
|
() => ({
|
|
14099
14103
|
openModal(props) {
|
|
14100
14104
|
modalState.current = { ...props, api };
|
|
@@ -14133,7 +14137,7 @@ var import_jsx_runtime87 = require("@emotion/react/jsx-runtime");
|
|
|
14133
14137
|
function Modal(props) {
|
|
14134
14138
|
const { size = "md", content, forceScrolling, api, drawHeaderBorder = false, allowClosing = true } = props;
|
|
14135
14139
|
const isFixedHeight = typeof size !== "string";
|
|
14136
|
-
const ref = (0,
|
|
14140
|
+
const ref = (0, import_react75.useRef)(null);
|
|
14137
14141
|
const { modalBodyDiv, modalFooterDiv, modalHeaderDiv } = useBeamContext();
|
|
14138
14142
|
const { closeModal } = useModal();
|
|
14139
14143
|
const { overlayProps, underlayProps } = (0, import_react_aria41.useOverlay)(
|
|
@@ -14150,20 +14154,20 @@ function Modal(props) {
|
|
|
14150
14154
|
);
|
|
14151
14155
|
const { modalProps } = (0, import_react_aria41.useModal)();
|
|
14152
14156
|
const { dialogProps, titleProps } = (0, import_react_aria41.useDialog)({ role: "dialog" }, ref);
|
|
14153
|
-
const [[
|
|
14154
|
-
const modalBodyRef = (0,
|
|
14155
|
-
const modalFooterRef = (0,
|
|
14156
|
-
const modalHeaderRef = (0,
|
|
14157
|
+
const [[width2, height], setSize] = (0, import_react75.useState)(getSize(size));
|
|
14158
|
+
const modalBodyRef = (0, import_react75.useRef)(null);
|
|
14159
|
+
const modalFooterRef = (0, import_react75.useRef)(null);
|
|
14160
|
+
const modalHeaderRef = (0, import_react75.useRef)(null);
|
|
14157
14161
|
const testId = useTestIds({}, testIdPrefix);
|
|
14158
14162
|
(0, import_react_aria41.usePreventScroll)();
|
|
14159
14163
|
const { sm } = useBreakpoint();
|
|
14160
14164
|
if (api) {
|
|
14161
14165
|
api.current = { setSize: (size2 = "md") => setSize(getSize(size2)) };
|
|
14162
14166
|
}
|
|
14163
|
-
const [hasScroll, setHasScroll] = (0,
|
|
14167
|
+
const [hasScroll, setHasScroll] = (0, import_react75.useState)(forceScrolling ?? false);
|
|
14164
14168
|
(0, import_utils71.useResizeObserver)({
|
|
14165
14169
|
ref: modalBodyRef,
|
|
14166
|
-
onResize: (0,
|
|
14170
|
+
onResize: (0, import_react75.useCallback)(
|
|
14167
14171
|
() => {
|
|
14168
14172
|
const target = modalBodyRef.current;
|
|
14169
14173
|
if (forceScrolling === void 0 && !isFixedHeight) {
|
|
@@ -14175,7 +14179,7 @@ function Modal(props) {
|
|
|
14175
14179
|
[]
|
|
14176
14180
|
)
|
|
14177
14181
|
});
|
|
14178
|
-
(0,
|
|
14182
|
+
(0, import_react75.useEffect)(
|
|
14179
14183
|
() => {
|
|
14180
14184
|
modalHeaderRef.current.appendChild(modalHeaderDiv);
|
|
14181
14185
|
modalBodyRef.current.appendChild(modalBodyDiv);
|
|
@@ -14188,7 +14192,7 @@ function Modal(props) {
|
|
|
14188
14192
|
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(ModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_react_aria41.OverlayContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(AutoSaveStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { css: Css.underlay.z4.$, ...underlayProps, ...testId.underlay, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_react_aria41.FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
14189
14193
|
"div",
|
|
14190
14194
|
{
|
|
14191
|
-
css: Css.br24.bgWhite.bshModal.oh.maxh("90vh").df.fdc.wPx(
|
|
14195
|
+
css: Css.br24.bgWhite.bshModal.oh.maxh("90vh").df.fdc.wPx(width2).mhPx(defaultMinHeight).if(isFixedHeight).hPx(height).if(sm).add("height", "100dvh").add("width", "100dvw").maxh("none").br0.$,
|
|
14192
14196
|
ref,
|
|
14193
14197
|
...overlayProps,
|
|
14194
14198
|
...dialogProps,
|
|
@@ -14250,7 +14254,7 @@ function getSize(size) {
|
|
|
14250
14254
|
}
|
|
14251
14255
|
|
|
14252
14256
|
// src/components/Snackbar/SnackbarContext.tsx
|
|
14253
|
-
var
|
|
14257
|
+
var import_react76 = require("react");
|
|
14254
14258
|
|
|
14255
14259
|
// src/components/Snackbar/SnackbarNotice.tsx
|
|
14256
14260
|
var import_jsx_runtime88 = require("@emotion/react/jsx-runtime");
|
|
@@ -14303,26 +14307,26 @@ var defaultOffset = {
|
|
|
14303
14307
|
|
|
14304
14308
|
// src/components/Snackbar/SnackbarContext.tsx
|
|
14305
14309
|
var import_jsx_runtime90 = require("@emotion/react/jsx-runtime");
|
|
14306
|
-
var SnackbarContext = (0,
|
|
14310
|
+
var SnackbarContext = (0, import_react76.createContext)({ setNotices: () => {
|
|
14307
14311
|
}, setOffset: () => {
|
|
14308
14312
|
} });
|
|
14309
14313
|
function SnackbarProvider(props) {
|
|
14310
|
-
const [notices, setNotices] = (0,
|
|
14311
|
-
const [offset, setOffset] = (0,
|
|
14312
|
-
const contextValue = (0,
|
|
14314
|
+
const [notices, setNotices] = (0, import_react76.useState)([]);
|
|
14315
|
+
const [offset, setOffset] = (0, import_react76.useState)({});
|
|
14316
|
+
const contextValue = (0, import_react76.useMemo)(() => ({ setNotices, setOffset }), []);
|
|
14313
14317
|
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(SnackbarContext.Provider, { value: contextValue, children: [
|
|
14314
14318
|
props.children,
|
|
14315
14319
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Snackbar, { notices, offset })
|
|
14316
14320
|
] });
|
|
14317
14321
|
}
|
|
14318
14322
|
function useSnackbarContext() {
|
|
14319
|
-
return (0,
|
|
14323
|
+
return (0, import_react76.useContext)(SnackbarContext);
|
|
14320
14324
|
}
|
|
14321
14325
|
|
|
14322
14326
|
// src/components/SuperDrawer/SuperDrawer.tsx
|
|
14323
|
-
var
|
|
14327
|
+
var import_react77 = require("@emotion/react");
|
|
14324
14328
|
var import_framer_motion = require("framer-motion");
|
|
14325
|
-
var
|
|
14329
|
+
var import_react78 = require("react");
|
|
14326
14330
|
var import_react_dom3 = require("react-dom");
|
|
14327
14331
|
|
|
14328
14332
|
// src/components/SuperDrawer/utils.ts
|
|
@@ -14334,17 +14338,17 @@ var SuperDrawerWidth = /* @__PURE__ */ ((SuperDrawerWidth2) => {
|
|
|
14334
14338
|
|
|
14335
14339
|
// src/components/SuperDrawer/SuperDrawer.tsx
|
|
14336
14340
|
var import_jsx_runtime91 = require("@emotion/react/jsx-runtime");
|
|
14337
|
-
var
|
|
14341
|
+
var import_react79 = require("@emotion/react");
|
|
14338
14342
|
function SuperDrawer() {
|
|
14339
14343
|
const { drawerContentStack: contentStack, sdHeaderDiv } = useBeamContext();
|
|
14340
14344
|
const { closeDrawer } = useSuperDrawer();
|
|
14341
|
-
const headerRef = (0,
|
|
14345
|
+
const headerRef = (0, import_react78.useRef)(null);
|
|
14342
14346
|
const testId = useTestIds({}, "superDrawer");
|
|
14343
14347
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
14344
14348
|
const { content } = currentContent ?? {};
|
|
14345
14349
|
const firstContent = contentStack.current[0]?.opts;
|
|
14346
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
14347
|
-
(0,
|
|
14350
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
14351
|
+
(0, import_react78.useEffect)(
|
|
14348
14352
|
() => {
|
|
14349
14353
|
if (headerRef.current?.childNodes.length === 0 && content) {
|
|
14350
14354
|
headerRef.current.appendChild(sdHeaderDiv);
|
|
@@ -14356,8 +14360,8 @@ function SuperDrawer() {
|
|
|
14356
14360
|
);
|
|
14357
14361
|
return (0, import_react_dom3.createPortal)(
|
|
14358
14362
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_framer_motion.AnimatePresence, { children: content && /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(import_jsx_runtime91.Fragment, { children: [
|
|
14359
|
-
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
14360
|
-
/* @__PURE__ */ (0,
|
|
14363
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react77.Global, { styles: { body: Css.oh.$ } }),
|
|
14364
|
+
/* @__PURE__ */ (0, import_react79.createElement)(
|
|
14361
14365
|
import_framer_motion.motion.div,
|
|
14362
14366
|
{
|
|
14363
14367
|
...testId,
|
|
@@ -14371,11 +14375,11 @@ function SuperDrawer() {
|
|
|
14371
14375
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
14372
14376
|
import_framer_motion.motion.aside,
|
|
14373
14377
|
{
|
|
14374
|
-
css: Css.bgWhite.h100.maxw(px(
|
|
14375
|
-
initial: { x:
|
|
14378
|
+
css: Css.bgWhite.h100.maxw(px(width2)).w100.df.fdc.relative.$,
|
|
14379
|
+
initial: { x: width2 },
|
|
14376
14380
|
animate: { x: 0 },
|
|
14377
14381
|
transition: { ease: "linear", duration: 0.2, delay: 0.2 },
|
|
14378
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
14382
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
14379
14383
|
onClick: (e) => e.stopPropagation(),
|
|
14380
14384
|
children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(AutoSaveStatusProvider, { children: [
|
|
14381
14385
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("header", { css: Css.p3.bb.bcGray200.df.aic.jcsb.gap3.$, children: [
|
|
@@ -14394,7 +14398,7 @@ function SuperDrawer() {
|
|
|
14394
14398
|
}
|
|
14395
14399
|
|
|
14396
14400
|
// src/components/Layout/FormPageLayout.tsx
|
|
14397
|
-
var
|
|
14401
|
+
var import_react86 = __toESM(require("react"), 1);
|
|
14398
14402
|
var import_react_aria43 = require("react-aria");
|
|
14399
14403
|
|
|
14400
14404
|
// src/forms/BoundCheckboxField.tsx
|
|
@@ -14620,7 +14624,7 @@ function BoundDateRangeField(props) {
|
|
|
14620
14624
|
}
|
|
14621
14625
|
|
|
14622
14626
|
// src/forms/BoundForm.tsx
|
|
14623
|
-
var
|
|
14627
|
+
var import_react82 = require("react");
|
|
14624
14628
|
|
|
14625
14629
|
// src/forms/BoundIconCardField.tsx
|
|
14626
14630
|
var import_mobx_react7 = require("mobx-react");
|
|
@@ -14649,7 +14653,7 @@ function BoundIconCardField(props) {
|
|
|
14649
14653
|
var import_mobx_react8 = require("mobx-react");
|
|
14650
14654
|
|
|
14651
14655
|
// src/inputs/IconCardGroup.tsx
|
|
14652
|
-
var
|
|
14656
|
+
var import_react80 = require("react");
|
|
14653
14657
|
var import_react_aria42 = require("react-aria");
|
|
14654
14658
|
var import_jsx_runtime98 = require("@emotion/react/jsx-runtime");
|
|
14655
14659
|
function IconCardGroup(props) {
|
|
@@ -14664,9 +14668,9 @@ function IconCardGroup(props) {
|
|
|
14664
14668
|
disabled: isDisabled = false,
|
|
14665
14669
|
onChange
|
|
14666
14670
|
} = props;
|
|
14667
|
-
const [selected, setSelected] = (0,
|
|
14668
|
-
const exclusiveOptions = (0,
|
|
14669
|
-
const toggleValue = (0,
|
|
14671
|
+
const [selected, setSelected] = (0, import_react80.useState)(values);
|
|
14672
|
+
const exclusiveOptions = (0, import_react80.useMemo)(() => options.filter((o) => o.exclusive), [options]);
|
|
14673
|
+
const toggleValue = (0, import_react80.useCallback)(
|
|
14670
14674
|
(value) => {
|
|
14671
14675
|
if (isDisabled) return;
|
|
14672
14676
|
const option = options.find((o) => o.value === value);
|
|
@@ -15262,13 +15266,13 @@ function BoundTreeSelectField(props) {
|
|
|
15262
15266
|
}
|
|
15263
15267
|
|
|
15264
15268
|
// src/forms/FormLines.tsx
|
|
15265
|
-
var
|
|
15269
|
+
var import_react81 = require("react");
|
|
15266
15270
|
var import_jsx_runtime112 = require("@emotion/react/jsx-runtime");
|
|
15267
15271
|
function FormLines(props) {
|
|
15268
15272
|
const { inModal } = useModal();
|
|
15269
15273
|
const {
|
|
15270
15274
|
children,
|
|
15271
|
-
width = inModal ? "full" : "lg",
|
|
15275
|
+
width: width2 = inModal ? "full" : "lg",
|
|
15272
15276
|
labelSuffix,
|
|
15273
15277
|
labelStyle,
|
|
15274
15278
|
compact,
|
|
@@ -15281,20 +15285,20 @@ function FormLines(props) {
|
|
|
15281
15285
|
..."labelStyle" in props ? { labelStyle } : {},
|
|
15282
15286
|
..."compact" in props ? { compact } : {},
|
|
15283
15287
|
..."labelLeftFieldWidth" in props ? { labelLeftFieldWidth } : {},
|
|
15284
|
-
...
|
|
15288
|
+
...width2 === "full" ? { fullWidth: true } : {}
|
|
15285
15289
|
};
|
|
15286
15290
|
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(PresentationProvider, { fieldProps: newFieldProps, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
15287
15291
|
"div",
|
|
15288
15292
|
{
|
|
15289
15293
|
css: {
|
|
15290
15294
|
// Note that we're purposefully not using display:flex so that our children's margins will collapse.
|
|
15291
|
-
...Css.w(sizes[
|
|
15295
|
+
...Css.w(sizes[width2]).$,
|
|
15292
15296
|
// Purposefully use this instead of childGap3 to put margin-bottom on the last line
|
|
15293
15297
|
"& > *": Css.mb(gap).$
|
|
15294
15298
|
},
|
|
15295
|
-
children:
|
|
15299
|
+
children: import_react81.Children.map(children, (child) => {
|
|
15296
15300
|
if (child && typeof child === "object" && "type" in child && child.type.isFormHeading) {
|
|
15297
|
-
const clone = (0,
|
|
15301
|
+
const clone = (0, import_react81.cloneElement)(child, { isFirst: firstFormHeading });
|
|
15298
15302
|
firstFormHeading = false;
|
|
15299
15303
|
return clone;
|
|
15300
15304
|
} else {
|
|
@@ -15310,8 +15314,8 @@ function FormDivider() {
|
|
|
15310
15314
|
function FieldGroup(props) {
|
|
15311
15315
|
const { title, children, widths: widths2 = [] } = props;
|
|
15312
15316
|
const gtc = children.map((_, i) => {
|
|
15313
|
-
const
|
|
15314
|
-
return typeof
|
|
15317
|
+
const width2 = widths2[i] || 1;
|
|
15318
|
+
return typeof width2 === `number` ? `${width2}fr` : width2;
|
|
15315
15319
|
}).join(" ");
|
|
15316
15320
|
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { css: Css.dg.gap2.gtc(gtc).$, children });
|
|
15317
15321
|
}
|
|
@@ -15329,7 +15333,7 @@ var listFieldPrefix = "listField";
|
|
|
15329
15333
|
function BoundForm(props) {
|
|
15330
15334
|
const { rows, formState } = props;
|
|
15331
15335
|
const tid = useTestIds({}, "boundForm");
|
|
15332
|
-
const getRowKey = (0,
|
|
15336
|
+
const getRowKey = (0, import_react82.useCallback)((row, rowType) => {
|
|
15333
15337
|
return `${rowType}-${Object.keys(row).join("-")}`;
|
|
15334
15338
|
}, []);
|
|
15335
15339
|
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(
|
|
@@ -15338,7 +15342,7 @@ function BoundForm(props) {
|
|
|
15338
15342
|
}
|
|
15339
15343
|
function FormRow({ row, formState }) {
|
|
15340
15344
|
const tid = useTestIds({}, "boundFormRow");
|
|
15341
|
-
const componentsWithConfig = (0,
|
|
15345
|
+
const componentsWithConfig = (0, import_react82.useMemo)(() => {
|
|
15342
15346
|
return Object.entries(row).map(([key, fieldFnOrCustomNode]) => {
|
|
15343
15347
|
if (typeof fieldFnOrCustomNode === "function" && !isCustomReactNodeKey(key)) {
|
|
15344
15348
|
const field = formState[key] ?? fail(`Field ${key.toString()} not found in formState`);
|
|
@@ -15464,7 +15468,7 @@ function boundTreeSelectField(props) {
|
|
|
15464
15468
|
}
|
|
15465
15469
|
|
|
15466
15470
|
// src/components/internal/CompoundField.tsx
|
|
15467
|
-
var
|
|
15471
|
+
var import_react83 = require("react");
|
|
15468
15472
|
var import_jsx_runtime114 = require("@emotion/react/jsx-runtime");
|
|
15469
15473
|
function CompoundField({ children }) {
|
|
15470
15474
|
if (children?.length !== 2) {
|
|
@@ -15489,7 +15493,7 @@ function CompoundField({ children }) {
|
|
|
15489
15493
|
...Css.bl.borderRadius("4px 0 0 4px").$,
|
|
15490
15494
|
"&:focus-within": Css.bcBlue700.$
|
|
15491
15495
|
},
|
|
15492
|
-
children: (0,
|
|
15496
|
+
children: (0, import_react83.cloneElement)(children[0], {
|
|
15493
15497
|
internalProps
|
|
15494
15498
|
})
|
|
15495
15499
|
}
|
|
@@ -15503,7 +15507,7 @@ function CompoundField({ children }) {
|
|
|
15503
15507
|
...Css.fg1.br.borderRadius("0 4px 4px 0").$,
|
|
15504
15508
|
"&:focus-within": Css.bcBlue700.$
|
|
15505
15509
|
},
|
|
15506
|
-
children: (0,
|
|
15510
|
+
children: (0, import_react83.cloneElement)(children[1], {
|
|
15507
15511
|
internalProps
|
|
15508
15512
|
})
|
|
15509
15513
|
}
|
|
@@ -15603,12 +15607,12 @@ function SubmitButton(props) {
|
|
|
15603
15607
|
|
|
15604
15608
|
// src/components/RightSidebar.tsx
|
|
15605
15609
|
var import_framer_motion2 = require("framer-motion");
|
|
15606
|
-
var
|
|
15610
|
+
var import_react84 = require("react");
|
|
15607
15611
|
var import_jsx_runtime119 = require("@emotion/react/jsx-runtime");
|
|
15608
15612
|
function RightSidebar({ content }) {
|
|
15609
|
-
const [selectedIcon, setSelectedIcon] = (0,
|
|
15613
|
+
const [selectedIcon, setSelectedIcon] = (0, import_react84.useState)(void 0);
|
|
15610
15614
|
const tid = useTestIds({}, "rightSidebar");
|
|
15611
|
-
const
|
|
15615
|
+
const width2 = 380;
|
|
15612
15616
|
return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
|
|
15613
15617
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.jcfe.relative.pr3.$, children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.gap2.z1.$, children: content.map(({ icon }) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15614
15618
|
IconButton,
|
|
@@ -15624,11 +15628,11 @@ function RightSidebar({ content }) {
|
|
|
15624
15628
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_framer_motion2.AnimatePresence, { children: selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15625
15629
|
import_framer_motion2.motion.div,
|
|
15626
15630
|
{
|
|
15627
|
-
initial: { x:
|
|
15631
|
+
initial: { x: width2, opacity: 0 },
|
|
15628
15632
|
animate: { x: 0, opacity: 1 },
|
|
15629
15633
|
transition: { delay: 0.2, ease: "linear", duration: 0.2 },
|
|
15630
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
15631
|
-
css: Css.wPx(
|
|
15634
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
15635
|
+
css: Css.wPx(width2).z0.$,
|
|
15632
15636
|
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.relative.topPx(-48).z0.px3.$, children: [
|
|
15633
15637
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.absolute.leftPx(-24).$, children: [
|
|
15634
15638
|
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
@@ -15652,13 +15656,13 @@ function RightSidebar({ content }) {
|
|
|
15652
15656
|
}
|
|
15653
15657
|
|
|
15654
15658
|
// src/components/Layout/PageHeaderBreadcrumbs.tsx
|
|
15655
|
-
var
|
|
15659
|
+
var import_react85 = require("react");
|
|
15656
15660
|
var import_react_router_dom4 = require("react-router-dom");
|
|
15657
15661
|
var import_jsx_runtime120 = require("@emotion/react/jsx-runtime");
|
|
15658
15662
|
function PageHeaderBreadcrumbs({ breadcrumb }) {
|
|
15659
15663
|
const tids = useTestIds({}, "pageHeaderBreadcrumbs");
|
|
15660
15664
|
const breadcrumbs = Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb];
|
|
15661
|
-
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)(
|
|
15665
|
+
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: [
|
|
15662
15666
|
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { css: Css.smMd.gray700.mr1.ml1.$, children: "/" }),
|
|
15663
15667
|
/* @__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 })
|
|
15664
15668
|
] }, `bc-${breadcrumb2.label}`)) });
|
|
@@ -15676,10 +15680,10 @@ var headerHeightPx = 120;
|
|
|
15676
15680
|
function FormPageLayoutComponent(props) {
|
|
15677
15681
|
const { formSections, formState, rightSideBar } = props;
|
|
15678
15682
|
const tids = useTestIds(props, "formPageLayout");
|
|
15679
|
-
const sectionsWithRefs = (0,
|
|
15683
|
+
const sectionsWithRefs = (0, import_react86.useMemo)(
|
|
15680
15684
|
() => formSections.map((section, id) => ({
|
|
15681
15685
|
section,
|
|
15682
|
-
ref: (0,
|
|
15686
|
+
ref: (0, import_react86.createRef)(),
|
|
15683
15687
|
// Unique key for each section to use in the observer
|
|
15684
15688
|
sectionKey: `section-${section.title ?? id}`
|
|
15685
15689
|
})),
|
|
@@ -15700,7 +15704,7 @@ function FormPageLayoutComponent(props) {
|
|
|
15700
15704
|
}
|
|
15701
15705
|
);
|
|
15702
15706
|
}
|
|
15703
|
-
var FormPageLayout =
|
|
15707
|
+
var FormPageLayout = import_react86.default.memo(FormPageLayoutComponent);
|
|
15704
15708
|
function PageHeader(props) {
|
|
15705
15709
|
const { pageTitle, breadCrumb, submitAction, cancelAction, tertiaryAction, formState } = props;
|
|
15706
15710
|
const tids = useTestIds(props);
|
|
@@ -15761,7 +15765,7 @@ function FormSections(props) {
|
|
|
15761
15765
|
function LeftNav(props) {
|
|
15762
15766
|
const { sectionsWithRefs } = props;
|
|
15763
15767
|
const tids = useTestIds(props);
|
|
15764
|
-
const sectionWithTitles = (0,
|
|
15768
|
+
const sectionWithTitles = (0, import_react86.useMemo)(
|
|
15765
15769
|
() => sectionsWithRefs.filter(({ section }) => !!section.title),
|
|
15766
15770
|
[sectionsWithRefs]
|
|
15767
15771
|
);
|
|
@@ -15783,11 +15787,11 @@ function SectionNavLink(props) {
|
|
|
15783
15787
|
const { sectionWithRef, activeSection } = props;
|
|
15784
15788
|
const { section, ref: sectionRef } = sectionWithRef;
|
|
15785
15789
|
const active = activeSection === sectionWithRef.sectionKey;
|
|
15786
|
-
const handleNavClick = (0,
|
|
15790
|
+
const handleNavClick = (0, import_react86.useCallback)(() => {
|
|
15787
15791
|
sectionRef.current?.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
15788
15792
|
}, [sectionRef]);
|
|
15789
15793
|
const tids = useTestIds(props);
|
|
15790
|
-
const buttonRef = (0,
|
|
15794
|
+
const buttonRef = (0, import_react86.useRef)(null);
|
|
15791
15795
|
const { buttonProps, isPressed } = (0, import_react_aria43.useButton)({ onPress: handleNavClick }, buttonRef);
|
|
15792
15796
|
const { isFocusVisible, focusProps } = (0, import_react_aria43.useFocusRing)();
|
|
15793
15797
|
const { hoverProps, isHovered } = useHover({});
|
|
@@ -15810,8 +15814,8 @@ function SectionNavLink(props) {
|
|
|
15810
15814
|
);
|
|
15811
15815
|
}
|
|
15812
15816
|
function useActiveSection(sectionsWithRefs) {
|
|
15813
|
-
const [activeSection, setActiveSection] = (0,
|
|
15814
|
-
(0,
|
|
15817
|
+
const [activeSection, setActiveSection] = (0, import_react86.useState)(null);
|
|
15818
|
+
(0, import_react86.useEffect)(() => {
|
|
15815
15819
|
if (!("IntersectionObserver" in window)) return;
|
|
15816
15820
|
const observer2 = new IntersectionObserver(
|
|
15817
15821
|
(entries) => {
|
|
@@ -15840,12 +15844,12 @@ function useActiveSection(sectionsWithRefs) {
|
|
|
15840
15844
|
}
|
|
15841
15845
|
|
|
15842
15846
|
// src/components/Layout/FullBleed.tsx
|
|
15843
|
-
var
|
|
15847
|
+
var import_react88 = require("react");
|
|
15844
15848
|
|
|
15845
15849
|
// src/components/Layout/ScrollableParent.tsx
|
|
15846
|
-
var
|
|
15850
|
+
var import_react87 = require("react");
|
|
15847
15851
|
var import_jsx_runtime122 = require("@emotion/react/jsx-runtime");
|
|
15848
|
-
var ScrollableParentContext = (0,
|
|
15852
|
+
var ScrollableParentContext = (0, import_react87.createContext)({
|
|
15849
15853
|
scrollableEl: null,
|
|
15850
15854
|
pr: 0,
|
|
15851
15855
|
pl: 0,
|
|
@@ -15854,14 +15858,14 @@ var ScrollableParentContext = (0, import_react86.createContext)({
|
|
|
15854
15858
|
});
|
|
15855
15859
|
function ScrollableParent(props) {
|
|
15856
15860
|
const { children, xss, tagName: Tag2 = "div" } = props;
|
|
15857
|
-
const scrollableEl = (0,
|
|
15861
|
+
const scrollableEl = (0, import_react87.useMemo)(() => {
|
|
15858
15862
|
const el = document.createElement("div");
|
|
15859
15863
|
el.style.height = "100%";
|
|
15860
15864
|
return el;
|
|
15861
15865
|
}, []);
|
|
15862
|
-
const [, setTick] = (0,
|
|
15866
|
+
const [, setTick] = (0, import_react87.useState)(0);
|
|
15863
15867
|
const hasScrollableContent = scrollableEl.childNodes.length > 0;
|
|
15864
|
-
const scrollableRef = (0,
|
|
15868
|
+
const scrollableRef = (0, import_react87.useRef)(null);
|
|
15865
15869
|
const { paddingLeft, paddingRight, ...otherXss } = xss || {};
|
|
15866
15870
|
const context = {
|
|
15867
15871
|
scrollableEl,
|
|
@@ -15869,7 +15873,7 @@ function ScrollableParent(props) {
|
|
|
15869
15873
|
pr: paddingRight ?? 0,
|
|
15870
15874
|
setPortalTick: setTick
|
|
15871
15875
|
};
|
|
15872
|
-
(0,
|
|
15876
|
+
(0, import_react87.useEffect)(() => {
|
|
15873
15877
|
scrollableRef.current.appendChild(scrollableEl);
|
|
15874
15878
|
}, [scrollableEl]);
|
|
15875
15879
|
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: [
|
|
@@ -15887,14 +15891,14 @@ function ScrollableParent(props) {
|
|
|
15887
15891
|
] }) });
|
|
15888
15892
|
}
|
|
15889
15893
|
function useScrollableParent() {
|
|
15890
|
-
return (0,
|
|
15894
|
+
return (0, import_react87.useContext)(ScrollableParentContext);
|
|
15891
15895
|
}
|
|
15892
15896
|
var scrollContainerBottomPadding = Css.addIn("&:after", Css.contentEmpty.db.h2.$).$;
|
|
15893
15897
|
|
|
15894
15898
|
// src/components/Layout/FullBleed.tsx
|
|
15895
15899
|
function FullBleed({ children, omitPadding = false }) {
|
|
15896
15900
|
const { pr, pl } = useScrollableParent();
|
|
15897
|
-
return !pr && !pl ? children : (0,
|
|
15901
|
+
return !pr && !pl ? children : (0, import_react88.cloneElement)(children, {
|
|
15898
15902
|
style: Css.ml(`-${pl}`).mr(`-${pr}`).if(!omitPadding).pl(pl).pr(pr).$
|
|
15899
15903
|
});
|
|
15900
15904
|
}
|
|
@@ -15911,9 +15915,9 @@ function PreventBrowserScroll({ children }) {
|
|
|
15911
15915
|
}
|
|
15912
15916
|
|
|
15913
15917
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
15914
|
-
var
|
|
15918
|
+
var import_react89 = __toESM(require("react"), 1);
|
|
15915
15919
|
var import_jsx_runtime124 = require("@emotion/react/jsx-runtime");
|
|
15916
|
-
var RightPaneContext =
|
|
15920
|
+
var RightPaneContext = import_react89.default.createContext({
|
|
15917
15921
|
openInPane: () => {
|
|
15918
15922
|
},
|
|
15919
15923
|
closePane: () => {
|
|
@@ -15924,35 +15928,35 @@ var RightPaneContext = import_react88.default.createContext({
|
|
|
15924
15928
|
rightPaneContent: null
|
|
15925
15929
|
});
|
|
15926
15930
|
function RightPaneProvider({ children }) {
|
|
15927
|
-
const [rightPaneContent, setRightPaneContent] = (0,
|
|
15928
|
-
const [isRightPaneOpen, setIsRightPaneOpen] = (0,
|
|
15929
|
-
const openInPane = (0,
|
|
15931
|
+
const [rightPaneContent, setRightPaneContent] = (0, import_react89.useState)(void 0);
|
|
15932
|
+
const [isRightPaneOpen, setIsRightPaneOpen] = (0, import_react89.useState)(false);
|
|
15933
|
+
const openInPane = (0, import_react89.useCallback)(
|
|
15930
15934
|
(opts) => {
|
|
15931
15935
|
setRightPaneContent(opts?.content);
|
|
15932
15936
|
setIsRightPaneOpen(true);
|
|
15933
15937
|
},
|
|
15934
15938
|
[setRightPaneContent]
|
|
15935
15939
|
);
|
|
15936
|
-
const closePane = (0,
|
|
15937
|
-
const clearPane = (0,
|
|
15938
|
-
const context = (0,
|
|
15940
|
+
const closePane = (0, import_react89.useCallback)(() => setIsRightPaneOpen(false), []);
|
|
15941
|
+
const clearPane = (0, import_react89.useCallback)(() => setRightPaneContent(void 0), [setRightPaneContent]);
|
|
15942
|
+
const context = (0, import_react89.useMemo)(
|
|
15939
15943
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
15940
15944
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
15941
15945
|
);
|
|
15942
15946
|
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(RightPaneContext.Provider, { value: context, children });
|
|
15943
15947
|
}
|
|
15944
15948
|
function useRightPaneContext() {
|
|
15945
|
-
return (0,
|
|
15949
|
+
return (0, import_react89.useContext)(RightPaneContext);
|
|
15946
15950
|
}
|
|
15947
15951
|
|
|
15948
15952
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
15949
15953
|
var import_framer_motion3 = require("framer-motion");
|
|
15950
|
-
var
|
|
15954
|
+
var import_react90 = require("react");
|
|
15951
15955
|
var import_jsx_runtime125 = require("@emotion/react/jsx-runtime");
|
|
15952
15956
|
function RightPaneLayout(props) {
|
|
15953
15957
|
const { children, paneBgColor = "rgba(255,255,255,1)" /* White */, paneWidth = 450, defaultPaneContent } = props;
|
|
15954
15958
|
const { isRightPaneOpen, rightPaneContent, clearPane, closePane } = useRightPaneContext();
|
|
15955
|
-
(0,
|
|
15959
|
+
(0, import_react90.useEffect)(() => closePane, [closePane]);
|
|
15956
15960
|
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: [
|
|
15957
15961
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
15958
15962
|
"div",
|
|
@@ -16002,13 +16006,13 @@ function useRightPane() {
|
|
|
16002
16006
|
}
|
|
16003
16007
|
|
|
16004
16008
|
// src/components/Layout/ScrollableContent.tsx
|
|
16005
|
-
var
|
|
16009
|
+
var import_react91 = require("react");
|
|
16006
16010
|
var import_react_dom4 = require("react-dom");
|
|
16007
16011
|
var import_jsx_runtime126 = require("@emotion/react/jsx-runtime");
|
|
16008
16012
|
function ScrollableContent(props) {
|
|
16009
16013
|
const { children, virtualized = false, omitBottomPadding, bgColor } = props;
|
|
16010
16014
|
const { scrollableEl, setPortalTick, pl, pr } = useScrollableParent();
|
|
16011
|
-
(0,
|
|
16015
|
+
(0, import_react91.useEffect)(() => {
|
|
16012
16016
|
setPortalTick((prev) => prev + 1);
|
|
16013
16017
|
return () => setPortalTick((prev) => prev + 1);
|
|
16014
16018
|
}, [setPortalTick]);
|
|
@@ -16032,9 +16036,9 @@ function ScrollableContent(props) {
|
|
|
16032
16036
|
}
|
|
16033
16037
|
|
|
16034
16038
|
// src/components/Toast/ToastContext.tsx
|
|
16035
|
-
var
|
|
16039
|
+
var import_react92 = require("react");
|
|
16036
16040
|
var import_jsx_runtime127 = require("@emotion/react/jsx-runtime");
|
|
16037
|
-
var ToastContext = (0,
|
|
16041
|
+
var ToastContext = (0, import_react92.createContext)({
|
|
16038
16042
|
setNotice: () => {
|
|
16039
16043
|
throw new Error("Missing ToastProvider");
|
|
16040
16044
|
},
|
|
@@ -16043,18 +16047,18 @@ var ToastContext = (0, import_react91.createContext)({
|
|
|
16043
16047
|
notice: void 0
|
|
16044
16048
|
});
|
|
16045
16049
|
function ToastProvider(props) {
|
|
16046
|
-
const [notice, setNotice] = (0,
|
|
16047
|
-
const clear = (0,
|
|
16048
|
-
const contextValue = (0,
|
|
16050
|
+
const [notice, setNotice] = (0, import_react92.useState)();
|
|
16051
|
+
const clear = (0, import_react92.useCallback)(() => setNotice(void 0), [setNotice]);
|
|
16052
|
+
const contextValue = (0, import_react92.useMemo)(() => ({ setNotice, notice, clear }), [notice, clear]);
|
|
16049
16053
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ToastContext.Provider, { value: contextValue, children: props.children });
|
|
16050
16054
|
}
|
|
16051
16055
|
function useToastContext() {
|
|
16052
|
-
return (0,
|
|
16056
|
+
return (0, import_react92.useContext)(ToastContext);
|
|
16053
16057
|
}
|
|
16054
16058
|
|
|
16055
16059
|
// src/components/BeamContext.tsx
|
|
16056
16060
|
var import_jsx_runtime128 = require("@emotion/react/jsx-runtime");
|
|
16057
|
-
var BeamContext = (0,
|
|
16061
|
+
var BeamContext = (0, import_react93.createContext)({
|
|
16058
16062
|
modalState: new EmptyRef(),
|
|
16059
16063
|
modalCanCloseChecks: new EmptyRef(),
|
|
16060
16064
|
modalHeaderDiv: void 0,
|
|
@@ -16066,21 +16070,21 @@ var BeamContext = (0, import_react92.createContext)({
|
|
|
16066
16070
|
sdHeaderDiv: void 0
|
|
16067
16071
|
});
|
|
16068
16072
|
function BeamProvider({ children, ...presentationProps }) {
|
|
16069
|
-
const [, tick] = (0,
|
|
16070
|
-
const modalRef = (0,
|
|
16071
|
-
const modalHeaderDiv = (0,
|
|
16072
|
-
const modalBodyDiv = (0,
|
|
16073
|
+
const [, tick] = (0, import_react93.useReducer)((prev) => prev + 1, 0);
|
|
16074
|
+
const modalRef = (0, import_react93.useRef)();
|
|
16075
|
+
const modalHeaderDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16076
|
+
const modalBodyDiv = (0, import_react93.useMemo)(() => {
|
|
16073
16077
|
const el = document.createElement("div");
|
|
16074
16078
|
el.style.height = "100%";
|
|
16075
16079
|
return el;
|
|
16076
16080
|
}, []);
|
|
16077
|
-
const modalCanCloseChecksRef = (0,
|
|
16078
|
-
const modalFooterDiv = (0,
|
|
16079
|
-
const drawerContentStackRef = (0,
|
|
16080
|
-
const drawerCanCloseChecks = (0,
|
|
16081
|
-
const drawerCanCloseDetailsChecks = (0,
|
|
16082
|
-
const sdHeaderDiv = (0,
|
|
16083
|
-
const context = (0,
|
|
16081
|
+
const modalCanCloseChecksRef = (0, import_react93.useRef)([]);
|
|
16082
|
+
const modalFooterDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16083
|
+
const drawerContentStackRef = (0, import_react93.useRef)([]);
|
|
16084
|
+
const drawerCanCloseChecks = (0, import_react93.useRef)([]);
|
|
16085
|
+
const drawerCanCloseDetailsChecks = (0, import_react93.useRef)([]);
|
|
16086
|
+
const sdHeaderDiv = (0, import_react93.useMemo)(() => document.createElement("div"), []);
|
|
16087
|
+
const context = (0, import_react93.useMemo)(() => {
|
|
16084
16088
|
return {
|
|
16085
16089
|
// These two keys need to trigger re-renders on change
|
|
16086
16090
|
modalState: new PretendRefThatTicks(modalRef, tick),
|
|
@@ -16117,18 +16121,18 @@ var PretendRefThatTicks = class {
|
|
|
16117
16121
|
}
|
|
16118
16122
|
};
|
|
16119
16123
|
function useBeamContext() {
|
|
16120
|
-
return (0,
|
|
16124
|
+
return (0, import_react93.useContext)(BeamContext);
|
|
16121
16125
|
}
|
|
16122
16126
|
|
|
16123
16127
|
// src/components/ButtonDatePicker.tsx
|
|
16124
|
-
var
|
|
16128
|
+
var import_react94 = require("react");
|
|
16125
16129
|
var import_react_aria45 = require("react-aria");
|
|
16126
16130
|
var import_react_stately17 = require("react-stately");
|
|
16127
16131
|
var import_jsx_runtime129 = require("@emotion/react/jsx-runtime");
|
|
16128
16132
|
function ButtonDatePicker(props) {
|
|
16129
16133
|
const { defaultOpen, disabled, trigger, onSelect, ...datePickerProps } = props;
|
|
16130
16134
|
const state = (0, import_react_stately17.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
16131
|
-
const buttonRef = (0,
|
|
16135
|
+
const buttonRef = (0, import_react94.useRef)(null);
|
|
16132
16136
|
const { menuTriggerProps, menuProps } = (0, import_react_aria45.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
16133
16137
|
const tid = useTestIds(
|
|
16134
16138
|
props,
|
|
@@ -16148,7 +16152,7 @@ function ButtonDatePicker(props) {
|
|
|
16148
16152
|
}
|
|
16149
16153
|
|
|
16150
16154
|
// src/components/ButtonGroup.tsx
|
|
16151
|
-
var
|
|
16155
|
+
var import_react95 = require("react");
|
|
16152
16156
|
var import_react_aria46 = require("react-aria");
|
|
16153
16157
|
var import_jsx_runtime130 = (
|
|
16154
16158
|
// Disable the button if the ButtonGroup is disabled or if the current button is disabled.
|
|
@@ -16165,7 +16169,7 @@ function ButtonGroup(props) {
|
|
|
16165
16169
|
function GroupButton(props) {
|
|
16166
16170
|
const { icon, iconInc, iconColor, text, active, onClick: onPress, disabled, size, tooltip, ...otherProps } = props;
|
|
16167
16171
|
const ariaProps = { onPress, isDisabled: !!disabled, ...otherProps };
|
|
16168
|
-
const ref = (0,
|
|
16172
|
+
const ref = (0, import_react95.useRef)(null);
|
|
16169
16173
|
const { buttonProps, isPressed } = (0, import_react_aria46.useButton)(ariaProps, ref);
|
|
16170
16174
|
const { isFocusVisible, focusProps } = (0, import_react_aria46.useFocusRing)();
|
|
16171
16175
|
const { hoverProps, isHovered } = (0, import_react_aria46.useHover)(ariaProps);
|
|
@@ -16224,7 +16228,7 @@ var iconStyles2 = {
|
|
|
16224
16228
|
};
|
|
16225
16229
|
|
|
16226
16230
|
// src/components/ButtonMenu.tsx
|
|
16227
|
-
var
|
|
16231
|
+
var import_react96 = require("react");
|
|
16228
16232
|
var import_react_aria47 = require("react-aria");
|
|
16229
16233
|
var import_react_stately18 = require("react-stately");
|
|
16230
16234
|
var import_jsx_runtime131 = require("@emotion/react/jsx-runtime");
|
|
@@ -16236,7 +16240,7 @@ function ButtonMenu(props) {
|
|
|
16236
16240
|
onChange = props.onChange;
|
|
16237
16241
|
}
|
|
16238
16242
|
const state = (0, import_react_stately18.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
16239
|
-
const buttonRef = (0,
|
|
16243
|
+
const buttonRef = (0, import_react96.useRef)(null);
|
|
16240
16244
|
const { menuTriggerProps, menuProps } = (0, import_react_aria47.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
16241
16245
|
const tid = useTestIds(
|
|
16242
16246
|
props,
|
|
@@ -16272,10 +16276,120 @@ function isSelectionButtonMenuProps(props) {
|
|
|
16272
16276
|
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
16273
16277
|
}
|
|
16274
16278
|
|
|
16275
|
-
// src/components/
|
|
16279
|
+
// src/components/Card.tsx
|
|
16280
|
+
var import_react98 = require("react");
|
|
16281
|
+
var import_react_aria48 = require("react-aria");
|
|
16282
|
+
|
|
16283
|
+
// src/components/Tag.tsx
|
|
16284
|
+
var import_utils107 = require("@react-aria/utils");
|
|
16285
|
+
var import_react97 = require("react");
|
|
16276
16286
|
var import_jsx_runtime132 = require("@emotion/react/jsx-runtime");
|
|
16287
|
+
function Tag(props) {
|
|
16288
|
+
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
16289
|
+
const typeStyles2 = getStyles(type);
|
|
16290
|
+
const tid = useTestIds(otherProps);
|
|
16291
|
+
const [showTooltip, setShowTooltip] = (0, import_react97.useState)(false);
|
|
16292
|
+
const ref = (0, import_react97.useRef)(null);
|
|
16293
|
+
(0, import_utils107.useResizeObserver)({
|
|
16294
|
+
ref,
|
|
16295
|
+
onResize: () => {
|
|
16296
|
+
if (ref.current) {
|
|
16297
|
+
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
16298
|
+
}
|
|
16299
|
+
}
|
|
16300
|
+
});
|
|
16301
|
+
return maybeTooltip({
|
|
16302
|
+
title: !preventTooltip && showTooltip ? text : void 0,
|
|
16303
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
16304
|
+
otherProps.icon && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
16305
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
16306
|
+
] })
|
|
16307
|
+
});
|
|
16308
|
+
}
|
|
16309
|
+
function getStyles(type) {
|
|
16310
|
+
switch (type) {
|
|
16311
|
+
case "info":
|
|
16312
|
+
return Css.bgBlue100.$;
|
|
16313
|
+
case "caution":
|
|
16314
|
+
return Css.bgYellow200.$;
|
|
16315
|
+
case "warning":
|
|
16316
|
+
return Css.bgRed200.$;
|
|
16317
|
+
case "success":
|
|
16318
|
+
return Css.bgGreen200.$;
|
|
16319
|
+
default:
|
|
16320
|
+
return Css.bgGray200.$;
|
|
16321
|
+
}
|
|
16322
|
+
}
|
|
16323
|
+
|
|
16324
|
+
// src/components/Card.tsx
|
|
16325
|
+
var import_jsx_runtime133 = require("@emotion/react/jsx-runtime");
|
|
16326
|
+
function Card(props) {
|
|
16327
|
+
const {
|
|
16328
|
+
title,
|
|
16329
|
+
subtitle,
|
|
16330
|
+
detailContent,
|
|
16331
|
+
imgSrc,
|
|
16332
|
+
imageFit = "contain",
|
|
16333
|
+
type = "card",
|
|
16334
|
+
bordered = false,
|
|
16335
|
+
disabled: isDisabled = false,
|
|
16336
|
+
buttonMenuItems,
|
|
16337
|
+
tag
|
|
16338
|
+
} = props;
|
|
16339
|
+
const tid = useTestIds(props, "card");
|
|
16340
|
+
const { hoverProps, isHovered } = (0, import_react_aria48.useHover)({ isDisabled });
|
|
16341
|
+
const isList = type === "list";
|
|
16342
|
+
const imgHeight = isList ? 96 : bordered ? 224 : 256;
|
|
16343
|
+
const styles = (0, import_react98.useMemo)(
|
|
16344
|
+
() => ({
|
|
16345
|
+
...baseStyles4(type),
|
|
16346
|
+
...isList && listStyles,
|
|
16347
|
+
...bordered && borderedStyles,
|
|
16348
|
+
...isHovered && cardHoverStyles,
|
|
16349
|
+
...isDisabled && disabledStyles3
|
|
16350
|
+
}),
|
|
16351
|
+
[isDisabled, isHovered, bordered, type, isList]
|
|
16352
|
+
);
|
|
16353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { css: styles, ...hoverProps, ...tid, children: [
|
|
16354
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
16355
|
+
"div",
|
|
16356
|
+
{
|
|
16357
|
+
css: {
|
|
16358
|
+
...Css.hPx(imgHeight).ba.br8.bcGray300.oh.df.asc.jsc.relative.add("filter", "brightness(1)").$,
|
|
16359
|
+
...isHovered && !isList && imageHoverStyles
|
|
16360
|
+
},
|
|
16361
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("img", { css: Css.w100.h100.objectFit(imageFit).$, src: imgSrc, alt: title, ...tid.img })
|
|
16362
|
+
}
|
|
16363
|
+
),
|
|
16364
|
+
isHovered && buttonMenuItems && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.absolute.right1.top1.if(bordered && !isList).right3.top3.$, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
16365
|
+
ButtonMenu,
|
|
16366
|
+
{
|
|
16367
|
+
trigger: { icon: "verticalDots", color: isList ? "rgba(100, 100, 100, 1)" /* Gray700 */ : "rgba(255,255,255,1)" /* White */ },
|
|
16368
|
+
items: buttonMenuItems
|
|
16369
|
+
}
|
|
16370
|
+
) }),
|
|
16371
|
+
tag && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.absolute.left1.topPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Tag, { type: tag?.type, text: tag?.text, ...tid.tag }) }),
|
|
16372
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { css: Css.df.fdc.aifs.gap1.$, children: [
|
|
16373
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { children: [
|
|
16374
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.xsMd.gray700.$, ...tid.subtitle, children: subtitle }),
|
|
16375
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.smMd.gray900.if(isHovered).blue700.$, ...tid.title, children: title })
|
|
16376
|
+
] }),
|
|
16377
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { ...tid.details, children: detailContent })
|
|
16378
|
+
] })
|
|
16379
|
+
] });
|
|
16380
|
+
}
|
|
16381
|
+
var width = { card: 256, list: 520 };
|
|
16382
|
+
var baseStyles4 = (type) => Css.wPx(width[type]).bgWhite.df.fdc.gap1.relative.$;
|
|
16383
|
+
var listStyles = Css.df.fdr.gap2.$;
|
|
16384
|
+
var borderedStyles = Css.ba.br8.bcGray300.p2.$;
|
|
16385
|
+
var disabledStyles3 = Css.add("opacity", 0.5).add("transition", "opacity 0.3s ease").$;
|
|
16386
|
+
var cardHoverStyles = Css.bcGray400.cursorPointer.$;
|
|
16387
|
+
var imageHoverStyles = Css.bgWhite.add("filter", "brightness(0.3)").add("transition", "filter 0.3s ease").$;
|
|
16388
|
+
|
|
16389
|
+
// src/components/Copy.tsx
|
|
16390
|
+
var import_jsx_runtime134 = require("@emotion/react/jsx-runtime");
|
|
16277
16391
|
function Copy(props) {
|
|
16278
|
-
return /* @__PURE__ */ (0,
|
|
16392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
16279
16393
|
"div",
|
|
16280
16394
|
{
|
|
16281
16395
|
css: {
|
|
@@ -16289,43 +16403,43 @@ function Copy(props) {
|
|
|
16289
16403
|
|
|
16290
16404
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16291
16405
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
16292
|
-
var
|
|
16406
|
+
var import_react100 = require("react");
|
|
16293
16407
|
|
|
16294
16408
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
16295
|
-
var
|
|
16296
|
-
var DnDGridContext = (0,
|
|
16409
|
+
var import_react99 = require("react");
|
|
16410
|
+
var DnDGridContext = (0, import_react99.createContext)({
|
|
16297
16411
|
dragEl: { current: void 0 },
|
|
16298
16412
|
onDragHandleKeyDown: () => {
|
|
16299
16413
|
}
|
|
16300
16414
|
});
|
|
16301
16415
|
function useDnDGridContext() {
|
|
16302
|
-
return (0,
|
|
16416
|
+
return (0, import_react99.useContext)(DnDGridContext);
|
|
16303
16417
|
}
|
|
16304
16418
|
|
|
16305
16419
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16306
|
-
var
|
|
16420
|
+
var import_jsx_runtime135 = require("@emotion/react/jsx-runtime");
|
|
16307
16421
|
function DnDGrid(props) {
|
|
16308
16422
|
const { children, gridStyles, onReorder, activeItemStyles } = props;
|
|
16309
|
-
const gridEl = (0,
|
|
16310
|
-
const dragEl = (0,
|
|
16311
|
-
const cloneEl = (0,
|
|
16312
|
-
const initialOrder = (0,
|
|
16313
|
-
const reorderViaKeyboard = (0,
|
|
16314
|
-
const transformFrom = (0,
|
|
16423
|
+
const gridEl = (0, import_react100.useRef)(null);
|
|
16424
|
+
const dragEl = (0, import_react100.useRef)();
|
|
16425
|
+
const cloneEl = (0, import_react100.useRef)();
|
|
16426
|
+
const initialOrder = (0, import_react100.useRef)();
|
|
16427
|
+
const reorderViaKeyboard = (0, import_react100.useRef)(false);
|
|
16428
|
+
const transformFrom = (0, import_react100.useRef)({ x: 0, y: 0 });
|
|
16315
16429
|
const tid = useTestIds(props, "dndGrid");
|
|
16316
|
-
const getGridItems = (0,
|
|
16430
|
+
const getGridItems = (0, import_react100.useCallback)(() => {
|
|
16317
16431
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
16318
16432
|
}, []);
|
|
16319
|
-
const getGridItemIdOrder = (0,
|
|
16433
|
+
const getGridItemIdOrder = (0, import_react100.useCallback)(() => {
|
|
16320
16434
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
16321
16435
|
}, [getGridItems]);
|
|
16322
|
-
const initReorder = (0,
|
|
16436
|
+
const initReorder = (0, import_react100.useCallback)(() => {
|
|
16323
16437
|
if (gridEl.current && dragEl.current) {
|
|
16324
16438
|
initialOrder.current = getGridItemIdOrder();
|
|
16325
16439
|
dragEl.current.classList.add(activeGridItemClass);
|
|
16326
16440
|
}
|
|
16327
16441
|
}, [getGridItemIdOrder]);
|
|
16328
|
-
const commitReorder = (0,
|
|
16442
|
+
const commitReorder = (0, import_react100.useCallback)(() => {
|
|
16329
16443
|
if (gridEl.current && dragEl.current) {
|
|
16330
16444
|
const currentOrder = getGridItemIdOrder();
|
|
16331
16445
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -16335,7 +16449,7 @@ function DnDGrid(props) {
|
|
|
16335
16449
|
initialOrder.current = currentOrder;
|
|
16336
16450
|
}
|
|
16337
16451
|
}, [onReorder, getGridItemIdOrder]);
|
|
16338
|
-
const cancelReorder = (0,
|
|
16452
|
+
const cancelReorder = (0, import_react100.useCallback)(() => {
|
|
16339
16453
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
16340
16454
|
const currentOrder = getGridItemIdOrder();
|
|
16341
16455
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -16357,7 +16471,7 @@ function DnDGrid(props) {
|
|
|
16357
16471
|
reorderViaKeyboard.current = false;
|
|
16358
16472
|
}
|
|
16359
16473
|
}, [getGridItemIdOrder, getGridItems]);
|
|
16360
|
-
const onMove = (0,
|
|
16474
|
+
const onMove = (0, import_react100.useCallback)((e) => {
|
|
16361
16475
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16362
16476
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
16363
16477
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -16378,7 +16492,7 @@ function DnDGrid(props) {
|
|
|
16378
16492
|
}
|
|
16379
16493
|
}
|
|
16380
16494
|
}, []);
|
|
16381
|
-
const onDragStart = (0,
|
|
16495
|
+
const onDragStart = (0, import_react100.useCallback)(
|
|
16382
16496
|
(e) => {
|
|
16383
16497
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
16384
16498
|
initReorder();
|
|
@@ -16409,7 +16523,7 @@ function DnDGrid(props) {
|
|
|
16409
16523
|
},
|
|
16410
16524
|
[initReorder, onMove]
|
|
16411
16525
|
);
|
|
16412
|
-
const onDragEnd = (0,
|
|
16526
|
+
const onDragEnd = (0, import_react100.useCallback)(
|
|
16413
16527
|
(e) => {
|
|
16414
16528
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16415
16529
|
e.preventDefault();
|
|
@@ -16425,7 +16539,7 @@ function DnDGrid(props) {
|
|
|
16425
16539
|
},
|
|
16426
16540
|
[commitReorder, onMove]
|
|
16427
16541
|
);
|
|
16428
|
-
const onDragHandleKeyDown = (0,
|
|
16542
|
+
const onDragHandleKeyDown = (0, import_react100.useCallback)(
|
|
16429
16543
|
(e) => {
|
|
16430
16544
|
const moveHandle = e.target;
|
|
16431
16545
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -16476,7 +16590,7 @@ function DnDGrid(props) {
|
|
|
16476
16590
|
},
|
|
16477
16591
|
[cancelReorder, commitReorder, initReorder, getGridItems]
|
|
16478
16592
|
);
|
|
16479
|
-
return /* @__PURE__ */ (0,
|
|
16593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DnDGridContext.Provider, { value: { dragEl, onDragHandleKeyDown }, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16480
16594
|
"div",
|
|
16481
16595
|
{
|
|
16482
16596
|
ref: gridEl,
|
|
@@ -16498,16 +16612,16 @@ var gridCloneKey = "dndgrid-clone";
|
|
|
16498
16612
|
var activeGridItemClass = "dndgrid-active";
|
|
16499
16613
|
|
|
16500
16614
|
// src/components/DnDGrid/DnDGridItemHandle.tsx
|
|
16501
|
-
var
|
|
16502
|
-
var
|
|
16615
|
+
var import_react_aria49 = require("react-aria");
|
|
16616
|
+
var import_jsx_runtime136 = require("@emotion/react/jsx-runtime");
|
|
16503
16617
|
function DnDGridItemHandle(props) {
|
|
16504
16618
|
const { dragHandleProps, icon = "move", compact = false, color } = props;
|
|
16505
|
-
const { focusProps, isFocusVisible } = (0,
|
|
16506
|
-
const { hoverProps, isHovered } = (0,
|
|
16619
|
+
const { focusProps, isFocusVisible } = (0, import_react_aria49.useFocusRing)();
|
|
16620
|
+
const { hoverProps, isHovered } = (0, import_react_aria49.useHover)({});
|
|
16507
16621
|
const tid = useTestIds(props, "dragHandle");
|
|
16508
16622
|
const iconButtonNormal2 = Css.hPx(28).wPx(28).br8.bw2.$;
|
|
16509
16623
|
const iconButtonCompact2 = Css.hPx(18).wPx(18).br4.bw1.$;
|
|
16510
|
-
return /* @__PURE__ */ (0,
|
|
16624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
16511
16625
|
"button",
|
|
16512
16626
|
{
|
|
16513
16627
|
css: {
|
|
@@ -16515,19 +16629,19 @@ function DnDGridItemHandle(props) {
|
|
|
16515
16629
|
...Css.cursor("grab").bcTransparent.bss.bgTransparent.outline0.dif.aic.jcc.transition.if(isFocusVisible).bcBlue700.$,
|
|
16516
16630
|
...isHovered && Css.bgGray200.$
|
|
16517
16631
|
},
|
|
16518
|
-
...(0,
|
|
16632
|
+
...(0, import_react_aria49.mergeProps)(dragHandleProps, focusProps, hoverProps),
|
|
16519
16633
|
...tid,
|
|
16520
|
-
children: /* @__PURE__ */ (0,
|
|
16634
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Icon, { icon, inc: compact ? 2 : void 0, color })
|
|
16521
16635
|
}
|
|
16522
16636
|
);
|
|
16523
16637
|
}
|
|
16524
16638
|
|
|
16525
16639
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
16526
|
-
var
|
|
16640
|
+
var import_react101 = require("react");
|
|
16527
16641
|
function useDnDGridItem(props) {
|
|
16528
16642
|
const { id, itemRef } = props;
|
|
16529
16643
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
16530
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
16644
|
+
const { dragItemProps, dragHandleProps } = (0, import_react101.useMemo)(
|
|
16531
16645
|
() => {
|
|
16532
16646
|
function initDraggable() {
|
|
16533
16647
|
if (itemRef.current) {
|
|
@@ -16571,7 +16685,7 @@ var BaseFilter = class {
|
|
|
16571
16685
|
};
|
|
16572
16686
|
|
|
16573
16687
|
// src/components/Filters/DateFilter.tsx
|
|
16574
|
-
var
|
|
16688
|
+
var import_jsx_runtime137 = require("@emotion/react/jsx-runtime");
|
|
16575
16689
|
function dateFilter(props) {
|
|
16576
16690
|
return (key) => new DateFilter(key, props);
|
|
16577
16691
|
}
|
|
@@ -16579,10 +16693,10 @@ var anyOption = {};
|
|
|
16579
16693
|
var DateFilter = class extends BaseFilter {
|
|
16580
16694
|
render(value, setValue, tid, inModal, vertical) {
|
|
16581
16695
|
const { label, operations, getOperationValue, getOperationLabel } = this.props;
|
|
16582
|
-
return /* @__PURE__ */ (0,
|
|
16583
|
-
vertical && /* @__PURE__ */ (0,
|
|
16584
|
-
/* @__PURE__ */ (0,
|
|
16585
|
-
/* @__PURE__ */ (0,
|
|
16696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_jsx_runtime137.Fragment, { children: [
|
|
16697
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Label, { label }),
|
|
16698
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(CompoundField, { children: [
|
|
16699
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16586
16700
|
SelectField,
|
|
16587
16701
|
{
|
|
16588
16702
|
compact: true,
|
|
@@ -16605,7 +16719,7 @@ var DateFilter = class extends BaseFilter {
|
|
|
16605
16719
|
...tid[`${defaultTestId(this.label)}_dateOperation`]
|
|
16606
16720
|
}
|
|
16607
16721
|
),
|
|
16608
|
-
/* @__PURE__ */ (0,
|
|
16722
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16609
16723
|
DateField,
|
|
16610
16724
|
{
|
|
16611
16725
|
compact: true,
|
|
@@ -16623,16 +16737,16 @@ var DateFilter = class extends BaseFilter {
|
|
|
16623
16737
|
};
|
|
16624
16738
|
|
|
16625
16739
|
// src/components/Filters/DateRangeFilter.tsx
|
|
16626
|
-
var
|
|
16740
|
+
var import_jsx_runtime138 = require("@emotion/react/jsx-runtime");
|
|
16627
16741
|
function dateRangeFilter(props) {
|
|
16628
16742
|
return (key) => new DateRangeFilter(key, props);
|
|
16629
16743
|
}
|
|
16630
16744
|
var DateRangeFilter = class extends BaseFilter {
|
|
16631
16745
|
render(value, setValue, tid, inModal, vertical) {
|
|
16632
16746
|
const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
|
|
16633
|
-
return /* @__PURE__ */ (0,
|
|
16634
|
-
vertical && /* @__PURE__ */ (0,
|
|
16635
|
-
/* @__PURE__ */ (0,
|
|
16747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_jsx_runtime138.Fragment, { children: [
|
|
16748
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Label, { label }),
|
|
16749
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
|
|
16636
16750
|
DateRangeField,
|
|
16637
16751
|
{
|
|
16638
16752
|
compact: true,
|
|
@@ -16651,7 +16765,7 @@ var DateRangeFilter = class extends BaseFilter {
|
|
|
16651
16765
|
};
|
|
16652
16766
|
|
|
16653
16767
|
// src/components/Filters/MultiFilter.tsx
|
|
16654
|
-
var
|
|
16768
|
+
var import_jsx_runtime139 = require("@emotion/react/jsx-runtime");
|
|
16655
16769
|
function multiFilter(props) {
|
|
16656
16770
|
return (key) => new MultiFilter(key, props);
|
|
16657
16771
|
}
|
|
@@ -16661,7 +16775,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16661
16775
|
const { disabledOptions } = this.props;
|
|
16662
16776
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
16663
16777
|
const disabledKeys = Object.keys(disabledOptionsWithReasons);
|
|
16664
|
-
return /* @__PURE__ */ (0,
|
|
16778
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
16665
16779
|
ToggleChipGroup,
|
|
16666
16780
|
{
|
|
16667
16781
|
label: this.label,
|
|
@@ -16685,7 +16799,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16685
16799
|
);
|
|
16686
16800
|
}
|
|
16687
16801
|
const { defaultValue, nothingSelectedText, ...props } = this.props;
|
|
16688
|
-
return /* @__PURE__ */ (0,
|
|
16802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
16689
16803
|
MultiSelectField,
|
|
16690
16804
|
{
|
|
16691
16805
|
...props,
|
|
@@ -16705,7 +16819,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16705
16819
|
};
|
|
16706
16820
|
|
|
16707
16821
|
// src/components/Filters/NumberRangeFilter.tsx
|
|
16708
|
-
var
|
|
16822
|
+
var import_jsx_runtime140 = require("@emotion/react/jsx-runtime");
|
|
16709
16823
|
function numberRangeFilter(props) {
|
|
16710
16824
|
return (key) => new NumberRangeFilter(key, props);
|
|
16711
16825
|
}
|
|
@@ -16714,10 +16828,10 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16714
16828
|
const { label, numberFieldType, numberFormatOptions } = this.props;
|
|
16715
16829
|
const min = value?.min ?? void 0;
|
|
16716
16830
|
const max = value?.max ?? void 0;
|
|
16717
|
-
return /* @__PURE__ */ (0,
|
|
16718
|
-
vertical && /* @__PURE__ */ (0,
|
|
16719
|
-
/* @__PURE__ */ (0,
|
|
16720
|
-
/* @__PURE__ */ (0,
|
|
16831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
|
|
16832
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { ...tid, children: [
|
|
16833
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Label, { label }),
|
|
16834
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)("div", { css: Css.pb1.$, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16721
16835
|
NumberField,
|
|
16722
16836
|
{
|
|
16723
16837
|
labelStyle: "inline",
|
|
@@ -16733,7 +16847,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16733
16847
|
...tid[`${defaultTestId(label)}_min_vertical`]
|
|
16734
16848
|
}
|
|
16735
16849
|
) }),
|
|
16736
|
-
/* @__PURE__ */ (0,
|
|
16850
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16737
16851
|
NumberField,
|
|
16738
16852
|
{
|
|
16739
16853
|
labelStyle: "inline",
|
|
@@ -16750,8 +16864,8 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16750
16864
|
}
|
|
16751
16865
|
)
|
|
16752
16866
|
] }),
|
|
16753
|
-
!vertical && /* @__PURE__ */ (0,
|
|
16754
|
-
/* @__PURE__ */ (0,
|
|
16867
|
+
!vertical && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(CompoundField, { ...tid, children: [
|
|
16868
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16755
16869
|
NumberField,
|
|
16756
16870
|
{
|
|
16757
16871
|
compact: true,
|
|
@@ -16769,7 +16883,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16769
16883
|
...tid[`${defaultTestId(label)}_min`]
|
|
16770
16884
|
}
|
|
16771
16885
|
),
|
|
16772
|
-
/* @__PURE__ */ (0,
|
|
16886
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16773
16887
|
NumberField,
|
|
16774
16888
|
{
|
|
16775
16889
|
compact: true,
|
|
@@ -16793,7 +16907,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16793
16907
|
};
|
|
16794
16908
|
|
|
16795
16909
|
// src/components/Filters/SingleFilter.tsx
|
|
16796
|
-
var
|
|
16910
|
+
var import_jsx_runtime141 = require("@emotion/react/jsx-runtime");
|
|
16797
16911
|
function singleFilter(props) {
|
|
16798
16912
|
return (key) => new SingleFilter(key, props);
|
|
16799
16913
|
}
|
|
@@ -16810,7 +16924,7 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16810
16924
|
...props
|
|
16811
16925
|
} = this.props;
|
|
16812
16926
|
const options = Array.isArray(maybeOptions) ? [allOption, ...maybeOptions] : { ...maybeOptions, current: maybeOptions.current };
|
|
16813
|
-
return /* @__PURE__ */ (0,
|
|
16927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
16814
16928
|
SelectField,
|
|
16815
16929
|
{
|
|
16816
16930
|
...props,
|
|
@@ -16831,14 +16945,14 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16831
16945
|
};
|
|
16832
16946
|
|
|
16833
16947
|
// src/components/Filters/TreeFilter.tsx
|
|
16834
|
-
var
|
|
16948
|
+
var import_jsx_runtime142 = require("@emotion/react/jsx-runtime");
|
|
16835
16949
|
function treeFilter(props) {
|
|
16836
16950
|
return (key) => new TreeFilter(key, props);
|
|
16837
16951
|
}
|
|
16838
16952
|
var TreeFilter = class extends BaseFilter {
|
|
16839
16953
|
render(value, setValue, tid, inModal, vertical) {
|
|
16840
16954
|
const { defaultValue, nothingSelectedText, filterBy = "root", ...props } = this.props;
|
|
16841
|
-
return /* @__PURE__ */ (0,
|
|
16955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
16842
16956
|
TreeSelectField,
|
|
16843
16957
|
{
|
|
16844
16958
|
...props,
|
|
@@ -16859,14 +16973,14 @@ var TreeFilter = class extends BaseFilter {
|
|
|
16859
16973
|
};
|
|
16860
16974
|
|
|
16861
16975
|
// src/components/Filters/BooleanFilter.tsx
|
|
16862
|
-
var
|
|
16976
|
+
var import_jsx_runtime143 = require("@emotion/react/jsx-runtime");
|
|
16863
16977
|
function booleanFilter(props) {
|
|
16864
16978
|
return (key) => new BooleanFilter(key, props);
|
|
16865
16979
|
}
|
|
16866
16980
|
var BooleanFilter = class extends BaseFilter {
|
|
16867
16981
|
render(value, setValue, tid, inModal, vertical) {
|
|
16868
16982
|
const { options = defaultBooleanOptions, label, defaultValue, ...props } = this.props;
|
|
16869
|
-
return /* @__PURE__ */ (0,
|
|
16983
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
16870
16984
|
SelectField,
|
|
16871
16985
|
{
|
|
16872
16986
|
...props,
|
|
@@ -16894,7 +17008,7 @@ var defaultBooleanOptions = [
|
|
|
16894
17008
|
];
|
|
16895
17009
|
|
|
16896
17010
|
// src/components/Filters/CheckboxFilter.tsx
|
|
16897
|
-
var
|
|
17011
|
+
var import_jsx_runtime144 = require("@emotion/react/jsx-runtime");
|
|
16898
17012
|
function checkboxFilter(props) {
|
|
16899
17013
|
return (key) => new CheckboxFilter(key, {
|
|
16900
17014
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16905,7 +17019,7 @@ function checkboxFilter(props) {
|
|
|
16905
17019
|
var CheckboxFilter = class extends BaseFilter {
|
|
16906
17020
|
render(value, setValue, tid, inModal, vertical) {
|
|
16907
17021
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16908
|
-
return /* @__PURE__ */ (0,
|
|
17022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
16909
17023
|
Checkbox,
|
|
16910
17024
|
{
|
|
16911
17025
|
...props,
|
|
@@ -16924,44 +17038,44 @@ var CheckboxFilter = class extends BaseFilter {
|
|
|
16924
17038
|
};
|
|
16925
17039
|
|
|
16926
17040
|
// src/components/Filters/FilterModal.tsx
|
|
16927
|
-
var
|
|
17041
|
+
var import_react103 = require("react");
|
|
16928
17042
|
|
|
16929
17043
|
// src/components/Modal/OpenModal.tsx
|
|
16930
|
-
var
|
|
16931
|
-
var
|
|
17044
|
+
var import_react102 = require("react");
|
|
17045
|
+
var import_jsx_runtime145 = require("@emotion/react/jsx-runtime");
|
|
16932
17046
|
function OpenModal(props) {
|
|
16933
17047
|
const { openModal } = useModal();
|
|
16934
17048
|
const { size, children, keepOpen } = props;
|
|
16935
|
-
(0,
|
|
17049
|
+
(0, import_react102.useEffect)(() => {
|
|
16936
17050
|
if (!keepOpen) {
|
|
16937
17051
|
openModal({ size, content: children });
|
|
16938
17052
|
}
|
|
16939
17053
|
}, [keepOpen, openModal, size, children]);
|
|
16940
17054
|
if (keepOpen) {
|
|
16941
|
-
return /* @__PURE__ */ (0,
|
|
17055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Modal, { size, content: children });
|
|
16942
17056
|
} else {
|
|
16943
|
-
return /* @__PURE__ */ (0,
|
|
17057
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { children: "dummy content" });
|
|
16944
17058
|
}
|
|
16945
17059
|
}
|
|
16946
17060
|
|
|
16947
17061
|
// src/components/Filters/FilterModal.tsx
|
|
16948
|
-
var
|
|
17062
|
+
var import_jsx_runtime146 = require("@emotion/react/jsx-runtime");
|
|
16949
17063
|
function FilterModal(props) {
|
|
16950
17064
|
const { filter, filters, onApply } = props;
|
|
16951
17065
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16952
17066
|
const { closeModal } = useModal();
|
|
16953
|
-
const [modalFilter, setModalFilter] = (0,
|
|
16954
|
-
return /* @__PURE__ */ (0,
|
|
16955
|
-
/* @__PURE__ */ (0,
|
|
16956
|
-
/* @__PURE__ */ (0,
|
|
17067
|
+
const [modalFilter, setModalFilter] = (0, import_react103.useState)(filter);
|
|
17068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
|
|
17069
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalHeader, { children: "More Filters" }),
|
|
17070
|
+
/* @__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(
|
|
16957
17071
|
modalFilter[key],
|
|
16958
17072
|
(value) => setModalFilter(updateFilter(modalFilter, key, value)),
|
|
16959
17073
|
testId,
|
|
16960
17074
|
true,
|
|
16961
17075
|
false
|
|
16962
17076
|
) }, key)) }) }),
|
|
16963
|
-
/* @__PURE__ */ (0,
|
|
16964
|
-
/* @__PURE__ */ (0,
|
|
17077
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(ModalFooter, { xss: Css.jcsb.$, children: [
|
|
17078
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
16965
17079
|
Button,
|
|
16966
17080
|
{
|
|
16967
17081
|
label: "Clear",
|
|
@@ -16974,9 +17088,9 @@ function FilterModal(props) {
|
|
|
16974
17088
|
...testId.modalClear
|
|
16975
17089
|
}
|
|
16976
17090
|
),
|
|
16977
|
-
/* @__PURE__ */ (0,
|
|
16978
|
-
/* @__PURE__ */ (0,
|
|
16979
|
-
/* @__PURE__ */ (0,
|
|
17091
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { css: Css.df.gap1.$, children: [
|
|
17092
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Button, { label: "Cancel", variant: "tertiary", onClick: closeModal, ...testId.modalClose }),
|
|
17093
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
16980
17094
|
Button,
|
|
16981
17095
|
{
|
|
16982
17096
|
label: "Apply",
|
|
@@ -16992,20 +17106,20 @@ function FilterModal(props) {
|
|
|
16992
17106
|
] });
|
|
16993
17107
|
}
|
|
16994
17108
|
function ModalFilterItem({ label, children }) {
|
|
16995
|
-
return /* @__PURE__ */ (0,
|
|
16996
|
-
label && /* @__PURE__ */ (0,
|
|
16997
|
-
/* @__PURE__ */ (0,
|
|
17109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { css: Css.mb4.if(!label).bt.bcGray200.$, children: [
|
|
17110
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("h2", { css: Css.baseMd.mb2.$, children: label }),
|
|
17111
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.if(!label).pt3.$, children })
|
|
16998
17112
|
] });
|
|
16999
17113
|
}
|
|
17000
17114
|
|
|
17001
17115
|
// src/components/Filters/Filters.tsx
|
|
17002
|
-
var
|
|
17003
|
-
var
|
|
17116
|
+
var import_react104 = require("react");
|
|
17117
|
+
var import_jsx_runtime147 = require("@emotion/react/jsx-runtime");
|
|
17004
17118
|
function Filters(props) {
|
|
17005
17119
|
const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
|
|
17006
17120
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
17007
17121
|
const { openModal } = useModal();
|
|
17008
|
-
const [pageFilters, modalFilters] = (0,
|
|
17122
|
+
const [pageFilters, modalFilters] = (0, import_react104.useMemo)(() => {
|
|
17009
17123
|
const impls = safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]);
|
|
17010
17124
|
if (!vertical && impls.length > numberOfInlineFilters) {
|
|
17011
17125
|
return [
|
|
@@ -17016,7 +17130,7 @@ function Filters(props) {
|
|
|
17016
17130
|
return [Object.fromEntries(impls), {}];
|
|
17017
17131
|
}, [numberOfInlineFilters, vertical, filterDefs]);
|
|
17018
17132
|
const numModalFilters = safeKeys(modalFilters).filter((fk) => filter[fk] !== void 0).length;
|
|
17019
|
-
const maybeGroupByField = groupBy ? /* @__PURE__ */ (0,
|
|
17133
|
+
const maybeGroupByField = groupBy ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
17020
17134
|
SelectField,
|
|
17021
17135
|
{
|
|
17022
17136
|
label: "Group by",
|
|
@@ -17030,7 +17144,7 @@ function Filters(props) {
|
|
|
17030
17144
|
onSelect: (g) => g && groupBy.setValue(g)
|
|
17031
17145
|
}
|
|
17032
17146
|
) }) : null;
|
|
17033
|
-
return /* @__PURE__ */ (0,
|
|
17147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
17034
17148
|
"div",
|
|
17035
17149
|
{
|
|
17036
17150
|
css: {
|
|
@@ -17039,29 +17153,29 @@ function Filters(props) {
|
|
|
17039
17153
|
...testId,
|
|
17040
17154
|
children: [
|
|
17041
17155
|
maybeGroupByField,
|
|
17042
|
-
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */ (0,
|
|
17043
|
-
Object.keys(modalFilters).length > 0 && /* @__PURE__ */ (0,
|
|
17156
|
+
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: f.render(filter[key], (value) => onChange(updateFilter(filter, key, value)), testId, false, vertical) }, key)),
|
|
17157
|
+
Object.keys(modalFilters).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
17044
17158
|
Button,
|
|
17045
17159
|
{
|
|
17046
17160
|
label: "More Filters",
|
|
17047
|
-
endAdornment: numModalFilters > 0 && /* @__PURE__ */ (0,
|
|
17161
|
+
endAdornment: numModalFilters > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { css: Css.wPx(16).hPx(16).fs0.br100.bgBlue700.white.tinySb.df.aic.jcc.$, children: numModalFilters }),
|
|
17048
17162
|
variant: "secondary",
|
|
17049
17163
|
onClick: () => openModal({
|
|
17050
17164
|
// Spreading `props` to pass along `data-testid`
|
|
17051
|
-
content: /* @__PURE__ */ (0,
|
|
17165
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(FilterModal, { ...props, filter, onApply: onChange, filters: modalFilters })
|
|
17052
17166
|
}),
|
|
17053
17167
|
...testId.moreFiltersBtn
|
|
17054
17168
|
}
|
|
17055
17169
|
),
|
|
17056
|
-
Object.keys(filter).length > 0 && /* @__PURE__ */ (0,
|
|
17170
|
+
Object.keys(filter).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) })
|
|
17057
17171
|
]
|
|
17058
17172
|
}
|
|
17059
17173
|
);
|
|
17060
17174
|
}
|
|
17061
|
-
var _Filters = (0,
|
|
17175
|
+
var _Filters = (0, import_react104.memo)(Filters);
|
|
17062
17176
|
|
|
17063
17177
|
// src/components/Filters/ToggleFilter.tsx
|
|
17064
|
-
var
|
|
17178
|
+
var import_jsx_runtime148 = require("@emotion/react/jsx-runtime");
|
|
17065
17179
|
function toggleFilter(props) {
|
|
17066
17180
|
return (key) => new ToggleFilter(key, {
|
|
17067
17181
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -17072,7 +17186,7 @@ function toggleFilter(props) {
|
|
|
17072
17186
|
var ToggleFilter = class extends BaseFilter {
|
|
17073
17187
|
render(value, setValue, tid, inModal, vertical) {
|
|
17074
17188
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
17075
|
-
return /* @__PURE__ */ (0,
|
|
17189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
17076
17190
|
Switch,
|
|
17077
17191
|
{
|
|
17078
17192
|
...props,
|
|
@@ -17102,23 +17216,23 @@ function updateFilter(currentFilter, key, value) {
|
|
|
17102
17216
|
var filterTestIdPrefix = "filter";
|
|
17103
17217
|
|
|
17104
17218
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
17105
|
-
var
|
|
17219
|
+
var import_jsx_runtime149 = require("@emotion/react/jsx-runtime");
|
|
17106
17220
|
function ResponsiveGrid(props) {
|
|
17107
17221
|
const { children, ...hookProps } = props;
|
|
17108
17222
|
const { gridStyles } = useResponsiveGrid(hookProps);
|
|
17109
|
-
return /* @__PURE__ */ (0,
|
|
17223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { css: { ...gridStyles }, children });
|
|
17110
17224
|
}
|
|
17111
17225
|
|
|
17112
17226
|
// src/components/Grid/ResponsiveGridItem.tsx
|
|
17113
|
-
var
|
|
17227
|
+
var import_jsx_runtime150 = require("@emotion/react/jsx-runtime");
|
|
17114
17228
|
function ResponsiveGridItem(props) {
|
|
17115
17229
|
const { colSpan, children } = props;
|
|
17116
17230
|
const { gridItemProps } = useResponsiveGridItem({ colSpan });
|
|
17117
|
-
return /* @__PURE__ */ (0,
|
|
17231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { ...gridItemProps, children });
|
|
17118
17232
|
}
|
|
17119
17233
|
|
|
17120
17234
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17121
|
-
var
|
|
17235
|
+
var import_react105 = require("react");
|
|
17122
17236
|
|
|
17123
17237
|
// src/components/Grid/utils.ts
|
|
17124
17238
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
@@ -17126,7 +17240,7 @@ var gridItemDataAttribute = "data-grid-item-span";
|
|
|
17126
17240
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17127
17241
|
function useResponsiveGrid(props) {
|
|
17128
17242
|
const { minColumnWidth, gap, columns } = props;
|
|
17129
|
-
const gridStyles = (0,
|
|
17243
|
+
const gridStyles = (0, import_react105.useMemo)(() => {
|
|
17130
17244
|
const gapCount = columns - 1;
|
|
17131
17245
|
const totalGapWidth = gap * gapCount;
|
|
17132
17246
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -17167,24 +17281,24 @@ function useResponsiveGridItem({ colSpan = 1 }) {
|
|
|
17167
17281
|
}
|
|
17168
17282
|
|
|
17169
17283
|
// src/components/HbLoadingSpinner.tsx
|
|
17170
|
-
var
|
|
17284
|
+
var import_react106 = __toESM(require("react"), 1);
|
|
17171
17285
|
|
|
17172
17286
|
// src/components/HbLoadingSpinner.base64.ts
|
|
17173
17287
|
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";
|
|
17174
17288
|
|
|
17175
17289
|
// src/components/HbLoadingSpinner.tsx
|
|
17176
|
-
var
|
|
17290
|
+
var import_jsx_runtime151 = require("@emotion/react/jsx-runtime");
|
|
17177
17291
|
function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }) {
|
|
17178
|
-
const ctx = (0,
|
|
17292
|
+
const ctx = (0, import_react106.useContext)(HbLoadingSpinnerContext);
|
|
17179
17293
|
const tid = useTestIds({}, "hbSpinner");
|
|
17180
|
-
const quip = (0,
|
|
17294
|
+
const quip = (0, import_react106.useMemo)(() => {
|
|
17181
17295
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
17182
17296
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
17183
17297
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
17184
17298
|
return allQuips[Math.floor(Math.random() * allQuips.length)];
|
|
17185
17299
|
}, [ctx.noQuips, ctx.quips, extraQuips, extraQuipsOnly, noQuips]);
|
|
17186
|
-
return /* @__PURE__ */ (0,
|
|
17187
|
-
/* @__PURE__ */ (0,
|
|
17300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { css: Css.df.fdc.jcc.aic.$, ...tid, children: [
|
|
17301
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
17188
17302
|
"img",
|
|
17189
17303
|
{
|
|
17190
17304
|
src: HbLoadingSpinner_base64_default,
|
|
@@ -17197,7 +17311,7 @@ function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }
|
|
|
17197
17311
|
...tid.gif
|
|
17198
17312
|
}
|
|
17199
17313
|
),
|
|
17200
|
-
!iconOnly && /* @__PURE__ */ (0,
|
|
17314
|
+
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
17201
17315
|
"div",
|
|
17202
17316
|
{
|
|
17203
17317
|
"data-chromatic": "ignore",
|
|
@@ -17217,17 +17331,17 @@ var HB_QUIPS_MISSION = [
|
|
|
17217
17331
|
"In Service of Our Customers"
|
|
17218
17332
|
].map(dotDotDot);
|
|
17219
17333
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
17220
|
-
var HbLoadingSpinnerContext =
|
|
17334
|
+
var HbLoadingSpinnerContext = import_react106.default.createContext({
|
|
17221
17335
|
quips: ["Loading..."],
|
|
17222
17336
|
noQuips: false
|
|
17223
17337
|
});
|
|
17224
17338
|
function HbSpinnerProvider({ quips = [], children }) {
|
|
17225
|
-
const state = (0,
|
|
17226
|
-
return /* @__PURE__ */ (0,
|
|
17339
|
+
const state = (0, import_react106.useMemo)(() => ({ quips, noQuips: quips.length === 0 }), [quips]);
|
|
17340
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(HbLoadingSpinnerContext.Provider, { value: state, children });
|
|
17227
17341
|
}
|
|
17228
17342
|
|
|
17229
17343
|
// src/components/LoadingSkeleton.tsx
|
|
17230
|
-
var
|
|
17344
|
+
var import_jsx_runtime152 = require("@emotion/react/jsx-runtime");
|
|
17231
17345
|
function LoadingSkeleton({
|
|
17232
17346
|
rows = 1,
|
|
17233
17347
|
columns = 1,
|
|
@@ -17240,7 +17354,7 @@ function LoadingSkeleton({
|
|
|
17240
17354
|
const rowHeight = sizeToPixels2[size];
|
|
17241
17355
|
const rowCells = (rowNumber) => {
|
|
17242
17356
|
const flexGrowForCell = randomizeWidths ? getRandomizedFlexBasisByRowIndex(rowNumber) : 1;
|
|
17243
|
-
return cellArray.map((_, i) => /* @__PURE__ */ (0,
|
|
17357
|
+
return cellArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
17244
17358
|
"div",
|
|
17245
17359
|
{
|
|
17246
17360
|
css: Css.br4.add("animation", "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite").add("flexGrow", flexGrowForCell).bgGray300.if(contrast).bgGray700.$
|
|
@@ -17248,7 +17362,7 @@ function LoadingSkeleton({
|
|
|
17248
17362
|
`row-${rowNumber}-cell-${i}`
|
|
17249
17363
|
));
|
|
17250
17364
|
};
|
|
17251
|
-
return /* @__PURE__ */ (0,
|
|
17365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { css: Css.df.gap1.mb1.hPx(rowHeight).$, children: rowCells(i) }, `row-${i}`)) });
|
|
17252
17366
|
}
|
|
17253
17367
|
function getRandomizedFlexBasisByRowIndex(rowIndex) {
|
|
17254
17368
|
const randomizedFlexBasisValues = [0.65, 0.8, 0.75, 0.9, 0.8, 0.85, 0.8, 0.95];
|
|
@@ -17262,33 +17376,33 @@ var sizeToPixels2 = {
|
|
|
17262
17376
|
};
|
|
17263
17377
|
|
|
17264
17378
|
// src/components/MaxLines.tsx
|
|
17265
|
-
var
|
|
17266
|
-
var
|
|
17267
|
-
var
|
|
17379
|
+
var import_utils117 = require("@react-aria/utils");
|
|
17380
|
+
var import_react107 = require("react");
|
|
17381
|
+
var import_jsx_runtime153 = require("@emotion/react/jsx-runtime");
|
|
17268
17382
|
function MaxLines({ maxLines, children }) {
|
|
17269
|
-
const elRef = (0,
|
|
17270
|
-
const [hasMore, setHasMore] = (0,
|
|
17271
|
-
const [expanded, setExpanded] = (0,
|
|
17272
|
-
(0,
|
|
17383
|
+
const elRef = (0, import_react107.useRef)(null);
|
|
17384
|
+
const [hasMore, setHasMore] = (0, import_react107.useState)(false);
|
|
17385
|
+
const [expanded, setExpanded] = (0, import_react107.useState)(false);
|
|
17386
|
+
(0, import_utils117.useLayoutEffect)(() => {
|
|
17273
17387
|
if (!elRef.current) return;
|
|
17274
17388
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17275
17389
|
}, []);
|
|
17276
|
-
(0,
|
|
17390
|
+
(0, import_react107.useEffect)(() => {
|
|
17277
17391
|
setExpanded(false);
|
|
17278
17392
|
}, [children]);
|
|
17279
|
-
const onResize = (0,
|
|
17393
|
+
const onResize = (0, import_react107.useCallback)(() => {
|
|
17280
17394
|
if (!elRef.current) return;
|
|
17281
17395
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17282
17396
|
}, [expanded]);
|
|
17283
|
-
(0,
|
|
17284
|
-
return /* @__PURE__ */ (0,
|
|
17285
|
-
/* @__PURE__ */ (0,
|
|
17286
|
-
hasMore && /* @__PURE__ */ (0,
|
|
17397
|
+
(0, import_utils117.useResizeObserver)({ ref: elRef, onResize });
|
|
17398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { children: [
|
|
17399
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { ref: elRef, css: Css.if(!expanded).lineClamp(maxLines).$, children }),
|
|
17400
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("button", { css: Css.db.smMd.$, onClick: () => setExpanded((prev) => !prev), children: expanded ? "Show Less" : "Show More" })
|
|
17287
17401
|
] });
|
|
17288
17402
|
}
|
|
17289
17403
|
|
|
17290
17404
|
// src/components/Pagination.tsx
|
|
17291
|
-
var
|
|
17405
|
+
var import_jsx_runtime154 = require("@emotion/react/jsx-runtime");
|
|
17292
17406
|
var defaultPage = { offset: 0, limit: 100 };
|
|
17293
17407
|
function Pagination(props) {
|
|
17294
17408
|
const { totalCount, pageSizes = [100, 500, 1e3] } = props;
|
|
@@ -17308,9 +17422,9 @@ function Pagination(props) {
|
|
|
17308
17422
|
}
|
|
17309
17423
|
}
|
|
17310
17424
|
const tid = useTestIds(props, "pagination");
|
|
17311
|
-
return /* @__PURE__ */ (0,
|
|
17312
|
-
/* @__PURE__ */ (0,
|
|
17313
|
-
/* @__PURE__ */ (0,
|
|
17425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.df.bcGray200.bt.xs.gray500.px2.pt2.$, ...tid, children: [
|
|
17426
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { css: Css.df.mya.mr2.$, ...tid.pageSizeLabel, children: "Page size:" }),
|
|
17427
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { css: Css.wPx(78).$, children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17314
17428
|
SelectField,
|
|
17315
17429
|
{
|
|
17316
17430
|
compact: true,
|
|
@@ -17322,15 +17436,15 @@ function Pagination(props) {
|
|
|
17322
17436
|
...tid.pageSize
|
|
17323
17437
|
}
|
|
17324
17438
|
) }),
|
|
17325
|
-
/* @__PURE__ */ (0,
|
|
17326
|
-
/* @__PURE__ */ (0,
|
|
17439
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.mla.mya.df.$, children: [
|
|
17440
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.df.mya.mr2.$, ...tid.pageInfoLabel, children: [
|
|
17327
17441
|
first,
|
|
17328
17442
|
" ",
|
|
17329
17443
|
showLast ? `- ${last}` : "",
|
|
17330
17444
|
" of ",
|
|
17331
17445
|
totalCount
|
|
17332
17446
|
] }),
|
|
17333
|
-
/* @__PURE__ */ (0,
|
|
17447
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17334
17448
|
IconButton,
|
|
17335
17449
|
{
|
|
17336
17450
|
icon: "chevronLeft",
|
|
@@ -17340,7 +17454,7 @@ function Pagination(props) {
|
|
|
17340
17454
|
...tid.previousIcon
|
|
17341
17455
|
}
|
|
17342
17456
|
),
|
|
17343
|
-
/* @__PURE__ */ (0,
|
|
17457
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17344
17458
|
IconButton,
|
|
17345
17459
|
{
|
|
17346
17460
|
icon: "chevronRight",
|
|
@@ -17368,20 +17482,20 @@ function toPageNumberSize(page) {
|
|
|
17368
17482
|
}
|
|
17369
17483
|
|
|
17370
17484
|
// src/components/ScrollShadows.tsx
|
|
17371
|
-
var
|
|
17372
|
-
var
|
|
17373
|
-
var
|
|
17485
|
+
var import_utils119 = require("@react-aria/utils");
|
|
17486
|
+
var import_react108 = require("react");
|
|
17487
|
+
var import_jsx_runtime155 = require("@emotion/react/jsx-runtime");
|
|
17374
17488
|
function ScrollShadows(props) {
|
|
17375
17489
|
const { children, xss, horizontal = false, bgColor = "rgba(255,255,255,1)" /* White */ } = props;
|
|
17376
|
-
const { height = "auto", width = "auto" } = xss ?? {};
|
|
17490
|
+
const { height = "auto", width: width2 = "auto" } = xss ?? {};
|
|
17377
17491
|
const tid = useTestIds(props);
|
|
17378
17492
|
if (!bgColor.includes("rgba")) {
|
|
17379
17493
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
17380
17494
|
}
|
|
17381
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
17382
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
17383
|
-
const scrollRef = (0,
|
|
17384
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
17495
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react108.useState)(false);
|
|
17496
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react108.useState)(false);
|
|
17497
|
+
const scrollRef = (0, import_react108.useRef)(null);
|
|
17498
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react108.useMemo)(() => {
|
|
17385
17499
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
17386
17500
|
const commonStyles = Css.absolute.z3.add({ pointerEvents: "none" }).$;
|
|
17387
17501
|
const startShadowStyles2 = !horizontal ? Css.top0.left0.right0.hPx(40).$ : Css.left0.top0.bottom0.wPx(25).$;
|
|
@@ -17393,7 +17507,7 @@ function ScrollShadows(props) {
|
|
|
17393
17507
|
{ ...commonStyles, ...endShadowStyles2, ...Css.add("background", endGradient).$ }
|
|
17394
17508
|
];
|
|
17395
17509
|
}, [horizontal, bgColor]);
|
|
17396
|
-
const updateScrollProps = (0,
|
|
17510
|
+
const updateScrollProps = (0, import_react108.useCallback)(
|
|
17397
17511
|
(el) => {
|
|
17398
17512
|
const { scrollTop, scrollHeight, clientHeight, scrollWidth, scrollLeft, clientWidth } = el;
|
|
17399
17513
|
const start = horizontal ? scrollLeft : scrollTop;
|
|
@@ -17404,17 +17518,17 @@ function ScrollShadows(props) {
|
|
|
17404
17518
|
},
|
|
17405
17519
|
[horizontal]
|
|
17406
17520
|
);
|
|
17407
|
-
const onResize = (0,
|
|
17408
|
-
(0,
|
|
17409
|
-
return /* @__PURE__ */ (0,
|
|
17521
|
+
const onResize = (0, import_react108.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
17522
|
+
(0, import_utils119.useResizeObserver)({ ref: scrollRef, onResize });
|
|
17523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
17410
17524
|
"div",
|
|
17411
17525
|
{
|
|
17412
|
-
css: Css.relative.oh.h(height).w(
|
|
17526
|
+
css: Css.relative.oh.h(height).w(width2).df.fd(!horizontal ? "column" : "row").$,
|
|
17413
17527
|
...tid,
|
|
17414
17528
|
children: [
|
|
17415
|
-
/* @__PURE__ */ (0,
|
|
17416
|
-
/* @__PURE__ */ (0,
|
|
17417
|
-
/* @__PURE__ */ (0,
|
|
17529
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { css: { ...startShadowStyles, opacity: showStartShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17530
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { css: { ...endShadowStyles, opacity: showEndShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17531
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
17418
17532
|
"div",
|
|
17419
17533
|
{
|
|
17420
17534
|
css: {
|
|
@@ -17432,10 +17546,10 @@ function ScrollShadows(props) {
|
|
|
17432
17546
|
}
|
|
17433
17547
|
|
|
17434
17548
|
// src/components/Snackbar/useSnackbar.tsx
|
|
17435
|
-
var
|
|
17549
|
+
var import_react109 = require("react");
|
|
17436
17550
|
function useSnackbar() {
|
|
17437
17551
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
17438
|
-
const onClose = (0,
|
|
17552
|
+
const onClose = (0, import_react109.useCallback)(
|
|
17439
17553
|
(noticeId) => {
|
|
17440
17554
|
setNotices((prev) => {
|
|
17441
17555
|
let returnValue = prev;
|
|
@@ -17452,7 +17566,7 @@ function useSnackbar() {
|
|
|
17452
17566
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17453
17567
|
[]
|
|
17454
17568
|
);
|
|
17455
|
-
const triggerNotice = (0,
|
|
17569
|
+
const triggerNotice = (0, import_react109.useCallback)(
|
|
17456
17570
|
(props) => {
|
|
17457
17571
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
17458
17572
|
let maybeTimeout;
|
|
@@ -17481,8 +17595,8 @@ function useSnackbar() {
|
|
|
17481
17595
|
},
|
|
17482
17596
|
[onClose, setNotices]
|
|
17483
17597
|
);
|
|
17484
|
-
const closeNotice = (0,
|
|
17485
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
17598
|
+
const closeNotice = (0, import_react109.useCallback)((id) => onClose(id), [onClose]);
|
|
17599
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react109.useEffect)(() => {
|
|
17486
17600
|
setOffset({ bottom });
|
|
17487
17601
|
return () => setOffset({});
|
|
17488
17602
|
}, [bottom]);
|
|
@@ -17491,9 +17605,9 @@ function useSnackbar() {
|
|
|
17491
17605
|
var snackbarId = 1;
|
|
17492
17606
|
|
|
17493
17607
|
// src/components/Stepper.tsx
|
|
17494
|
-
var
|
|
17495
|
-
var
|
|
17496
|
-
var
|
|
17608
|
+
var import_react110 = require("react");
|
|
17609
|
+
var import_react_aria50 = require("react-aria");
|
|
17610
|
+
var import_jsx_runtime156 = require("@emotion/react/jsx-runtime");
|
|
17497
17611
|
function Stepper(props) {
|
|
17498
17612
|
const { steps, currentStep, onChange } = props;
|
|
17499
17613
|
if (steps.length === 0) {
|
|
@@ -17504,25 +17618,25 @@ function Stepper(props) {
|
|
|
17504
17618
|
const maxStepWidth = 200;
|
|
17505
17619
|
const minStepWidth = 100;
|
|
17506
17620
|
const gap = 8;
|
|
17507
|
-
return /* @__PURE__ */ (0,
|
|
17508
|
-
/* @__PURE__ */ (0,
|
|
17621
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("nav", { "aria-label": "steps", css: Css.df.fdc.w100.$, ...tid, children: [
|
|
17622
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("ol", { css: Css.listReset.df.gapPx(gap).$, children: steps.map((step) => {
|
|
17509
17623
|
const isCurrent = currentStep === step.value;
|
|
17510
|
-
return /* @__PURE__ */ (0,
|
|
17624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17511
17625
|
"li",
|
|
17512
17626
|
{
|
|
17513
17627
|
css: Css.df.fg1.fdc.maxwPx(maxStepWidth).mwPx(minStepWidth).$,
|
|
17514
17628
|
"aria-current": isCurrent,
|
|
17515
17629
|
...tid.step,
|
|
17516
|
-
children: /* @__PURE__ */ (0,
|
|
17630
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton })
|
|
17517
17631
|
},
|
|
17518
17632
|
step.label
|
|
17519
17633
|
);
|
|
17520
17634
|
}) }),
|
|
17521
|
-
/* @__PURE__ */ (0,
|
|
17635
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17522
17636
|
"div",
|
|
17523
17637
|
{
|
|
17524
17638
|
css: Css.mt1.bgGray300.hPx(4).maxwPx(steps.length * maxStepWidth + (steps.length - 1) * gap).mwPx(steps.length * minStepWidth + (steps.length - 1) * gap).w100.$,
|
|
17525
|
-
children: /* @__PURE__ */ (0,
|
|
17639
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17526
17640
|
"div",
|
|
17527
17641
|
{
|
|
17528
17642
|
css: Css.bgBlue600.add("transition", "width 200ms").h100.w(`${(lastCompletedStep + 1) / steps.length * 100}%`).$
|
|
@@ -17535,13 +17649,13 @@ function Stepper(props) {
|
|
|
17535
17649
|
function StepButton(props) {
|
|
17536
17650
|
const { label, disabled, state, isCurrent, onClick } = props;
|
|
17537
17651
|
const ariaProps = { onPress: onClick, isDisabled: disabled };
|
|
17538
|
-
const ref = (0,
|
|
17539
|
-
const { buttonProps, isPressed } = (0,
|
|
17540
|
-
const { isFocusVisible, focusProps } = (0,
|
|
17541
|
-
const { hoverProps, isHovered } = (0,
|
|
17652
|
+
const ref = (0, import_react110.useRef)(null);
|
|
17653
|
+
const { buttonProps, isPressed } = (0, import_react_aria50.useButton)(ariaProps, ref);
|
|
17654
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria50.useFocusRing)();
|
|
17655
|
+
const { hoverProps, isHovered } = (0, import_react_aria50.useHover)(ariaProps);
|
|
17542
17656
|
const focusRingStyles2 = state === "error" ? Css.bshDanger.$ : Css.bshFocus.$;
|
|
17543
17657
|
const tid = useTestIds(props, "stepButton");
|
|
17544
|
-
return /* @__PURE__ */ (0,
|
|
17658
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
17545
17659
|
"button",
|
|
17546
17660
|
{
|
|
17547
17661
|
ref,
|
|
@@ -17559,7 +17673,7 @@ function StepButton(props) {
|
|
|
17559
17673
|
},
|
|
17560
17674
|
...tid[defaultTestId(label)],
|
|
17561
17675
|
children: [
|
|
17562
|
-
/* @__PURE__ */ (0,
|
|
17676
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { css: Css.fs0.mrPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
17563
17677
|
label
|
|
17564
17678
|
]
|
|
17565
17679
|
}
|
|
@@ -17567,12 +17681,12 @@ function StepButton(props) {
|
|
|
17567
17681
|
}
|
|
17568
17682
|
function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = false }) {
|
|
17569
17683
|
if (state === "error") {
|
|
17570
|
-
return /* @__PURE__ */ (0,
|
|
17684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon: "errorCircle" });
|
|
17571
17685
|
}
|
|
17572
17686
|
if (state === "complete") {
|
|
17573
|
-
return /* @__PURE__ */ (0,
|
|
17687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon: "check" });
|
|
17574
17688
|
}
|
|
17575
|
-
return /* @__PURE__ */ (0,
|
|
17689
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { css: Css.wPx(24).hPx(24).df.aic.jcc.$, children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17576
17690
|
"div",
|
|
17577
17691
|
{
|
|
17578
17692
|
css: Css.wPx(10).hPx(10).ba.bw2.br100.add("color", "currentColor").if(isHovered || isPressed || isCurrent).add("backgroundColor", "currentColor").$
|
|
@@ -17582,7 +17696,7 @@ function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = fal
|
|
|
17582
17696
|
|
|
17583
17697
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
17584
17698
|
var import_react_dom5 = require("react-dom");
|
|
17585
|
-
var
|
|
17699
|
+
var import_jsx_runtime157 = require("@emotion/react/jsx-runtime");
|
|
17586
17700
|
function SuperDrawerHeader(props) {
|
|
17587
17701
|
const { hideControls } = props;
|
|
17588
17702
|
const { sdHeaderDiv, drawerContentStack: contentStack } = useBeamContext();
|
|
@@ -17592,15 +17706,15 @@ function SuperDrawerHeader(props) {
|
|
|
17592
17706
|
const isDetail = currentContent !== firstContent;
|
|
17593
17707
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
17594
17708
|
return (0, import_react_dom5.createPortal)(
|
|
17595
|
-
/* @__PURE__ */ (0,
|
|
17596
|
-
isStructuredProps(props) ? /* @__PURE__ */ (0,
|
|
17597
|
-
/* @__PURE__ */ (0,
|
|
17598
|
-
typeof props.title === "string" ? /* @__PURE__ */ (0,
|
|
17709
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.df.aic.jcsb.gap3.$, ...tid, children: [
|
|
17710
|
+
isStructuredProps(props) ? /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.df.jcsb.aic.gap2.fg1.$, children: [
|
|
17711
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.fg1.df.aic.gap2.$, children: [
|
|
17712
|
+
typeof props.title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("h1", { children: props.title }) : props.title,
|
|
17599
17713
|
props.left
|
|
17600
17714
|
] }),
|
|
17601
|
-
props.right && /* @__PURE__ */ (0,
|
|
17602
|
-
] }) : /* @__PURE__ */ (0,
|
|
17603
|
-
!hideControls && /* @__PURE__ */ (0,
|
|
17715
|
+
props.right && /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fs0.$, children: props.right })
|
|
17716
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fg1.$, children: props.children }),
|
|
17717
|
+
!hideControls && /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fs0.if(isDetail).vh.$, children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(
|
|
17604
17718
|
ButtonGroup,
|
|
17605
17719
|
{
|
|
17606
17720
|
buttons: [
|
|
@@ -17619,18 +17733,18 @@ function isStructuredProps(props) {
|
|
|
17619
17733
|
}
|
|
17620
17734
|
|
|
17621
17735
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
17622
|
-
var
|
|
17736
|
+
var import_jsx_runtime158 = require("@emotion/react/jsx-runtime");
|
|
17623
17737
|
function ConfirmCloseModal(props) {
|
|
17624
17738
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
17625
17739
|
const { modalState } = useBeamContext();
|
|
17626
17740
|
function closeModal() {
|
|
17627
17741
|
modalState.current = void 0;
|
|
17628
17742
|
}
|
|
17629
|
-
return /* @__PURE__ */ (0,
|
|
17630
|
-
/* @__PURE__ */ (0,
|
|
17631
|
-
/* @__PURE__ */ (0,
|
|
17632
|
-
/* @__PURE__ */ (0,
|
|
17633
|
-
/* @__PURE__ */ (0,
|
|
17743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(import_jsx_runtime158.Fragment, { children: [
|
|
17744
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
17745
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
17746
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(ModalFooter, { children: [
|
|
17747
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
17634
17748
|
Button,
|
|
17635
17749
|
{
|
|
17636
17750
|
variant: "tertiary",
|
|
@@ -17641,7 +17755,7 @@ function ConfirmCloseModal(props) {
|
|
|
17641
17755
|
}
|
|
17642
17756
|
}
|
|
17643
17757
|
),
|
|
17644
|
-
/* @__PURE__ */ (0,
|
|
17758
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Button, { label: continueText, onClick: closeModal })
|
|
17645
17759
|
] })
|
|
17646
17760
|
] });
|
|
17647
17761
|
}
|
|
@@ -17650,8 +17764,8 @@ function ConfirmCloseModal(props) {
|
|
|
17650
17764
|
var import_framer_motion4 = require("framer-motion");
|
|
17651
17765
|
|
|
17652
17766
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
17653
|
-
var
|
|
17654
|
-
var
|
|
17767
|
+
var import_react111 = require("react");
|
|
17768
|
+
var import_jsx_runtime159 = require("@emotion/react/jsx-runtime");
|
|
17655
17769
|
function useSuperDrawer() {
|
|
17656
17770
|
const {
|
|
17657
17771
|
drawerContentStack: contentStack,
|
|
@@ -17663,7 +17777,7 @@ function useSuperDrawer() {
|
|
|
17663
17777
|
function canCloseDrawerDetails(i, doChange) {
|
|
17664
17778
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
17665
17779
|
if (!canClose(canCloseDrawerDetail)) {
|
|
17666
|
-
openModal({ content: /* @__PURE__ */ (0,
|
|
17780
|
+
openModal({ content: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
17667
17781
|
return false;
|
|
17668
17782
|
}
|
|
17669
17783
|
}
|
|
@@ -17683,14 +17797,14 @@ function useSuperDrawer() {
|
|
|
17683
17797
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
17684
17798
|
if (!canClose(canCloseDrawer)) {
|
|
17685
17799
|
openModal({
|
|
17686
|
-
content: /* @__PURE__ */ (0,
|
|
17800
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
17687
17801
|
});
|
|
17688
17802
|
return;
|
|
17689
17803
|
}
|
|
17690
17804
|
}
|
|
17691
17805
|
doChange();
|
|
17692
17806
|
}
|
|
17693
|
-
const closeActions = (0,
|
|
17807
|
+
const closeActions = (0, import_react111.useMemo)(
|
|
17694
17808
|
() => {
|
|
17695
17809
|
return {
|
|
17696
17810
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -17725,7 +17839,7 @@ function useSuperDrawer() {
|
|
|
17725
17839
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17726
17840
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
17727
17841
|
);
|
|
17728
|
-
const actions = (0,
|
|
17842
|
+
const actions = (0, import_react111.useMemo)(
|
|
17729
17843
|
() => {
|
|
17730
17844
|
return {
|
|
17731
17845
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -17778,32 +17892,32 @@ function canClose(canCloseCheck) {
|
|
|
17778
17892
|
}
|
|
17779
17893
|
|
|
17780
17894
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
17781
|
-
var
|
|
17895
|
+
var import_jsx_runtime160 = require("@emotion/react/jsx-runtime");
|
|
17782
17896
|
var SuperDrawerContent = ({ children, actions }) => {
|
|
17783
17897
|
const { closeDrawerDetail } = useSuperDrawer();
|
|
17784
17898
|
const { drawerContentStack: contentStack } = useBeamContext();
|
|
17785
17899
|
const { kind } = contentStack.current[contentStack.current.length - 1] ?? {};
|
|
17786
17900
|
const firstContent = contentStack.current[0]?.opts;
|
|
17787
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
17901
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
17788
17902
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
17789
17903
|
if (kind === "open") {
|
|
17790
|
-
return /* @__PURE__ */ (0,
|
|
17904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.oa.$, children: children2 }, "content");
|
|
17791
17905
|
} else if (kind === "detail") {
|
|
17792
|
-
return /* @__PURE__ */ (0,
|
|
17906
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(
|
|
17793
17907
|
import_framer_motion4.motion.div,
|
|
17794
17908
|
{
|
|
17795
17909
|
css: Css.px3.pt2.pb3.fg1.$,
|
|
17796
17910
|
animate: { overflow: "auto" },
|
|
17797
17911
|
transition: { overflow: { delay: 0.3 } },
|
|
17798
17912
|
children: [
|
|
17799
|
-
/* @__PURE__ */ (0,
|
|
17800
|
-
/* @__PURE__ */ (0,
|
|
17913
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
17914
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
17801
17915
|
import_framer_motion4.motion.div,
|
|
17802
17916
|
{
|
|
17803
|
-
initial: { x:
|
|
17917
|
+
initial: { x: width2, opacity: 0 },
|
|
17804
17918
|
animate: { x: 0, opacity: 1 },
|
|
17805
17919
|
transition: { ease: "linear", duration: 0.3, opacity: { delay: 0.15 } },
|
|
17806
|
-
exit: { x:
|
|
17920
|
+
exit: { x: width2, opacity: 0 },
|
|
17807
17921
|
css: Css.pt2.$,
|
|
17808
17922
|
children: children2
|
|
17809
17923
|
}
|
|
@@ -17813,27 +17927,27 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
17813
17927
|
"content"
|
|
17814
17928
|
);
|
|
17815
17929
|
} else {
|
|
17816
|
-
return /* @__PURE__ */ (0,
|
|
17930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.$, style: { overflow: "auto" } }, "content");
|
|
17817
17931
|
}
|
|
17818
17932
|
}
|
|
17819
|
-
return /* @__PURE__ */ (0,
|
|
17933
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(import_jsx_runtime160.Fragment, { children: [
|
|
17820
17934
|
wrapWithMotionAndMaybeBack(children),
|
|
17821
|
-
actions && /* @__PURE__ */ (0,
|
|
17935
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("footer", { css: Css.bt.bcGray200.p3.df.aic.jcfe.$, children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { css: Css.df.gap1.$, children: actions.map((buttonProps, i) => /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(Button, { ...buttonProps }, i)) }) })
|
|
17822
17936
|
] });
|
|
17823
17937
|
};
|
|
17824
17938
|
|
|
17825
17939
|
// src/components/Tabs.tsx
|
|
17826
17940
|
var import_change_case7 = require("change-case");
|
|
17827
|
-
var
|
|
17828
|
-
var
|
|
17941
|
+
var import_react112 = require("react");
|
|
17942
|
+
var import_react_aria51 = require("react-aria");
|
|
17829
17943
|
var import_react_router2 = require("react-router");
|
|
17830
17944
|
var import_react_router_dom5 = require("react-router-dom");
|
|
17831
|
-
var
|
|
17945
|
+
var import_jsx_runtime161 = require("@emotion/react/jsx-runtime");
|
|
17832
17946
|
function TabsWithContent(props) {
|
|
17833
17947
|
const styles = hideTabs(props) ? {} : Css.pt3.$;
|
|
17834
|
-
return /* @__PURE__ */ (0,
|
|
17835
|
-
/* @__PURE__ */ (0,
|
|
17836
|
-
/* @__PURE__ */ (0,
|
|
17948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(import_jsx_runtime161.Fragment, { children: [
|
|
17949
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(Tabs, { ...props }),
|
|
17950
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(TabContent, { ...props, contentXss: { ...styles, ...props.contentXss } })
|
|
17837
17951
|
] });
|
|
17838
17952
|
}
|
|
17839
17953
|
function TabContent(props) {
|
|
@@ -17848,7 +17962,7 @@ function TabContent(props) {
|
|
|
17848
17962
|
return (
|
|
17849
17963
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
17850
17964
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
17851
|
-
/* @__PURE__ */ (0,
|
|
17965
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(FullBleed, { omitPadding: "paddingLeft" in contentXss || "paddingRight" in contentXss, children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
17852
17966
|
"div",
|
|
17853
17967
|
{
|
|
17854
17968
|
"aria-labelledby": `${uniqueValue}-tab`,
|
|
@@ -17857,7 +17971,7 @@ function TabContent(props) {
|
|
|
17857
17971
|
tabIndex: 0,
|
|
17858
17972
|
...tid.panel,
|
|
17859
17973
|
css: contentXss,
|
|
17860
|
-
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0,
|
|
17974
|
+
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(import_react_router2.Route, { path: selectedTab.path, render: selectedTab.render }) : selectedTab.render()
|
|
17861
17975
|
}
|
|
17862
17976
|
) })
|
|
17863
17977
|
);
|
|
@@ -17868,11 +17982,11 @@ function Tabs(props) {
|
|
|
17868
17982
|
const selected = isRouteTabs(props) ? uniqueTabValue(
|
|
17869
17983
|
props.tabs.find((t) => !!(0, import_react_router2.matchPath)(location.pathname, { path: t.path, exact: true })) || props.tabs[0]
|
|
17870
17984
|
) : props.selected;
|
|
17871
|
-
const { isFocusVisible, focusProps } = (0,
|
|
17985
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria51.useFocusRing)();
|
|
17872
17986
|
const tid = useTestIds(others, "tabs");
|
|
17873
|
-
const [active, setActive] = (0,
|
|
17874
|
-
const ref = (0,
|
|
17875
|
-
(0,
|
|
17987
|
+
const [active, setActive] = (0, import_react112.useState)(selected);
|
|
17988
|
+
const ref = (0, import_react112.useRef)(null);
|
|
17989
|
+
(0, import_react112.useEffect)(() => setActive(selected), [selected]);
|
|
17876
17990
|
function onKeyUp(e) {
|
|
17877
17991
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
17878
17992
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -17888,10 +18002,10 @@ function Tabs(props) {
|
|
|
17888
18002
|
setActive(selected);
|
|
17889
18003
|
}
|
|
17890
18004
|
}
|
|
17891
|
-
return /* @__PURE__ */ (0,
|
|
17892
|
-
!hideTabs(props) && /* @__PURE__ */ (0,
|
|
18005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { css: { ...Css.df.aic.oa.wsnw.gap1.$, ...includeBottomBorder ? { ...Css.bb.bcGray200.$ } : {} }, children: [
|
|
18006
|
+
!hideTabs(props) && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { ref, css: Css.dif.gap1.asfe.$, "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
17893
18007
|
const uniqueValue = uniqueTabValue(tab);
|
|
17894
|
-
return /* @__PURE__ */ (0,
|
|
18008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
17895
18009
|
TabImpl,
|
|
17896
18010
|
{
|
|
17897
18011
|
active: active === uniqueValue,
|
|
@@ -17906,15 +18020,15 @@ function Tabs(props) {
|
|
|
17906
18020
|
uniqueValue
|
|
17907
18021
|
);
|
|
17908
18022
|
}) }),
|
|
17909
|
-
right && /* @__PURE__ */ (0,
|
|
18023
|
+
right && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { css: Css.mla.df.aic.gap1.pb1.$, children: right })
|
|
17910
18024
|
] });
|
|
17911
18025
|
}
|
|
17912
18026
|
function TabImpl(props) {
|
|
17913
18027
|
const { tab, onClick, active, onKeyUp, onBlur, focusProps, isFocusVisible = false, ...others } = props;
|
|
17914
18028
|
const { disabled = false, name: label, icon, endAdornment } = tab;
|
|
17915
18029
|
const isDisabled = !!disabled;
|
|
17916
|
-
const { hoverProps, isHovered } = (0,
|
|
17917
|
-
const { baseStyles:
|
|
18030
|
+
const { hoverProps, isHovered } = (0, import_react_aria51.useHover)({ isDisabled });
|
|
18031
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0, import_react112.useMemo)(
|
|
17918
18032
|
() => getTabStyles(),
|
|
17919
18033
|
[]
|
|
17920
18034
|
);
|
|
@@ -17928,28 +18042,28 @@ function TabImpl(props) {
|
|
|
17928
18042
|
tabIndex: active ? 0 : -1,
|
|
17929
18043
|
...others,
|
|
17930
18044
|
css: {
|
|
17931
|
-
...
|
|
18045
|
+
...baseStyles5,
|
|
17932
18046
|
...active && activeStyles4,
|
|
17933
|
-
...isDisabled &&
|
|
18047
|
+
...isDisabled && disabledStyles4,
|
|
17934
18048
|
...isHovered && hoverStyles4,
|
|
17935
18049
|
...isHovered && active && activeHoverStyles,
|
|
17936
18050
|
...isFocusVisible && active && focusRingStyles2
|
|
17937
18051
|
}
|
|
17938
18052
|
};
|
|
17939
|
-
const interactiveProps = (0,
|
|
18053
|
+
const interactiveProps = (0, import_react_aria51.mergeProps)(focusProps, hoverProps, {
|
|
17940
18054
|
onKeyUp,
|
|
17941
18055
|
onBlur,
|
|
17942
18056
|
...isRouteTab(tab) ? {} : { onClick: () => onClick(tab.value) }
|
|
17943
18057
|
});
|
|
17944
|
-
const tabLabel = /* @__PURE__ */ (0,
|
|
18058
|
+
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(import_jsx_runtime161.Fragment, { children: [
|
|
17945
18059
|
label,
|
|
17946
|
-
(icon || endAdornment) && /* @__PURE__ */ (0,
|
|
18060
|
+
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { css: Css.ml1.$, children: icon ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(Icon, { icon }) : endAdornment })
|
|
17947
18061
|
] });
|
|
17948
18062
|
return isDisabled ? maybeTooltip({
|
|
17949
18063
|
title: resolveTooltip(disabled),
|
|
17950
18064
|
placement: "top",
|
|
17951
|
-
children: /* @__PURE__ */ (0,
|
|
17952
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */ (0,
|
|
18065
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { ...tabProps, children: tabLabel })
|
|
18066
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(import_react_router_dom5.Link, { ...{ ...tabProps, ...interactiveProps }, className: "navLink", to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("button", { ...{ ...tabProps, ...interactiveProps }, children: tabLabel });
|
|
17953
18067
|
}
|
|
17954
18068
|
function getTabStyles() {
|
|
17955
18069
|
const borderBottomWidthPx = 4;
|
|
@@ -17985,60 +18099,19 @@ function hideTabs(props) {
|
|
|
17985
18099
|
return props.alwaysShowAllTabs ? false : props.tabs.filter((t) => !t.disabled).length === 1;
|
|
17986
18100
|
}
|
|
17987
18101
|
|
|
17988
|
-
// src/components/Tag.tsx
|
|
17989
|
-
var import_utils122 = require("@react-aria/utils");
|
|
17990
|
-
var import_react110 = require("react");
|
|
17991
|
-
var import_jsx_runtime160 = require("@emotion/react/jsx-runtime");
|
|
17992
|
-
function Tag(props) {
|
|
17993
|
-
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
17994
|
-
const typeStyles2 = getStyles(type);
|
|
17995
|
-
const tid = useTestIds(otherProps);
|
|
17996
|
-
const [showTooltip, setShowTooltip] = (0, import_react110.useState)(false);
|
|
17997
|
-
const ref = (0, import_react110.useRef)(null);
|
|
17998
|
-
(0, import_utils122.useResizeObserver)({
|
|
17999
|
-
ref,
|
|
18000
|
-
onResize: () => {
|
|
18001
|
-
if (ref.current) {
|
|
18002
|
-
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
18003
|
-
}
|
|
18004
|
-
}
|
|
18005
|
-
});
|
|
18006
|
-
return maybeTooltip({
|
|
18007
|
-
title: !preventTooltip && showTooltip ? text : void 0,
|
|
18008
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
18009
|
-
otherProps.icon && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
18010
|
-
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
18011
|
-
] })
|
|
18012
|
-
});
|
|
18013
|
-
}
|
|
18014
|
-
function getStyles(type) {
|
|
18015
|
-
switch (type) {
|
|
18016
|
-
case "info":
|
|
18017
|
-
return Css.bgBlue100.$;
|
|
18018
|
-
case "caution":
|
|
18019
|
-
return Css.bgYellow200.$;
|
|
18020
|
-
case "warning":
|
|
18021
|
-
return Css.bgRed200.$;
|
|
18022
|
-
case "success":
|
|
18023
|
-
return Css.bgGreen200.$;
|
|
18024
|
-
default:
|
|
18025
|
-
return Css.bgGray200.$;
|
|
18026
|
-
}
|
|
18027
|
-
}
|
|
18028
|
-
|
|
18029
18102
|
// src/components/Toast/Toast.tsx
|
|
18030
|
-
var
|
|
18103
|
+
var import_jsx_runtime162 = require("@emotion/react/jsx-runtime");
|
|
18031
18104
|
function Toast() {
|
|
18032
18105
|
const { setNotice, notice } = useToastContext();
|
|
18033
18106
|
const tid = useTestIds({}, "toast");
|
|
18034
|
-
return /* @__PURE__ */ (0,
|
|
18107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_jsx_runtime162.Fragment, { children: notice && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(Banner, { ...notice, ...tid, onClose: () => setNotice(void 0) }) });
|
|
18035
18108
|
}
|
|
18036
18109
|
|
|
18037
18110
|
// src/components/Toast/useToast.tsx
|
|
18038
|
-
var
|
|
18111
|
+
var import_react113 = require("react");
|
|
18039
18112
|
function useToast() {
|
|
18040
18113
|
const { setNotice, clear } = useToastContext();
|
|
18041
|
-
const showToast = (0,
|
|
18114
|
+
const showToast = (0, import_react113.useCallback)((props) => setNotice(props), [setNotice]);
|
|
18042
18115
|
return { showToast, clear };
|
|
18043
18116
|
}
|
|
18044
18117
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -18083,6 +18156,7 @@ function useToast() {
|
|
|
18083
18156
|
ButtonGroup,
|
|
18084
18157
|
ButtonMenu,
|
|
18085
18158
|
ButtonModal,
|
|
18159
|
+
Card,
|
|
18086
18160
|
Checkbox,
|
|
18087
18161
|
CheckboxGroup,
|
|
18088
18162
|
Chip,
|
|
@@ -18204,6 +18278,9 @@ function useToast() {
|
|
|
18204
18278
|
calcColumnSizes,
|
|
18205
18279
|
cardStyle,
|
|
18206
18280
|
checkboxFilter,
|
|
18281
|
+
chipBaseStyles,
|
|
18282
|
+
chipDisabledStyles,
|
|
18283
|
+
chipHoverStyles,
|
|
18207
18284
|
collapseColumn,
|
|
18208
18285
|
column,
|
|
18209
18286
|
condensedStyle,
|