@homebound/beam 2.387.1 → 2.389.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +616 -447
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +62 -18
- package/dist/index.d.ts +62 -18
- package/dist/index.js +603 -437
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -70,6 +70,7 @@ __export(index_exports, {
|
|
|
70
70
|
ButtonGroup: () => ButtonGroup,
|
|
71
71
|
ButtonMenu: () => ButtonMenu,
|
|
72
72
|
ButtonModal: () => ButtonModal,
|
|
73
|
+
Card: () => Card,
|
|
73
74
|
Checkbox: () => Checkbox,
|
|
74
75
|
CheckboxGroup: () => CheckboxGroup,
|
|
75
76
|
Chip: () => Chip,
|
|
@@ -98,6 +99,7 @@ __export(index_exports, {
|
|
|
98
99
|
FormHeading: () => FormHeading,
|
|
99
100
|
FormLines: () => FormLines,
|
|
100
101
|
FormPageLayout: () => FormPageLayout,
|
|
102
|
+
FormRow: () => FormRow,
|
|
101
103
|
FullBleed: () => FullBleed,
|
|
102
104
|
GridTable: () => GridTable,
|
|
103
105
|
HB_QUIPS_FLAVOR: () => HB_QUIPS_FLAVOR,
|
|
@@ -231,6 +233,7 @@ __export(index_exports, {
|
|
|
231
233
|
isPersistentItem: () => isPersistentItem,
|
|
232
234
|
isPersistentKey: () => isPersistentKey,
|
|
233
235
|
isValidDate: () => isValidDate,
|
|
236
|
+
listFieldPrefix: () => listFieldPrefix,
|
|
234
237
|
loadArrayOrUndefined: () => loadArrayOrUndefined,
|
|
235
238
|
matchesFilter: () => matchesFilter,
|
|
236
239
|
maybeApplyFunction: () => maybeApplyFunction,
|
|
@@ -6884,7 +6887,7 @@ function NavLink(props) {
|
|
|
6884
6887
|
const { buttonProps, isPressed } = (0, import_react_aria7.useButton)({ ...ariaProps, elementType: href ? "a" : "button" }, ref);
|
|
6885
6888
|
const { hoverProps, isHovered } = (0, import_react_aria7.useHover)({ isDisabled });
|
|
6886
6889
|
const { isFocusVisible, focusProps } = (0, import_react_aria7.useFocusRing)(ariaProps);
|
|
6887
|
-
const { baseStyles:
|
|
6890
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3 } = (0, import_react21.useMemo)(
|
|
6888
6891
|
() => getNavLinkStyles(variant, contrast),
|
|
6889
6892
|
[variant, contrast]
|
|
6890
6893
|
);
|
|
@@ -6896,9 +6899,9 @@ function NavLink(props) {
|
|
|
6896
6899
|
/** aria-current represents the current page within a set of pages */
|
|
6897
6900
|
"aria-current": active ? "page" : void 0,
|
|
6898
6901
|
css: {
|
|
6899
|
-
...
|
|
6902
|
+
...baseStyles5,
|
|
6900
6903
|
...active && activeStyles4,
|
|
6901
|
-
...isDisabled &&
|
|
6904
|
+
...isDisabled && disabledStyles4,
|
|
6902
6905
|
...isFocusVisible && focusRingStyles2,
|
|
6903
6906
|
...isHovered && hoverStyles4,
|
|
6904
6907
|
...isPressed && pressedStyles3
|
|
@@ -7096,7 +7099,7 @@ function Button(props) {
|
|
|
7096
7099
|
);
|
|
7097
7100
|
const { isFocusVisible, focusProps } = (0, import_react_aria9.useFocusRing)(ariaProps);
|
|
7098
7101
|
const { hoverProps, isHovered } = (0, import_react_aria9.useHover)(ariaProps);
|
|
7099
|
-
const { baseStyles:
|
|
7102
|
+
const { baseStyles: baseStyles5, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, pressedStyles: pressedStyles3, focusStyles: focusStyles2 } = (0, import_react23.useMemo)(
|
|
7100
7103
|
() => getButtonStyles(variant, size, contrast),
|
|
7101
7104
|
[variant, size, contrast]
|
|
7102
7105
|
);
|
|
@@ -7113,10 +7116,10 @@ function Button(props) {
|
|
|
7113
7116
|
className: asLink ? navLink : void 0,
|
|
7114
7117
|
css: {
|
|
7115
7118
|
...Css.buttonBase.tt("inherit").$,
|
|
7116
|
-
...
|
|
7119
|
+
...baseStyles5,
|
|
7117
7120
|
...isHovered && !isPressed ? hoverStyles4 : {},
|
|
7118
7121
|
...isPressed ? pressedStyles3 : {},
|
|
7119
|
-
...isDisabled || asyncInProgress ? { ...
|
|
7122
|
+
...isDisabled || asyncInProgress ? { ...disabledStyles4, ...Css.cursorNotAllowed.$ } : {},
|
|
7120
7123
|
...isFocusVisible || forceFocusStyles ? focusStyles2 : {}
|
|
7121
7124
|
},
|
|
7122
7125
|
...tid
|
|
@@ -7306,17 +7309,17 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds) {
|
|
|
7306
7309
|
calcColumnSizes(columns, tableWidth, style.minWidthPx, expandedColumnIds)
|
|
7307
7310
|
);
|
|
7308
7311
|
const setTableAndColumnWidths = (0, import_react26.useCallback)(
|
|
7309
|
-
(
|
|
7310
|
-
setTableWidth(
|
|
7311
|
-
setColumnSizes(calcColumnSizes(columns,
|
|
7312
|
+
(width2) => {
|
|
7313
|
+
setTableWidth(width2);
|
|
7314
|
+
setColumnSizes(calcColumnSizes(columns, width2, style.minWidthPx, expandedColumnIds));
|
|
7312
7315
|
},
|
|
7313
7316
|
[setTableWidth, setColumnSizes, columns, style, expandedColumnIds]
|
|
7314
7317
|
);
|
|
7315
7318
|
(0, import_react26.useEffect)(
|
|
7316
7319
|
() => {
|
|
7317
7320
|
if (!calculateImmediately.current) {
|
|
7318
|
-
const
|
|
7319
|
-
|
|
7321
|
+
const width2 = resizeRef.current?.clientWidth;
|
|
7322
|
+
width2 && setTableAndColumnWidths(width2);
|
|
7320
7323
|
}
|
|
7321
7324
|
},
|
|
7322
7325
|
// TODO: validate this eslint-disable. It was automatically ignored as part of https://app.shortcut.com/homebound-team/story/40033/enable-react-hooks-exhaustive-deps-for-react-projects
|
|
@@ -14148,7 +14151,7 @@ function Modal(props) {
|
|
|
14148
14151
|
);
|
|
14149
14152
|
const { modalProps } = (0, import_react_aria41.useModal)();
|
|
14150
14153
|
const { dialogProps, titleProps } = (0, import_react_aria41.useDialog)({ role: "dialog" }, ref);
|
|
14151
|
-
const [[
|
|
14154
|
+
const [[width2, height], setSize] = (0, import_react74.useState)(getSize(size));
|
|
14152
14155
|
const modalBodyRef = (0, import_react74.useRef)(null);
|
|
14153
14156
|
const modalFooterRef = (0, import_react74.useRef)(null);
|
|
14154
14157
|
const modalHeaderRef = (0, import_react74.useRef)(null);
|
|
@@ -14186,7 +14189,7 @@ function Modal(props) {
|
|
|
14186
14189
|
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(ModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_react_aria41.OverlayContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(AutoSaveStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { css: Css.underlay.z4.$, ...underlayProps, ...testId.underlay, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_react_aria41.FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
14187
14190
|
"div",
|
|
14188
14191
|
{
|
|
14189
|
-
css: Css.br24.bgWhite.bshModal.oh.maxh("90vh").df.fdc.wPx(
|
|
14192
|
+
css: Css.br24.bgWhite.bshModal.oh.maxh("90vh").df.fdc.wPx(width2).mhPx(defaultMinHeight).if(isFixedHeight).hPx(height).if(sm).add("height", "100dvh").add("width", "100dvw").maxh("none").br0.$,
|
|
14190
14193
|
ref,
|
|
14191
14194
|
...overlayProps,
|
|
14192
14195
|
...dialogProps,
|
|
@@ -14341,7 +14344,7 @@ function SuperDrawer() {
|
|
|
14341
14344
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
14342
14345
|
const { content } = currentContent ?? {};
|
|
14343
14346
|
const firstContent = contentStack.current[0]?.opts;
|
|
14344
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
14347
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
14345
14348
|
(0, import_react77.useEffect)(
|
|
14346
14349
|
() => {
|
|
14347
14350
|
if (headerRef.current?.childNodes.length === 0 && content) {
|
|
@@ -14369,11 +14372,11 @@ function SuperDrawer() {
|
|
|
14369
14372
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
14370
14373
|
import_framer_motion.motion.aside,
|
|
14371
14374
|
{
|
|
14372
|
-
css: Css.bgWhite.h100.maxw(px(
|
|
14373
|
-
initial: { x:
|
|
14375
|
+
css: Css.bgWhite.h100.maxw(px(width2)).w100.df.fdc.relative.$,
|
|
14376
|
+
initial: { x: width2 },
|
|
14374
14377
|
animate: { x: 0 },
|
|
14375
14378
|
transition: { ease: "linear", duration: 0.2, delay: 0.2 },
|
|
14376
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
14379
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
14377
14380
|
onClick: (e) => e.stopPropagation(),
|
|
14378
14381
|
children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(AutoSaveStatusProvider, { children: [
|
|
14379
14382
|
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("header", { css: Css.p3.bb.bcGray200.df.aic.jcsb.gap3.$, children: [
|
|
@@ -14736,9 +14739,93 @@ function BoundIconCardGroupField(props) {
|
|
|
14736
14739
|
) });
|
|
14737
14740
|
}
|
|
14738
14741
|
|
|
14739
|
-
// src/forms/
|
|
14742
|
+
// src/forms/BoundListField.tsx
|
|
14740
14743
|
var import_mobx_react9 = require("mobx-react");
|
|
14741
14744
|
var import_jsx_runtime100 = require("@emotion/react/jsx-runtime");
|
|
14745
|
+
function ListField({ row, formState }) {
|
|
14746
|
+
const listFieldEntry = Object.entries(row).find(([key, _]) => isListFieldKey(key));
|
|
14747
|
+
const [prefixedFormKey, fieldConfig] = listFieldEntry;
|
|
14748
|
+
const listFieldKey = prefixedFormKey.replace(
|
|
14749
|
+
new RegExp(`^listField(.)`),
|
|
14750
|
+
(_, c) => c.toLowerCase()
|
|
14751
|
+
);
|
|
14752
|
+
const listFieldConfig = fieldConfig;
|
|
14753
|
+
const listFieldObjectState = formState[listFieldKey];
|
|
14754
|
+
const { filterDeleted, onNew } = listFieldConfig;
|
|
14755
|
+
const tid = useTestIds({}, "listField");
|
|
14756
|
+
const filteredRows = useComputed(
|
|
14757
|
+
() => filterDeleted ? listFieldObjectState.rows.filter((rowState) => filterDeleted(rowState)) : listFieldObjectState.rows,
|
|
14758
|
+
[filterDeleted]
|
|
14759
|
+
);
|
|
14760
|
+
const listIsValid = useComputed(() => listFieldObjectState.valid, [filteredRows]);
|
|
14761
|
+
return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_mobx_react9.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { css: Css.df.fdc.gap3.$, ...tid, children: [
|
|
14762
|
+
filteredRows.map((rowState, index) => /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
14763
|
+
ListFieldRowInputs,
|
|
14764
|
+
{
|
|
14765
|
+
rowState,
|
|
14766
|
+
rowNumber: index + 1,
|
|
14767
|
+
listFieldConfig,
|
|
14768
|
+
formState,
|
|
14769
|
+
listFieldKey
|
|
14770
|
+
},
|
|
14771
|
+
`listFieldRowInputs-${listFieldKey}-${index}`
|
|
14772
|
+
)),
|
|
14773
|
+
/* @__PURE__ */ (0, import_jsx_runtime100.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
14774
|
+
Button,
|
|
14775
|
+
{
|
|
14776
|
+
icon: "plus",
|
|
14777
|
+
label: `Add ${listFieldConfig.name}`,
|
|
14778
|
+
onClick: () => onNew(listFieldObjectState),
|
|
14779
|
+
variant: "secondary",
|
|
14780
|
+
disabled: !listIsValid
|
|
14781
|
+
}
|
|
14782
|
+
) })
|
|
14783
|
+
] }) });
|
|
14784
|
+
}
|
|
14785
|
+
function ListFieldRowInputs({
|
|
14786
|
+
rowState,
|
|
14787
|
+
rowNumber,
|
|
14788
|
+
listFieldConfig,
|
|
14789
|
+
formState,
|
|
14790
|
+
listFieldKey
|
|
14791
|
+
}) {
|
|
14792
|
+
const { onDelete } = listFieldConfig;
|
|
14793
|
+
const tid = useTestIds({}, "listFieldRow");
|
|
14794
|
+
return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_jsx_runtime100.Fragment, { children: [
|
|
14795
|
+
/* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { css: Css.df.jcsb.$, ...tid, children: [
|
|
14796
|
+
/* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("span", { css: Css.baseSb.$, ...tid.name, children: [
|
|
14797
|
+
listFieldConfig.name,
|
|
14798
|
+
" ",
|
|
14799
|
+
rowNumber
|
|
14800
|
+
] }),
|
|
14801
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
14802
|
+
ButtonMenu,
|
|
14803
|
+
{
|
|
14804
|
+
trigger: { icon: "verticalDots" },
|
|
14805
|
+
items: [{ label: "Delete", onClick: () => onDelete(formState[listFieldKey], rowState) }],
|
|
14806
|
+
...tid.menu
|
|
14807
|
+
}
|
|
14808
|
+
)
|
|
14809
|
+
] }),
|
|
14810
|
+
listFieldConfig.rows.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(FormRow, { row, formState: rowState }, `listField-${listFieldKey}-row-${rowIndex}`))
|
|
14811
|
+
] });
|
|
14812
|
+
}
|
|
14813
|
+
function isListFieldKey(key) {
|
|
14814
|
+
return key.toString().startsWith(listFieldPrefix);
|
|
14815
|
+
}
|
|
14816
|
+
function isListFieldRow(row) {
|
|
14817
|
+
const rowKeys = Object.keys(row);
|
|
14818
|
+
const maybeListFieldKey = rowKeys.find((key) => isListFieldKey(key));
|
|
14819
|
+
if (maybeListFieldKey) {
|
|
14820
|
+
if (rowKeys.length > 1) fail("List fields cannot be combined with other fields in the same row");
|
|
14821
|
+
return true;
|
|
14822
|
+
}
|
|
14823
|
+
return false;
|
|
14824
|
+
}
|
|
14825
|
+
|
|
14826
|
+
// src/forms/BoundMultiLineSelectField.tsx
|
|
14827
|
+
var import_mobx_react10 = require("mobx-react");
|
|
14828
|
+
var import_jsx_runtime101 = require("@emotion/react/jsx-runtime");
|
|
14742
14829
|
function BoundMultiLineSelectField(props) {
|
|
14743
14830
|
const {
|
|
14744
14831
|
field,
|
|
@@ -14755,7 +14842,7 @@ function BoundMultiLineSelectField(props) {
|
|
|
14755
14842
|
...others
|
|
14756
14843
|
} = props;
|
|
14757
14844
|
const testId = useTestIds(props, field.key);
|
|
14758
|
-
return /* @__PURE__ */ (0,
|
|
14845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_mobx_react10.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
14759
14846
|
MultiLineSelectField,
|
|
14760
14847
|
{
|
|
14761
14848
|
label,
|
|
@@ -14785,8 +14872,8 @@ function BoundMultiLineSelectField(props) {
|
|
|
14785
14872
|
}
|
|
14786
14873
|
|
|
14787
14874
|
// src/forms/BoundMultiSelectField.tsx
|
|
14788
|
-
var
|
|
14789
|
-
var
|
|
14875
|
+
var import_mobx_react11 = require("mobx-react");
|
|
14876
|
+
var import_jsx_runtime102 = require("@emotion/react/jsx-runtime");
|
|
14790
14877
|
function BoundMultiSelectField(props) {
|
|
14791
14878
|
const {
|
|
14792
14879
|
field,
|
|
@@ -14803,7 +14890,7 @@ function BoundMultiSelectField(props) {
|
|
|
14803
14890
|
...others
|
|
14804
14891
|
} = props;
|
|
14805
14892
|
const testId = useTestIds(props, field.key);
|
|
14806
|
-
return /* @__PURE__ */ (0,
|
|
14893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_mobx_react11.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
14807
14894
|
MultiSelectField,
|
|
14808
14895
|
{
|
|
14809
14896
|
label,
|
|
@@ -14833,8 +14920,8 @@ function BoundMultiSelectField(props) {
|
|
|
14833
14920
|
}
|
|
14834
14921
|
|
|
14835
14922
|
// src/forms/BoundNumberField.tsx
|
|
14836
|
-
var
|
|
14837
|
-
var
|
|
14923
|
+
var import_mobx_react12 = require("mobx-react");
|
|
14924
|
+
var import_jsx_runtime103 = require("@emotion/react/jsx-runtime");
|
|
14838
14925
|
function BoundNumberField(props) {
|
|
14839
14926
|
const {
|
|
14840
14927
|
field,
|
|
@@ -14848,7 +14935,7 @@ function BoundNumberField(props) {
|
|
|
14848
14935
|
...others
|
|
14849
14936
|
} = props;
|
|
14850
14937
|
const testId = useTestIds(props, label || field.key);
|
|
14851
|
-
return /* @__PURE__ */ (0,
|
|
14938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_mobx_react12.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
|
|
14852
14939
|
NumberField,
|
|
14853
14940
|
{
|
|
14854
14941
|
label,
|
|
@@ -14877,8 +14964,8 @@ function BoundNumberField(props) {
|
|
|
14877
14964
|
}
|
|
14878
14965
|
|
|
14879
14966
|
// src/forms/BoundRadioGroupField.tsx
|
|
14880
|
-
var
|
|
14881
|
-
var
|
|
14967
|
+
var import_mobx_react13 = require("mobx-react");
|
|
14968
|
+
var import_jsx_runtime104 = require("@emotion/react/jsx-runtime");
|
|
14882
14969
|
function BoundRadioGroupField(props) {
|
|
14883
14970
|
const {
|
|
14884
14971
|
field,
|
|
@@ -14889,7 +14976,7 @@ function BoundRadioGroupField(props) {
|
|
|
14889
14976
|
...others
|
|
14890
14977
|
} = props;
|
|
14891
14978
|
const testId = useTestIds(props, field.key);
|
|
14892
|
-
return /* @__PURE__ */ (0,
|
|
14979
|
+
return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_mobx_react13.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
14893
14980
|
RadioGroupField,
|
|
14894
14981
|
{
|
|
14895
14982
|
label,
|
|
@@ -14914,8 +15001,8 @@ function BoundRadioGroupField(props) {
|
|
|
14914
15001
|
}
|
|
14915
15002
|
|
|
14916
15003
|
// src/forms/BoundRichTextField.tsx
|
|
14917
|
-
var
|
|
14918
|
-
var
|
|
15004
|
+
var import_mobx_react14 = require("mobx-react");
|
|
15005
|
+
var import_jsx_runtime105 = require("@emotion/react/jsx-runtime");
|
|
14919
15006
|
function BoundRichTextField(props) {
|
|
14920
15007
|
const {
|
|
14921
15008
|
field,
|
|
@@ -14927,7 +15014,7 @@ function BoundRichTextField(props) {
|
|
|
14927
15014
|
...others
|
|
14928
15015
|
} = props;
|
|
14929
15016
|
const testId = useTestIds(props, field.key);
|
|
14930
|
-
return /* @__PURE__ */ (0,
|
|
15017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_mobx_react14.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
|
|
14931
15018
|
RichTextField,
|
|
14932
15019
|
{
|
|
14933
15020
|
label,
|
|
@@ -14949,8 +15036,8 @@ function BoundRichTextField(props) {
|
|
|
14949
15036
|
}
|
|
14950
15037
|
|
|
14951
15038
|
// src/forms/BoundSelectField.tsx
|
|
14952
|
-
var
|
|
14953
|
-
var
|
|
15039
|
+
var import_mobx_react15 = require("mobx-react");
|
|
15040
|
+
var import_jsx_runtime106 = require("@emotion/react/jsx-runtime");
|
|
14954
15041
|
function BoundSelectField(props) {
|
|
14955
15042
|
const {
|
|
14956
15043
|
field,
|
|
@@ -14965,7 +15052,7 @@ function BoundSelectField(props) {
|
|
|
14965
15052
|
...others
|
|
14966
15053
|
} = props;
|
|
14967
15054
|
const testId = useTestIds(props, field.key);
|
|
14968
|
-
return /* @__PURE__ */ (0,
|
|
15055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_mobx_react15.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
14969
15056
|
SelectField,
|
|
14970
15057
|
{
|
|
14971
15058
|
label,
|
|
@@ -14995,8 +15082,8 @@ function BoundSelectField(props) {
|
|
|
14995
15082
|
}
|
|
14996
15083
|
|
|
14997
15084
|
// src/forms/BoundSwitchField.tsx
|
|
14998
|
-
var
|
|
14999
|
-
var
|
|
15085
|
+
var import_mobx_react16 = require("mobx-react");
|
|
15086
|
+
var import_jsx_runtime107 = require("@emotion/react/jsx-runtime");
|
|
15000
15087
|
function BoundSwitchField(props) {
|
|
15001
15088
|
const {
|
|
15002
15089
|
field,
|
|
@@ -15007,7 +15094,7 @@ function BoundSwitchField(props) {
|
|
|
15007
15094
|
...others
|
|
15008
15095
|
} = props;
|
|
15009
15096
|
const testId = useTestIds(props, field.key);
|
|
15010
|
-
return /* @__PURE__ */ (0,
|
|
15097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_mobx_react16.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
15011
15098
|
Switch,
|
|
15012
15099
|
{
|
|
15013
15100
|
label,
|
|
@@ -15025,8 +15112,8 @@ function BoundSwitchField(props) {
|
|
|
15025
15112
|
}
|
|
15026
15113
|
|
|
15027
15114
|
// src/forms/BoundTextAreaField.tsx
|
|
15028
|
-
var
|
|
15029
|
-
var
|
|
15115
|
+
var import_mobx_react17 = require("mobx-react");
|
|
15116
|
+
var import_jsx_runtime108 = require("@emotion/react/jsx-runtime");
|
|
15030
15117
|
function BoundTextAreaField(props) {
|
|
15031
15118
|
const {
|
|
15032
15119
|
field,
|
|
@@ -15039,7 +15126,7 @@ function BoundTextAreaField(props) {
|
|
|
15039
15126
|
...others
|
|
15040
15127
|
} = props;
|
|
15041
15128
|
const testId = useTestIds(props, field.key);
|
|
15042
|
-
return /* @__PURE__ */ (0,
|
|
15129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_mobx_react17.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
15043
15130
|
TextAreaField,
|
|
15044
15131
|
{
|
|
15045
15132
|
label,
|
|
@@ -15067,8 +15154,8 @@ function BoundTextAreaField(props) {
|
|
|
15067
15154
|
}
|
|
15068
15155
|
|
|
15069
15156
|
// src/forms/BoundTextField.tsx
|
|
15070
|
-
var
|
|
15071
|
-
var
|
|
15157
|
+
var import_mobx_react18 = require("mobx-react");
|
|
15158
|
+
var import_jsx_runtime109 = require("@emotion/react/jsx-runtime");
|
|
15072
15159
|
function BoundTextField(props) {
|
|
15073
15160
|
const {
|
|
15074
15161
|
field,
|
|
@@ -15081,7 +15168,7 @@ function BoundTextField(props) {
|
|
|
15081
15168
|
...others
|
|
15082
15169
|
} = props;
|
|
15083
15170
|
const testId = useTestIds(props, field.key);
|
|
15084
|
-
return /* @__PURE__ */ (0,
|
|
15171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_mobx_react18.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
15085
15172
|
TextField,
|
|
15086
15173
|
{
|
|
15087
15174
|
label,
|
|
@@ -15109,12 +15196,12 @@ function BoundTextField(props) {
|
|
|
15109
15196
|
}
|
|
15110
15197
|
|
|
15111
15198
|
// src/forms/BoundToggleChipGroupField.tsx
|
|
15112
|
-
var
|
|
15113
|
-
var
|
|
15199
|
+
var import_mobx_react19 = require("mobx-react");
|
|
15200
|
+
var import_jsx_runtime110 = require("@emotion/react/jsx-runtime");
|
|
15114
15201
|
function BoundToggleChipGroupField(props) {
|
|
15115
15202
|
const { field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
|
|
15116
15203
|
const testId = useTestIds(props, field.key);
|
|
15117
|
-
return /* @__PURE__ */ (0,
|
|
15204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_mobx_react19.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
15118
15205
|
ToggleChipGroup,
|
|
15119
15206
|
{
|
|
15120
15207
|
label,
|
|
@@ -15128,8 +15215,8 @@ function BoundToggleChipGroupField(props) {
|
|
|
15128
15215
|
}
|
|
15129
15216
|
|
|
15130
15217
|
// src/forms/BoundTreeSelectField.tsx
|
|
15131
|
-
var
|
|
15132
|
-
var
|
|
15218
|
+
var import_mobx_react20 = require("mobx-react");
|
|
15219
|
+
var import_jsx_runtime111 = require("@emotion/react/jsx-runtime");
|
|
15133
15220
|
function BoundTreeSelectField(props) {
|
|
15134
15221
|
const {
|
|
15135
15222
|
field,
|
|
@@ -15146,7 +15233,7 @@ function BoundTreeSelectField(props) {
|
|
|
15146
15233
|
...others
|
|
15147
15234
|
} = props;
|
|
15148
15235
|
const testId = useTestIds(props, field.key);
|
|
15149
|
-
return /* @__PURE__ */ (0,
|
|
15236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_mobx_react20.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
15150
15237
|
TreeSelectField,
|
|
15151
15238
|
{
|
|
15152
15239
|
label,
|
|
@@ -15177,12 +15264,12 @@ function BoundTreeSelectField(props) {
|
|
|
15177
15264
|
|
|
15178
15265
|
// src/forms/FormLines.tsx
|
|
15179
15266
|
var import_react80 = require("react");
|
|
15180
|
-
var
|
|
15267
|
+
var import_jsx_runtime112 = require("@emotion/react/jsx-runtime");
|
|
15181
15268
|
function FormLines(props) {
|
|
15182
15269
|
const { inModal } = useModal();
|
|
15183
15270
|
const {
|
|
15184
15271
|
children,
|
|
15185
|
-
width = inModal ? "full" : "lg",
|
|
15272
|
+
width: width2 = inModal ? "full" : "lg",
|
|
15186
15273
|
labelSuffix,
|
|
15187
15274
|
labelStyle,
|
|
15188
15275
|
compact,
|
|
@@ -15195,14 +15282,14 @@ function FormLines(props) {
|
|
|
15195
15282
|
..."labelStyle" in props ? { labelStyle } : {},
|
|
15196
15283
|
..."compact" in props ? { compact } : {},
|
|
15197
15284
|
..."labelLeftFieldWidth" in props ? { labelLeftFieldWidth } : {},
|
|
15198
|
-
...
|
|
15285
|
+
...width2 === "full" ? { fullWidth: true } : {}
|
|
15199
15286
|
};
|
|
15200
|
-
return /* @__PURE__ */ (0,
|
|
15287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(PresentationProvider, { fieldProps: newFieldProps, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
15201
15288
|
"div",
|
|
15202
15289
|
{
|
|
15203
15290
|
css: {
|
|
15204
15291
|
// Note that we're purposefully not using display:flex so that our children's margins will collapse.
|
|
15205
|
-
...Css.w(sizes[
|
|
15292
|
+
...Css.w(sizes[width2]).$,
|
|
15206
15293
|
// Purposefully use this instead of childGap3 to put margin-bottom on the last line
|
|
15207
15294
|
"& > *": Css.mb(gap).$
|
|
15208
15295
|
},
|
|
@@ -15219,15 +15306,15 @@ function FormLines(props) {
|
|
|
15219
15306
|
) });
|
|
15220
15307
|
}
|
|
15221
15308
|
function FormDivider() {
|
|
15222
|
-
return /* @__PURE__ */ (0,
|
|
15309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { css: Css.hPx(1).my2.bgGray200.$ });
|
|
15223
15310
|
}
|
|
15224
15311
|
function FieldGroup(props) {
|
|
15225
15312
|
const { title, children, widths: widths2 = [] } = props;
|
|
15226
15313
|
const gtc = children.map((_, i) => {
|
|
15227
|
-
const
|
|
15228
|
-
return typeof
|
|
15314
|
+
const width2 = widths2[i] || 1;
|
|
15315
|
+
return typeof width2 === `number` ? `${width2}fr` : width2;
|
|
15229
15316
|
}).join(" ");
|
|
15230
|
-
return /* @__PURE__ */ (0,
|
|
15317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { css: Css.dg.gap2.gtc(gtc).$, children });
|
|
15231
15318
|
}
|
|
15232
15319
|
var sizes = {
|
|
15233
15320
|
full: "100%",
|
|
@@ -15237,12 +15324,18 @@ var sizes = {
|
|
|
15237
15324
|
};
|
|
15238
15325
|
|
|
15239
15326
|
// src/forms/BoundForm.tsx
|
|
15240
|
-
var
|
|
15327
|
+
var import_jsx_runtime113 = require("@emotion/react/jsx-runtime");
|
|
15241
15328
|
var reactNodePrefix = "reactNode";
|
|
15329
|
+
var listFieldPrefix = "listField";
|
|
15242
15330
|
function BoundForm(props) {
|
|
15243
15331
|
const { rows, formState } = props;
|
|
15244
15332
|
const tid = useTestIds({}, "boundForm");
|
|
15245
|
-
|
|
15333
|
+
const getRowKey = (0, import_react81.useCallback)((row, rowType) => {
|
|
15334
|
+
return `${rowType}-${Object.keys(row).join("-")}`;
|
|
15335
|
+
}, []);
|
|
15336
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(FormLines, { width: "full", gap: 3.5, children: rows.map(
|
|
15337
|
+
(row) => isListFieldRow(row) ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(ListField, { row, formState }, getRowKey(row, "listField")) : /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(FormRow, { row, formState }, getRowKey(row, "fieldGroup"))
|
|
15338
|
+
) }) });
|
|
15246
15339
|
}
|
|
15247
15340
|
function FormRow({ row, formState }) {
|
|
15248
15341
|
const tid = useTestIds({}, "boundFormRow");
|
|
@@ -15254,129 +15347,133 @@ function FormRow({ row, formState }) {
|
|
|
15254
15347
|
const { component, minWidth } = fieldFn(field);
|
|
15255
15348
|
return { component, key, minWidth };
|
|
15256
15349
|
}
|
|
15350
|
+
if (isCustomReactNodeKey(key) && typeof fieldFnOrCustomNode === "function") {
|
|
15351
|
+
const nodeAsFunction = fieldFnOrCustomNode;
|
|
15352
|
+
return { component: nodeAsFunction(formState), key };
|
|
15353
|
+
}
|
|
15257
15354
|
return { component: fieldFnOrCustomNode, key };
|
|
15258
15355
|
});
|
|
15259
15356
|
}, [row, formState]);
|
|
15260
15357
|
const isLoading = useComputed(() => formState.loading, [formState]);
|
|
15261
15358
|
const itemFlexBasis = 100 / componentsWithConfig.length - 3;
|
|
15262
|
-
return /* @__PURE__ */ (0,
|
|
15359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { css: Css.df.fww.aic.gap2.$, ...tid, children: componentsWithConfig.map(({ component, key, minWidth }) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { css: Css.mw(minWidth).fb(`${itemFlexBasis}%`).fg1.$, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(LoadingSkeleton, { size: "lg" }) : component }, key.toString())) });
|
|
15263
15360
|
}
|
|
15264
15361
|
function isCustomReactNodeKey(key) {
|
|
15265
15362
|
return key.toString().startsWith(reactNodePrefix);
|
|
15266
15363
|
}
|
|
15267
15364
|
function boundSelectField(props) {
|
|
15268
15365
|
return (field) => ({
|
|
15269
|
-
component: /* @__PURE__ */ (0,
|
|
15366
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundSelectField, { field, ...props }),
|
|
15270
15367
|
minWidth: "200px"
|
|
15271
15368
|
});
|
|
15272
15369
|
}
|
|
15273
15370
|
function boundMultiSelectField(props) {
|
|
15274
15371
|
return (field) => ({
|
|
15275
|
-
component: /* @__PURE__ */ (0,
|
|
15372
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundMultiSelectField, { field, ...props }),
|
|
15276
15373
|
minWidth: "200px"
|
|
15277
15374
|
});
|
|
15278
15375
|
}
|
|
15279
15376
|
function boundMultilineSelectField(props) {
|
|
15280
15377
|
return (field) => ({
|
|
15281
|
-
component: /* @__PURE__ */ (0,
|
|
15378
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundMultiLineSelectField, { field, ...props }),
|
|
15282
15379
|
minWidth: "200px"
|
|
15283
15380
|
});
|
|
15284
15381
|
}
|
|
15285
15382
|
function boundTextField(props) {
|
|
15286
15383
|
return (field) => ({
|
|
15287
|
-
component: /* @__PURE__ */ (0,
|
|
15384
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundTextField, { field, ...props }),
|
|
15288
15385
|
minWidth: "150px"
|
|
15289
15386
|
});
|
|
15290
15387
|
}
|
|
15291
15388
|
function boundTextAreaField(props) {
|
|
15292
15389
|
return (field) => ({
|
|
15293
|
-
component: /* @__PURE__ */ (0,
|
|
15390
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundTextAreaField, { field, ...props }),
|
|
15294
15391
|
minWidth: "200px"
|
|
15295
15392
|
});
|
|
15296
15393
|
}
|
|
15297
15394
|
function boundNumberField(props) {
|
|
15298
15395
|
return (field) => ({
|
|
15299
|
-
component: /* @__PURE__ */ (0,
|
|
15396
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundNumberField, { field, ...props }),
|
|
15300
15397
|
minWidth: "150px"
|
|
15301
15398
|
});
|
|
15302
15399
|
}
|
|
15303
15400
|
function boundDateField(props) {
|
|
15304
15401
|
return (field) => ({
|
|
15305
|
-
component: /* @__PURE__ */ (0,
|
|
15402
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundDateField, { field, ...props }),
|
|
15306
15403
|
minWidth: "150px"
|
|
15307
15404
|
});
|
|
15308
15405
|
}
|
|
15309
15406
|
function boundDateRangeField(props) {
|
|
15310
15407
|
return (field) => ({
|
|
15311
|
-
component: /* @__PURE__ */ (0,
|
|
15408
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundDateRangeField, { field, ...props }),
|
|
15312
15409
|
minWidth: "150px"
|
|
15313
15410
|
});
|
|
15314
15411
|
}
|
|
15315
15412
|
function boundCheckboxField(props) {
|
|
15316
15413
|
return (field) => ({
|
|
15317
|
-
component: /* @__PURE__ */ (0,
|
|
15414
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundCheckboxField, { field, ...props }),
|
|
15318
15415
|
minWidth: "min-content"
|
|
15319
15416
|
});
|
|
15320
15417
|
}
|
|
15321
15418
|
function boundCheckboxGroupField(props) {
|
|
15322
15419
|
return (field) => ({
|
|
15323
|
-
component: /* @__PURE__ */ (0,
|
|
15420
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundCheckboxGroupField, { field, ...props }),
|
|
15324
15421
|
minWidth: "200px"
|
|
15325
15422
|
});
|
|
15326
15423
|
}
|
|
15327
15424
|
function boundIconCardField(props) {
|
|
15328
15425
|
return (field) => ({
|
|
15329
|
-
component: /* @__PURE__ */ (0,
|
|
15426
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundIconCardField, { field, ...props }),
|
|
15330
15427
|
minWidth: "150px"
|
|
15331
15428
|
});
|
|
15332
15429
|
}
|
|
15333
15430
|
function boundIconCardGroupField(props) {
|
|
15334
15431
|
return (field) => ({
|
|
15335
|
-
component: /* @__PURE__ */ (0,
|
|
15432
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundIconCardGroupField, { field, ...props }),
|
|
15336
15433
|
minWidth: "100%"
|
|
15337
15434
|
});
|
|
15338
15435
|
}
|
|
15339
15436
|
function boundRadioGroupField(props) {
|
|
15340
15437
|
return (field) => ({
|
|
15341
|
-
component: /* @__PURE__ */ (0,
|
|
15438
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundRadioGroupField, { field, ...props }),
|
|
15342
15439
|
minWidth: "200px"
|
|
15343
15440
|
});
|
|
15344
15441
|
}
|
|
15345
15442
|
function boundRichTextField(props) {
|
|
15346
15443
|
return (field) => ({
|
|
15347
|
-
component: /* @__PURE__ */ (0,
|
|
15444
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundRichTextField, { field, ...props }),
|
|
15348
15445
|
minWidth: "200px"
|
|
15349
15446
|
});
|
|
15350
15447
|
}
|
|
15351
15448
|
function boundSwitchField(props) {
|
|
15352
15449
|
return (field) => ({
|
|
15353
|
-
component: /* @__PURE__ */ (0,
|
|
15450
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundSwitchField, { field, labelStyle: "inline", ...props }),
|
|
15354
15451
|
minWidth: "min-content"
|
|
15355
15452
|
});
|
|
15356
15453
|
}
|
|
15357
15454
|
function boundToggleChipGroupField(props) {
|
|
15358
15455
|
return (field) => ({
|
|
15359
|
-
component: /* @__PURE__ */ (0,
|
|
15456
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundToggleChipGroupField, { field, ...props }),
|
|
15360
15457
|
minWidth: "100%"
|
|
15361
15458
|
});
|
|
15362
15459
|
}
|
|
15363
15460
|
function boundTreeSelectField(props) {
|
|
15364
15461
|
return (field) => ({
|
|
15365
|
-
component: /* @__PURE__ */ (0,
|
|
15462
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(BoundTreeSelectField, { field, ...props }),
|
|
15366
15463
|
minWidth: "200px"
|
|
15367
15464
|
});
|
|
15368
15465
|
}
|
|
15369
15466
|
|
|
15370
15467
|
// src/components/internal/CompoundField.tsx
|
|
15371
15468
|
var import_react82 = require("react");
|
|
15372
|
-
var
|
|
15469
|
+
var import_jsx_runtime114 = require("@emotion/react/jsx-runtime");
|
|
15373
15470
|
function CompoundField({ children }) {
|
|
15374
15471
|
if (children?.length !== 2) {
|
|
15375
15472
|
throw new Error("CompoundField requires two children components");
|
|
15376
15473
|
}
|
|
15377
15474
|
const commonStyles = Css.df.aic.fs1.maxwPx(550).bt.bb.bcGray300.$;
|
|
15378
15475
|
const internalProps = { compound: true };
|
|
15379
|
-
return /* @__PURE__ */ (0,
|
|
15476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
|
|
15380
15477
|
"div",
|
|
15381
15478
|
{
|
|
15382
15479
|
css: {
|
|
@@ -15385,7 +15482,7 @@ function CompoundField({ children }) {
|
|
|
15385
15482
|
// Separation line when inputs are focused
|
|
15386
15483
|
},
|
|
15387
15484
|
children: [
|
|
15388
|
-
/* @__PURE__ */ (0,
|
|
15485
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
15389
15486
|
"div",
|
|
15390
15487
|
{
|
|
15391
15488
|
css: {
|
|
@@ -15398,8 +15495,8 @@ function CompoundField({ children }) {
|
|
|
15398
15495
|
})
|
|
15399
15496
|
}
|
|
15400
15497
|
),
|
|
15401
|
-
/* @__PURE__ */ (0,
|
|
15402
|
-
/* @__PURE__ */ (0,
|
|
15498
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)("div", { css: Css.wPx(1).fn.bgGray300.$ }),
|
|
15499
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
15403
15500
|
"div",
|
|
15404
15501
|
{
|
|
15405
15502
|
css: {
|
|
@@ -15418,12 +15515,12 @@ function CompoundField({ children }) {
|
|
|
15418
15515
|
}
|
|
15419
15516
|
|
|
15420
15517
|
// src/forms/BoundSelectAndTextField.tsx
|
|
15421
|
-
var
|
|
15518
|
+
var import_jsx_runtime115 = require("@emotion/react/jsx-runtime");
|
|
15422
15519
|
function BoundSelectAndTextField(props) {
|
|
15423
15520
|
const { selectFieldProps, textFieldProps, compact = true } = props;
|
|
15424
15521
|
const tid = useTestIds(props);
|
|
15425
|
-
return /* @__PURE__ */ (0,
|
|
15426
|
-
/* @__PURE__ */ (0,
|
|
15522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(CompoundField, { children: [
|
|
15523
|
+
/* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
|
|
15427
15524
|
BoundSelectField,
|
|
15428
15525
|
{
|
|
15429
15526
|
...tid[defaultTestId(selectFieldProps.label ?? selectFieldProps.field.key)],
|
|
@@ -15432,7 +15529,7 @@ function BoundSelectAndTextField(props) {
|
|
|
15432
15529
|
compact
|
|
15433
15530
|
}
|
|
15434
15531
|
),
|
|
15435
|
-
/* @__PURE__ */ (0,
|
|
15532
|
+
/* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
|
|
15436
15533
|
BoundTextField,
|
|
15437
15534
|
{
|
|
15438
15535
|
...tid[defaultTestId(textFieldProps.label ?? textFieldProps.field.key)],
|
|
@@ -15444,10 +15541,10 @@ function BoundSelectAndTextField(props) {
|
|
|
15444
15541
|
}
|
|
15445
15542
|
|
|
15446
15543
|
// src/forms/FormHeading.tsx
|
|
15447
|
-
var
|
|
15544
|
+
var import_jsx_runtime116 = require("@emotion/react/jsx-runtime");
|
|
15448
15545
|
function FormHeading(props) {
|
|
15449
15546
|
const { title, xss, isFirst = false, ...others } = props;
|
|
15450
|
-
return /* @__PURE__ */ (0,
|
|
15547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
15451
15548
|
"h3",
|
|
15452
15549
|
{
|
|
15453
15550
|
css: {
|
|
@@ -15464,32 +15561,32 @@ function FormHeading(props) {
|
|
|
15464
15561
|
FormHeading.isFormHeading = true;
|
|
15465
15562
|
|
|
15466
15563
|
// src/forms/StaticField.tsx
|
|
15467
|
-
var
|
|
15468
|
-
var
|
|
15564
|
+
var import_utils99 = require("@react-aria/utils");
|
|
15565
|
+
var import_jsx_runtime117 = require("@emotion/react/jsx-runtime");
|
|
15469
15566
|
function StaticField(props) {
|
|
15470
15567
|
const { fieldProps } = usePresentationContext();
|
|
15471
15568
|
const { label, labelStyle = fieldProps?.labelStyle ?? "above", value, children } = props;
|
|
15472
15569
|
const tid = useTestIds(props, typeof label === "string" ? defaultTestId(label) : "staticField");
|
|
15473
|
-
const id = (0,
|
|
15474
|
-
return /* @__PURE__ */ (0,
|
|
15475
|
-
/* @__PURE__ */ (0,
|
|
15476
|
-
/* @__PURE__ */ (0,
|
|
15570
|
+
const id = (0, import_utils99.useId)();
|
|
15571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { css: Css.if(labelStyle === "left").df.jcsb.maxw100.$, ...tid.container, children: [
|
|
15572
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)("label", { css: Css.db.sm.gray700.mbPx(4).$, htmlFor: id, ...tid.label, children: label }),
|
|
15573
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)("div", { id, css: Css.smMd.gray900.df.aic.if(labelStyle === "left").w50.$, ...tid, children: value || children })
|
|
15477
15574
|
] });
|
|
15478
15575
|
}
|
|
15479
15576
|
|
|
15480
15577
|
// src/forms/SubmitButton.tsx
|
|
15481
|
-
var
|
|
15482
|
-
var
|
|
15578
|
+
var import_mobx_react21 = require("mobx-react");
|
|
15579
|
+
var import_jsx_runtime118 = require("@emotion/react/jsx-runtime");
|
|
15483
15580
|
function SubmitButton(props) {
|
|
15484
15581
|
const { form, disabled, onClick, label = "Submit", ...others } = props;
|
|
15485
15582
|
if (typeof onClick === "string") {
|
|
15486
15583
|
throw new Error("SubmitButton.onClick doesn't support strings yet");
|
|
15487
15584
|
}
|
|
15488
|
-
const state = (0,
|
|
15585
|
+
const state = (0, import_mobx_react21.useLocalObservable)(() => ({ clicked: false }));
|
|
15489
15586
|
const canSubmit = useComputed(() => {
|
|
15490
15587
|
return form.isNewEntity && !state.clicked ? true : form.dirty && form.valid;
|
|
15491
15588
|
}, [form]);
|
|
15492
|
-
return /* @__PURE__ */ (0,
|
|
15589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
15493
15590
|
Button,
|
|
15494
15591
|
{
|
|
15495
15592
|
label,
|
|
@@ -15508,13 +15605,13 @@ function SubmitButton(props) {
|
|
|
15508
15605
|
// src/components/RightSidebar.tsx
|
|
15509
15606
|
var import_framer_motion2 = require("framer-motion");
|
|
15510
15607
|
var import_react83 = require("react");
|
|
15511
|
-
var
|
|
15608
|
+
var import_jsx_runtime119 = require("@emotion/react/jsx-runtime");
|
|
15512
15609
|
function RightSidebar({ content }) {
|
|
15513
15610
|
const [selectedIcon, setSelectedIcon] = (0, import_react83.useState)(void 0);
|
|
15514
15611
|
const tid = useTestIds({}, "rightSidebar");
|
|
15515
|
-
const
|
|
15516
|
-
return /* @__PURE__ */ (0,
|
|
15517
|
-
/* @__PURE__ */ (0,
|
|
15612
|
+
const width2 = 380;
|
|
15613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
|
|
15614
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.jcfe.relative.pr3.$, children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.df.gap2.z1.$, children: content.map(({ icon }) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15518
15615
|
IconButton,
|
|
15519
15616
|
{
|
|
15520
15617
|
circle: true,
|
|
@@ -15525,17 +15622,17 @@ function RightSidebar({ content }) {
|
|
|
15525
15622
|
},
|
|
15526
15623
|
`${icon}-${selectedIcon}`
|
|
15527
15624
|
)) }) }),
|
|
15528
|
-
/* @__PURE__ */ (0,
|
|
15625
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(import_framer_motion2.AnimatePresence, { children: selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15529
15626
|
import_framer_motion2.motion.div,
|
|
15530
15627
|
{
|
|
15531
|
-
initial: { x:
|
|
15628
|
+
initial: { x: width2, opacity: 0 },
|
|
15532
15629
|
animate: { x: 0, opacity: 1 },
|
|
15533
15630
|
transition: { delay: 0.2, ease: "linear", duration: 0.2 },
|
|
15534
|
-
exit: { transition: { ease: "linear", duration: 0.2 }, x:
|
|
15535
|
-
css: Css.wPx(
|
|
15536
|
-
children: /* @__PURE__ */ (0,
|
|
15537
|
-
/* @__PURE__ */ (0,
|
|
15538
|
-
/* @__PURE__ */ (0,
|
|
15631
|
+
exit: { transition: { ease: "linear", duration: 0.2 }, x: width2 },
|
|
15632
|
+
css: Css.wPx(width2).z0.$,
|
|
15633
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.relative.topPx(-48).z0.px3.$, children: [
|
|
15634
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsxs)("div", { css: Css.absolute.leftPx(-24).$, children: [
|
|
15635
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
15539
15636
|
IconButton,
|
|
15540
15637
|
{
|
|
15541
15638
|
bgColor: "rgba(255,255,255,1)" /* White */,
|
|
@@ -15545,9 +15642,9 @@ function RightSidebar({ content }) {
|
|
|
15545
15642
|
inc: 3.5
|
|
15546
15643
|
}
|
|
15547
15644
|
),
|
|
15548
|
-
/* @__PURE__ */ (0,
|
|
15645
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { css: Css.absolute.topPx(48).leftPx(23).h("calc(100vh - 168px)").wPx(1).bgGray300.$ })
|
|
15549
15646
|
] }),
|
|
15550
|
-
selectedIcon && /* @__PURE__ */ (0,
|
|
15647
|
+
selectedIcon && /* @__PURE__ */ (0, import_jsx_runtime119.jsx)("div", { ...tid.content, css: Css.ptPx(72).$, children: content.find((sidebar) => sidebar.icon === selectedIcon)?.render() })
|
|
15551
15648
|
] })
|
|
15552
15649
|
},
|
|
15553
15650
|
"rightSidebar"
|
|
@@ -15558,18 +15655,18 @@ function RightSidebar({ content }) {
|
|
|
15558
15655
|
// src/components/Layout/PageHeaderBreadcrumbs.tsx
|
|
15559
15656
|
var import_react84 = require("react");
|
|
15560
15657
|
var import_react_router_dom4 = require("react-router-dom");
|
|
15561
|
-
var
|
|
15658
|
+
var import_jsx_runtime120 = require("@emotion/react/jsx-runtime");
|
|
15562
15659
|
function PageHeaderBreadcrumbs({ breadcrumb }) {
|
|
15563
15660
|
const tids = useTestIds({}, "pageHeaderBreadcrumbs");
|
|
15564
15661
|
const breadcrumbs = Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb];
|
|
15565
|
-
return /* @__PURE__ */ (0,
|
|
15566
|
-
i > 0 && /* @__PURE__ */ (0,
|
|
15567
|
-
/* @__PURE__ */ (0,
|
|
15662
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { css: Css.df.aic.mbPx(4).$, ...tids, children: breadcrumbs.map((breadcrumb2, i) => /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_react84.Fragment, { children: [
|
|
15663
|
+
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { css: Css.smMd.gray700.mr1.ml1.$, children: "/" }),
|
|
15664
|
+
/* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_react_router_dom4.Link, { to: breadcrumb2.href, css: Css.smMd.gray700.onHover.gray900.$, className: "navLink", ...tids.navLink, children: breadcrumb2.label })
|
|
15568
15665
|
] }, `bc-${breadcrumb2.label}`)) });
|
|
15569
15666
|
}
|
|
15570
15667
|
|
|
15571
15668
|
// src/components/Layout/FormPageLayout.tsx
|
|
15572
|
-
var
|
|
15669
|
+
var import_jsx_runtime121 = (
|
|
15573
15670
|
// This page is `fixed` to the full screen to allow it to act as a full screen modal while content is mounted below
|
|
15574
15671
|
// since this layout will be replacing most superdrawers/sidebars, we keep the listing mounted below to preserve the users's
|
|
15575
15672
|
// scroll position & filters
|
|
@@ -15590,16 +15687,16 @@ function FormPageLayoutComponent(props) {
|
|
|
15590
15687
|
[formSections]
|
|
15591
15688
|
);
|
|
15592
15689
|
const gridColumns = "minMax(0, auto) minMax(100px, 250px) minMax(350px, 1000px) minMax(min-content, 300px) minMax(0, auto)";
|
|
15593
|
-
return /* @__PURE__ */ (0,
|
|
15690
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
15594
15691
|
"div",
|
|
15595
15692
|
{
|
|
15596
15693
|
css: Css.fixed.top0.bottom0.left0.right0.z(1e3).oya.bgWhite.dg.gtc(gridColumns).gtr("auto 1fr").cg3.ais.$,
|
|
15597
15694
|
...tids,
|
|
15598
15695
|
children: [
|
|
15599
|
-
/* @__PURE__ */ (0,
|
|
15600
|
-
/* @__PURE__ */ (0,
|
|
15601
|
-
/* @__PURE__ */ (0,
|
|
15602
|
-
rightSideBar && /* @__PURE__ */ (0,
|
|
15696
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(PageHeader, { ...props, ...tids.pageHeader }),
|
|
15697
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(LeftNav, { sectionsWithRefs, ...tids }),
|
|
15698
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(FormSections, { sectionsWithRefs, formState, ...tids }),
|
|
15699
|
+
rightSideBar && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("aside", { css: Css.gr(2).gc("4 / 5").sticky.topPx(headerHeightPx).$, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(RightSidebar, { content: rightSideBar }) })
|
|
15603
15700
|
]
|
|
15604
15701
|
}
|
|
15605
15702
|
);
|
|
@@ -15608,13 +15705,13 @@ var FormPageLayout = import_react85.default.memo(FormPageLayoutComponent);
|
|
|
15608
15705
|
function PageHeader(props) {
|
|
15609
15706
|
const { pageTitle, breadCrumb, submitAction, cancelAction, tertiaryAction, formState } = props;
|
|
15610
15707
|
const tids = useTestIds(props);
|
|
15611
|
-
return /* @__PURE__ */ (0,
|
|
15612
|
-
/* @__PURE__ */ (0,
|
|
15613
|
-
breadCrumb && /* @__PURE__ */ (0,
|
|
15614
|
-
/* @__PURE__ */ (0,
|
|
15708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("header", { css: Css.gr(1).gc("2 / 5").sticky.top0.hPx(headerHeightPx).bgWhite.z5.$, ...tids, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: Css.py2.px3.df.jcsb.aic.$, children: [
|
|
15709
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { children: [
|
|
15710
|
+
breadCrumb && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
15711
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("h1", { css: Css.xl3Sb.$, ...tids.pageTitle, children: pageTitle })
|
|
15615
15712
|
] }),
|
|
15616
|
-
/* @__PURE__ */ (0,
|
|
15617
|
-
tertiaryAction && /* @__PURE__ */ (0,
|
|
15713
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: Css.df.gap1.$, children: [
|
|
15714
|
+
tertiaryAction && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
15618
15715
|
Button,
|
|
15619
15716
|
{
|
|
15620
15717
|
label: tertiaryAction.label,
|
|
@@ -15624,7 +15721,7 @@ function PageHeader(props) {
|
|
|
15624
15721
|
tooltip: tertiaryAction.tooltip
|
|
15625
15722
|
}
|
|
15626
15723
|
),
|
|
15627
|
-
cancelAction && /* @__PURE__ */ (0,
|
|
15724
|
+
cancelAction && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
15628
15725
|
Button,
|
|
15629
15726
|
{
|
|
15630
15727
|
label: cancelAction.label,
|
|
@@ -15634,16 +15731,16 @@ function PageHeader(props) {
|
|
|
15634
15731
|
tooltip: cancelAction.tooltip
|
|
15635
15732
|
}
|
|
15636
15733
|
),
|
|
15637
|
-
/* @__PURE__ */ (0,
|
|
15734
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(SubmitButton, { form: formState, ...submitAction })
|
|
15638
15735
|
] })
|
|
15639
15736
|
] }) });
|
|
15640
15737
|
}
|
|
15641
15738
|
function FormSections(props) {
|
|
15642
15739
|
const { sectionsWithRefs, formState } = props;
|
|
15643
15740
|
const tids = useTestIds(props);
|
|
15644
|
-
return /* @__PURE__ */ (0,
|
|
15741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("article", { css: Css.gr(2).gc("3 / 4").$, children: sectionsWithRefs.map(({ section, ref, sectionKey }, i) => (
|
|
15645
15742
|
// Subgrid here allows for icon placement to the left of the section content
|
|
15646
|
-
/* @__PURE__ */ (0,
|
|
15743
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
15647
15744
|
"section",
|
|
15648
15745
|
{
|
|
15649
15746
|
id: sectionKey,
|
|
@@ -15651,10 +15748,10 @@ function FormSections(props) {
|
|
|
15651
15748
|
css: Css.dg.gtc("50px 1fr").gtr("auto").mb3.add("scrollMarginTop", `${headerHeightPx}px`).$,
|
|
15652
15749
|
...tids.formSection,
|
|
15653
15750
|
children: [
|
|
15654
|
-
/* @__PURE__ */ (0,
|
|
15655
|
-
/* @__PURE__ */ (0,
|
|
15656
|
-
section.title && /* @__PURE__ */ (0,
|
|
15657
|
-
/* @__PURE__ */ (0,
|
|
15751
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { css: Css.gc(1).$, children: section.icon && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Icon, { icon: section.icon, inc: 3.5 }) }),
|
|
15752
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: Css.gc(2).$, children: [
|
|
15753
|
+
section.title && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("h2", { css: Css.xlSb.mb3.$, children: section.title }),
|
|
15754
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(BoundForm, { formState, rows: section.rows })
|
|
15658
15755
|
] })
|
|
15659
15756
|
]
|
|
15660
15757
|
},
|
|
@@ -15670,7 +15767,7 @@ function LeftNav(props) {
|
|
|
15670
15767
|
[sectionsWithRefs]
|
|
15671
15768
|
);
|
|
15672
15769
|
const activeSection = useActiveSection(sectionWithTitles);
|
|
15673
|
-
return /* @__PURE__ */ (0,
|
|
15770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("aside", { css: Css.gr(2).gc("2 / 3").sticky.topPx(headerHeightPx).px3.df.fdc.gap1.$, ...tids.nav, children: sectionWithTitles.map((sectionWithRef) => /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
15674
15771
|
SectionNavLink,
|
|
15675
15772
|
{
|
|
15676
15773
|
sectionWithRef,
|
|
@@ -15695,7 +15792,7 @@ function SectionNavLink(props) {
|
|
|
15695
15792
|
const { buttonProps, isPressed } = (0, import_react_aria43.useButton)({ onPress: handleNavClick }, buttonRef);
|
|
15696
15793
|
const { isFocusVisible, focusProps } = (0, import_react_aria43.useFocusRing)();
|
|
15697
15794
|
const { hoverProps, isHovered } = useHover({});
|
|
15698
|
-
return /* @__PURE__ */ (0,
|
|
15795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
15699
15796
|
"button",
|
|
15700
15797
|
{
|
|
15701
15798
|
ref: buttonRef,
|
|
@@ -15748,7 +15845,7 @@ var import_react87 = require("react");
|
|
|
15748
15845
|
|
|
15749
15846
|
// src/components/Layout/ScrollableParent.tsx
|
|
15750
15847
|
var import_react86 = require("react");
|
|
15751
|
-
var
|
|
15848
|
+
var import_jsx_runtime122 = require("@emotion/react/jsx-runtime");
|
|
15752
15849
|
var ScrollableParentContext = (0, import_react86.createContext)({
|
|
15753
15850
|
scrollableEl: null,
|
|
15754
15851
|
pr: 0,
|
|
@@ -15776,8 +15873,8 @@ function ScrollableParent(props) {
|
|
|
15776
15873
|
(0, import_react86.useEffect)(() => {
|
|
15777
15874
|
scrollableRef.current.appendChild(scrollableEl);
|
|
15778
15875
|
}, [scrollableEl]);
|
|
15779
|
-
return /* @__PURE__ */ (0,
|
|
15780
|
-
/* @__PURE__ */ (0,
|
|
15876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(ScrollableParentContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Tag2, { css: { ...Css.mh0.mw0.fg1.df.fdc.$, ...otherXss }, children: [
|
|
15877
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
15781
15878
|
"div",
|
|
15782
15879
|
{
|
|
15783
15880
|
css: {
|
|
@@ -15787,7 +15884,7 @@ function ScrollableParent(props) {
|
|
|
15787
15884
|
children
|
|
15788
15885
|
}
|
|
15789
15886
|
),
|
|
15790
|
-
/* @__PURE__ */ (0,
|
|
15887
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { css: Css.fg1.oa.$, ref: scrollableRef })
|
|
15791
15888
|
] }) });
|
|
15792
15889
|
}
|
|
15793
15890
|
function useScrollableParent() {
|
|
@@ -15804,19 +15901,19 @@ function FullBleed({ children, omitPadding = false }) {
|
|
|
15804
15901
|
}
|
|
15805
15902
|
|
|
15806
15903
|
// src/components/Layout/PreventBrowserScroll.tsx
|
|
15807
|
-
var
|
|
15904
|
+
var import_jsx_runtime123 = require("@emotion/react/jsx-runtime");
|
|
15808
15905
|
function PreventBrowserScroll({ children }) {
|
|
15809
15906
|
return (
|
|
15810
15907
|
// Take over the full viewport and hide any overflown content.
|
|
15811
15908
|
// 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/
|
|
15812
15909
|
// 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.
|
|
15813
|
-
/* @__PURE__ */ (0,
|
|
15910
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { css: Css.oh.vh100.mh("-webkit-fill-available").maxh("-webkit-fill-available").$, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { css: Css.h100.df.fdc.mh0.oa.$, children }) })
|
|
15814
15911
|
);
|
|
15815
15912
|
}
|
|
15816
15913
|
|
|
15817
15914
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
15818
15915
|
var import_react88 = __toESM(require("react"), 1);
|
|
15819
|
-
var
|
|
15916
|
+
var import_jsx_runtime124 = require("@emotion/react/jsx-runtime");
|
|
15820
15917
|
var RightPaneContext = import_react88.default.createContext({
|
|
15821
15918
|
openInPane: () => {
|
|
15822
15919
|
},
|
|
@@ -15843,7 +15940,7 @@ function RightPaneProvider({ children }) {
|
|
|
15843
15940
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
15844
15941
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
15845
15942
|
);
|
|
15846
|
-
return /* @__PURE__ */ (0,
|
|
15943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(RightPaneContext.Provider, { value: context, children });
|
|
15847
15944
|
}
|
|
15848
15945
|
function useRightPaneContext() {
|
|
15849
15946
|
return (0, import_react88.useContext)(RightPaneContext);
|
|
@@ -15852,13 +15949,13 @@ function useRightPaneContext() {
|
|
|
15852
15949
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
15853
15950
|
var import_framer_motion3 = require("framer-motion");
|
|
15854
15951
|
var import_react89 = require("react");
|
|
15855
|
-
var
|
|
15952
|
+
var import_jsx_runtime125 = require("@emotion/react/jsx-runtime");
|
|
15856
15953
|
function RightPaneLayout(props) {
|
|
15857
15954
|
const { children, paneBgColor = "rgba(255,255,255,1)" /* White */, paneWidth = 450, defaultPaneContent } = props;
|
|
15858
15955
|
const { isRightPaneOpen, rightPaneContent, clearPane, closePane } = useRightPaneContext();
|
|
15859
15956
|
(0, import_react89.useEffect)(() => closePane, [closePane]);
|
|
15860
|
-
return /* @__PURE__ */ (0,
|
|
15861
|
-
/* @__PURE__ */ (0,
|
|
15957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { css: Css.h100.df.oxh.$, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_jsx_runtime125.Fragment, { children: [
|
|
15958
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
15862
15959
|
"div",
|
|
15863
15960
|
{
|
|
15864
15961
|
css: {
|
|
@@ -15869,15 +15966,15 @@ function RightPaneLayout(props) {
|
|
|
15869
15966
|
children
|
|
15870
15967
|
}
|
|
15871
15968
|
),
|
|
15872
|
-
/* @__PURE__ */ (0,
|
|
15873
|
-
defaultPaneContent && /* @__PURE__ */ (0,
|
|
15969
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { css: Css.relative.if(!!defaultPaneContent).wPx(paneWidth).$, children: [
|
|
15970
|
+
defaultPaneContent && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
15874
15971
|
"div",
|
|
15875
15972
|
{
|
|
15876
15973
|
css: Css.h100.wPx(paneWidth).left(0).absolute.add("transition", "all .3s ease-in-out").if(isRightPaneOpen).add("opacity", 0).left(100).$,
|
|
15877
15974
|
children: defaultPaneContent
|
|
15878
15975
|
}
|
|
15879
15976
|
),
|
|
15880
|
-
/* @__PURE__ */ (0,
|
|
15977
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_framer_motion3.AnimatePresence, { children: isRightPaneOpen && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
15881
15978
|
import_framer_motion3.motion.div,
|
|
15882
15979
|
{
|
|
15883
15980
|
layout: "position",
|
|
@@ -15908,7 +16005,7 @@ function useRightPane() {
|
|
|
15908
16005
|
// src/components/Layout/ScrollableContent.tsx
|
|
15909
16006
|
var import_react90 = require("react");
|
|
15910
16007
|
var import_react_dom4 = require("react-dom");
|
|
15911
|
-
var
|
|
16008
|
+
var import_jsx_runtime126 = require("@emotion/react/jsx-runtime");
|
|
15912
16009
|
function ScrollableContent(props) {
|
|
15913
16010
|
const { children, virtualized = false, omitBottomPadding, bgColor } = props;
|
|
15914
16011
|
const { scrollableEl, setPortalTick, pl, pr } = useScrollableParent();
|
|
@@ -15917,10 +16014,10 @@ function ScrollableContent(props) {
|
|
|
15917
16014
|
return () => setPortalTick((prev) => prev + 1);
|
|
15918
16015
|
}, [setPortalTick]);
|
|
15919
16016
|
if (!scrollableEl) {
|
|
15920
|
-
return /* @__PURE__ */ (0,
|
|
16017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, { children });
|
|
15921
16018
|
}
|
|
15922
16019
|
return (0, import_react_dom4.createPortal)(
|
|
15923
|
-
/* @__PURE__ */ (0,
|
|
16020
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
15924
16021
|
"div",
|
|
15925
16022
|
{
|
|
15926
16023
|
css: {
|
|
@@ -15937,7 +16034,7 @@ function ScrollableContent(props) {
|
|
|
15937
16034
|
|
|
15938
16035
|
// src/components/Toast/ToastContext.tsx
|
|
15939
16036
|
var import_react91 = require("react");
|
|
15940
|
-
var
|
|
16037
|
+
var import_jsx_runtime127 = require("@emotion/react/jsx-runtime");
|
|
15941
16038
|
var ToastContext = (0, import_react91.createContext)({
|
|
15942
16039
|
setNotice: () => {
|
|
15943
16040
|
throw new Error("Missing ToastProvider");
|
|
@@ -15950,14 +16047,14 @@ function ToastProvider(props) {
|
|
|
15950
16047
|
const [notice, setNotice] = (0, import_react91.useState)();
|
|
15951
16048
|
const clear = (0, import_react91.useCallback)(() => setNotice(void 0), [setNotice]);
|
|
15952
16049
|
const contextValue = (0, import_react91.useMemo)(() => ({ setNotice, notice, clear }), [notice, clear]);
|
|
15953
|
-
return /* @__PURE__ */ (0,
|
|
16050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ToastContext.Provider, { value: contextValue, children: props.children });
|
|
15954
16051
|
}
|
|
15955
16052
|
function useToastContext() {
|
|
15956
16053
|
return (0, import_react91.useContext)(ToastContext);
|
|
15957
16054
|
}
|
|
15958
16055
|
|
|
15959
16056
|
// src/components/BeamContext.tsx
|
|
15960
|
-
var
|
|
16057
|
+
var import_jsx_runtime128 = require("@emotion/react/jsx-runtime");
|
|
15961
16058
|
var BeamContext = (0, import_react92.createContext)({
|
|
15962
16059
|
modalState: new EmptyRef(),
|
|
15963
16060
|
modalCanCloseChecks: new EmptyRef(),
|
|
@@ -15999,12 +16096,12 @@ function BeamProvider({ children, ...presentationProps }) {
|
|
|
15999
16096
|
sdHeaderDiv
|
|
16000
16097
|
};
|
|
16001
16098
|
}, [modalBodyDiv, modalFooterDiv, modalHeaderDiv, sdHeaderDiv]);
|
|
16002
|
-
return /* @__PURE__ */ (0,
|
|
16003
|
-
/* @__PURE__ */ (0,
|
|
16099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(BeamContext.Provider, { value: { ...context }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(PresentationProvider, { ...presentationProps, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(RightPaneProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(AutoSaveStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SnackbarProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(ToastProvider, { children: [
|
|
16100
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_react_aria44.OverlayProvider, { children: [
|
|
16004
16101
|
children,
|
|
16005
|
-
modalRef.current && /* @__PURE__ */ (0,
|
|
16102
|
+
modalRef.current && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Modal, { ...modalRef.current })
|
|
16006
16103
|
] }),
|
|
16007
|
-
/* @__PURE__ */ (0,
|
|
16104
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SuperDrawer, {})
|
|
16008
16105
|
] }) }) }) }) }) });
|
|
16009
16106
|
}
|
|
16010
16107
|
var PretendRefThatTicks = class {
|
|
@@ -16028,7 +16125,7 @@ function useBeamContext() {
|
|
|
16028
16125
|
var import_react93 = require("react");
|
|
16029
16126
|
var import_react_aria45 = require("react-aria");
|
|
16030
16127
|
var import_react_stately17 = require("react-stately");
|
|
16031
|
-
var
|
|
16128
|
+
var import_jsx_runtime129 = require("@emotion/react/jsx-runtime");
|
|
16032
16129
|
function ButtonDatePicker(props) {
|
|
16033
16130
|
const { defaultOpen, disabled, trigger, onSelect, ...datePickerProps } = props;
|
|
16034
16131
|
const state = (0, import_react_stately17.useMenuTriggerState)({ isOpen: defaultOpen });
|
|
@@ -16038,7 +16135,7 @@ function ButtonDatePicker(props) {
|
|
|
16038
16135
|
props,
|
|
16039
16136
|
isTextButton(trigger) ? defaultTestId(labelOr(trigger, "buttonDatePicker")) : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
16040
16137
|
);
|
|
16041
|
-
return /* @__PURE__ */ (0,
|
|
16138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(DatePickerOverlay, { overlayProps: menuProps, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
16042
16139
|
DatePicker,
|
|
16043
16140
|
{
|
|
16044
16141
|
...datePickerProps,
|
|
@@ -16054,7 +16151,7 @@ function ButtonDatePicker(props) {
|
|
|
16054
16151
|
// src/components/ButtonGroup.tsx
|
|
16055
16152
|
var import_react94 = require("react");
|
|
16056
16153
|
var import_react_aria46 = require("react-aria");
|
|
16057
|
-
var
|
|
16154
|
+
var import_jsx_runtime130 = (
|
|
16058
16155
|
// Disable the button if the ButtonGroup is disabled or if the current button is disabled.
|
|
16059
16156
|
require("@emotion/react/jsx-runtime")
|
|
16060
16157
|
);
|
|
@@ -16063,7 +16160,7 @@ function ButtonGroup(props) {
|
|
|
16063
16160
|
const tid = useTestIds(props, "buttonGroup");
|
|
16064
16161
|
return (
|
|
16065
16162
|
// Adding `line-height: 0` prevent inheriting line-heights that might throw off sizing within the button group.
|
|
16066
|
-
/* @__PURE__ */ (0,
|
|
16163
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)("div", { ...tid, css: Css.df.lh(0).add({ ...sizeStyles2[size] }).$, children: buttons.map(({ disabled: buttonDisabled, ...buttonProps }, i) => /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, ...tid }, i)) })
|
|
16067
16164
|
);
|
|
16068
16165
|
}
|
|
16069
16166
|
function GroupButton(props) {
|
|
@@ -16074,10 +16171,10 @@ function GroupButton(props) {
|
|
|
16074
16171
|
const { isFocusVisible, focusProps } = (0, import_react_aria46.useFocusRing)();
|
|
16075
16172
|
const { hoverProps, isHovered } = (0, import_react_aria46.useHover)(ariaProps);
|
|
16076
16173
|
const tid = useTestIds(props);
|
|
16077
|
-
return /* @__PURE__ */ (0,
|
|
16174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("span", { css: getButtonStyles2(), children: maybeTooltip({
|
|
16078
16175
|
title: resolveTooltip(disabled, tooltip),
|
|
16079
16176
|
placement: "top",
|
|
16080
|
-
children: /* @__PURE__ */ (0,
|
|
16177
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
|
|
16081
16178
|
"button",
|
|
16082
16179
|
{
|
|
16083
16180
|
ref,
|
|
@@ -16094,7 +16191,7 @@ function GroupButton(props) {
|
|
|
16094
16191
|
},
|
|
16095
16192
|
...tid[defaultTestId(typeof text === "string" && text || icon || "button")],
|
|
16096
16193
|
children: [
|
|
16097
|
-
icon && /* @__PURE__ */ (0,
|
|
16194
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Icon, { xss: Css.if(!!text).mrPx(4).$, icon, color: disabled ? void 0 : iconColor, inc: iconInc }),
|
|
16098
16195
|
text
|
|
16099
16196
|
]
|
|
16100
16197
|
}
|
|
@@ -16131,7 +16228,7 @@ var iconStyles2 = {
|
|
|
16131
16228
|
var import_react95 = require("react");
|
|
16132
16229
|
var import_react_aria47 = require("react-aria");
|
|
16133
16230
|
var import_react_stately18 = require("react-stately");
|
|
16134
|
-
var
|
|
16231
|
+
var import_jsx_runtime131 = require("@emotion/react/jsx-runtime");
|
|
16135
16232
|
function ButtonMenu(props) {
|
|
16136
16233
|
const { defaultOpen, disabled, items, persistentItems, trigger, searchable, contrast = false } = props;
|
|
16137
16234
|
let selectedItem, onChange;
|
|
@@ -16146,7 +16243,7 @@ function ButtonMenu(props) {
|
|
|
16146
16243
|
props,
|
|
16147
16244
|
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
16148
16245
|
);
|
|
16149
|
-
return /* @__PURE__ */ (0,
|
|
16246
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16150
16247
|
OverlayTrigger,
|
|
16151
16248
|
{
|
|
16152
16249
|
...props,
|
|
@@ -16155,7 +16252,7 @@ function ButtonMenu(props) {
|
|
|
16155
16252
|
buttonRef,
|
|
16156
16253
|
...tid,
|
|
16157
16254
|
contrast,
|
|
16158
|
-
children: /* @__PURE__ */ (0,
|
|
16255
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
16159
16256
|
Menu,
|
|
16160
16257
|
{
|
|
16161
16258
|
ariaMenuProps: menuProps,
|
|
@@ -16176,10 +16273,120 @@ function isSelectionButtonMenuProps(props) {
|
|
|
16176
16273
|
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
16177
16274
|
}
|
|
16178
16275
|
|
|
16276
|
+
// src/components/Card.tsx
|
|
16277
|
+
var import_react97 = require("react");
|
|
16278
|
+
var import_react_aria48 = require("react-aria");
|
|
16279
|
+
|
|
16280
|
+
// src/components/Tag.tsx
|
|
16281
|
+
var import_utils107 = require("@react-aria/utils");
|
|
16282
|
+
var import_react96 = require("react");
|
|
16283
|
+
var import_jsx_runtime132 = require("@emotion/react/jsx-runtime");
|
|
16284
|
+
function Tag(props) {
|
|
16285
|
+
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
16286
|
+
const typeStyles2 = getStyles(type);
|
|
16287
|
+
const tid = useTestIds(otherProps);
|
|
16288
|
+
const [showTooltip, setShowTooltip] = (0, import_react96.useState)(false);
|
|
16289
|
+
const ref = (0, import_react96.useRef)(null);
|
|
16290
|
+
(0, import_utils107.useResizeObserver)({
|
|
16291
|
+
ref,
|
|
16292
|
+
onResize: () => {
|
|
16293
|
+
if (ref.current) {
|
|
16294
|
+
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
16295
|
+
}
|
|
16296
|
+
}
|
|
16297
|
+
});
|
|
16298
|
+
return maybeTooltip({
|
|
16299
|
+
title: !preventTooltip && showTooltip ? text : void 0,
|
|
16300
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
16301
|
+
otherProps.icon && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
16302
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
16303
|
+
] })
|
|
16304
|
+
});
|
|
16305
|
+
}
|
|
16306
|
+
function getStyles(type) {
|
|
16307
|
+
switch (type) {
|
|
16308
|
+
case "info":
|
|
16309
|
+
return Css.bgBlue100.$;
|
|
16310
|
+
case "caution":
|
|
16311
|
+
return Css.bgYellow200.$;
|
|
16312
|
+
case "warning":
|
|
16313
|
+
return Css.bgRed200.$;
|
|
16314
|
+
case "success":
|
|
16315
|
+
return Css.bgGreen200.$;
|
|
16316
|
+
default:
|
|
16317
|
+
return Css.bgGray200.$;
|
|
16318
|
+
}
|
|
16319
|
+
}
|
|
16320
|
+
|
|
16321
|
+
// src/components/Card.tsx
|
|
16322
|
+
var import_jsx_runtime133 = require("@emotion/react/jsx-runtime");
|
|
16323
|
+
function Card(props) {
|
|
16324
|
+
const {
|
|
16325
|
+
title,
|
|
16326
|
+
subtitle,
|
|
16327
|
+
detailContent,
|
|
16328
|
+
imgSrc,
|
|
16329
|
+
imageFit = "contain",
|
|
16330
|
+
type = "card",
|
|
16331
|
+
bordered = false,
|
|
16332
|
+
disabled: isDisabled = false,
|
|
16333
|
+
buttonMenuItems,
|
|
16334
|
+
tag
|
|
16335
|
+
} = props;
|
|
16336
|
+
const tid = useTestIds(props, "card");
|
|
16337
|
+
const { hoverProps, isHovered } = (0, import_react_aria48.useHover)({ isDisabled });
|
|
16338
|
+
const isList = type === "list";
|
|
16339
|
+
const imgHeight = isList ? 96 : bordered ? 224 : 256;
|
|
16340
|
+
const styles = (0, import_react97.useMemo)(
|
|
16341
|
+
() => ({
|
|
16342
|
+
...baseStyles4(type),
|
|
16343
|
+
...isList && listStyles,
|
|
16344
|
+
...bordered && borderedStyles,
|
|
16345
|
+
...isHovered && cardHoverStyles,
|
|
16346
|
+
...isDisabled && disabledStyles3
|
|
16347
|
+
}),
|
|
16348
|
+
[isDisabled, isHovered, bordered, type, isList]
|
|
16349
|
+
);
|
|
16350
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { css: styles, ...hoverProps, ...tid, children: [
|
|
16351
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
16352
|
+
"div",
|
|
16353
|
+
{
|
|
16354
|
+
css: {
|
|
16355
|
+
...Css.hPx(imgHeight).ba.br8.bcGray300.oh.df.asc.jsc.relative.add("filter", "brightness(1)").$,
|
|
16356
|
+
...isHovered && !isList && imageHoverStyles
|
|
16357
|
+
},
|
|
16358
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("img", { css: Css.w100.h100.objectFit(imageFit).$, src: imgSrc, alt: title, ...tid.img })
|
|
16359
|
+
}
|
|
16360
|
+
),
|
|
16361
|
+
isHovered && buttonMenuItems && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.absolute.right1.top1.if(bordered && !isList).right3.top3.$, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
16362
|
+
ButtonMenu,
|
|
16363
|
+
{
|
|
16364
|
+
trigger: { icon: "verticalDots", color: isList ? "rgba(100, 100, 100, 1)" /* Gray700 */ : "rgba(255,255,255,1)" /* White */ },
|
|
16365
|
+
items: buttonMenuItems
|
|
16366
|
+
}
|
|
16367
|
+
) }),
|
|
16368
|
+
tag && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.absolute.left1.topPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Tag, { type: tag?.type, text: tag?.text, ...tid.tag }) }),
|
|
16369
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { css: Css.df.fdc.aifs.gap1.$, children: [
|
|
16370
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { children: [
|
|
16371
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.xsMd.gray700.$, ...tid.subtitle, children: subtitle }),
|
|
16372
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { css: Css.smMd.gray900.if(isHovered).blue700.$, ...tid.title, children: title })
|
|
16373
|
+
] }),
|
|
16374
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { ...tid.details, children: detailContent })
|
|
16375
|
+
] })
|
|
16376
|
+
] });
|
|
16377
|
+
}
|
|
16378
|
+
var width = { card: 256, list: 520 };
|
|
16379
|
+
var baseStyles4 = (type) => Css.wPx(width[type]).bgWhite.df.fdc.gap1.relative.$;
|
|
16380
|
+
var listStyles = Css.df.fdr.gap2.$;
|
|
16381
|
+
var borderedStyles = Css.ba.br8.bcGray300.p2.$;
|
|
16382
|
+
var disabledStyles3 = Css.add("opacity", 0.5).add("transition", "opacity 0.3s ease").$;
|
|
16383
|
+
var cardHoverStyles = Css.bcGray400.cursorPointer.$;
|
|
16384
|
+
var imageHoverStyles = Css.bgWhite.add("filter", "brightness(0.3)").add("transition", "filter 0.3s ease").$;
|
|
16385
|
+
|
|
16179
16386
|
// src/components/Copy.tsx
|
|
16180
|
-
var
|
|
16387
|
+
var import_jsx_runtime134 = require("@emotion/react/jsx-runtime");
|
|
16181
16388
|
function Copy(props) {
|
|
16182
|
-
return /* @__PURE__ */ (0,
|
|
16389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
16183
16390
|
"div",
|
|
16184
16391
|
{
|
|
16185
16392
|
css: {
|
|
@@ -16193,43 +16400,43 @@ function Copy(props) {
|
|
|
16193
16400
|
|
|
16194
16401
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16195
16402
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
16196
|
-
var
|
|
16403
|
+
var import_react99 = require("react");
|
|
16197
16404
|
|
|
16198
16405
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
16199
|
-
var
|
|
16200
|
-
var DnDGridContext = (0,
|
|
16406
|
+
var import_react98 = require("react");
|
|
16407
|
+
var DnDGridContext = (0, import_react98.createContext)({
|
|
16201
16408
|
dragEl: { current: void 0 },
|
|
16202
16409
|
onDragHandleKeyDown: () => {
|
|
16203
16410
|
}
|
|
16204
16411
|
});
|
|
16205
16412
|
function useDnDGridContext() {
|
|
16206
|
-
return (0,
|
|
16413
|
+
return (0, import_react98.useContext)(DnDGridContext);
|
|
16207
16414
|
}
|
|
16208
16415
|
|
|
16209
16416
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
16210
|
-
var
|
|
16417
|
+
var import_jsx_runtime135 = require("@emotion/react/jsx-runtime");
|
|
16211
16418
|
function DnDGrid(props) {
|
|
16212
16419
|
const { children, gridStyles, onReorder, activeItemStyles } = props;
|
|
16213
|
-
const gridEl = (0,
|
|
16214
|
-
const dragEl = (0,
|
|
16215
|
-
const cloneEl = (0,
|
|
16216
|
-
const initialOrder = (0,
|
|
16217
|
-
const reorderViaKeyboard = (0,
|
|
16218
|
-
const transformFrom = (0,
|
|
16420
|
+
const gridEl = (0, import_react99.useRef)(null);
|
|
16421
|
+
const dragEl = (0, import_react99.useRef)();
|
|
16422
|
+
const cloneEl = (0, import_react99.useRef)();
|
|
16423
|
+
const initialOrder = (0, import_react99.useRef)();
|
|
16424
|
+
const reorderViaKeyboard = (0, import_react99.useRef)(false);
|
|
16425
|
+
const transformFrom = (0, import_react99.useRef)({ x: 0, y: 0 });
|
|
16219
16426
|
const tid = useTestIds(props, "dndGrid");
|
|
16220
|
-
const getGridItems = (0,
|
|
16427
|
+
const getGridItems = (0, import_react99.useCallback)(() => {
|
|
16221
16428
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
16222
16429
|
}, []);
|
|
16223
|
-
const getGridItemIdOrder = (0,
|
|
16430
|
+
const getGridItemIdOrder = (0, import_react99.useCallback)(() => {
|
|
16224
16431
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
16225
16432
|
}, [getGridItems]);
|
|
16226
|
-
const initReorder = (0,
|
|
16433
|
+
const initReorder = (0, import_react99.useCallback)(() => {
|
|
16227
16434
|
if (gridEl.current && dragEl.current) {
|
|
16228
16435
|
initialOrder.current = getGridItemIdOrder();
|
|
16229
16436
|
dragEl.current.classList.add(activeGridItemClass);
|
|
16230
16437
|
}
|
|
16231
16438
|
}, [getGridItemIdOrder]);
|
|
16232
|
-
const commitReorder = (0,
|
|
16439
|
+
const commitReorder = (0, import_react99.useCallback)(() => {
|
|
16233
16440
|
if (gridEl.current && dragEl.current) {
|
|
16234
16441
|
const currentOrder = getGridItemIdOrder();
|
|
16235
16442
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -16239,7 +16446,7 @@ function DnDGrid(props) {
|
|
|
16239
16446
|
initialOrder.current = currentOrder;
|
|
16240
16447
|
}
|
|
16241
16448
|
}, [onReorder, getGridItemIdOrder]);
|
|
16242
|
-
const cancelReorder = (0,
|
|
16449
|
+
const cancelReorder = (0, import_react99.useCallback)(() => {
|
|
16243
16450
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
16244
16451
|
const currentOrder = getGridItemIdOrder();
|
|
16245
16452
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -16261,7 +16468,7 @@ function DnDGrid(props) {
|
|
|
16261
16468
|
reorderViaKeyboard.current = false;
|
|
16262
16469
|
}
|
|
16263
16470
|
}, [getGridItemIdOrder, getGridItems]);
|
|
16264
|
-
const onMove = (0,
|
|
16471
|
+
const onMove = (0, import_react99.useCallback)((e) => {
|
|
16265
16472
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16266
16473
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
16267
16474
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -16282,7 +16489,7 @@ function DnDGrid(props) {
|
|
|
16282
16489
|
}
|
|
16283
16490
|
}
|
|
16284
16491
|
}, []);
|
|
16285
|
-
const onDragStart = (0,
|
|
16492
|
+
const onDragStart = (0, import_react99.useCallback)(
|
|
16286
16493
|
(e) => {
|
|
16287
16494
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
16288
16495
|
initReorder();
|
|
@@ -16313,7 +16520,7 @@ function DnDGrid(props) {
|
|
|
16313
16520
|
},
|
|
16314
16521
|
[initReorder, onMove]
|
|
16315
16522
|
);
|
|
16316
|
-
const onDragEnd = (0,
|
|
16523
|
+
const onDragEnd = (0, import_react99.useCallback)(
|
|
16317
16524
|
(e) => {
|
|
16318
16525
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
16319
16526
|
e.preventDefault();
|
|
@@ -16329,7 +16536,7 @@ function DnDGrid(props) {
|
|
|
16329
16536
|
},
|
|
16330
16537
|
[commitReorder, onMove]
|
|
16331
16538
|
);
|
|
16332
|
-
const onDragHandleKeyDown = (0,
|
|
16539
|
+
const onDragHandleKeyDown = (0, import_react99.useCallback)(
|
|
16333
16540
|
(e) => {
|
|
16334
16541
|
const moveHandle = e.target;
|
|
16335
16542
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -16380,7 +16587,7 @@ function DnDGrid(props) {
|
|
|
16380
16587
|
},
|
|
16381
16588
|
[cancelReorder, commitReorder, initReorder, getGridItems]
|
|
16382
16589
|
);
|
|
16383
|
-
return /* @__PURE__ */ (0,
|
|
16590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DnDGridContext.Provider, { value: { dragEl, onDragHandleKeyDown }, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16384
16591
|
"div",
|
|
16385
16592
|
{
|
|
16386
16593
|
ref: gridEl,
|
|
@@ -16402,16 +16609,16 @@ var gridCloneKey = "dndgrid-clone";
|
|
|
16402
16609
|
var activeGridItemClass = "dndgrid-active";
|
|
16403
16610
|
|
|
16404
16611
|
// src/components/DnDGrid/DnDGridItemHandle.tsx
|
|
16405
|
-
var
|
|
16406
|
-
var
|
|
16612
|
+
var import_react_aria49 = require("react-aria");
|
|
16613
|
+
var import_jsx_runtime136 = require("@emotion/react/jsx-runtime");
|
|
16407
16614
|
function DnDGridItemHandle(props) {
|
|
16408
16615
|
const { dragHandleProps, icon = "move", compact = false, color } = props;
|
|
16409
|
-
const { focusProps, isFocusVisible } = (0,
|
|
16410
|
-
const { hoverProps, isHovered } = (0,
|
|
16616
|
+
const { focusProps, isFocusVisible } = (0, import_react_aria49.useFocusRing)();
|
|
16617
|
+
const { hoverProps, isHovered } = (0, import_react_aria49.useHover)({});
|
|
16411
16618
|
const tid = useTestIds(props, "dragHandle");
|
|
16412
16619
|
const iconButtonNormal2 = Css.hPx(28).wPx(28).br8.bw2.$;
|
|
16413
16620
|
const iconButtonCompact2 = Css.hPx(18).wPx(18).br4.bw1.$;
|
|
16414
|
-
return /* @__PURE__ */ (0,
|
|
16621
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
16415
16622
|
"button",
|
|
16416
16623
|
{
|
|
16417
16624
|
css: {
|
|
@@ -16419,19 +16626,19 @@ function DnDGridItemHandle(props) {
|
|
|
16419
16626
|
...Css.cursor("grab").bcTransparent.bss.bgTransparent.outline0.dif.aic.jcc.transition.if(isFocusVisible).bcBlue700.$,
|
|
16420
16627
|
...isHovered && Css.bgGray200.$
|
|
16421
16628
|
},
|
|
16422
|
-
...(0,
|
|
16629
|
+
...(0, import_react_aria49.mergeProps)(dragHandleProps, focusProps, hoverProps),
|
|
16423
16630
|
...tid,
|
|
16424
|
-
children: /* @__PURE__ */ (0,
|
|
16631
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Icon, { icon, inc: compact ? 2 : void 0, color })
|
|
16425
16632
|
}
|
|
16426
16633
|
);
|
|
16427
16634
|
}
|
|
16428
16635
|
|
|
16429
16636
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
16430
|
-
var
|
|
16637
|
+
var import_react100 = require("react");
|
|
16431
16638
|
function useDnDGridItem(props) {
|
|
16432
16639
|
const { id, itemRef } = props;
|
|
16433
16640
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
16434
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
16641
|
+
const { dragItemProps, dragHandleProps } = (0, import_react100.useMemo)(
|
|
16435
16642
|
() => {
|
|
16436
16643
|
function initDraggable() {
|
|
16437
16644
|
if (itemRef.current) {
|
|
@@ -16475,7 +16682,7 @@ var BaseFilter = class {
|
|
|
16475
16682
|
};
|
|
16476
16683
|
|
|
16477
16684
|
// src/components/Filters/DateFilter.tsx
|
|
16478
|
-
var
|
|
16685
|
+
var import_jsx_runtime137 = require("@emotion/react/jsx-runtime");
|
|
16479
16686
|
function dateFilter(props) {
|
|
16480
16687
|
return (key) => new DateFilter(key, props);
|
|
16481
16688
|
}
|
|
@@ -16483,10 +16690,10 @@ var anyOption = {};
|
|
|
16483
16690
|
var DateFilter = class extends BaseFilter {
|
|
16484
16691
|
render(value, setValue, tid, inModal, vertical) {
|
|
16485
16692
|
const { label, operations, getOperationValue, getOperationLabel } = this.props;
|
|
16486
|
-
return /* @__PURE__ */ (0,
|
|
16487
|
-
vertical && /* @__PURE__ */ (0,
|
|
16488
|
-
/* @__PURE__ */ (0,
|
|
16489
|
-
/* @__PURE__ */ (0,
|
|
16693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_jsx_runtime137.Fragment, { children: [
|
|
16694
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Label, { label }),
|
|
16695
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(CompoundField, { children: [
|
|
16696
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16490
16697
|
SelectField,
|
|
16491
16698
|
{
|
|
16492
16699
|
compact: true,
|
|
@@ -16509,7 +16716,7 @@ var DateFilter = class extends BaseFilter {
|
|
|
16509
16716
|
...tid[`${defaultTestId(this.label)}_dateOperation`]
|
|
16510
16717
|
}
|
|
16511
16718
|
),
|
|
16512
|
-
/* @__PURE__ */ (0,
|
|
16719
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
16513
16720
|
DateField,
|
|
16514
16721
|
{
|
|
16515
16722
|
compact: true,
|
|
@@ -16527,16 +16734,16 @@ var DateFilter = class extends BaseFilter {
|
|
|
16527
16734
|
};
|
|
16528
16735
|
|
|
16529
16736
|
// src/components/Filters/DateRangeFilter.tsx
|
|
16530
|
-
var
|
|
16737
|
+
var import_jsx_runtime138 = require("@emotion/react/jsx-runtime");
|
|
16531
16738
|
function dateRangeFilter(props) {
|
|
16532
16739
|
return (key) => new DateRangeFilter(key, props);
|
|
16533
16740
|
}
|
|
16534
16741
|
var DateRangeFilter = class extends BaseFilter {
|
|
16535
16742
|
render(value, setValue, tid, inModal, vertical) {
|
|
16536
16743
|
const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
|
|
16537
|
-
return /* @__PURE__ */ (0,
|
|
16538
|
-
vertical && /* @__PURE__ */ (0,
|
|
16539
|
-
/* @__PURE__ */ (0,
|
|
16744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_jsx_runtime138.Fragment, { children: [
|
|
16745
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Label, { label }),
|
|
16746
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
|
|
16540
16747
|
DateRangeField,
|
|
16541
16748
|
{
|
|
16542
16749
|
compact: true,
|
|
@@ -16555,7 +16762,7 @@ var DateRangeFilter = class extends BaseFilter {
|
|
|
16555
16762
|
};
|
|
16556
16763
|
|
|
16557
16764
|
// src/components/Filters/MultiFilter.tsx
|
|
16558
|
-
var
|
|
16765
|
+
var import_jsx_runtime139 = require("@emotion/react/jsx-runtime");
|
|
16559
16766
|
function multiFilter(props) {
|
|
16560
16767
|
return (key) => new MultiFilter(key, props);
|
|
16561
16768
|
}
|
|
@@ -16565,7 +16772,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16565
16772
|
const { disabledOptions } = this.props;
|
|
16566
16773
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
16567
16774
|
const disabledKeys = Object.keys(disabledOptionsWithReasons);
|
|
16568
|
-
return /* @__PURE__ */ (0,
|
|
16775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
16569
16776
|
ToggleChipGroup,
|
|
16570
16777
|
{
|
|
16571
16778
|
label: this.label,
|
|
@@ -16589,7 +16796,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16589
16796
|
);
|
|
16590
16797
|
}
|
|
16591
16798
|
const { defaultValue, nothingSelectedText, ...props } = this.props;
|
|
16592
|
-
return /* @__PURE__ */ (0,
|
|
16799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
16593
16800
|
MultiSelectField,
|
|
16594
16801
|
{
|
|
16595
16802
|
...props,
|
|
@@ -16609,7 +16816,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
16609
16816
|
};
|
|
16610
16817
|
|
|
16611
16818
|
// src/components/Filters/NumberRangeFilter.tsx
|
|
16612
|
-
var
|
|
16819
|
+
var import_jsx_runtime140 = require("@emotion/react/jsx-runtime");
|
|
16613
16820
|
function numberRangeFilter(props) {
|
|
16614
16821
|
return (key) => new NumberRangeFilter(key, props);
|
|
16615
16822
|
}
|
|
@@ -16618,10 +16825,10 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16618
16825
|
const { label, numberFieldType, numberFormatOptions } = this.props;
|
|
16619
16826
|
const min = value?.min ?? void 0;
|
|
16620
16827
|
const max = value?.max ?? void 0;
|
|
16621
|
-
return /* @__PURE__ */ (0,
|
|
16622
|
-
vertical && /* @__PURE__ */ (0,
|
|
16623
|
-
/* @__PURE__ */ (0,
|
|
16624
|
-
/* @__PURE__ */ (0,
|
|
16828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
|
|
16829
|
+
vertical && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { ...tid, children: [
|
|
16830
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Label, { label }),
|
|
16831
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)("div", { css: Css.pb1.$, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16625
16832
|
NumberField,
|
|
16626
16833
|
{
|
|
16627
16834
|
labelStyle: "inline",
|
|
@@ -16637,7 +16844,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16637
16844
|
...tid[`${defaultTestId(label)}_min_vertical`]
|
|
16638
16845
|
}
|
|
16639
16846
|
) }),
|
|
16640
|
-
/* @__PURE__ */ (0,
|
|
16847
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16641
16848
|
NumberField,
|
|
16642
16849
|
{
|
|
16643
16850
|
labelStyle: "inline",
|
|
@@ -16654,8 +16861,8 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16654
16861
|
}
|
|
16655
16862
|
)
|
|
16656
16863
|
] }),
|
|
16657
|
-
!vertical && /* @__PURE__ */ (0,
|
|
16658
|
-
/* @__PURE__ */ (0,
|
|
16864
|
+
!vertical && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(CompoundField, { ...tid, children: [
|
|
16865
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16659
16866
|
NumberField,
|
|
16660
16867
|
{
|
|
16661
16868
|
compact: true,
|
|
@@ -16673,7 +16880,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16673
16880
|
...tid[`${defaultTestId(label)}_min`]
|
|
16674
16881
|
}
|
|
16675
16882
|
),
|
|
16676
|
-
/* @__PURE__ */ (0,
|
|
16883
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
16677
16884
|
NumberField,
|
|
16678
16885
|
{
|
|
16679
16886
|
compact: true,
|
|
@@ -16697,7 +16904,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
16697
16904
|
};
|
|
16698
16905
|
|
|
16699
16906
|
// src/components/Filters/SingleFilter.tsx
|
|
16700
|
-
var
|
|
16907
|
+
var import_jsx_runtime141 = require("@emotion/react/jsx-runtime");
|
|
16701
16908
|
function singleFilter(props) {
|
|
16702
16909
|
return (key) => new SingleFilter(key, props);
|
|
16703
16910
|
}
|
|
@@ -16714,7 +16921,7 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16714
16921
|
...props
|
|
16715
16922
|
} = this.props;
|
|
16716
16923
|
const options = Array.isArray(maybeOptions) ? [allOption, ...maybeOptions] : { ...maybeOptions, current: maybeOptions.current };
|
|
16717
|
-
return /* @__PURE__ */ (0,
|
|
16924
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
16718
16925
|
SelectField,
|
|
16719
16926
|
{
|
|
16720
16927
|
...props,
|
|
@@ -16735,14 +16942,14 @@ var SingleFilter = class extends BaseFilter {
|
|
|
16735
16942
|
};
|
|
16736
16943
|
|
|
16737
16944
|
// src/components/Filters/TreeFilter.tsx
|
|
16738
|
-
var
|
|
16945
|
+
var import_jsx_runtime142 = require("@emotion/react/jsx-runtime");
|
|
16739
16946
|
function treeFilter(props) {
|
|
16740
16947
|
return (key) => new TreeFilter(key, props);
|
|
16741
16948
|
}
|
|
16742
16949
|
var TreeFilter = class extends BaseFilter {
|
|
16743
16950
|
render(value, setValue, tid, inModal, vertical) {
|
|
16744
16951
|
const { defaultValue, nothingSelectedText, filterBy = "root", ...props } = this.props;
|
|
16745
|
-
return /* @__PURE__ */ (0,
|
|
16952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
16746
16953
|
TreeSelectField,
|
|
16747
16954
|
{
|
|
16748
16955
|
...props,
|
|
@@ -16763,14 +16970,14 @@ var TreeFilter = class extends BaseFilter {
|
|
|
16763
16970
|
};
|
|
16764
16971
|
|
|
16765
16972
|
// src/components/Filters/BooleanFilter.tsx
|
|
16766
|
-
var
|
|
16973
|
+
var import_jsx_runtime143 = require("@emotion/react/jsx-runtime");
|
|
16767
16974
|
function booleanFilter(props) {
|
|
16768
16975
|
return (key) => new BooleanFilter(key, props);
|
|
16769
16976
|
}
|
|
16770
16977
|
var BooleanFilter = class extends BaseFilter {
|
|
16771
16978
|
render(value, setValue, tid, inModal, vertical) {
|
|
16772
16979
|
const { options = defaultBooleanOptions, label, defaultValue, ...props } = this.props;
|
|
16773
|
-
return /* @__PURE__ */ (0,
|
|
16980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
16774
16981
|
SelectField,
|
|
16775
16982
|
{
|
|
16776
16983
|
...props,
|
|
@@ -16798,7 +17005,7 @@ var defaultBooleanOptions = [
|
|
|
16798
17005
|
];
|
|
16799
17006
|
|
|
16800
17007
|
// src/components/Filters/CheckboxFilter.tsx
|
|
16801
|
-
var
|
|
17008
|
+
var import_jsx_runtime144 = require("@emotion/react/jsx-runtime");
|
|
16802
17009
|
function checkboxFilter(props) {
|
|
16803
17010
|
return (key) => new CheckboxFilter(key, {
|
|
16804
17011
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16809,7 +17016,7 @@ function checkboxFilter(props) {
|
|
|
16809
17016
|
var CheckboxFilter = class extends BaseFilter {
|
|
16810
17017
|
render(value, setValue, tid, inModal, vertical) {
|
|
16811
17018
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16812
|
-
return /* @__PURE__ */ (0,
|
|
17019
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
16813
17020
|
Checkbox,
|
|
16814
17021
|
{
|
|
16815
17022
|
...props,
|
|
@@ -16828,44 +17035,44 @@ var CheckboxFilter = class extends BaseFilter {
|
|
|
16828
17035
|
};
|
|
16829
17036
|
|
|
16830
17037
|
// src/components/Filters/FilterModal.tsx
|
|
16831
|
-
var
|
|
17038
|
+
var import_react102 = require("react");
|
|
16832
17039
|
|
|
16833
17040
|
// src/components/Modal/OpenModal.tsx
|
|
16834
|
-
var
|
|
16835
|
-
var
|
|
17041
|
+
var import_react101 = require("react");
|
|
17042
|
+
var import_jsx_runtime145 = require("@emotion/react/jsx-runtime");
|
|
16836
17043
|
function OpenModal(props) {
|
|
16837
17044
|
const { openModal } = useModal();
|
|
16838
17045
|
const { size, children, keepOpen } = props;
|
|
16839
|
-
(0,
|
|
17046
|
+
(0, import_react101.useEffect)(() => {
|
|
16840
17047
|
if (!keepOpen) {
|
|
16841
17048
|
openModal({ size, content: children });
|
|
16842
17049
|
}
|
|
16843
17050
|
}, [keepOpen, openModal, size, children]);
|
|
16844
17051
|
if (keepOpen) {
|
|
16845
|
-
return /* @__PURE__ */ (0,
|
|
17052
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Modal, { size, content: children });
|
|
16846
17053
|
} else {
|
|
16847
|
-
return /* @__PURE__ */ (0,
|
|
17054
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { children: "dummy content" });
|
|
16848
17055
|
}
|
|
16849
17056
|
}
|
|
16850
17057
|
|
|
16851
17058
|
// src/components/Filters/FilterModal.tsx
|
|
16852
|
-
var
|
|
17059
|
+
var import_jsx_runtime146 = require("@emotion/react/jsx-runtime");
|
|
16853
17060
|
function FilterModal(props) {
|
|
16854
17061
|
const { filter, filters, onApply } = props;
|
|
16855
17062
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16856
17063
|
const { closeModal } = useModal();
|
|
16857
|
-
const [modalFilter, setModalFilter] = (0,
|
|
16858
|
-
return /* @__PURE__ */ (0,
|
|
16859
|
-
/* @__PURE__ */ (0,
|
|
16860
|
-
/* @__PURE__ */ (0,
|
|
17064
|
+
const [modalFilter, setModalFilter] = (0, import_react102.useState)(filter);
|
|
17065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
|
|
17066
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalHeader, { children: "More Filters" }),
|
|
17067
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.df.fdc.$, children: safeEntries(filters).map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ModalFilterItem, { label: f.hideLabelInModal ? void 0 : f.label, children: f.render(
|
|
16861
17068
|
modalFilter[key],
|
|
16862
17069
|
(value) => setModalFilter(updateFilter(modalFilter, key, value)),
|
|
16863
17070
|
testId,
|
|
16864
17071
|
true,
|
|
16865
17072
|
false
|
|
16866
17073
|
) }, key)) }) }),
|
|
16867
|
-
/* @__PURE__ */ (0,
|
|
16868
|
-
/* @__PURE__ */ (0,
|
|
17074
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(ModalFooter, { xss: Css.jcsb.$, children: [
|
|
17075
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
16869
17076
|
Button,
|
|
16870
17077
|
{
|
|
16871
17078
|
label: "Clear",
|
|
@@ -16878,9 +17085,9 @@ function FilterModal(props) {
|
|
|
16878
17085
|
...testId.modalClear
|
|
16879
17086
|
}
|
|
16880
17087
|
),
|
|
16881
|
-
/* @__PURE__ */ (0,
|
|
16882
|
-
/* @__PURE__ */ (0,
|
|
16883
|
-
/* @__PURE__ */ (0,
|
|
17088
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { css: Css.df.gap1.$, children: [
|
|
17089
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Button, { label: "Cancel", variant: "tertiary", onClick: closeModal, ...testId.modalClose }),
|
|
17090
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
16884
17091
|
Button,
|
|
16885
17092
|
{
|
|
16886
17093
|
label: "Apply",
|
|
@@ -16896,20 +17103,20 @@ function FilterModal(props) {
|
|
|
16896
17103
|
] });
|
|
16897
17104
|
}
|
|
16898
17105
|
function ModalFilterItem({ label, children }) {
|
|
16899
|
-
return /* @__PURE__ */ (0,
|
|
16900
|
-
label && /* @__PURE__ */ (0,
|
|
16901
|
-
/* @__PURE__ */ (0,
|
|
17106
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { css: Css.mb4.if(!label).bt.bcGray200.$, children: [
|
|
17107
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("h2", { css: Css.baseMd.mb2.$, children: label }),
|
|
17108
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { css: Css.if(!label).pt3.$, children })
|
|
16902
17109
|
] });
|
|
16903
17110
|
}
|
|
16904
17111
|
|
|
16905
17112
|
// src/components/Filters/Filters.tsx
|
|
16906
|
-
var
|
|
16907
|
-
var
|
|
17113
|
+
var import_react103 = require("react");
|
|
17114
|
+
var import_jsx_runtime147 = require("@emotion/react/jsx-runtime");
|
|
16908
17115
|
function Filters(props) {
|
|
16909
17116
|
const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
|
|
16910
17117
|
const testId = useTestIds(props, filterTestIdPrefix);
|
|
16911
17118
|
const { openModal } = useModal();
|
|
16912
|
-
const [pageFilters, modalFilters] = (0,
|
|
17119
|
+
const [pageFilters, modalFilters] = (0, import_react103.useMemo)(() => {
|
|
16913
17120
|
const impls = safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]);
|
|
16914
17121
|
if (!vertical && impls.length > numberOfInlineFilters) {
|
|
16915
17122
|
return [
|
|
@@ -16920,7 +17127,7 @@ function Filters(props) {
|
|
|
16920
17127
|
return [Object.fromEntries(impls), {}];
|
|
16921
17128
|
}, [numberOfInlineFilters, vertical, filterDefs]);
|
|
16922
17129
|
const numModalFilters = safeKeys(modalFilters).filter((fk) => filter[fk] !== void 0).length;
|
|
16923
|
-
const maybeGroupByField = groupBy ? /* @__PURE__ */ (0,
|
|
17130
|
+
const maybeGroupByField = groupBy ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
16924
17131
|
SelectField,
|
|
16925
17132
|
{
|
|
16926
17133
|
label: "Group by",
|
|
@@ -16934,7 +17141,7 @@ function Filters(props) {
|
|
|
16934
17141
|
onSelect: (g) => g && groupBy.setValue(g)
|
|
16935
17142
|
}
|
|
16936
17143
|
) }) : null;
|
|
16937
|
-
return /* @__PURE__ */ (0,
|
|
17144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
16938
17145
|
"div",
|
|
16939
17146
|
{
|
|
16940
17147
|
css: {
|
|
@@ -16943,29 +17150,29 @@ function Filters(props) {
|
|
|
16943
17150
|
...testId,
|
|
16944
17151
|
children: [
|
|
16945
17152
|
maybeGroupByField,
|
|
16946
|
-
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */ (0,
|
|
16947
|
-
Object.keys(modalFilters).length > 0 && /* @__PURE__ */ (0,
|
|
17153
|
+
safeEntries(pageFilters).map(([key, f]) => /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: f.render(filter[key], (value) => onChange(updateFilter(filter, key, value)), testId, false, vertical) }, key)),
|
|
17154
|
+
Object.keys(modalFilters).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
16948
17155
|
Button,
|
|
16949
17156
|
{
|
|
16950
17157
|
label: "More Filters",
|
|
16951
|
-
endAdornment: numModalFilters > 0 && /* @__PURE__ */ (0,
|
|
17158
|
+
endAdornment: numModalFilters > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { css: Css.wPx(16).hPx(16).fs0.br100.bgBlue700.white.tinySb.df.aic.jcc.$, children: numModalFilters }),
|
|
16952
17159
|
variant: "secondary",
|
|
16953
17160
|
onClick: () => openModal({
|
|
16954
17161
|
// Spreading `props` to pass along `data-testid`
|
|
16955
|
-
content: /* @__PURE__ */ (0,
|
|
17162
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(FilterModal, { ...props, filter, onApply: onChange, filters: modalFilters })
|
|
16956
17163
|
}),
|
|
16957
17164
|
...testId.moreFiltersBtn
|
|
16958
17165
|
}
|
|
16959
17166
|
),
|
|
16960
|
-
Object.keys(filter).length > 0 && /* @__PURE__ */ (0,
|
|
17167
|
+
Object.keys(filter).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) })
|
|
16961
17168
|
]
|
|
16962
17169
|
}
|
|
16963
17170
|
);
|
|
16964
17171
|
}
|
|
16965
|
-
var _Filters = (0,
|
|
17172
|
+
var _Filters = (0, import_react103.memo)(Filters);
|
|
16966
17173
|
|
|
16967
17174
|
// src/components/Filters/ToggleFilter.tsx
|
|
16968
|
-
var
|
|
17175
|
+
var import_jsx_runtime148 = require("@emotion/react/jsx-runtime");
|
|
16969
17176
|
function toggleFilter(props) {
|
|
16970
17177
|
return (key) => new ToggleFilter(key, {
|
|
16971
17178
|
// If the user has set the offValue, that should be the default b/c we're only a two-state
|
|
@@ -16976,7 +17183,7 @@ function toggleFilter(props) {
|
|
|
16976
17183
|
var ToggleFilter = class extends BaseFilter {
|
|
16977
17184
|
render(value, setValue, tid, inModal, vertical) {
|
|
16978
17185
|
const { defaultValue, onValue = true, offValue = void 0, ...props } = this.props;
|
|
16979
|
-
return /* @__PURE__ */ (0,
|
|
17186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
16980
17187
|
Switch,
|
|
16981
17188
|
{
|
|
16982
17189
|
...props,
|
|
@@ -17006,23 +17213,23 @@ function updateFilter(currentFilter, key, value) {
|
|
|
17006
17213
|
var filterTestIdPrefix = "filter";
|
|
17007
17214
|
|
|
17008
17215
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
17009
|
-
var
|
|
17216
|
+
var import_jsx_runtime149 = require("@emotion/react/jsx-runtime");
|
|
17010
17217
|
function ResponsiveGrid(props) {
|
|
17011
17218
|
const { children, ...hookProps } = props;
|
|
17012
17219
|
const { gridStyles } = useResponsiveGrid(hookProps);
|
|
17013
|
-
return /* @__PURE__ */ (0,
|
|
17220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { css: { ...gridStyles }, children });
|
|
17014
17221
|
}
|
|
17015
17222
|
|
|
17016
17223
|
// src/components/Grid/ResponsiveGridItem.tsx
|
|
17017
|
-
var
|
|
17224
|
+
var import_jsx_runtime150 = require("@emotion/react/jsx-runtime");
|
|
17018
17225
|
function ResponsiveGridItem(props) {
|
|
17019
17226
|
const { colSpan, children } = props;
|
|
17020
17227
|
const { gridItemProps } = useResponsiveGridItem({ colSpan });
|
|
17021
|
-
return /* @__PURE__ */ (0,
|
|
17228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { ...gridItemProps, children });
|
|
17022
17229
|
}
|
|
17023
17230
|
|
|
17024
17231
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17025
|
-
var
|
|
17232
|
+
var import_react104 = require("react");
|
|
17026
17233
|
|
|
17027
17234
|
// src/components/Grid/utils.ts
|
|
17028
17235
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
@@ -17030,7 +17237,7 @@ var gridItemDataAttribute = "data-grid-item-span";
|
|
|
17030
17237
|
// src/components/Grid/useResponsiveGrid.ts
|
|
17031
17238
|
function useResponsiveGrid(props) {
|
|
17032
17239
|
const { minColumnWidth, gap, columns } = props;
|
|
17033
|
-
const gridStyles = (0,
|
|
17240
|
+
const gridStyles = (0, import_react104.useMemo)(() => {
|
|
17034
17241
|
const gapCount = columns - 1;
|
|
17035
17242
|
const totalGapWidth = gap * gapCount;
|
|
17036
17243
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -17071,24 +17278,24 @@ function useResponsiveGridItem({ colSpan = 1 }) {
|
|
|
17071
17278
|
}
|
|
17072
17279
|
|
|
17073
17280
|
// src/components/HbLoadingSpinner.tsx
|
|
17074
|
-
var
|
|
17281
|
+
var import_react105 = __toESM(require("react"), 1);
|
|
17075
17282
|
|
|
17076
17283
|
// src/components/HbLoadingSpinner.base64.ts
|
|
17077
17284
|
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";
|
|
17078
17285
|
|
|
17079
17286
|
// src/components/HbLoadingSpinner.tsx
|
|
17080
|
-
var
|
|
17287
|
+
var import_jsx_runtime151 = require("@emotion/react/jsx-runtime");
|
|
17081
17288
|
function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }) {
|
|
17082
|
-
const ctx = (0,
|
|
17289
|
+
const ctx = (0, import_react105.useContext)(HbLoadingSpinnerContext);
|
|
17083
17290
|
const tid = useTestIds({}, "hbSpinner");
|
|
17084
|
-
const quip = (0,
|
|
17291
|
+
const quip = (0, import_react105.useMemo)(() => {
|
|
17085
17292
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
17086
17293
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
17087
17294
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
17088
17295
|
return allQuips[Math.floor(Math.random() * allQuips.length)];
|
|
17089
17296
|
}, [ctx.noQuips, ctx.quips, extraQuips, extraQuipsOnly, noQuips]);
|
|
17090
|
-
return /* @__PURE__ */ (0,
|
|
17091
|
-
/* @__PURE__ */ (0,
|
|
17297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { css: Css.df.fdc.jcc.aic.$, ...tid, children: [
|
|
17298
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
17092
17299
|
"img",
|
|
17093
17300
|
{
|
|
17094
17301
|
src: HbLoadingSpinner_base64_default,
|
|
@@ -17101,7 +17308,7 @@ function HbLoadingSpinner({ noQuips, extraQuips = [], extraQuipsOnly, iconOnly }
|
|
|
17101
17308
|
...tid.gif
|
|
17102
17309
|
}
|
|
17103
17310
|
),
|
|
17104
|
-
!iconOnly && /* @__PURE__ */ (0,
|
|
17311
|
+
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
17105
17312
|
"div",
|
|
17106
17313
|
{
|
|
17107
17314
|
"data-chromatic": "ignore",
|
|
@@ -17121,17 +17328,17 @@ var HB_QUIPS_MISSION = [
|
|
|
17121
17328
|
"In Service of Our Customers"
|
|
17122
17329
|
].map(dotDotDot);
|
|
17123
17330
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
17124
|
-
var HbLoadingSpinnerContext =
|
|
17331
|
+
var HbLoadingSpinnerContext = import_react105.default.createContext({
|
|
17125
17332
|
quips: ["Loading..."],
|
|
17126
17333
|
noQuips: false
|
|
17127
17334
|
});
|
|
17128
17335
|
function HbSpinnerProvider({ quips = [], children }) {
|
|
17129
|
-
const state = (0,
|
|
17130
|
-
return /* @__PURE__ */ (0,
|
|
17336
|
+
const state = (0, import_react105.useMemo)(() => ({ quips, noQuips: quips.length === 0 }), [quips]);
|
|
17337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(HbLoadingSpinnerContext.Provider, { value: state, children });
|
|
17131
17338
|
}
|
|
17132
17339
|
|
|
17133
17340
|
// src/components/LoadingSkeleton.tsx
|
|
17134
|
-
var
|
|
17341
|
+
var import_jsx_runtime152 = require("@emotion/react/jsx-runtime");
|
|
17135
17342
|
function LoadingSkeleton({
|
|
17136
17343
|
rows = 1,
|
|
17137
17344
|
columns = 1,
|
|
@@ -17144,7 +17351,7 @@ function LoadingSkeleton({
|
|
|
17144
17351
|
const rowHeight = sizeToPixels2[size];
|
|
17145
17352
|
const rowCells = (rowNumber) => {
|
|
17146
17353
|
const flexGrowForCell = randomizeWidths ? getRandomizedFlexBasisByRowIndex(rowNumber) : 1;
|
|
17147
|
-
return cellArray.map((_, i) => /* @__PURE__ */ (0,
|
|
17354
|
+
return cellArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
17148
17355
|
"div",
|
|
17149
17356
|
{
|
|
17150
17357
|
css: Css.br4.add("animation", "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite").add("flexGrow", flexGrowForCell).bgGray300.if(contrast).bgGray700.$
|
|
@@ -17152,7 +17359,7 @@ function LoadingSkeleton({
|
|
|
17152
17359
|
`row-${rowNumber}-cell-${i}`
|
|
17153
17360
|
));
|
|
17154
17361
|
};
|
|
17155
|
-
return /* @__PURE__ */ (0,
|
|
17362
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { css: Css.df.gap1.mb1.hPx(rowHeight).$, children: rowCells(i) }, `row-${i}`)) });
|
|
17156
17363
|
}
|
|
17157
17364
|
function getRandomizedFlexBasisByRowIndex(rowIndex) {
|
|
17158
17365
|
const randomizedFlexBasisValues = [0.65, 0.8, 0.75, 0.9, 0.8, 0.85, 0.8, 0.95];
|
|
@@ -17166,33 +17373,33 @@ var sizeToPixels2 = {
|
|
|
17166
17373
|
};
|
|
17167
17374
|
|
|
17168
17375
|
// src/components/MaxLines.tsx
|
|
17169
|
-
var
|
|
17170
|
-
var
|
|
17171
|
-
var
|
|
17376
|
+
var import_utils117 = require("@react-aria/utils");
|
|
17377
|
+
var import_react106 = require("react");
|
|
17378
|
+
var import_jsx_runtime153 = require("@emotion/react/jsx-runtime");
|
|
17172
17379
|
function MaxLines({ maxLines, children }) {
|
|
17173
|
-
const elRef = (0,
|
|
17174
|
-
const [hasMore, setHasMore] = (0,
|
|
17175
|
-
const [expanded, setExpanded] = (0,
|
|
17176
|
-
(0,
|
|
17380
|
+
const elRef = (0, import_react106.useRef)(null);
|
|
17381
|
+
const [hasMore, setHasMore] = (0, import_react106.useState)(false);
|
|
17382
|
+
const [expanded, setExpanded] = (0, import_react106.useState)(false);
|
|
17383
|
+
(0, import_utils117.useLayoutEffect)(() => {
|
|
17177
17384
|
if (!elRef.current) return;
|
|
17178
17385
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17179
17386
|
}, []);
|
|
17180
|
-
(0,
|
|
17387
|
+
(0, import_react106.useEffect)(() => {
|
|
17181
17388
|
setExpanded(false);
|
|
17182
17389
|
}, [children]);
|
|
17183
|
-
const onResize = (0,
|
|
17390
|
+
const onResize = (0, import_react106.useCallback)(() => {
|
|
17184
17391
|
if (!elRef.current) return;
|
|
17185
17392
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
17186
17393
|
}, [expanded]);
|
|
17187
|
-
(0,
|
|
17188
|
-
return /* @__PURE__ */ (0,
|
|
17189
|
-
/* @__PURE__ */ (0,
|
|
17190
|
-
hasMore && /* @__PURE__ */ (0,
|
|
17394
|
+
(0, import_utils117.useResizeObserver)({ ref: elRef, onResize });
|
|
17395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { children: [
|
|
17396
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { ref: elRef, css: Css.if(!expanded).lineClamp(maxLines).$, children }),
|
|
17397
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("button", { css: Css.db.smMd.$, onClick: () => setExpanded((prev) => !prev), children: expanded ? "Show Less" : "Show More" })
|
|
17191
17398
|
] });
|
|
17192
17399
|
}
|
|
17193
17400
|
|
|
17194
17401
|
// src/components/Pagination.tsx
|
|
17195
|
-
var
|
|
17402
|
+
var import_jsx_runtime154 = require("@emotion/react/jsx-runtime");
|
|
17196
17403
|
var defaultPage = { offset: 0, limit: 100 };
|
|
17197
17404
|
function Pagination(props) {
|
|
17198
17405
|
const { totalCount, pageSizes = [100, 500, 1e3] } = props;
|
|
@@ -17212,9 +17419,9 @@ function Pagination(props) {
|
|
|
17212
17419
|
}
|
|
17213
17420
|
}
|
|
17214
17421
|
const tid = useTestIds(props, "pagination");
|
|
17215
|
-
return /* @__PURE__ */ (0,
|
|
17216
|
-
/* @__PURE__ */ (0,
|
|
17217
|
-
/* @__PURE__ */ (0,
|
|
17422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.df.bcGray200.bt.xs.gray500.px2.pt2.$, ...tid, children: [
|
|
17423
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { css: Css.df.mya.mr2.$, ...tid.pageSizeLabel, children: "Page size:" }),
|
|
17424
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { css: Css.wPx(78).$, children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17218
17425
|
SelectField,
|
|
17219
17426
|
{
|
|
17220
17427
|
compact: true,
|
|
@@ -17226,15 +17433,15 @@ function Pagination(props) {
|
|
|
17226
17433
|
...tid.pageSize
|
|
17227
17434
|
}
|
|
17228
17435
|
) }),
|
|
17229
|
-
/* @__PURE__ */ (0,
|
|
17230
|
-
/* @__PURE__ */ (0,
|
|
17436
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.mla.mya.df.$, children: [
|
|
17437
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { css: Css.df.mya.mr2.$, ...tid.pageInfoLabel, children: [
|
|
17231
17438
|
first,
|
|
17232
17439
|
" ",
|
|
17233
17440
|
showLast ? `- ${last}` : "",
|
|
17234
17441
|
" of ",
|
|
17235
17442
|
totalCount
|
|
17236
17443
|
] }),
|
|
17237
|
-
/* @__PURE__ */ (0,
|
|
17444
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17238
17445
|
IconButton,
|
|
17239
17446
|
{
|
|
17240
17447
|
icon: "chevronLeft",
|
|
@@ -17244,7 +17451,7 @@ function Pagination(props) {
|
|
|
17244
17451
|
...tid.previousIcon
|
|
17245
17452
|
}
|
|
17246
17453
|
),
|
|
17247
|
-
/* @__PURE__ */ (0,
|
|
17454
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
17248
17455
|
IconButton,
|
|
17249
17456
|
{
|
|
17250
17457
|
icon: "chevronRight",
|
|
@@ -17272,20 +17479,20 @@ function toPageNumberSize(page) {
|
|
|
17272
17479
|
}
|
|
17273
17480
|
|
|
17274
17481
|
// src/components/ScrollShadows.tsx
|
|
17275
|
-
var
|
|
17276
|
-
var
|
|
17277
|
-
var
|
|
17482
|
+
var import_utils119 = require("@react-aria/utils");
|
|
17483
|
+
var import_react107 = require("react");
|
|
17484
|
+
var import_jsx_runtime155 = require("@emotion/react/jsx-runtime");
|
|
17278
17485
|
function ScrollShadows(props) {
|
|
17279
17486
|
const { children, xss, horizontal = false, bgColor = "rgba(255,255,255,1)" /* White */ } = props;
|
|
17280
|
-
const { height = "auto", width = "auto" } = xss ?? {};
|
|
17487
|
+
const { height = "auto", width: width2 = "auto" } = xss ?? {};
|
|
17281
17488
|
const tid = useTestIds(props);
|
|
17282
17489
|
if (!bgColor.includes("rgba")) {
|
|
17283
17490
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
17284
17491
|
}
|
|
17285
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
17286
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
17287
|
-
const scrollRef = (0,
|
|
17288
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
17492
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react107.useState)(false);
|
|
17493
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react107.useState)(false);
|
|
17494
|
+
const scrollRef = (0, import_react107.useRef)(null);
|
|
17495
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react107.useMemo)(() => {
|
|
17289
17496
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
17290
17497
|
const commonStyles = Css.absolute.z3.add({ pointerEvents: "none" }).$;
|
|
17291
17498
|
const startShadowStyles2 = !horizontal ? Css.top0.left0.right0.hPx(40).$ : Css.left0.top0.bottom0.wPx(25).$;
|
|
@@ -17297,7 +17504,7 @@ function ScrollShadows(props) {
|
|
|
17297
17504
|
{ ...commonStyles, ...endShadowStyles2, ...Css.add("background", endGradient).$ }
|
|
17298
17505
|
];
|
|
17299
17506
|
}, [horizontal, bgColor]);
|
|
17300
|
-
const updateScrollProps = (0,
|
|
17507
|
+
const updateScrollProps = (0, import_react107.useCallback)(
|
|
17301
17508
|
(el) => {
|
|
17302
17509
|
const { scrollTop, scrollHeight, clientHeight, scrollWidth, scrollLeft, clientWidth } = el;
|
|
17303
17510
|
const start = horizontal ? scrollLeft : scrollTop;
|
|
@@ -17308,17 +17515,17 @@ function ScrollShadows(props) {
|
|
|
17308
17515
|
},
|
|
17309
17516
|
[horizontal]
|
|
17310
17517
|
);
|
|
17311
|
-
const onResize = (0,
|
|
17312
|
-
(0,
|
|
17313
|
-
return /* @__PURE__ */ (0,
|
|
17518
|
+
const onResize = (0, import_react107.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
17519
|
+
(0, import_utils119.useResizeObserver)({ ref: scrollRef, onResize });
|
|
17520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
17314
17521
|
"div",
|
|
17315
17522
|
{
|
|
17316
|
-
css: Css.relative.oh.h(height).w(
|
|
17523
|
+
css: Css.relative.oh.h(height).w(width2).df.fd(!horizontal ? "column" : "row").$,
|
|
17317
17524
|
...tid,
|
|
17318
17525
|
children: [
|
|
17319
|
-
/* @__PURE__ */ (0,
|
|
17320
|
-
/* @__PURE__ */ (0,
|
|
17321
|
-
/* @__PURE__ */ (0,
|
|
17526
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { css: { ...startShadowStyles, opacity: showStartShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17527
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { css: { ...endShadowStyles, opacity: showEndShadow ? 1 : 0 }, "data-chromatic": "ignore" }),
|
|
17528
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
17322
17529
|
"div",
|
|
17323
17530
|
{
|
|
17324
17531
|
css: {
|
|
@@ -17336,10 +17543,10 @@ function ScrollShadows(props) {
|
|
|
17336
17543
|
}
|
|
17337
17544
|
|
|
17338
17545
|
// src/components/Snackbar/useSnackbar.tsx
|
|
17339
|
-
var
|
|
17546
|
+
var import_react108 = require("react");
|
|
17340
17547
|
function useSnackbar() {
|
|
17341
17548
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
17342
|
-
const onClose = (0,
|
|
17549
|
+
const onClose = (0, import_react108.useCallback)(
|
|
17343
17550
|
(noticeId) => {
|
|
17344
17551
|
setNotices((prev) => {
|
|
17345
17552
|
let returnValue = prev;
|
|
@@ -17356,7 +17563,7 @@ function useSnackbar() {
|
|
|
17356
17563
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17357
17564
|
[]
|
|
17358
17565
|
);
|
|
17359
|
-
const triggerNotice = (0,
|
|
17566
|
+
const triggerNotice = (0, import_react108.useCallback)(
|
|
17360
17567
|
(props) => {
|
|
17361
17568
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
17362
17569
|
let maybeTimeout;
|
|
@@ -17385,8 +17592,8 @@ function useSnackbar() {
|
|
|
17385
17592
|
},
|
|
17386
17593
|
[onClose, setNotices]
|
|
17387
17594
|
);
|
|
17388
|
-
const closeNotice = (0,
|
|
17389
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
17595
|
+
const closeNotice = (0, import_react108.useCallback)((id) => onClose(id), [onClose]);
|
|
17596
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react108.useEffect)(() => {
|
|
17390
17597
|
setOffset({ bottom });
|
|
17391
17598
|
return () => setOffset({});
|
|
17392
17599
|
}, [bottom]);
|
|
@@ -17395,9 +17602,9 @@ function useSnackbar() {
|
|
|
17395
17602
|
var snackbarId = 1;
|
|
17396
17603
|
|
|
17397
17604
|
// src/components/Stepper.tsx
|
|
17398
|
-
var
|
|
17399
|
-
var
|
|
17400
|
-
var
|
|
17605
|
+
var import_react109 = require("react");
|
|
17606
|
+
var import_react_aria50 = require("react-aria");
|
|
17607
|
+
var import_jsx_runtime156 = require("@emotion/react/jsx-runtime");
|
|
17401
17608
|
function Stepper(props) {
|
|
17402
17609
|
const { steps, currentStep, onChange } = props;
|
|
17403
17610
|
if (steps.length === 0) {
|
|
@@ -17408,25 +17615,25 @@ function Stepper(props) {
|
|
|
17408
17615
|
const maxStepWidth = 200;
|
|
17409
17616
|
const minStepWidth = 100;
|
|
17410
17617
|
const gap = 8;
|
|
17411
|
-
return /* @__PURE__ */ (0,
|
|
17412
|
-
/* @__PURE__ */ (0,
|
|
17618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("nav", { "aria-label": "steps", css: Css.df.fdc.w100.$, ...tid, children: [
|
|
17619
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("ol", { css: Css.listReset.df.gapPx(gap).$, children: steps.map((step) => {
|
|
17413
17620
|
const isCurrent = currentStep === step.value;
|
|
17414
|
-
return /* @__PURE__ */ (0,
|
|
17621
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17415
17622
|
"li",
|
|
17416
17623
|
{
|
|
17417
17624
|
css: Css.df.fg1.fdc.maxwPx(maxStepWidth).mwPx(minStepWidth).$,
|
|
17418
17625
|
"aria-current": isCurrent,
|
|
17419
17626
|
...tid.step,
|
|
17420
|
-
children: /* @__PURE__ */ (0,
|
|
17627
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton })
|
|
17421
17628
|
},
|
|
17422
17629
|
step.label
|
|
17423
17630
|
);
|
|
17424
17631
|
}) }),
|
|
17425
|
-
/* @__PURE__ */ (0,
|
|
17632
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17426
17633
|
"div",
|
|
17427
17634
|
{
|
|
17428
17635
|
css: Css.mt1.bgGray300.hPx(4).maxwPx(steps.length * maxStepWidth + (steps.length - 1) * gap).mwPx(steps.length * minStepWidth + (steps.length - 1) * gap).w100.$,
|
|
17429
|
-
children: /* @__PURE__ */ (0,
|
|
17636
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17430
17637
|
"div",
|
|
17431
17638
|
{
|
|
17432
17639
|
css: Css.bgBlue600.add("transition", "width 200ms").h100.w(`${(lastCompletedStep + 1) / steps.length * 100}%`).$
|
|
@@ -17439,13 +17646,13 @@ function Stepper(props) {
|
|
|
17439
17646
|
function StepButton(props) {
|
|
17440
17647
|
const { label, disabled, state, isCurrent, onClick } = props;
|
|
17441
17648
|
const ariaProps = { onPress: onClick, isDisabled: disabled };
|
|
17442
|
-
const ref = (0,
|
|
17443
|
-
const { buttonProps, isPressed } = (0,
|
|
17444
|
-
const { isFocusVisible, focusProps } = (0,
|
|
17445
|
-
const { hoverProps, isHovered } = (0,
|
|
17649
|
+
const ref = (0, import_react109.useRef)(null);
|
|
17650
|
+
const { buttonProps, isPressed } = (0, import_react_aria50.useButton)(ariaProps, ref);
|
|
17651
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria50.useFocusRing)();
|
|
17652
|
+
const { hoverProps, isHovered } = (0, import_react_aria50.useHover)(ariaProps);
|
|
17446
17653
|
const focusRingStyles2 = state === "error" ? Css.bshDanger.$ : Css.bshFocus.$;
|
|
17447
17654
|
const tid = useTestIds(props, "stepButton");
|
|
17448
|
-
return /* @__PURE__ */ (0,
|
|
17655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
17449
17656
|
"button",
|
|
17450
17657
|
{
|
|
17451
17658
|
ref,
|
|
@@ -17463,7 +17670,7 @@ function StepButton(props) {
|
|
|
17463
17670
|
},
|
|
17464
17671
|
...tid[defaultTestId(label)],
|
|
17465
17672
|
children: [
|
|
17466
|
-
/* @__PURE__ */ (0,
|
|
17673
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { css: Css.fs0.mrPx(4).$, children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
17467
17674
|
label
|
|
17468
17675
|
]
|
|
17469
17676
|
}
|
|
@@ -17471,12 +17678,12 @@ function StepButton(props) {
|
|
|
17471
17678
|
}
|
|
17472
17679
|
function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = false }) {
|
|
17473
17680
|
if (state === "error") {
|
|
17474
|
-
return /* @__PURE__ */ (0,
|
|
17681
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon: "errorCircle" });
|
|
17475
17682
|
}
|
|
17476
17683
|
if (state === "complete") {
|
|
17477
|
-
return /* @__PURE__ */ (0,
|
|
17684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon: "check" });
|
|
17478
17685
|
}
|
|
17479
|
-
return /* @__PURE__ */ (0,
|
|
17686
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { css: Css.wPx(24).hPx(24).df.aic.jcc.$, children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
17480
17687
|
"div",
|
|
17481
17688
|
{
|
|
17482
17689
|
css: Css.wPx(10).hPx(10).ba.bw2.br100.add("color", "currentColor").if(isHovered || isPressed || isCurrent).add("backgroundColor", "currentColor").$
|
|
@@ -17486,7 +17693,7 @@ function StepIcon({ state, isHovered = false, isPressed = false, isCurrent = fal
|
|
|
17486
17693
|
|
|
17487
17694
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
17488
17695
|
var import_react_dom5 = require("react-dom");
|
|
17489
|
-
var
|
|
17696
|
+
var import_jsx_runtime157 = require("@emotion/react/jsx-runtime");
|
|
17490
17697
|
function SuperDrawerHeader(props) {
|
|
17491
17698
|
const { hideControls } = props;
|
|
17492
17699
|
const { sdHeaderDiv, drawerContentStack: contentStack } = useBeamContext();
|
|
@@ -17496,15 +17703,15 @@ function SuperDrawerHeader(props) {
|
|
|
17496
17703
|
const isDetail = currentContent !== firstContent;
|
|
17497
17704
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
17498
17705
|
return (0, import_react_dom5.createPortal)(
|
|
17499
|
-
/* @__PURE__ */ (0,
|
|
17500
|
-
isStructuredProps(props) ? /* @__PURE__ */ (0,
|
|
17501
|
-
/* @__PURE__ */ (0,
|
|
17502
|
-
typeof props.title === "string" ? /* @__PURE__ */ (0,
|
|
17706
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.df.aic.jcsb.gap3.$, ...tid, children: [
|
|
17707
|
+
isStructuredProps(props) ? /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.df.jcsb.aic.gap2.fg1.$, children: [
|
|
17708
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { css: Css.fg1.df.aic.gap2.$, children: [
|
|
17709
|
+
typeof props.title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("h1", { children: props.title }) : props.title,
|
|
17503
17710
|
props.left
|
|
17504
17711
|
] }),
|
|
17505
|
-
props.right && /* @__PURE__ */ (0,
|
|
17506
|
-
] }) : /* @__PURE__ */ (0,
|
|
17507
|
-
!hideControls && /* @__PURE__ */ (0,
|
|
17712
|
+
props.right && /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fs0.$, children: props.right })
|
|
17713
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fg1.$, children: props.children }),
|
|
17714
|
+
!hideControls && /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { css: Css.fs0.if(isDetail).vh.$, children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(
|
|
17508
17715
|
ButtonGroup,
|
|
17509
17716
|
{
|
|
17510
17717
|
buttons: [
|
|
@@ -17523,18 +17730,18 @@ function isStructuredProps(props) {
|
|
|
17523
17730
|
}
|
|
17524
17731
|
|
|
17525
17732
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
17526
|
-
var
|
|
17733
|
+
var import_jsx_runtime158 = require("@emotion/react/jsx-runtime");
|
|
17527
17734
|
function ConfirmCloseModal(props) {
|
|
17528
17735
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
17529
17736
|
const { modalState } = useBeamContext();
|
|
17530
17737
|
function closeModal() {
|
|
17531
17738
|
modalState.current = void 0;
|
|
17532
17739
|
}
|
|
17533
|
-
return /* @__PURE__ */ (0,
|
|
17534
|
-
/* @__PURE__ */ (0,
|
|
17535
|
-
/* @__PURE__ */ (0,
|
|
17536
|
-
/* @__PURE__ */ (0,
|
|
17537
|
-
/* @__PURE__ */ (0,
|
|
17740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(import_jsx_runtime158.Fragment, { children: [
|
|
17741
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
17742
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
17743
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(ModalFooter, { children: [
|
|
17744
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
17538
17745
|
Button,
|
|
17539
17746
|
{
|
|
17540
17747
|
variant: "tertiary",
|
|
@@ -17545,7 +17752,7 @@ function ConfirmCloseModal(props) {
|
|
|
17545
17752
|
}
|
|
17546
17753
|
}
|
|
17547
17754
|
),
|
|
17548
|
-
/* @__PURE__ */ (0,
|
|
17755
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Button, { label: continueText, onClick: closeModal })
|
|
17549
17756
|
] })
|
|
17550
17757
|
] });
|
|
17551
17758
|
}
|
|
@@ -17554,8 +17761,8 @@ function ConfirmCloseModal(props) {
|
|
|
17554
17761
|
var import_framer_motion4 = require("framer-motion");
|
|
17555
17762
|
|
|
17556
17763
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
17557
|
-
var
|
|
17558
|
-
var
|
|
17764
|
+
var import_react110 = require("react");
|
|
17765
|
+
var import_jsx_runtime159 = require("@emotion/react/jsx-runtime");
|
|
17559
17766
|
function useSuperDrawer() {
|
|
17560
17767
|
const {
|
|
17561
17768
|
drawerContentStack: contentStack,
|
|
@@ -17567,7 +17774,7 @@ function useSuperDrawer() {
|
|
|
17567
17774
|
function canCloseDrawerDetails(i, doChange) {
|
|
17568
17775
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
17569
17776
|
if (!canClose(canCloseDrawerDetail)) {
|
|
17570
|
-
openModal({ content: /* @__PURE__ */ (0,
|
|
17777
|
+
openModal({ content: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
17571
17778
|
return false;
|
|
17572
17779
|
}
|
|
17573
17780
|
}
|
|
@@ -17587,14 +17794,14 @@ function useSuperDrawer() {
|
|
|
17587
17794
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
17588
17795
|
if (!canClose(canCloseDrawer)) {
|
|
17589
17796
|
openModal({
|
|
17590
|
-
content: /* @__PURE__ */ (0,
|
|
17797
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
17591
17798
|
});
|
|
17592
17799
|
return;
|
|
17593
17800
|
}
|
|
17594
17801
|
}
|
|
17595
17802
|
doChange();
|
|
17596
17803
|
}
|
|
17597
|
-
const closeActions = (0,
|
|
17804
|
+
const closeActions = (0, import_react110.useMemo)(
|
|
17598
17805
|
() => {
|
|
17599
17806
|
return {
|
|
17600
17807
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -17629,7 +17836,7 @@ function useSuperDrawer() {
|
|
|
17629
17836
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17630
17837
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
17631
17838
|
);
|
|
17632
|
-
const actions = (0,
|
|
17839
|
+
const actions = (0, import_react110.useMemo)(
|
|
17633
17840
|
() => {
|
|
17634
17841
|
return {
|
|
17635
17842
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -17682,32 +17889,32 @@ function canClose(canCloseCheck) {
|
|
|
17682
17889
|
}
|
|
17683
17890
|
|
|
17684
17891
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
17685
|
-
var
|
|
17892
|
+
var import_jsx_runtime160 = require("@emotion/react/jsx-runtime");
|
|
17686
17893
|
var SuperDrawerContent = ({ children, actions }) => {
|
|
17687
17894
|
const { closeDrawerDetail } = useSuperDrawer();
|
|
17688
17895
|
const { drawerContentStack: contentStack } = useBeamContext();
|
|
17689
17896
|
const { kind } = contentStack.current[contentStack.current.length - 1] ?? {};
|
|
17690
17897
|
const firstContent = contentStack.current[0]?.opts;
|
|
17691
|
-
const { width = 1040 /* Normal */ } = firstContent ?? {};
|
|
17898
|
+
const { width: width2 = 1040 /* Normal */ } = firstContent ?? {};
|
|
17692
17899
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
17693
17900
|
if (kind === "open") {
|
|
17694
|
-
return /* @__PURE__ */ (0,
|
|
17901
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.oa.$, children: children2 }, "content");
|
|
17695
17902
|
} else if (kind === "detail") {
|
|
17696
|
-
return /* @__PURE__ */ (0,
|
|
17903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(
|
|
17697
17904
|
import_framer_motion4.motion.div,
|
|
17698
17905
|
{
|
|
17699
17906
|
css: Css.px3.pt2.pb3.fg1.$,
|
|
17700
17907
|
animate: { overflow: "auto" },
|
|
17701
17908
|
transition: { overflow: { delay: 0.3 } },
|
|
17702
17909
|
children: [
|
|
17703
|
-
/* @__PURE__ */ (0,
|
|
17704
|
-
/* @__PURE__ */ (0,
|
|
17910
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
17911
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
17705
17912
|
import_framer_motion4.motion.div,
|
|
17706
17913
|
{
|
|
17707
|
-
initial: { x:
|
|
17914
|
+
initial: { x: width2, opacity: 0 },
|
|
17708
17915
|
animate: { x: 0, opacity: 1 },
|
|
17709
17916
|
transition: { ease: "linear", duration: 0.3, opacity: { delay: 0.15 } },
|
|
17710
|
-
exit: { x:
|
|
17917
|
+
exit: { x: width2, opacity: 0 },
|
|
17711
17918
|
css: Css.pt2.$,
|
|
17712
17919
|
children: children2
|
|
17713
17920
|
}
|
|
@@ -17717,27 +17924,27 @@ var SuperDrawerContent = ({ children, actions }) => {
|
|
|
17717
17924
|
"content"
|
|
17718
17925
|
);
|
|
17719
17926
|
} else {
|
|
17720
|
-
return /* @__PURE__ */ (0,
|
|
17927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_framer_motion4.motion.div, { css: Css.p3.fg1.$, style: { overflow: "auto" } }, "content");
|
|
17721
17928
|
}
|
|
17722
17929
|
}
|
|
17723
|
-
return /* @__PURE__ */ (0,
|
|
17930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(import_jsx_runtime160.Fragment, { children: [
|
|
17724
17931
|
wrapWithMotionAndMaybeBack(children),
|
|
17725
|
-
actions && /* @__PURE__ */ (0,
|
|
17932
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("footer", { css: Css.bt.bcGray200.p3.df.aic.jcfe.$, children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { css: Css.df.gap1.$, children: actions.map((buttonProps, i) => /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(Button, { ...buttonProps }, i)) }) })
|
|
17726
17933
|
] });
|
|
17727
17934
|
};
|
|
17728
17935
|
|
|
17729
17936
|
// src/components/Tabs.tsx
|
|
17730
17937
|
var import_change_case7 = require("change-case");
|
|
17731
|
-
var
|
|
17732
|
-
var
|
|
17938
|
+
var import_react111 = require("react");
|
|
17939
|
+
var import_react_aria51 = require("react-aria");
|
|
17733
17940
|
var import_react_router2 = require("react-router");
|
|
17734
17941
|
var import_react_router_dom5 = require("react-router-dom");
|
|
17735
|
-
var
|
|
17942
|
+
var import_jsx_runtime161 = require("@emotion/react/jsx-runtime");
|
|
17736
17943
|
function TabsWithContent(props) {
|
|
17737
17944
|
const styles = hideTabs(props) ? {} : Css.pt3.$;
|
|
17738
|
-
return /* @__PURE__ */ (0,
|
|
17739
|
-
/* @__PURE__ */ (0,
|
|
17740
|
-
/* @__PURE__ */ (0,
|
|
17945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(import_jsx_runtime161.Fragment, { children: [
|
|
17946
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(Tabs, { ...props }),
|
|
17947
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(TabContent, { ...props, contentXss: { ...styles, ...props.contentXss } })
|
|
17741
17948
|
] });
|
|
17742
17949
|
}
|
|
17743
17950
|
function TabContent(props) {
|
|
@@ -17752,7 +17959,7 @@ function TabContent(props) {
|
|
|
17752
17959
|
return (
|
|
17753
17960
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
17754
17961
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
17755
|
-
/* @__PURE__ */ (0,
|
|
17962
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(FullBleed, { omitPadding: "paddingLeft" in contentXss || "paddingRight" in contentXss, children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
17756
17963
|
"div",
|
|
17757
17964
|
{
|
|
17758
17965
|
"aria-labelledby": `${uniqueValue}-tab`,
|
|
@@ -17761,7 +17968,7 @@ function TabContent(props) {
|
|
|
17761
17968
|
tabIndex: 0,
|
|
17762
17969
|
...tid.panel,
|
|
17763
17970
|
css: contentXss,
|
|
17764
|
-
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0,
|
|
17971
|
+
children: isRouteTab(selectedTab) ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(import_react_router2.Route, { path: selectedTab.path, render: selectedTab.render }) : selectedTab.render()
|
|
17765
17972
|
}
|
|
17766
17973
|
) })
|
|
17767
17974
|
);
|
|
@@ -17772,11 +17979,11 @@ function Tabs(props) {
|
|
|
17772
17979
|
const selected = isRouteTabs(props) ? uniqueTabValue(
|
|
17773
17980
|
props.tabs.find((t) => !!(0, import_react_router2.matchPath)(location.pathname, { path: t.path, exact: true })) || props.tabs[0]
|
|
17774
17981
|
) : props.selected;
|
|
17775
|
-
const { isFocusVisible, focusProps } = (0,
|
|
17982
|
+
const { isFocusVisible, focusProps } = (0, import_react_aria51.useFocusRing)();
|
|
17776
17983
|
const tid = useTestIds(others, "tabs");
|
|
17777
|
-
const [active, setActive] = (0,
|
|
17778
|
-
const ref = (0,
|
|
17779
|
-
(0,
|
|
17984
|
+
const [active, setActive] = (0, import_react111.useState)(selected);
|
|
17985
|
+
const ref = (0, import_react111.useRef)(null);
|
|
17986
|
+
(0, import_react111.useEffect)(() => setActive(selected), [selected]);
|
|
17780
17987
|
function onKeyUp(e) {
|
|
17781
17988
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
17782
17989
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -17792,10 +17999,10 @@ function Tabs(props) {
|
|
|
17792
17999
|
setActive(selected);
|
|
17793
18000
|
}
|
|
17794
18001
|
}
|
|
17795
|
-
return /* @__PURE__ */ (0,
|
|
17796
|
-
!hideTabs(props) && /* @__PURE__ */ (0,
|
|
18002
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { css: { ...Css.df.aic.oa.wsnw.gap1.$, ...includeBottomBorder ? { ...Css.bb.bcGray200.$ } : {} }, children: [
|
|
18003
|
+
!hideTabs(props) && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { ref, css: Css.dif.gap1.asfe.$, "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
17797
18004
|
const uniqueValue = uniqueTabValue(tab);
|
|
17798
|
-
return /* @__PURE__ */ (0,
|
|
18005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
17799
18006
|
TabImpl,
|
|
17800
18007
|
{
|
|
17801
18008
|
active: active === uniqueValue,
|
|
@@ -17810,15 +18017,15 @@ function Tabs(props) {
|
|
|
17810
18017
|
uniqueValue
|
|
17811
18018
|
);
|
|
17812
18019
|
}) }),
|
|
17813
|
-
right && /* @__PURE__ */ (0,
|
|
18020
|
+
right && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { css: Css.mla.df.aic.gap1.pb1.$, children: right })
|
|
17814
18021
|
] });
|
|
17815
18022
|
}
|
|
17816
18023
|
function TabImpl(props) {
|
|
17817
18024
|
const { tab, onClick, active, onKeyUp, onBlur, focusProps, isFocusVisible = false, ...others } = props;
|
|
17818
18025
|
const { disabled = false, name: label, icon, endAdornment } = tab;
|
|
17819
18026
|
const isDisabled = !!disabled;
|
|
17820
|
-
const { hoverProps, isHovered } = (0,
|
|
17821
|
-
const { baseStyles:
|
|
18027
|
+
const { hoverProps, isHovered } = (0, import_react_aria51.useHover)({ isDisabled });
|
|
18028
|
+
const { baseStyles: baseStyles5, activeStyles: activeStyles4, focusRingStyles: focusRingStyles2, hoverStyles: hoverStyles4, disabledStyles: disabledStyles4, activeHoverStyles } = (0, import_react111.useMemo)(
|
|
17822
18029
|
() => getTabStyles(),
|
|
17823
18030
|
[]
|
|
17824
18031
|
);
|
|
@@ -17832,28 +18039,28 @@ function TabImpl(props) {
|
|
|
17832
18039
|
tabIndex: active ? 0 : -1,
|
|
17833
18040
|
...others,
|
|
17834
18041
|
css: {
|
|
17835
|
-
...
|
|
18042
|
+
...baseStyles5,
|
|
17836
18043
|
...active && activeStyles4,
|
|
17837
|
-
...isDisabled &&
|
|
18044
|
+
...isDisabled && disabledStyles4,
|
|
17838
18045
|
...isHovered && hoverStyles4,
|
|
17839
18046
|
...isHovered && active && activeHoverStyles,
|
|
17840
18047
|
...isFocusVisible && active && focusRingStyles2
|
|
17841
18048
|
}
|
|
17842
18049
|
};
|
|
17843
|
-
const interactiveProps = (0,
|
|
18050
|
+
const interactiveProps = (0, import_react_aria51.mergeProps)(focusProps, hoverProps, {
|
|
17844
18051
|
onKeyUp,
|
|
17845
18052
|
onBlur,
|
|
17846
18053
|
...isRouteTab(tab) ? {} : { onClick: () => onClick(tab.value) }
|
|
17847
18054
|
});
|
|
17848
|
-
const tabLabel = /* @__PURE__ */ (0,
|
|
18055
|
+
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(import_jsx_runtime161.Fragment, { children: [
|
|
17849
18056
|
label,
|
|
17850
|
-
(icon || endAdornment) && /* @__PURE__ */ (0,
|
|
18057
|
+
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { css: Css.ml1.$, children: icon ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(Icon, { icon }) : endAdornment })
|
|
17851
18058
|
] });
|
|
17852
18059
|
return isDisabled ? maybeTooltip({
|
|
17853
18060
|
title: resolveTooltip(disabled),
|
|
17854
18061
|
placement: "top",
|
|
17855
|
-
children: /* @__PURE__ */ (0,
|
|
17856
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */ (0,
|
|
18062
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { ...tabProps, children: tabLabel })
|
|
18063
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(import_react_router_dom5.Link, { ...{ ...tabProps, ...interactiveProps }, className: "navLink", to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("button", { ...{ ...tabProps, ...interactiveProps }, children: tabLabel });
|
|
17857
18064
|
}
|
|
17858
18065
|
function getTabStyles() {
|
|
17859
18066
|
const borderBottomWidthPx = 4;
|
|
@@ -17889,60 +18096,19 @@ function hideTabs(props) {
|
|
|
17889
18096
|
return props.alwaysShowAllTabs ? false : props.tabs.filter((t) => !t.disabled).length === 1;
|
|
17890
18097
|
}
|
|
17891
18098
|
|
|
17892
|
-
// src/components/Tag.tsx
|
|
17893
|
-
var import_utils121 = require("@react-aria/utils");
|
|
17894
|
-
var import_react110 = require("react");
|
|
17895
|
-
var import_jsx_runtime159 = require("@emotion/react/jsx-runtime");
|
|
17896
|
-
function Tag(props) {
|
|
17897
|
-
const { text, type, xss, preventTooltip = false, ...otherProps } = props;
|
|
17898
|
-
const typeStyles2 = getStyles(type);
|
|
17899
|
-
const tid = useTestIds(otherProps);
|
|
17900
|
-
const [showTooltip, setShowTooltip] = (0, import_react110.useState)(false);
|
|
17901
|
-
const ref = (0, import_react110.useRef)(null);
|
|
17902
|
-
(0, import_utils121.useResizeObserver)({
|
|
17903
|
-
ref,
|
|
17904
|
-
onResize: () => {
|
|
17905
|
-
if (ref.current) {
|
|
17906
|
-
setShowTooltip(ref.current.offsetHeight < ref.current.scrollHeight);
|
|
17907
|
-
}
|
|
17908
|
-
}
|
|
17909
|
-
});
|
|
17910
|
-
return maybeTooltip({
|
|
17911
|
-
title: !preventTooltip && showTooltip ? text : void 0,
|
|
17912
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("span", { ...tid, css: { ...Css.dif.tinySb.ttu.aic.gapPx(4).pxPx(6).pyPx(2).gray900.br4.$, ...typeStyles2, ...xss }, children: [
|
|
17913
|
-
otherProps.icon && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)("span", { css: Css.fs0.$, children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(Icon, { icon: otherProps.icon, inc: 1.5 }) }),
|
|
17914
|
-
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)("span", { ref, css: Css.lineClamp1.wbba.$, children: text })
|
|
17915
|
-
] })
|
|
17916
|
-
});
|
|
17917
|
-
}
|
|
17918
|
-
function getStyles(type) {
|
|
17919
|
-
switch (type) {
|
|
17920
|
-
case "info":
|
|
17921
|
-
return Css.bgBlue100.$;
|
|
17922
|
-
case "caution":
|
|
17923
|
-
return Css.bgYellow200.$;
|
|
17924
|
-
case "warning":
|
|
17925
|
-
return Css.bgRed200.$;
|
|
17926
|
-
case "success":
|
|
17927
|
-
return Css.bgGreen200.$;
|
|
17928
|
-
default:
|
|
17929
|
-
return Css.bgGray200.$;
|
|
17930
|
-
}
|
|
17931
|
-
}
|
|
17932
|
-
|
|
17933
18099
|
// src/components/Toast/Toast.tsx
|
|
17934
|
-
var
|
|
18100
|
+
var import_jsx_runtime162 = require("@emotion/react/jsx-runtime");
|
|
17935
18101
|
function Toast() {
|
|
17936
18102
|
const { setNotice, notice } = useToastContext();
|
|
17937
18103
|
const tid = useTestIds({}, "toast");
|
|
17938
|
-
return /* @__PURE__ */ (0,
|
|
18104
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_jsx_runtime162.Fragment, { children: notice && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(Banner, { ...notice, ...tid, onClose: () => setNotice(void 0) }) });
|
|
17939
18105
|
}
|
|
17940
18106
|
|
|
17941
18107
|
// src/components/Toast/useToast.tsx
|
|
17942
|
-
var
|
|
18108
|
+
var import_react112 = require("react");
|
|
17943
18109
|
function useToast() {
|
|
17944
18110
|
const { setNotice, clear } = useToastContext();
|
|
17945
|
-
const showToast = (0,
|
|
18111
|
+
const showToast = (0, import_react112.useCallback)((props) => setNotice(props), [setNotice]);
|
|
17946
18112
|
return { showToast, clear };
|
|
17947
18113
|
}
|
|
17948
18114
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -17987,6 +18153,7 @@ function useToast() {
|
|
|
17987
18153
|
ButtonGroup,
|
|
17988
18154
|
ButtonMenu,
|
|
17989
18155
|
ButtonModal,
|
|
18156
|
+
Card,
|
|
17990
18157
|
Checkbox,
|
|
17991
18158
|
CheckboxGroup,
|
|
17992
18159
|
Chip,
|
|
@@ -18015,6 +18182,7 @@ function useToast() {
|
|
|
18015
18182
|
FormHeading,
|
|
18016
18183
|
FormLines,
|
|
18017
18184
|
FormPageLayout,
|
|
18185
|
+
FormRow,
|
|
18018
18186
|
FullBleed,
|
|
18019
18187
|
GridTable,
|
|
18020
18188
|
HB_QUIPS_FLAVOR,
|
|
@@ -18148,6 +18316,7 @@ function useToast() {
|
|
|
18148
18316
|
isPersistentItem,
|
|
18149
18317
|
isPersistentKey,
|
|
18150
18318
|
isValidDate,
|
|
18319
|
+
listFieldPrefix,
|
|
18151
18320
|
loadArrayOrUndefined,
|
|
18152
18321
|
matchesFilter,
|
|
18153
18322
|
maybeApplyFunction,
|