@elliemae/ds-mini-toolbar 3.5.0-rc.0 → 3.5.0-rc.11
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/cjs/Components/MiniToolbar.js +30 -22
- package/dist/cjs/Components/MiniToolbar.js.map +1 -1
- package/dist/cjs/Components/ToolbarShortcut.js +28 -13
- package/dist/cjs/Components/ToolbarShortcut.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/Button.js +6 -3
- package/dist/cjs/Components/outOfTheBox/Button.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/ComboBox.js +6 -3
- package/dist/cjs/Components/outOfTheBox/ComboBox.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/IconItem.js +7 -4
- package/dist/cjs/Components/outOfTheBox/IconItem.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/SearchBox.js +8 -5
- package/dist/cjs/Components/outOfTheBox/SearchBox.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/Separator.js +6 -3
- package/dist/cjs/Components/outOfTheBox/Separator.js.map +1 -1
- package/dist/cjs/Components/outOfTheBox/index.js +4 -1
- package/dist/cjs/Components/outOfTheBox/index.js.map +1 -1
- package/dist/cjs/hooks/useGenerateItems.js +83 -74
- package/dist/cjs/hooks/useGenerateItems.js.map +2 -2
- package/dist/cjs/index.d.js +4 -1
- package/dist/cjs/index.d.js.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/propTypes.js +28 -9
- package/dist/cjs/propTypes.js.map +1 -1
- package/dist/cjs/styles.js +4 -1
- package/dist/cjs/styles.js.map +1 -1
- package/dist/esm/Components/MiniToolbar.js +26 -21
- package/dist/esm/Components/MiniToolbar.js.map +1 -1
- package/dist/esm/Components/ToolbarShortcut.js +24 -12
- package/dist/esm/Components/ToolbarShortcut.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/Button.js +2 -2
- package/dist/esm/Components/outOfTheBox/Button.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/ComboBox.js +2 -2
- package/dist/esm/Components/outOfTheBox/ComboBox.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/IconItem.js +3 -3
- package/dist/esm/Components/outOfTheBox/IconItem.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/SearchBox.js +4 -4
- package/dist/esm/Components/outOfTheBox/SearchBox.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/Separator.js +2 -2
- package/dist/esm/Components/outOfTheBox/Separator.js.map +1 -1
- package/dist/esm/Components/outOfTheBox/index.js.map +1 -1
- package/dist/esm/hooks/useGenerateItems.js +79 -73
- package/dist/esm/hooks/useGenerateItems.js.map +2 -2
- package/dist/esm/index.d.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/propTypes.js +24 -8
- package/dist/esm/propTypes.js.map +1 -1
- package/dist/esm/styles.js.map +1 -1
- package/package.json +7 -7
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hooks/useGenerateItems.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport { uid } from 'uid';\nimport { Search } from '@elliemae/ds-icons';\nimport {\n ICON_ITEM,\n SEPARATOR,\n BUTTON,\n SEARCH_BOX,\n COMBO_BOX,\n MiniToolbarButton,\n MiniToolbarSeparator,\n MiniToolbarSearchBox,\n MiniToolbarIcon,\n MiniToolbarComboBox,\n} from '../Components/outOfTheBox';\nimport { ToolbarShortcut } from '../Components/ToolbarShortcut';\nimport { MiniToolbarSearchButton } from '../Components/outOfTheBox/SearchBox';\nimport { GeneratedDropdownItemT, MiniToolbarItemT } from '../index.d';\n\nconst useGenerateItems = (items: MiniToolbarItemT[]): [React.ReactElement[], GeneratedDropdownItemT[]] => {\n const instanceUID = useMemo(() => uid(6), []);\n\n const shortcutItems = useMemo(\n () =>\n items\n .filter((item) => item.hasShortcut || item.component === SEARCH_BOX || item.contextualRegion)\n .map((item, index) => {\n const { component, shortcutComponent, shortcutProps, sharedProps, contextualRegion, contextualRegionProps } =\n item;\n\n let Component;\n let ContextualRegion;\n\n if (component === SEPARATOR) return <MiniToolbarSeparator />;\n if (component === BUTTON) Component = MiniToolbarButton;\n else if (component === ICON_ITEM) Component = MiniToolbarIcon;\n else if (component === COMBO_BOX) Component = MiniToolbarComboBox;\n else if (component === SEARCH_BOX) {\n if (item.hasShortcut) {\n Component = MiniToolbarSearchButton;\n }\n ContextualRegion = MiniToolbarSearchBox;\n }\n if (!ContextualRegion) {\n ContextualRegion = contextualRegion;\n }\n if (!Component) {\n Component = shortcutComponent;\n }\n\n return (\n <ToolbarShortcut\n key={`${instanceUID}-shortcut-${index}`}\n Component={Component}\n shortcutProps={shortcutProps}\n sharedProps={sharedProps}\n ContextualRegion={ContextualRegion}\n contextualRegionProps={contextualRegionProps}\n />\n );\n }),\n [instanceUID, items],\n );\n\n const dropdownMenuItems = useMemo(\n () =>\n items.map((item, index) => {\n const { component, sharedProps, dropdownComponentProps } = item;\n const dropdownItem: GeneratedDropdownItemT = {};\n\n const { Icon, color, label, onClick } = {\n ...sharedProps,\n ...dropdownComponentProps,\n };\n\n if (component === SEPARATOR) dropdownItem.type = 'separator';\n else {\n dropdownItem.id = `${instanceUID}-dropdown-${index}`;\n dropdownItem.onClick = () => onClick(item);\n dropdownItem.label = label;\n dropdownItem.onKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n onClick(item);\n }\n };\n }\n\n if (component === ICON_ITEM) {\n dropdownItem.leftAddon = <Icon color={color} />;\n } else if (component === SEARCH_BOX) {\n dropdownItem.leftAddon = <Search color={color} />;\n } else if (component === COMBO_BOX) {\n dropdownItem.type = 'subMenu';\n dropdownItem.label = label;\n dropdownItem.subItems = sharedProps.options.map((option, index) => {\n option.id = `${instanceUID}-option-${index}`;\n option.onClick = () => dropdownComponentProps.onSelectMenuItem(option);\n option.onKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n dropdownComponentProps.onSelectMenuItem(option);\n }\n };\n return option;\n });\n }\n\n return dropdownItem;\n }),\n [instanceUID, items],\n );\n\n return [shortcutItems, dropdownMenuItems];\n};\n\nexport { useGenerateItems };\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,SAAgB,eAAe;AAC/B,SAAS,WAAW;AACpB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,uBAAuB;AAChC,SAAS,+BAA+B;AAGxC,MAAM,mBAAmB,CAAC,UAAgF;AACxG,QAAM,cAAc,QAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAE5C,QAAM,gBAAgB;AAAA,IACpB,MACE,MACG,OAAO,CAAC,SAAS,KAAK,eAAe,KAAK,cAAc,cAAc,KAAK,gBAAgB,EAC3F,IAAI,CAAC,MAAM,UAAU;AACpB,YAAM,EAAE,WAAW,mBAAmB,eAAe,aAAa,kBAAkB,sBAAsB,IACxG;AAEF,UAAI;AACJ,UAAI;AAEJ,UAAI,cAAc;AAAW,eAAO,oBAAC,wBAAqB;AAC1D,UAAI,cAAc;AAAQ,oBAAY;AAAA,eAC7B,cAAc;AAAW,oBAAY;AAAA,eACrC,cAAc;AAAW,oBAAY;AAAA,eACrC,cAAc,YAAY;AACjC,YAAI,KAAK,aAAa;AACpB,sBAAY;AAAA,QACd;AACA,2BAAmB;AAAA,MACrB;AACA,UAAI,CAAC,kBAAkB;AACrB,2BAAmB;AAAA,MACrB;AACA,UAAI,CAAC,WAAW;AACd,oBAAY;AAAA,MACd;AAEA,aACE,oBAAC;AAAA,QAEC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,SALK,GAAG,wBAAwB,OAMlC;AAAA,IAEJ,CAAC;AAAA,IACL,CAAC,aAAa,KAAK;AAAA,EACrB;AAEA,QAAM,oBAAoB;AAAA,IACxB,MACE,MAAM,IAAI,CAAC,MAAM,UAAU;AACzB,YAAM,EAAE,WAAW,aAAa,uBAAuB,IAAI;AAC3D,YAAM,eAAuC,CAAC;AAE9C,YAAM,EAAE,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,QACtC,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAEA,UAAI,cAAc;AAAW,qBAAa,OAAO;AAAA,WAC5C;AACH,qBAAa,KAAK,GAAG,wBAAwB;AAC7C,qBAAa,UAAU,MAAM,QAAQ,IAAI;AACzC,qBAAa,QAAQ;AACrB,qBAAa,YAAY,CAAC,MAA2B;AACnD,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,oBAAQ,IAAI;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAEA,UAAI,cAAc,WAAW;AAC3B,qBAAa,YAAY,oBAAC;AAAA,UAAK;AAAA,SAAc;AAAA,MAC/C,WAAW,cAAc,YAAY;AACnC,qBAAa,YAAY,oBAAC;AAAA,UAAO;AAAA,SAAc;AAAA,MACjD,WAAW,cAAc,WAAW;AAClC,qBAAa,OAAO;AACpB,qBAAa,QAAQ;AACrB,qBAAa,WAAW,YAAY,QAAQ,IAAI,CAAC,QAAQA,WAAU;AACjE,iBAAO,KAAK,GAAG,sBAAsBA;AACrC,iBAAO,UAAU,MAAM,uBAAuB,iBAAiB,MAAM;AACrE,iBAAO,YAAY,CAAC,MAA2B;AAC7C,gBAAI,EAAE,QAAQ,OAAO,EAAE,QAAQ,SAAS;AACtC,qCAAuB,iBAAiB,MAAM;AAAA,YAChD;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,IACH,CAAC,aAAa,KAAK;AAAA,EACrB;AAEA,SAAO,CAAC,eAAe,iBAAiB;AAC1C;",
|
|
6
|
+
"names": ["index"]
|
|
7
7
|
}
|
package/dist/esm/index.d.js.map
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { MiniToolbar, MiniToolbarWithSchema } from './Components/MiniToolbar';\nexport { ToolbarItemWithSchema } from './propTypes';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,aAAa,6BAA6B;AACnD,SAAS,6BAA6B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/propTypes.js
CHANGED
|
@@ -12,15 +12,29 @@ const toolbarItemProps = {
|
|
|
12
12
|
outOfTheBoxType,
|
|
13
13
|
PropTypes.element
|
|
14
14
|
]).description("Main component").isRequired,
|
|
15
|
-
hasShortcut: PropTypes.bool.description(
|
|
16
|
-
|
|
15
|
+
hasShortcut: PropTypes.bool.description(
|
|
16
|
+
"Whether to include the component as a shortcut in the toolbar or not"
|
|
17
|
+
).defaultValue(false),
|
|
18
|
+
shortcutComponent: PropTypes.element.description(
|
|
19
|
+
"Component to render as a shortcut in the toolbar"
|
|
20
|
+
),
|
|
17
21
|
shortcutProps: PropTypes.object.description("Shortcut component props"),
|
|
18
|
-
dropdownComponentProps: PropTypes.object.description(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
dropdownComponentProps: PropTypes.object.description(
|
|
23
|
+
"Dropdown component props"
|
|
24
|
+
),
|
|
25
|
+
sharedProps: PropTypes.object.description(
|
|
26
|
+
"Props shared by shortcut component and dropdown component"
|
|
27
|
+
),
|
|
28
|
+
contextualRegion: PropTypes.element.description(
|
|
29
|
+
"Component that can be rendered as an adjacent region to the shortcut component"
|
|
30
|
+
),
|
|
31
|
+
contextualRegionProps: PropTypes.object.description(
|
|
32
|
+
"Contextual region component props"
|
|
33
|
+
)
|
|
22
34
|
};
|
|
23
|
-
const itemPropTypes = PropTypes.shape(toolbarItemProps).description(
|
|
35
|
+
const itemPropTypes = PropTypes.shape(toolbarItemProps).description(
|
|
36
|
+
"Items props"
|
|
37
|
+
);
|
|
24
38
|
const overflowButtonPropTypes = {
|
|
25
39
|
ariaLabel: PropTypes.string,
|
|
26
40
|
buttonType: PropTypes.oneOf(["secondary", "text"]),
|
|
@@ -28,7 +42,9 @@ const overflowButtonPropTypes = {
|
|
|
28
42
|
};
|
|
29
43
|
const miniToolbarProps = {
|
|
30
44
|
items: PropTypes.arrayOf(itemPropTypes).description("Array of items").isRequired,
|
|
31
|
-
overflowButtonProps: PropTypes.shape(overflowButtonPropTypes).description(
|
|
45
|
+
overflowButtonProps: PropTypes.shape(overflowButtonPropTypes).description(
|
|
46
|
+
"Overflow button props"
|
|
47
|
+
)
|
|
32
48
|
};
|
|
33
49
|
const ToolbarItem = () => null;
|
|
34
50
|
ToolbarItem.displayName = "ToolbarItem";
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/propTypes.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes, describe } from '@elliemae/ds-utilities';\n\nconst outOfTheBoxType = PropTypes.oneOf([\n 'ds-button',\n 'ds-icon-item',\n 'ds-separator',\n 'ds-search-box',\n 'ds-combo-box',\n]).description('out-of-the-box toolbar components');\n\nconst toolbarItemProps = {\n component: PropTypes.oneOfType([\n outOfTheBoxType,\n PropTypes.element,\n ]).description('Main component').isRequired,\n hasShortcut: PropTypes.bool\n .description(\n 'Whether to include the component as a shortcut in the toolbar or not',\n )\n .defaultValue(false),\n shortcutComponent: PropTypes.element.description(\n 'Component to render as a shortcut in the toolbar',\n ),\n shortcutProps: PropTypes.object.description('Shortcut component props'),\n dropdownComponentProps: PropTypes.object.description(\n 'Dropdown component props',\n ),\n sharedProps: PropTypes.object.description(\n 'Props shared by shortcut component and dropdown component',\n ),\n contextualRegion: PropTypes.element.description(\n 'Component that can be rendered as an adjacent region to the shortcut component',\n ),\n contextualRegionProps: PropTypes.object.description(\n 'Contextual region component props',\n ),\n};\n\nconst itemPropTypes = PropTypes.shape(toolbarItemProps).description(\n 'Items props',\n);\n\nconst overflowButtonPropTypes = {\n ariaLabel: PropTypes.string,\n buttonType: PropTypes.oneOf(['secondary', 'text']),\n style: PropTypes.object,\n};\n\nconst miniToolbarProps = {\n items: PropTypes.arrayOf(itemPropTypes).description('Array of items')\n .isRequired,\n overflowButtonProps: PropTypes.shape(overflowButtonPropTypes).description(\n 'Overflow button props',\n ),\n};\n\nconst ToolbarItem = () => null;\nToolbarItem.displayName = 'ToolbarItem';\nconst ToolbarItemWithSchema = describe(ToolbarItem);\nToolbarItemWithSchema.propTypes = toolbarItemProps;\nexport { ToolbarItemWithSchema, miniToolbarProps };\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,gBAAgB;AAEpC,MAAM,kBAAkB,UAAU,MAAM;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,EAAE,YAAY,mCAAmC;AAElD,MAAM,mBAAmB;AAAA,EACvB,WAAW,UAAU,UAAU;AAAA,IAC7B;AAAA,IACA,UAAU;AAAA,EACZ,CAAC,EAAE,YAAY,gBAAgB,EAAE;AAAA,EACjC,aAAa,UAAU,KACpB;AAAA,IACC;AAAA,EACF,EACC,aAAa,KAAK;AAAA,EACrB,mBAAmB,UAAU,QAAQ;AAAA,IACnC;AAAA,EACF;AAAA,EACA,eAAe,UAAU,OAAO,YAAY,0BAA0B;AAAA,EACtE,wBAAwB,UAAU,OAAO;AAAA,IACvC;AAAA,EACF;AAAA,EACA,aAAa,UAAU,OAAO;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,kBAAkB,UAAU,QAAQ;AAAA,IAClC;AAAA,EACF;AAAA,EACA,uBAAuB,UAAU,OAAO;AAAA,IACtC;AAAA,EACF;AACF;AAEA,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,EAAE;AAAA,EACtD;AACF;AAEA,MAAM,0BAA0B;AAAA,EAC9B,WAAW,UAAU;AAAA,EACrB,YAAY,UAAU,MAAM,CAAC,aAAa,MAAM,CAAC;AAAA,EACjD,OAAO,UAAU;AACnB;AAEA,MAAM,mBAAmB;AAAA,EACvB,OAAO,UAAU,QAAQ,aAAa,EAAE,YAAY,gBAAgB,EACjE;AAAA,EACH,qBAAqB,UAAU,MAAM,uBAAuB,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;AAEA,MAAM,cAAc,MAAM;AAC1B,YAAY,cAAc;AAC1B,MAAM,wBAAwB,SAAS,WAAW;AAClD,sBAAsB,YAAY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/styles.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/styles.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { DSButton } from '@elliemae/ds-button';\n\nconst Container = styled.ul`\n display: flex;\n align-items: center;\n justify-content: center;\n width: fit-content;\n padding: 0 6px;\n`;\n\nconst Separator = styled.span`\n height: 24px;\n width: 1px;\n margin: 6px;\n border-left: 1px solid #bbb;\n`;\n\nconst Item = styled.li`\n display: flex;\n margin: 6px;\n cursor: pointer;\n`;\n\nconst StyledButton = styled(DSButton)`\n &:not(:focus) {\n border-color: transparent;\n }\n`;\n\nexport { Container, Separator, Item, StyledButton };\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOzB,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAMpB,MAAM,eAAe,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-mini-toolbar",
|
|
3
|
-
"version": "3.5.0-rc.
|
|
3
|
+
"version": "3.5.0-rc.11",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - MiniToolbar",
|
|
6
6
|
"files": [
|
|
@@ -75,12 +75,12 @@
|
|
|
75
75
|
"indent": 4
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@elliemae/ds-button": "3.5.0-rc.
|
|
79
|
-
"@elliemae/ds-dropdownmenu": "3.5.0-rc.
|
|
80
|
-
"@elliemae/ds-form": "3.5.0-rc.
|
|
81
|
-
"@elliemae/ds-icons": "3.5.0-rc.
|
|
82
|
-
"@elliemae/ds-system": "3.5.0-rc.
|
|
83
|
-
"@elliemae/ds-utilities": "3.5.0-rc.
|
|
78
|
+
"@elliemae/ds-button": "3.5.0-rc.11",
|
|
79
|
+
"@elliemae/ds-dropdownmenu": "3.5.0-rc.11",
|
|
80
|
+
"@elliemae/ds-form": "3.5.0-rc.11",
|
|
81
|
+
"@elliemae/ds-icons": "3.5.0-rc.11",
|
|
82
|
+
"@elliemae/ds-system": "3.5.0-rc.11",
|
|
83
|
+
"@elliemae/ds-utilities": "3.5.0-rc.11",
|
|
84
84
|
"uid": "~2.0.0"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|