@homebound/beam 2.387.1 → 2.389.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 +616 -447
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +62 -18
- package/dist/index.d.ts +62 -18
- package/dist/index.js +603 -437
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -6521,7 +6521,7 @@ function NavLink(props) {
|
|
|
6521
6521
|
const { buttonProps, isPressed } = useButton3({ ...ariaProps, elementType: href ? "a" : "button" }, ref);
|
|
6522
6522
|
const { hoverProps, isHovered } = useHover4({ isDisabled });
|
|
6523
6523
|
const { isFocusVisible, focusProps } = useFocusRing3(ariaProps);
|
|
6524
|
-
const { baseStyles:
|
|
6524
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3 } = useMemo8(
|
|
6525
6525
|
() => getNavLinkStyles(variant, contrast),
|
|
6526
6526
|
[variant, contrast]
|
|
6527
6527
|
);
|
|
@@ -6533,9 +6533,9 @@ function NavLink(props) {
|
|
|
6533
6533
|
/** aria-current represents the current page within a set of pages */
|
|
6534
6534
|
"aria-current": active ? "page" : void 0,
|
|
6535
6535
|
css: {
|
|
6536
|
-
...
|
|
6536
|
+
...baseStyles5,
|
|
6537
6537
|
...active && activeStyles4,
|
|
6538
|
-
...isDisabled &&
|
|
6538
|
+
...isDisabled && disabledStyles4,
|
|
6539
6539
|
...isFocusVisible && focusRingStyles2,
|
|
6540
6540
|
...isHovered && hoverStyles4,
|
|
6541
6541
|
...isPressed && pressedStyles3
|
|
@@ -6733,7 +6733,7 @@ function Button(props) {
|
|
|
6733
6733
|
);
|
|
6734
6734
|
const { isFocusVisible, focusProps } = useFocusRing4(ariaProps);
|
|
6735
6735
|
const { hoverProps, isHovered } = useHover5(ariaProps);
|
|
6736
|
-
const { baseStyles:
|
|
6736
|
+
const { baseStyles: baseStyles5, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3, focusStyles: focusStyles2 } = useMemo9(
|
|
6737
6737
|
() => getButtonStyles(variant, size, contrast),
|
|
6738
6738
|
[variant, size, contrast]
|
|
6739
6739
|
);
|
|
@@ -6750,10 +6750,10 @@ function Button(props) {
|
|
|
6750
6750
|
className: asLink ? navLink : void 0,
|
|
6751
6751
|
css: {
|
|
6752
6752
|
...Css.buttonBase.tt("inherit").$,
|
|
6753
|
-
...
|
|
6753
|
+
...baseStyles5,
|
|
6754
6754
|
...isHovered && !isPressed ? hoverStyles4 : {},
|
|
6755
6755
|
...isPressed ? pressedStyles3 : {},
|
|
6756
|
-
...isDisabled || asyncInProgress ? { ...
|
|
6756
|
+
...isDisabled || asyncInProgress ? { ...disabledStyles4, ...Css.cursorNotAllowed.$ } : {},
|
|
6757
6757
|
...isFocusVisible || forceFocusStyles ? focusStyles2 : {}
|
|
6758
6758
|
},
|
|
6759
6759
|
...tid
|
|
@@ -6943,17 +6943,17 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
|
6943
6943
|
calcColumnSizes(columns, tableWidth, style.minWidthPx, expandedColumnIds)
|
|
6944
6944
|
);
|
|
6945
6945
|
const setTableAndColumnWidths = useCallback6(
|
|
6946
|
-
(
|
|
6947
|
-
setTableWidth(
|
|
6948
|
-
setColumnSizes(calcColumnSizes(columns,
|
|
6946
|
+
(width2) => {
|
|
6947
|
+
setTableWidth(width2);
|
|
6948
|
+
setColumnSizes(calcColumnSizes(columns, width2, style.minWidthPx, expandedColumnIds));
|
|
6949
6949
|
},
|
|
6950
6950
|
[setTableWidth, setColumnSizes, columns, style, expandedColumnIds]
|
|
6951
6951
|
);
|
|
6952
6952
|
useEffect5(
|
|
6953
6953
|
() => {
|
|
6954
6954
|
if (!calculateImmediately.current) {
|
|
6955
|
-
const
|
|
6956
|
-
|
|
6955
|
+
const width2 = resizeRef.current?.clientWidth;
|
|
6956
|
+
width2 && setTableAndColumnWidths(width2);
|
|
6957
6957
|
}
|
|
6958
6958
|
},
|
|
6959
6959
|
// 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
|
|
@@ -13794,7 +13794,7 @@ function Modal(props) {
|
|
|
13794
13794
|
);
|
|
13795
13795
|
const { modalProps } = useModal2();
|
|
13796
13796
|
const { dialogProps, titleProps } = useDialog({ role: "dialog" }, ref);
|
|
13797
|
-
const [[
|
|
13797
|
+
const [[width2, height], setSize] = useState28(getSize(size));
|
|
13798
13798
|
const modalBodyRef = useRef39(null);
|
|
13799
13799
|
const modalFooterRef = useRef39(null);
|
|
13800
13800
|
const modalHeaderRef = useRef39(null);
|
|
@@ -13832,7 +13832,7 @@ function Modal(props) {
|
|
|
13832
13832
|
return /* @__PURE__ */ jsx87(ModalProvider, { children: /* @__PURE__ */ jsx87(OverlayContainer2, { children: /* @__PURE__ */ jsx87(AutoSaveStatusProvider, { children: /* @__PURE__ */ jsx87("div", { css: Css.underlay.z4.$, ...underlayProps, ...testId.underlay, children: /* @__PURE__ */ jsx87(FocusScope4, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ jsxs48(
|
|
13833
13833
|
"div",
|
|
13834
13834
|
{
|
|
13835
|
-
css: Css.br24.bgWhite.bshModal.oh.maxh("90vh").df.fdc.wPx(
|
|
13835
|
+
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.$,
|
|
13836
13836
|
ref,
|
|
13837
13837
|
...overlayProps,
|
|
13838
13838
|
...dialogProps,
|
|
@@ -13987,7 +13987,7 @@ function SuperDrawer() {
|
|
|
13987
13987
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
13988
13988
|
const { content } = currentContent ?? {};
|
|
13989
13989
|
const firstContent = contentStack.current[0]?.opts;
|
|
13990
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
13990
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
13991
13991
|
useEffect20(
|
|
13992
13992
|
() => {
|
|
13993
13993
|
if (headerRef.current?.childNodes.length === 0 && content) {
|
|
@@ -14015,11 +14015,11 @@ function SuperDrawer() {
|
|
|
14015
14015
|
/* @__PURE__ */ jsx91(
|
|
14016
14016
|
motion.aside,
|
|
14017
14017
|
{
|
|
14018
|
-
css: Css.bgWhite.h100.maxw(px(
|
|
14019
|
-
initial: { x:
|
|
14018
|
+
css: Css.bgWhite.h100.maxw(px(width2)).w100.df.fdc.relative.$,
|
|
14019
|
+
initial: { x: width2 },
|
|
14020
14020
|
animate: { x: 0 },
|
|
14021
14021
|
transition: { ease: "linear", duration: 0.2, delay: 0.2 },
|
|
14022
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
14022
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
14023
14023
|
onClick: (e) => e.stopPropagation(),
|
|
14024
14024
|
children: /* @__PURE__ */ jsxs51(AutoSaveStatusProvider, { children: [
|
|
14025
14025
|
/* @__PURE__ */ jsxs51("header", { css: Css.p3.bb.bcGray200.df.aic.jcsb.gap3.$, children: [
|
|
@@ -14038,7 +14038,7 @@ function SuperDrawer() {
|
|
|
14038
14038
|
}
|
|
14039
14039
|
|
|
14040
14040
|
// src/components/Layout/FormPageLayout.tsx
|
|
14041
|
-
import React13, { createRef, useCallback as
|
|
14041
|
+
import React13, { createRef, useCallback as useCallback17, useEffect as useEffect21, useMemo as useMemo28, useRef as useRef41, useState as useState32 } from "react";
|
|
14042
14042
|
import { useButton as useButton9, useFocusRing as useFocusRing11 } from "react-aria";
|
|
14043
14043
|
|
|
14044
14044
|
// src/forms/BoundCheckboxField.tsx
|
|
@@ -14264,7 +14264,7 @@ function BoundDateRangeField(props) {
|
|
|
14264
14264
|
}
|
|
14265
14265
|
|
|
14266
14266
|
// src/forms/BoundForm.tsx
|
|
14267
|
-
import { useMemo as useMemo27 } from "react";
|
|
14267
|
+
import { useCallback as useCallback16, useMemo as useMemo27 } from "react";
|
|
14268
14268
|
|
|
14269
14269
|
// src/forms/BoundIconCardField.tsx
|
|
14270
14270
|
import { Observer as Observer6 } from "mobx-react";
|
|
@@ -14382,9 +14382,93 @@ function BoundIconCardGroupField(props) {
|
|
|
14382
14382
|
) });
|
|
14383
14383
|
}
|
|
14384
14384
|
|
|
14385
|
-
// src/forms/
|
|
14385
|
+
// src/forms/BoundListField.tsx
|
|
14386
14386
|
import { Observer as Observer8 } from "mobx-react";
|
|
14387
|
-
import { jsx as jsx100 } from "@emotion/react/jsx-runtime";
|
|
14387
|
+
import { Fragment as Fragment20, jsx as jsx100, jsxs as jsxs53 } from "@emotion/react/jsx-runtime";
|
|
14388
|
+
function ListField({ row, formState }) {
|
|
14389
|
+
const listFieldEntry = Object.entries(row).find(([key, _]) => isListFieldKey(key));
|
|
14390
|
+
const [prefixedFormKey, fieldConfig] = listFieldEntry;
|
|
14391
|
+
const listFieldKey = prefixedFormKey.replace(
|
|
14392
|
+
new RegExp(`^listField(.)`),
|
|
14393
|
+
(_, c) => c.toLowerCase()
|
|
14394
|
+
);
|
|
14395
|
+
const listFieldConfig = fieldConfig;
|
|
14396
|
+
const listFieldObjectState = formState[listFieldKey];
|
|
14397
|
+
const { filterDeleted, onNew } = listFieldConfig;
|
|
14398
|
+
const tid = useTestIds({}, "listField");
|
|
14399
|
+
const filteredRows = useComputed(
|
|
14400
|
+
() => filterDeleted ? listFieldObjectState.rows.filter((rowState) => filterDeleted(rowState)) : listFieldObjectState.rows,
|
|
14401
|
+
[filterDeleted]
|
|
14402
|
+
);
|
|
14403
|
+
const listIsValid = useComputed(() => listFieldObjectState.valid, [filteredRows]);
|
|
14404
|
+
return /* @__PURE__ */ jsx100(Observer8, { children: () => /* @__PURE__ */ jsxs53("div", { css: Css.df.fdc.gap3.$, ...tid, children: [
|
|
14405
|
+
filteredRows.map((rowState, index) => /* @__PURE__ */ jsx100(
|
|
14406
|
+
ListFieldRowInputs,
|
|
14407
|
+
{
|
|
14408
|
+
rowState,
|
|
14409
|
+
rowNumber: index + 1,
|
|
14410
|
+
listFieldConfig,
|
|
14411
|
+
formState,
|
|
14412
|
+
listFieldKey
|
|
14413
|
+
},
|
|
14414
|
+
`listFieldRowInputs-${listFieldKey}-${index}`
|
|
14415
|
+
)),
|
|
14416
|
+
/* @__PURE__ */ jsx100("div", { children: /* @__PURE__ */ jsx100(
|
|
14417
|
+
Button,
|
|
14418
|
+
{
|
|
14419
|
+
icon: "plus",
|
|
14420
|
+
label: `Add ${listFieldConfig.name}`,
|
|
14421
|
+
onClick: () => onNew(listFieldObjectState),
|
|
14422
|
+
variant: "secondary",
|
|
14423
|
+
disabled: !listIsValid
|
|
14424
|
+
}
|
|
14425
|
+
) })
|
|
14426
|
+
] }) });
|
|
14427
|
+
}
|
|
14428
|
+
function ListFieldRowInputs({
|
|
14429
|
+
rowState,
|
|
14430
|
+
rowNumber,
|
|
14431
|
+
listFieldConfig,
|
|
14432
|
+
formState,
|
|
14433
|
+
listFieldKey
|
|
14434
|
+
}) {
|
|
14435
|
+
const { onDelete } = listFieldConfig;
|
|
14436
|
+
const tid = useTestIds({}, "listFieldRow");
|
|
14437
|
+
return /* @__PURE__ */ jsxs53(Fragment20, { children: [
|
|
14438
|
+
/* @__PURE__ */ jsxs53("div", { css: Css.df.jcsb.$, ...tid, children: [
|
|
14439
|
+
/* @__PURE__ */ jsxs53("span", { css: Css.baseSb.$, ...tid.name, children: [
|
|
14440
|
+
listFieldConfig.name,
|
|
14441
|
+
" ",
|
|
14442
|
+
rowNumber
|
|
14443
|
+
] }),
|
|
14444
|
+
onDelete && /* @__PURE__ */ jsx100(
|
|
14445
|
+
ButtonMenu,
|
|
14446
|
+
{
|
|
14447
|
+
trigger: { icon: "verticalDots" },
|
|
14448
|
+
items: [{ label: "Delete", onClick: () => onDelete(formState[listFieldKey], rowState) }],
|
|
14449
|
+
...tid.menu
|
|
14450
|
+
}
|
|
14451
|
+
)
|
|
14452
|
+
] }),
|
|
14453
|
+
listFieldConfig.rows.map((row, rowIndex) => /* @__PURE__ */ jsx100(FormRow, { row, formState: rowState }, `listField-${listFieldKey}-row-${rowIndex}`))
|
|
14454
|
+
] });
|
|
14455
|
+
}
|
|
14456
|
+
function isListFieldKey(key) {
|
|
14457
|
+
return key.toString().startsWith(listFieldPrefix);
|
|
14458
|
+
}
|
|
14459
|
+
function isListFieldRow(row) {
|
|
14460
|
+
const rowKeys = Object.keys(row);
|
|
14461
|
+
const maybeListFieldKey = rowKeys.find((key) => isListFieldKey(key));
|
|
14462
|
+
if (maybeListFieldKey) {
|
|
14463
|
+
if (rowKeys.length > 1) fail("List fields cannot be combined with other fields in the same row");
|
|
14464
|
+
return true;
|
|
14465
|
+
}
|
|
14466
|
+
return false;
|
|
14467
|
+
}
|
|
14468
|
+
|
|
14469
|
+
// src/forms/BoundMultiLineSelectField.tsx
|
|
14470
|
+
import { Observer as Observer9 } from "mobx-react";
|
|
14471
|
+
import { jsx as jsx101 } from "@emotion/react/jsx-runtime";
|
|
14388
14472
|
function BoundMultiLineSelectField(props) {
|
|
14389
14473
|
const {
|
|
14390
14474
|
field,
|
|
@@ -14401,7 +14485,7 @@ function BoundMultiLineSelectField(props) {
|
|
|
14401
14485
|
...others
|
|
14402
14486
|
} = props;
|
|
14403
14487
|
const testId = useTestIds(props, field.key);
|
|
14404
|
-
return /* @__PURE__ */
|
|
14488
|
+
return /* @__PURE__ */ jsx101(Observer9, { children: () => /* @__PURE__ */ jsx101(
|
|
14405
14489
|
MultiLineSelectField,
|
|
14406
14490
|
{
|
|
14407
14491
|
label,
|
|
@@ -14431,8 +14515,8 @@ function BoundMultiLineSelectField(props) {
|
|
|
14431
14515
|
}
|
|
14432
14516
|
|
|
14433
14517
|
// src/forms/BoundMultiSelectField.tsx
|
|
14434
|
-
import { Observer as
|
|
14435
|
-
import { jsx as
|
|
14518
|
+
import { Observer as Observer10 } from "mobx-react";
|
|
14519
|
+
import { jsx as jsx102 } from "@emotion/react/jsx-runtime";
|
|
14436
14520
|
function BoundMultiSelectField(props) {
|
|
14437
14521
|
const {
|
|
14438
14522
|
field,
|
|
@@ -14449,7 +14533,7 @@ function BoundMultiSelectField(props) {
|
|
|
14449
14533
|
...others
|
|
14450
14534
|
} = props;
|
|
14451
14535
|
const testId = useTestIds(props, field.key);
|
|
14452
|
-
return /* @__PURE__ */
|
|
14536
|
+
return /* @__PURE__ */ jsx102(Observer10, { children: () => /* @__PURE__ */ jsx102(
|
|
14453
14537
|
MultiSelectField,
|
|
14454
14538
|
{
|
|
14455
14539
|
label,
|
|
@@ -14479,8 +14563,8 @@ function BoundMultiSelectField(props) {
|
|
|
14479
14563
|
}
|
|
14480
14564
|
|
|
14481
14565
|
// src/forms/BoundNumberField.tsx
|
|
14482
|
-
import { Observer as
|
|
14483
|
-
import { jsx as
|
|
14566
|
+
import { Observer as Observer11 } from "mobx-react";
|
|
14567
|
+
import { jsx as jsx103 } from "@emotion/react/jsx-runtime";
|
|
14484
14568
|
function BoundNumberField(props) {
|
|
14485
14569
|
const {
|
|
14486
14570
|
field,
|
|
@@ -14494,7 +14578,7 @@ function BoundNumberField(props) {
|
|
|
14494
14578
|
...others
|
|
14495
14579
|
} = props;
|
|
14496
14580
|
const testId = useTestIds(props, label || field.key);
|
|
14497
|
-
return /* @__PURE__ */
|
|
14581
|
+
return /* @__PURE__ */ jsx103(Observer11, { children: () => /* @__PURE__ */ jsx103(
|
|
14498
14582
|
NumberField,
|
|
14499
14583
|
{
|
|
14500
14584
|
label,
|
|
@@ -14523,8 +14607,8 @@ function BoundNumberField(props) {
|
|
|
14523
14607
|
}
|
|
14524
14608
|
|
|
14525
14609
|
// src/forms/BoundRadioGroupField.tsx
|
|
14526
|
-
import { Observer as
|
|
14527
|
-
import { jsx as
|
|
14610
|
+
import { Observer as Observer12 } from "mobx-react";
|
|
14611
|
+
import { jsx as jsx104 } from "@emotion/react/jsx-runtime";
|
|
14528
14612
|
function BoundRadioGroupField(props) {
|
|
14529
14613
|
const {
|
|
14530
14614
|
field,
|
|
@@ -14535,7 +14619,7 @@ function BoundRadioGroupField(props) {
|
|
|
14535
14619
|
...others
|
|
14536
14620
|
} = props;
|
|
14537
14621
|
const testId = useTestIds(props, field.key);
|
|
14538
|
-
return /* @__PURE__ */
|
|
14622
|
+
return /* @__PURE__ */ jsx104(Observer12, { children: () => /* @__PURE__ */ jsx104(
|
|
14539
14623
|
RadioGroupField,
|
|
14540
14624
|
{
|
|
14541
14625
|
label,
|
|
@@ -14560,8 +14644,8 @@ function BoundRadioGroupField(props) {
|
|
|
14560
14644
|
}
|
|
14561
14645
|
|
|
14562
14646
|
// src/forms/BoundRichTextField.tsx
|
|
14563
|
-
import { Observer as
|
|
14564
|
-
import { jsx as
|
|
14647
|
+
import { Observer as Observer13 } from "mobx-react";
|
|
14648
|
+
import { jsx as jsx105 } from "@emotion/react/jsx-runtime";
|
|
14565
14649
|
function BoundRichTextField(props) {
|
|
14566
14650
|
const {
|
|
14567
14651
|
field,
|
|
@@ -14573,7 +14657,7 @@ function BoundRichTextField(props) {
|
|
|
14573
14657
|
...others
|
|
14574
14658
|
} = props;
|
|
14575
14659
|
const testId = useTestIds(props, field.key);
|
|
14576
|
-
return /* @__PURE__ */
|
|
14660
|
+
return /* @__PURE__ */ jsx105(Observer13, { children: () => /* @__PURE__ */ jsx105(
|
|
14577
14661
|
RichTextField,
|
|
14578
14662
|
{
|
|
14579
14663
|
label,
|
|
@@ -14595,8 +14679,8 @@ function BoundRichTextField(props) {
|
|
|
14595
14679
|
}
|
|
14596
14680
|
|
|
14597
14681
|
// src/forms/BoundSelectField.tsx
|
|
14598
|
-
import { Observer as
|
|
14599
|
-
import { jsx as
|
|
14682
|
+
import { Observer as Observer14 } from "mobx-react";
|
|
14683
|
+
import { jsx as jsx106 } from "@emotion/react/jsx-runtime";
|
|
14600
14684
|
function BoundSelectField(props) {
|
|
14601
14685
|
const {
|
|
14602
14686
|
field,
|
|
@@ -14611,7 +14695,7 @@ function BoundSelectField(props) {
|
|
|
14611
14695
|
...others
|
|
14612
14696
|
} = props;
|
|
14613
14697
|
const testId = useTestIds(props, field.key);
|
|
14614
|
-
return /* @__PURE__ */
|
|
14698
|
+
return /* @__PURE__ */ jsx106(Observer14, { children: () => /* @__PURE__ */ jsx106(
|
|
14615
14699
|
SelectField,
|
|
14616
14700
|
{
|
|
14617
14701
|
label,
|
|
@@ -14641,8 +14725,8 @@ function BoundSelectField(props) {
|
|
|
14641
14725
|
}
|
|
14642
14726
|
|
|
14643
14727
|
// src/forms/BoundSwitchField.tsx
|
|
14644
|
-
import { Observer as
|
|
14645
|
-
import { jsx as
|
|
14728
|
+
import { Observer as Observer15 } from "mobx-react";
|
|
14729
|
+
import { jsx as jsx107 } from "@emotion/react/jsx-runtime";
|
|
14646
14730
|
function BoundSwitchField(props) {
|
|
14647
14731
|
const {
|
|
14648
14732
|
field,
|
|
@@ -14653,7 +14737,7 @@ function BoundSwitchField(props) {
|
|
|
14653
14737
|
...others
|
|
14654
14738
|
} = props;
|
|
14655
14739
|
const testId = useTestIds(props, field.key);
|
|
14656
|
-
return /* @__PURE__ */
|
|
14740
|
+
return /* @__PURE__ */ jsx107(Observer15, { children: () => /* @__PURE__ */ jsx107(
|
|
14657
14741
|
Switch,
|
|
14658
14742
|
{
|
|
14659
14743
|
label,
|
|
@@ -14671,8 +14755,8 @@ function BoundSwitchField(props) {
|
|
|
14671
14755
|
}
|
|
14672
14756
|
|
|
14673
14757
|
// src/forms/BoundTextAreaField.tsx
|
|
14674
|
-
import { Observer as
|
|
14675
|
-
import { jsx as
|
|
14758
|
+
import { Observer as Observer16 } from "mobx-react";
|
|
14759
|
+
import { jsx as jsx108 } from "@emotion/react/jsx-runtime";
|
|
14676
14760
|
function BoundTextAreaField(props) {
|
|
14677
14761
|
const {
|
|
14678
14762
|
field,
|
|
@@ -14685,7 +14769,7 @@ function BoundTextAreaField(props) {
|
|
|
14685
14769
|
...others
|
|
14686
14770
|
} = props;
|
|
14687
14771
|
const testId = useTestIds(props, field.key);
|
|
14688
|
-
return /* @__PURE__ */
|
|
14772
|
+
return /* @__PURE__ */ jsx108(Observer16, { children: () => /* @__PURE__ */ jsx108(
|
|
14689
14773
|
TextAreaField,
|
|
14690
14774
|
{
|
|
14691
14775
|
label,
|
|
@@ -14713,8 +14797,8 @@ function BoundTextAreaField(props) {
|
|
|
14713
14797
|
}
|
|
14714
14798
|
|
|
14715
14799
|
// src/forms/BoundTextField.tsx
|
|
14716
|
-
import { Observer as
|
|
14717
|
-
import { jsx as
|
|
14800
|
+
import { Observer as Observer17 } from "mobx-react";
|
|
14801
|
+
import { jsx as jsx109 } from "@emotion/react/jsx-runtime";
|
|
14718
14802
|
function BoundTextField(props) {
|
|
14719
14803
|
const {
|
|
14720
14804
|
field,
|
|
@@ -14727,7 +14811,7 @@ function BoundTextField(props) {
|
|
|
14727
14811
|
...others
|
|
14728
14812
|
} = props;
|
|
14729
14813
|
const testId = useTestIds(props, field.key);
|
|
14730
|
-
return /* @__PURE__ */
|
|
14814
|
+
return /* @__PURE__ */ jsx109(Observer17, { children: () => /* @__PURE__ */ jsx109(
|
|
14731
14815
|
TextField,
|
|
14732
14816
|
{
|
|
14733
14817
|
label,
|
|
@@ -14755,12 +14839,12 @@ function BoundTextField(props) {
|
|
|
14755
14839
|
}
|
|
14756
14840
|
|
|
14757
14841
|
// src/forms/BoundToggleChipGroupField.tsx
|
|
14758
|
-
import { Observer as
|
|
14759
|
-
import { jsx as
|
|
14842
|
+
import { Observer as Observer18 } from "mobx-react";
|
|
14843
|
+
import { jsx as jsx110 } from "@emotion/react/jsx-runtime";
|
|
14760
14844
|
function BoundToggleChipGroupField(props) {
|
|
14761
14845
|
const { field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
|
|
14762
14846
|
const testId = useTestIds(props, field.key);
|
|
14763
|
-
return /* @__PURE__ */
|
|
14847
|
+
return /* @__PURE__ */ jsx110(Observer18, { children: () => /* @__PURE__ */ jsx110(
|
|
14764
14848
|
ToggleChipGroup,
|
|
14765
14849
|
{
|
|
14766
14850
|
label,
|
|
@@ -14774,8 +14858,8 @@ function BoundToggleChipGroupField(props) {
|
|
|
14774
14858
|
}
|
|
14775
14859
|
|
|
14776
14860
|
// src/forms/BoundTreeSelectField.tsx
|
|
14777
|
-
import { Observer as
|
|
14778
|
-
import { jsx as
|
|
14861
|
+
import { Observer as Observer19 } from "mobx-react";
|
|
14862
|
+
import { jsx as jsx111 } from "@emotion/react/jsx-runtime";
|
|
14779
14863
|
function BoundTreeSelectField(props) {
|
|
14780
14864
|
const {
|
|
14781
14865
|
field,
|
|
@@ -14792,7 +14876,7 @@ function BoundTreeSelectField(props) {
|
|
|
14792
14876
|
...others
|
|
14793
14877
|
} = props;
|
|
14794
14878
|
const testId = useTestIds(props, field.key);
|
|
14795
|
-
return /* @__PURE__ */
|
|
14879
|
+
return /* @__PURE__ */ jsx111(Observer19, { children: () => /* @__PURE__ */ jsx111(
|
|
14796
14880
|
TreeSelectField,
|
|
14797
14881
|
{
|
|
14798
14882
|
label,
|
|
@@ -14823,12 +14907,12 @@ function BoundTreeSelectField(props) {
|
|
|
14823
14907
|
|
|
14824
14908
|
// src/forms/FormLines.tsx
|
|
14825
14909
|
import { Children, cloneElement } from "react";
|
|
14826
|
-
import { jsx as
|
|
14910
|
+
import { jsx as jsx112 } from "@emotion/react/jsx-runtime";
|
|
14827
14911
|
function FormLines(props) {
|
|
14828
14912
|
const { inModal } = useModal();
|
|
14829
14913
|
const {
|
|
14830
14914
|
children,
|
|
14831
|
-
width = inModal ? "full" : "lg",
|
|
14915
|
+
width: width2 = inModal ? "full" : "lg",
|
|
14832
14916
|
labelSuffix,
|
|
14833
14917
|
labelStyle,
|
|
14834
14918
|
compact,
|
|
@@ -14841,14 +14925,14 @@ function FormLines(props) {
|
|
|
14841
14925
|
..."labelStyle" in props ? { labelStyle } : {},
|
|
14842
14926
|
..."compact" in props ? { compact } : {},
|
|
14843
14927
|
..."labelLeftFieldWidth" in props ? { labelLeftFieldWidth } : {},
|
|
14844
|
-
...
|
|
14928
|
+
...width2 === "full" ? { fullWidth: true } : {}
|
|
14845
14929
|
};
|
|
14846
|
-
return /* @__PURE__ */
|
|
14930
|
+
return /* @__PURE__ */ jsx112(PresentationProvider, { fieldProps: newFieldProps, children: /* @__PURE__ */ jsx112(
|
|
14847
14931
|
"div",
|
|
14848
14932
|
{
|
|
14849
14933
|
css: {
|
|
14850
14934
|
// Note that we're purposefully not using display:flex so that our children's margins will collapse.
|
|
14851
|
-
...Css.w(sizes[
|
|
14935
|
+
...Css.w(sizes[width2]).$,
|
|
14852
14936
|
// Purposefully use this instead of childGap3 to put margin-bottom on the last line
|
|
14853
14937
|
"& > *": Css.mb(gap).$
|
|
14854
14938
|
},
|
|
@@ -14865,15 +14949,15 @@ function FormLines(props) {
|
|
|
14865
14949
|
) });
|
|
14866
14950
|
}
|
|
14867
14951
|
function FormDivider() {
|
|
14868
|
-
return /* @__PURE__ */
|
|
14952
|
+
return /* @__PURE__ */ jsx112("div", { css: Css.hPx(1).my2.bgGray200.$ });
|
|
14869
14953
|
}
|
|
14870
14954
|
function FieldGroup(props) {
|
|
14871
14955
|
const { title, children, widths: widths2 = [] } = props;
|
|
14872
14956
|
const gtc = children.map((_, i) => {
|
|
14873
|
-
const
|
|
14874
|
-
return typeof
|
|
14957
|
+
const width2 = widths2[i] || 1;
|
|
14958
|
+
return typeof width2 === `number` ? `${width2}fr` : width2;
|
|
14875
14959
|
}).join(" ");
|
|
14876
|
-
return /* @__PURE__ */
|
|
14960
|
+
return /* @__PURE__ */ jsx112("div", { css: Css.dg.gap2.gtc(gtc).$, children });
|
|
14877
14961
|
}
|
|
14878
14962
|
var sizes = {
|
|
14879
14963
|
full: "100%",
|
|
@@ -14883,12 +14967,18 @@ var sizes = {
|
|
|
14883
14967
|
};
|
|
14884
14968
|
|
|
14885
14969
|
// src/forms/BoundForm.tsx
|
|
14886
|
-
import { jsx as
|
|
14970
|
+
import { jsx as jsx113 } from "@emotion/react/jsx-runtime";
|
|
14887
14971
|
var reactNodePrefix = "reactNode";
|
|
14972
|
+
var listFieldPrefix = "listField";
|
|
14888
14973
|
function BoundForm(props) {
|
|
14889
14974
|
const { rows, formState } = props;
|
|
14890
14975
|
const tid = useTestIds({}, "boundForm");
|
|
14891
|
-
|
|
14976
|
+
const getRowKey = useCallback16((row, rowType) => {
|
|
14977
|
+
return `${rowType}-${Object.keys(row).join("-")}`;
|
|
14978
|
+
}, []);
|
|
14979
|
+
return /* @__PURE__ */ jsx113("div", { ...tid, children: /* @__PURE__ */ jsx113(FormLines, { width: "full", gap: 3.5, children: rows.map(
|
|
14980
|
+
(row) => isListFieldRow(row) ? /* @__PURE__ */ jsx113(ListField, { row, formState }, getRowKey(row, "listField")) : /* @__PURE__ */ jsx113(FormRow, { row, formState }, getRowKey(row, "fieldGroup"))
|
|
14981
|
+
) }) });
|
|
14892
14982
|
}
|
|
14893
14983
|
function FormRow({ row, formState }) {
|
|
14894
14984
|
const tid = useTestIds({}, "boundFormRow");
|
|
@@ -14900,129 +14990,133 @@ function FormRow({ row, formState }) {
|
|
|
14900
14990
|
const { component, minWidth } = fieldFn(field);
|
|
14901
14991
|
return { component, key, minWidth };
|
|
14902
14992
|
}
|
|
14993
|
+
if (isCustomReactNodeKey(key) && typeof fieldFnOrCustomNode === "function") {
|
|
14994
|
+
const nodeAsFunction = fieldFnOrCustomNode;
|
|
14995
|
+
return { component: nodeAsFunction(formState), key };
|
|
14996
|
+
}
|
|
14903
14997
|
return { component: fieldFnOrCustomNode, key };
|
|
14904
14998
|
});
|
|
14905
14999
|
}, [row, formState]);
|
|
14906
15000
|
const isLoading = useComputed(() => formState.loading, [formState]);
|
|
14907
15001
|
const itemFlexBasis = 100 / componentsWithConfig.length - 3;
|
|
14908
|
-
return /* @__PURE__ */
|
|
15002
|
+
return /* @__PURE__ */ jsx113("div", { css: Css.df.fww.aic.gap2.$, ...tid, children: componentsWithConfig.map(({ component, key, minWidth }) => /* @__PURE__ */ jsx113("div", { css: Css.mw(minWidth).fb(`${itemFlexBasis}%`).fg1.$, children: isLoading ? /* @__PURE__ */ jsx113(LoadingSkeleton, { size: "lg" }) : component }, key.toString())) });
|
|
14909
15003
|
}
|
|
14910
15004
|
function isCustomReactNodeKey(key) {
|
|
14911
15005
|
return key.toString().startsWith(reactNodePrefix);
|
|
14912
15006
|
}
|
|
14913
15007
|
function boundSelectField(props) {
|
|
14914
15008
|
return (field) => ({
|
|
14915
|
-
component: /* @__PURE__ */
|
|
15009
|
+
component: /* @__PURE__ */ jsx113(BoundSelectField, { field, ...props }),
|
|
14916
15010
|
minWidth: "200px"
|
|
14917
15011
|
});
|
|
14918
15012
|
}
|
|
14919
15013
|
function boundMultiSelectField(props) {
|
|
14920
15014
|
return (field) => ({
|
|
14921
|
-
component: /* @__PURE__ */
|
|
15015
|
+
component: /* @__PURE__ */ jsx113(BoundMultiSelectField, { field, ...props }),
|
|
14922
15016
|
minWidth: "200px"
|
|
14923
15017
|
});
|
|
14924
15018
|
}
|
|
14925
15019
|
function boundMultilineSelectField(props) {
|
|
14926
15020
|
return (field) => ({
|
|
14927
|
-
component: /* @__PURE__ */
|
|
15021
|
+
component: /* @__PURE__ */ jsx113(BoundMultiLineSelectField, { field, ...props }),
|
|
14928
15022
|
minWidth: "200px"
|
|
14929
15023
|
});
|
|
14930
15024
|
}
|
|
14931
15025
|
function boundTextField(props) {
|
|
14932
15026
|
return (field) => ({
|
|
14933
|
-
component: /* @__PURE__ */
|
|
15027
|
+
component: /* @__PURE__ */ jsx113(BoundTextField, { field, ...props }),
|
|
14934
15028
|
minWidth: "150px"
|
|
14935
15029
|
});
|
|
14936
15030
|
}
|
|
14937
15031
|
function boundTextAreaField(props) {
|
|
14938
15032
|
return (field) => ({
|
|
14939
|
-
component: /* @__PURE__ */
|
|
15033
|
+
component: /* @__PURE__ */ jsx113(BoundTextAreaField, { field, ...props }),
|
|
14940
15034
|
minWidth: "200px"
|
|
14941
15035
|
});
|
|
14942
15036
|
}
|
|
14943
15037
|
function boundNumberField(props) {
|
|
14944
15038
|
return (field) => ({
|
|
14945
|
-
component: /* @__PURE__ */
|
|
15039
|
+
component: /* @__PURE__ */ jsx113(BoundNumberField, { field, ...props }),
|
|
14946
15040
|
minWidth: "150px"
|
|
14947
15041
|
});
|
|
14948
15042
|
}
|
|
14949
15043
|
function boundDateField(props) {
|
|
14950
15044
|
return (field) => ({
|
|
14951
|
-
component: /* @__PURE__ */
|
|
15045
|
+
component: /* @__PURE__ */ jsx113(BoundDateField, { field, ...props }),
|
|
14952
15046
|
minWidth: "150px"
|
|
14953
15047
|
});
|
|
14954
15048
|
}
|
|
14955
15049
|
function boundDateRangeField(props) {
|
|
14956
15050
|
return (field) => ({
|
|
14957
|
-
component: /* @__PURE__ */
|
|
15051
|
+
component: /* @__PURE__ */ jsx113(BoundDateRangeField, { field, ...props }),
|
|
14958
15052
|
minWidth: "150px"
|
|
14959
15053
|
});
|
|
14960
15054
|
}
|
|
14961
15055
|
function boundCheckboxField(props) {
|
|
14962
15056
|
return (field) => ({
|
|
14963
|
-
component: /* @__PURE__ */
|
|
15057
|
+
component: /* @__PURE__ */ jsx113(BoundCheckboxField, { field, ...props }),
|
|
14964
15058
|
minWidth: "min-content"
|
|
14965
15059
|
});
|
|
14966
15060
|
}
|
|
14967
15061
|
function boundCheckboxGroupField(props) {
|
|
14968
15062
|
return (field) => ({
|
|
14969
|
-
component: /* @__PURE__ */
|
|
15063
|
+
component: /* @__PURE__ */ jsx113(BoundCheckboxGroupField, { field, ...props }),
|
|
14970
15064
|
minWidth: "200px"
|
|
14971
15065
|
});
|
|
14972
15066
|
}
|
|
14973
15067
|
function boundIconCardField(props) {
|
|
14974
15068
|
return (field) => ({
|
|
14975
|
-
component: /* @__PURE__ */
|
|
15069
|
+
component: /* @__PURE__ */ jsx113(BoundIconCardField, { field, ...props }),
|
|
14976
15070
|
minWidth: "150px"
|
|
14977
15071
|
});
|
|
14978
15072
|
}
|
|
14979
15073
|
function boundIconCardGroupField(props) {
|
|
14980
15074
|
return (field) => ({
|
|
14981
|
-
component: /* @__PURE__ */
|
|
15075
|
+
component: /* @__PURE__ */ jsx113(BoundIconCardGroupField, { field, ...props }),
|
|
14982
15076
|
minWidth: "100%"
|
|
14983
15077
|
});
|
|
14984
15078
|
}
|
|
14985
15079
|
function boundRadioGroupField(props) {
|
|
14986
15080
|
return (field) => ({
|
|
14987
|
-
component: /* @__PURE__ */
|
|
15081
|
+
component: /* @__PURE__ */ jsx113(BoundRadioGroupField, { field, ...props }),
|
|
14988
15082
|
minWidth: "200px"
|
|
14989
15083
|
});
|
|
14990
15084
|
}
|
|
14991
15085
|
function boundRichTextField(props) {
|
|
14992
15086
|
return (field) => ({
|
|
14993
|
-
component: /* @__PURE__ */
|
|
15087
|
+
component: /* @__PURE__ */ jsx113(BoundRichTextField, { field, ...props }),
|
|
14994
15088
|
minWidth: "200px"
|
|
14995
15089
|
});
|
|
14996
15090
|
}
|
|
14997
15091
|
function boundSwitchField(props) {
|
|
14998
15092
|
return (field) => ({
|
|
14999
|
-
component: /* @__PURE__ */
|
|
15093
|
+
component: /* @__PURE__ */ jsx113(BoundSwitchField, { field, labelStyle: "inline", ...props }),
|
|
15000
15094
|
minWidth: "min-content"
|
|
15001
15095
|
});
|
|
15002
15096
|
}
|
|
15003
15097
|
function boundToggleChipGroupField(props) {
|
|
15004
15098
|
return (field) => ({
|
|
15005
|
-
component: /* @__PURE__ */
|
|
15099
|
+
component: /* @__PURE__ */ jsx113(BoundToggleChipGroupField, { field, ...props }),
|
|
15006
15100
|
minWidth: "100%"
|
|
15007
15101
|
});
|
|
15008
15102
|
}
|
|
15009
15103
|
function boundTreeSelectField(props) {
|
|
15010
15104
|
return (field) => ({
|
|
15011
|
-
component: /* @__PURE__ */
|
|
15105
|
+
component: /* @__PURE__ */ jsx113(BoundTreeSelectField, { field, ...props }),
|
|
15012
15106
|
minWidth: "200px"
|
|
15013
15107
|
});
|
|
15014
15108
|
}
|
|
15015
15109
|
|
|
15016
15110
|
// src/components/internal/CompoundField.tsx
|
|
15017
15111
|
import { cloneElement as cloneElement2 } from "react";
|
|
15018
|
-
import { jsx as
|
|
15112
|
+
import { jsx as jsx114, jsxs as jsxs54 } from "@emotion/react/jsx-runtime";
|
|
15019
15113
|
function CompoundField({ children }) {
|
|
15020
15114
|
if (children?.length !== 2) {
|
|
15021
15115
|
throw new Error("CompoundField requires two children components");
|
|
15022
15116
|
}
|
|
15023
15117
|
const commonStyles = Css.df.aic.fs1.maxwPx(550).bt.bb.bcGray300.$;
|
|
15024
15118
|
const internalProps = { compound: true };
|
|
15025
|
-
return /* @__PURE__ */
|
|
15119
|
+
return /* @__PURE__ */ jsxs54(
|
|
15026
15120
|
"div",
|
|
15027
15121
|
{
|
|
15028
15122
|
css: {
|
|
@@ -15031,7 +15125,7 @@ function CompoundField({ children }) {
|
|
|
15031
15125
|
// Separation line when inputs are focused
|
|
15032
15126
|
},
|
|
15033
15127
|
children: [
|
|
15034
|
-
/* @__PURE__ */
|
|
15128
|
+
/* @__PURE__ */ jsx114(
|
|
15035
15129
|
"div",
|
|
15036
15130
|
{
|
|
15037
15131
|
css: {
|
|
@@ -15044,8 +15138,8 @@ function CompoundField({ children }) {
|
|
|
15044
15138
|
})
|
|
15045
15139
|
}
|
|
15046
15140
|
),
|
|
15047
|
-
/* @__PURE__ */
|
|
15048
|
-
/* @__PURE__ */
|
|
15141
|
+
/* @__PURE__ */ jsx114("div", { css: Css.wPx(1).fn.bgGray300.$ }),
|
|
15142
|
+
/* @__PURE__ */ jsx114(
|
|
15049
15143
|
"div",
|
|
15050
15144
|
{
|
|
15051
15145
|
css: {
|
|
@@ -15064,12 +15158,12 @@ function CompoundField({ children }) {
|
|
|
15064
15158
|
}
|
|
15065
15159
|
|
|
15066
15160
|
// src/forms/BoundSelectAndTextField.tsx
|
|
15067
|
-
import { jsx as
|
|
15161
|
+
import { jsx as jsx115, jsxs as jsxs55 } from "@emotion/react/jsx-runtime";
|
|
15068
15162
|
function BoundSelectAndTextField(props) {
|
|
15069
15163
|
const { selectFieldProps, textFieldProps, compact = true } = props;
|
|
15070
15164
|
const tid = useTestIds(props);
|
|
15071
|
-
return /* @__PURE__ */
|
|
15072
|
-
/* @__PURE__ */
|
|
15165
|
+
return /* @__PURE__ */ jsxs55(CompoundField, { children: [
|
|
15166
|
+
/* @__PURE__ */ jsx115(
|
|
15073
15167
|
BoundSelectField,
|
|
15074
15168
|
{
|
|
15075
15169
|
...tid[defaultTestId(selectFieldProps.label ?? selectFieldProps.field.key)],
|
|
@@ -15078,7 +15172,7 @@ function BoundSelectAndTextField(props) {
|
|
|
15078
15172
|
compact
|
|
15079
15173
|
}
|
|
15080
15174
|
),
|
|
15081
|
-
/* @__PURE__ */
|
|
15175
|
+
/* @__PURE__ */ jsx115(
|
|
15082
15176
|
BoundTextField,
|
|
15083
15177
|
{
|
|
15084
15178
|
...tid[defaultTestId(textFieldProps.label ?? textFieldProps.field.key)],
|
|
@@ -15090,10 +15184,10 @@ function BoundSelectAndTextField(props) {
|
|
|
15090
15184
|
}
|
|
15091
15185
|
|
|
15092
15186
|
// src/forms/FormHeading.tsx
|
|
15093
|
-
import { jsx as
|
|
15187
|
+
import { jsx as jsx116 } from "@emotion/react/jsx-runtime";
|
|
15094
15188
|
function FormHeading(props) {
|
|
15095
15189
|
const { title, xss, isFirst = false, ...others } = props;
|
|
15096
|
-
return /* @__PURE__ */
|
|
15190
|
+
return /* @__PURE__ */ jsx116(
|
|
15097
15191
|
"h3",
|
|
15098
15192
|
{
|
|
15099
15193
|
css: {
|
|
@@ -15111,21 +15205,21 @@ FormHeading.isFormHeading = true;
|
|
|
15111
15205
|
|
|
15112
15206
|
// src/forms/StaticField.tsx
|
|
15113
15207
|
import { useId as useId2 } from "@react-aria/utils";
|
|
15114
|
-
import { jsx as
|
|
15208
|
+
import { jsx as jsx117, jsxs as jsxs56 } from "@emotion/react/jsx-runtime";
|
|
15115
15209
|
function StaticField(props) {
|
|
15116
15210
|
const { fieldProps } = usePresentationContext();
|
|
15117
15211
|
const { label, labelStyle = fieldProps?.labelStyle ?? "above", value, children } = props;
|
|
15118
15212
|
const tid = useTestIds(props, typeof label === "string" ? defaultTestId(label) : "staticField");
|
|
15119
15213
|
const id = useId2();
|
|
15120
|
-
return /* @__PURE__ */
|
|
15121
|
-
/* @__PURE__ */
|
|
15122
|
-
/* @__PURE__ */
|
|
15214
|
+
return /* @__PURE__ */ jsxs56("div", { css: Css.if(labelStyle === "left").df.jcsb.maxw100.$, ...tid.container, children: [
|
|
15215
|
+
/* @__PURE__ */ jsx117("label", { css: Css.db.sm.gray700.mbPx(4).$, htmlFor: id, ...tid.label, children: label }),
|
|
15216
|
+
/* @__PURE__ */ jsx117("div", { id, css: Css.smMd.gray900.df.aic.if(labelStyle === "left").w50.$, ...tid, children: value || children })
|
|
15123
15217
|
] });
|
|
15124
15218
|
}
|
|
15125
15219
|
|
|
15126
15220
|
// src/forms/SubmitButton.tsx
|
|
15127
15221
|
import { useLocalObservable } from "mobx-react";
|
|
15128
|
-
import { jsx as
|
|
15222
|
+
import { jsx as jsx118 } from "@emotion/react/jsx-runtime";
|
|
15129
15223
|
function SubmitButton(props) {
|
|
15130
15224
|
const { form, disabled, onClick, label = "Submit", ...others } = props;
|
|
15131
15225
|
if (typeof onClick === "string") {
|
|
@@ -15135,7 +15229,7 @@ function SubmitButton(props) {
|
|
|
15135
15229
|
const canSubmit = useComputed(() => {
|
|
15136
15230
|
return form.isNewEntity && !state.clicked ? true : form.dirty && form.valid;
|
|
15137
15231
|
}, [form]);
|
|
15138
|
-
return /* @__PURE__ */
|
|
15232
|
+
return /* @__PURE__ */ jsx118(
|
|
15139
15233
|
Button,
|
|
15140
15234
|
{
|
|
15141
15235
|
label,
|
|
@@ -15154,13 +15248,13 @@ function SubmitButton(props) {
|
|
|
15154
15248
|
// src/components/RightSidebar.tsx
|
|
15155
15249
|
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
|
|
15156
15250
|
import { useState as useState31 } from "react";
|
|
15157
|
-
import { Fragment as
|
|
15251
|
+
import { Fragment as Fragment21, jsx as jsx119, jsxs as jsxs57 } from "@emotion/react/jsx-runtime";
|
|
15158
15252
|
function RightSidebar({ content }) {
|
|
15159
15253
|
const [selectedIcon, setSelectedIcon] = useState31(void 0);
|
|
15160
15254
|
const tid = useTestIds({}, "rightSidebar");
|
|
15161
|
-
const
|
|
15162
|
-
return /* @__PURE__ */
|
|
15163
|
-
/* @__PURE__ */
|
|
15255
|
+
const width2 = 380;
|
|
15256
|
+
return /* @__PURE__ */ jsxs57(Fragment21, { children: [
|
|
15257
|
+
/* @__PURE__ */ jsx119("div", { css: Css.df.jcfe.relative.pr3.$, children: /* @__PURE__ */ jsx119("div", { css: Css.df.gap2.z1.$, children: content.map(({ icon }) => /* @__PURE__ */ jsx119(
|
|
15164
15258
|
IconButton,
|
|
15165
15259
|
{
|
|
15166
15260
|
circle: true,
|
|
@@ -15171,17 +15265,17 @@ function RightSidebar({ content }) {
|
|
|
15171
15265
|
},
|
|
15172
15266
|
`${icon}-${selectedIcon}`
|
|
15173
15267
|
)) }) }),
|
|
15174
|
-
/* @__PURE__ */
|
|
15268
|
+
/* @__PURE__ */ jsx119(AnimatePresence2, { children: selectedIcon && /* @__PURE__ */ jsx119(
|
|
15175
15269
|
motion2.div,
|
|
15176
15270
|
{
|
|
15177
|
-
initial: { x:
|
|
15271
|
+
initial: { x: width2, opacity: 0 },
|
|
15178
15272
|
animate: { x: 0, opacity: 1 },
|
|
15179
15273
|
transition: { delay: 0.2, ease: "linear", duration: 0.2 },
|
|
15180
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
15181
|
-
css: Css.wPx(
|
|
15182
|
-
children: /* @__PURE__ */
|
|
15183
|
-
/* @__PURE__ */
|
|
15184
|
-
/* @__PURE__ */
|
|
15274
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
15275
|
+
css: Css.wPx(width2).z0.$,
|
|
15276
|
+
children: /* @__PURE__ */ jsxs57("div", { css: Css.relative.topPx(-48).z0.px3.$, children: [
|
|
15277
|
+
/* @__PURE__ */ jsxs57("div", { css: Css.absolute.leftPx(-24).$, children: [
|
|
15278
|
+
/* @__PURE__ */ jsx119(
|
|
15185
15279
|
IconButton,
|
|
15186
15280
|
{
|
|
15187
15281
|
bgColor: "rgba(255,255,255,1)" /* White */,
|
|
@@ -15191,9 +15285,9 @@ function RightSidebar({ content }) {
|
|
|
15191
15285
|
inc: 3.5
|
|
15192
15286
|
}
|
|
15193
15287
|
),
|
|
15194
|
-
/* @__PURE__ */
|
|
15288
|
+
/* @__PURE__ */ jsx119("div", { css: Css.absolute.topPx(48).leftPx(23).h("calc(100vh - 168px)").wPx(1).bgGray300.$ })
|
|
15195
15289
|
] }),
|
|
15196
|
-
selectedIcon && /* @__PURE__ */
|
|
15290
|
+
selectedIcon && /* @__PURE__ */ jsx119("div", { ...tid.content, css: Css.ptPx(72).$, children: content.find((sidebar) => sidebar.icon === selectedIcon)?.render() })
|
|
15197
15291
|
] })
|
|
15198
15292
|
},
|
|
15199
15293
|
"rightSidebar"
|
|
@@ -15202,20 +15296,20 @@ function RightSidebar({ content }) {
|
|
|
15202
15296
|
}
|
|
15203
15297
|
|
|
15204
15298
|
// src/components/Layout/PageHeaderBreadcrumbs.tsx
|
|
15205
|
-
import { Fragment as
|
|
15299
|
+
import { Fragment as Fragment22 } from "react";
|
|
15206
15300
|
import { Link as Link4 } from "react-router-dom";
|
|
15207
|
-
import { jsx as
|
|
15301
|
+
import { jsx as jsx120, jsxs as jsxs58 } from "@emotion/react/jsx-runtime";
|
|
15208
15302
|
function PageHeaderBreadcrumbs({ breadcrumb }) {
|
|
15209
15303
|
const tids = useTestIds({}, "pageHeaderBreadcrumbs");
|
|
15210
15304
|
const breadcrumbs = Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb];
|
|
15211
|
-
return /* @__PURE__ */
|
|
15212
|
-
i > 0 && /* @__PURE__ */
|
|
15213
|
-
/* @__PURE__ */
|
|
15305
|
+
return /* @__PURE__ */ jsx120("div", { css: Css.df.aic.mbPx(4).$, ...tids, children: breadcrumbs.map((breadcrumb2, i) => /* @__PURE__ */ jsxs58(Fragment22, { children: [
|
|
15306
|
+
i > 0 && /* @__PURE__ */ jsx120("span", { css: Css.smMd.gray700.mr1.ml1.$, children: "/" }),
|
|
15307
|
+
/* @__PURE__ */ jsx120(Link4, { to: breadcrumb2.href, css: Css.smMd.gray700.onHover.gray900.$, className: "navLink", ...tids.navLink, children: breadcrumb2.label })
|
|
15214
15308
|
] }, `bc-${breadcrumb2.label}`)) });
|
|
15215
15309
|
}
|
|
15216
15310
|
|
|
15217
15311
|
// src/components/Layout/FormPageLayout.tsx
|
|
15218
|
-
import { jsx as
|
|
15312
|
+
import { jsx as jsx121, jsxs as jsxs59 } from "@emotion/react/jsx-runtime";
|
|
15219
15313
|
var headerHeightPx = 120;
|
|
15220
15314
|
function FormPageLayoutComponent(props) {
|
|
15221
15315
|
const { formSections, formState, rightSideBar } = props;
|
|
@@ -15235,16 +15329,16 @@ function FormPageLayoutComponent(props) {
|
|
|
15235
15329
|
// since this layout will be replacing most superdrawers/sidebars, we keep the listing mounted below to preserve the users's
|
|
15236
15330
|
// scroll position & filters
|
|
15237
15331
|
// Adding "align-items: start" allows "position: sticky" to work within a grid for the sidebars
|
|
15238
|
-
/* @__PURE__ */
|
|
15332
|
+
/* @__PURE__ */ jsxs59(
|
|
15239
15333
|
"div",
|
|
15240
15334
|
{
|
|
15241
15335
|
css: Css.fixed.top0.bottom0.left0.right0.z(1e3).oya.bgWhite.dg.gtc(gridColumns).gtr("auto 1fr").cg3.ais.$,
|
|
15242
15336
|
...tids,
|
|
15243
15337
|
children: [
|
|
15244
|
-
/* @__PURE__ */
|
|
15245
|
-
/* @__PURE__ */
|
|
15246
|
-
/* @__PURE__ */
|
|
15247
|
-
rightSideBar && /* @__PURE__ */
|
|
15338
|
+
/* @__PURE__ */ jsx121(PageHeader, { ...props, ...tids.pageHeader }),
|
|
15339
|
+
/* @__PURE__ */ jsx121(LeftNav, { sectionsWithRefs, ...tids }),
|
|
15340
|
+
/* @__PURE__ */ jsx121(FormSections, { sectionsWithRefs, formState, ...tids }),
|
|
15341
|
+
rightSideBar && /* @__PURE__ */ jsx121("aside", { css: Css.gr(2).gc("4 / 5").sticky.topPx(headerHeightPx).$, children: /* @__PURE__ */ jsx121(RightSidebar, { content: rightSideBar }) })
|
|
15248
15342
|
]
|
|
15249
15343
|
}
|
|
15250
15344
|
)
|
|
@@ -15254,13 +15348,13 @@ var FormPageLayout = React13.memo(FormPageLayoutComponent);
|
|
|
15254
15348
|
function PageHeader(props) {
|
|
15255
15349
|
const { pageTitle, breadCrumb, submitAction, cancelAction, tertiaryAction, formState } = props;
|
|
15256
15350
|
const tids = useTestIds(props);
|
|
15257
|
-
return /* @__PURE__ */
|
|
15258
|
-
/* @__PURE__ */
|
|
15259
|
-
breadCrumb && /* @__PURE__ */
|
|
15260
|
-
/* @__PURE__ */
|
|
15351
|
+
return /* @__PURE__ */ jsx121("header", { css: Css.gr(1).gc("2 / 5").sticky.top0.hPx(headerHeightPx).bgWhite.z5.$, ...tids, children: /* @__PURE__ */ jsxs59("div", { css: Css.py2.px3.df.jcsb.aic.$, children: [
|
|
15352
|
+
/* @__PURE__ */ jsxs59("div", { children: [
|
|
15353
|
+
breadCrumb && /* @__PURE__ */ jsx121(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
15354
|
+
/* @__PURE__ */ jsx121("h1", { css: Css.xl3Sb.$, ...tids.pageTitle, children: pageTitle })
|
|
15261
15355
|
] }),
|
|
15262
|
-
/* @__PURE__ */
|
|
15263
|
-
tertiaryAction && /* @__PURE__ */
|
|
15356
|
+
/* @__PURE__ */ jsxs59("div", { css: Css.df.gap1.$, children: [
|
|
15357
|
+
tertiaryAction && /* @__PURE__ */ jsx121(
|
|
15264
15358
|
Button,
|
|
15265
15359
|
{
|
|
15266
15360
|
label: tertiaryAction.label,
|
|
@@ -15270,7 +15364,7 @@ function PageHeader(props) {
|
|
|
15270
15364
|
tooltip: tertiaryAction.tooltip
|
|
15271
15365
|
}
|
|
15272
15366
|
),
|
|
15273
|
-
cancelAction && /* @__PURE__ */
|
|
15367
|
+
cancelAction && /* @__PURE__ */ jsx121(
|
|
15274
15368
|
Button,
|
|
15275
15369
|
{
|
|
15276
15370
|
label: cancelAction.label,
|
|
@@ -15280,16 +15374,16 @@ function PageHeader(props) {
|
|
|
15280
15374
|
tooltip: cancelAction.tooltip
|
|
15281
15375
|
}
|
|
15282
15376
|
),
|
|
15283
|
-
/* @__PURE__ */
|
|
15377
|
+
/* @__PURE__ */ jsx121(SubmitButton, { form: formState, ...submitAction })
|
|
15284
15378
|
] })
|
|
15285
15379
|
] }) });
|
|
15286
15380
|
}
|
|
15287
15381
|
function FormSections(props) {
|
|
15288
15382
|
const { sectionsWithRefs, formState } = props;
|
|
15289
15383
|
const tids = useTestIds(props);
|
|
15290
|
-
return /* @__PURE__ */
|
|
15384
|
+
return /* @__PURE__ */ jsx121("article", { css: Css.gr(2).gc("3 / 4").$, children: sectionsWithRefs.map(({ section, ref, sectionKey }, i) => (
|
|
15291
15385
|
// Subgrid here allows for icon placement to the left of the section content
|
|
15292
|
-
/* @__PURE__ */
|
|
15386
|
+
/* @__PURE__ */ jsxs59(
|
|
15293
15387
|
"section",
|
|
15294
15388
|
{
|
|
15295
15389
|
id: sectionKey,
|
|
@@ -15297,10 +15391,10 @@ function FormSections(props) {
|
|
|
15297
15391
|
css: Css.dg.gtc("50px 1fr").gtr("auto").mb3.add("scrollMarginTop", `${headerHeightPx}px`).$,
|
|
15298
15392
|
...tids.formSection,
|
|
15299
15393
|
children: [
|
|
15300
|
-
/* @__PURE__ */
|
|
15301
|
-
/* @__PURE__ */
|
|
15302
|
-
section.title && /* @__PURE__ */
|
|
15303
|
-
/* @__PURE__ */
|
|
15394
|
+
/* @__PURE__ */ jsx121("div", { css: Css.gc(1).$, children: section.icon && /* @__PURE__ */ jsx121(Icon, { icon: section.icon, inc: 3.5 }) }),
|
|
15395
|
+
/* @__PURE__ */ jsxs59("div", { css: Css.gc(2).$, children: [
|
|
15396
|
+
section.title && /* @__PURE__ */ jsx121("h2", { css: Css.xlSb.mb3.$, children: section.title }),
|
|
15397
|
+
/* @__PURE__ */ jsx121(BoundForm, { formState, rows: section.rows })
|
|
15304
15398
|
] })
|
|
15305
15399
|
]
|
|
15306
15400
|
},
|
|
@@ -15316,7 +15410,7 @@ function LeftNav(props) {
|
|
|
15316
15410
|
[sectionsWithRefs]
|
|
15317
15411
|
);
|
|
15318
15412
|
const activeSection = useActiveSection(sectionWithTitles);
|
|
15319
|
-
return /* @__PURE__ */
|
|
15413
|
+
return /* @__PURE__ */ jsx121("aside", { css: Css.gr(2).gc("2 / 3").sticky.topPx(headerHeightPx).px3.df.fdc.gap1.$, ...tids.nav, children: sectionWithTitles.map((sectionWithRef) => /* @__PURE__ */ jsx121(
|
|
15320
15414
|
SectionNavLink,
|
|
15321
15415
|
{
|
|
15322
15416
|
sectionWithRef,
|
|
@@ -15333,7 +15427,7 @@ function SectionNavLink(props) {
|
|
|
15333
15427
|
const { sectionWithRef, activeSection } = props;
|
|
15334
15428
|
const { section, ref: sectionRef } = sectionWithRef;
|
|
15335
15429
|
const active = activeSection === sectionWithRef.sectionKey;
|
|
15336
|
-
const handleNavClick =
|
|
15430
|
+
const handleNavClick = useCallback17(() => {
|
|
15337
15431
|
sectionRef.current?.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
15338
15432
|
}, [sectionRef]);
|
|
15339
15433
|
const tids = useTestIds(props);
|
|
@@ -15341,7 +15435,7 @@ function SectionNavLink(props) {
|
|
|
15341
15435
|
const { buttonProps, isPressed } = useButton9({ onPress: handleNavClick }, buttonRef);
|
|
15342
15436
|
const { isFocusVisible, focusProps } = useFocusRing11();
|
|
15343
15437
|
const { hoverProps, isHovered } = useHover({});
|
|
15344
|
-
return /* @__PURE__ */
|
|
15438
|
+
return /* @__PURE__ */ jsx121(
|
|
15345
15439
|
"button",
|
|
15346
15440
|
{
|
|
15347
15441
|
ref: buttonRef,
|
|
@@ -15401,7 +15495,7 @@ import {
|
|
|
15401
15495
|
useRef as useRef42,
|
|
15402
15496
|
useState as useState33
|
|
15403
15497
|
} from "react";
|
|
15404
|
-
import { jsx as
|
|
15498
|
+
import { jsx as jsx122, jsxs as jsxs60 } from "@emotion/react/jsx-runtime";
|
|
15405
15499
|
var ScrollableParentContext = createContext4({
|
|
15406
15500
|
scrollableEl: null,
|
|
15407
15501
|
pr: 0,
|
|
@@ -15429,8 +15523,8 @@ function ScrollableParent(props) {
|
|
|
15429
15523
|
useEffect22(() => {
|
|
15430
15524
|
scrollableRef.current.appendChild(scrollableEl);
|
|
15431
15525
|
}, [scrollableEl]);
|
|
15432
|
-
return /* @__PURE__ */
|
|
15433
|
-
/* @__PURE__ */
|
|
15526
|
+
return /* @__PURE__ */ jsx122(ScrollableParentContext.Provider, { value: context, children: /* @__PURE__ */ jsxs60(Tag2, { css: { ...Css.mh0.mw0.fg1.df.fdc.$, ...otherXss }, children: [
|
|
15527
|
+
/* @__PURE__ */ jsx122(
|
|
15434
15528
|
"div",
|
|
15435
15529
|
{
|
|
15436
15530
|
css: {
|
|
@@ -15440,7 +15534,7 @@ function ScrollableParent(props) {
|
|
|
15440
15534
|
children
|
|
15441
15535
|
}
|
|
15442
15536
|
),
|
|
15443
|
-
/* @__PURE__ */
|
|
15537
|
+
/* @__PURE__ */ jsx122("div", { css: Css.fg1.oa.$, ref: scrollableRef })
|
|
15444
15538
|
] }) });
|
|
15445
15539
|
}
|
|
15446
15540
|
function useScrollableParent() {
|
|
@@ -15457,19 +15551,19 @@ function FullBleed({ children, omitPadding = false }) {
|
|
|
15457
15551
|
}
|
|
15458
15552
|
|
|
15459
15553
|
// src/components/Layout/PreventBrowserScroll.tsx
|
|
15460
|
-
import { jsx as
|
|
15554
|
+
import { jsx as jsx123 } from "@emotion/react/jsx-runtime";
|
|
15461
15555
|
function PreventBrowserScroll({ children }) {
|
|
15462
15556
|
return (
|
|
15463
15557
|
// Take over the full viewport and hide any overflown content.
|
|
15464
15558
|
// Using `-webkit-fill-available`, otherwise `height: 100vh` includes the app bars in mobile Safari. See https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
|
|
15465
15559
|
// Setting the multiple "(min|max-)height" properties is necessary, as Truss will turn this into an object and there can only be one `height` property.
|
|
15466
|
-
/* @__PURE__ */
|
|
15560
|
+
/* @__PURE__ */ jsx123("div", { css: Css.oh.vh100.mh("-webkit-fill-available").maxh("-webkit-fill-available").$, children: /* @__PURE__ */ jsx123("div", { css: Css.h100.df.fdc.mh0.oa.$, children }) })
|
|
15467
15561
|
);
|
|
15468
15562
|
}
|
|
15469
15563
|
|
|
15470
15564
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
15471
|
-
import React14, { useCallback as
|
|
15472
|
-
import { jsx as
|
|
15565
|
+
import React14, { useCallback as useCallback18, useContext as useContext13, useMemo as useMemo30, useState as useState34 } from "react";
|
|
15566
|
+
import { jsx as jsx124 } from "@emotion/react/jsx-runtime";
|
|
15473
15567
|
var RightPaneContext = React14.createContext({
|
|
15474
15568
|
openInPane: () => {
|
|
15475
15569
|
},
|
|
@@ -15483,20 +15577,20 @@ var RightPaneContext = React14.createContext({
|
|
|
15483
15577
|
function RightPaneProvider({ children }) {
|
|
15484
15578
|
const [rightPaneContent, setRightPaneContent] = useState34(void 0);
|
|
15485
15579
|
const [isRightPaneOpen, setIsRightPaneOpen] = useState34(false);
|
|
15486
|
-
const openInPane =
|
|
15580
|
+
const openInPane = useCallback18(
|
|
15487
15581
|
(opts) => {
|
|
15488
15582
|
setRightPaneContent(opts?.content);
|
|
15489
15583
|
setIsRightPaneOpen(true);
|
|
15490
15584
|
},
|
|
15491
15585
|
[setRightPaneContent]
|
|
15492
15586
|
);
|
|
15493
|
-
const closePane =
|
|
15494
|
-
const clearPane =
|
|
15587
|
+
const closePane = useCallback18(() => setIsRightPaneOpen(false), []);
|
|
15588
|
+
const clearPane = useCallback18(() => setRightPaneContent(void 0), [setRightPaneContent]);
|
|
15495
15589
|
const context = useMemo30(
|
|
15496
15590
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
15497
15591
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
15498
15592
|
);
|
|
15499
|
-
return /* @__PURE__ */
|
|
15593
|
+
return /* @__PURE__ */ jsx124(RightPaneContext.Provider, { value: context, children });
|
|
15500
15594
|
}
|
|
15501
15595
|
function useRightPaneContext() {
|
|
15502
15596
|
return useContext13(RightPaneContext);
|
|
@@ -15505,13 +15599,13 @@ function useRightPaneContext() {
|
|
|
15505
15599
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
15506
15600
|
import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
|
|
15507
15601
|
import { useEffect as useEffect23 } from "react";
|
|
15508
|
-
import { Fragment as
|
|
15602
|
+
import { Fragment as Fragment23, jsx as jsx125, jsxs as jsxs61 } from "@emotion/react/jsx-runtime";
|
|
15509
15603
|
function RightPaneLayout(props) {
|
|
15510
15604
|
const { children, paneBgColor = "rgba(255,255,255,1)" /* White */, paneWidth = 450, defaultPaneContent } = props;
|
|
15511
15605
|
const { isRightPaneOpen, rightPaneContent, clearPane, closePane } = useRightPaneContext();
|
|
15512
15606
|
useEffect23(() => closePane, [closePane]);
|
|
15513
|
-
return /* @__PURE__ */
|
|
15514
|
-
/* @__PURE__ */
|
|
15607
|
+
return /* @__PURE__ */ jsx125("div", { css: Css.h100.df.oxh.$, children: /* @__PURE__ */ jsxs61(Fragment23, { children: [
|
|
15608
|
+
/* @__PURE__ */ jsx125(
|
|
15515
15609
|
"div",
|
|
15516
15610
|
{
|
|
15517
15611
|
css: {
|
|
@@ -15522,15 +15616,15 @@ function RightPaneLayout(props) {
|
|
|
15522
15616
|
children
|
|
15523
15617
|
}
|
|
15524
15618
|
),
|
|
15525
|
-
/* @__PURE__ */
|
|
15526
|
-
defaultPaneContent && /* @__PURE__ */
|
|
15619
|
+
/* @__PURE__ */ jsxs61("div", { css: Css.relative.if(!!defaultPaneContent).wPx(paneWidth).$, children: [
|
|
15620
|
+
defaultPaneContent && /* @__PURE__ */ jsx125(
|
|
15527
15621
|
"div",
|
|
15528
15622
|
{
|
|
15529
15623
|
css: Css.h100.wPx(paneWidth).left(0).absolute.add("transition", "all .3s ease-in-out").if(isRightPaneOpen).add("opacity", 0).left(100).$,
|
|
15530
15624
|
children: defaultPaneContent
|
|
15531
15625
|
}
|
|
15532
15626
|
),
|
|
15533
|
-
/* @__PURE__ */
|
|
15627
|
+
/* @__PURE__ */ jsx125(AnimatePresence3, { children: isRightPaneOpen && /* @__PURE__ */ jsx125(
|
|
15534
15628
|
motion3.div,
|
|
15535
15629
|
{
|
|
15536
15630
|
layout: "position",
|
|
@@ -15561,7 +15655,7 @@ function useRightPane() {
|
|
|
15561
15655
|
// src/components/Layout/ScrollableContent.tsx
|
|
15562
15656
|
import { useEffect as useEffect24 } from "react";
|
|
15563
15657
|
import { createPortal as createPortal4 } from "react-dom";
|
|
15564
|
-
import { Fragment as
|
|
15658
|
+
import { Fragment as Fragment24, jsx as jsx126 } from "@emotion/react/jsx-runtime";
|
|
15565
15659
|
function ScrollableContent(props) {
|
|
15566
15660
|
const { children, virtualized = false, omitBottomPadding, bgColor } = props;
|
|
15567
15661
|
const { scrollableEl, setPortalTick, pl, pr } = useScrollableParent();
|
|
@@ -15570,10 +15664,10 @@ function ScrollableContent(props) {
|
|
|
15570
15664
|
return () => setPortalTick((prev) => prev + 1);
|
|
15571
15665
|
}, [setPortalTick]);
|
|
15572
15666
|
if (!scrollableEl) {
|
|
15573
|
-
return /* @__PURE__ */
|
|
15667
|
+
return /* @__PURE__ */ jsx126(Fragment24, { children });
|
|
15574
15668
|
}
|
|
15575
15669
|
return createPortal4(
|
|
15576
|
-
/* @__PURE__ */
|
|
15670
|
+
/* @__PURE__ */ jsx126(
|
|
15577
15671
|
"div",
|
|
15578
15672
|
{
|
|
15579
15673
|
css: {
|
|
@@ -15589,8 +15683,8 @@ function ScrollableContent(props) {
|
|
|
15589
15683
|
}
|
|
15590
15684
|
|
|
15591
15685
|
// src/components/Toast/ToastContext.tsx
|
|
15592
|
-
import { createContext as createContext5, useCallback as
|
|
15593
|
-
import { jsx as
|
|
15686
|
+
import { createContext as createContext5, useCallback as useCallback19, useContext as useContext14, useMemo as useMemo31, useState as useState35 } from "react";
|
|
15687
|
+
import { jsx as jsx127 } from "@emotion/react/jsx-runtime";
|
|
15594
15688
|
var ToastContext = createContext5({
|
|
15595
15689
|
setNotice: () => {
|
|
15596
15690
|
throw new Error("Missing ToastProvider");
|
|
@@ -15601,16 +15695,16 @@ var ToastContext = createContext5({
|
|
|
15601
15695
|
});
|
|
15602
15696
|
function ToastProvider(props) {
|
|
15603
15697
|
const [notice, setNotice] = useState35();
|
|
15604
|
-
const clear =
|
|
15698
|
+
const clear = useCallback19(() => setNotice(void 0), [setNotice]);
|
|
15605
15699
|
const contextValue = useMemo31(() => ({ setNotice, notice, clear }), [notice, clear]);
|
|
15606
|
-
return /* @__PURE__ */
|
|
15700
|
+
return /* @__PURE__ */ jsx127(ToastContext.Provider, { value: contextValue, children: props.children });
|
|
15607
15701
|
}
|
|
15608
15702
|
function useToastContext() {
|
|
15609
15703
|
return useContext14(ToastContext);
|
|
15610
15704
|
}
|
|
15611
15705
|
|
|
15612
15706
|
// src/components/BeamContext.tsx
|
|
15613
|
-
import { jsx as
|
|
15707
|
+
import { jsx as jsx128, jsxs as jsxs62 } from "@emotion/react/jsx-runtime";
|
|
15614
15708
|
var BeamContext = createContext6({
|
|
15615
15709
|
modalState: new EmptyRef(),
|
|
15616
15710
|
modalCanCloseChecks: new EmptyRef(),
|
|
@@ -15652,12 +15746,12 @@ function BeamProvider({ children, ...presentationProps }) {
|
|
|
15652
15746
|
sdHeaderDiv
|
|
15653
15747
|
};
|
|
15654
15748
|
}, [modalBodyDiv, modalFooterDiv, modalHeaderDiv, sdHeaderDiv]);
|
|
15655
|
-
return /* @__PURE__ */
|
|
15656
|
-
/* @__PURE__ */
|
|
15749
|
+
return /* @__PURE__ */ jsx128(BeamContext.Provider, { value: { ...context }, children: /* @__PURE__ */ jsx128(PresentationProvider, { ...presentationProps, children: /* @__PURE__ */ jsx128(RightPaneProvider, { children: /* @__PURE__ */ jsx128(AutoSaveStatusProvider, { children: /* @__PURE__ */ jsx128(SnackbarProvider, { children: /* @__PURE__ */ jsxs62(ToastProvider, { children: [
|
|
15750
|
+
/* @__PURE__ */ jsxs62(OverlayProvider, { children: [
|
|
15657
15751
|
children,
|
|
15658
|
-
modalRef.current && /* @__PURE__ */
|
|
15752
|
+
modalRef.current && /* @__PURE__ */ jsx128(Modal, { ...modalRef.current })
|
|
15659
15753
|
] }),
|
|
15660
|
-
/* @__PURE__ */
|
|
15754
|
+
/* @__PURE__ */ jsx128(SuperDrawer, {})
|
|
15661
15755
|
] }) }) }) }) }) });
|
|
15662
15756
|
}
|
|
15663
15757
|
var PretendRefThatTicks = class {
|
|
@@ -15681,7 +15775,7 @@ function useBeamContext() {
|
|
|
15681
15775
|
import { useRef as useRef44 } from "react";
|
|
15682
15776
|
import { useMenuTrigger as useMenuTrigger3 } from "react-aria";
|
|
15683
15777
|
import { useMenuTriggerState as useMenuTriggerState3 } from "react-stately";
|
|
15684
|
-
import { jsx as
|
|
15778
|
+
import { jsx as jsx129 } from "@emotion/react/jsx-runtime";
|
|
15685
15779
|
function ButtonDatePicker(props) {
|
|
15686
15780
|
const { defaultOpen, disabled, trigger, onSelect, ...datePickerProps } = props;
|
|
15687
15781
|
const state = useMenuTriggerState3({ isOpen: defaultOpen });
|
|
@@ -15691,7 +15785,7 @@ function ButtonDatePicker(props) {
|
|
|
15691
15785
|
props,
|
|
15692
15786
|
isTextButton(trigger) ? defaultTestId(labelOr(trigger, "buttonDatePicker")) : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
15693
15787
|
);
|
|
15694
|
-
return /* @__PURE__ */
|
|
15788
|
+
return /* @__PURE__ */ jsx129(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ jsx129(DatePickerOverlay, { overlayProps: menuProps, children: /* @__PURE__ */ jsx129(
|
|
15695
15789
|
DatePicker,
|
|
15696
15790
|
{
|
|
15697
15791
|
...datePickerProps,
|
|
@@ -15707,15 +15801,15 @@ function ButtonDatePicker(props) {
|
|
|
15707
15801
|
// src/components/ButtonGroup.tsx
|
|
15708
15802
|
import { useRef as useRef45 } from "react";
|
|
15709
15803
|
import { useButton as useButton10, useFocusRing as useFocusRing12, useHover as useHover15 } from "react-aria";
|
|
15710
|
-
import { jsx as
|
|
15804
|
+
import { jsx as jsx130, jsxs as jsxs63 } from "@emotion/react/jsx-runtime";
|
|
15711
15805
|
function ButtonGroup(props) {
|
|
15712
15806
|
const { buttons, disabled = false, size = "sm" } = props;
|
|
15713
15807
|
const tid = useTestIds(props, "buttonGroup");
|
|
15714
15808
|
return (
|
|
15715
15809
|
// Adding `line-height: 0` prevent inheriting line-heights that might throw off sizing within the button group.
|
|
15716
|
-
/* @__PURE__ */
|
|
15810
|
+
/* @__PURE__ */ jsx130("div", { ...tid, css: Css.df.lh(0).add({ ...sizeStyles2[size] }).$, children: buttons.map(({ disabled: buttonDisabled, ...buttonProps }, i) => (
|
|
15717
15811
|
// Disable the button if the ButtonGroup is disabled or if the current button is disabled.
|
|
15718
|
-
/* @__PURE__ */
|
|
15812
|
+
/* @__PURE__ */ jsx130(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, ...tid }, i)
|
|
15719
15813
|
)) })
|
|
15720
15814
|
);
|
|
15721
15815
|
}
|
|
@@ -15727,10 +15821,10 @@ function GroupButton(props) {
|
|
|
15727
15821
|
const { isFocusVisible, focusProps } = useFocusRing12();
|
|
15728
15822
|
const { hoverProps, isHovered } = useHover15(ariaProps);
|
|
15729
15823
|
const tid = useTestIds(props);
|
|
15730
|
-
return /* @__PURE__ */
|
|
15824
|
+
return /* @__PURE__ */ jsx130("span", { css: getButtonStyles2(), children: maybeTooltip({
|
|
15731
15825
|
title: resolveTooltip(disabled, tooltip),
|
|
15732
15826
|
placement: "top",
|
|
15733
|
-
children: /* @__PURE__ */
|
|
15827
|
+
children: /* @__PURE__ */ jsxs63(
|
|
15734
15828
|
"button",
|
|
15735
15829
|
{
|
|
15736
15830
|
ref,
|
|
@@ -15747,7 +15841,7 @@ function GroupButton(props) {
|
|
|
15747
15841
|
},
|
|
15748
15842
|
...tid[defaultTestId(typeof text === "string" && text || icon || "button")],
|
|
15749
15843
|
children: [
|
|
15750
|
-
icon && /* @__PURE__ */
|
|
15844
|
+
icon && /* @__PURE__ */ jsx130(Icon, { xss: Css.if(!!text).mrPx(4).$, icon, color: disabled ? void 0 : iconColor, inc: iconInc }),
|
|
15751
15845
|
text
|
|
15752
15846
|
]
|
|
15753
15847
|
}
|
|
@@ -15784,7 +15878,7 @@ var iconStyles2 = {
|
|
|
15784
15878
|
import { useRef as useRef46 } from "react";
|
|
15785
15879
|
import { useMenuTrigger as useMenuTrigger4 } from "react-aria";
|
|
15786
15880
|
import { useMenuTriggerState as useMenuTriggerState4 } from "react-stately";
|
|
15787
|
-
import { jsx as
|
|
15881
|
+
import { jsx as jsx131 } from "@emotion/react/jsx-runtime";
|
|
15788
15882
|
function ButtonMenu(props) {
|
|
15789
15883
|
const { defaultOpen, disabled, items, persistentItems, trigger, searchable, contrast = false } = props;
|
|
15790
15884
|
let selectedItem, onChange;
|
|
@@ -15799,7 +15893,7 @@ function ButtonMenu(props) {
|
|
|
15799
15893
|
props,
|
|
15800
15894
|
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
15801
15895
|
);
|
|
15802
|
-
return /* @__PURE__ */
|
|
15896
|
+
return /* @__PURE__ */ jsx131(
|
|
15803
15897
|
OverlayTrigger,
|
|
15804
15898
|
{
|
|
15805
15899
|
...props,
|
|
@@ -15808,7 +15902,7 @@ function ButtonMenu(props) {
|
|
|
15808
15902
|
buttonRef,
|
|
15809
15903
|
...tid,
|
|
15810
15904
|
contrast,
|
|
15811
|
-
children: /* @__PURE__ */
|
|
15905
|
+
children: /* @__PURE__ */ jsx131(
|
|
15812
15906
|
Menu,
|
|
15813
15907
|
{
|
|
15814
15908
|
ariaMenuProps: menuProps,
|
|
@@ -15829,10 +15923,120 @@ function isSelectionButtonMenuProps(props) {
|
|
|
15829
15923
|
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
15830
15924
|
}
|
|
15831
15925
|
|
|
15926
|
+
// src/components/Card.tsx
|
|
15927
|
+
import { useMemo as useMemo33 } from "react";
|
|
15928
|
+
import { useHover as useHover16 } from "react-aria";
|
|
15929
|
+
|
|
15930
|
+
// src/components/Tag.tsx
|
|
15931
|
+
import { useResizeObserver as useResizeObserver4 } from "@react-aria/utils";
|
|
15932
|
+
import { useRef as useRef47, useState as useState36 } from "react";
|
|
15933
|
+
import { jsx as jsx132, jsxs as jsxs64 } from "@emotion/react/jsx-runtime";
|
|
15934
|
+
function Tag(props) {
|
|
15935
|
+
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
15936
|
+
const typeStyles2 = getStyles(type);
|
|
15937
|
+
const tid = useTestIds(otherProps);
|
|
15938
|
+
const [showTooltip, setShowTooltip] = useState36(false);
|
|
15939
|
+
const ref = useRef47(null);
|
|
15940
|
+
useResizeObserver4({
|
|
15941
|
+
ref,
|
|
15942
|
+
onResize: () => {
|
|
15943
|
+
if (ref.current) {
|
|
15944
|
+
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
15945
|
+
}
|
|
15946
|
+
}
|
|
15947
|
+
});
|
|
15948
|
+
return maybeTooltip({
|
|
15949
|
+
title: !preventTooltip && showTooltip ? text : void 0,
|
|
15950
|
+
children: /* @__PURE__ */ jsxs64("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
15951
|
+
otherProps.icon && /* @__PURE__ */ jsx132("span", { css: Css.fs0.$, children: /* @__PURE__ */ jsx132(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
15952
|
+
/* @__PURE__ */ jsx132("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
15953
|
+
] })
|
|
15954
|
+
});
|
|
15955
|
+
}
|
|
15956
|
+
function getStyles(type) {
|
|
15957
|
+
switch (type) {
|
|
15958
|
+
case "info":
|
|
15959
|
+
return Css.bgBlue100.$;
|
|
15960
|
+
case "caution":
|
|
15961
|
+
return Css.bgYellow200.$;
|
|
15962
|
+
case "warning":
|
|
15963
|
+
return Css.bgRed200.$;
|
|
15964
|
+
case "success":
|
|
15965
|
+
return Css.bgGreen200.$;
|
|
15966
|
+
default:
|
|
15967
|
+
return Css.bgGray200.$;
|
|
15968
|
+
}
|
|
15969
|
+
}
|
|
15970
|
+
|
|
15971
|
+
// src/components/Card.tsx
|
|
15972
|
+
import { jsx as jsx133, jsxs as jsxs65 } from "@emotion/react/jsx-runtime";
|
|
15973
|
+
function Card(props) {
|
|
15974
|
+
const {
|
|
15975
|
+
title,
|
|
15976
|
+
subtitle,
|
|
15977
|
+
detailContent,
|
|
15978
|
+
imgSrc,
|
|
15979
|
+
imageFit = "contain",
|
|
15980
|
+
type = "card",
|
|
15981
|
+
bordered = false,
|
|
15982
|
+
disabled: isDisabled = false,
|
|
15983
|
+
buttonMenuItems,
|
|
15984
|
+
tag
|
|
15985
|
+
} = props;
|
|
15986
|
+
const tid = useTestIds(props, "card");
|
|
15987
|
+
const { hoverProps, isHovered } = useHover16({ isDisabled });
|
|
15988
|
+
const isList = type === "list";
|
|
15989
|
+
const imgHeight = isList ? 96 : bordered ? 224 : 256;
|
|
15990
|
+
const styles = useMemo33(
|
|
15991
|
+
() => ({
|
|
15992
|
+
...baseStyles4(type),
|
|
15993
|
+
...isList && listStyles,
|
|
15994
|
+
...bordered && borderedStyles,
|
|
15995
|
+
...isHovered && cardHoverStyles,
|
|
15996
|
+
...isDisabled && disabledStyles3
|
|
15997
|
+
}),
|
|
15998
|
+
[isDisabled, isHovered, bordered, type, isList]
|
|
15999
|
+
);
|
|
16000
|
+
return /* @__PURE__ */ jsxs65("div", { css: styles, ...hoverProps, ...tid, children: [
|
|
16001
|
+
/* @__PURE__ */ jsx133(
|
|
16002
|
+
"div",
|
|
16003
|
+
{
|
|
16004
|
+
css: {
|
|
16005
|
+
...Css.hPx(imgHeight).ba.br8.bcGray300.oh.df.asc.jsc.relative.add("filter", "brightness(1)").$,
|
|
16006
|
+
...isHovered && !isList && imageHoverStyles
|
|
16007
|
+
},
|
|
16008
|
+
children: /* @__PURE__ */ jsx133("img", { css: Css.w100.h100.objectFit(imageFit).$, src: imgSrc, alt: title, ...tid.img })
|
|
16009
|
+
}
|
|
16010
|
+
),
|
|
16011
|
+
isHovered && buttonMenuItems && /* @__PURE__ */ jsx133("div", { css: Css.absolute.right1.top1.if(bordered && !isList).right3.top3.$, children: /* @__PURE__ */ jsx133(
|
|
16012
|
+
ButtonMenu,
|
|
16013
|
+
{
|
|
16014
|
+
trigger: { icon: "verticalDots", color: isList ? "rgba(100, 100, 100, 1)" /* Gray700 */ : "rgba(255,255,255,1)" /* White */ },
|
|
16015
|
+
items: buttonMenuItems
|
|
16016
|
+
}
|
|
16017
|
+
) }),
|
|
16018
|
+
tag && /* @__PURE__ */ jsx133("div", { css: Css.absolute.left1.topPx(4).$, children: /* @__PURE__ */ jsx133(Tag, { type: tag?.type, text: tag?.text, ...tid.tag }) }),
|
|
16019
|
+
/* @__PURE__ */ jsxs65("div", { css: Css.df.fdc.aifs.gap1.$, children: [
|
|
16020
|
+
/* @__PURE__ */ jsxs65("div", { children: [
|
|
16021
|
+
/* @__PURE__ */ jsx133("div", { css: Css.xsMd.gray700.$, ...tid.subtitle, children: subtitle }),
|
|
16022
|
+
/* @__PURE__ */ jsx133("div", { css: Css.smMd.gray900.if(isHovered).blue700.$, ...tid.title, children: title })
|
|
16023
|
+
] }),
|
|
16024
|
+
/* @__PURE__ */ jsx133("div", { ...tid.details, children: detailContent })
|
|
16025
|
+
] })
|
|
16026
|
+
] });
|
|
16027
|
+
}
|
|
16028
|
+
var width = { card: 256, list: 520 };
|
|
16029
|
+
var baseStyles4 = (type) => Css.wPx(width[type]).bgWhite.df.fdc.gap1.relative.$;
|
|
16030
|
+
var listStyles = Css.df.fdr.gap2.$;
|
|
16031
|
+
var borderedStyles = Css.ba.br8.bcGray300.p2.$;
|
|
16032
|
+
var disabledStyles3 = Css.add("opacity", 0.5).add("transition", "opacity 0.3s ease").$;
|
|
16033
|
+
var cardHoverStyles = Css.bcGray400.cursorPointer.$;
|
|
16034
|
+
var imageHoverStyles = Css.bgWhite.add("filter", "brightness(0.3)").add("transition", "filter 0.3s ease").$;
|
|
16035
|
+
|
|
15832
16036
|
// src/components/Copy.tsx
|
|
15833
|
-
import { jsx as
|
|
16037
|
+
import { jsx as jsx134 } from "@emotion/react/jsx-runtime";
|
|
15834
16038
|
function Copy(props) {
|
|
15835
|
-
return /* @__PURE__ */
|
|
16039
|
+
return /* @__PURE__ */ jsx134(
|
|
15836
16040
|
"div",
|
|
15837
16041
|
{
|
|
15838
16042
|
css: {
|
|
@@ -15846,7 +16050,7 @@ function Copy(props) {
|
|
|
15846
16050
|
|
|
15847
16051
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
15848
16052
|
import equal2 from "fast-deep-equal";
|
|
15849
|
-
import { useCallback as
|
|
16053
|
+
import { useCallback as useCallback20, useRef as useRef48 } from "react";
|
|
15850
16054
|
|
|
15851
16055
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
15852
16056
|
import { createContext as createContext7, useContext as useContext16 } from "react";
|
|
@@ -15860,29 +16064,29 @@ function useDnDGridContext() {
|
|
|
15860
16064
|
}
|
|
15861
16065
|
|
|
15862
16066
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
15863
|
-
import { jsx as
|
|
16067
|
+
import { jsx as jsx135 } from "@emotion/react/jsx-runtime";
|
|
15864
16068
|
function DnDGrid(props) {
|
|
15865
16069
|
const { children, gridStyles, onReorder, activeItemStyles } = props;
|
|
15866
|
-
const gridEl =
|
|
15867
|
-
const dragEl =
|
|
15868
|
-
const cloneEl =
|
|
15869
|
-
const initialOrder =
|
|
15870
|
-
const reorderViaKeyboard =
|
|
15871
|
-
const transformFrom =
|
|
16070
|
+
const gridEl = useRef48(null);
|
|
16071
|
+
const dragEl = useRef48();
|
|
16072
|
+
const cloneEl = useRef48();
|
|
16073
|
+
const initialOrder = useRef48();
|
|
16074
|
+
const reorderViaKeyboard = useRef48(false);
|
|
16075
|
+
const transformFrom = useRef48({ x: 0, y: 0 });
|
|
15872
16076
|
const tid = useTestIds(props, "dndGrid");
|
|
15873
|
-
const getGridItems =
|
|
16077
|
+
const getGridItems = useCallback20(() => {
|
|
15874
16078
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
15875
16079
|
}, []);
|
|
15876
|
-
const getGridItemIdOrder =
|
|
16080
|
+
const getGridItemIdOrder = useCallback20(() => {
|
|
15877
16081
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
15878
16082
|
}, [getGridItems]);
|
|
15879
|
-
const initReorder =
|
|
16083
|
+
const initReorder = useCallback20(() => {
|
|
15880
16084
|
if (gridEl.current && dragEl.current) {
|
|
15881
16085
|
initialOrder.current = getGridItemIdOrder();
|
|
15882
16086
|
dragEl.current.classList.add(activeGridItemClass);
|
|
15883
16087
|
}
|
|
15884
16088
|
}, [getGridItemIdOrder]);
|
|
15885
|
-
const commitReorder =
|
|
16089
|
+
const commitReorder = useCallback20(() => {
|
|
15886
16090
|
if (gridEl.current && dragEl.current) {
|
|
15887
16091
|
const currentOrder = getGridItemIdOrder();
|
|
15888
16092
|
if (!equal2(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -15892,7 +16096,7 @@ function DnDGrid(props) {
|
|
|
15892
16096
|
initialOrder.current = currentOrder;
|
|
15893
16097
|
}
|
|
15894
16098
|
}, [onReorder, getGridItemIdOrder]);
|
|
15895
|
-
const cancelReorder =
|
|
16099
|
+
const cancelReorder = useCallback20(() => {
|
|
15896
16100
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
15897
16101
|
const currentOrder = getGridItemIdOrder();
|
|
15898
16102
|
if (!equal2(currentOrder, initialOrder.current)) {
|
|
@@ -15914,7 +16118,7 @@ function DnDGrid(props) {
|
|
|
15914
16118
|
reorderViaKeyboard.current = false;
|
|
15915
16119
|
}
|
|
15916
16120
|
}, [getGridItemIdOrder, getGridItems]);
|
|
15917
|
-
const onMove =
|
|
16121
|
+
const onMove = useCallback20((e) => {
|
|
15918
16122
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
15919
16123
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
15920
16124
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -15935,7 +16139,7 @@ function DnDGrid(props) {
|
|
|
15935
16139
|
}
|
|
15936
16140
|
}
|
|
15937
16141
|
}, []);
|
|
15938
|
-
const onDragStart =
|
|
16142
|
+
const onDragStart = useCallback20(
|
|
15939
16143
|
(e) => {
|
|
15940
16144
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
15941
16145
|
initReorder();
|
|
@@ -15966,7 +16170,7 @@ function DnDGrid(props) {
|
|
|
15966
16170
|
},
|
|
15967
16171
|
[initReorder, onMove]
|
|
15968
16172
|
);
|
|
15969
|
-
const onDragEnd =
|
|
16173
|
+
const onDragEnd = useCallback20(
|
|
15970
16174
|
(e) => {
|
|
15971
16175
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
15972
16176
|
e.preventDefault();
|
|
@@ -15982,7 +16186,7 @@ function DnDGrid(props) {
|
|
|
15982
16186
|
},
|
|
15983
16187
|
[commitReorder, onMove]
|
|
15984
16188
|
);
|
|
15985
|
-
const onDragHandleKeyDown =
|
|
16189
|
+
const onDragHandleKeyDown = useCallback20(
|
|
15986
16190
|
(e) => {
|
|
15987
16191
|
const moveHandle = e.target;
|
|
15988
16192
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -16033,7 +16237,7 @@ function DnDGrid(props) {
|
|
|
16033
16237
|
},
|
|
16034
16238
|
[cancelReorder, commitReorder, initReorder, getGridItems]
|
|
16035
16239
|
);
|
|
16036
|
-
return /* @__PURE__ */
|
|
16240
|
+
return /* @__PURE__ */ jsx135(DnDGridContext.Provider, { value: { dragEl, onDragHandleKeyDown }, children: /* @__PURE__ */ jsx135(
|
|
16037
16241
|
"div",
|
|
16038
16242
|
{
|
|
16039
16243
|
ref: gridEl,
|
|
@@ -16055,16 +16259,16 @@ var gridCloneKey = "dndgrid-clone";
|
|
|
16055
16259
|
var activeGridItemClass = "dndgrid-active";
|
|
16056
16260
|
|
|
16057
16261
|
// src/components/DnDGrid/DnDGridItemHandle.tsx
|
|
16058
|
-
import { mergeProps as mergeProps12, useFocusRing as useFocusRing13, useHover as
|
|
16059
|
-
import { jsx as
|
|
16262
|
+
import { mergeProps as mergeProps12, useFocusRing as useFocusRing13, useHover as useHover17 } from "react-aria";
|
|
16263
|
+
import { jsx as jsx136 } from "@emotion/react/jsx-runtime";
|
|
16060
16264
|
function DnDGridItemHandle(props) {
|
|
16061
16265
|
const { dragHandleProps, icon = "move", compact = false, color } = props;
|
|
16062
16266
|
const { focusProps, isFocusVisible } = useFocusRing13();
|
|
16063
|
-
const { hoverProps, isHovered } =
|
|
16267
|
+
const { hoverProps, isHovered } = useHover17({});
|
|
16064
16268
|
const tid = useTestIds(props, "dragHandle");
|
|
16065
16269
|
const iconButtonNormal2 = Css.hPx(28).wPx(28).br8.bw2.$;
|
|
16066
16270
|
const iconButtonCompact2 = Css.hPx(18).wPx(18).br4.bw1.$;
|
|
16067
|
-
return /* @__PURE__ */
|
|
16271
|
+
return /* @__PURE__ */ jsx136(
|
|
16068
16272
|
"button",
|
|
16069
16273
|
{
|
|
16070
16274
|
css: {
|
|
@@ -16074,17 +16278,17 @@ function DnDGridItemHandle(props) {
|
|
|
16074
16278
|
},
|
|
16075
16279
|
...mergeProps12(dragHandleProps, focusProps, hoverProps),
|
|
16076
16280
|
...tid,
|
|
16077
|
-
children: /* @__PURE__ */
|
|
16281
|
+
children: /* @__PURE__ */ jsx136(Icon, { icon, inc: compact ? 2 : void 0, color })
|
|
16078
16282
|
}
|
|
16079
16283
|
);
|
|
16080
16284
|
}
|
|
16081
16285
|
|
|
16082
16286
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
16083
|
-
import { useMemo as
|
|
16287
|
+
import { useMemo as useMemo34 } from "react";
|
|
16084
16288
|
function useDnDGridItem(props) {
|
|
16085
16289
|
const { id, itemRef } = props;
|
|
16086
16290
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
16087
|
-
const { dragItemProps, dragHandleProps } =
|
|
16291
|
+
const { dragItemProps, dragHandleProps } = useMemo34(
|
|
16088
16292
|
() => {
|
|
16089
16293
|
function initDraggable() {
|
|
16090
16294
|
if (itemRef.current) {
|
|
@@ -16128,7 +16332,7 @@ var BaseFilter = class {
|
|
|
16128
16332
|
};
|
|
16129
16333
|
|
|
16130
16334
|
// src/components/Filters/DateFilter.tsx
|
|
16131
|
-
import { Fragment as
|
|
16335
|
+
import { Fragment as Fragment25, jsx as jsx137, jsxs as jsxs66 } from "@emotion/react/jsx-runtime";
|
|
16132
16336
|
function dateFilter(props) {
|
|
16133
16337
|
return (key) => new DateFilter(key, props);
|
|
16134
16338
|
}
|
|
@@ -16136,10 +16340,10 @@ var anyOption = {};
|
|
|
16136
16340
|
var DateFilter = class extends BaseFilter {
|
|
16137
16341
|
render(value, setValue, tid, inModal, vertical) {
|
|
16138
16342
|
const { label, operations, getOperationValue, getOperationLabel } = this.props;
|
|
16139
|
-
return /* @__PURE__ */
|
|
16140
|
-
vertical && /* @__PURE__ */
|
|
16141
|
-
/* @__PURE__ */
|
|
16142
|
-
/* @__PURE__ */
|
|
16343
|
+
return /* @__PURE__ */ jsxs66(Fragment25, { children: [
|
|
16344
|
+
vertical && /* @__PURE__ */ jsx137(Label, { label }),
|
|
16345
|
+
/* @__PURE__ */ jsxs66(CompoundField, { children: [
|
|
16346
|
+
/* @__PURE__ */ jsx137(
|
|
16143
16347
|
SelectField,
|
|
16144
16348
|
{
|
|
16145
16349
|
compact: true,
|
|
@@ -16162,7 +16366,7 @@ var DateFilter = class extends BaseFilter {
|
|
|
16162
16366
|
...tid[`${defaultTestId(this.label)}_dateOperation`]
|
|
16163
16367
|
}
|
|
16164
16368
|
),
|
|
16165
|
-
/* @__PURE__ */
|
|
16369
|
+
/* @__PURE__ */ jsx137(
|
|
16166
16370
|
DateField,
|
|
16167
16371
|
{
|
|
16168
16372
|
compact: true,
|
|
@@ -16180,16 +16384,16 @@ var DateFilter = class extends BaseFilter {
|
|
|
16180
16384
|
};
|
|
16181
16385
|
|
|
16182
16386
|
// src/components/Filters/DateRangeFilter.tsx
|
|
16183
|
-
import { Fragment as
|
|
16387
|
+
import { Fragment as Fragment26, jsx as jsx138, jsxs as jsxs67 } from "@emotion/react/jsx-runtime";
|
|
16184
16388
|
function dateRangeFilter(props) {
|
|
16185
16389
|
return (key) => new DateRangeFilter(key, props);
|
|
16186
16390
|
}
|
|
16187
16391
|
var DateRangeFilter = class extends BaseFilter {
|
|
16188
16392
|
render(value, setValue, tid, inModal, vertical) {
|
|
16189
16393
|
const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
|
|
16190
|
-
return /* @__PURE__ */
|
|
16191
|
-
vertical && /* @__PURE__ */
|
|
16192
|
-
/* @__PURE__ */
|
|
16394
|
+
return /* @__PURE__ */ jsxs67(Fragment26, { children: [
|
|
16395
|
+
vertical && /* @__PURE__ */ jsx138(Label, { label }),
|
|
16396
|
+
/* @__PURE__ */ jsx138(
|
|
16193
16397
|
DateRangeField,
|
|
16194
16398
|
{
|
|
16195
16399
|
compact: true,
|
|
@@ -16208,7 +16412,7 @@ var DateRangeFilter = class extends BaseFilter {
|
|
|
16208
16412
|
};
|
|
16209
16413
|
|
|
16210
16414
|
// src/components/Filters/MultiFilter.tsx
|
|
16211
|
-
import { jsx as
|
|
16415
|
+
import { jsx as jsx139 } from "@emotion/react/jsx-runtime";
|
|
16212
16416
|
function multiFilter(props) {
|
|
16213
16417
|
return (key) => new MultiFilter(key, props);
|
|
16214
16418
|
}
|
|
@@ -16218,7 +16422,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16218
16422
|
const { disabledOptions } = this.props;
|
|
16219
16423
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
16220
16424
|
const disabledKeys = Object.keys(disabledOptionsWithReasons);
|
|
16221
|
-
return /* @__PURE__ */
|
|
16425
|
+
return /* @__PURE__ */ jsx139(
|
|
16222
16426
|
ToggleChipGroup,
|
|
16223
16427
|
{
|
|
16224
16428
|
label: this.label,
|
|
@@ -16242,7 +16446,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16242
16446
|
);
|
|
16243
16447
|
}
|
|
16244
16448
|
const { defaultValue, nothingSelectedText, ...props } = this.props;
|
|
16245
|
-
return /* @__PURE__ */
|
|
16449
|
+
return /* @__PURE__ */ jsx139(
|
|
16246
16450
|
MultiSelectField,
|
|
16247
16451
|
{
|
|
16248
16452
|
...props,
|
|
@@ -16262,7 +16466,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16262
16466
|
};
|
|
16263
16467
|
|
|
16264
16468
|
// src/components/Filters/NumberRangeFilter.tsx
|
|
16265
|
-
import { Fragment as
|
|
16469
|
+
import { Fragment as Fragment27, jsx as jsx140, jsxs as jsxs68 } from "@emotion/react/jsx-runtime";
|
|
16266
16470
|
function numberRangeFilter(props) {
|
|
16267
16471
|
return (key) => new NumberRangeFilter(key, props);
|
|
16268
16472
|
}
|
|
@@ -16271,10 +16475,10 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16271
16475
|
const { label, numberFieldType, numberFormatOptions } = this.props;
|
|
16272
16476
|
const min = value?.min ?? void 0;
|
|
16273
16477
|
const max = value?.max ?? void 0;
|
|
16274
|
-
return /* @__PURE__ */
|
|
16275
|
-
vertical && /* @__PURE__ */
|
|
16276
|
-
/* @__PURE__ */
|
|
16277
|
-
/* @__PURE__ */
|
|
16478
|
+
return /* @__PURE__ */ jsxs68(Fragment27, { children: [
|
|
16479
|
+
vertical && /* @__PURE__ */ jsxs68("div", { ...tid, children: [
|
|
16480
|
+
/* @__PURE__ */ jsx140(Label, { label }),
|
|
16481
|
+
/* @__PURE__ */ jsx140("div", { css: Css.pb1.$, children: /* @__PURE__ */ jsx140(
|
|
16278
16482
|
NumberField,
|
|
16279
16483
|
{
|
|
16280
16484
|
labelStyle: "inline",
|
|
@@ -16290,7 +16494,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16290
16494
|
...tid[`${defaultTestId(label)}_min_vertical`]
|
|
16291
16495
|
}
|
|
16292
16496
|
) }),
|
|
16293
|
-
/* @__PURE__ */
|
|
16497
|
+
/* @__PURE__ */ jsx140(
|
|
16294
16498
|
NumberField,
|
|
16295
16499
|
{
|
|
16296
16500
|
labelStyle: "inline",
|
|
@@ -16307,8 +16511,8 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16307
16511
|
}
|
|
16308
16512
|
)
|
|
16309
16513
|
] }),
|
|
16310
|
-
!vertical && /* @__PURE__ */
|
|
16311
|
-
/* @__PURE__ */
|
|
16514
|
+
!vertical && /* @__PURE__ */ jsxs68(CompoundField, { ...tid, children: [
|
|
16515
|
+
/* @__PURE__ */ jsx140(
|
|
16312
16516
|
NumberField,
|
|
16313
16517
|
{
|
|
16314
16518
|
compact: true,
|
|
@@ -16326,7 +16530,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16326
16530
|
...tid[`${defaultTestId(label)}_min`]
|
|
16327
16531
|
}
|
|
16328
16532
|
),
|
|
16329
|
-
/* @__PURE__ */
|
|
16533
|
+
/* @__PURE__ */ jsx140(
|
|
16330
16534
|
NumberField,
|
|
16331
16535
|
{
|
|
16332
16536
|
compact: true,
|
|
@@ -16350,7 +16554,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16350
16554
|
};
|
|
16351
16555
|
|
|
16352
16556
|
// src/components/Filters/SingleFilter.tsx
|
|
16353
|
-
import { jsx as
|
|
16557
|
+
import { jsx as jsx141 } from "@emotion/react/jsx-runtime";
|
|
16354
16558
|
function singleFilter(props) {
|
|
16355
16559
|
return (key) => new SingleFilter(key, props);
|
|
16356
16560
|
}
|
|
@@ -16367,7 +16571,7 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16367
16571
|
...props
|
|
16368
16572
|
} = this.props;
|
|
16369
16573
|
const options = Array.isArray(maybeOptions) ? [allOption, ...maybeOptions] : { ...maybeOptions, current: maybeOptions.current };
|
|
16370
|
-
return /* @__PURE__ */
|
|
16574
|
+
return /* @__PURE__ */ jsx141(
|
|
16371
16575
|
SelectField,
|
|
16372
16576
|
{
|
|
16373
16577
|
...props,
|
|
@@ -16388,14 +16592,14 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16388
16592
|
};
|
|
16389
16593
|
|
|
16390
16594
|
// src/components/Filters/TreeFilter.tsx
|
|
16391
|
-
import { jsx as
|
|
16595
|
+
import { jsx as jsx142 } from "@emotion/react/jsx-runtime";
|
|
16392
16596
|
function treeFilter(props) {
|
|
16393
16597
|
return (key) => new TreeFilter(key, props);
|
|
16394
16598
|
}
|
|
16395
16599
|
var TreeFilter = class extends BaseFilter {
|
|
16396
16600
|
render(value, setValue, tid, inModal, vertical) {
|
|
16397
16601
|
const { defaultValue, nothingSelectedText, filterBy = "root", ...props } = this.props;
|
|
16398
|
-
return /* @__PURE__ */
|
|
16602
|
+
return /* @__PURE__ */ jsx142(
|
|
16399
16603
|
TreeSelectField,
|
|
16400
16604
|
{
|
|
16401
16605
|
...props,
|
|
@@ -16416,14 +16620,14 @@ var TreeFilter = class extends BaseFilter {
|
|
|
16416
16620
|
};
|
|
16417
16621
|
|
|
16418
16622
|
// src/components/Filters/BooleanFilter.tsx
|
|
16419
|
-
import { jsx as
|
|
16623
|
+
import { jsx as jsx143 } from "@emotion/react/jsx-runtime";
|
|
16420
16624
|
function booleanFilter(props) {
|
|
16421
16625
|
return (key) => new BooleanFilter(key, props);
|
|
16422
16626
|
}
|
|
16423
16627
|
var BooleanFilter = class extends BaseFilter {
|
|
16424
16628
|
render(value, setValue, tid, inModal, vertical) {
|
|
16425
16629
|
const { options = defaultBooleanOptions, label, defaultValue, ...props } = this.props;
|
|
16426
|
-
return /* @__PURE__ */
|
|
16630
|
+
return /* @__PURE__ */ jsx143(
|
|
16427
16631
|
SelectField,
|
|
16428
16632
|
{
|
|
16429
16633
|
...props,
|
|
@@ -16451,7 +16655,7 @@ var defaultBooleanOptions = [
|
|
|
16451
16655
|
];
|
|
16452
16656
|
|
|
16453
16657
|
// src/components/Filters/CheckboxFilter.tsx
|
|
16454
|
-
import { jsx as
|
|
16658
|
+
import { jsx as jsx144 } from "@emotion/react/jsx-runtime";
|
|
16455
16659
|
function checkboxFilter(props) {
|
|
16456
16660
|
return (key) => new CheckboxFilter(key, {
|
|
16457
16661
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16462,7 +16666,7 @@ function checkboxFilter(props) {
|
|
|
16462
16666
|
var CheckboxFilter = class extends BaseFilter {
|
|
16463
16667
|
render(value, setValue, tid, inModal, vertical) {
|
|
16464
16668
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16465
|
-
return /* @__PURE__ */
|
|
16669
|
+
return /* @__PURE__ */ jsx144(
|
|
16466
16670
|
Checkbox,
|
|
16467
16671
|
{
|
|
16468
16672
|
...props,
|
|
@@ -16481,11 +16685,11 @@ var CheckboxFilter = class extends BaseFilter {
|
|
|
16481
16685
|
};
|
|
16482
16686
|
|
|
16483
16687
|
// src/components/Filters/FilterModal.tsx
|
|
16484
|
-
import { useState as
|
|
16688
|
+
import { useState as useState37 } from "react";
|
|
16485
16689
|
|
|
16486
16690
|
// src/components/Modal/OpenModal.tsx
|
|
16487
16691
|
import { useEffect as useEffect25 } from "react";
|
|
16488
|
-
import { jsx as
|
|
16692
|
+
import { jsx as jsx145 } from "@emotion/react/jsx-runtime";
|
|
16489
16693
|
function OpenModal(props) {
|
|
16490
16694
|
const { openModal } = useModal();
|
|
16491
16695
|
const { size, children, keepOpen } = props;
|
|
@@ -16495,30 +16699,30 @@ function OpenModal(props) {
|
|
|
16495
16699
|
}
|
|
16496
16700
|
}, [keepOpen, openModal, size, children]);
|
|
16497
16701
|
if (keepOpen) {
|
|
16498
|
-
return /* @__PURE__ */
|
|
16702
|
+
return /* @__PURE__ */ jsx145(Modal, { size, content: children });
|
|
16499
16703
|
} else {
|
|
16500
|
-
return /* @__PURE__ */
|
|
16704
|
+
return /* @__PURE__ */ jsx145("div", { children: "dummy content" });
|
|
16501
16705
|
}
|
|
16502
16706
|
}
|
|
16503
16707
|
|
|
16504
16708
|
// src/components/Filters/FilterModal.tsx
|
|
16505
|
-
import { Fragment as
|
|
16709
|
+
import { Fragment as Fragment28, jsx as jsx146, jsxs as jsxs69 } from "@emotion/react/jsx-runtime";
|
|
16506
16710
|
function FilterModal(props) {
|
|
16507
16711
|
const { filter, filters, onApply } = props;
|
|
16508
16712
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16509
16713
|
const { closeModal } = useModal();
|
|
16510
|
-
const [modalFilter, setModalFilter] =
|
|
16511
|
-
return /* @__PURE__ */
|
|
16512
|
-
/* @__PURE__ */
|
|
16513
|
-
/* @__PURE__ */
|
|
16714
|
+
const [modalFilter, setModalFilter] = useState37(filter);
|
|
16715
|
+
return /* @__PURE__ */ jsxs69(Fragment28, { children: [
|
|
16716
|
+
/* @__PURE__ */ jsx146(ModalHeader, { children: "More Filters" }),
|
|
16717
|
+
/* @__PURE__ */ jsx146(ModalBody, { children: /* @__PURE__ */ jsx146("div", { css: Css.df.fdc.$, children: safeEntries(filters).map(([key, f]) => /* @__PURE__ */ jsx146(ModalFilterItem, { label: f.hideLabelInModal ? void 0 : f.label, children: f.render(
|
|
16514
16718
|
modalFilter[key],
|
|
16515
16719
|
(value) => setModalFilter(updateFilter(modalFilter, key, value)),
|
|
16516
16720
|
testId,
|
|
16517
16721
|
true,
|
|
16518
16722
|
false
|
|
16519
16723
|
) }, key)) }) }),
|
|
16520
|
-
/* @__PURE__ */
|
|
16521
|
-
/* @__PURE__ */
|
|
16724
|
+
/* @__PURE__ */ jsxs69(ModalFooter, { xss: Css.jcsb.$, children: [
|
|
16725
|
+
/* @__PURE__ */ jsx146(
|
|
16522
16726
|
Button,
|
|
16523
16727
|
{
|
|
16524
16728
|
label: "Clear",
|
|
@@ -16531,9 +16735,9 @@ function FilterModal(props) {
|
|
|
16531
16735
|
...testId.modalClear
|
|
16532
16736
|
}
|
|
16533
16737
|
),
|
|
16534
|
-
/* @__PURE__ */
|
|
16535
|
-
/* @__PURE__ */
|
|
16536
|
-
/* @__PURE__ */
|
|
16738
|
+
/* @__PURE__ */ jsxs69("div", { css: Css.df.gap1.$, children: [
|
|
16739
|
+
/* @__PURE__ */ jsx146(Button, { label: "Cancel", variant: "tertiary", onClick: closeModal, ...testId.modalClose }),
|
|
16740
|
+
/* @__PURE__ */ jsx146(
|
|
16537
16741
|
Button,
|
|
16538
16742
|
{
|
|
16539
16743
|
label: "Apply",
|
|
@@ -16549,20 +16753,20 @@ function FilterModal(props) {
|
|
|
16549
16753
|
] });
|
|
16550
16754
|
}
|
|
16551
16755
|
function ModalFilterItem({ label, children }) {
|
|
16552
|
-
return /* @__PURE__ */
|
|
16553
|
-
label && /* @__PURE__ */
|
|
16554
|
-
/* @__PURE__ */
|
|
16756
|
+
return /* @__PURE__ */ jsxs69("div", { css: Css.mb4.if(!label).bt.bcGray200.$, children: [
|
|
16757
|
+
label && /* @__PURE__ */ jsx146("h2", { css: Css.baseMd.mb2.$, children: label }),
|
|
16758
|
+
/* @__PURE__ */ jsx146("div", { css: Css.if(!label).pt3.$, children })
|
|
16555
16759
|
] });
|
|
16556
16760
|
}
|
|
16557
16761
|
|
|
16558
16762
|
// src/components/Filters/Filters.tsx
|
|
16559
|
-
import { memo, useMemo as
|
|
16560
|
-
import { jsx as
|
|
16763
|
+
import { memo, useMemo as useMemo35 } from "react";
|
|
16764
|
+
import { jsx as jsx147, jsxs as jsxs70 } from "@emotion/react/jsx-runtime";
|
|
16561
16765
|
function Filters(props) {
|
|
16562
16766
|
const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
|
|
16563
16767
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16564
16768
|
const { openModal } = useModal();
|
|
16565
|
-
const [pageFilters, modalFilters] =
|
|
16769
|
+
const [pageFilters, modalFilters] = useMemo35(() => {
|
|
16566
16770
|
const impls = safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]);
|
|
16567
16771
|
if (!vertical && impls.length > numberOfInlineFilters) {
|
|
16568
16772
|
return [
|
|
@@ -16573,7 +16777,7 @@ function Filters(props) {
|
|
|
16573
16777
|
return [Object.fromEntries(impls), {}];
|
|
16574
16778
|
}, [numberOfInlineFilters, vertical, filterDefs]);
|
|
16575
16779
|
const numModalFilters = safeKeys(modalFilters).filter((fk) => filter[fk] !== void 0).length;
|
|
16576
|
-
const maybeGroupByField = groupBy ? /* @__PURE__ */
|
|
16780
|
+
const maybeGroupByField = groupBy ? /* @__PURE__ */ jsx147("div", { children: /* @__PURE__ */ jsx147(
|
|
16577
16781
|
SelectField,
|
|
16578
16782
|
{
|
|
16579
16783
|
label: "Group by",
|
|
@@ -16587,7 +16791,7 @@ function Filters(props) {
|
|
|
16587
16791
|
onSelect: (g) => g && groupBy.setValue(g)
|
|
16588
16792
|
}
|
|
16589
16793
|
) }) : null;
|
|
16590
|
-
return /* @__PURE__ */
|
|
16794
|
+
return /* @__PURE__ */ jsxs70(
|
|
16591
16795
|
"div",
|
|
16592
16796
|
{
|
|
16593
16797
|
css: {
|
|
@@ -16596,21 +16800,21 @@ function Filters(props) {
|
|
|
16596
16800
|
...testId,
|
|
16597
16801
|
children: [
|
|
16598
16802
|
maybeGroupByField,
|
|
16599
|
-
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */
|
|
16600
|
-
Object.keys(modalFilters).length > 0 && /* @__PURE__ */
|
|
16803
|
+
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */ jsx147("div", { children: f.render(filter[key], (value) => onChange(updateFilter(filter, key, value)), testId, false, vertical) }, key)),
|
|
16804
|
+
Object.keys(modalFilters).length > 0 && /* @__PURE__ */ jsx147(
|
|
16601
16805
|
Button,
|
|
16602
16806
|
{
|
|
16603
16807
|
label: "More Filters",
|
|
16604
|
-
endAdornment: numModalFilters > 0 && /* @__PURE__ */
|
|
16808
|
+
endAdornment: numModalFilters > 0 && /* @__PURE__ */ jsx147("span", { css: Css.wPx(16).hPx(16).fs0.br100.bgBlue700.white.tinySb.df.aic.jcc.$, children: numModalFilters }),
|
|
16605
16809
|
variant: "secondary",
|
|
16606
16810
|
onClick: () => openModal({
|
|
16607
16811
|
// Spreading `props` to pass along `data-testid`
|
|
16608
|
-
content: /* @__PURE__ */
|
|
16812
|
+
content: /* @__PURE__ */ jsx147(FilterModal, { ...props, filter, onApply: onChange, filters: modalFilters })
|
|
16609
16813
|
}),
|
|
16610
16814
|
...testId.moreFiltersBtn
|
|
16611
16815
|
}
|
|
16612
16816
|
),
|
|
16613
|
-
Object.keys(filter).length > 0 && /* @__PURE__ */
|
|
16817
|
+
Object.keys(filter).length > 0 && /* @__PURE__ */ jsx147("div", { children: /* @__PURE__ */ jsx147(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) })
|
|
16614
16818
|
]
|
|
16615
16819
|
}
|
|
16616
16820
|
);
|
|
@@ -16618,7 +16822,7 @@ function Filters(props) {
|
|
|
16618
16822
|
var _Filters = memo(Filters);
|
|
16619
16823
|
|
|
16620
16824
|
// src/components/Filters/ToggleFilter.tsx
|
|
16621
|
-
import { jsx as
|
|
16825
|
+
import { jsx as jsx148 } from "@emotion/react/jsx-runtime";
|
|
16622
16826
|
function toggleFilter(props) {
|
|
16623
16827
|
return (key) => new ToggleFilter(key, {
|
|
16624
16828
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16629,7 +16833,7 @@ function toggleFilter(props) {
|
|
|
16629
16833
|
var ToggleFilter = class extends BaseFilter {
|
|
16630
16834
|
render(value, setValue, tid, inModal, vertical) {
|
|
16631
16835
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16632
|
-
return /* @__PURE__ */
|
|
16836
|
+
return /* @__PURE__ */ jsx148(
|
|
16633
16837
|
Switch,
|
|
16634
16838
|
{
|
|
16635
16839
|
...props,
|
|
@@ -16659,23 +16863,23 @@ function updateFilter(currentFilter, key, value) {
|
|
|
16659
16863
|
var filterTestIdPrefix = "filter";
|
|
16660
16864
|
|
|
16661
16865
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
16662
|
-
import { jsx as
|
|
16866
|
+
import { jsx as jsx149 } from "@emotion/react/jsx-runtime";
|
|
16663
16867
|
function ResponsiveGrid(props) {
|
|
16664
16868
|
const { children, ...hookProps } = props;
|
|
16665
16869
|
const { gridStyles } = useResponsiveGrid(hookProps);
|
|
16666
|
-
return /* @__PURE__ */
|
|
16870
|
+
return /* @__PURE__ */ jsx149("div", { css: { ...gridStyles }, children });
|
|
16667
16871
|
}
|
|
16668
16872
|
|
|
16669
16873
|
// src/components/Grid/ResponsiveGridItem.tsx
|
|
16670
|
-
import { jsx as
|
|
16874
|
+
import { jsx as jsx150 } from "@emotion/react/jsx-runtime";
|
|
16671
16875
|
function ResponsiveGridItem(props) {
|
|
16672
16876
|
const { colSpan, children } = props;
|
|
16673
16877
|
const { gridItemProps } = useResponsiveGridItem({ colSpan });
|
|
16674
|
-
return /* @__PURE__ */
|
|
16878
|
+
return /* @__PURE__ */ jsx150("div", { ...gridItemProps, children });
|
|
16675
16879
|
}
|
|
16676
16880
|
|
|
16677
16881
|
// src/components/Grid/useResponsiveGrid.ts
|
|
16678
|
-
import { useMemo as
|
|
16882
|
+
import { useMemo as useMemo36 } from "react";
|
|
16679
16883
|
|
|
16680
16884
|
// src/components/Grid/utils.ts
|
|
16681
16885
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
@@ -16683,7 +16887,7 @@ var gridItemDataAttribute = "data-grid-item-span";
|
|
|
16683
16887
|
// src/components/Grid/useResponsiveGrid.ts
|
|
16684
16888
|
function useResponsiveGrid(props) {
|
|
16685
16889
|
const { minColumnWidth, gap, columns } = props;
|
|
16686
|
-
const gridStyles =
|
|
16890
|
+
const gridStyles = useMemo36(() => {
|
|
16687
16891
|
const gapCount = columns - 1;
|
|
16688
16892
|
const totalGapWidth = gap * gapCount;
|
|
16689
16893
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -16724,24 +16928,24 @@ function useResponsiveGridItem({ colSpan = 1 }) {
|
|
|
16724
16928
|
}
|
|
16725
16929
|
|
|
16726
16930
|
// src/components/HbLoadingSpinner.tsx
|
|
16727
|
-
import React19, { useContext as useContext17, useMemo as
|
|
16931
|
+
import React19, { useContext as useContext17, useMemo as useMemo37 } from "react";
|
|
16728
16932
|
|
|
16729
16933
|
// src/components/HbLoadingSpinner.base64.ts
|
|
16730
16934
|
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";
|
|
16731
16935
|
|
|
16732
16936
|
// src/components/HbLoadingSpinner.tsx
|
|
16733
|
-
import { jsx as
|
|
16937
|
+
import { jsx as jsx151, jsxs as jsxs71 } from "@emotion/react/jsx-runtime";
|
|
16734
16938
|
function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }) {
|
|
16735
16939
|
const ctx = useContext17(HbLoadingSpinnerContext);
|
|
16736
16940
|
const tid = useTestIds({}, "hbSpinner");
|
|
16737
|
-
const quip =
|
|
16941
|
+
const quip = useMemo37(() => {
|
|
16738
16942
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
16739
16943
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
16740
16944
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
16741
16945
|
return allQuips[Math.floor(Math.random() * allQuips.length)];
|
|
16742
16946
|
}, [ctx.noQuips, ctx.quips, extraQuips, extraQuipsOnly, noQuips]);
|
|
16743
|
-
return /* @__PURE__ */
|
|
16744
|
-
/* @__PURE__ */
|
|
16947
|
+
return /* @__PURE__ */ jsxs71("div", { css: Css.df.fdc.jcc.aic.$, ...tid, children: [
|
|
16948
|
+
/* @__PURE__ */ jsx151(
|
|
16745
16949
|
"img",
|
|
16746
16950
|
{
|
|
16747
16951
|
src: HbLoadingSpinner_base64_default,
|
|
@@ -16754,7 +16958,7 @@ function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }
|
|
|
16754
16958
|
...tid.gif
|
|
16755
16959
|
}
|
|
16756
16960
|
),
|
|
16757
|
-
!iconOnly && /* @__PURE__ */
|
|
16961
|
+
!iconOnly && /* @__PURE__ */ jsx151(
|
|
16758
16962
|
"div",
|
|
16759
16963
|
{
|
|
16760
16964
|
"data-chromatic": "ignore",
|
|
@@ -16779,12 +16983,12 @@ var HbLoadingSpinnerContext = React19.createContext({
|
|
|
16779
16983
|
noQuips: false
|
|
16780
16984
|
});
|
|
16781
16985
|
function HbSpinnerProvider({ quips = [], children }) {
|
|
16782
|
-
const state =
|
|
16783
|
-
return /* @__PURE__ */
|
|
16986
|
+
const state = useMemo37(() => ({ quips, noQuips: quips.length === 0 }), [quips]);
|
|
16987
|
+
return /* @__PURE__ */ jsx151(HbLoadingSpinnerContext.Provider, { value: state, children });
|
|
16784
16988
|
}
|
|
16785
16989
|
|
|
16786
16990
|
// src/components/LoadingSkeleton.tsx
|
|
16787
|
-
import { jsx as
|
|
16991
|
+
import { jsx as jsx152 } from "@emotion/react/jsx-runtime";
|
|
16788
16992
|
function LoadingSkeleton({
|
|
16789
16993
|
rows = 1,
|
|
16790
16994
|
columns = 1,
|
|
@@ -16797,7 +17001,7 @@ function LoadingSkeleton({
|
|
|
16797
17001
|
const rowHeight = sizeToPixels2[size];
|
|
16798
17002
|
const rowCells = (rowNumber) => {
|
|
16799
17003
|
const flexGrowForCell = randomizeWidths ? getRandomizedFlexBasisByRowIndex(rowNumber) : 1;
|
|
16800
|
-
return cellArray.map((_, i) => /* @__PURE__ */
|
|
17004
|
+
return cellArray.map((_, i) => /* @__PURE__ */ jsx152(
|
|
16801
17005
|
"div",
|
|
16802
17006
|
{
|
|
16803
17007
|
css: Css.br4.add("animation", "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite").add("flexGrow", flexGrowForCell).bgGray300.if(contrast).bgGray700.$
|
|
@@ -16805,7 +17009,7 @@ function LoadingSkeleton({
|
|
|
16805
17009
|
`row-${rowNumber}-cell-${i}`
|
|
16806
17010
|
));
|
|
16807
17011
|
};
|
|
16808
|
-
return /* @__PURE__ */
|
|
17012
|
+
return /* @__PURE__ */ jsx152("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ jsx152("div", { css: Css.df.gap1.mb1.hPx(rowHeight).$, children: rowCells(i) }, `row-${i}`)) });
|
|
16809
17013
|
}
|
|
16810
17014
|
function getRandomizedFlexBasisByRowIndex(rowIndex) {
|
|
16811
17015
|
const randomizedFlexBasisValues = [0.65, 0.8, 0.75, 0.9, 0.8, 0.85, 0.8, 0.95];
|
|
@@ -16819,13 +17023,13 @@ var sizeToPixels2 = {
|
|
|
16819
17023
|
};
|
|
16820
17024
|
|
|
16821
17025
|
// src/components/MaxLines.tsx
|
|
16822
|
-
import { useLayoutEffect as useLayoutEffect2, useResizeObserver as
|
|
16823
|
-
import { useCallback as
|
|
16824
|
-
import { jsx as
|
|
17026
|
+
import { useLayoutEffect as useLayoutEffect2, useResizeObserver as useResizeObserver5 } from "@react-aria/utils";
|
|
17027
|
+
import { useCallback as useCallback21, useEffect as useEffect26, useRef as useRef49, useState as useState38 } from "react";
|
|
17028
|
+
import { jsx as jsx153, jsxs as jsxs72 } from "@emotion/react/jsx-runtime";
|
|
16825
17029
|
function MaxLines({ maxLines, children }) {
|
|
16826
|
-
const elRef =
|
|
16827
|
-
const [hasMore, setHasMore] =
|
|
16828
|
-
const [expanded, setExpanded] =
|
|
17030
|
+
const elRef = useRef49(null);
|
|
17031
|
+
const [hasMore, setHasMore] = useState38(false);
|
|
17032
|
+
const [expanded, setExpanded] = useState38(false);
|
|
16829
17033
|
useLayoutEffect2(() => {
|
|
16830
17034
|
if (!elRef.current) return;
|
|
16831
17035
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
@@ -16833,19 +17037,19 @@ function MaxLines({ maxLines, children }) {
|
|
|
16833
17037
|
useEffect26(() => {
|
|
16834
17038
|
setExpanded(false);
|
|
16835
17039
|
}, [children]);
|
|
16836
|
-
const onResize =
|
|
17040
|
+
const onResize = useCallback21(() => {
|
|
16837
17041
|
if (!elRef.current) return;
|
|
16838
17042
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
16839
17043
|
}, [expanded]);
|
|
16840
|
-
|
|
16841
|
-
return /* @__PURE__ */
|
|
16842
|
-
/* @__PURE__ */
|
|
16843
|
-
hasMore && /* @__PURE__ */
|
|
17044
|
+
useResizeObserver5({ ref: elRef, onResize });
|
|
17045
|
+
return /* @__PURE__ */ jsxs72("div", { children: [
|
|
17046
|
+
/* @__PURE__ */ jsx153("div", { ref: elRef, css: Css.if(!expanded).lineClamp(maxLines).$, children }),
|
|
17047
|
+
hasMore && /* @__PURE__ */ jsx153("button", { css: Css.db.smMd.$, onClick: () => setExpanded((prev) => !prev), children: expanded ? "Show Less" : "Show More" })
|
|
16844
17048
|
] });
|
|
16845
17049
|
}
|
|
16846
17050
|
|
|
16847
17051
|
// src/components/Pagination.tsx
|
|
16848
|
-
import { jsx as
|
|
17052
|
+
import { jsx as jsx154, jsxs as jsxs73 } from "@emotion/react/jsx-runtime";
|
|
16849
17053
|
var defaultPage = { offset: 0, limit: 100 };
|
|
16850
17054
|
function Pagination(props) {
|
|
16851
17055
|
const { totalCount, pageSizes = [100, 500, 1e3] } = props;
|
|
@@ -16865,9 +17069,9 @@ function Pagination(props) {
|
|
|
16865
17069
|
}
|
|
16866
17070
|
}
|
|
16867
17071
|
const tid = useTestIds(props, "pagination");
|
|
16868
|
-
return /* @__PURE__ */
|
|
16869
|
-
/* @__PURE__ */
|
|
16870
|
-
/* @__PURE__ */
|
|
17072
|
+
return /* @__PURE__ */ jsxs73("div", { css: Css.df.bcGray200.bt.xs.gray500.px2.pt2.$, ...tid, children: [
|
|
17073
|
+
/* @__PURE__ */ jsx154("div", { css: Css.df.mya.mr2.$, ...tid.pageSizeLabel, children: "Page size:" }),
|
|
17074
|
+
/* @__PURE__ */ jsx154("div", { css: Css.wPx(78).$, children: /* @__PURE__ */ jsx154(
|
|
16871
17075
|
SelectField,
|
|
16872
17076
|
{
|
|
16873
17077
|
compact: true,
|
|
@@ -16879,15 +17083,15 @@ function Pagination(props) {
|
|
|
16879
17083
|
...tid.pageSize
|
|
16880
17084
|
}
|
|
16881
17085
|
) }),
|
|
16882
|
-
/* @__PURE__ */
|
|
16883
|
-
/* @__PURE__ */
|
|
17086
|
+
/* @__PURE__ */ jsxs73("div", { css: Css.mla.mya.df.$, children: [
|
|
17087
|
+
/* @__PURE__ */ jsxs73("div", { css: Css.df.mya.mr2.$, ...tid.pageInfoLabel, children: [
|
|
16884
17088
|
first,
|
|
16885
17089
|
" ",
|
|
16886
17090
|
showLast ? `- ${last}` : "",
|
|
16887
17091
|
" of ",
|
|
16888
17092
|
totalCount
|
|
16889
17093
|
] }),
|
|
16890
|
-
/* @__PURE__ */
|
|
17094
|
+
/* @__PURE__ */ jsx154(
|
|
16891
17095
|
IconButton,
|
|
16892
17096
|
{
|
|
16893
17097
|
icon: "chevronLeft",
|
|
@@ -16897,7 +17101,7 @@ function Pagination(props) {
|
|
|
16897
17101
|
...tid.previousIcon
|
|
16898
17102
|
}
|
|
16899
17103
|
),
|
|
16900
|
-
/* @__PURE__ */
|
|
17104
|
+
/* @__PURE__ */ jsx154(
|
|
16901
17105
|
IconButton,
|
|
16902
17106
|
{
|
|
16903
17107
|
icon: "chevronRight",
|
|
@@ -16925,20 +17129,20 @@ function toPageNumberSize(page) {
|
|
|
16925
17129
|
}
|
|
16926
17130
|
|
|
16927
17131
|
// src/components/ScrollShadows.tsx
|
|
16928
|
-
import { useResizeObserver as
|
|
16929
|
-
import { useCallback as
|
|
16930
|
-
import { jsx as
|
|
17132
|
+
import { useResizeObserver as useResizeObserver6 } from "@react-aria/utils";
|
|
17133
|
+
import { useCallback as useCallback22, useMemo as useMemo38, useRef as useRef50, useState as useState39 } from "react";
|
|
17134
|
+
import { jsx as jsx155, jsxs as jsxs74 } from "@emotion/react/jsx-runtime";
|
|
16931
17135
|
function ScrollShadows(props) {
|
|
16932
17136
|
const { children, xss, horizontal = false, bgColor = "rgba(255,255,255,1)" /* White */ } = props;
|
|
16933
|
-
const { height = "auto", width = "auto" } = xss ?? {};
|
|
17137
|
+
const { height = "auto", width: width2 = "auto" } = xss ?? {};
|
|
16934
17138
|
const tid = useTestIds(props);
|
|
16935
17139
|
if (!bgColor.includes("rgba")) {
|
|
16936
17140
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
16937
17141
|
}
|
|
16938
|
-
const [showStartShadow, setShowStartShadow] =
|
|
16939
|
-
const [showEndShadow, setShowEndShadow] =
|
|
16940
|
-
const scrollRef =
|
|
16941
|
-
const [startShadowStyles, endShadowStyles] =
|
|
17142
|
+
const [showStartShadow, setShowStartShadow] = useState39(false);
|
|
17143
|
+
const [showEndShadow, setShowEndShadow] = useState39(false);
|
|
17144
|
+
const scrollRef = useRef50(null);
|
|
17145
|
+
const [startShadowStyles, endShadowStyles] = useMemo38(() => {
|
|
16942
17146
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
16943
17147
|
const commonStyles = Css.absolute.z3.add({ pointerEvents: "none" }).$;
|
|
16944
17148
|
const startShadowStyles2 = !horizontal ? Css.top0.left0.right0.hPx(40).$ : Css.left0.top0.bottom0.wPx(25).$;
|
|
@@ -16950,7 +17154,7 @@ function ScrollShadows(props) {
|
|
|
16950
17154
|
{ ...commonStyles, ...endShadowStyles2, ...Css.add("background", endGradient).$ }
|
|
16951
17155
|
];
|
|
16952
17156
|
}, [horizontal, bgColor]);
|
|
16953
|
-
const updateScrollProps =
|
|
17157
|
+
const updateScrollProps = useCallback22(
|
|
16954
17158
|
(el) => {
|
|
16955
17159
|
const { scrollTop, scrollHeight, clientHeight, scrollWidth, scrollLeft, clientWidth } = el;
|
|
16956
17160
|
const start = horizontal ? scrollLeft : scrollTop;
|
|
@@ -16961,17 +17165,17 @@ function ScrollShadows(props) {
|
|
|
16961
17165
|
},
|
|
16962
17166
|
[horizontal]
|
|
16963
17167
|
);
|
|
16964
|
-
const onResize =
|
|
16965
|
-
|
|
16966
|
-
return /* @__PURE__ */
|
|
17168
|
+
const onResize = useCallback22(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
17169
|
+
useResizeObserver6({ ref: scrollRef, onResize });
|
|
17170
|
+
return /* @__PURE__ */ jsxs74(
|
|
16967
17171
|
"div",
|
|
16968
17172
|
{
|
|
16969
|
-
css: Css.relative.oh.h(height).w(
|
|
17173
|
+
css: Css.relative.oh.h(height).w(width2).df.fd(!horizontal ? "column" : "row").$,
|
|
16970
17174
|
...tid,
|
|
16971
17175
|
children: [
|
|
16972
|
-
/* @__PURE__ */
|
|
16973
|
-
/* @__PURE__ */
|
|
16974
|
-
/* @__PURE__ */
|
|
17176
|
+
/* @__PURE__ */ jsx155("div", { css: { ...startShadowStyles, opacity: showStartShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17177
|
+
/* @__PURE__ */ jsx155("div", { css: { ...endShadowStyles, opacity: showEndShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17178
|
+
/* @__PURE__ */ jsx155(
|
|
16975
17179
|
"div",
|
|
16976
17180
|
{
|
|
16977
17181
|
css: {
|
|
@@ -16989,10 +17193,10 @@ function ScrollShadows(props) {
|
|
|
16989
17193
|
}
|
|
16990
17194
|
|
|
16991
17195
|
// src/components/Snackbar/useSnackbar.tsx
|
|
16992
|
-
import { useCallback as
|
|
17196
|
+
import { useCallback as useCallback23, useEffect as useEffect27 } from "react";
|
|
16993
17197
|
function useSnackbar() {
|
|
16994
17198
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
16995
|
-
const onClose =
|
|
17199
|
+
const onClose = useCallback23(
|
|
16996
17200
|
(noticeId) => {
|
|
16997
17201
|
setNotices((prev) => {
|
|
16998
17202
|
let returnValue = prev;
|
|
@@ -17009,7 +17213,7 @@ function useSnackbar() {
|
|
|
17009
17213
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17010
17214
|
[]
|
|
17011
17215
|
);
|
|
17012
|
-
const triggerNotice =
|
|
17216
|
+
const triggerNotice = useCallback23(
|
|
17013
17217
|
(props) => {
|
|
17014
17218
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
17015
17219
|
let maybeTimeout;
|
|
@@ -17038,7 +17242,7 @@ function useSnackbar() {
|
|
|
17038
17242
|
},
|
|
17039
17243
|
[onClose, setNotices]
|
|
17040
17244
|
);
|
|
17041
|
-
const closeNotice =
|
|
17245
|
+
const closeNotice = useCallback23((id) => onClose(id), [onClose]);
|
|
17042
17246
|
const useSnackbarOffset = ({ bottom }) => useEffect27(() => {
|
|
17043
17247
|
setOffset({ bottom });
|
|
17044
17248
|
return () => setOffset({});
|
|
@@ -17048,9 +17252,9 @@ function useSnackbar() {
|
|
|
17048
17252
|
var snackbarId = 1;
|
|
17049
17253
|
|
|
17050
17254
|
// src/components/Stepper.tsx
|
|
17051
|
-
import { useRef as
|
|
17052
|
-
import { useButton as useButton11, useFocusRing as useFocusRing14, useHover as
|
|
17053
|
-
import { jsx as
|
|
17255
|
+
import { useRef as useRef51 } from "react";
|
|
17256
|
+
import { useButton as useButton11, useFocusRing as useFocusRing14, useHover as useHover18 } from "react-aria";
|
|
17257
|
+
import { jsx as jsx156, jsxs as jsxs75 } from "@emotion/react/jsx-runtime";
|
|
17054
17258
|
function Stepper(props) {
|
|
17055
17259
|
const { steps, currentStep, onChange } = props;
|
|
17056
17260
|
if (steps.length === 0) {
|
|
@@ -17061,25 +17265,25 @@ function Stepper(props) {
|
|
|
17061
17265
|
const maxStepWidth = 200;
|
|
17062
17266
|
const minStepWidth = 100;
|
|
17063
17267
|
const gap = 8;
|
|
17064
|
-
return /* @__PURE__ */
|
|
17065
|
-
/* @__PURE__ */
|
|
17268
|
+
return /* @__PURE__ */ jsxs75("nav", { "aria-label": "steps", css: Css.df.fdc.w100.$, ...tid, children: [
|
|
17269
|
+
/* @__PURE__ */ jsx156("ol", { css: Css.listReset.df.gapPx(gap).$, children: steps.map((step) => {
|
|
17066
17270
|
const isCurrent = currentStep === step.value;
|
|
17067
|
-
return /* @__PURE__ */
|
|
17271
|
+
return /* @__PURE__ */ jsx156(
|
|
17068
17272
|
"li",
|
|
17069
17273
|
{
|
|
17070
17274
|
css: Css.df.fg1.fdc.maxwPx(maxStepWidth).mwPx(minStepWidth).$,
|
|
17071
17275
|
"aria-current": isCurrent,
|
|
17072
17276
|
...tid.step,
|
|
17073
|
-
children: /* @__PURE__ */
|
|
17277
|
+
children: /* @__PURE__ */ jsx156(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton })
|
|
17074
17278
|
},
|
|
17075
17279
|
step.label
|
|
17076
17280
|
);
|
|
17077
17281
|
}) }),
|
|
17078
|
-
/* @__PURE__ */
|
|
17282
|
+
/* @__PURE__ */ jsx156(
|
|
17079
17283
|
"div",
|
|
17080
17284
|
{
|
|
17081
17285
|
css: Css.mt1.bgGray300.hPx(4).maxwPx(steps.length * maxStepWidth + (steps.length - 1) * gap).mwPx(steps.length * minStepWidth + (steps.length - 1) * gap).w100.$,
|
|
17082
|
-
children: /* @__PURE__ */
|
|
17286
|
+
children: /* @__PURE__ */ jsx156(
|
|
17083
17287
|
"div",
|
|
17084
17288
|
{
|
|
17085
17289
|
css: Css.bgBlue600.add("transition", "width 200ms").h100.w(`${(lastCompletedStep + 1) / steps.length * 100}%`).$
|
|
@@ -17092,13 +17296,13 @@ function Stepper(props) {
|
|
|
17092
17296
|
function StepButton(props) {
|
|
17093
17297
|
const { label, disabled, state, isCurrent, onClick } = props;
|
|
17094
17298
|
const ariaProps = { onPress: onClick, isDisabled: disabled };
|
|
17095
|
-
const ref =
|
|
17299
|
+
const ref = useRef51(null);
|
|
17096
17300
|
const { buttonProps, isPressed } = useButton11(ariaProps, ref);
|
|
17097
17301
|
const { isFocusVisible, focusProps } = useFocusRing14();
|
|
17098
|
-
const { hoverProps, isHovered } =
|
|
17302
|
+
const { hoverProps, isHovered } = useHover18(ariaProps);
|
|
17099
17303
|
const focusRingStyles2 = state === "error" ? Css.bshDanger.$ : Css.bshFocus.$;
|
|
17100
17304
|
const tid = useTestIds(props, "stepButton");
|
|
17101
|
-
return /* @__PURE__ */
|
|
17305
|
+
return /* @__PURE__ */ jsxs75(
|
|
17102
17306
|
"button",
|
|
17103
17307
|
{
|
|
17104
17308
|
ref,
|
|
@@ -17116,7 +17320,7 @@ function StepButton(props) {
|
|
|
17116
17320
|
},
|
|
17117
17321
|
...tid[defaultTestId(label)],
|
|
17118
17322
|
children: [
|
|
17119
|
-
/* @__PURE__ */
|
|
17323
|
+
/* @__PURE__ */ jsx156("span", { css: Css.fs0.mrPx(4).$, children: /* @__PURE__ */ jsx156(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
17120
17324
|
label
|
|
17121
17325
|
]
|
|
17122
17326
|
}
|
|
@@ -17124,12 +17328,12 @@ function StepButton(props) {
|
|
|
17124
17328
|
}
|
|
17125
17329
|
function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = false }) {
|
|
17126
17330
|
if (state === "error") {
|
|
17127
|
-
return /* @__PURE__ */
|
|
17331
|
+
return /* @__PURE__ */ jsx156(Icon, { icon: "errorCircle" });
|
|
17128
17332
|
}
|
|
17129
17333
|
if (state === "complete") {
|
|
17130
|
-
return /* @__PURE__ */
|
|
17334
|
+
return /* @__PURE__ */ jsx156(Icon, { icon: "check" });
|
|
17131
17335
|
}
|
|
17132
|
-
return /* @__PURE__ */
|
|
17336
|
+
return /* @__PURE__ */ jsx156("div", { css: Css.wPx(24).hPx(24).df.aic.jcc.$, children: /* @__PURE__ */ jsx156(
|
|
17133
17337
|
"div",
|
|
17134
17338
|
{
|
|
17135
17339
|
css: Css.wPx(10).hPx(10).ba.bw2.br100.add("color", "currentColor").if(isHovered || isPressed || isCurrent).add("backgroundColor", "currentColor").$
|
|
@@ -17139,7 +17343,7 @@ function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = fal
|
|
|
17139
17343
|
|
|
17140
17344
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
17141
17345
|
import { createPortal as createPortal5 } from "react-dom";
|
|
17142
|
-
import { jsx as
|
|
17346
|
+
import { jsx as jsx157, jsxs as jsxs76 } from "@emotion/react/jsx-runtime";
|
|
17143
17347
|
function SuperDrawerHeader(props) {
|
|
17144
17348
|
const { hideControls } = props;
|
|
17145
17349
|
const { sdHeaderDiv, drawerContentStack: contentStack } = useBeamContext();
|
|
@@ -17149,15 +17353,15 @@ function SuperDrawerHeader(props) {
|
|
|
17149
17353
|
const isDetail = currentContent !== firstContent;
|
|
17150
17354
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
17151
17355
|
return createPortal5(
|
|
17152
|
-
/* @__PURE__ */
|
|
17153
|
-
isStructuredProps(props) ? /* @__PURE__ */
|
|
17154
|
-
/* @__PURE__ */
|
|
17155
|
-
typeof props.title === "string" ? /* @__PURE__ */
|
|
17356
|
+
/* @__PURE__ */ jsxs76("div", { css: Css.df.aic.jcsb.gap3.$, ...tid, children: [
|
|
17357
|
+
isStructuredProps(props) ? /* @__PURE__ */ jsxs76("div", { css: Css.df.jcsb.aic.gap2.fg1.$, children: [
|
|
17358
|
+
/* @__PURE__ */ jsxs76("div", { css: Css.fg1.df.aic.gap2.$, children: [
|
|
17359
|
+
typeof props.title === "string" ? /* @__PURE__ */ jsx157("h1", { children: props.title }) : props.title,
|
|
17156
17360
|
props.left
|
|
17157
17361
|
] }),
|
|
17158
|
-
props.right && /* @__PURE__ */
|
|
17159
|
-
] }) : /* @__PURE__ */
|
|
17160
|
-
!hideControls && /* @__PURE__ */
|
|
17362
|
+
props.right && /* @__PURE__ */ jsx157("div", { css: Css.fs0.$, children: props.right })
|
|
17363
|
+
] }) : /* @__PURE__ */ jsx157("div", { css: Css.fg1.$, children: props.children }),
|
|
17364
|
+
!hideControls && /* @__PURE__ */ jsx157("div", { css: Css.fs0.if(isDetail).vh.$, children: /* @__PURE__ */ jsx157(
|
|
17161
17365
|
ButtonGroup,
|
|
17162
17366
|
{
|
|
17163
17367
|
buttons: [
|
|
@@ -17176,18 +17380,18 @@ function isStructuredProps(props) {
|
|
|
17176
17380
|
}
|
|
17177
17381
|
|
|
17178
17382
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
17179
|
-
import { Fragment as
|
|
17383
|
+
import { Fragment as Fragment29, jsx as jsx158, jsxs as jsxs77 } from "@emotion/react/jsx-runtime";
|
|
17180
17384
|
function ConfirmCloseModal(props) {
|
|
17181
17385
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
17182
17386
|
const { modalState } = useBeamContext();
|
|
17183
17387
|
function closeModal() {
|
|
17184
17388
|
modalState.current = void 0;
|
|
17185
17389
|
}
|
|
17186
|
-
return /* @__PURE__ */
|
|
17187
|
-
/* @__PURE__ */
|
|
17188
|
-
/* @__PURE__ */
|
|
17189
|
-
/* @__PURE__ */
|
|
17190
|
-
/* @__PURE__ */
|
|
17390
|
+
return /* @__PURE__ */ jsxs77(Fragment29, { children: [
|
|
17391
|
+
/* @__PURE__ */ jsx158(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
17392
|
+
/* @__PURE__ */ jsx158(ModalBody, { children: /* @__PURE__ */ jsx158("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
17393
|
+
/* @__PURE__ */ jsxs77(ModalFooter, { children: [
|
|
17394
|
+
/* @__PURE__ */ jsx158(
|
|
17191
17395
|
Button,
|
|
17192
17396
|
{
|
|
17193
17397
|
variant: "tertiary",
|
|
@@ -17198,7 +17402,7 @@ function ConfirmCloseModal(props) {
|
|
|
17198
17402
|
}
|
|
17199
17403
|
}
|
|
17200
17404
|
),
|
|
17201
|
-
/* @__PURE__ */
|
|
17405
|
+
/* @__PURE__ */ jsx158(Button, { label: continueText, onClick: closeModal })
|
|
17202
17406
|
] })
|
|
17203
17407
|
] });
|
|
17204
17408
|
}
|
|
@@ -17207,8 +17411,8 @@ function ConfirmCloseModal(props) {
|
|
|
17207
17411
|
import { motion as motion4 } from "framer-motion";
|
|
17208
17412
|
|
|
17209
17413
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
17210
|
-
import { useMemo as
|
|
17211
|
-
import { jsx as
|
|
17414
|
+
import { useMemo as useMemo39 } from "react";
|
|
17415
|
+
import { jsx as jsx159 } from "@emotion/react/jsx-runtime";
|
|
17212
17416
|
function useSuperDrawer() {
|
|
17213
17417
|
const {
|
|
17214
17418
|
drawerContentStack: contentStack,
|
|
@@ -17220,7 +17424,7 @@ function useSuperDrawer() {
|
|
|
17220
17424
|
function canCloseDrawerDetails(i, doChange) {
|
|
17221
17425
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
17222
17426
|
if (!canClose(canCloseDrawerDetail)) {
|
|
17223
|
-
openModal({ content: /* @__PURE__ */
|
|
17427
|
+
openModal({ content: /* @__PURE__ */ jsx159(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
17224
17428
|
return false;
|
|
17225
17429
|
}
|
|
17226
17430
|
}
|
|
@@ -17240,14 +17444,14 @@ function useSuperDrawer() {
|
|
|
17240
17444
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
17241
17445
|
if (!canClose(canCloseDrawer)) {
|
|
17242
17446
|
openModal({
|
|
17243
|
-
content: /* @__PURE__ */
|
|
17447
|
+
content: /* @__PURE__ */ jsx159(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
17244
17448
|
});
|
|
17245
17449
|
return;
|
|
17246
17450
|
}
|
|
17247
17451
|
}
|
|
17248
17452
|
doChange();
|
|
17249
17453
|
}
|
|
17250
|
-
const closeActions =
|
|
17454
|
+
const closeActions = useMemo39(
|
|
17251
17455
|
() => {
|
|
17252
17456
|
return {
|
|
17253
17457
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -17282,7 +17486,7 @@ function useSuperDrawer() {
|
|
|
17282
17486
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17283
17487
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
17284
17488
|
);
|
|
17285
|
-
const actions =
|
|
17489
|
+
const actions = useMemo39(
|
|
17286
17490
|
() => {
|
|
17287
17491
|
return {
|
|
17288
17492
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -17335,32 +17539,32 @@ function canClose(canCloseCheck) {
|
|
|
17335
17539
|
}
|
|
17336
17540
|
|
|
17337
17541
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
17338
|
-
import { Fragment as
|
|
17542
|
+
import { Fragment as Fragment30, jsx as jsx160, jsxs as jsxs78 } from "@emotion/react/jsx-runtime";
|
|
17339
17543
|
var SuperDrawerContent = ({ children, actions }) => {
|
|
17340
17544
|
const { closeDrawerDetail } = useSuperDrawer();
|
|
17341
17545
|
const { drawerContentStack: contentStack } = useBeamContext();
|
|
17342
17546
|
const { kind } = contentStack.current[contentStack.current.length - 1] ?? {};
|
|
17343
17547
|
const firstContent = contentStack.current[0]?.opts;
|
|
17344
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
17548
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
17345
17549
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
17346
17550
|
if (kind === "open") {
|
|
17347
|
-
return /* @__PURE__ */
|
|
17551
|
+
return /* @__PURE__ */ jsx160(motion4.div, { css: Css.p3.fg1.oa.$, children: children2 }, "content");
|
|
17348
17552
|
} else if (kind === "detail") {
|
|
17349
|
-
return /* @__PURE__ */
|
|
17553
|
+
return /* @__PURE__ */ jsxs78(
|
|
17350
17554
|
motion4.div,
|
|
17351
17555
|
{
|
|
17352
17556
|
css: Css.px3.pt2.pb3.fg1.$,
|
|
17353
17557
|
animate: { overflow: "auto" },
|
|
17354
17558
|
transition: { overflow: { delay: 0.3 } },
|
|
17355
17559
|
children: [
|
|
17356
|
-
/* @__PURE__ */
|
|
17357
|
-
/* @__PURE__ */
|
|
17560
|
+
/* @__PURE__ */ jsx160(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
17561
|
+
/* @__PURE__ */ jsx160(
|
|
17358
17562
|
motion4.div,
|
|
17359
17563
|
{
|
|
17360
|
-
initial: { x:
|
|
17564
|
+
initial: { x: width2, opacity: 0 },
|
|
17361
17565
|
animate: { x: 0, opacity: 1 },
|
|
17362
17566
|
transition: { ease: "linear", duration: 0.3, opacity: { delay: 0.15 } },
|
|
17363
|
-
exit: { x:
|
|
17567
|
+
exit: { x: width2, opacity: 0 },
|
|
17364
17568
|
css: Css.pt2.$,
|
|
17365
17569
|
children: children2
|
|
17366
17570
|
}
|
|
@@ -17370,27 +17574,27 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
17370
17574
|
"content"
|
|
17371
17575
|
);
|
|
17372
17576
|
} else {
|
|
17373
|
-
return /* @__PURE__ */
|
|
17577
|
+
return /* @__PURE__ */ jsx160(motion4.div, { css: Css.p3.fg1.$, style: { overflow: "auto" } }, "content");
|
|
17374
17578
|
}
|
|
17375
17579
|
}
|
|
17376
|
-
return /* @__PURE__ */
|
|
17580
|
+
return /* @__PURE__ */ jsxs78(Fragment30, { children: [
|
|
17377
17581
|
wrapWithMotionAndMaybeBack(children),
|
|
17378
|
-
actions && /* @__PURE__ */
|
|
17582
|
+
actions && /* @__PURE__ */ jsx160("footer", { css: Css.bt.bcGray200.p3.df.aic.jcfe.$, children: /* @__PURE__ */ jsx160("div", { css: Css.df.gap1.$, children: actions.map((buttonProps, i) => /* @__PURE__ */ jsx160(Button, { ...buttonProps }, i)) }) })
|
|
17379
17583
|
] });
|
|
17380
17584
|
};
|
|
17381
17585
|
|
|
17382
17586
|
// src/components/Tabs.tsx
|
|
17383
17587
|
import { camelCase as camelCase5 } from "change-case";
|
|
17384
|
-
import { useEffect as useEffect28, useMemo as
|
|
17385
|
-
import { mergeProps as mergeProps13, useFocusRing as useFocusRing15, useHover as
|
|
17588
|
+
import { useEffect as useEffect28, useMemo as useMemo40, useRef as useRef52, useState as useState40 } from "react";
|
|
17589
|
+
import { mergeProps as mergeProps13, useFocusRing as useFocusRing15, useHover as useHover19 } from "react-aria";
|
|
17386
17590
|
import { matchPath, Route } from "react-router";
|
|
17387
17591
|
import { Link as Link5, useLocation } from "react-router-dom";
|
|
17388
|
-
import { Fragment as
|
|
17592
|
+
import { Fragment as Fragment31, jsx as jsx161, jsxs as jsxs79 } from "@emotion/react/jsx-runtime";
|
|
17389
17593
|
function TabsWithContent(props) {
|
|
17390
17594
|
const styles = hideTabs(props) ? {} : Css.pt3.$;
|
|
17391
|
-
return /* @__PURE__ */
|
|
17392
|
-
/* @__PURE__ */
|
|
17393
|
-
/* @__PURE__ */
|
|
17595
|
+
return /* @__PURE__ */ jsxs79(Fragment31, { children: [
|
|
17596
|
+
/* @__PURE__ */ jsx161(Tabs, { ...props }),
|
|
17597
|
+
/* @__PURE__ */ jsx161(TabContent, { ...props, contentXss: { ...styles, ...props.contentXss } })
|
|
17394
17598
|
] });
|
|
17395
17599
|
}
|
|
17396
17600
|
function TabContent(props) {
|
|
@@ -17405,7 +17609,7 @@ function TabContent(props) {
|
|
|
17405
17609
|
return (
|
|
17406
17610
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
17407
17611
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
17408
|
-
/* @__PURE__ */
|
|
17612
|
+
/* @__PURE__ */ jsx161(FullBleed, { omitPadding: "paddingLeft" in contentXss || "paddingRight" in contentXss, children: /* @__PURE__ */ jsx161(
|
|
17409
17613
|
"div",
|
|
17410
17614
|
{
|
|
17411
17615
|
"aria-labelledby": `${uniqueValue}-tab`,
|
|
@@ -17414,7 +17618,7 @@ function TabContent(props) {
|
|
|
17414
17618
|
tabIndex: 0,
|
|
17415
17619
|
...tid.panel,
|
|
17416
17620
|
css: contentXss,
|
|
17417
|
-
children: isRouteTab(selectedTab) ? /* @__PURE__ */
|
|
17621
|
+
children: isRouteTab(selectedTab) ? /* @__PURE__ */ jsx161(Route, { path: selectedTab.path, render: selectedTab.render }) : selectedTab.render()
|
|
17418
17622
|
}
|
|
17419
17623
|
) })
|
|
17420
17624
|
);
|
|
@@ -17427,8 +17631,8 @@ function Tabs(props) {
|
|
|
17427
17631
|
) : props.selected;
|
|
17428
17632
|
const { isFocusVisible, focusProps } = useFocusRing15();
|
|
17429
17633
|
const tid = useTestIds(others, "tabs");
|
|
17430
|
-
const [active, setActive] =
|
|
17431
|
-
const ref =
|
|
17634
|
+
const [active, setActive] = useState40(selected);
|
|
17635
|
+
const ref = useRef52(null);
|
|
17432
17636
|
useEffect28(() => setActive(selected), [selected]);
|
|
17433
17637
|
function onKeyUp(e) {
|
|
17434
17638
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
@@ -17445,10 +17649,10 @@ function Tabs(props) {
|
|
|
17445
17649
|
setActive(selected);
|
|
17446
17650
|
}
|
|
17447
17651
|
}
|
|
17448
|
-
return /* @__PURE__ */
|
|
17449
|
-
!hideTabs(props) && /* @__PURE__ */
|
|
17652
|
+
return /* @__PURE__ */ jsxs79("div", { css: { ...Css.df.aic.oa.wsnw.gap1.$, ...includeBottomBorder ? { ...Css.bb.bcGray200.$ } : {} }, children: [
|
|
17653
|
+
!hideTabs(props) && /* @__PURE__ */ jsx161("div", { ref, css: Css.dif.gap1.asfe.$, "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
17450
17654
|
const uniqueValue = uniqueTabValue(tab);
|
|
17451
|
-
return /* @__PURE__ */
|
|
17655
|
+
return /* @__PURE__ */ jsx161(
|
|
17452
17656
|
TabImpl,
|
|
17453
17657
|
{
|
|
17454
17658
|
active: active === uniqueValue,
|
|
@@ -17463,15 +17667,15 @@ function Tabs(props) {
|
|
|
17463
17667
|
uniqueValue
|
|
17464
17668
|
);
|
|
17465
17669
|
}) }),
|
|
17466
|
-
right && /* @__PURE__ */
|
|
17670
|
+
right && /* @__PURE__ */ jsx161("div", { css: Css.mla.df.aic.gap1.pb1.$, children: right })
|
|
17467
17671
|
] });
|
|
17468
17672
|
}
|
|
17469
17673
|
function TabImpl(props) {
|
|
17470
17674
|
const { tab, onClick, active, onKeyUp, onBlur, focusProps, isFocusVisible = false, ...others } = props;
|
|
17471
17675
|
const { disabled = false, name: label, icon, endAdornment } = tab;
|
|
17472
17676
|
const isDisabled = !!disabled;
|
|
17473
|
-
const { hoverProps, isHovered } =
|
|
17474
|
-
const { baseStyles:
|
|
17677
|
+
const { hoverProps, isHovered } = useHover19({ isDisabled });
|
|
17678
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = useMemo40(
|
|
17475
17679
|
() => getTabStyles(),
|
|
17476
17680
|
[]
|
|
17477
17681
|
);
|
|
@@ -17485,9 +17689,9 @@ function TabImpl(props) {
|
|
|
17485
17689
|
tabIndex: active ? 0 : -1,
|
|
17486
17690
|
...others,
|
|
17487
17691
|
css: {
|
|
17488
|
-
...
|
|
17692
|
+
...baseStyles5,
|
|
17489
17693
|
...active && activeStyles4,
|
|
17490
|
-
...isDisabled &&
|
|
17694
|
+
...isDisabled && disabledStyles4,
|
|
17491
17695
|
...isHovered && hoverStyles4,
|
|
17492
17696
|
...isHovered && active && activeHoverStyles,
|
|
17493
17697
|
...isFocusVisible && active && focusRingStyles2
|
|
@@ -17498,15 +17702,15 @@ function TabImpl(props) {
|
|
|
17498
17702
|
onBlur,
|
|
17499
17703
|
...isRouteTab(tab) ? {} : { onClick: () => onClick(tab.value) }
|
|
17500
17704
|
});
|
|
17501
|
-
const tabLabel = /* @__PURE__ */
|
|
17705
|
+
const tabLabel = /* @__PURE__ */ jsxs79(Fragment31, { children: [
|
|
17502
17706
|
label,
|
|
17503
|
-
(icon || endAdornment) && /* @__PURE__ */
|
|
17707
|
+
(icon || endAdornment) && /* @__PURE__ */ jsx161("span", { css: Css.ml1.$, children: icon ? /* @__PURE__ */ jsx161(Icon, { icon }) : endAdornment })
|
|
17504
17708
|
] });
|
|
17505
17709
|
return isDisabled ? maybeTooltip({
|
|
17506
17710
|
title: resolveTooltip(disabled),
|
|
17507
17711
|
placement: "top",
|
|
17508
|
-
children: /* @__PURE__ */
|
|
17509
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */
|
|
17712
|
+
children: /* @__PURE__ */ jsx161("div", { ...tabProps, children: tabLabel })
|
|
17713
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ jsx161(Link5, { ...{ ...tabProps, ...interactiveProps }, className: "navLink", to: tab.href, children: tabLabel }) : /* @__PURE__ */ jsx161("button", { ...{ ...tabProps, ...interactiveProps }, children: tabLabel });
|
|
17510
17714
|
}
|
|
17511
17715
|
function getTabStyles() {
|
|
17512
17716
|
const borderBottomWidthPx = 4;
|
|
@@ -17542,60 +17746,19 @@ function hideTabs(props) {
|
|
|
17542
17746
|
return props.alwaysShowAllTabs ? false : props.tabs.filter((t) => !t.disabled).length === 1;
|
|
17543
17747
|
}
|
|
17544
17748
|
|
|
17545
|
-
// src/components/Tag.tsx
|
|
17546
|
-
import { useResizeObserver as useResizeObserver6 } from "@react-aria/utils";
|
|
17547
|
-
import { useRef as useRef52, useState as useState40 } from "react";
|
|
17548
|
-
import { jsx as jsx159, jsxs as jsxs77 } from "@emotion/react/jsx-runtime";
|
|
17549
|
-
function Tag(props) {
|
|
17550
|
-
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
17551
|
-
const typeStyles2 = getStyles(type);
|
|
17552
|
-
const tid = useTestIds(otherProps);
|
|
17553
|
-
const [showTooltip, setShowTooltip] = useState40(false);
|
|
17554
|
-
const ref = useRef52(null);
|
|
17555
|
-
useResizeObserver6({
|
|
17556
|
-
ref,
|
|
17557
|
-
onResize: () => {
|
|
17558
|
-
if (ref.current) {
|
|
17559
|
-
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
17560
|
-
}
|
|
17561
|
-
}
|
|
17562
|
-
});
|
|
17563
|
-
return maybeTooltip({
|
|
17564
|
-
title: !preventTooltip && showTooltip ? text : void 0,
|
|
17565
|
-
children: /* @__PURE__ */ jsxs77("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
17566
|
-
otherProps.icon && /* @__PURE__ */ jsx159("span", { css: Css.fs0.$, children: /* @__PURE__ */ jsx159(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
17567
|
-
/* @__PURE__ */ jsx159("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
17568
|
-
] })
|
|
17569
|
-
});
|
|
17570
|
-
}
|
|
17571
|
-
function getStyles(type) {
|
|
17572
|
-
switch (type) {
|
|
17573
|
-
case "info":
|
|
17574
|
-
return Css.bgBlue100.$;
|
|
17575
|
-
case "caution":
|
|
17576
|
-
return Css.bgYellow200.$;
|
|
17577
|
-
case "warning":
|
|
17578
|
-
return Css.bgRed200.$;
|
|
17579
|
-
case "success":
|
|
17580
|
-
return Css.bgGreen200.$;
|
|
17581
|
-
default:
|
|
17582
|
-
return Css.bgGray200.$;
|
|
17583
|
-
}
|
|
17584
|
-
}
|
|
17585
|
-
|
|
17586
17749
|
// src/components/Toast/Toast.tsx
|
|
17587
|
-
import { Fragment as
|
|
17750
|
+
import { Fragment as Fragment32, jsx as jsx162 } from "@emotion/react/jsx-runtime";
|
|
17588
17751
|
function Toast() {
|
|
17589
17752
|
const { setNotice, notice } = useToastContext();
|
|
17590
17753
|
const tid = useTestIds({}, "toast");
|
|
17591
|
-
return /* @__PURE__ */
|
|
17754
|
+
return /* @__PURE__ */ jsx162(Fragment32, { children: notice && /* @__PURE__ */ jsx162(Banner, { ...notice, ...tid, onClose: () => setNotice(void 0) }) });
|
|
17592
17755
|
}
|
|
17593
17756
|
|
|
17594
17757
|
// src/components/Toast/useToast.tsx
|
|
17595
|
-
import { useCallback as
|
|
17758
|
+
import { useCallback as useCallback24 } from "react";
|
|
17596
17759
|
function useToast() {
|
|
17597
17760
|
const { setNotice, clear } = useToastContext();
|
|
17598
|
-
const showToast =
|
|
17761
|
+
const showToast = useCallback24((props) => setNotice(props), [setNotice]);
|
|
17599
17762
|
return { showToast, clear };
|
|
17600
17763
|
}
|
|
17601
17764
|
export {
|
|
@@ -17639,6 +17802,7 @@ export {
|
|
|
17639
17802
|
ButtonGroup,
|
|
17640
17803
|
ButtonMenu,
|
|
17641
17804
|
ButtonModal,
|
|
17805
|
+
Card,
|
|
17642
17806
|
Checkbox,
|
|
17643
17807
|
CheckboxGroup,
|
|
17644
17808
|
Chip,
|
|
@@ -17667,6 +17831,7 @@ export {
|
|
|
17667
17831
|
FormHeading,
|
|
17668
17832
|
FormLines,
|
|
17669
17833
|
FormPageLayout,
|
|
17834
|
+
FormRow,
|
|
17670
17835
|
FullBleed,
|
|
17671
17836
|
GridTable,
|
|
17672
17837
|
HB_QUIPS_FLAVOR,
|
|
@@ -17800,6 +17965,7 @@ export {
|
|
|
17800
17965
|
isPersistentItem,
|
|
17801
17966
|
isPersistentKey,
|
|
17802
17967
|
isValidDate,
|
|
17968
|
+
listFieldPrefix,
|
|
17803
17969
|
loadArrayOrUndefined,
|
|
17804
17970
|
matchesFilter,
|
|
17805
17971
|
maybeApplyFunction,
|