@hortiview/shared-components 0.0.11176 → 0.0.11587
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/README.md +58 -8
- package/dist/BigLoadingSpinner-iegTbDcD.js +16 -0
- package/dist/GenericCard-6J558OgP.js +350 -0
- package/dist/ListAreaService-DOwtdRa4.js +109 -0
- package/dist/_MapCache-B75yWNNd.js +376 -0
- package/dist/_baseIsEqual-D0Dsajdb.js +317 -0
- package/dist/_getTag-BCf9b56Z.js +81 -0
- package/dist/animationframe-EMBh6XeO.js +54 -0
- package/dist/assets/HashTabView.css +1 -1
- package/dist/assets/Select.css +1 -0
- package/dist/component-DsB0poTj.js +571 -0
- package/dist/component-neHBNHRu.js +114 -0
- package/dist/components/AlertBanner/AlertBanner.d.ts +0 -1
- package/dist/components/AlertBanner/AlertBanner.js +15 -15
- package/dist/components/AlertBanner/AlertBanner.test.js +11 -9
- package/dist/components/BaseView/BaseView.d.ts +1 -1
- package/dist/components/BaseView/BaseView.js +27 -28
- package/dist/components/BaseView/BaseView.test.js +25 -25
- package/dist/components/BasicHeading/BasicHeading.d.ts +1 -0
- package/dist/components/BasicHeading/BasicHeading.js +17 -17
- package/dist/components/BasicHeading/BasicHeading.test.js +10 -10
- package/dist/components/BlockView/BlockView.d.ts +1 -0
- package/dist/components/BlockView/BlockView.js +24 -25
- package/dist/components/BlockView/BlockView.test.js +2 -2
- package/dist/components/ChipCard/ChipCard.js +1765 -15
- package/dist/components/ChipCard/ChipCard.test.js +2 -2
- package/dist/components/ContextMenu/ContextMenu.d.ts +3 -2
- package/dist/components/ContextMenu/ContextMenu.js +28 -28
- package/dist/components/ContextMenu/ContextMenu.test.js +2 -2
- package/dist/components/DeleteModal/DeleteModal.d.ts +0 -1
- package/dist/components/DeleteModal/DeleteModal.js +53 -51
- package/dist/components/DeleteModal/DeleteModal.test.js +2 -2
- package/dist/components/Disclaimer/Disclaimer.js +12 -11
- package/dist/components/Disclaimer/Disclaimer.test.js +2 -2
- package/dist/components/EmptyView/EmptyView.d.ts +1 -0
- package/dist/components/EmptyView/EmptyView.js +258 -19
- package/dist/components/EmptyView/EmptyView.test.js +2 -2
- package/dist/components/Filter/Filter.d.ts +1 -0
- package/dist/components/Filter/Filter.js +81 -77
- package/dist/components/Filter/Filter.test.js +2 -2
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.d.ts +1 -0
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.js +13 -11
- package/dist/components/FormComponents/FormCheckBox/FormCheckBox.test.js +2 -2
- package/dist/components/FormComponents/FormDatePicker/FormDatePicker.d.ts +3 -2
- package/dist/components/FormComponents/FormDatePicker/FormDatePicker.js +5975 -6389
- package/dist/components/FormComponents/FormDatePicker/FormDatePicker.test.js +2 -2
- package/dist/components/FormComponents/FormNumber/CustomTextField.d.ts +2 -1
- package/dist/components/FormComponents/FormNumber/CustomTextField.js +13 -14
- package/dist/components/FormComponents/FormNumber/FormNumber.d.ts +2 -1
- package/dist/components/FormComponents/FormNumber/FormNumber.js +2 -2
- package/dist/components/FormComponents/FormNumber/FormNumber.test.js +4 -4
- package/dist/components/FormComponents/FormRadio/FormRadio.d.ts +1 -0
- package/dist/components/FormComponents/FormRadio/FormRadio.js +4 -4
- package/dist/components/FormComponents/FormRadio/FormRadio.test.js +2 -2
- package/dist/components/FormComponents/FormSelect/FormSelect.d.ts +4 -7
- package/dist/components/FormComponents/FormSelect/FormSelect.js +100 -110
- package/dist/components/FormComponents/FormSelect/FormSelect.test.js +3 -3
- package/dist/components/FormComponents/FormSelect/SelectTooltipText.d.ts +1 -0
- package/dist/components/FormComponents/FormSelect/SelectTooltipText.js +6 -5
- package/dist/components/FormComponents/FormSlider/FormSlider.d.ts +1 -0
- package/dist/components/FormComponents/FormSlider/FormSlider.js +1155 -27
- package/dist/components/FormComponents/FormSlider/FormSlider.test.js +2 -2
- package/dist/components/FormComponents/FormText/FormText.d.ts +2 -1
- package/dist/components/FormComponents/FormText/FormText.js +28 -28
- package/dist/components/FormComponents/FormText/FormText.test.js +13 -13
- package/dist/components/FormComponents/FormToggle/FormToggle.d.ts +2 -1
- package/dist/components/FormComponents/FormToggle/FormToggle.js +17 -15
- package/dist/components/FormComponents/FormToggle/FormToggle.test.js +2 -2
- package/dist/components/FormattedNumberDisplay/FormattedNumberDisplay.d.ts +2 -1
- package/dist/components/FormattedNumberDisplay/FormattedNumberDisplay.js +1 -1
- package/dist/components/GenericTable/GenericTable.d.ts +1 -0
- package/dist/components/GenericTable/GenericTable.js +10487 -76
- package/dist/components/GenericTable/GenericTable.test.js +2 -2
- package/dist/components/GenericTable/GenericTableService.d.ts +1 -0
- package/dist/components/GenericTable/GenericTableService.js +41 -41
- package/dist/components/GenericTable/Mobile/GenericCard.d.ts +1 -1
- package/dist/components/GenericTable/Mobile/GenericCard.js +4 -3
- package/dist/components/GenericTable/Mobile/GenericCard.test.js +3 -3
- package/dist/components/GenericTable/Mobile/GenericCardList.d.ts +1 -1
- package/dist/components/GenericTable/Mobile/GenericCardList.js +10 -8
- package/dist/components/GenericTable/Mobile/GenericCardList.test.js +2 -2
- package/dist/components/HashTabView/HashTabView.d.ts +6 -1
- package/dist/components/HashTabView/HashTabView.js +1805 -72
- package/dist/components/HashTabView/HashTabView.test.js +2 -2
- package/dist/components/HeaderFilter/HeaderFilter.d.ts +3 -2
- package/dist/components/HeaderFilter/HeaderFilter.js +14 -14
- package/dist/components/HeaderFilter/HeaderFilter.test.js +2 -2
- package/dist/components/HealthCheckFailed/HealthCheckFailed.js +19 -17
- package/dist/components/HealthCheckFailed/HealthCheckFailed.test.js +2 -2
- package/dist/components/Iconify/Iconify.d.ts +2 -3
- package/dist/components/Iconify/Iconify.js +44 -45
- package/dist/components/Iconify/Iconify.test.js +2 -2
- package/dist/components/InfoGroup/InfoGroup.d.ts +4 -3
- package/dist/components/InfoGroup/InfoGroup.js +30 -29
- package/dist/components/InfoGroup/InfoGroup.test.js +2 -2
- package/dist/components/ListArea/ListArea.d.ts +1 -1
- package/dist/components/ListArea/ListArea.js +29 -27
- package/dist/components/ListArea/ListArea.test.js +5 -5
- package/dist/components/ListArea/ListAreaService.d.ts +9 -8
- package/dist/components/ListArea/ListAreaService.js +7 -5
- package/dist/components/LoadingSpinner/Big/BigLoadingSpinner.js +2 -2
- package/dist/components/LoadingSpinner/Big/BigLoadingSpinner.test.js +3 -3
- package/dist/components/LoadingSpinner/Default/LoadingSpinner.js +506 -38
- package/dist/components/LoadingSpinner/Default/LoadingSpinner.test.js +2 -2
- package/dist/components/Modal/Modal.d.ts +2 -1
- package/dist/components/Modal/Modal.js +926 -10
- package/dist/components/ModulePadding/ModulePadding.d.ts +7 -0
- package/dist/components/ModulePadding/ModulePadding.js +28 -0
- package/dist/components/ModulePadding/ModulePadding.test.d.ts +1 -0
- package/dist/components/ModulePadding/ModulePadding.test.js +22 -0
- package/dist/components/OverflowTooltip/OverflowTooltip.d.ts +0 -1
- package/dist/components/OverflowTooltip/OverflowTooltip.js +13 -14
- package/dist/components/OverflowTooltip/OverflowTooltip.test.js +4 -4
- package/dist/components/Scrollbar/Scrollbar.js +5 -6
- package/dist/components/Scrollbar/scrollbar.test.js +2 -2
- package/dist/components/SearchBar/SearchBar.js +11 -11
- package/dist/components/SearchBar/SearchBar.test.js +2 -2
- package/dist/components/Select/Select.d.ts +14 -0
- package/dist/components/Select/Select.js +34 -0
- package/dist/components/Select/Select.test.d.ts +1 -0
- package/dist/components/Select/Select.test.js +28 -0
- package/dist/components/VerticalDivider/VerticalDivider.js +4 -5
- package/dist/components/VerticalDivider/VerticalDivider.test.js +2 -2
- package/dist/floating-ui.dom-CeD8zknG.js +978 -0
- package/dist/get-7ACccM2X.js +114 -0
- package/dist/{get-BiqanC9_.js → get-DFv1gXfq.js} +1 -1
- package/dist/hooks/useBreakpoints.test.js +2 -2
- package/dist/hooks/useHelperText.d.ts +1 -0
- package/dist/hooks/useHelperText.js +1 -1
- package/dist/identity-DLWZln-X.js +1763 -0
- package/dist/{index-DzM8o582.js → index-CrcXCSzI.js} +1940 -1796
- package/dist/index.es-0lQcz8m1.js +444 -0
- package/dist/index.es-25EARqhH.js +2027 -0
- package/dist/index.es-3043KTnb.js +1066 -0
- package/dist/index.es-41ztjcFT.js +724 -0
- package/dist/index.es-6TJ1S8Jr.js +954 -0
- package/dist/index.es-8GOVkuo-.js +374 -0
- package/dist/index.es-B-_jXDuz.js +216 -0
- package/dist/index.es-BWgXLqXn.js +102 -0
- package/dist/index.es-BtjV0oNv.js +360 -0
- package/dist/index.es-BvrQnJ3j.js +509 -0
- package/dist/index.es-CF_xy2ns.js +674 -0
- package/dist/index.es-CL_Heu1n.js +54 -0
- package/dist/index.es-CiqbARoC.js +306 -0
- package/dist/index.es-D-CKRzIB.js +63 -0
- package/dist/index.es-D6N-XWHe.js +56 -0
- package/dist/index.es-DKDgy7Kt.js +45 -0
- package/dist/index.es-DntoATwO.js +159 -0
- package/dist/index.es-UHKFl8Da.js +7075 -0
- package/dist/index.es-d5xhUpJZ.js +3242 -0
- package/dist/index.es-da0cf7oE.js +569 -0
- package/dist/index.es-h2lMdt7G.js +107 -0
- package/dist/index.es-zr101OF5.js +4853 -0
- package/dist/{isArray-2zMxXFEr.js → isArray-DN9s620O.js} +3 -3
- package/dist/{isArray-C_5XvIlE.js → isArray-Dub1wGJM.js} +1 -1
- package/dist/isEmpty-B4GG2s-V.js +31 -0
- package/dist/isPlainObject-C273y67K.js +40 -0
- package/dist/isString-BW9UHONv.js +21 -0
- package/dist/keyboard-Bpt0aBqQ.js +107 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.js +58 -54
- package/dist/orderBy-Bd48bw88.js +316 -0
- package/dist/{react-number-format.es-BD3_OvMU.js → react-number-format.es-BK1EpVXq.js} +151 -151
- package/dist/react-tooltip.min-DSY6KDqS.js +431 -0
- package/dist/{react.esm-FR1-H8iU.js → react.esm-DNwojocF.js} +5289 -4990
- package/dist/services/BlockService.d.ts +1 -0
- package/dist/services/NumberService.d.ts +1 -0
- package/dist/services/UtilService.d.ts +1 -0
- package/dist/services/UtilService.js +2 -2
- package/dist/services/services.test.js +1 -1
- package/dist/toString-CrgB_7Pe.js +54 -0
- package/dist/tslib.es6-BDCynO9F.js +162 -0
- package/dist/types/GenericTable.d.ts +2 -2
- package/dist/types/HashTab.d.ts +0 -1
- package/dist/types/ListElement.d.ts +0 -1
- package/dist/types/internal/ReactRouterTypes.d.ts +0 -1
- package/dist/uniqueId-NU3-C36A.js +18 -0
- package/dist/util-DA21pZXj.js +78 -0
- package/dist/{vi.CjhMlMwf-DWv7vrn7.js → vi.CjhMlMwf-BCJNwXvu.js} +1 -1
- package/package.json +15 -15
- package/dist/BigLoadingSpinner-C3wTbTD0.js +0 -17
- package/dist/GenericCard-B8x1DMa8.js +0 -81
- package/dist/ListAreaService-CRX4eEUJ.js +0 -108
- package/dist/_Map-Dtlps7IZ.js +0 -113
- package/dist/_overArg-_0pUmCsX.js +0 -14
- package/dist/get-P-5PYZOE.js +0 -426
- package/dist/isEmpty-BimaZd5G.js +0 -225
- package/dist/isString-BOHPtrlm.js +0 -44
- package/dist/orderBy-BVQIswlJ.js +0 -765
- package/dist/react-tooltip.min-c2wVkjF2.js +0 -1354
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ This is a shared component library. It should used in the HortiView platform and
|
|
|
13
13
|
This library is based in Bayers element component library. To use it properly you need to install this package first.
|
|
14
14
|
To get access to this restricted package please contact your Bayer contact person.
|
|
15
15
|
|
|
16
|
-
After you gain access use `yarn add @element/react-components @element/themes` or `npm i @element/react-components @element/themes` to add the package to your solution.
|
|
16
|
+
After you gain access use `yarn add @element-public/react-components @element-public/themes` or `npm i @element-public/react-components @element-public/themes` to add the package to your solution.
|
|
17
17
|
|
|
18
18
|
## Remarks
|
|
19
19
|
|
|
@@ -33,11 +33,11 @@ Additionally the library provides form components using [react-hook-form](https:
|
|
|
33
33
|
1. [Disclaimer](#disclaimer)
|
|
34
34
|
1. [EmptyView](#emptyview)
|
|
35
35
|
1. [Filter](#filter)
|
|
36
|
-
1. [FormattedNumberDisplay]
|
|
36
|
+
1. [FormattedNumberDisplay](#formattednumberdisplay)
|
|
37
37
|
1. [FormComponents](#formcomponents)
|
|
38
38
|
1. [FormCheckBox](#formcheckbox)
|
|
39
39
|
1. [FormDatePicker](#formdatepicker)
|
|
40
|
-
1. [FormNumber]
|
|
40
|
+
1. [FormNumber](#formnumber)
|
|
41
41
|
1. [FormRadio](#formradio)
|
|
42
42
|
1. [FormSelect](#formselect)
|
|
43
43
|
1. [FormSlider](#formslider)
|
|
@@ -51,9 +51,11 @@ Additionally the library provides form components using [react-hook-form](https:
|
|
|
51
51
|
1. [ListArea](#listarea)
|
|
52
52
|
1. [LoadingSpinner](#loadingspinner)
|
|
53
53
|
1. [Modal](#modal)
|
|
54
|
+
1. [ModulePadding](#modulepadding)
|
|
54
55
|
1. [OverflowTooltip](#overflowtooltip)
|
|
55
56
|
1. [ScrollBar](#scrollbar)
|
|
56
57
|
1. [SearchBar](#searchbar)
|
|
58
|
+
1. [Select](#select)
|
|
57
59
|
1. [VerticalDivider](#verticaldivider)
|
|
58
60
|
|
|
59
61
|
## Available Utility Functions:
|
|
@@ -311,7 +313,7 @@ const TypoDisplay3 = (props: { children: React.ReactNode }) => {
|
|
|
311
313
|
return <TypoDisplay level={3}>{props.children}</TypoDisplay>;
|
|
312
314
|
};
|
|
313
315
|
|
|
314
|
-
<FormattedNumberDisplay typographyComponent={TypoDisplay3} languageCode=
|
|
316
|
+
<FormattedNumberDisplay typographyComponent={TypoDisplay3} languageCode='en-MX' value={12345.67} />;
|
|
315
317
|
```
|
|
316
318
|
|
|
317
319
|
### FormComponents
|
|
@@ -439,7 +441,9 @@ const { handleSubmit } = formMethods;
|
|
|
439
441
|
|
|
440
442
|
#### FormSelect
|
|
441
443
|
|
|
442
|
-
Provides a select form component
|
|
444
|
+
Provides a select form component.
|
|
445
|
+
|
|
446
|
+
> **Warning**: Don't set `menuPosition` when `hoisted` is true.
|
|
443
447
|
|
|
444
448
|
```jsx
|
|
445
449
|
import { FormSelect } from '@hortiview/shared-components';
|
|
@@ -843,7 +847,7 @@ return <>
|
|
|
843
847
|
|
|
844
848
|
### Modal
|
|
845
849
|
|
|
846
|
-
Provides the normal
|
|
850
|
+
Provides the normal Element modal with one additional change. If you are on fullscreen modal size the max-height and max-width is set to 100svh/svw (Smallest ViewPort height/width).
|
|
847
851
|
This will set the modal size on an area between the mobile controls.
|
|
848
852
|
|
|
849
853
|
```jsx
|
|
@@ -854,13 +858,29 @@ import { Modal } from '@hortiview/shared-components';
|
|
|
854
858
|
</Modal>;
|
|
855
859
|
```
|
|
856
860
|
|
|
861
|
+
### ModulePadding
|
|
862
|
+
|
|
863
|
+
Provides a responsive padding component for modules according to the HV platform UI guidelines, based on the Bayer Element padding component.
|
|
864
|
+
|
|
865
|
+
Currently, the padding is set to 8px on mobile/tablet and 16px on desktop.
|
|
866
|
+
|
|
867
|
+
> **Strong recommendation**: If your module does not require any fullscreen features, we highly encourage you to add the `ModulePadding` around your module content to ensure a consistent user experience within the rest of the platform.
|
|
868
|
+
|
|
869
|
+
```jsx
|
|
870
|
+
import { ModulePadding } from '@hortiview/shared-components';
|
|
871
|
+
|
|
872
|
+
<ModulePadding>
|
|
873
|
+
<div>Content</div>
|
|
874
|
+
</ModulePadding>;
|
|
875
|
+
```
|
|
876
|
+
|
|
857
877
|
### OverflowTooltip
|
|
858
878
|
|
|
859
879
|
Provides a tooltip and overflow behavior of a given text value.
|
|
860
880
|
|
|
861
881
|
```jsx
|
|
862
882
|
import { OverflowTooltip } from '@hortiview/shared-components';
|
|
863
|
-
import { TypoBody } from '@element/react-components';
|
|
883
|
+
import { TypoBody } from '@element-public/react-components';
|
|
864
884
|
|
|
865
885
|
const longText =
|
|
866
886
|
'This is a very long text that needs to be truncated and shown with a tooltip when it overflows.';
|
|
@@ -904,6 +924,34 @@ const [searchValue, setSearchValue] = useState('');
|
|
|
904
924
|
/>;
|
|
905
925
|
```
|
|
906
926
|
|
|
927
|
+
### Select
|
|
928
|
+
|
|
929
|
+
Provides the normal Element select with some additional presets and props:
|
|
930
|
+
|
|
931
|
+
- `menuMaxHeight` has a default value of `15rem` (can be overwritten)
|
|
932
|
+
- custom styles are applied that improve the `hoisted` select menu behavior and avoid two scrolling bars on multi select menus
|
|
933
|
+
- custom portal styles can be passed via the `portalClassName` prop - only works when `portalContainer` is not set
|
|
934
|
+
|
|
935
|
+
> **Warning**: Don't set `menuPosition` when `hoisted` is true.
|
|
936
|
+
|
|
937
|
+
```jsx
|
|
938
|
+
import { Select } from '@hortiview/shared-components';
|
|
939
|
+
...
|
|
940
|
+
|
|
941
|
+
<Select
|
|
942
|
+
label='Contact during review'
|
|
943
|
+
options={contacts}
|
|
944
|
+
hoisted
|
|
945
|
+
textKey='text'
|
|
946
|
+
valueKey='id'
|
|
947
|
+
onChange={handleContactSelect}
|
|
948
|
+
value={contact}
|
|
949
|
+
helperText='required'
|
|
950
|
+
variant='outlined'
|
|
951
|
+
portalClassName={styles.portal}
|
|
952
|
+
/>;
|
|
953
|
+
```
|
|
954
|
+
|
|
907
955
|
### VerticalDivider
|
|
908
956
|
|
|
909
957
|
Provides a simple vertical divider.
|
|
@@ -975,5 +1023,7 @@ Note: Should only be used for displaying numbers, not for calculations or values
|
|
|
975
1023
|
```typescript
|
|
976
1024
|
const userLocale = 'es-MX';
|
|
977
1025
|
|
|
978
|
-
const overlineTitle = `${getNumberAsLocaleString(userLocale, totalArea, 5)} ${t(
|
|
1026
|
+
const overlineTitle = `${getNumberAsLocaleString(userLocale, totalArea, 5)} ${t(
|
|
1027
|
+
'squaremeter-unit'
|
|
1028
|
+
)}`;
|
|
979
1029
|
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as i, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { b as r } from "./index.es-CF_xy2ns.js";
|
|
3
|
+
import { Iconify as d } from "./components/Iconify/Iconify.js";
|
|
4
|
+
import './assets/BigLoadingSpinner.css';const e = "_loadingBigOverlay_7dxo1_1", s = "_bigLoadSpinnerCard_7dxo1_12", g = "_bigLoadSpinnerCardText_7dxo1_27", t = "_logo_7dxo1_33", o = {
|
|
5
|
+
loadingBigOverlay: e,
|
|
6
|
+
bigLoadSpinnerCard: s,
|
|
7
|
+
bigLoadSpinnerCardText: g,
|
|
8
|
+
logo: t
|
|
9
|
+
}, l = ({ text: a }) => /* @__PURE__ */ n("div", { className: o.bigLoadSpinnerCard, role: "progressbar", "data-testid": "loading-spinner", children: [
|
|
10
|
+
/* @__PURE__ */ i(d, { icon: "hortiview", className: o.logo, "data-testid": "logo-icon" }),
|
|
11
|
+
/* @__PURE__ */ i(r, { tag: "p", bold: !0, level: 1, className: o.bigLoadSpinnerCardText, children: a })
|
|
12
|
+
] }), b = (a) => /* @__PURE__ */ i("div", { className: o.loadingBigOverlay, children: /* @__PURE__ */ i(l, { ...a }) });
|
|
13
|
+
export {
|
|
14
|
+
b as B,
|
|
15
|
+
o as s
|
|
16
|
+
};
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { jsx as n, jsxs as C, Fragment as B } from "react/jsx-runtime";
|
|
2
|
+
import { C as W, a as z, b as D, c as E, d as M } from "./index.es-6TJ1S8Jr.js";
|
|
3
|
+
import { c as x, _ as P, P as e } from "./identity-DLWZln-X.js";
|
|
4
|
+
import b, { forwardRef as $, useMemo as f, useRef as j, useImperativeHandle as q, createContext as F, useContext as I } from "react";
|
|
5
|
+
import { d as U } from "./index.es-da0cf7oE.js";
|
|
6
|
+
import { d as O } from "./index.es-CF_xy2ns.js";
|
|
7
|
+
import { OverflowTooltip as k } from "./components/OverflowTooltip/OverflowTooltip.js";
|
|
8
|
+
import './assets/GenericCard.css';const R = /* @__PURE__ */ F({}), V = {
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated _Use `variant`='airy' instead._
|
|
11
|
+
*
|
|
12
|
+
* Applies extra padding to each column.
|
|
13
|
+
*
|
|
14
|
+
* Defaults to **undefined**.
|
|
15
|
+
*/
|
|
16
|
+
airy: U(e.bool, "Grid", 'Use `variant`="airy" instead.'),
|
|
17
|
+
/**
|
|
18
|
+
* Accepts GridCol or GridRow.
|
|
19
|
+
*
|
|
20
|
+
* Defaults to **null**.
|
|
21
|
+
*/
|
|
22
|
+
children: e.node.isRequired,
|
|
23
|
+
/**
|
|
24
|
+
* The css class name to be passed through to the component markup.
|
|
25
|
+
*
|
|
26
|
+
* Defaults to **undefined**.
|
|
27
|
+
*/
|
|
28
|
+
className: e.string,
|
|
29
|
+
/**
|
|
30
|
+
* Sets the column gap for the grid.
|
|
31
|
+
*
|
|
32
|
+
* Defaults to **'16px'**.
|
|
33
|
+
*/
|
|
34
|
+
columnGap: e.oneOfType([e.string, e.number]),
|
|
35
|
+
/**
|
|
36
|
+
* Applies 100% height to the grid and direct children rows. Useful when creating a page layout. Be aware all direct children rows will have a 100% height.
|
|
37
|
+
*
|
|
38
|
+
* Defaults to **null**.
|
|
39
|
+
*/
|
|
40
|
+
fullHeight: e.bool,
|
|
41
|
+
/**
|
|
42
|
+
* Applies 100% width to the grid and direct children rows. Useful to maintain full width in a flex container.
|
|
43
|
+
*
|
|
44
|
+
* Defaults to **null**.
|
|
45
|
+
*/
|
|
46
|
+
fullWidth: e.bool,
|
|
47
|
+
/**
|
|
48
|
+
* Alignment of entire grid: left and right.
|
|
49
|
+
*
|
|
50
|
+
* Defaults to **'center'**.
|
|
51
|
+
*/
|
|
52
|
+
gridAlign: e.oneOf(["center", "left", "right"]),
|
|
53
|
+
/**
|
|
54
|
+
* Sets the row gap for the grid.
|
|
55
|
+
*
|
|
56
|
+
* Defaults to **'16px'**.
|
|
57
|
+
*/
|
|
58
|
+
rowGap: e.oneOfType([e.string, e.number]),
|
|
59
|
+
/**
|
|
60
|
+
* Styles for the grid.
|
|
61
|
+
*
|
|
62
|
+
* Defaults to **undefined**.
|
|
63
|
+
*/
|
|
64
|
+
style: e.object,
|
|
65
|
+
/**
|
|
66
|
+
* If true the grid will have a max width according to your theme's breakpoints.
|
|
67
|
+
*
|
|
68
|
+
* Defaults to **false**.
|
|
69
|
+
*/
|
|
70
|
+
useMaxWidth: e.bool,
|
|
71
|
+
/**
|
|
72
|
+
* Select `airy` or `standard` padding.
|
|
73
|
+
*
|
|
74
|
+
* Defaults to **'standard'**.
|
|
75
|
+
*/
|
|
76
|
+
variant: e.oneOf(["standard", "airy", "none"])
|
|
77
|
+
}, J = {
|
|
78
|
+
airy: void 0,
|
|
79
|
+
children: null,
|
|
80
|
+
className: void 0,
|
|
81
|
+
columnGap: "16px",
|
|
82
|
+
fullHeight: null,
|
|
83
|
+
fullWidth: null,
|
|
84
|
+
gridAlign: "center",
|
|
85
|
+
rowGap: "16px",
|
|
86
|
+
style: void 0,
|
|
87
|
+
useMaxWidth: !1,
|
|
88
|
+
variant: "standard"
|
|
89
|
+
}, K = {
|
|
90
|
+
/**
|
|
91
|
+
* Alignment of cell within the row: top, middle, bottom. If omitted the col will stretch to the height of the row.
|
|
92
|
+
*
|
|
93
|
+
* Defaults to **undefined**.
|
|
94
|
+
*/
|
|
95
|
+
align: e.oneOf(["", "top", "middle", "bottom"]),
|
|
96
|
+
/**
|
|
97
|
+
* Content to be rendered inside the GridCol. Accepts any valid markup.
|
|
98
|
+
*
|
|
99
|
+
* Defaults to **null**.
|
|
100
|
+
*/
|
|
101
|
+
children: e.node,
|
|
102
|
+
/**
|
|
103
|
+
* The css class name to be passed through to the component markup.
|
|
104
|
+
*
|
|
105
|
+
* Defaults to **undefined**.
|
|
106
|
+
*/
|
|
107
|
+
className: e.string,
|
|
108
|
+
/**
|
|
109
|
+
* Specifies the number of columns the cell spans.
|
|
110
|
+
*
|
|
111
|
+
* Defaults to **null**.
|
|
112
|
+
*/
|
|
113
|
+
desktopCol: e.number,
|
|
114
|
+
/**
|
|
115
|
+
* Specifies a grid item's start position within the grid column by contributing a line, a span, or nothing (automatic) to its grid placement. Set to any valid `grid-column-start`.
|
|
116
|
+
*
|
|
117
|
+
* Defaults to **null**.
|
|
118
|
+
*/
|
|
119
|
+
gridColStart: e.oneOfType([e.string, e.number]),
|
|
120
|
+
/**
|
|
121
|
+
* Horizontal alignment of the cell contents of cell content: top, middle, bottom.
|
|
122
|
+
*
|
|
123
|
+
* Defaults to **'left'**.
|
|
124
|
+
*/
|
|
125
|
+
horizontalAlign: e.oneOf(["left", "center", "right"]),
|
|
126
|
+
/**
|
|
127
|
+
* Specifies the order of the cell.
|
|
128
|
+
*
|
|
129
|
+
* Defaults to **null**.
|
|
130
|
+
*/
|
|
131
|
+
order: e.number,
|
|
132
|
+
/**
|
|
133
|
+
* Specifies the number of columns the cell spans on a phone.
|
|
134
|
+
*
|
|
135
|
+
* Defaults to **null**.
|
|
136
|
+
*/
|
|
137
|
+
phoneCol: e.number,
|
|
138
|
+
/**
|
|
139
|
+
* Specifies the number of columns the cell spans on a tablet.
|
|
140
|
+
*
|
|
141
|
+
* Defaults to **null**.
|
|
142
|
+
*/
|
|
143
|
+
tabletCol: e.number,
|
|
144
|
+
/**
|
|
145
|
+
* Vertical alignment of cell content: top, middle, bottom.
|
|
146
|
+
*
|
|
147
|
+
* Defaults to **'top'**.
|
|
148
|
+
*/
|
|
149
|
+
verticalAlign: e.oneOf(["top", "middle", "bottom"])
|
|
150
|
+
}, L = {
|
|
151
|
+
align: void 0,
|
|
152
|
+
children: null,
|
|
153
|
+
className: void 0,
|
|
154
|
+
desktopCol: null,
|
|
155
|
+
gridColStart: null,
|
|
156
|
+
horizontalAlign: "left",
|
|
157
|
+
order: null,
|
|
158
|
+
phoneCol: null,
|
|
159
|
+
tabletCol: null,
|
|
160
|
+
verticalAlign: "top"
|
|
161
|
+
}, Q = {
|
|
162
|
+
/**
|
|
163
|
+
* Content to be rendered inside the GridRow. Accepts any valid markup.
|
|
164
|
+
*
|
|
165
|
+
* Defaults to **null**.
|
|
166
|
+
*/
|
|
167
|
+
children: e.node.isRequired,
|
|
168
|
+
/**
|
|
169
|
+
* The css class name to be passed through to the component markup.
|
|
170
|
+
*
|
|
171
|
+
* Defaults to **undefined**.
|
|
172
|
+
*/
|
|
173
|
+
className: e.string
|
|
174
|
+
}, X = {
|
|
175
|
+
children: null,
|
|
176
|
+
className: void 0
|
|
177
|
+
}, T = /* @__PURE__ */ $((l, t) => {
|
|
178
|
+
const {
|
|
179
|
+
airy: a,
|
|
180
|
+
children: o,
|
|
181
|
+
className: d,
|
|
182
|
+
columnGap: i,
|
|
183
|
+
fullHeight: r,
|
|
184
|
+
fullWidth: s,
|
|
185
|
+
gridAlign: u,
|
|
186
|
+
rowGap: m,
|
|
187
|
+
style: c,
|
|
188
|
+
useMaxWidth: g,
|
|
189
|
+
variant: y,
|
|
190
|
+
...w
|
|
191
|
+
} = l, h = a ? "airy" : y, G = f(() => ({
|
|
192
|
+
fullHeight: r,
|
|
193
|
+
rowGap: m,
|
|
194
|
+
columnGap: i
|
|
195
|
+
}), [i, r, m]), A = j();
|
|
196
|
+
q(t, () => A.current, []);
|
|
197
|
+
const S = f(() => x("lmnt", "mdc-layout-grid", "lmnt-layout-grid", `mdc-layout-grid mdc-layout-grid--align-${u}`, (h === "airy" || a) && "mdc-grid-cell-wrapper-airy-tablet mdc-grid-cell-wrapper-airy-desktop", y === "none" && "mdc-grid-cell-wrapper-none-tablet mdc-grid-cell-wrapper-none-desktop mdc-grid-cell-wrapper-none-phone ", s && "lmnt-layout-grid--full-width", r && "lmnt-layout-grid--full-height", g && "lmnt-layout-grid--with-max-width", d), [a, d, h, r, s, u, g, y]);
|
|
198
|
+
return /* @__PURE__ */ b.createElement(R.Provider, {
|
|
199
|
+
value: G
|
|
200
|
+
}, /* @__PURE__ */ b.createElement("div", P({
|
|
201
|
+
ref: A,
|
|
202
|
+
className: S
|
|
203
|
+
}, w), o));
|
|
204
|
+
});
|
|
205
|
+
T.displayName = "Grid";
|
|
206
|
+
T.propTypes = V;
|
|
207
|
+
T.defaultProps = J;
|
|
208
|
+
const _ = /* @__PURE__ */ $((l, t) => {
|
|
209
|
+
const {
|
|
210
|
+
align: a,
|
|
211
|
+
children: o,
|
|
212
|
+
className: d,
|
|
213
|
+
columns: i,
|
|
214
|
+
desktopCol: r,
|
|
215
|
+
gridColStart: s,
|
|
216
|
+
horizontalAlign: u,
|
|
217
|
+
order: m,
|
|
218
|
+
phoneCol: c,
|
|
219
|
+
style: g,
|
|
220
|
+
tabletCol: y,
|
|
221
|
+
verticalAlign: w,
|
|
222
|
+
...h
|
|
223
|
+
} = l, G = f(() => ({
|
|
224
|
+
...g,
|
|
225
|
+
gridColumnStart: s
|
|
226
|
+
}), [s, g]);
|
|
227
|
+
return /* @__PURE__ */ b.createElement("div", P({
|
|
228
|
+
ref: t,
|
|
229
|
+
style: G,
|
|
230
|
+
className: x("lmnt", `lmnt-layout-grid__cell--vertical-align-${w}`, `lmnt-layout-grid__cell--horizontal-align-${u}`, "mdc-layout-grid__cell", !i && !c && !y && !r && ["mdc-layout-grid__cell"], m && `mdc-layout-grid__cell--order-${m}`, a && `mdc-layout-grid__cell--align-${a}`, i && [`mdc-layout-grid__cell--span-${i}`], c && [`mdc-layout-grid__cell--span-${c}-phone`], y && [`mdc-layout-grid__cell--span-${y}-tablet`], r && [`mdc-layout-grid__cell--span-${r}-desktop`], "lmnt-layout-grid__cell", d)
|
|
231
|
+
}, h), o);
|
|
232
|
+
});
|
|
233
|
+
_.displayName = "GridCol";
|
|
234
|
+
_.propTypes = K;
|
|
235
|
+
_.defaultProps = L;
|
|
236
|
+
const v = /* @__PURE__ */ $((l, t) => {
|
|
237
|
+
const {
|
|
238
|
+
children: a,
|
|
239
|
+
className: o,
|
|
240
|
+
style: d,
|
|
241
|
+
...i
|
|
242
|
+
} = l, {
|
|
243
|
+
fullHeight: r,
|
|
244
|
+
rowGap: s,
|
|
245
|
+
columnGap: u
|
|
246
|
+
} = I(R), m = f(() => {
|
|
247
|
+
let c = {
|
|
248
|
+
rowGap: s,
|
|
249
|
+
columnGap: u
|
|
250
|
+
};
|
|
251
|
+
return r && (c = {
|
|
252
|
+
...c,
|
|
253
|
+
height: "100%"
|
|
254
|
+
}), {
|
|
255
|
+
...d,
|
|
256
|
+
...c
|
|
257
|
+
};
|
|
258
|
+
}, [d, r, s, u]);
|
|
259
|
+
return /* @__PURE__ */ b.createElement("div", P({
|
|
260
|
+
ref: t,
|
|
261
|
+
className: x("lmnt", "mdc-layout-grid__inner", "lmnt-layout-grid__inner", o),
|
|
262
|
+
style: m
|
|
263
|
+
}, i), a);
|
|
264
|
+
});
|
|
265
|
+
v.displayName = "GridRow";
|
|
266
|
+
v.propTypes = Q;
|
|
267
|
+
v.defaultProps = X;
|
|
268
|
+
const Y = "_cardTitle_ny9m0_1", Z = "_cardBody_ny9m0_5", ee = "_cardContent_ny9m0_10", te = "_row_ny9m0_14", re = "_font_ny9m0_18", le = "_fontHeader_ny9m0_23", ae = "_title_ny9m0_27", ne = "_emptyContainer_ny9m0_33", oe = "_empty_ny9m0_33", p = {
|
|
269
|
+
cardTitle: Y,
|
|
270
|
+
cardBody: Z,
|
|
271
|
+
cardContent: ee,
|
|
272
|
+
row: te,
|
|
273
|
+
font: re,
|
|
274
|
+
fontHeader: le,
|
|
275
|
+
title: ae,
|
|
276
|
+
emptyContainer: ne,
|
|
277
|
+
empty: oe
|
|
278
|
+
}, H = {
|
|
279
|
+
desktopCol: 6,
|
|
280
|
+
phoneCol: 2,
|
|
281
|
+
tabletCol: 4,
|
|
282
|
+
verticalAlign: "bottom"
|
|
283
|
+
}, ge = ({ item: l, columns: t, hiddenColumns: a }) => {
|
|
284
|
+
const o = t.find((r) => r.asCardTitle), d = t.find((r) => r.asCardSubtitle), i = f(
|
|
285
|
+
() => t.filter(
|
|
286
|
+
(r) => !r.asCardTitle && !r.asCardSubtitle && r.id !== "actions"
|
|
287
|
+
),
|
|
288
|
+
[t]
|
|
289
|
+
);
|
|
290
|
+
return /* @__PURE__ */ n(
|
|
291
|
+
W,
|
|
292
|
+
{
|
|
293
|
+
variant: "raised",
|
|
294
|
+
"data-testid": `card${o ? "-" + l[o.accessor] : ""}`,
|
|
295
|
+
children: /* @__PURE__ */ C(z, { className: p.cardContent, "data-testid": "card-content", children: [
|
|
296
|
+
/* @__PURE__ */ n(ie, { item: l, titleColumn: o, subTitleColumn: d }),
|
|
297
|
+
/* @__PURE__ */ n(D, { className: p.cardBody, "data-testid": "card-body", children: /* @__PURE__ */ n(T, { fullHeight: !0, fullWidth: !0, variant: "none", children: i.map((r) => a?.includes(r.id) ? null : /* @__PURE__ */ C(v, { className: p.row, "data-testid": "row", children: [
|
|
298
|
+
/* @__PURE__ */ n(_, { horizontalAlign: "right", ...H, children: /* @__PURE__ */ C(
|
|
299
|
+
O,
|
|
300
|
+
{
|
|
301
|
+
level: 2,
|
|
302
|
+
themeColor: "text-secondary-on-background",
|
|
303
|
+
className: `${p.font} ${p.fontHeader}`,
|
|
304
|
+
tag: "div",
|
|
305
|
+
children: [
|
|
306
|
+
r.header,
|
|
307
|
+
":"
|
|
308
|
+
]
|
|
309
|
+
}
|
|
310
|
+
) }),
|
|
311
|
+
/* @__PURE__ */ n(_, { horizontalAlign: "left", ...H, children: /* @__PURE__ */ n(N, { column: r, item: l }) })
|
|
312
|
+
] }, r.id)) }) })
|
|
313
|
+
] })
|
|
314
|
+
}
|
|
315
|
+
);
|
|
316
|
+
}, ie = ({ item: l, titleColumn: t, subTitleColumn: a }) => {
|
|
317
|
+
const o = l.actions;
|
|
318
|
+
return !t && !a && !o ? null : /* @__PURE__ */ C(B, { children: [
|
|
319
|
+
/* @__PURE__ */ n(
|
|
320
|
+
E,
|
|
321
|
+
{
|
|
322
|
+
"data-testid": "card-title",
|
|
323
|
+
className: p.cardTitle,
|
|
324
|
+
primaryText: t !== void 0 && /* @__PURE__ */ n(N, { column: t, item: l, isTitle: !0 }),
|
|
325
|
+
secondaryText: a !== void 0 && /* @__PURE__ */ n(N, { column: a, item: l, isTitle: !0 }),
|
|
326
|
+
trailingBlock: o,
|
|
327
|
+
trailingBlockType: "title-actions"
|
|
328
|
+
}
|
|
329
|
+
),
|
|
330
|
+
/* @__PURE__ */ n(M, {})
|
|
331
|
+
] });
|
|
332
|
+
}, N = ({ item: l, column: t, isTitle: a = !1 }) => t.cellTemplate ? t.cellTemplate({ row: { original: l } }) : a ? /* @__PURE__ */ n(
|
|
333
|
+
k,
|
|
334
|
+
{
|
|
335
|
+
id: `tip_${t.id}_${l[t.accessor]}`,
|
|
336
|
+
text: l[t.accessor],
|
|
337
|
+
children: /* @__PURE__ */ n("span", { className: p.title, children: l[t.accessor] })
|
|
338
|
+
}
|
|
339
|
+
) : /* @__PURE__ */ n(
|
|
340
|
+
k,
|
|
341
|
+
{
|
|
342
|
+
id: `tip_${t.id}_${l[t.accessor]}`,
|
|
343
|
+
text: l[t.accessor],
|
|
344
|
+
children: /* @__PURE__ */ n(O, { level: 2, themeColor: "text-primary-on-background", className: p.font, children: l[t.accessor] })
|
|
345
|
+
}
|
|
346
|
+
);
|
|
347
|
+
export {
|
|
348
|
+
ge as G,
|
|
349
|
+
p as s
|
|
350
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { jsx as r, jsxs as z } from "react/jsx-runtime";
|
|
2
|
+
import { G as b } from "./index.es-DntoATwO.js";
|
|
3
|
+
import { I as B } from "./index.es-3043KTnb.js";
|
|
4
|
+
import { c as C, d as N, b as O } from "./index.es-CF_xy2ns.js";
|
|
5
|
+
import { Iconify as $ } from "./components/Iconify/Iconify.js";
|
|
6
|
+
import { AvailableCustomIcons as k } from "./enums/AvailableCustomIcons.js";
|
|
7
|
+
import './assets/ListAreaService.css';const E = "_fullWidth_zewqs_1", j = "_mainElevation_zewqs_5", G = "_searchbar_zewqs_11", W = "_roundedBottom_zewqs_19", L = "_primaryText_zewqs_24", S = "_list_zewqs_28", A = "_listItem_zewqs_56", P = "_iconColor_zewqs_76", D = "_overlineTitle_zewqs_80", F = "_noOverlineTitle_zewqs_85", H = "_truncate_zewqs_89", J = "_truncateOverlineText_zewqs_100", n = {
|
|
8
|
+
fullWidth: E,
|
|
9
|
+
mainElevation: j,
|
|
10
|
+
searchbar: G,
|
|
11
|
+
roundedBottom: W,
|
|
12
|
+
primaryText: L,
|
|
13
|
+
list: S,
|
|
14
|
+
listItem: A,
|
|
15
|
+
iconColor: P,
|
|
16
|
+
overlineTitle: D,
|
|
17
|
+
noOverlineTitle: F,
|
|
18
|
+
truncate: H,
|
|
19
|
+
truncateOverlineText: J
|
|
20
|
+
}, Z = (t, s, a, l) => {
|
|
21
|
+
const i = t.reduce((o, c) => {
|
|
22
|
+
const { groupName: e, ...m } = c;
|
|
23
|
+
return !e || typeof e != "string" || (o[e] || (o[e] = {
|
|
24
|
+
groupName: /* @__PURE__ */ r(C, { children: e }),
|
|
25
|
+
id: e,
|
|
26
|
+
items: []
|
|
27
|
+
}), o[e].items = [
|
|
28
|
+
...o[e].items,
|
|
29
|
+
y(m, s, a, l)
|
|
30
|
+
]), o;
|
|
31
|
+
}, {});
|
|
32
|
+
return Object.values(i);
|
|
33
|
+
}, ee = (t, s, a, l) => t.map((i) => y(i, s, a, l)), y = (t, s, a, l) => {
|
|
34
|
+
const {
|
|
35
|
+
id: i,
|
|
36
|
+
title: o,
|
|
37
|
+
subTitle: c,
|
|
38
|
+
route: e,
|
|
39
|
+
value: m,
|
|
40
|
+
noNavigation: v,
|
|
41
|
+
disabled: d,
|
|
42
|
+
icon: g,
|
|
43
|
+
iconType: p,
|
|
44
|
+
trailingIcon: f,
|
|
45
|
+
trailingIconType: h,
|
|
46
|
+
actionButton: I,
|
|
47
|
+
onClick: w,
|
|
48
|
+
customTitle: T,
|
|
49
|
+
listItemClassName: x,
|
|
50
|
+
overlineTitle: _
|
|
51
|
+
} = t, u = s === e;
|
|
52
|
+
return {
|
|
53
|
+
id: i,
|
|
54
|
+
key: i,
|
|
55
|
+
select: u,
|
|
56
|
+
primaryText: i,
|
|
57
|
+
secondaryText: /* @__PURE__ */ z(b, { direction: "vertical", gap: "none", children: [
|
|
58
|
+
T ?? /* @__PURE__ */ r(
|
|
59
|
+
N,
|
|
60
|
+
{
|
|
61
|
+
"data-testid": "title",
|
|
62
|
+
level: 1,
|
|
63
|
+
themeColor: u ? "primary" : void 0,
|
|
64
|
+
className: `${n.truncate} lmnt-theme-on-surface-active`,
|
|
65
|
+
children: o
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
c && !T ? /* @__PURE__ */ r(
|
|
69
|
+
O,
|
|
70
|
+
{
|
|
71
|
+
"data-testid": "subtitle",
|
|
72
|
+
level: 2,
|
|
73
|
+
themeColor: u ? "primary" : void 0,
|
|
74
|
+
className: `${n.truncate} lmnt-theme-on-surface-inactive`,
|
|
75
|
+
children: c
|
|
76
|
+
}
|
|
77
|
+
) : void 0
|
|
78
|
+
] }),
|
|
79
|
+
overlineText: _ ? /* @__PURE__ */ r(
|
|
80
|
+
"span",
|
|
81
|
+
{
|
|
82
|
+
"data-testid": "overline-title",
|
|
83
|
+
className: `${n.truncate} ${n.truncateOverlineText}`,
|
|
84
|
+
children: _
|
|
85
|
+
}
|
|
86
|
+
) : void 0,
|
|
87
|
+
trailingBlock: I ?? f ?? /* @__PURE__ */ r(B, { icon: "arrow_right", className: n.iconColor }),
|
|
88
|
+
leadingBlock: K(g),
|
|
89
|
+
value: m,
|
|
90
|
+
componentProps: {
|
|
91
|
+
id: i,
|
|
92
|
+
"data-testid": `${o}-list-item`,
|
|
93
|
+
key: i,
|
|
94
|
+
leadingBlockType: p ?? "icon",
|
|
95
|
+
trailingBlockType: h ?? "icon",
|
|
96
|
+
className: `${p === "avatar" ? "" : n.listItem} ${a} ${x ?? ""} ${_ ? n.overlineTitle : n.noOverlineTitle}`,
|
|
97
|
+
onClick: (M, q) => w?.(q),
|
|
98
|
+
tag: d || v ? void 0 : l ?? "a",
|
|
99
|
+
to: d || v ? void 0 : e,
|
|
100
|
+
disabled: d
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}, K = (t) => typeof t == "string" && t in k ? /* @__PURE__ */ r($, { icon: t }) : t;
|
|
104
|
+
export {
|
|
105
|
+
ee as a,
|
|
106
|
+
Z as g,
|
|
107
|
+
y as m,
|
|
108
|
+
n as s
|
|
109
|
+
};
|