@fluentui/react-utilities 0.0.0-nightlyd514b3e0ee20220121.1 → 0.0.0-nightlyd80c90385320220216.1
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/CHANGELOG.json +69 -6
- package/CHANGELOG.md +23 -6
- package/dist/react-utilities.d.ts +193 -96
- package/lib/compose/getSlots.d.ts +7 -7
- package/lib/compose/getSlots.js +1 -2
- package/lib/compose/getSlots.js.map +1 -1
- package/lib/compose/index.d.ts +0 -1
- package/lib/compose/index.js +0 -1
- package/lib/compose/index.js.map +1 -1
- package/lib/compose/resolveShorthand.d.ts +10 -6
- package/lib/compose/resolveShorthand.js +5 -5
- package/lib/compose/resolveShorthand.js.map +1 -1
- package/lib/compose/types.d.ts +85 -33
- package/lib/compose/types.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -1
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useMergedEventCallbacks.d.ts +18 -0
- package/lib/hooks/useMergedEventCallbacks.js +26 -0
- package/lib/hooks/useMergedEventCallbacks.js.map +1 -0
- package/lib/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib/utils/applyTriggerPropsToChildren.js +23 -3
- package/lib/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib/utils/getNativeElementProps.d.ts +4 -4
- package/lib/utils/getNativeElementProps.js.map +1 -1
- package/lib/utils/getTriggerChild.d.ts +22 -0
- package/lib/utils/getTriggerChild.js +26 -0
- package/lib/utils/getTriggerChild.js.map +1 -0
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/index.js +2 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/isFluentTrigger.d.ts +22 -0
- package/lib/utils/isFluentTrigger.js +8 -0
- package/lib/utils/isFluentTrigger.js.map +1 -0
- package/lib-commonjs/compose/getSlots.d.ts +7 -7
- package/lib-commonjs/compose/getSlots.js +1 -3
- package/lib-commonjs/compose/getSlots.js.map +1 -1
- package/lib-commonjs/compose/index.d.ts +0 -1
- package/lib-commonjs/compose/index.js +0 -2
- package/lib-commonjs/compose/index.js.map +1 -1
- package/lib-commonjs/compose/resolveShorthand.d.ts +10 -6
- package/lib-commonjs/compose/resolveShorthand.js +5 -5
- package/lib-commonjs/compose/resolveShorthand.js.map +1 -1
- package/lib-commonjs/compose/types.d.ts +85 -33
- package/lib-commonjs/compose/types.js.map +1 -1
- package/lib-commonjs/hooks/index.d.ts +1 -1
- package/lib-commonjs/hooks/index.js +2 -2
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/useMergedEventCallbacks.d.ts +18 -0
- package/lib-commonjs/hooks/useMergedEventCallbacks.js +36 -0
- package/lib-commonjs/hooks/useMergedEventCallbacks.js.map +1 -0
- package/lib-commonjs/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js +24 -4
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib-commonjs/utils/getNativeElementProps.d.ts +4 -4
- package/lib-commonjs/utils/getNativeElementProps.js.map +1 -1
- package/lib-commonjs/utils/getTriggerChild.d.ts +22 -0
- package/lib-commonjs/utils/getTriggerChild.js +37 -0
- package/lib-commonjs/utils/getTriggerChild.js.map +1 -0
- package/lib-commonjs/utils/index.d.ts +2 -1
- package/lib-commonjs/utils/index.js +4 -2
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/isFluentTrigger.d.ts +22 -0
- package/lib-commonjs/utils/isFluentTrigger.js +17 -0
- package/lib-commonjs/utils/isFluentTrigger.js.map +1 -0
- package/package.json +2 -2
- package/lib/compose/nullRender.d.ts +0 -4
- package/lib/compose/nullRender.js +0 -5
- package/lib/compose/nullRender.js.map +0 -1
- package/lib/hooks/useTriggerElement.d.ts +0 -18
- package/lib/hooks/useTriggerElement.js +0 -90
- package/lib/hooks/useTriggerElement.js.map +0 -1
- package/lib/utils/onlyChild.d.ts +0 -5
- package/lib/utils/onlyChild.js +0 -13
- package/lib/utils/onlyChild.js.map +0 -1
- package/lib-commonjs/compose/nullRender.d.ts +0 -4
- package/lib-commonjs/compose/nullRender.js +0 -14
- package/lib-commonjs/compose/nullRender.js.map +0 -1
- package/lib-commonjs/hooks/useTriggerElement.d.ts +0 -18
- package/lib-commonjs/hooks/useTriggerElement.js +0 -105
- package/lib-commonjs/hooks/useTriggerElement.js.map +0 -1
- package/lib-commonjs/utils/onlyChild.d.ts +0 -5
- package/lib-commonjs/utils/onlyChild.js +0 -23
- package/lib-commonjs/utils/onlyChild.js.map +0 -1
@@ -1,90 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { applyTriggerPropsToChildren } from '../utils/applyTriggerPropsToChildren';
|
3
|
-
import { getReactCallbackName } from '../utils/getReactCallbackName';
|
4
|
-
import { onlyChild } from '../utils/onlyChild';
|
5
|
-
import { useEventCallback } from './useEventCallback';
|
6
|
-
import { useMergedRefs } from './useMergedRefs';
|
7
|
-
const CAPTURE_CALLBACK_REGEX = /on[A-Z].+Capture$/;
|
8
|
-
const CALLBACK_REGEX = /on[A-Z].+/;
|
9
|
-
/**
|
10
|
-
* A hook that handles "trigger" pattern.
|
11
|
-
*
|
12
|
-
* Clones a passed element or calls render props. Merges props including refs and callbacks, callbacks are kept stable
|
13
|
-
* by reference.
|
14
|
-
*/
|
15
|
-
|
16
|
-
export function useTriggerElement(options) {
|
17
|
-
const {
|
18
|
-
children,
|
19
|
-
ref,
|
20
|
-
outerProps,
|
21
|
-
overrideProps
|
22
|
-
} = options;
|
23
|
-
let childProps = {};
|
24
|
-
let childRef = null; // child can be a render func, `applyTriggerPropsToChildren`does the same check again
|
25
|
-
// TODO figure out a way to only do this check once
|
26
|
-
|
27
|
-
if ( /*#__PURE__*/React.isValidElement(children)) {
|
28
|
-
const child = onlyChild(children);
|
29
|
-
childProps = child.props;
|
30
|
-
childRef = child.ref;
|
31
|
-
} // Two separate callbacks are needed to handle properly bubble and capture callbacks
|
32
|
-
// "getReactCallbackName()" could return proper callback name, but it's possible only with React 17
|
33
|
-
|
34
|
-
|
35
|
-
const handleBubbleEvent = useEventCallback(ev => {
|
36
|
-
var _a, _b, _c;
|
37
|
-
|
38
|
-
const callbackName = getReactCallbackName(ev);
|
39
|
-
|
40
|
-
if (callbackName) {
|
41
|
-
// Typecast is required as "ev" is "React.SyntheticEvent" while callbacks have stricter typings and accept
|
42
|
-
// "FocusEvent", "ClipboardEvent" and etc.
|
43
|
-
|
44
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
45
|
-
(_a = childProps[callbackName]) === null || _a === void 0 ? void 0 : _a.call(childProps, ev);
|
46
|
-
(_b = overrideProps[callbackName]) === null || _b === void 0 ? void 0 : _b.call(overrideProps, ev);
|
47
|
-
(_c = outerProps[callbackName]) === null || _c === void 0 ? void 0 : _c.call(outerProps, ev);
|
48
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
49
|
-
}
|
50
|
-
});
|
51
|
-
const handleCaptureEvent = useEventCallback(ev => {
|
52
|
-
var _a, _b, _c;
|
53
|
-
|
54
|
-
const callbackName = getReactCallbackName(ev) + 'Capture';
|
55
|
-
|
56
|
-
if (callbackName) {
|
57
|
-
// Typecast is required as "ev" is "React.SyntheticEvent" while callbacks have stricter typings and accept
|
58
|
-
// "FocusEvent", "ClipboardEvent" and etc.
|
59
|
-
|
60
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
61
|
-
(_a = childProps[callbackName]) === null || _a === void 0 ? void 0 : _a.call(childProps, ev);
|
62
|
-
(_b = overrideProps[callbackName]) === null || _b === void 0 ? void 0 : _b.call(overrideProps, ev);
|
63
|
-
(_c = outerProps[callbackName]) === null || _c === void 0 ? void 0 : _c.call(outerProps, ev);
|
64
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
65
|
-
}
|
66
|
-
});
|
67
|
-
const mergedPropEntries = Object.entries({ ...outerProps,
|
68
|
-
...overrideProps,
|
69
|
-
...childProps,
|
70
|
-
// Undocumented, but React supports ref cloning through props
|
71
|
-
ref: useMergedRefs(childRef, ref)
|
72
|
-
}); // TODO: fix me after https://github.com/microsoft/fluentui/issues/21229
|
73
|
-
// Causes TS error:
|
74
|
-
// "Property 'fromEntries' does not exist on type 'ObjectConstructor'"
|
75
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
76
|
-
|
77
|
-
const triggerProps = Object.fromEntries(mergedPropEntries.map(([propName, propValue]) => {
|
78
|
-
if (propName.match(CAPTURE_CALLBACK_REGEX)) {
|
79
|
-
return [propName, handleCaptureEvent];
|
80
|
-
}
|
81
|
-
|
82
|
-
if (propName.match(CALLBACK_REGEX)) {
|
83
|
-
return [propName, handleBubbleEvent];
|
84
|
-
}
|
85
|
-
|
86
|
-
return [propName, propValue];
|
87
|
-
}));
|
88
|
-
return applyTriggerPropsToChildren(children, triggerProps);
|
89
|
-
}
|
90
|
-
//# sourceMappingURL=useTriggerElement.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useTriggerElement.ts"],"names":[],"mappings":"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","sourceRoot":""}
|
package/lib/utils/onlyChild.d.ts
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
/**
|
3
|
-
* Similar to React.Children.only, but drills into fragments rather than treating them as a single child
|
4
|
-
*/
|
5
|
-
export declare const onlyChild: <P>(child: boolean | React.ReactText | React.ReactFragment | React.ReactPortal | React.ReactElement<P, string | React.JSXElementConstructor<any>> | null | undefined) => React.ReactElement<P, string | React.JSXElementConstructor<any>>;
|
package/lib/utils/onlyChild.js
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
/**
|
3
|
-
* Similar to React.Children.only, but drills into fragments rather than treating them as a single child
|
4
|
-
*/
|
5
|
-
|
6
|
-
export const onlyChild = child => {
|
7
|
-
if (! /*#__PURE__*/React.isValidElement(child)) {
|
8
|
-
throw new Error(`Component's child must be a single element`);
|
9
|
-
}
|
10
|
-
|
11
|
-
return child.type === React.Fragment ? onlyChild(child.props.children) : child;
|
12
|
-
};
|
13
|
-
//# sourceMappingURL=onlyChild.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/onlyChild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAEA;;AAEG;;AACH,OAAO,MAAM,SAAS,GACpB,KADuB,IAEE;AACzB,MAAI,eAAC,KAAK,CAAC,cAAN,CAAqB,KAArB,CAAL,EAAkC;AAChC,UAAM,IAAI,KAAJ,CAAU,4CAAV,CAAN;AACD;;AAED,SAAO,KAAK,CAAC,IAAN,KAAe,KAAK,CAAC,QAArB,GAAgC,SAAS,CAAC,KAAK,CAAC,KAAN,CAAY,QAAb,CAAzC,GAAkE,KAAzE;AACD,CARM","sourceRoot":""}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.nullRender = void 0;
|
7
|
-
/**
|
8
|
-
* Simple constant function for returning null, used to render empty templates in JSX.
|
9
|
-
*/
|
10
|
-
|
11
|
-
const nullRender = () => null;
|
12
|
-
|
13
|
-
exports.nullRender = nullRender;
|
14
|
-
//# sourceMappingURL=nullRender.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/compose/nullRender.tsx"],"names":[],"mappings":";;;;;;AAAA;;AAEG;;AACI,MAAM,UAAU,GAAG,MAAM,IAAzB;;AAAM,OAAA,CAAA,UAAA,GAAU,UAAV","sourceRoot":""}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
export declare type UseTriggerElementOptions<TriggerProps> = {
|
3
|
-
/** An actual trigger element or render props function. */
|
4
|
-
children: React.ReactElement | ((props: TriggerProps) => React.ReactNode) | null | undefined;
|
5
|
-
/** A ref to trigger element. */
|
6
|
-
ref: React.Ref<unknown> | undefined;
|
7
|
-
/** Props that are passed to a parent component and should be forwarded down. */
|
8
|
-
outerProps: React.HTMLProps<unknown>;
|
9
|
-
/** Custom props including callbacks. */
|
10
|
-
overrideProps: TriggerProps;
|
11
|
-
};
|
12
|
-
/**
|
13
|
-
* A hook that handles "trigger" pattern.
|
14
|
-
*
|
15
|
-
* Clones a passed element or calls render props. Merges props including refs and callbacks, callbacks are kept stable
|
16
|
-
* by reference.
|
17
|
-
*/
|
18
|
-
export declare function useTriggerElement<TriggerProps extends React.HTMLProps<unknown>>(options: UseTriggerElementOptions<TriggerProps>): React.ReactNode;
|
@@ -1,105 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.useTriggerElement = void 0;
|
7
|
-
|
8
|
-
const React = /*#__PURE__*/require("react");
|
9
|
-
|
10
|
-
const applyTriggerPropsToChildren_1 = /*#__PURE__*/require("../utils/applyTriggerPropsToChildren");
|
11
|
-
|
12
|
-
const getReactCallbackName_1 = /*#__PURE__*/require("../utils/getReactCallbackName");
|
13
|
-
|
14
|
-
const onlyChild_1 = /*#__PURE__*/require("../utils/onlyChild");
|
15
|
-
|
16
|
-
const useEventCallback_1 = /*#__PURE__*/require("./useEventCallback");
|
17
|
-
|
18
|
-
const useMergedRefs_1 = /*#__PURE__*/require("./useMergedRefs");
|
19
|
-
|
20
|
-
const CAPTURE_CALLBACK_REGEX = /on[A-Z].+Capture$/;
|
21
|
-
const CALLBACK_REGEX = /on[A-Z].+/;
|
22
|
-
/**
|
23
|
-
* A hook that handles "trigger" pattern.
|
24
|
-
*
|
25
|
-
* Clones a passed element or calls render props. Merges props including refs and callbacks, callbacks are kept stable
|
26
|
-
* by reference.
|
27
|
-
*/
|
28
|
-
|
29
|
-
function useTriggerElement(options) {
|
30
|
-
const {
|
31
|
-
children,
|
32
|
-
ref,
|
33
|
-
outerProps,
|
34
|
-
overrideProps
|
35
|
-
} = options;
|
36
|
-
let childProps = {};
|
37
|
-
let childRef = null; // child can be a render func, `applyTriggerPropsToChildren`does the same check again
|
38
|
-
// TODO figure out a way to only do this check once
|
39
|
-
|
40
|
-
if (React.isValidElement(children)) {
|
41
|
-
const child = onlyChild_1.onlyChild(children);
|
42
|
-
childProps = child.props;
|
43
|
-
childRef = child.ref;
|
44
|
-
} // Two separate callbacks are needed to handle properly bubble and capture callbacks
|
45
|
-
// "getReactCallbackName()" could return proper callback name, but it's possible only with React 17
|
46
|
-
|
47
|
-
|
48
|
-
const handleBubbleEvent = useEventCallback_1.useEventCallback(ev => {
|
49
|
-
var _a, _b, _c;
|
50
|
-
|
51
|
-
const callbackName = getReactCallbackName_1.getReactCallbackName(ev);
|
52
|
-
|
53
|
-
if (callbackName) {
|
54
|
-
// Typecast is required as "ev" is "React.SyntheticEvent" while callbacks have stricter typings and accept
|
55
|
-
// "FocusEvent", "ClipboardEvent" and etc.
|
56
|
-
|
57
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
58
|
-
(_a = childProps[callbackName]) === null || _a === void 0 ? void 0 : _a.call(childProps, ev);
|
59
|
-
(_b = overrideProps[callbackName]) === null || _b === void 0 ? void 0 : _b.call(overrideProps, ev);
|
60
|
-
(_c = outerProps[callbackName]) === null || _c === void 0 ? void 0 : _c.call(outerProps, ev);
|
61
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
62
|
-
}
|
63
|
-
});
|
64
|
-
const handleCaptureEvent = useEventCallback_1.useEventCallback(ev => {
|
65
|
-
var _a, _b, _c;
|
66
|
-
|
67
|
-
const callbackName = getReactCallbackName_1.getReactCallbackName(ev) + 'Capture';
|
68
|
-
|
69
|
-
if (callbackName) {
|
70
|
-
// Typecast is required as "ev" is "React.SyntheticEvent" while callbacks have stricter typings and accept
|
71
|
-
// "FocusEvent", "ClipboardEvent" and etc.
|
72
|
-
|
73
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
74
|
-
(_a = childProps[callbackName]) === null || _a === void 0 ? void 0 : _a.call(childProps, ev);
|
75
|
-
(_b = overrideProps[callbackName]) === null || _b === void 0 ? void 0 : _b.call(overrideProps, ev);
|
76
|
-
(_c = outerProps[callbackName]) === null || _c === void 0 ? void 0 : _c.call(outerProps, ev);
|
77
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
78
|
-
}
|
79
|
-
});
|
80
|
-
const mergedPropEntries = Object.entries({ ...outerProps,
|
81
|
-
...overrideProps,
|
82
|
-
...childProps,
|
83
|
-
// Undocumented, but React supports ref cloning through props
|
84
|
-
ref: useMergedRefs_1.useMergedRefs(childRef, ref)
|
85
|
-
}); // TODO: fix me after https://github.com/microsoft/fluentui/issues/21229
|
86
|
-
// Causes TS error:
|
87
|
-
// "Property 'fromEntries' does not exist on type 'ObjectConstructor'"
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
89
|
-
|
90
|
-
const triggerProps = Object.fromEntries(mergedPropEntries.map(([propName, propValue]) => {
|
91
|
-
if (propName.match(CAPTURE_CALLBACK_REGEX)) {
|
92
|
-
return [propName, handleCaptureEvent];
|
93
|
-
}
|
94
|
-
|
95
|
-
if (propName.match(CALLBACK_REGEX)) {
|
96
|
-
return [propName, handleBubbleEvent];
|
97
|
-
}
|
98
|
-
|
99
|
-
return [propName, propValue];
|
100
|
-
}));
|
101
|
-
return applyTriggerPropsToChildren_1.applyTriggerPropsToChildren(children, triggerProps);
|
102
|
-
}
|
103
|
-
|
104
|
-
exports.useTriggerElement = useTriggerElement;
|
105
|
-
//# sourceMappingURL=useTriggerElement.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useTriggerElement.ts"],"names":[],"mappings":"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","sourceRoot":""}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
/**
|
3
|
-
* Similar to React.Children.only, but drills into fragments rather than treating them as a single child
|
4
|
-
*/
|
5
|
-
export declare const onlyChild: <P>(child: boolean | React.ReactText | React.ReactFragment | React.ReactPortal | React.ReactElement<P, string | React.JSXElementConstructor<any>> | null | undefined) => React.ReactElement<P, string | React.JSXElementConstructor<any>>;
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.onlyChild = void 0;
|
7
|
-
|
8
|
-
const React = /*#__PURE__*/require("react");
|
9
|
-
/**
|
10
|
-
* Similar to React.Children.only, but drills into fragments rather than treating them as a single child
|
11
|
-
*/
|
12
|
-
|
13
|
-
|
14
|
-
const onlyChild = child => {
|
15
|
-
if (!React.isValidElement(child)) {
|
16
|
-
throw new Error(`Component's child must be a single element`);
|
17
|
-
}
|
18
|
-
|
19
|
-
return child.type === React.Fragment ? exports.onlyChild(child.props.children) : child;
|
20
|
-
};
|
21
|
-
|
22
|
-
exports.onlyChild = onlyChild;
|
23
|
-
//# sourceMappingURL=onlyChild.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/onlyChild.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;AAEA;;AAEG;;;AACI,MAAM,SAAS,GACpB,KADuB,IAEE;AACzB,MAAI,CAAC,KAAK,CAAC,cAAN,CAAqB,KAArB,CAAL,EAAkC;AAChC,UAAM,IAAI,KAAJ,CAAU,4CAAV,CAAN;AACD;;AAED,SAAO,KAAK,CAAC,IAAN,KAAe,KAAK,CAAC,QAArB,GAAgC,OAAA,CAAA,SAAA,CAAU,KAAK,CAAC,KAAN,CAAY,QAAtB,CAAhC,GAAkE,KAAzE;AACD,CARM;;AAAM,OAAA,CAAA,SAAA,GAAS,SAAT","sourceRoot":""}
|