@homebound/beam 2.409.0-alpha.1 → 2.409.0-alpha.2
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 +594 -458
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +36 -2
- package/dist/index.d.ts +36 -2
- package/dist/index.js +511 -376
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -94,6 +94,7 @@ __export(index_exports, {
|
|
|
94
94
|
EditColumnsButton: () => EditColumnsButton,
|
|
95
95
|
ErrorMessage: () => ErrorMessage,
|
|
96
96
|
FieldGroup: () => FieldGroup,
|
|
97
|
+
FilterDropdownMenu: () => _FilterDropdownMenu,
|
|
97
98
|
FilterModal: () => FilterModal,
|
|
98
99
|
Filters: () => _Filters,
|
|
99
100
|
FormDivider: () => FormDivider,
|
|
@@ -7016,7 +7017,7 @@ var variantStyles = (contrast) => ({
|
|
|
7016
7017
|
});
|
|
7017
7018
|
var sizeStyles = {
|
|
7018
7019
|
sm: Css.hPx(32).pxPx(12).$,
|
|
7019
|
-
md: Css.hPx(40).
|
|
7020
|
+
md: Css.hPx(40).px1.$,
|
|
7020
7021
|
lg: Css.hPx(48).px3.$
|
|
7021
7022
|
};
|
|
7022
7023
|
var iconStyles = {
|
|
@@ -14597,8 +14598,8 @@ var variantStyles2 = {
|
|
|
14597
14598
|
};
|
|
14598
14599
|
|
|
14599
14600
|
// src/components/BeamContext.tsx
|
|
14600
|
-
var
|
|
14601
|
-
var
|
|
14601
|
+
var import_react103 = require("react");
|
|
14602
|
+
var import_react_aria46 = require("react-aria");
|
|
14602
14603
|
|
|
14603
14604
|
// src/components/Modal/Modal.tsx
|
|
14604
14605
|
var import_utils72 = require("@react-aria/utils");
|
|
@@ -16452,18 +16453,68 @@ function FullBleed({ children, omitPadding = false }) {
|
|
|
16452
16453
|
}
|
|
16453
16454
|
|
|
16454
16455
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
16455
|
-
var
|
|
16456
|
+
var import_react100 = __toESM(require("react"), 1);
|
|
16456
16457
|
|
|
16457
|
-
// src/components/
|
|
16458
|
-
var
|
|
16458
|
+
// src/components/ButtonMenu.tsx
|
|
16459
|
+
var import_react93 = require("react");
|
|
16460
|
+
var import_react_aria44 = require("react-aria");
|
|
16461
|
+
var import_react_stately17 = require("react-stately");
|
|
16462
|
+
var import_jsx_runtime126 = require("@emotion/react/jsx-runtime");
|
|
16463
|
+
function ButtonMenu(props) {
|
|
16464
|
+
const { defaultOpen, disabled, items, persistentItems, trigger, searchable, contrast = false } = props;
|
|
16465
|
+
let selectedItem, onChange;
|
|
16466
|
+
if (isSelectionButtonMenuProps(props)) {
|
|
16467
|
+
selectedItem = props.selectedItem;
|
|
16468
|
+
onChange = props.onChange;
|
|
16469
|
+
}
|
|
16470
|
+
const state = (0, import_react_stately17.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
16471
|
+
const buttonRef = (0, import_react93.useRef)(null);
|
|
16472
|
+
const { menuTriggerProps, menuProps } = (0, import_react_aria44.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
16473
|
+
const tid = useTestIds(
|
|
16474
|
+
props,
|
|
16475
|
+
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
16476
|
+
);
|
|
16477
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
16478
|
+
OverlayTrigger,
|
|
16479
|
+
{
|
|
16480
|
+
...props,
|
|
16481
|
+
menuTriggerProps,
|
|
16482
|
+
state,
|
|
16483
|
+
buttonRef,
|
|
16484
|
+
...tid,
|
|
16485
|
+
contrast,
|
|
16486
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
16487
|
+
Menu,
|
|
16488
|
+
{
|
|
16489
|
+
ariaMenuProps: menuProps,
|
|
16490
|
+
onClose: () => state.close(),
|
|
16491
|
+
items,
|
|
16492
|
+
persistentItems,
|
|
16493
|
+
searchable,
|
|
16494
|
+
contrast,
|
|
16495
|
+
selectedItem,
|
|
16496
|
+
onChange,
|
|
16497
|
+
...tid
|
|
16498
|
+
}
|
|
16499
|
+
)
|
|
16500
|
+
}
|
|
16501
|
+
);
|
|
16502
|
+
}
|
|
16503
|
+
function isSelectionButtonMenuProps(props) {
|
|
16504
|
+
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
16505
|
+
}
|
|
16506
|
+
|
|
16507
|
+
// src/components/Filters/FilterDropdownMenu.tsx
|
|
16508
|
+
var import_react97 = require("react");
|
|
16509
|
+
var import_react_aria45 = require("react-aria");
|
|
16459
16510
|
|
|
16460
16511
|
// src/components/CountBadge.tsx
|
|
16461
|
-
var
|
|
16512
|
+
var import_jsx_runtime127 = require("@emotion/react/jsx-runtime");
|
|
16462
16513
|
function CountBadge(props) {
|
|
16463
16514
|
const { count, bgColor = "rgba(29, 78, 216, 1)" /* Blue700 */, color = "rgba(255,255,255,1)" /* White */, hideIfZero = false, ...otherProps } = props;
|
|
16464
16515
|
const tid = useTestIds(otherProps, "countBadge");
|
|
16465
16516
|
if (hideIfZero && count === 0) return null;
|
|
16466
|
-
return /* @__PURE__ */ (0,
|
|
16517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
16467
16518
|
"span",
|
|
16468
16519
|
{
|
|
16469
16520
|
...tid,
|
|
@@ -16496,7 +16547,7 @@ var BaseFilter = class {
|
|
|
16496
16547
|
};
|
|
16497
16548
|
|
|
16498
16549
|
// src/components/Filters/DateFilter.tsx
|
|
16499
|
-
var
|
|
16550
|
+
var import_jsx_runtime128 = require("@emotion/react/jsx-runtime");
|
|
16500
16551
|
function dateFilter(props) {
|
|
16501
16552
|
return (key) => new DateFilter(key, props);
|
|
16502
16553
|
}
|
|
@@ -16504,10 +16555,10 @@ var anyOption = {};
|
|
|
16504
16555
|
var DateFilter = class extends BaseFilter {
|
|
16505
16556
|
render(value, setValue, tid, inModal, vertical) {
|
|
16506
16557
|
const { label, operations, getOperationValue, getOperationLabel } = this.props;
|
|
16507
|
-
return /* @__PURE__ */ (0,
|
|
16508
|
-
vertical && /* @__PURE__ */ (0,
|
|
16509
|
-
/* @__PURE__ */ (0,
|
|
16510
|
-
/* @__PURE__ */ (0,
|
|
16558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
|
|
16559
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Label, { label }),
|
|
16560
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(CompoundField, { children: [
|
|
16561
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
16511
16562
|
SelectField,
|
|
16512
16563
|
{
|
|
16513
16564
|
compact: true,
|
|
@@ -16530,7 +16581,7 @@ var DateFilter = class extends BaseFilter {
|
|
|
16530
16581
|
...tid[`${defaultTestId(this.label)}_dateOperation`]
|
|
16531
16582
|
}
|
|
16532
16583
|
),
|
|
16533
|
-
/* @__PURE__ */ (0,
|
|
16584
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
16534
16585
|
DateField,
|
|
16535
16586
|
{
|
|
16536
16587
|
compact: true,
|
|
@@ -16548,16 +16599,16 @@ var DateFilter = class extends BaseFilter {
|
|
|
16548
16599
|
};
|
|
16549
16600
|
|
|
16550
16601
|
// src/components/Filters/DateRangeFilter.tsx
|
|
16551
|
-
var
|
|
16602
|
+
var import_jsx_runtime129 = require("@emotion/react/jsx-runtime");
|
|
16552
16603
|
function dateRangeFilter(props) {
|
|
16553
16604
|
return (key) => new DateRangeFilter(key, props);
|
|
16554
16605
|
}
|
|
16555
16606
|
var DateRangeFilter = class extends BaseFilter {
|
|
16556
16607
|
render(value, setValue, tid, inModal, vertical) {
|
|
16557
16608
|
const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
|
|
16558
|
-
return /* @__PURE__ */ (0,
|
|
16559
|
-
vertical && /* @__PURE__ */ (0,
|
|
16560
|
-
/* @__PURE__ */ (0,
|
|
16609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_jsx_runtime129.Fragment, { children: [
|
|
16610
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Label, { label }),
|
|
16611
|
+
/* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
16561
16612
|
DateRangeField,
|
|
16562
16613
|
{
|
|
16563
16614
|
compact: true,
|
|
@@ -16576,7 +16627,7 @@ var DateRangeFilter = class extends BaseFilter {
|
|
|
16576
16627
|
};
|
|
16577
16628
|
|
|
16578
16629
|
// src/components/Filters/MultiFilter.tsx
|
|
16579
|
-
var
|
|
16630
|
+
var import_jsx_runtime130 = require("@emotion/react/jsx-runtime");
|
|
16580
16631
|
function multiFilter(props) {
|
|
16581
16632
|
return (key) => new MultiFilter(key, props);
|
|
16582
16633
|
}
|
|
@@ -16586,7 +16637,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16586
16637
|
const { disabledOptions } = this.props;
|
|
16587
16638
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
16588
16639
|
const disabledKeys = Object.keys(disabledOptionsWithReasons);
|
|
16589
|
-
return /* @__PURE__ */ (0,
|
|
16640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
16590
16641
|
ToggleChipGroup,
|
|
16591
16642
|
{
|
|
16592
16643
|
label: this.label,
|
|
@@ -16610,7 +16661,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16610
16661
|
);
|
|
16611
16662
|
}
|
|
16612
16663
|
const { defaultValue, nothingSelectedText, ...props } = this.props;
|
|
16613
|
-
return /* @__PURE__ */ (0,
|
|
16664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
16614
16665
|
MultiSelectField,
|
|
16615
16666
|
{
|
|
16616
16667
|
...props,
|
|
@@ -16630,7 +16681,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16630
16681
|
};
|
|
16631
16682
|
|
|
16632
16683
|
// src/components/Filters/NumberRangeFilter.tsx
|
|
16633
|
-
var
|
|
16684
|
+
var import_jsx_runtime131 = require("@emotion/react/jsx-runtime");
|
|
16634
16685
|
function numberRangeFilter(props) {
|
|
16635
16686
|
return (key) => new NumberRangeFilter(key, props);
|
|
16636
16687
|
}
|
|
@@ -16639,10 +16690,10 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16639
16690
|
const { label, numberFieldType, numberFormatOptions } = this.props;
|
|
16640
16691
|
const min = value?.min ?? void 0;
|
|
16641
16692
|
const max = value?.max ?? void 0;
|
|
16642
|
-
return /* @__PURE__ */ (0,
|
|
16643
|
-
vertical && /* @__PURE__ */ (0,
|
|
16644
|
-
/* @__PURE__ */ (0,
|
|
16645
|
-
/* @__PURE__ */ (0,
|
|
16693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(import_jsx_runtime131.Fragment, { children: [
|
|
16694
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)("div", { ...tid, children: [
|
|
16695
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Label, { label }),
|
|
16696
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)("div", { css: Css.pb1.$, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16646
16697
|
NumberField,
|
|
16647
16698
|
{
|
|
16648
16699
|
labelStyle: "inline",
|
|
@@ -16658,7 +16709,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16658
16709
|
...tid[`${defaultTestId(label)}_min_vertical`]
|
|
16659
16710
|
}
|
|
16660
16711
|
) }),
|
|
16661
|
-
/* @__PURE__ */ (0,
|
|
16712
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16662
16713
|
NumberField,
|
|
16663
16714
|
{
|
|
16664
16715
|
labelStyle: "inline",
|
|
@@ -16675,8 +16726,8 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16675
16726
|
}
|
|
16676
16727
|
)
|
|
16677
16728
|
] }),
|
|
16678
|
-
!vertical && /* @__PURE__ */ (0,
|
|
16679
|
-
/* @__PURE__ */ (0,
|
|
16729
|
+
!vertical && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(CompoundField, { ...tid, children: [
|
|
16730
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16680
16731
|
NumberField,
|
|
16681
16732
|
{
|
|
16682
16733
|
compact: true,
|
|
@@ -16694,7 +16745,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16694
16745
|
...tid[`${defaultTestId(label)}_min`]
|
|
16695
16746
|
}
|
|
16696
16747
|
),
|
|
16697
|
-
/* @__PURE__ */ (0,
|
|
16748
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16698
16749
|
NumberField,
|
|
16699
16750
|
{
|
|
16700
16751
|
compact: true,
|
|
@@ -16718,7 +16769,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16718
16769
|
};
|
|
16719
16770
|
|
|
16720
16771
|
// src/components/Filters/SingleFilter.tsx
|
|
16721
|
-
var
|
|
16772
|
+
var import_jsx_runtime132 = require("@emotion/react/jsx-runtime");
|
|
16722
16773
|
function singleFilter(props) {
|
|
16723
16774
|
return (key) => new SingleFilter(key, props);
|
|
16724
16775
|
}
|
|
@@ -16735,7 +16786,7 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16735
16786
|
...props
|
|
16736
16787
|
} = this.props;
|
|
16737
16788
|
const options = Array.isArray(maybeOptions) ? [allOption, ...maybeOptions] : { ...maybeOptions, current: maybeOptions.current };
|
|
16738
|
-
return /* @__PURE__ */ (0,
|
|
16789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
16739
16790
|
SelectField,
|
|
16740
16791
|
{
|
|
16741
16792
|
...props,
|
|
@@ -16756,14 +16807,14 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16756
16807
|
};
|
|
16757
16808
|
|
|
16758
16809
|
// src/components/Filters/TreeFilter.tsx
|
|
16759
|
-
var
|
|
16810
|
+
var import_jsx_runtime133 = require("@emotion/react/jsx-runtime");
|
|
16760
16811
|
function treeFilter(props) {
|
|
16761
16812
|
return (key) => new TreeFilter(key, props);
|
|
16762
16813
|
}
|
|
16763
16814
|
var TreeFilter = class extends BaseFilter {
|
|
16764
16815
|
render(value, setValue, tid, inModal, vertical) {
|
|
16765
16816
|
const { defaultValue, nothingSelectedText, filterBy = "root", ...props } = this.props;
|
|
16766
|
-
return /* @__PURE__ */ (0,
|
|
16817
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
16767
16818
|
TreeSelectField,
|
|
16768
16819
|
{
|
|
16769
16820
|
...props,
|
|
@@ -16784,14 +16835,14 @@ var TreeFilter = class extends BaseFilter {
|
|
|
16784
16835
|
};
|
|
16785
16836
|
|
|
16786
16837
|
// src/components/Filters/BooleanFilter.tsx
|
|
16787
|
-
var
|
|
16838
|
+
var import_jsx_runtime134 = require("@emotion/react/jsx-runtime");
|
|
16788
16839
|
function booleanFilter(props) {
|
|
16789
16840
|
return (key) => new BooleanFilter(key, props);
|
|
16790
16841
|
}
|
|
16791
16842
|
var BooleanFilter = class extends BaseFilter {
|
|
16792
16843
|
render(value, setValue, tid, inModal, vertical) {
|
|
16793
16844
|
const { options = defaultBooleanOptions, label, defaultValue, ...props } = this.props;
|
|
16794
|
-
return /* @__PURE__ */ (0,
|
|
16845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
16795
16846
|
SelectField,
|
|
16796
16847
|
{
|
|
16797
16848
|
...props,
|
|
@@ -16819,7 +16870,7 @@ var defaultBooleanOptions = [
|
|
|
16819
16870
|
];
|
|
16820
16871
|
|
|
16821
16872
|
// src/components/Filters/CheckboxFilter.tsx
|
|
16822
|
-
var
|
|
16873
|
+
var import_jsx_runtime135 = require("@emotion/react/jsx-runtime");
|
|
16823
16874
|
function checkboxFilter(props) {
|
|
16824
16875
|
return (key) => new CheckboxFilter(key, {
|
|
16825
16876
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16830,7 +16881,7 @@ function checkboxFilter(props) {
|
|
|
16830
16881
|
var CheckboxFilter = class extends BaseFilter {
|
|
16831
16882
|
render(value, setValue, tid, inModal, vertical) {
|
|
16832
16883
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16833
|
-
return /* @__PURE__ */ (0,
|
|
16884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16834
16885
|
Checkbox,
|
|
16835
16886
|
{
|
|
16836
16887
|
...props,
|
|
@@ -16849,44 +16900,44 @@ var CheckboxFilter = class extends BaseFilter {
|
|
|
16849
16900
|
};
|
|
16850
16901
|
|
|
16851
16902
|
// src/components/Filters/FilterModal.tsx
|
|
16852
|
-
var
|
|
16903
|
+
var import_react95 = require("react");
|
|
16853
16904
|
|
|
16854
16905
|
// src/components/Modal/OpenModal.tsx
|
|
16855
|
-
var
|
|
16856
|
-
var
|
|
16906
|
+
var import_react94 = require("react");
|
|
16907
|
+
var import_jsx_runtime136 = require("@emotion/react/jsx-runtime");
|
|
16857
16908
|
function OpenModal(props) {
|
|
16858
16909
|
const { openModal } = useModal();
|
|
16859
16910
|
const { size, children, keepOpen } = props;
|
|
16860
|
-
(0,
|
|
16911
|
+
(0, import_react94.useEffect)(() => {
|
|
16861
16912
|
if (!keepOpen) {
|
|
16862
16913
|
openModal({ size, content: children });
|
|
16863
16914
|
}
|
|
16864
16915
|
}, [keepOpen, openModal, size, children]);
|
|
16865
16916
|
if (keepOpen) {
|
|
16866
|
-
return /* @__PURE__ */ (0,
|
|
16917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Modal, { size, content: children });
|
|
16867
16918
|
} else {
|
|
16868
|
-
return /* @__PURE__ */ (0,
|
|
16919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)("div", { children: "dummy content" });
|
|
16869
16920
|
}
|
|
16870
16921
|
}
|
|
16871
16922
|
|
|
16872
16923
|
// src/components/Filters/FilterModal.tsx
|
|
16873
|
-
var
|
|
16924
|
+
var import_jsx_runtime137 = require("@emotion/react/jsx-runtime");
|
|
16874
16925
|
function FilterModal(props) {
|
|
16875
16926
|
const { filter, filters, onApply } = props;
|
|
16876
16927
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16877
16928
|
const { closeModal } = useModal();
|
|
16878
|
-
const [modalFilter, setModalFilter] = (0,
|
|
16879
|
-
return /* @__PURE__ */ (0,
|
|
16880
|
-
/* @__PURE__ */ (0,
|
|
16881
|
-
/* @__PURE__ */ (0,
|
|
16929
|
+
const [modalFilter, setModalFilter] = (0, import_react95.useState)(filter);
|
|
16930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_jsx_runtime137.Fragment, { children: [
|
|
16931
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(ModalHeader, { children: "More Filters" }),
|
|
16932
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("div", { css: Css.df.fdc.$, children: safeEntries(filters).map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(ModalFilterItem, { label: f.hideLabelInModal ? void 0 : f.label, children: f.render(
|
|
16882
16933
|
modalFilter[key],
|
|
16883
16934
|
(value) => setModalFilter(updateFilter(modalFilter, key, value)),
|
|
16884
16935
|
testId,
|
|
16885
16936
|
true,
|
|
16886
16937
|
false
|
|
16887
16938
|
) }, key)) }) }),
|
|
16888
|
-
/* @__PURE__ */ (0,
|
|
16889
|
-
/* @__PURE__ */ (0,
|
|
16939
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(ModalFooter, { xss: Css.jcsb.$, children: [
|
|
16940
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16890
16941
|
Button,
|
|
16891
16942
|
{
|
|
16892
16943
|
label: "Clear",
|
|
@@ -16899,9 +16950,9 @@ function FilterModal(props) {
|
|
|
16899
16950
|
...testId.modalClear
|
|
16900
16951
|
}
|
|
16901
16952
|
),
|
|
16902
|
-
/* @__PURE__ */ (0,
|
|
16903
|
-
/* @__PURE__ */ (0,
|
|
16904
|
-
/* @__PURE__ */ (0,
|
|
16953
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { css: Css.df.gap1.$, children: [
|
|
16954
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Button, { label: "Cancel", variant: "quaternary", onClick: closeModal, ...testId.modalClose }),
|
|
16955
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16905
16956
|
Button,
|
|
16906
16957
|
{
|
|
16907
16958
|
label: "Apply",
|
|
@@ -16917,60 +16968,20 @@ function FilterModal(props) {
|
|
|
16917
16968
|
] });
|
|
16918
16969
|
}
|
|
16919
16970
|
function ModalFilterItem({ label, children }) {
|
|
16920
|
-
return /* @__PURE__ */ (0,
|
|
16921
|
-
label && /* @__PURE__ */ (0,
|
|
16922
|
-
/* @__PURE__ */ (0,
|
|
16971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { css: Css.mb4.if(!label).bt.bcGray200.$, children: [
|
|
16972
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("h2", { css: Css.md.mb2.$, children: label }),
|
|
16973
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("div", { css: Css.if(!label).pt3.$, children })
|
|
16923
16974
|
] });
|
|
16924
16975
|
}
|
|
16925
16976
|
|
|
16926
|
-
// src/components/Filters/ToggleFilter.tsx
|
|
16927
|
-
var import_jsx_runtime137 = require("@emotion/react/jsx-runtime");
|
|
16928
|
-
function toggleFilter(props) {
|
|
16929
|
-
return (key) => new ToggleFilter(key, {
|
|
16930
|
-
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
16931
|
-
defaultValue: props.offValue,
|
|
16932
|
-
...props
|
|
16933
|
-
});
|
|
16934
|
-
}
|
|
16935
|
-
var ToggleFilter = class extends BaseFilter {
|
|
16936
|
-
render(value, setValue, tid, inModal, vertical) {
|
|
16937
|
-
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16938
|
-
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16939
|
-
Switch,
|
|
16940
|
-
{
|
|
16941
|
-
...props,
|
|
16942
|
-
selected: value === void 0 ? false : value === onValue,
|
|
16943
|
-
label: this.label,
|
|
16944
|
-
labelStyle: inModal || vertical ? "filter" : "inline",
|
|
16945
|
-
onChange: (on) => {
|
|
16946
|
-
setValue(on ? onValue : offValue);
|
|
16947
|
-
},
|
|
16948
|
-
...this.testId(tid)
|
|
16949
|
-
}
|
|
16950
|
-
);
|
|
16951
|
-
}
|
|
16952
|
-
get hideLabelInModal() {
|
|
16953
|
-
return true;
|
|
16954
|
-
}
|
|
16955
|
-
};
|
|
16956
|
-
|
|
16957
|
-
// src/components/Filters/utils.tsx
|
|
16958
|
-
function updateFilter(currentFilter, key, value) {
|
|
16959
|
-
if (value === void 0) {
|
|
16960
|
-
return omitKey(key, currentFilter);
|
|
16961
|
-
} else {
|
|
16962
|
-
return { ...currentFilter, [key]: value };
|
|
16963
|
-
}
|
|
16964
|
-
}
|
|
16965
|
-
var filterTestIdPrefix = "filter";
|
|
16966
|
-
|
|
16967
16977
|
// src/components/Filters/Filters.tsx
|
|
16978
|
+
var import_react96 = require("react");
|
|
16968
16979
|
var import_jsx_runtime138 = require("@emotion/react/jsx-runtime");
|
|
16969
16980
|
function Filters(props) {
|
|
16970
16981
|
const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
|
|
16971
16982
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16972
16983
|
const { openModal } = useModal();
|
|
16973
|
-
const [pageFilters, modalFilters] = (0,
|
|
16984
|
+
const [pageFilters, modalFilters] = (0, import_react96.useMemo)(() => {
|
|
16974
16985
|
const impls = safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]);
|
|
16975
16986
|
if (!vertical && impls.length > numberOfInlineFilters) {
|
|
16976
16987
|
return [
|
|
@@ -17023,14 +17034,183 @@ function Filters(props) {
|
|
|
17023
17034
|
}
|
|
17024
17035
|
);
|
|
17025
17036
|
}
|
|
17026
|
-
var _Filters = (0,
|
|
17037
|
+
var _Filters = (0, import_react96.memo)(Filters);
|
|
17027
17038
|
|
|
17028
|
-
// src/components/
|
|
17039
|
+
// src/components/Filters/ToggleFilter.tsx
|
|
17029
17040
|
var import_jsx_runtime139 = require("@emotion/react/jsx-runtime");
|
|
17041
|
+
function toggleFilter(props) {
|
|
17042
|
+
return (key) => new ToggleFilter(key, {
|
|
17043
|
+
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
17044
|
+
defaultValue: props.offValue,
|
|
17045
|
+
...props
|
|
17046
|
+
});
|
|
17047
|
+
}
|
|
17048
|
+
var ToggleFilter = class extends BaseFilter {
|
|
17049
|
+
render(value, setValue, tid, inModal, vertical) {
|
|
17050
|
+
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
17051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
17052
|
+
Switch,
|
|
17053
|
+
{
|
|
17054
|
+
...props,
|
|
17055
|
+
selected: value === void 0 ? false : value === onValue,
|
|
17056
|
+
label: this.label,
|
|
17057
|
+
labelStyle: inModal || vertical ? "filter" : "inline",
|
|
17058
|
+
onChange: (on) => {
|
|
17059
|
+
setValue(on ? onValue : offValue);
|
|
17060
|
+
},
|
|
17061
|
+
...this.testId(tid)
|
|
17062
|
+
}
|
|
17063
|
+
);
|
|
17064
|
+
}
|
|
17065
|
+
get hideLabelInModal() {
|
|
17066
|
+
return true;
|
|
17067
|
+
}
|
|
17068
|
+
};
|
|
17069
|
+
|
|
17070
|
+
// src/components/Filters/utils.tsx
|
|
17071
|
+
function updateFilter(currentFilter, key, value) {
|
|
17072
|
+
if (value === void 0) {
|
|
17073
|
+
return omitKey(key, currentFilter);
|
|
17074
|
+
} else {
|
|
17075
|
+
return { ...currentFilter, [key]: value };
|
|
17076
|
+
}
|
|
17077
|
+
}
|
|
17078
|
+
var filterTestIdPrefix = "filter";
|
|
17079
|
+
|
|
17080
|
+
// src/components/Filters/FilterDropdownMenu.tsx
|
|
17081
|
+
var import_jsx_runtime140 = require("@emotion/react/jsx-runtime");
|
|
17082
|
+
function FilterDropdownMenu(props) {
|
|
17083
|
+
const { filter, onChange, filterDefs, groupBy } = props;
|
|
17084
|
+
const testId = useTestIds(props, filterTestIdPrefix);
|
|
17085
|
+
const [isOpen, setIsOpen] = (0, import_react97.useState)(false);
|
|
17086
|
+
const buttonRef = (0, import_react97.useRef)(null);
|
|
17087
|
+
const filterContentRef = (0, import_react97.useRef)(null);
|
|
17088
|
+
const { overlayProps } = (0, import_react_aria45.useOverlay)(
|
|
17089
|
+
{
|
|
17090
|
+
isOpen,
|
|
17091
|
+
onClose: () => setIsOpen(false),
|
|
17092
|
+
isDismissable: true,
|
|
17093
|
+
shouldCloseOnInteractOutside: (element) => {
|
|
17094
|
+
if (buttonRef.current?.contains(element)) return false;
|
|
17095
|
+
return true;
|
|
17096
|
+
}
|
|
17097
|
+
},
|
|
17098
|
+
filterContentRef
|
|
17099
|
+
);
|
|
17100
|
+
const activeFilterCount = (0, import_react97.useMemo)(() => getActiveFilterCount(filter), [filter]);
|
|
17101
|
+
const filterImpls = (0, import_react97.useMemo)(() => buildFilterImpls(filterDefs), [filterDefs]);
|
|
17102
|
+
const renderFilters = () => {
|
|
17103
|
+
const entries = safeEntries(filterImpls);
|
|
17104
|
+
const nonCheckbox = entries.filter(([_, f]) => !f.hideLabelInModal);
|
|
17105
|
+
const checkbox = entries.filter(([_, f]) => f.hideLabelInModal);
|
|
17106
|
+
return [...nonCheckbox, ...checkbox].map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime140.jsx)("div", { children: f.render(filter[key], (value) => onChange(updateFilter(filter, key, value)), testId, false, false) }, key));
|
|
17107
|
+
};
|
|
17108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
|
|
17109
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)("div", { ref: buttonRef, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
17110
|
+
Button,
|
|
17111
|
+
{
|
|
17112
|
+
label: "Filter",
|
|
17113
|
+
icon: "filter",
|
|
17114
|
+
size: "md",
|
|
17115
|
+
endAdornment: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { css: Css.df.aic.gap1.$, children: [
|
|
17116
|
+
activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CountBadge, { count: activeFilterCount }),
|
|
17117
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Icon, { icon: isOpen ? "chevronUp" : "chevronDown" })
|
|
17118
|
+
] }),
|
|
17119
|
+
variant: "secondaryBlack",
|
|
17120
|
+
onClick: () => setIsOpen(!isOpen),
|
|
17121
|
+
...testId.button
|
|
17122
|
+
}
|
|
17123
|
+
) }),
|
|
17124
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { ref: filterContentRef, ...overlayProps, css: Css.df.aic.fww.gap1.order(1).$, children: [
|
|
17125
|
+
groupBy && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
17126
|
+
SelectField,
|
|
17127
|
+
{
|
|
17128
|
+
label: "Group by",
|
|
17129
|
+
compact: true,
|
|
17130
|
+
labelStyle: "inline",
|
|
17131
|
+
sizeToContent: true,
|
|
17132
|
+
options: groupBy.options,
|
|
17133
|
+
getOptionValue: (o) => o.id,
|
|
17134
|
+
getOptionLabel: (o) => o.name,
|
|
17135
|
+
value: groupBy.value,
|
|
17136
|
+
onSelect: (g) => g && groupBy.setValue(g)
|
|
17137
|
+
}
|
|
17138
|
+
),
|
|
17139
|
+
renderFilters(),
|
|
17140
|
+
activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn })
|
|
17141
|
+
] }),
|
|
17142
|
+
!isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
17143
|
+
FilterChips,
|
|
17144
|
+
{
|
|
17145
|
+
filter,
|
|
17146
|
+
filterImpls,
|
|
17147
|
+
onChange,
|
|
17148
|
+
onClear: () => onChange({}),
|
|
17149
|
+
testId
|
|
17150
|
+
}
|
|
17151
|
+
)
|
|
17152
|
+
] });
|
|
17153
|
+
}
|
|
17154
|
+
function FilterChips({
|
|
17155
|
+
filter,
|
|
17156
|
+
filterImpls,
|
|
17157
|
+
onChange,
|
|
17158
|
+
onClear,
|
|
17159
|
+
testId
|
|
17160
|
+
}) {
|
|
17161
|
+
const chips = safeEntries(filterImpls).flatMap(([key]) => {
|
|
17162
|
+
const value = filter[key];
|
|
17163
|
+
if (!isDefined(value)) return [];
|
|
17164
|
+
if (Array.isArray(value)) {
|
|
17165
|
+
return value.map((item) => {
|
|
17166
|
+
const chipKey = `${String(key)}_${item}`;
|
|
17167
|
+
const newArray = value.filter((v) => v !== item);
|
|
17168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
17169
|
+
ToggleChip,
|
|
17170
|
+
{
|
|
17171
|
+
text: titleCase(String(item)),
|
|
17172
|
+
onClick: () => onChange(updateFilter(filter, key, newArray.length > 0 ? newArray : void 0)),
|
|
17173
|
+
...testId[`chip_${chipKey}`]
|
|
17174
|
+
},
|
|
17175
|
+
chipKey
|
|
17176
|
+
);
|
|
17177
|
+
});
|
|
17178
|
+
}
|
|
17179
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
17180
|
+
ToggleChip,
|
|
17181
|
+
{
|
|
17182
|
+
text: titleCase(String(value)),
|
|
17183
|
+
onClick: () => onChange(updateFilter(filter, key, void 0)),
|
|
17184
|
+
...testId[`chip_${String(key)}`]
|
|
17185
|
+
},
|
|
17186
|
+
String(key)
|
|
17187
|
+
);
|
|
17188
|
+
});
|
|
17189
|
+
if (chips.length === 0) return null;
|
|
17190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { css: Css.df.gap1.fww.aic.order(1).$, children: [
|
|
17191
|
+
chips,
|
|
17192
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: onClear, ...testId.clearBtn })
|
|
17193
|
+
] });
|
|
17194
|
+
}
|
|
17195
|
+
function buildFilterImpls(filterDefs) {
|
|
17196
|
+
return Object.fromEntries(safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]));
|
|
17197
|
+
}
|
|
17198
|
+
function titleCase(str) {
|
|
17199
|
+
return str.split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
17200
|
+
}
|
|
17201
|
+
function getActiveFilterCount(filter) {
|
|
17202
|
+
return safeKeys(filter).filter((key) => filter[key] !== void 0).length;
|
|
17203
|
+
}
|
|
17204
|
+
var _FilterDropdownMenu = (0, import_react97.memo)(FilterDropdownMenu);
|
|
17205
|
+
|
|
17206
|
+
// src/components/Table/TableActions.tsx
|
|
17207
|
+
var import_jsx_runtime141 = require("@emotion/react/jsx-runtime");
|
|
17030
17208
|
function TableActions(props) {
|
|
17031
|
-
const { xss, children,
|
|
17032
|
-
|
|
17033
|
-
|
|
17209
|
+
const { xss, children, right } = props;
|
|
17210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("div", { css: { ...Css.df.gap1.aic.jcsb.aifs.pb2.$, ...xss }, children: [
|
|
17211
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("div", { css: Css.df.gap1.aic.fww.$, children }),
|
|
17212
|
+
right
|
|
17213
|
+
] });
|
|
17034
17214
|
}
|
|
17035
17215
|
|
|
17036
17216
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
@@ -17038,21 +17218,21 @@ var import_use_debounce7 = require("use-debounce");
|
|
|
17038
17218
|
var import_use_query_params3 = require("use-query-params");
|
|
17039
17219
|
|
|
17040
17220
|
// src/components/Layout/ScrollableContent.tsx
|
|
17041
|
-
var
|
|
17221
|
+
var import_react98 = require("react");
|
|
17042
17222
|
var import_react_dom4 = require("react-dom");
|
|
17043
|
-
var
|
|
17223
|
+
var import_jsx_runtime142 = require("@emotion/react/jsx-runtime");
|
|
17044
17224
|
function ScrollableContent(props) {
|
|
17045
17225
|
const { children, virtualized = false, omitBottomPadding, bgColor } = props;
|
|
17046
17226
|
const { scrollableEl, setPortalTick, pl, pr } = useScrollableParent();
|
|
17047
|
-
(0,
|
|
17227
|
+
(0, import_react98.useEffect)(() => {
|
|
17048
17228
|
setPortalTick((prev) => prev + 1);
|
|
17049
17229
|
return () => setPortalTick((prev) => prev + 1);
|
|
17050
17230
|
}, [setPortalTick]);
|
|
17051
17231
|
if (!scrollableEl) {
|
|
17052
|
-
return /* @__PURE__ */ (0,
|
|
17232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_jsx_runtime142.Fragment, { children });
|
|
17053
17233
|
}
|
|
17054
17234
|
return (0, import_react_dom4.createPortal)(
|
|
17055
|
-
/* @__PURE__ */ (0,
|
|
17235
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17056
17236
|
"div",
|
|
17057
17237
|
{
|
|
17058
17238
|
css: {
|
|
@@ -17068,10 +17248,10 @@ function ScrollableContent(props) {
|
|
|
17068
17248
|
}
|
|
17069
17249
|
|
|
17070
17250
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
17071
|
-
var
|
|
17251
|
+
var import_react99 = require("react");
|
|
17072
17252
|
|
|
17073
17253
|
// src/components/LoadingSkeleton.tsx
|
|
17074
|
-
var
|
|
17254
|
+
var import_jsx_runtime143 = require("@emotion/react/jsx-runtime");
|
|
17075
17255
|
function LoadingSkeleton({
|
|
17076
17256
|
rows = 1,
|
|
17077
17257
|
columns = 1,
|
|
@@ -17084,7 +17264,7 @@ function LoadingSkeleton({
|
|
|
17084
17264
|
const rowHeight = sizeToPixels2[size];
|
|
17085
17265
|
const rowCells = (rowNumber) => {
|
|
17086
17266
|
const flexGrowForCell = randomizeWidths ? getRandomizedFlexBasisByRowIndex(rowNumber) : 1;
|
|
17087
|
-
return cellArray.map((_, i) => /* @__PURE__ */ (0,
|
|
17267
|
+
return cellArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
17088
17268
|
"div",
|
|
17089
17269
|
{
|
|
17090
17270
|
css: Css.br4.add("animation", "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite").add("flexGrow", flexGrowForCell).bgGray300.if(contrast).bgGray700.$
|
|
@@ -17092,7 +17272,7 @@ function LoadingSkeleton({
|
|
|
17092
17272
|
`row-${rowNumber}-cell-${i}`
|
|
17093
17273
|
));
|
|
17094
17274
|
};
|
|
17095
|
-
return /* @__PURE__ */ (0,
|
|
17275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime143.jsx)("div", { css: Css.df.gap1.mb1.hPx(rowHeight).$, children: rowCells(i) }, `row-${i}`)) });
|
|
17096
17276
|
}
|
|
17097
17277
|
function getRandomizedFlexBasisByRowIndex(rowIndex) {
|
|
17098
17278
|
const randomizedFlexBasisValues = [0.65, 0.8, 0.75, 0.9, 0.8, 0.85, 0.8, 0.95];
|
|
@@ -17106,27 +17286,27 @@ var sizeToPixels2 = {
|
|
|
17106
17286
|
};
|
|
17107
17287
|
|
|
17108
17288
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
17109
|
-
var
|
|
17289
|
+
var import_jsx_runtime144 = require("@emotion/react/jsx-runtime");
|
|
17110
17290
|
function QueryTable(props) {
|
|
17111
17291
|
const { emptyFallback, query, createRows, getPageInfo, columns, keepHeaderWhenLoading, ...others } = props;
|
|
17112
17292
|
const data = query.loading || query.error ? void 0 : query.data;
|
|
17113
|
-
const rows = (0,
|
|
17293
|
+
const rows = (0, import_react99.useMemo)(() => createRows(data), [createRows, data]);
|
|
17114
17294
|
const hasNextPage = data && getPageInfo && getPageInfo(data).hasNextPage;
|
|
17115
17295
|
const infoMessage = hasNextPage ? "Too many rows" : void 0;
|
|
17116
17296
|
const fallbackMessage = query.loading ? "Loading\u2026" : query.error ? `Error: ${query.error.message}` : emptyFallback;
|
|
17117
17297
|
const headers = rows.filter((row) => row.kind === "header");
|
|
17118
|
-
return query.loading ? /* @__PURE__ */ (0,
|
|
17298
|
+
return query.loading ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("div", { children: keepHeaderWhenLoading ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(GridTable, { ...{ columns, ...others }, rows: headers, fallbackMessage }) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(LoadingTable, { columns: columns.length }) }) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(GridTable, { ...{ rows, columns, fallbackMessage, infoMessage, ...others } });
|
|
17119
17299
|
}
|
|
17120
17300
|
function LoadingTable(props) {
|
|
17121
17301
|
const { columns } = props;
|
|
17122
|
-
return /* @__PURE__ */ (0,
|
|
17123
|
-
/* @__PURE__ */ (0,
|
|
17124
|
-
/* @__PURE__ */ (0,
|
|
17302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(import_jsx_runtime144.Fragment, { children: [
|
|
17303
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(LoadingSkeleton, { rows: 1, columns: 1 }),
|
|
17304
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(LoadingSkeleton, { rows: 5, columns: columns ?? 5 })
|
|
17125
17305
|
] });
|
|
17126
17306
|
}
|
|
17127
17307
|
|
|
17128
17308
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
17129
|
-
var
|
|
17309
|
+
var import_jsx_runtime145 = require("@emotion/react/jsx-runtime");
|
|
17130
17310
|
function isGridTableProps(props) {
|
|
17131
17311
|
return "rows" in props;
|
|
17132
17312
|
}
|
|
@@ -17139,67 +17319,70 @@ function GridTableLayoutComponent(props) {
|
|
|
17139
17319
|
primaryAction,
|
|
17140
17320
|
secondaryAction,
|
|
17141
17321
|
tertiaryAction,
|
|
17322
|
+
actionMenu,
|
|
17142
17323
|
hideEditColumns = false
|
|
17143
17324
|
} = props;
|
|
17144
17325
|
const tid = useTestIds(props);
|
|
17145
17326
|
const columns = tableProps.columns;
|
|
17146
|
-
const hasHideableColumns = (0,
|
|
17327
|
+
const hasHideableColumns = (0, import_react100.useMemo)(() => {
|
|
17147
17328
|
if (hideEditColumns) return false;
|
|
17148
17329
|
validateColumns(columns);
|
|
17149
17330
|
return columns.some((c) => c.canHide);
|
|
17150
17331
|
}, [columns, hideEditColumns]);
|
|
17151
|
-
const api = (0,
|
|
17332
|
+
const api = (0, import_react100.useMemo)(
|
|
17152
17333
|
() => tableProps.api ?? new GridTableApiImpl(),
|
|
17153
17334
|
[tableProps.api]
|
|
17154
17335
|
);
|
|
17155
17336
|
const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
|
|
17156
17337
|
const showTableActions = layoutState?.filterDefs || layoutState?.search || hasHideableColumns;
|
|
17157
17338
|
const isVirtualized = tableProps.as === "virtual";
|
|
17158
|
-
const breakpoints = useBreakpoint();
|
|
17159
17339
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
17160
|
-
(0,
|
|
17340
|
+
(0, import_react100.useEffect)(() => {
|
|
17161
17341
|
if (layoutState?.setVisibleColumnIds) {
|
|
17162
17342
|
layoutState.setVisibleColumnIds(visibleColumnIds);
|
|
17163
17343
|
}
|
|
17164
17344
|
}, [visibleColumnIds, layoutState]);
|
|
17165
17345
|
const visibleColumnsStorageKey = layoutState?.persistedColumnsStorageKey;
|
|
17166
|
-
return /* @__PURE__ */ (0,
|
|
17167
|
-
/* @__PURE__ */ (0,
|
|
17346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
|
|
17347
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17168
17348
|
Header2,
|
|
17169
17349
|
{
|
|
17170
17350
|
pageTitle,
|
|
17171
17351
|
breadcrumb,
|
|
17172
17352
|
primaryAction,
|
|
17173
17353
|
secondaryAction,
|
|
17174
|
-
tertiaryAction
|
|
17354
|
+
tertiaryAction,
|
|
17355
|
+
actionMenu
|
|
17175
17356
|
}
|
|
17176
17357
|
),
|
|
17177
|
-
showTableActions && /* @__PURE__ */ (0,
|
|
17178
|
-
|
|
17179
|
-
|
|
17180
|
-
|
|
17181
|
-
|
|
17358
|
+
showTableActions && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
17359
|
+
TableActions,
|
|
17360
|
+
{
|
|
17361
|
+
right: hasHideableColumns && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17362
|
+
EditColumnsButton,
|
|
17182
17363
|
{
|
|
17183
|
-
|
|
17184
|
-
|
|
17185
|
-
|
|
17186
|
-
|
|
17187
|
-
|
|
17364
|
+
columns,
|
|
17365
|
+
api,
|
|
17366
|
+
tooltip: "Display columns",
|
|
17367
|
+
trigger: { icon: "kanban", label: "", variant: "secondaryBlack" },
|
|
17368
|
+
...tid.editColumnsButton
|
|
17188
17369
|
}
|
|
17189
|
-
)
|
|
17190
|
-
|
|
17191
|
-
|
|
17192
|
-
|
|
17193
|
-
|
|
17194
|
-
|
|
17195
|
-
|
|
17196
|
-
|
|
17197
|
-
|
|
17198
|
-
|
|
17199
|
-
|
|
17200
|
-
|
|
17201
|
-
|
|
17202
|
-
|
|
17370
|
+
),
|
|
17371
|
+
children: [
|
|
17372
|
+
layoutState?.search && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(SearchBox, { onSearch: layoutState.setSearchString }),
|
|
17373
|
+
layoutState?.filterDefs && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17374
|
+
_FilterDropdownMenu,
|
|
17375
|
+
{
|
|
17376
|
+
filterDefs: layoutState.filterDefs,
|
|
17377
|
+
filter: layoutState.filter,
|
|
17378
|
+
onChange: layoutState.setFilter,
|
|
17379
|
+
groupBy: layoutState.groupBy
|
|
17380
|
+
}
|
|
17381
|
+
)
|
|
17382
|
+
]
|
|
17383
|
+
}
|
|
17384
|
+
),
|
|
17385
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ScrollableContent, { virtualized: isVirtualized, children: isGridTableProps(tableProps) ? /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17203
17386
|
GridTable,
|
|
17204
17387
|
{
|
|
17205
17388
|
...tableProps,
|
|
@@ -17210,7 +17393,7 @@ function GridTableLayoutComponent(props) {
|
|
|
17210
17393
|
disableColumnResizing: false,
|
|
17211
17394
|
visibleColumnsStorageKey
|
|
17212
17395
|
}
|
|
17213
|
-
) : /* @__PURE__ */ (0,
|
|
17396
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17214
17397
|
QueryTable,
|
|
17215
17398
|
{
|
|
17216
17399
|
...tableProps,
|
|
@@ -17224,7 +17407,7 @@ function GridTableLayoutComponent(props) {
|
|
|
17224
17407
|
) })
|
|
17225
17408
|
] });
|
|
17226
17409
|
}
|
|
17227
|
-
var GridTableLayout =
|
|
17410
|
+
var GridTableLayout = import_react100.default.memo(GridTableLayoutComponent);
|
|
17228
17411
|
function validateColumns(columns) {
|
|
17229
17412
|
for (const col of columns) {
|
|
17230
17413
|
if (!col.id || !col.name) {
|
|
@@ -17241,7 +17424,7 @@ function useGridTableLayoutState({
|
|
|
17241
17424
|
const filterFallback = { filterDefs: {}, storageKey: "unset-filter" };
|
|
17242
17425
|
const { filter, setFilter } = usePersistedFilter(persistedFilter ?? filterFallback);
|
|
17243
17426
|
const groupBy = useGroupBy(maybeGroupBy ?? { none: "none" });
|
|
17244
|
-
const [searchString, setSearchString] = (0,
|
|
17427
|
+
const [searchString, setSearchString] = (0, import_react100.useState)("");
|
|
17245
17428
|
const columnsFallback = "unset-columns";
|
|
17246
17429
|
const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(
|
|
17247
17430
|
persistedColumns?.storageKey ?? columnsFallback,
|
|
@@ -17261,29 +17444,30 @@ function useGridTableLayoutState({
|
|
|
17261
17444
|
};
|
|
17262
17445
|
}
|
|
17263
17446
|
function Header2(props) {
|
|
17264
|
-
const { pageTitle, breadcrumb, primaryAction, secondaryAction, tertiaryAction } = props;
|
|
17447
|
+
const { pageTitle, breadcrumb, primaryAction, secondaryAction, tertiaryAction, actionMenu } = props;
|
|
17265
17448
|
const tids = useTestIds(props);
|
|
17266
|
-
return /* @__PURE__ */ (0,
|
|
17267
|
-
/* @__PURE__ */ (0,
|
|
17268
|
-
breadcrumb && /* @__PURE__ */ (0,
|
|
17269
|
-
/* @__PURE__ */ (0,
|
|
17449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(FullBleed, { children: /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("header", { css: { ...Css.p3.mb3.mhPx(50).bgWhite.df.jcsb.aic.$ }, ...tids.header, children: [
|
|
17450
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { children: [
|
|
17451
|
+
breadcrumb && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(PageHeaderBreadcrumbs, { breadcrumb }),
|
|
17452
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("h1", { css: Css.xl2.mt1.$, ...tids.pageTitle, children: pageTitle })
|
|
17270
17453
|
] }),
|
|
17271
|
-
/* @__PURE__ */ (0,
|
|
17272
|
-
tertiaryAction && /* @__PURE__ */ (0,
|
|
17273
|
-
secondaryAction && /* @__PURE__ */ (0,
|
|
17274
|
-
primaryAction && /* @__PURE__ */ (0,
|
|
17454
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { css: Css.df.fwr.jcfe.gap1.aic.$, children: [
|
|
17455
|
+
tertiaryAction && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Button, { ...tertiaryAction, variant: "tertiary" }),
|
|
17456
|
+
secondaryAction && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Button, { ...secondaryAction, variant: "secondary" }),
|
|
17457
|
+
primaryAction && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Button, { ...primaryAction }),
|
|
17458
|
+
actionMenu && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ButtonMenu, { ...actionMenu, trigger: { icon: "verticalDots" } })
|
|
17275
17459
|
] })
|
|
17276
17460
|
] }) });
|
|
17277
17461
|
}
|
|
17278
17462
|
function SearchBox({ onSearch }) {
|
|
17279
17463
|
const [{ search: initialValue }, setQueryParams] = (0, import_use_query_params3.useQueryParams)({ search: import_use_query_params3.StringParam });
|
|
17280
|
-
const [value, setValue] = (0,
|
|
17464
|
+
const [value, setValue] = (0, import_react100.useState)(initialValue || "");
|
|
17281
17465
|
const [debouncedSearch] = (0, import_use_debounce7.useDebounce)(value, 300);
|
|
17282
|
-
(0,
|
|
17466
|
+
(0, import_react100.useEffect)(() => {
|
|
17283
17467
|
onSearch(debouncedSearch);
|
|
17284
17468
|
setQueryParams({ search: debouncedSearch || void 0 }, "replaceIn");
|
|
17285
17469
|
}, [debouncedSearch, onSearch, setQueryParams]);
|
|
17286
|
-
return /* @__PURE__ */ (0,
|
|
17470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { css: Css.wPx(244).$, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
17287
17471
|
TextField,
|
|
17288
17472
|
{
|
|
17289
17473
|
label: "Search",
|
|
@@ -17292,26 +17476,26 @@ function SearchBox({ onSearch }) {
|
|
|
17292
17476
|
onChange: (v) => setValue(v ?? ""),
|
|
17293
17477
|
placeholder: "Search",
|
|
17294
17478
|
clearable: true,
|
|
17295
|
-
startAdornment: /* @__PURE__ */ (0,
|
|
17479
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Icon, { icon: "search", color: "rgba(100, 100, 100, 1)" /* Gray700 */ })
|
|
17296
17480
|
}
|
|
17297
17481
|
) });
|
|
17298
17482
|
}
|
|
17299
17483
|
|
|
17300
17484
|
// src/components/Layout/PreventBrowserScroll.tsx
|
|
17301
|
-
var
|
|
17485
|
+
var import_jsx_runtime146 = require("@emotion/react/jsx-runtime");
|
|
17302
17486
|
function PreventBrowserScroll({ children }) {
|
|
17303
17487
|
return (
|
|
17304
17488
|
// Take over the full viewport and hide any overflown content.
|
|
17305
17489
|
// 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/
|
|
17306
17490
|
// 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.
|
|
17307
|
-
/* @__PURE__ */ (0,
|
|
17491
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.oh.vh100.mh("-webkit-fill-available").maxh("-webkit-fill-available").$, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.h100.df.fdc.mh0.oa.$, children }) })
|
|
17308
17492
|
);
|
|
17309
17493
|
}
|
|
17310
17494
|
|
|
17311
17495
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
17312
|
-
var
|
|
17313
|
-
var
|
|
17314
|
-
var RightPaneContext =
|
|
17496
|
+
var import_react101 = __toESM(require("react"), 1);
|
|
17497
|
+
var import_jsx_runtime147 = require("@emotion/react/jsx-runtime");
|
|
17498
|
+
var RightPaneContext = import_react101.default.createContext({
|
|
17315
17499
|
openInPane: () => {
|
|
17316
17500
|
},
|
|
17317
17501
|
closePane: () => {
|
|
@@ -17322,37 +17506,37 @@ var RightPaneContext = import_react99.default.createContext({
|
|
|
17322
17506
|
rightPaneContent: null
|
|
17323
17507
|
});
|
|
17324
17508
|
function RightPaneProvider({ children }) {
|
|
17325
|
-
const [rightPaneContent, setRightPaneContent] = (0,
|
|
17326
|
-
const [isRightPaneOpen, setIsRightPaneOpen] = (0,
|
|
17327
|
-
const openInPane = (0,
|
|
17509
|
+
const [rightPaneContent, setRightPaneContent] = (0, import_react101.useState)(void 0);
|
|
17510
|
+
const [isRightPaneOpen, setIsRightPaneOpen] = (0, import_react101.useState)(false);
|
|
17511
|
+
const openInPane = (0, import_react101.useCallback)(
|
|
17328
17512
|
(opts) => {
|
|
17329
17513
|
setRightPaneContent(opts?.content);
|
|
17330
17514
|
setIsRightPaneOpen(true);
|
|
17331
17515
|
},
|
|
17332
17516
|
[setRightPaneContent]
|
|
17333
17517
|
);
|
|
17334
|
-
const closePane = (0,
|
|
17335
|
-
const clearPane = (0,
|
|
17336
|
-
const context = (0,
|
|
17518
|
+
const closePane = (0, import_react101.useCallback)(() => setIsRightPaneOpen(false), []);
|
|
17519
|
+
const clearPane = (0, import_react101.useCallback)(() => setRightPaneContent(void 0), [setRightPaneContent]);
|
|
17520
|
+
const context = (0, import_react101.useMemo)(
|
|
17337
17521
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
17338
17522
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
17339
17523
|
);
|
|
17340
|
-
return /* @__PURE__ */ (0,
|
|
17524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(RightPaneContext.Provider, { value: context, children });
|
|
17341
17525
|
}
|
|
17342
17526
|
function useRightPaneContext() {
|
|
17343
|
-
return (0,
|
|
17527
|
+
return (0, import_react101.useContext)(RightPaneContext);
|
|
17344
17528
|
}
|
|
17345
17529
|
|
|
17346
17530
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
17347
17531
|
var import_framer_motion3 = require("framer-motion");
|
|
17348
|
-
var
|
|
17349
|
-
var
|
|
17532
|
+
var import_react102 = require("react");
|
|
17533
|
+
var import_jsx_runtime148 = require("@emotion/react/jsx-runtime");
|
|
17350
17534
|
function RightPaneLayout(props) {
|
|
17351
17535
|
const { children, paneBgColor = "rgba(255,255,255,1)" /* White */, paneWidth = 450, defaultPaneContent } = props;
|
|
17352
17536
|
const { isRightPaneOpen, rightPaneContent, clearPane, closePane } = useRightPaneContext();
|
|
17353
|
-
(0,
|
|
17354
|
-
return /* @__PURE__ */ (0,
|
|
17355
|
-
/* @__PURE__ */ (0,
|
|
17537
|
+
(0, import_react102.useEffect)(() => closePane, [closePane]);
|
|
17538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { css: Css.h100.df.oxh.$, children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(import_jsx_runtime148.Fragment, { children: [
|
|
17539
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
17356
17540
|
"div",
|
|
17357
17541
|
{
|
|
17358
17542
|
css: {
|
|
@@ -17363,15 +17547,15 @@ function RightPaneLayout(props) {
|
|
|
17363
17547
|
children
|
|
17364
17548
|
}
|
|
17365
17549
|
),
|
|
17366
|
-
/* @__PURE__ */ (0,
|
|
17367
|
-
defaultPaneContent && /* @__PURE__ */ (0,
|
|
17550
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { css: Css.relative.if(!!defaultPaneContent).wPx(paneWidth).$, children: [
|
|
17551
|
+
defaultPaneContent && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
17368
17552
|
"div",
|
|
17369
17553
|
{
|
|
17370
17554
|
css: Css.h100.wPx(paneWidth).left(0).absolute.add("transition", "all .3s ease-in-out").if(isRightPaneOpen).add("opacity", 0).left(100).$,
|
|
17371
17555
|
children: defaultPaneContent
|
|
17372
17556
|
}
|
|
17373
17557
|
),
|
|
17374
|
-
/* @__PURE__ */ (0,
|
|
17558
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(import_framer_motion3.AnimatePresence, { children: isRightPaneOpen && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
17375
17559
|
import_framer_motion3.motion.div,
|
|
17376
17560
|
{
|
|
17377
17561
|
layout: "position",
|
|
@@ -17400,8 +17584,8 @@ function useRightPane() {
|
|
|
17400
17584
|
}
|
|
17401
17585
|
|
|
17402
17586
|
// src/components/BeamContext.tsx
|
|
17403
|
-
var
|
|
17404
|
-
var BeamContext = (0,
|
|
17587
|
+
var import_jsx_runtime149 = require("@emotion/react/jsx-runtime");
|
|
17588
|
+
var BeamContext = (0, import_react103.createContext)({
|
|
17405
17589
|
modalState: new EmptyRef(),
|
|
17406
17590
|
modalCanCloseChecks: new EmptyRef(),
|
|
17407
17591
|
modalHeaderDiv: void 0,
|
|
@@ -17413,21 +17597,21 @@ var BeamContext = (0, import_react101.createContext)({
|
|
|
17413
17597
|
sdHeaderDiv: void 0
|
|
17414
17598
|
});
|
|
17415
17599
|
function BeamProvider({ children, ...presentationProps }) {
|
|
17416
|
-
const [, tick] = (0,
|
|
17417
|
-
const modalRef = (0,
|
|
17418
|
-
const modalHeaderDiv = (0,
|
|
17419
|
-
const modalBodyDiv = (0,
|
|
17600
|
+
const [, tick] = (0, import_react103.useReducer)((prev) => prev + 1, 0);
|
|
17601
|
+
const modalRef = (0, import_react103.useRef)();
|
|
17602
|
+
const modalHeaderDiv = (0, import_react103.useMemo)(() => document.createElement("div"), []);
|
|
17603
|
+
const modalBodyDiv = (0, import_react103.useMemo)(() => {
|
|
17420
17604
|
const el = document.createElement("div");
|
|
17421
17605
|
el.style.height = "100%";
|
|
17422
17606
|
return el;
|
|
17423
17607
|
}, []);
|
|
17424
|
-
const modalCanCloseChecksRef = (0,
|
|
17425
|
-
const modalFooterDiv = (0,
|
|
17426
|
-
const drawerContentStackRef = (0,
|
|
17427
|
-
const drawerCanCloseChecks = (0,
|
|
17428
|
-
const drawerCanCloseDetailsChecks = (0,
|
|
17429
|
-
const sdHeaderDiv = (0,
|
|
17430
|
-
const context = (0,
|
|
17608
|
+
const modalCanCloseChecksRef = (0, import_react103.useRef)([]);
|
|
17609
|
+
const modalFooterDiv = (0, import_react103.useMemo)(() => document.createElement("div"), []);
|
|
17610
|
+
const drawerContentStackRef = (0, import_react103.useRef)([]);
|
|
17611
|
+
const drawerCanCloseChecks = (0, import_react103.useRef)([]);
|
|
17612
|
+
const drawerCanCloseDetailsChecks = (0, import_react103.useRef)([]);
|
|
17613
|
+
const sdHeaderDiv = (0, import_react103.useMemo)(() => document.createElement("div"), []);
|
|
17614
|
+
const context = (0, import_react103.useMemo)(() => {
|
|
17431
17615
|
return {
|
|
17432
17616
|
// These two keys need to trigger re-renders on change
|
|
17433
17617
|
modalState: new PretendRefThatTicks(modalRef, tick),
|
|
@@ -17442,12 +17626,12 @@ function BeamProvider({ children, ...presentationProps }) {
|
|
|
17442
17626
|
sdHeaderDiv
|
|
17443
17627
|
};
|
|
17444
17628
|
}, [modalBodyDiv, modalFooterDiv, modalHeaderDiv, sdHeaderDiv]);
|
|
17445
|
-
return /* @__PURE__ */ (0,
|
|
17446
|
-
/* @__PURE__ */ (0,
|
|
17629
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(BeamContext.Provider, { value: { ...context }, children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(PresentationProvider, { ...presentationProps, children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(RightPaneProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(AutoSaveStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(SnackbarProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(ToastProvider, { children: [
|
|
17630
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(import_react_aria46.OverlayProvider, { children: [
|
|
17447
17631
|
children,
|
|
17448
|
-
modalRef.current && /* @__PURE__ */ (0,
|
|
17632
|
+
modalRef.current && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(Modal, { ...modalRef.current })
|
|
17449
17633
|
] }),
|
|
17450
|
-
/* @__PURE__ */ (0,
|
|
17634
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(SuperDrawer, {})
|
|
17451
17635
|
] }) }) }) }) }) });
|
|
17452
17636
|
}
|
|
17453
17637
|
var PretendRefThatTicks = class {
|
|
@@ -17464,24 +17648,24 @@ var PretendRefThatTicks = class {
|
|
|
17464
17648
|
}
|
|
17465
17649
|
};
|
|
17466
17650
|
function useBeamContext() {
|
|
17467
|
-
return (0,
|
|
17651
|
+
return (0, import_react103.useContext)(BeamContext);
|
|
17468
17652
|
}
|
|
17469
17653
|
|
|
17470
17654
|
// src/components/ButtonDatePicker.tsx
|
|
17471
|
-
var
|
|
17472
|
-
var
|
|
17473
|
-
var
|
|
17474
|
-
var
|
|
17655
|
+
var import_react104 = require("react");
|
|
17656
|
+
var import_react_aria47 = require("react-aria");
|
|
17657
|
+
var import_react_stately18 = require("react-stately");
|
|
17658
|
+
var import_jsx_runtime150 = require("@emotion/react/jsx-runtime");
|
|
17475
17659
|
function ButtonDatePicker(props) {
|
|
17476
17660
|
const { defaultOpen, disabled, trigger, onSelect, ...datePickerProps } = props;
|
|
17477
|
-
const state = (0,
|
|
17478
|
-
const buttonRef = (0,
|
|
17479
|
-
const { menuTriggerProps, menuProps } = (0,
|
|
17661
|
+
const state = (0, import_react_stately18.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
17662
|
+
const buttonRef = (0, import_react104.useRef)(null);
|
|
17663
|
+
const { menuTriggerProps, menuProps } = (0, import_react_aria47.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
17480
17664
|
const tid = useTestIds(
|
|
17481
17665
|
props,
|
|
17482
17666
|
isTextButton(trigger) ? defaultTestId(labelOr(trigger, "buttonDatePicker")) : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
17483
17667
|
);
|
|
17484
|
-
return /* @__PURE__ */ (0,
|
|
17668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(DatePickerOverlay, { overlayProps: menuProps, children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
17485
17669
|
DatePicker,
|
|
17486
17670
|
{
|
|
17487
17671
|
...datePickerProps,
|
|
@@ -17495,9 +17679,9 @@ function ButtonDatePicker(props) {
|
|
|
17495
17679
|
}
|
|
17496
17680
|
|
|
17497
17681
|
// src/components/ButtonGroup.tsx
|
|
17498
|
-
var
|
|
17499
|
-
var
|
|
17500
|
-
var
|
|
17682
|
+
var import_react105 = require("react");
|
|
17683
|
+
var import_react_aria48 = require("react-aria");
|
|
17684
|
+
var import_jsx_runtime151 = (
|
|
17501
17685
|
// Disable the button if the ButtonGroup is disabled or if the current button is disabled.
|
|
17502
17686
|
require("@emotion/react/jsx-runtime")
|
|
17503
17687
|
);
|
|
@@ -17506,21 +17690,21 @@ function ButtonGroup(props) {
|
|
|
17506
17690
|
const tid = useTestIds(props, "buttonGroup");
|
|
17507
17691
|
return (
|
|
17508
17692
|
// Adding `line-height: 0` prevent inheriting line-heights that might throw off sizing within the button group.
|
|
17509
|
-
/* @__PURE__ */ (0,
|
|
17693
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { ...tid, css: Css.df.lh(0).add({ ...sizeStyles2[size] }).$, children: buttons.map(({ disabled: buttonDisabled, ...buttonProps }, i) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, ...tid }, i)) })
|
|
17510
17694
|
);
|
|
17511
17695
|
}
|
|
17512
17696
|
function GroupButton(props) {
|
|
17513
17697
|
const { icon, iconInc, iconColor, text, active, onClick: onPress, disabled, size, tooltip, ...otherProps } = props;
|
|
17514
17698
|
const ariaProps = { onPress, isDisabled: !!disabled, ...otherProps };
|
|
17515
|
-
const ref = (0,
|
|
17516
|
-
const { buttonProps, isPressed } = (0,
|
|
17517
|
-
const { isFocusVisible, focusProps } = (0,
|
|
17518
|
-
const { hoverProps, isHovered } = (0,
|
|
17699
|
+
const ref = (0, import_react105.useRef)(null);
|
|
17700
|
+
const { buttonProps, isPressed } = (0, import_react_aria48.useButton)(ariaProps, ref);
|
|
17701
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria48.useFocusRing)();
|
|
17702
|
+
const { hoverProps, isHovered } = (0, import_react_aria48.useHover)(ariaProps);
|
|
17519
17703
|
const tid = useTestIds(props);
|
|
17520
|
-
return /* @__PURE__ */ (0,
|
|
17704
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { css: getButtonStyles2(), children: maybeTooltip({
|
|
17521
17705
|
title: resolveTooltip(disabled, tooltip),
|
|
17522
17706
|
placement: "top",
|
|
17523
|
-
children: /* @__PURE__ */ (0,
|
|
17707
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(
|
|
17524
17708
|
"button",
|
|
17525
17709
|
{
|
|
17526
17710
|
ref,
|
|
@@ -17537,7 +17721,7 @@ function GroupButton(props) {
|
|
|
17537
17721
|
},
|
|
17538
17722
|
...tid[defaultTestId(typeof text === "string" && text || icon || "button")],
|
|
17539
17723
|
children: [
|
|
17540
|
-
icon && /* @__PURE__ */ (0,
|
|
17724
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Icon, { xss: Css.if(!!text).mrPx(4).$, icon, color: disabled ? void 0 : iconColor, inc: iconInc }),
|
|
17541
17725
|
text
|
|
17542
17726
|
]
|
|
17543
17727
|
}
|
|
@@ -17570,70 +17754,21 @@ var iconStyles2 = {
|
|
|
17570
17754
|
md: Css.px1.$
|
|
17571
17755
|
};
|
|
17572
17756
|
|
|
17573
|
-
// src/components/ButtonMenu.tsx
|
|
17574
|
-
var import_react104 = require("react");
|
|
17575
|
-
var import_react_aria47 = require("react-aria");
|
|
17576
|
-
var import_react_stately18 = require("react-stately");
|
|
17577
|
-
var import_jsx_runtime150 = require("@emotion/react/jsx-runtime");
|
|
17578
|
-
function ButtonMenu(props) {
|
|
17579
|
-
const { defaultOpen, disabled, items, persistentItems, trigger, searchable, contrast = false } = props;
|
|
17580
|
-
let selectedItem, onChange;
|
|
17581
|
-
if (isSelectionButtonMenuProps(props)) {
|
|
17582
|
-
selectedItem = props.selectedItem;
|
|
17583
|
-
onChange = props.onChange;
|
|
17584
|
-
}
|
|
17585
|
-
const state = (0, import_react_stately18.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
17586
|
-
const buttonRef = (0, import_react104.useRef)(null);
|
|
17587
|
-
const { menuTriggerProps, menuProps } = (0, import_react_aria47.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
|
|
17588
|
-
const tid = useTestIds(
|
|
17589
|
-
props,
|
|
17590
|
-
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
17591
|
-
);
|
|
17592
|
-
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
17593
|
-
OverlayTrigger,
|
|
17594
|
-
{
|
|
17595
|
-
...props,
|
|
17596
|
-
menuTriggerProps,
|
|
17597
|
-
state,
|
|
17598
|
-
buttonRef,
|
|
17599
|
-
...tid,
|
|
17600
|
-
contrast,
|
|
17601
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
17602
|
-
Menu,
|
|
17603
|
-
{
|
|
17604
|
-
ariaMenuProps: menuProps,
|
|
17605
|
-
onClose: () => state.close(),
|
|
17606
|
-
items,
|
|
17607
|
-
persistentItems,
|
|
17608
|
-
searchable,
|
|
17609
|
-
contrast,
|
|
17610
|
-
selectedItem,
|
|
17611
|
-
onChange,
|
|
17612
|
-
...tid
|
|
17613
|
-
}
|
|
17614
|
-
)
|
|
17615
|
-
}
|
|
17616
|
-
);
|
|
17617
|
-
}
|
|
17618
|
-
function isSelectionButtonMenuProps(props) {
|
|
17619
|
-
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
17620
|
-
}
|
|
17621
|
-
|
|
17622
17757
|
// src/components/Card.tsx
|
|
17623
|
-
var
|
|
17624
|
-
var
|
|
17758
|
+
var import_react107 = require("react");
|
|
17759
|
+
var import_react_aria49 = require("react-aria");
|
|
17625
17760
|
|
|
17626
17761
|
// src/components/Tag.tsx
|
|
17627
|
-
var
|
|
17628
|
-
var
|
|
17629
|
-
var
|
|
17762
|
+
var import_utils115 = require("@react-aria/utils");
|
|
17763
|
+
var import_react106 = require("react");
|
|
17764
|
+
var import_jsx_runtime152 = require("@emotion/react/jsx-runtime");
|
|
17630
17765
|
function Tag(props) {
|
|
17631
17766
|
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
17632
17767
|
const typeStyles2 = getStyles(type);
|
|
17633
17768
|
const tid = useTestIds(otherProps);
|
|
17634
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
17635
|
-
const ref = (0,
|
|
17636
|
-
(0,
|
|
17769
|
+
const [showTooltip, setShowTooltip] = (0, import_react106.useState)(false);
|
|
17770
|
+
const ref = (0, import_react106.useRef)(null);
|
|
17771
|
+
(0, import_utils115.useResizeObserver)({
|
|
17637
17772
|
ref,
|
|
17638
17773
|
onResize: () => {
|
|
17639
17774
|
if (ref.current) {
|
|
@@ -17643,9 +17778,9 @@ function Tag(props) {
|
|
|
17643
17778
|
});
|
|
17644
17779
|
return maybeTooltip({
|
|
17645
17780
|
title: !preventTooltip && showTooltip ? text : void 0,
|
|
17646
|
-
children: /* @__PURE__ */ (0,
|
|
17647
|
-
otherProps.icon && /* @__PURE__ */ (0,
|
|
17648
|
-
/* @__PURE__ */ (0,
|
|
17781
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("span", { ...tid, css: { ...Css.dif.xs2Sb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
17782
|
+
otherProps.icon && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
17783
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
17649
17784
|
] })
|
|
17650
17785
|
});
|
|
17651
17786
|
}
|
|
@@ -17665,7 +17800,7 @@ function getStyles(type) {
|
|
|
17665
17800
|
}
|
|
17666
17801
|
|
|
17667
17802
|
// src/components/Card.tsx
|
|
17668
|
-
var
|
|
17803
|
+
var import_jsx_runtime153 = require("@emotion/react/jsx-runtime");
|
|
17669
17804
|
function Card(props) {
|
|
17670
17805
|
const {
|
|
17671
17806
|
title,
|
|
@@ -17680,10 +17815,10 @@ function Card(props) {
|
|
|
17680
17815
|
tag
|
|
17681
17816
|
} = props;
|
|
17682
17817
|
const tid = useTestIds(props, "card");
|
|
17683
|
-
const { hoverProps, isHovered } = (0,
|
|
17818
|
+
const { hoverProps, isHovered } = (0, import_react_aria49.useHover)({ isDisabled });
|
|
17684
17819
|
const isList = type === "list";
|
|
17685
17820
|
const imgHeight = isList ? 96 : bordered ? 224 : 256;
|
|
17686
|
-
const styles = (0,
|
|
17821
|
+
const styles = (0, import_react107.useMemo)(
|
|
17687
17822
|
() => ({
|
|
17688
17823
|
...baseStyles4(type),
|
|
17689
17824
|
...isList && listStyles,
|
|
@@ -17693,31 +17828,31 @@ function Card(props) {
|
|
|
17693
17828
|
}),
|
|
17694
17829
|
[isDisabled, isHovered, bordered, type, isList]
|
|
17695
17830
|
);
|
|
17696
|
-
return /* @__PURE__ */ (0,
|
|
17697
|
-
/* @__PURE__ */ (0,
|
|
17831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { css: styles, ...hoverProps, ...tid, children: [
|
|
17832
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
17698
17833
|
"div",
|
|
17699
17834
|
{
|
|
17700
17835
|
css: {
|
|
17701
17836
|
...Css.hPx(imgHeight).ba.br8.bcGray300.oh.df.asc.jsc.relative.add("filter", "brightness(1)").$,
|
|
17702
17837
|
...isHovered && !isList && imageHoverStyles
|
|
17703
17838
|
},
|
|
17704
|
-
children: /* @__PURE__ */ (0,
|
|
17839
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("img", { css: Css.w100.h100.objectFit(imageFit).$, src: imgSrc, alt: title, ...tid.img })
|
|
17705
17840
|
}
|
|
17706
17841
|
),
|
|
17707
|
-
isHovered && buttonMenuItems && /* @__PURE__ */ (0,
|
|
17842
|
+
isHovered && buttonMenuItems && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { css: Css.absolute.right1.top1.if(bordered && !isList).right3.top3.$, children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
17708
17843
|
ButtonMenu,
|
|
17709
17844
|
{
|
|
17710
17845
|
trigger: { icon: "verticalDots", color: isList ? "rgba(100, 100, 100, 1)" /* Gray700 */ : "rgba(255,255,255,1)" /* White */ },
|
|
17711
17846
|
items: buttonMenuItems
|
|
17712
17847
|
}
|
|
17713
17848
|
) }),
|
|
17714
|
-
tag && /* @__PURE__ */ (0,
|
|
17715
|
-
/* @__PURE__ */ (0,
|
|
17716
|
-
/* @__PURE__ */ (0,
|
|
17717
|
-
/* @__PURE__ */ (0,
|
|
17718
|
-
/* @__PURE__ */ (0,
|
|
17849
|
+
tag && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { css: Css.absolute.left1.topPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(Tag, { type: tag?.type, text: tag?.text, ...tid.tag }) }),
|
|
17850
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { css: Css.df.fdc.aifs.gap1.$, children: [
|
|
17851
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { children: [
|
|
17852
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { css: Css.xsSb.gray700.$, ...tid.subtitle, children: subtitle }),
|
|
17853
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { css: Css.smSb.gray900.if(isHovered).blue700.$, ...tid.title, children: title })
|
|
17719
17854
|
] }),
|
|
17720
|
-
/* @__PURE__ */ (0,
|
|
17855
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { ...tid.details, children: detailContent })
|
|
17721
17856
|
] })
|
|
17722
17857
|
] });
|
|
17723
17858
|
}
|
|
@@ -17730,9 +17865,9 @@ var cardHoverStyles = Css.bcGray400.cursorPointer.$;
|
|
|
17730
17865
|
var imageHoverStyles = Css.bgWhite.add("filter", "brightness(0.3)").add("transition", "filter 0.3s ease").$;
|
|
17731
17866
|
|
|
17732
17867
|
// src/components/Copy.tsx
|
|
17733
|
-
var
|
|
17868
|
+
var import_jsx_runtime154 = require("@emotion/react/jsx-runtime");
|
|
17734
17869
|
function Copy(props) {
|
|
17735
|
-
return /* @__PURE__ */ (0,
|
|
17870
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17736
17871
|
"div",
|
|
17737
17872
|
{
|
|
17738
17873
|
css: {
|
|
@@ -17746,43 +17881,43 @@ function Copy(props) {
|
|
|
17746
17881
|
|
|
17747
17882
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
17748
17883
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
17749
|
-
var
|
|
17884
|
+
var import_react109 = require("react");
|
|
17750
17885
|
|
|
17751
17886
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
17752
|
-
var
|
|
17753
|
-
var DnDGridContext = (0,
|
|
17887
|
+
var import_react108 = require("react");
|
|
17888
|
+
var DnDGridContext = (0, import_react108.createContext)({
|
|
17754
17889
|
dragEl: { current: void 0 },
|
|
17755
17890
|
onDragHandleKeyDown: () => {
|
|
17756
17891
|
}
|
|
17757
17892
|
});
|
|
17758
17893
|
function useDnDGridContext() {
|
|
17759
|
-
return (0,
|
|
17894
|
+
return (0, import_react108.useContext)(DnDGridContext);
|
|
17760
17895
|
}
|
|
17761
17896
|
|
|
17762
17897
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
17763
|
-
var
|
|
17898
|
+
var import_jsx_runtime155 = require("@emotion/react/jsx-runtime");
|
|
17764
17899
|
function DnDGrid(props) {
|
|
17765
17900
|
const { children, gridStyles, onReorder, activeItemStyles } = props;
|
|
17766
|
-
const gridEl = (0,
|
|
17767
|
-
const dragEl = (0,
|
|
17768
|
-
const cloneEl = (0,
|
|
17769
|
-
const initialOrder = (0,
|
|
17770
|
-
const reorderViaKeyboard = (0,
|
|
17771
|
-
const transformFrom = (0,
|
|
17901
|
+
const gridEl = (0, import_react109.useRef)(null);
|
|
17902
|
+
const dragEl = (0, import_react109.useRef)();
|
|
17903
|
+
const cloneEl = (0, import_react109.useRef)();
|
|
17904
|
+
const initialOrder = (0, import_react109.useRef)();
|
|
17905
|
+
const reorderViaKeyboard = (0, import_react109.useRef)(false);
|
|
17906
|
+
const transformFrom = (0, import_react109.useRef)({ x: 0, y: 0 });
|
|
17772
17907
|
const tid = useTestIds(props, "dndGrid");
|
|
17773
|
-
const getGridItems = (0,
|
|
17908
|
+
const getGridItems = (0, import_react109.useCallback)(() => {
|
|
17774
17909
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
17775
17910
|
}, []);
|
|
17776
|
-
const getGridItemIdOrder = (0,
|
|
17911
|
+
const getGridItemIdOrder = (0, import_react109.useCallback)(() => {
|
|
17777
17912
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
17778
17913
|
}, [getGridItems]);
|
|
17779
|
-
const initReorder = (0,
|
|
17914
|
+
const initReorder = (0, import_react109.useCallback)(() => {
|
|
17780
17915
|
if (gridEl.current && dragEl.current) {
|
|
17781
17916
|
initialOrder.current = getGridItemIdOrder();
|
|
17782
17917
|
dragEl.current.classList.add(activeGridItemClass);
|
|
17783
17918
|
}
|
|
17784
17919
|
}, [getGridItemIdOrder]);
|
|
17785
|
-
const commitReorder = (0,
|
|
17920
|
+
const commitReorder = (0, import_react109.useCallback)(() => {
|
|
17786
17921
|
if (gridEl.current && dragEl.current) {
|
|
17787
17922
|
const currentOrder = getGridItemIdOrder();
|
|
17788
17923
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -17792,7 +17927,7 @@ function DnDGrid(props) {
|
|
|
17792
17927
|
initialOrder.current = currentOrder;
|
|
17793
17928
|
}
|
|
17794
17929
|
}, [onReorder, getGridItemIdOrder]);
|
|
17795
|
-
const cancelReorder = (0,
|
|
17930
|
+
const cancelReorder = (0, import_react109.useCallback)(() => {
|
|
17796
17931
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
17797
17932
|
const currentOrder = getGridItemIdOrder();
|
|
17798
17933
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -17814,7 +17949,7 @@ function DnDGrid(props) {
|
|
|
17814
17949
|
reorderViaKeyboard.current = false;
|
|
17815
17950
|
}
|
|
17816
17951
|
}, [getGridItemIdOrder, getGridItems]);
|
|
17817
|
-
const onMove = (0,
|
|
17952
|
+
const onMove = (0, import_react109.useCallback)((e) => {
|
|
17818
17953
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
17819
17954
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
17820
17955
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -17835,7 +17970,7 @@ function DnDGrid(props) {
|
|
|
17835
17970
|
}
|
|
17836
17971
|
}
|
|
17837
17972
|
}, []);
|
|
17838
|
-
const onDragStart = (0,
|
|
17973
|
+
const onDragStart = (0, import_react109.useCallback)(
|
|
17839
17974
|
(e) => {
|
|
17840
17975
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
17841
17976
|
initReorder();
|
|
@@ -17866,7 +18001,7 @@ function DnDGrid(props) {
|
|
|
17866
18001
|
},
|
|
17867
18002
|
[initReorder, onMove]
|
|
17868
18003
|
);
|
|
17869
|
-
const onDragEnd = (0,
|
|
18004
|
+
const onDragEnd = (0, import_react109.useCallback)(
|
|
17870
18005
|
(e) => {
|
|
17871
18006
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
17872
18007
|
e.preventDefault();
|
|
@@ -17882,7 +18017,7 @@ function DnDGrid(props) {
|
|
|
17882
18017
|
},
|
|
17883
18018
|
[commitReorder, onMove]
|
|
17884
18019
|
);
|
|
17885
|
-
const onDragHandleKeyDown = (0,
|
|
18020
|
+
const onDragHandleKeyDown = (0, import_react109.useCallback)(
|
|
17886
18021
|
(e) => {
|
|
17887
18022
|
const moveHandle = e.target;
|
|
17888
18023
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -17933,7 +18068,7 @@ function DnDGrid(props) {
|
|
|
17933
18068
|
},
|
|
17934
18069
|
[cancelReorder, commitReorder, initReorder, getGridItems]
|
|
17935
18070
|
);
|
|
17936
|
-
return /* @__PURE__ */ (0,
|
|
18071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(DnDGridContext.Provider, { value: { dragEl, onDragHandleKeyDown }, children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
17937
18072
|
"div",
|
|
17938
18073
|
{
|
|
17939
18074
|
ref: gridEl,
|
|
@@ -17955,16 +18090,16 @@ var gridCloneKey = "dndgrid-clone";
|
|
|
17955
18090
|
var activeGridItemClass = "dndgrid-active";
|
|
17956
18091
|
|
|
17957
18092
|
// src/components/DnDGrid/DnDGridItemHandle.tsx
|
|
17958
|
-
var
|
|
17959
|
-
var
|
|
18093
|
+
var import_react_aria50 = require("react-aria");
|
|
18094
|
+
var import_jsx_runtime156 = require("@emotion/react/jsx-runtime");
|
|
17960
18095
|
function DnDGridItemHandle(props) {
|
|
17961
18096
|
const { dragHandleProps, icon = "move", compact = false, color } = props;
|
|
17962
|
-
const { focusProps, isFocusVisible } = (0,
|
|
17963
|
-
const { hoverProps, isHovered } = (0,
|
|
18097
|
+
const { focusProps, isFocusVisible } = (0, import_react_aria50.useFocusRing)();
|
|
18098
|
+
const { hoverProps, isHovered } = (0, import_react_aria50.useHover)({});
|
|
17964
18099
|
const tid = useTestIds(props, "dragHandle");
|
|
17965
18100
|
const iconButtonNormal2 = Css.hPx(28).wPx(28).br8.bw2.$;
|
|
17966
18101
|
const iconButtonCompact2 = Css.hPx(18).wPx(18).br4.bw1.$;
|
|
17967
|
-
return /* @__PURE__ */ (0,
|
|
18102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17968
18103
|
"button",
|
|
17969
18104
|
{
|
|
17970
18105
|
css: {
|
|
@@ -17972,19 +18107,19 @@ function DnDGridItemHandle(props) {
|
|
|
17972
18107
|
...Css.cursor("grab").bcTransparent.bss.bgTransparent.outline0.dif.aic.jcc.transition.if(isFocusVisible).bcBlue700.$,
|
|
17973
18108
|
...isHovered && Css.bgGray200.$
|
|
17974
18109
|
},
|
|
17975
|
-
...(0,
|
|
18110
|
+
...(0, import_react_aria50.mergeProps)(dragHandleProps, focusProps, hoverProps),
|
|
17976
18111
|
...tid,
|
|
17977
|
-
children: /* @__PURE__ */ (0,
|
|
18112
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon, inc: compact ? 2 : void 0, color })
|
|
17978
18113
|
}
|
|
17979
18114
|
);
|
|
17980
18115
|
}
|
|
17981
18116
|
|
|
17982
18117
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
17983
|
-
var
|
|
18118
|
+
var import_react110 = require("react");
|
|
17984
18119
|
function useDnDGridItem(props) {
|
|
17985
18120
|
const { id, itemRef } = props;
|
|
17986
18121
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
17987
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
18122
|
+
const { dragItemProps, dragHandleProps } = (0, import_react110.useMemo)(
|
|
17988
18123
|
() => {
|
|
17989
18124
|
function initDraggable() {
|
|
17990
18125
|
if (itemRef.current) {
|
|
@@ -18011,23 +18146,23 @@ function useDnDGridItem(props) {
|
|
|
18011
18146
|
}
|
|
18012
18147
|
|
|
18013
18148
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
18014
|
-
var
|
|
18149
|
+
var import_jsx_runtime157 = require("@emotion/react/jsx-runtime");
|
|
18015
18150
|
function ResponsiveGrid(props) {
|
|
18016
18151
|
const { children, ...hookProps } = props;
|
|
18017
18152
|
const { gridStyles } = useResponsiveGrid(hookProps);
|
|
18018
|
-
return /* @__PURE__ */ (0,
|
|
18153
|
+
return /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: { ...gridStyles }, children });
|
|
18019
18154
|
}
|
|
18020
18155
|
|
|
18021
18156
|
// src/components/Grid/ResponsiveGridItem.tsx
|
|
18022
|
-
var
|
|
18157
|
+
var import_jsx_runtime158 = require("@emotion/react/jsx-runtime");
|
|
18023
18158
|
function ResponsiveGridItem(props) {
|
|
18024
18159
|
const { colSpan, children } = props;
|
|
18025
18160
|
const { gridItemProps } = useResponsiveGridItem({ colSpan });
|
|
18026
|
-
return /* @__PURE__ */ (0,
|
|
18161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { ...gridItemProps, children });
|
|
18027
18162
|
}
|
|
18028
18163
|
|
|
18029
18164
|
// src/components/Grid/useResponsiveGrid.ts
|
|
18030
|
-
var
|
|
18165
|
+
var import_react111 = require("react");
|
|
18031
18166
|
|
|
18032
18167
|
// src/components/Grid/utils.ts
|
|
18033
18168
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
@@ -18035,7 +18170,7 @@ var gridItemDataAttribute = "data-grid-item-span";
|
|
|
18035
18170
|
// src/components/Grid/useResponsiveGrid.ts
|
|
18036
18171
|
function useResponsiveGrid(props) {
|
|
18037
18172
|
const { minColumnWidth, gap, columns } = props;
|
|
18038
|
-
const gridStyles = (0,
|
|
18173
|
+
const gridStyles = (0, import_react111.useMemo)(() => {
|
|
18039
18174
|
const gapCount = columns - 1;
|
|
18040
18175
|
const totalGapWidth = gap * gapCount;
|
|
18041
18176
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -18076,24 +18211,24 @@ function useResponsiveGridItem({ colSpan = 1 }) {
|
|
|
18076
18211
|
}
|
|
18077
18212
|
|
|
18078
18213
|
// src/components/HbLoadingSpinner.tsx
|
|
18079
|
-
var
|
|
18214
|
+
var import_react112 = __toESM(require("react"), 1);
|
|
18080
18215
|
|
|
18081
18216
|
// src/components/HbLoadingSpinner.base64.ts
|
|
18082
18217
|
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";
|
|
18083
18218
|
|
|
18084
18219
|
// src/components/HbLoadingSpinner.tsx
|
|
18085
|
-
var
|
|
18220
|
+
var import_jsx_runtime159 = require("@emotion/react/jsx-runtime");
|
|
18086
18221
|
function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }) {
|
|
18087
|
-
const ctx = (0,
|
|
18222
|
+
const ctx = (0, import_react112.useContext)(HbLoadingSpinnerContext);
|
|
18088
18223
|
const tid = useTestIds({}, "hbSpinner");
|
|
18089
|
-
const quip = (0,
|
|
18224
|
+
const quip = (0, import_react112.useMemo)(() => {
|
|
18090
18225
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
18091
18226
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
18092
18227
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
18093
18228
|
return allQuips[Math.floor(Math.random() * allQuips.length)];
|
|
18094
18229
|
}, [ctx.noQuips, ctx.quips, extraQuips, extraQuipsOnly, noQuips]);
|
|
18095
|
-
return /* @__PURE__ */ (0,
|
|
18096
|
-
/* @__PURE__ */ (0,
|
|
18230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("div", { css: Css.df.fdc.jcc.aic.$, ...tid, children: [
|
|
18231
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
18097
18232
|
"img",
|
|
18098
18233
|
{
|
|
18099
18234
|
src: HbLoadingSpinner_base64_default,
|
|
@@ -18106,7 +18241,7 @@ function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }
|
|
|
18106
18241
|
...tid.gif
|
|
18107
18242
|
}
|
|
18108
18243
|
),
|
|
18109
|
-
!iconOnly && /* @__PURE__ */ (0,
|
|
18244
|
+
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
18110
18245
|
"div",
|
|
18111
18246
|
{
|
|
18112
18247
|
"data-chromatic": "ignore",
|
|
@@ -18126,43 +18261,43 @@ var HB_QUIPS_MISSION = [
|
|
|
18126
18261
|
"In Service of Our Customers"
|
|
18127
18262
|
].map(dotDotDot);
|
|
18128
18263
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
18129
|
-
var HbLoadingSpinnerContext =
|
|
18264
|
+
var HbLoadingSpinnerContext = import_react112.default.createContext({
|
|
18130
18265
|
quips: ["Loading..."],
|
|
18131
18266
|
noQuips: false
|
|
18132
18267
|
});
|
|
18133
18268
|
function HbSpinnerProvider({ quips = [], children }) {
|
|
18134
|
-
const state = (0,
|
|
18135
|
-
return /* @__PURE__ */ (0,
|
|
18269
|
+
const state = (0, import_react112.useMemo)(() => ({ quips, noQuips: quips.length === 0 }), [quips]);
|
|
18270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(HbLoadingSpinnerContext.Provider, { value: state, children });
|
|
18136
18271
|
}
|
|
18137
18272
|
|
|
18138
18273
|
// src/components/MaxLines.tsx
|
|
18139
|
-
var
|
|
18140
|
-
var
|
|
18141
|
-
var
|
|
18274
|
+
var import_utils122 = require("@react-aria/utils");
|
|
18275
|
+
var import_react113 = require("react");
|
|
18276
|
+
var import_jsx_runtime160 = require("@emotion/react/jsx-runtime");
|
|
18142
18277
|
function MaxLines({ maxLines, children }) {
|
|
18143
|
-
const elRef = (0,
|
|
18144
|
-
const [hasMore, setHasMore] = (0,
|
|
18145
|
-
const [expanded, setExpanded] = (0,
|
|
18146
|
-
(0,
|
|
18278
|
+
const elRef = (0, import_react113.useRef)(null);
|
|
18279
|
+
const [hasMore, setHasMore] = (0, import_react113.useState)(false);
|
|
18280
|
+
const [expanded, setExpanded] = (0, import_react113.useState)(false);
|
|
18281
|
+
(0, import_utils122.useLayoutEffect)(() => {
|
|
18147
18282
|
if (!elRef.current) return;
|
|
18148
18283
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
18149
18284
|
}, []);
|
|
18150
|
-
(0,
|
|
18285
|
+
(0, import_react113.useEffect)(() => {
|
|
18151
18286
|
setExpanded(false);
|
|
18152
18287
|
}, [children]);
|
|
18153
|
-
const onResize = (0,
|
|
18288
|
+
const onResize = (0, import_react113.useCallback)(() => {
|
|
18154
18289
|
if (!elRef.current) return;
|
|
18155
18290
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
18156
18291
|
}, [expanded]);
|
|
18157
|
-
(0,
|
|
18158
|
-
return /* @__PURE__ */ (0,
|
|
18159
|
-
/* @__PURE__ */ (0,
|
|
18160
|
-
hasMore && /* @__PURE__ */ (0,
|
|
18292
|
+
(0, import_utils122.useResizeObserver)({ ref: elRef, onResize });
|
|
18293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { children: [
|
|
18294
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { ref: elRef, css: Css.if(!expanded).lineClamp(maxLines).$, children }),
|
|
18295
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("button", { css: Css.db.sm.$, onClick: () => setExpanded((prev) => !prev), children: expanded ? "Show Less" : "Show More" })
|
|
18161
18296
|
] });
|
|
18162
18297
|
}
|
|
18163
18298
|
|
|
18164
18299
|
// src/components/Pagination.tsx
|
|
18165
|
-
var
|
|
18300
|
+
var import_jsx_runtime161 = require("@emotion/react/jsx-runtime");
|
|
18166
18301
|
var defaultPage = { offset: 0, limit: 100 };
|
|
18167
18302
|
function Pagination(props) {
|
|
18168
18303
|
const { totalCount, pageSizes = [100, 500, 1e3] } = props;
|
|
@@ -18182,9 +18317,9 @@ function Pagination(props) {
|
|
|
18182
18317
|
}
|
|
18183
18318
|
}
|
|
18184
18319
|
const tid = useTestIds(props, "pagination");
|
|
18185
|
-
return /* @__PURE__ */ (0,
|
|
18186
|
-
/* @__PURE__ */ (0,
|
|
18187
|
-
/* @__PURE__ */ (0,
|
|
18320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { css: Css.df.bcGray200.bt.xs.gray500.px2.pt2.$, ...tid, children: [
|
|
18321
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { css: Css.df.mya.mr2.$, ...tid.pageSizeLabel, children: "Page size:" }),
|
|
18322
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { css: Css.wPx(78).$, children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
18188
18323
|
SelectField,
|
|
18189
18324
|
{
|
|
18190
18325
|
compact: true,
|
|
@@ -18197,15 +18332,15 @@ function Pagination(props) {
|
|
|
18197
18332
|
...tid.pageSize
|
|
18198
18333
|
}
|
|
18199
18334
|
) }),
|
|
18200
|
-
/* @__PURE__ */ (0,
|
|
18201
|
-
/* @__PURE__ */ (0,
|
|
18335
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { css: Css.mla.mya.df.$, children: [
|
|
18336
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { css: Css.df.mya.mr2.$, ...tid.pageInfoLabel, children: [
|
|
18202
18337
|
first,
|
|
18203
18338
|
" ",
|
|
18204
18339
|
showLast ? `- ${last}` : "",
|
|
18205
18340
|
" of ",
|
|
18206
18341
|
totalCount
|
|
18207
18342
|
] }),
|
|
18208
|
-
/* @__PURE__ */ (0,
|
|
18343
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
18209
18344
|
IconButton,
|
|
18210
18345
|
{
|
|
18211
18346
|
icon: "chevronLeft",
|
|
@@ -18215,7 +18350,7 @@ function Pagination(props) {
|
|
|
18215
18350
|
...tid.previousIcon
|
|
18216
18351
|
}
|
|
18217
18352
|
),
|
|
18218
|
-
/* @__PURE__ */ (0,
|
|
18353
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
18219
18354
|
IconButton,
|
|
18220
18355
|
{
|
|
18221
18356
|
icon: "chevronRight",
|
|
@@ -18243,9 +18378,9 @@ function toPageNumberSize(page) {
|
|
|
18243
18378
|
}
|
|
18244
18379
|
|
|
18245
18380
|
// src/components/ScrollShadows.tsx
|
|
18246
|
-
var
|
|
18247
|
-
var
|
|
18248
|
-
var
|
|
18381
|
+
var import_utils124 = require("@react-aria/utils");
|
|
18382
|
+
var import_react114 = require("react");
|
|
18383
|
+
var import_jsx_runtime162 = require("@emotion/react/jsx-runtime");
|
|
18249
18384
|
function ScrollShadows(props) {
|
|
18250
18385
|
const { children, xss, horizontal = false, bgColor = "rgba(255,255,255,1)" /* White */ } = props;
|
|
18251
18386
|
const { height = "auto", width: width2 = "auto" } = xss ?? {};
|
|
@@ -18253,10 +18388,10 @@ function ScrollShadows(props) {
|
|
|
18253
18388
|
if (!bgColor.includes("rgba")) {
|
|
18254
18389
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
18255
18390
|
}
|
|
18256
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
18257
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
18258
|
-
const scrollRef = (0,
|
|
18259
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
18391
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react114.useState)(false);
|
|
18392
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react114.useState)(false);
|
|
18393
|
+
const scrollRef = (0, import_react114.useRef)(null);
|
|
18394
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react114.useMemo)(() => {
|
|
18260
18395
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
18261
18396
|
const commonStyles = Css.absolute.z3.add({ pointerEvents: "none" }).$;
|
|
18262
18397
|
const startShadowStyles2 = !horizontal ? Css.top0.left0.right0.hPx(40).$ : Css.left0.top0.bottom0.wPx(25).$;
|
|
@@ -18268,7 +18403,7 @@ function ScrollShadows(props) {
|
|
|
18268
18403
|
{ ...commonStyles, ...endShadowStyles2, ...Css.add("background", endGradient).$ }
|
|
18269
18404
|
];
|
|
18270
18405
|
}, [horizontal, bgColor]);
|
|
18271
|
-
const updateScrollProps = (0,
|
|
18406
|
+
const updateScrollProps = (0, import_react114.useCallback)(
|
|
18272
18407
|
(el) => {
|
|
18273
18408
|
const { scrollTop, scrollHeight, clientHeight, scrollWidth, scrollLeft, clientWidth } = el;
|
|
18274
18409
|
const start = horizontal ? scrollLeft : scrollTop;
|
|
@@ -18279,17 +18414,17 @@ function ScrollShadows(props) {
|
|
|
18279
18414
|
},
|
|
18280
18415
|
[horizontal]
|
|
18281
18416
|
);
|
|
18282
|
-
const onResize = (0,
|
|
18283
|
-
(0,
|
|
18284
|
-
return /* @__PURE__ */ (0,
|
|
18417
|
+
const onResize = (0, import_react114.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
18418
|
+
(0, import_utils124.useResizeObserver)({ ref: scrollRef, onResize });
|
|
18419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
18285
18420
|
"div",
|
|
18286
18421
|
{
|
|
18287
18422
|
css: Css.relative.oh.h(height).w(width2).df.fd(!horizontal ? "column" : "row").$,
|
|
18288
18423
|
...tid,
|
|
18289
18424
|
children: [
|
|
18290
|
-
/* @__PURE__ */ (0,
|
|
18291
|
-
/* @__PURE__ */ (0,
|
|
18292
|
-
/* @__PURE__ */ (0,
|
|
18425
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { css: { ...startShadowStyles, opacity: showStartShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
18426
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { css: { ...endShadowStyles, opacity: showEndShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
18427
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
18293
18428
|
"div",
|
|
18294
18429
|
{
|
|
18295
18430
|
css: {
|
|
@@ -18307,10 +18442,10 @@ function ScrollShadows(props) {
|
|
|
18307
18442
|
}
|
|
18308
18443
|
|
|
18309
18444
|
// src/components/Snackbar/useSnackbar.tsx
|
|
18310
|
-
var
|
|
18445
|
+
var import_react115 = require("react");
|
|
18311
18446
|
function useSnackbar() {
|
|
18312
18447
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
18313
|
-
const onClose = (0,
|
|
18448
|
+
const onClose = (0, import_react115.useCallback)(
|
|
18314
18449
|
(noticeId) => {
|
|
18315
18450
|
setNotices((prev) => {
|
|
18316
18451
|
let returnValue = prev;
|
|
@@ -18327,7 +18462,7 @@ function useSnackbar() {
|
|
|
18327
18462
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18328
18463
|
[]
|
|
18329
18464
|
);
|
|
18330
|
-
const triggerNotice = (0,
|
|
18465
|
+
const triggerNotice = (0, import_react115.useCallback)(
|
|
18331
18466
|
(props) => {
|
|
18332
18467
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
18333
18468
|
let maybeTimeout;
|
|
@@ -18356,8 +18491,8 @@ function useSnackbar() {
|
|
|
18356
18491
|
},
|
|
18357
18492
|
[onClose, setNotices]
|
|
18358
18493
|
);
|
|
18359
|
-
const closeNotice = (0,
|
|
18360
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
18494
|
+
const closeNotice = (0, import_react115.useCallback)((id) => onClose(id), [onClose]);
|
|
18495
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react115.useEffect)(() => {
|
|
18361
18496
|
setOffset({ bottom });
|
|
18362
18497
|
return () => setOffset({});
|
|
18363
18498
|
}, [bottom]);
|
|
@@ -18366,9 +18501,9 @@ function useSnackbar() {
|
|
|
18366
18501
|
var snackbarId = 1;
|
|
18367
18502
|
|
|
18368
18503
|
// src/components/Stepper.tsx
|
|
18369
|
-
var
|
|
18370
|
-
var
|
|
18371
|
-
var
|
|
18504
|
+
var import_react116 = require("react");
|
|
18505
|
+
var import_react_aria51 = require("react-aria");
|
|
18506
|
+
var import_jsx_runtime163 = require("@emotion/react/jsx-runtime");
|
|
18372
18507
|
function Stepper(props) {
|
|
18373
18508
|
const { steps, currentStep, onChange } = props;
|
|
18374
18509
|
if (steps.length === 0) {
|
|
@@ -18379,25 +18514,25 @@ function Stepper(props) {
|
|
|
18379
18514
|
const maxStepWidth = 200;
|
|
18380
18515
|
const minStepWidth = 100;
|
|
18381
18516
|
const gap = 8;
|
|
18382
|
-
return /* @__PURE__ */ (0,
|
|
18383
|
-
/* @__PURE__ */ (0,
|
|
18517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("nav", { "aria-label": "steps", css: Css.df.fdc.w100.$, ...tid, children: [
|
|
18518
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("ol", { css: Css.listReset.df.gapPx(gap).$, children: steps.map((step) => {
|
|
18384
18519
|
const isCurrent = currentStep === step.value;
|
|
18385
|
-
return /* @__PURE__ */ (0,
|
|
18520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
18386
18521
|
"li",
|
|
18387
18522
|
{
|
|
18388
18523
|
css: Css.df.fg1.fdc.maxwPx(maxStepWidth).mwPx(minStepWidth).$,
|
|
18389
18524
|
"aria-current": isCurrent,
|
|
18390
18525
|
...tid.step,
|
|
18391
|
-
children: /* @__PURE__ */ (0,
|
|
18526
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton })
|
|
18392
18527
|
},
|
|
18393
18528
|
step.label
|
|
18394
18529
|
);
|
|
18395
18530
|
}) }),
|
|
18396
|
-
/* @__PURE__ */ (0,
|
|
18531
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
18397
18532
|
"div",
|
|
18398
18533
|
{
|
|
18399
18534
|
css: Css.mt1.bgGray300.hPx(4).maxwPx(steps.length * maxStepWidth + (steps.length - 1) * gap).mwPx(steps.length * minStepWidth + (steps.length - 1) * gap).w100.$,
|
|
18400
|
-
children: /* @__PURE__ */ (0,
|
|
18535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
18401
18536
|
"div",
|
|
18402
18537
|
{
|
|
18403
18538
|
css: Css.bgBlue600.add("transition", "width 200ms").h100.w(`${(lastCompletedStep + 1) / steps.length * 100}%`).$
|
|
@@ -18410,13 +18545,13 @@ function Stepper(props) {
|
|
|
18410
18545
|
function StepButton(props) {
|
|
18411
18546
|
const { label, disabled, state, isCurrent, onClick } = props;
|
|
18412
18547
|
const ariaProps = { onPress: onClick, isDisabled: disabled };
|
|
18413
|
-
const ref = (0,
|
|
18414
|
-
const { buttonProps, isPressed } = (0,
|
|
18415
|
-
const { isFocusVisible, focusProps } = (0,
|
|
18416
|
-
const { hoverProps, isHovered } = (0,
|
|
18548
|
+
const ref = (0, import_react116.useRef)(null);
|
|
18549
|
+
const { buttonProps, isPressed } = (0, import_react_aria51.useButton)(ariaProps, ref);
|
|
18550
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria51.useFocusRing)();
|
|
18551
|
+
const { hoverProps, isHovered } = (0, import_react_aria51.useHover)(ariaProps);
|
|
18417
18552
|
const focusRingStyles2 = state === "error" ? Css.bshDanger.$ : Css.bshFocus.$;
|
|
18418
18553
|
const tid = useTestIds(props, "stepButton");
|
|
18419
|
-
return /* @__PURE__ */ (0,
|
|
18554
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(
|
|
18420
18555
|
"button",
|
|
18421
18556
|
{
|
|
18422
18557
|
ref,
|
|
@@ -18434,7 +18569,7 @@ function StepButton(props) {
|
|
|
18434
18569
|
},
|
|
18435
18570
|
...tid[defaultTestId(label)],
|
|
18436
18571
|
children: [
|
|
18437
|
-
/* @__PURE__ */ (0,
|
|
18572
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { css: Css.fs0.mrPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
18438
18573
|
label
|
|
18439
18574
|
]
|
|
18440
18575
|
}
|
|
@@ -18442,12 +18577,12 @@ function StepButton(props) {
|
|
|
18442
18577
|
}
|
|
18443
18578
|
function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = false }) {
|
|
18444
18579
|
if (state === "error") {
|
|
18445
|
-
return /* @__PURE__ */ (0,
|
|
18580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(Icon, { icon: "errorCircle" });
|
|
18446
18581
|
}
|
|
18447
18582
|
if (state === "complete") {
|
|
18448
|
-
return /* @__PURE__ */ (0,
|
|
18583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(Icon, { icon: "check" });
|
|
18449
18584
|
}
|
|
18450
|
-
return /* @__PURE__ */ (0,
|
|
18585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { css: Css.wPx(24).hPx(24).df.aic.jcc.$, children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
18451
18586
|
"div",
|
|
18452
18587
|
{
|
|
18453
18588
|
css: Css.wPx(10).hPx(10).ba.bw2.br100.add("color", "currentColor").if(isHovered || isPressed || isCurrent).add("backgroundColor", "currentColor").$
|
|
@@ -18457,7 +18592,7 @@ function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = fal
|
|
|
18457
18592
|
|
|
18458
18593
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
18459
18594
|
var import_react_dom5 = require("react-dom");
|
|
18460
|
-
var
|
|
18595
|
+
var import_jsx_runtime164 = require("@emotion/react/jsx-runtime");
|
|
18461
18596
|
function SuperDrawerHeader(props) {
|
|
18462
18597
|
const { hideControls } = props;
|
|
18463
18598
|
const { sdHeaderDiv, drawerContentStack: contentStack } = useBeamContext();
|
|
@@ -18467,15 +18602,15 @@ function SuperDrawerHeader(props) {
|
|
|
18467
18602
|
const isDetail = currentContent !== firstContent;
|
|
18468
18603
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
18469
18604
|
return (0, import_react_dom5.createPortal)(
|
|
18470
|
-
/* @__PURE__ */ (0,
|
|
18471
|
-
isStructuredProps(props) ? /* @__PURE__ */ (0,
|
|
18472
|
-
/* @__PURE__ */ (0,
|
|
18473
|
-
typeof props.title === "string" ? /* @__PURE__ */ (0,
|
|
18605
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { css: Css.df.aic.jcsb.gap3.$, ...tid, children: [
|
|
18606
|
+
isStructuredProps(props) ? /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { css: Css.df.jcsb.aic.gap2.fg1.$, children: [
|
|
18607
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { css: Css.fg1.df.aic.gap2.$, children: [
|
|
18608
|
+
typeof props.title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("h1", { children: props.title }) : props.title,
|
|
18474
18609
|
props.left
|
|
18475
18610
|
] }),
|
|
18476
|
-
props.right && /* @__PURE__ */ (0,
|
|
18477
|
-
] }) : /* @__PURE__ */ (0,
|
|
18478
|
-
!hideControls && /* @__PURE__ */ (0,
|
|
18611
|
+
props.right && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { css: Css.fs0.$, children: props.right })
|
|
18612
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { css: Css.fg1.$, children: props.children }),
|
|
18613
|
+
!hideControls && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { css: Css.fs0.if(isDetail).vh.$, children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
18479
18614
|
ButtonGroup,
|
|
18480
18615
|
{
|
|
18481
18616
|
buttons: [
|
|
@@ -18494,18 +18629,18 @@ function isStructuredProps(props) {
|
|
|
18494
18629
|
}
|
|
18495
18630
|
|
|
18496
18631
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
18497
|
-
var
|
|
18632
|
+
var import_jsx_runtime165 = require("@emotion/react/jsx-runtime");
|
|
18498
18633
|
function ConfirmCloseModal(props) {
|
|
18499
18634
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
18500
18635
|
const { modalState } = useBeamContext();
|
|
18501
18636
|
function closeModal() {
|
|
18502
18637
|
modalState.current = void 0;
|
|
18503
18638
|
}
|
|
18504
|
-
return /* @__PURE__ */ (0,
|
|
18505
|
-
/* @__PURE__ */ (0,
|
|
18506
|
-
/* @__PURE__ */ (0,
|
|
18507
|
-
/* @__PURE__ */ (0,
|
|
18508
|
-
/* @__PURE__ */ (0,
|
|
18639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(import_jsx_runtime165.Fragment, { children: [
|
|
18640
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
18641
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
18642
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(ModalFooter, { children: [
|
|
18643
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
18509
18644
|
Button,
|
|
18510
18645
|
{
|
|
18511
18646
|
variant: "quaternary",
|
|
@@ -18516,7 +18651,7 @@ function ConfirmCloseModal(props) {
|
|
|
18516
18651
|
}
|
|
18517
18652
|
}
|
|
18518
18653
|
),
|
|
18519
|
-
/* @__PURE__ */ (0,
|
|
18654
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(Button, { label: continueText, onClick: closeModal })
|
|
18520
18655
|
] })
|
|
18521
18656
|
] });
|
|
18522
18657
|
}
|
|
@@ -18525,8 +18660,8 @@ function ConfirmCloseModal(props) {
|
|
|
18525
18660
|
var import_framer_motion4 = require("framer-motion");
|
|
18526
18661
|
|
|
18527
18662
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
18528
|
-
var
|
|
18529
|
-
var
|
|
18663
|
+
var import_react117 = require("react");
|
|
18664
|
+
var import_jsx_runtime166 = require("@emotion/react/jsx-runtime");
|
|
18530
18665
|
function useSuperDrawer() {
|
|
18531
18666
|
const {
|
|
18532
18667
|
drawerContentStack: contentStack,
|
|
@@ -18538,7 +18673,7 @@ function useSuperDrawer() {
|
|
|
18538
18673
|
function canCloseDrawerDetails(i, doChange) {
|
|
18539
18674
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
18540
18675
|
if (!canClose(canCloseDrawerDetail)) {
|
|
18541
|
-
openModal({ content: /* @__PURE__ */ (0,
|
|
18676
|
+
openModal({ content: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
18542
18677
|
return false;
|
|
18543
18678
|
}
|
|
18544
18679
|
}
|
|
@@ -18558,14 +18693,14 @@ function useSuperDrawer() {
|
|
|
18558
18693
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
18559
18694
|
if (!canClose(canCloseDrawer)) {
|
|
18560
18695
|
openModal({
|
|
18561
|
-
content: /* @__PURE__ */ (0,
|
|
18696
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
18562
18697
|
});
|
|
18563
18698
|
return;
|
|
18564
18699
|
}
|
|
18565
18700
|
}
|
|
18566
18701
|
doChange();
|
|
18567
18702
|
}
|
|
18568
|
-
const closeActions = (0,
|
|
18703
|
+
const closeActions = (0, import_react117.useMemo)(
|
|
18569
18704
|
() => {
|
|
18570
18705
|
return {
|
|
18571
18706
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -18600,7 +18735,7 @@ function useSuperDrawer() {
|
|
|
18600
18735
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18601
18736
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
18602
18737
|
);
|
|
18603
|
-
const actions = (0,
|
|
18738
|
+
const actions = (0, import_react117.useMemo)(
|
|
18604
18739
|
() => {
|
|
18605
18740
|
return {
|
|
18606
18741
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -18653,7 +18788,7 @@ function canClose(canCloseCheck) {
|
|
|
18653
18788
|
}
|
|
18654
18789
|
|
|
18655
18790
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
18656
|
-
var
|
|
18791
|
+
var import_jsx_runtime167 = require("@emotion/react/jsx-runtime");
|
|
18657
18792
|
var SuperDrawerContent = ({ children, actions }) => {
|
|
18658
18793
|
const { closeDrawerDetail } = useSuperDrawer();
|
|
18659
18794
|
const { drawerContentStack: contentStack } = useBeamContext();
|
|
@@ -18662,17 +18797,17 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
18662
18797
|
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
18663
18798
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
18664
18799
|
if (kind === "open") {
|
|
18665
|
-
return /* @__PURE__ */ (0,
|
|
18800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.oa.$, children: children2 }, "content");
|
|
18666
18801
|
} else if (kind === "detail") {
|
|
18667
|
-
return /* @__PURE__ */ (0,
|
|
18802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
18668
18803
|
import_framer_motion4.motion.div,
|
|
18669
18804
|
{
|
|
18670
18805
|
css: Css.px3.pt2.pb3.fg1.$,
|
|
18671
18806
|
animate: { overflow: "auto" },
|
|
18672
18807
|
transition: { overflow: { delay: 0.3 } },
|
|
18673
18808
|
children: [
|
|
18674
|
-
/* @__PURE__ */ (0,
|
|
18675
|
-
/* @__PURE__ */ (0,
|
|
18809
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
18810
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
18676
18811
|
import_framer_motion4.motion.div,
|
|
18677
18812
|
{
|
|
18678
18813
|
initial: { x: width2, opacity: 0 },
|
|
@@ -18688,27 +18823,27 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
18688
18823
|
"content"
|
|
18689
18824
|
);
|
|
18690
18825
|
} else {
|
|
18691
|
-
return /* @__PURE__ */ (0,
|
|
18826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.$, style: { overflow: "auto" } }, "content");
|
|
18692
18827
|
}
|
|
18693
18828
|
}
|
|
18694
|
-
return /* @__PURE__ */ (0,
|
|
18829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(import_jsx_runtime167.Fragment, { children: [
|
|
18695
18830
|
wrapWithMotionAndMaybeBack(children),
|
|
18696
|
-
actions && /* @__PURE__ */ (0,
|
|
18831
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("footer", { css: Css.bt.bcGray200.p3.df.aic.jcfe.$, children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { css: Css.df.gap1.$, children: actions.map((buttonProps, i) => /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(Button, { ...buttonProps }, i)) }) })
|
|
18697
18832
|
] });
|
|
18698
18833
|
};
|
|
18699
18834
|
|
|
18700
18835
|
// src/components/Tabs.tsx
|
|
18701
18836
|
var import_change_case7 = require("change-case");
|
|
18702
|
-
var
|
|
18703
|
-
var
|
|
18837
|
+
var import_react118 = require("react");
|
|
18838
|
+
var import_react_aria52 = require("react-aria");
|
|
18704
18839
|
var import_react_router2 = require("react-router");
|
|
18705
18840
|
var import_react_router_dom5 = require("react-router-dom");
|
|
18706
|
-
var
|
|
18841
|
+
var import_jsx_runtime168 = require("@emotion/react/jsx-runtime");
|
|
18707
18842
|
function TabsWithContent(props) {
|
|
18708
18843
|
const styles = hideTabs(props) ? {} : Css.pt3.$;
|
|
18709
|
-
return /* @__PURE__ */ (0,
|
|
18710
|
-
/* @__PURE__ */ (0,
|
|
18711
|
-
/* @__PURE__ */ (0,
|
|
18844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(import_jsx_runtime168.Fragment, { children: [
|
|
18845
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Tabs, { ...props }),
|
|
18846
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(TabContent, { ...props, contentXss: { ...styles, ...props.contentXss } })
|
|
18712
18847
|
] });
|
|
18713
18848
|
}
|
|
18714
18849
|
function TabContent(props) {
|
|
@@ -18723,7 +18858,7 @@ function TabContent(props) {
|
|
|
18723
18858
|
return (
|
|
18724
18859
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
18725
18860
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
18726
|
-
/* @__PURE__ */ (0,
|
|
18861
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(FullBleed, { omitPadding: "paddingLeft" in contentXss || "paddingRight" in contentXss, children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
18727
18862
|
"div",
|
|
18728
18863
|
{
|
|
18729
18864
|
"aria-labelledby": `${uniqueValue}-tab`,
|
|
@@ -18732,7 +18867,7 @@ function TabContent(props) {
|
|
|
18732
18867
|
tabIndex: 0,
|
|
18733
18868
|
...tid.panel,
|
|
18734
18869
|
css: contentXss,
|
|
18735
|
-
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0,
|
|
18870
|
+
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react_router2.Route, { path: selectedTab.path, render: selectedTab.render }) : selectedTab.render()
|
|
18736
18871
|
}
|
|
18737
18872
|
) })
|
|
18738
18873
|
);
|
|
@@ -18743,11 +18878,11 @@ function Tabs(props) {
|
|
|
18743
18878
|
const selected = isRouteTabs(props) ? uniqueTabValue(
|
|
18744
18879
|
props.tabs.find((t) => !!(0, import_react_router2.matchPath)(location.pathname, { path: t.path, exact: true })) || props.tabs[0]
|
|
18745
18880
|
) : props.selected;
|
|
18746
|
-
const { isFocusVisible, focusProps } = (0,
|
|
18881
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria52.useFocusRing)();
|
|
18747
18882
|
const tid = useTestIds(others, "tabs");
|
|
18748
|
-
const [active, setActive] = (0,
|
|
18749
|
-
const ref = (0,
|
|
18750
|
-
(0,
|
|
18883
|
+
const [active, setActive] = (0, import_react118.useState)(selected);
|
|
18884
|
+
const ref = (0, import_react118.useRef)(null);
|
|
18885
|
+
(0, import_react118.useEffect)(() => setActive(selected), [selected]);
|
|
18751
18886
|
function onKeyUp(e) {
|
|
18752
18887
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
18753
18888
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -18763,10 +18898,10 @@ function Tabs(props) {
|
|
|
18763
18898
|
setActive(selected);
|
|
18764
18899
|
}
|
|
18765
18900
|
}
|
|
18766
|
-
return /* @__PURE__ */ (0,
|
|
18767
|
-
!hideTabs(props) && /* @__PURE__ */ (0,
|
|
18901
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { css: { ...Css.df.aic.oa.wsnw.gap1.$, ...includeBottomBorder ? { ...Css.bb.bcGray200.$ } : {} }, children: [
|
|
18902
|
+
!hideTabs(props) && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { ref, css: Css.dif.gap1.asfe.$, "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
18768
18903
|
const uniqueValue = uniqueTabValue(tab);
|
|
18769
|
-
return /* @__PURE__ */ (0,
|
|
18904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
18770
18905
|
TabImpl,
|
|
18771
18906
|
{
|
|
18772
18907
|
active: active === uniqueValue,
|
|
@@ -18781,15 +18916,15 @@ function Tabs(props) {
|
|
|
18781
18916
|
uniqueValue
|
|
18782
18917
|
);
|
|
18783
18918
|
}) }),
|
|
18784
|
-
right && /* @__PURE__ */ (0,
|
|
18919
|
+
right && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { css: Css.mla.df.aic.gap1.pb1.$, children: right })
|
|
18785
18920
|
] });
|
|
18786
18921
|
}
|
|
18787
18922
|
function TabImpl(props) {
|
|
18788
18923
|
const { tab, onClick, active, onKeyUp, onBlur, focusProps, isFocusVisible = false, ...others } = props;
|
|
18789
18924
|
const { disabled = false, name: label, icon, endAdornment } = tab;
|
|
18790
18925
|
const isDisabled = !!disabled;
|
|
18791
|
-
const { hoverProps, isHovered } = (0,
|
|
18792
|
-
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0,
|
|
18926
|
+
const { hoverProps, isHovered } = (0, import_react_aria52.useHover)({ isDisabled });
|
|
18927
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0, import_react118.useMemo)(
|
|
18793
18928
|
() => getTabStyles(),
|
|
18794
18929
|
[]
|
|
18795
18930
|
);
|
|
@@ -18811,20 +18946,20 @@ function TabImpl(props) {
|
|
|
18811
18946
|
...isFocusVisible && active && focusRingStyles2
|
|
18812
18947
|
}
|
|
18813
18948
|
};
|
|
18814
|
-
const interactiveProps = (0,
|
|
18949
|
+
const interactiveProps = (0, import_react_aria52.mergeProps)(focusProps, hoverProps, {
|
|
18815
18950
|
onKeyUp,
|
|
18816
18951
|
onBlur,
|
|
18817
18952
|
...isRouteTab(tab) ? {} : { onClick: () => onClick(tab.value) }
|
|
18818
18953
|
});
|
|
18819
|
-
const tabLabel = /* @__PURE__ */ (0,
|
|
18954
|
+
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(import_jsx_runtime168.Fragment, { children: [
|
|
18820
18955
|
label,
|
|
18821
|
-
(icon || endAdornment) && /* @__PURE__ */ (0,
|
|
18956
|
+
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { css: Css.ml1.$, children: icon ? /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Icon, { icon }) : endAdornment })
|
|
18822
18957
|
] });
|
|
18823
18958
|
return isDisabled ? maybeTooltip({
|
|
18824
18959
|
title: resolveTooltip(disabled),
|
|
18825
18960
|
placement: "top",
|
|
18826
|
-
children: /* @__PURE__ */ (0,
|
|
18827
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */ (0,
|
|
18961
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { ...tabProps, children: tabLabel })
|
|
18962
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react_router_dom5.Link, { ...{ ...tabProps, ...interactiveProps }, className: "navLink", to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("button", { ...{ ...tabProps, ...interactiveProps }, children: tabLabel });
|
|
18828
18963
|
}
|
|
18829
18964
|
function getTabStyles() {
|
|
18830
18965
|
const borderBottomWidthPx = 4;
|
|
@@ -18861,10 +18996,10 @@ function hideTabs(props) {
|
|
|
18861
18996
|
}
|
|
18862
18997
|
|
|
18863
18998
|
// src/components/Toast/useToast.tsx
|
|
18864
|
-
var
|
|
18999
|
+
var import_react119 = require("react");
|
|
18865
19000
|
function useToast() {
|
|
18866
19001
|
const { setNotice, clear } = useToastContext();
|
|
18867
|
-
const showToast = (0,
|
|
19002
|
+
const showToast = (0, import_react119.useCallback)((props) => setNotice(props), [setNotice]);
|
|
18868
19003
|
return { showToast, clear };
|
|
18869
19004
|
}
|
|
18870
19005
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -18933,6 +19068,7 @@ function useToast() {
|
|
|
18933
19068
|
EditColumnsButton,
|
|
18934
19069
|
ErrorMessage,
|
|
18935
19070
|
FieldGroup,
|
|
19071
|
+
FilterDropdownMenu,
|
|
18936
19072
|
FilterModal,
|
|
18937
19073
|
Filters,
|
|
18938
19074
|
FormDivider,
|