@fluentui/react-utilities 0.0.0-nightlya372ad979820211103.1 → 0.0.0-nightlyc49127232120220201.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 +120 -6
- package/CHANGELOG.md +30 -6
- package/dist/react-utilities.d.ts +134 -81
- package/lib/compose/getSlots.d.ts +11 -10
- package/lib/compose/getSlots.js +20 -28
- package/lib/compose/getSlots.js.map +1 -1
- package/lib/compose/nullRender.js +1 -3
- package/lib/compose/nullRender.js.map +1 -1
- package/lib/compose/resolveShorthand.d.ts +5 -5
- package/lib/compose/resolveShorthand.js +11 -10
- package/lib/compose/resolveShorthand.js.map +1 -1
- package/lib/compose/types.d.ts +48 -27
- 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/useBoolean.js +10 -21
- package/lib/hooks/useBoolean.js.map +1 -1
- package/lib/hooks/useConst.js +1 -1
- package/lib/hooks/useConst.js.map +1 -1
- package/lib/hooks/useControllableState.d.ts +16 -6
- package/lib/hooks/useControllableState.js +26 -25
- package/lib/hooks/useControllableState.js.map +1 -1
- package/lib/hooks/useEventCallback.js +6 -12
- package/lib/hooks/useEventCallback.js.map +1 -1
- package/lib/hooks/useFirstMount.js +1 -1
- package/lib/hooks/useFirstMount.js.map +1 -1
- package/lib/hooks/useForceUpdate.js +1 -3
- package/lib/hooks/useForceUpdate.js.map +1 -1
- package/lib/hooks/useId.js +2 -4
- package/lib/hooks/useId.js.map +1 -1
- package/lib/hooks/useIsomorphicLayoutEffect.js +1 -1
- package/lib/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib/hooks/useMergedRefs.js +5 -13
- package/lib/hooks/useMergedRefs.js.map +1 -1
- package/lib/hooks/useMount.js +3 -3
- package/lib/hooks/useMount.js.map +1 -1
- package/lib/hooks/useOnClickOutside.js +30 -36
- package/lib/hooks/useOnClickOutside.js.map +1 -1
- package/lib/hooks/useOnScrollOutside.js +13 -15
- package/lib/hooks/useOnScrollOutside.js.map +1 -1
- package/lib/hooks/usePrevious.js +3 -3
- package/lib/hooks/usePrevious.js.map +1 -1
- package/lib/hooks/useTimeout.js +13 -17
- package/lib/hooks/useTimeout.js.map +1 -1
- package/lib/hooks/useTriggerElement.d.ts +18 -0
- package/lib/hooks/useTriggerElement.js +90 -0
- package/lib/hooks/useTriggerElement.js.map +1 -0
- package/lib/hooks/useUnmount.js +5 -7
- package/lib/hooks/useUnmount.js.map +1 -1
- package/lib/ssr/SSRContext.js +9 -15
- package/lib/ssr/SSRContext.js.map +1 -1
- package/lib/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib/utils/applyTriggerPropsToChildren.js +1 -1
- package/lib/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib/utils/clamp.js +1 -3
- package/lib/utils/clamp.js.map +1 -1
- package/lib/utils/getNativeElementProps.d.ts +22 -0
- package/lib/utils/getNativeElementProps.js +24 -2
- package/lib/utils/getNativeElementProps.js.map +1 -1
- package/lib/utils/getRTLSafeKey.js +1 -1
- package/lib/utils/getRTLSafeKey.js.map +1 -1
- package/lib/utils/getReactCallbackName.d.ts +25 -0
- package/lib/utils/getReactCallbackName.js +26 -0
- package/lib/utils/getReactCallbackName.js.map +1 -0
- package/lib/utils/omit.js +2 -2
- package/lib/utils/omit.js.map +1 -1
- package/lib/utils/onlyChild.d.ts +1 -1
- package/lib/utils/onlyChild.js +2 -2
- package/lib/utils/onlyChild.js.map +1 -1
- package/lib/utils/properties.js +55 -44
- package/lib/utils/properties.js.map +1 -1
- package/lib/utils/shouldPreventDefaultOnKeyDown.js +4 -4
- package/lib/utils/shouldPreventDefaultOnKeyDown.js.map +1 -1
- package/lib-commonjs/compose/getSlots.d.ts +11 -10
- package/lib-commonjs/compose/getSlots.js +23 -32
- package/lib-commonjs/compose/getSlots.js.map +1 -1
- package/lib-commonjs/compose/index.js +1 -1
- package/lib-commonjs/compose/nullRender.js +1 -3
- package/lib-commonjs/compose/nullRender.js.map +1 -1
- package/lib-commonjs/compose/resolveShorthand.d.ts +5 -5
- package/lib-commonjs/compose/resolveShorthand.js +12 -12
- package/lib-commonjs/compose/resolveShorthand.js.map +1 -1
- package/lib-commonjs/compose/types.d.ts +48 -27
- package/lib-commonjs/compose/types.js.map +1 -1
- package/lib-commonjs/hooks/index.d.ts +1 -1
- package/lib-commonjs/hooks/index.js +3 -3
- package/lib-commonjs/hooks/index.js.map +1 -1
- package/lib-commonjs/hooks/useBoolean.js +12 -23
- package/lib-commonjs/hooks/useBoolean.js.map +1 -1
- package/lib-commonjs/hooks/useConst.js +2 -2
- package/lib-commonjs/hooks/useConst.js.map +1 -1
- package/lib-commonjs/hooks/useControllableState.d.ts +16 -6
- package/lib-commonjs/hooks/useControllableState.js +28 -27
- package/lib-commonjs/hooks/useControllableState.js.map +1 -1
- package/lib-commonjs/hooks/useEventCallback.js +8 -14
- package/lib-commonjs/hooks/useEventCallback.js.map +1 -1
- package/lib-commonjs/hooks/useFirstMount.js +2 -2
- package/lib-commonjs/hooks/useFirstMount.js.map +1 -1
- package/lib-commonjs/hooks/useForceUpdate.js +2 -4
- package/lib-commonjs/hooks/useForceUpdate.js.map +1 -1
- package/lib-commonjs/hooks/useId.js +4 -6
- package/lib-commonjs/hooks/useId.js.map +1 -1
- package/lib-commonjs/hooks/useIsomorphicLayoutEffect.js +2 -2
- package/lib-commonjs/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib-commonjs/hooks/useMergedRefs.js +6 -15
- package/lib-commonjs/hooks/useMergedRefs.js.map +1 -1
- package/lib-commonjs/hooks/useMount.js +4 -4
- package/lib-commonjs/hooks/useMount.js.map +1 -1
- package/lib-commonjs/hooks/useOnClickOutside.js +32 -38
- package/lib-commonjs/hooks/useOnClickOutside.js.map +1 -1
- package/lib-commonjs/hooks/useOnScrollOutside.js +15 -17
- package/lib-commonjs/hooks/useOnScrollOutside.js.map +1 -1
- package/lib-commonjs/hooks/usePrevious.js +4 -4
- package/lib-commonjs/hooks/usePrevious.js.map +1 -1
- package/lib-commonjs/hooks/useTimeout.js +15 -19
- package/lib-commonjs/hooks/useTimeout.js.map +1 -1
- package/lib-commonjs/hooks/useTriggerElement.d.ts +18 -0
- package/lib-commonjs/hooks/useTriggerElement.js +105 -0
- package/lib-commonjs/hooks/useTriggerElement.js.map +1 -0
- package/lib-commonjs/hooks/useUnmount.js +6 -8
- package/lib-commonjs/hooks/useUnmount.js.map +1 -1
- package/lib-commonjs/index.js +1 -1
- package/lib-commonjs/ssr/SSRContext.js +9 -15
- package/lib-commonjs/ssr/SSRContext.js.map +1 -1
- package/lib-commonjs/ssr/index.js +1 -1
- package/lib-commonjs/utils/applyTriggerPropsToChildren.d.ts +1 -1
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js +3 -3
- package/lib-commonjs/utils/applyTriggerPropsToChildren.js.map +1 -1
- package/lib-commonjs/utils/clamp.js +1 -3
- package/lib-commonjs/utils/clamp.js.map +1 -1
- package/lib-commonjs/utils/getNativeElementProps.d.ts +22 -0
- package/lib-commonjs/utils/getNativeElementProps.js +28 -4
- package/lib-commonjs/utils/getNativeElementProps.js.map +1 -1
- package/lib-commonjs/utils/getRTLSafeKey.js +1 -1
- package/lib-commonjs/utils/getRTLSafeKey.js.map +1 -1
- package/lib-commonjs/utils/getReactCallbackName.d.ts +25 -0
- package/lib-commonjs/utils/getReactCallbackName.js +35 -0
- package/lib-commonjs/utils/getReactCallbackName.js.map +1 -0
- package/lib-commonjs/utils/index.js +1 -1
- package/lib-commonjs/utils/omit.js +2 -2
- package/lib-commonjs/utils/omit.js.map +1 -1
- package/lib-commonjs/utils/onlyChild.d.ts +1 -1
- package/lib-commonjs/utils/onlyChild.js +3 -3
- package/lib-commonjs/utils/onlyChild.js.map +1 -1
- package/lib-commonjs/utils/properties.js +50 -39
- package/lib-commonjs/utils/properties.js.map +1 -1
- package/lib-commonjs/utils/shouldPreventDefaultOnKeyDown.js +5 -5
- package/lib-commonjs/utils/shouldPreventDefaultOnKeyDown.js.map +1 -1
- package/package.json +6 -11
- package/lib/hooks/useControllableValue.d.ts +0 -20
- package/lib/hooks/useControllableValue.js +0 -62
- package/lib/hooks/useControllableValue.js.map +0 -1
- package/lib-commonjs/hooks/useControllableValue.d.ts +0 -20
- package/lib-commonjs/hooks/useControllableValue.js +0 -73
- package/lib-commonjs/hooks/useControllableValue.js.map +0 -1
@@ -5,21 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.getNativeProps = exports.divProperties = exports.imageProperties = exports.imgProperties = exports.iframeProperties = exports.formProperties = exports.colProperties = exports.colGroupProperties = exports.tdProperties = exports.thProperties = exports.trProperties = exports.tableProperties = exports.optionProperties = exports.selectProperties = exports.textAreaProperties = exports.inputProperties = exports.buttonProperties = exports.anchorProperties = exports.liProperties = exports.olProperties = exports.videoProperties = exports.audioProperties = exports.labelProperties = exports.htmlElementProperties = exports.baseElementProperties = exports.baseElementEvents = void 0;
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
const toObjectMap = (...items) => {
|
9
|
+
const result = {};
|
10
10
|
|
11
|
-
for (
|
12
|
-
|
13
|
-
}
|
14
|
-
|
15
|
-
var result = {};
|
16
|
-
|
17
|
-
for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {
|
18
|
-
var item = items_1[_a];
|
19
|
-
var keys = Array.isArray(item) ? item : Object.keys(item);
|
11
|
+
for (const item of items) {
|
12
|
+
const keys = Array.isArray(item) ? item : Object.keys(item);
|
20
13
|
|
21
|
-
for (
|
22
|
-
var key = keys_1[_b];
|
14
|
+
for (const key of keys) {
|
23
15
|
result[key] = 1;
|
24
16
|
}
|
25
17
|
}
|
@@ -40,7 +32,8 @@ exports.baseElementEvents = /*#__PURE__*/toObjectMap(['onAuxClick', 'onCopy', 'o
|
|
40
32
|
* @public
|
41
33
|
*/
|
42
34
|
|
43
|
-
exports.baseElementProperties = /*#__PURE__*/toObjectMap(['accessKey', 'children', 'className', 'contentEditable', 'dir', 'draggable', 'hidden', 'htmlFor', 'id', 'lang', 'ref', 'role', 'style', 'tabIndex', 'title', 'translate', 'spellCheck', 'name'
|
35
|
+
exports.baseElementProperties = /*#__PURE__*/toObjectMap(['accessKey', 'children', 'className', 'contentEditable', 'dir', 'draggable', 'hidden', 'htmlFor', 'id', 'lang', 'ref', 'role', 'style', 'tabIndex', 'title', 'translate', 'spellCheck', 'name' // global
|
36
|
+
]);
|
44
37
|
/**
|
45
38
|
* An array of HTML element properties and events.
|
46
39
|
*
|
@@ -54,78 +47,90 @@ exports.htmlElementProperties = /*#__PURE__*/toObjectMap(exports.baseElementProp
|
|
54
47
|
* @public
|
55
48
|
*/
|
56
49
|
|
57
|
-
exports.labelProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['form'
|
50
|
+
exports.labelProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['form' // button, fieldset, input, label, meter, object, output, select, textarea
|
51
|
+
]);
|
58
52
|
/**
|
59
53
|
* An array of AUDIO tag properties and events.
|
60
54
|
|
61
55
|
* @public
|
62
56
|
*/
|
63
57
|
|
64
|
-
exports.audioProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['height', 'loop', 'muted', 'preload', 'src', 'width'
|
58
|
+
exports.audioProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['height', 'loop', 'muted', 'preload', 'src', 'width' // canvas, embed, iframe, img, input, object, video
|
59
|
+
]);
|
65
60
|
/**
|
66
61
|
* An array of VIDEO tag properties and events.
|
67
62
|
*
|
68
63
|
* @public
|
69
64
|
*/
|
70
65
|
|
71
|
-
exports.videoProperties = /*#__PURE__*/toObjectMap(exports.audioProperties, ['poster'
|
66
|
+
exports.videoProperties = /*#__PURE__*/toObjectMap(exports.audioProperties, ['poster' // video
|
67
|
+
]);
|
72
68
|
/**
|
73
69
|
* An array of OL tag properties and events.
|
74
70
|
*
|
75
71
|
* @public
|
76
72
|
*/
|
77
73
|
|
78
|
-
exports.olProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['start'
|
74
|
+
exports.olProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['start' // ol
|
75
|
+
]);
|
79
76
|
/**
|
80
77
|
* An array of LI tag properties and events.
|
81
78
|
*
|
82
79
|
* @public
|
83
80
|
*/
|
84
81
|
|
85
|
-
exports.liProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['value'
|
82
|
+
exports.liProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['value' // button, input, li, option, meter, progress, param
|
83
|
+
]);
|
86
84
|
/**
|
87
85
|
* An array of A tag properties and events.
|
88
86
|
*
|
89
87
|
* @public
|
90
88
|
*/
|
91
89
|
|
92
|
-
exports.anchorProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['download', 'href', 'hrefLang', 'media', 'rel', 'target', 'type'
|
90
|
+
exports.anchorProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['download', 'href', 'hrefLang', 'media', 'rel', 'target', 'type' // a, button, input, link, menu, object, script, source, style
|
91
|
+
]);
|
93
92
|
/**
|
94
93
|
* An array of BUTTON tag properties and events.
|
95
94
|
*
|
96
95
|
* @public
|
97
96
|
*/
|
98
97
|
|
99
|
-
exports.buttonProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['autoFocus', 'disabled', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate', 'formTarget', 'type', 'value'
|
98
|
+
exports.buttonProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['autoFocus', 'disabled', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate', 'formTarget', 'type', 'value' // button, input, li, option, meter, progress, param,
|
99
|
+
]);
|
100
100
|
/**
|
101
101
|
* An array of INPUT tag properties and events.
|
102
102
|
*
|
103
103
|
* @public
|
104
104
|
*/
|
105
105
|
|
106
|
-
exports.inputProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['accept', 'alt', 'autoCapitalize', 'autoComplete', 'checked', 'dirname', 'form', 'height', 'inputMode', 'list', 'max', 'maxLength', 'min', 'multiple', 'pattern', 'placeholder', 'readOnly', 'required', 'src', 'step', 'size', 'type', 'value', 'width'
|
106
|
+
exports.inputProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['accept', 'alt', 'autoCapitalize', 'autoComplete', 'checked', 'dirname', 'form', 'height', 'inputMode', 'list', 'max', 'maxLength', 'min', 'multiple', 'pattern', 'placeholder', 'readOnly', 'required', 'src', 'step', 'size', 'type', 'value', 'width' // canvas, embed, iframe, img, input, object, video
|
107
|
+
]);
|
107
108
|
/**
|
108
109
|
* An array of TEXTAREA tag properties and events.
|
109
110
|
*
|
110
111
|
* @public
|
111
112
|
*/
|
112
113
|
|
113
|
-
exports.textAreaProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['autoCapitalize', 'cols', 'dirname', 'form', 'maxLength', 'placeholder', 'readOnly', 'required', 'rows', 'wrap'
|
114
|
+
exports.textAreaProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['autoCapitalize', 'cols', 'dirname', 'form', 'maxLength', 'placeholder', 'readOnly', 'required', 'rows', 'wrap' // textarea
|
115
|
+
]);
|
114
116
|
/**
|
115
117
|
* An array of SELECT tag properties and events.
|
116
118
|
*
|
117
119
|
* @public
|
118
120
|
*/
|
119
121
|
|
120
|
-
exports.selectProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['form', 'multiple', 'required'
|
121
|
-
|
122
|
+
exports.selectProperties = /*#__PURE__*/toObjectMap(exports.buttonProperties, ['form', 'multiple', 'required' // input, select, textarea
|
123
|
+
]);
|
124
|
+
exports.optionProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['selected', 'value' // button, input, li, option, meter, progress, param
|
125
|
+
]);
|
122
126
|
/**
|
123
127
|
* An array of TABLE tag properties and events.
|
124
128
|
*
|
125
129
|
* @public
|
126
130
|
*/
|
127
131
|
|
128
|
-
exports.tableProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['cellPadding', 'cellSpacing'
|
132
|
+
exports.tableProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['cellPadding', 'cellSpacing' // table
|
133
|
+
]);
|
129
134
|
/**
|
130
135
|
* An array of TR tag properties and events.
|
131
136
|
*
|
@@ -139,37 +144,44 @@ exports.trProperties = exports.htmlElementProperties;
|
|
139
144
|
* @public
|
140
145
|
*/
|
141
146
|
|
142
|
-
exports.thProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['rowSpan', 'scope'
|
147
|
+
exports.thProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['rowSpan', 'scope' // th
|
148
|
+
]);
|
143
149
|
/**
|
144
150
|
* An array of TD tag properties and events.
|
145
151
|
*
|
146
152
|
* @public
|
147
153
|
*/
|
148
154
|
|
149
|
-
exports.tdProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['colSpan', 'headers', 'rowSpan', 'scope'
|
150
|
-
|
151
|
-
exports.
|
155
|
+
exports.tdProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['colSpan', 'headers', 'rowSpan', 'scope' // th
|
156
|
+
]);
|
157
|
+
exports.colGroupProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['span' // col, colgroup
|
158
|
+
]);
|
159
|
+
exports.colProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['span' // col, colgroup
|
160
|
+
]);
|
152
161
|
/**
|
153
162
|
* An array of FORM tag properties and events.
|
154
163
|
*
|
155
164
|
* @public
|
156
165
|
*/
|
157
166
|
|
158
|
-
exports.formProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['acceptCharset', 'action', 'encType', 'encType', 'method', 'noValidate', 'target'
|
167
|
+
exports.formProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['acceptCharset', 'action', 'encType', 'encType', 'method', 'noValidate', 'target' // form
|
168
|
+
]);
|
159
169
|
/**
|
160
170
|
* An array of IFRAME tag properties and events.
|
161
171
|
*
|
162
172
|
* @public
|
163
173
|
*/
|
164
174
|
|
165
|
-
exports.iframeProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['allow', 'allowFullScreen', 'allowPaymentRequest', 'allowTransparency', 'csp', 'height', 'importance', 'referrerPolicy', 'sandbox', 'src', 'srcDoc', 'width'
|
175
|
+
exports.iframeProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['allow', 'allowFullScreen', 'allowPaymentRequest', 'allowTransparency', 'csp', 'height', 'importance', 'referrerPolicy', 'sandbox', 'src', 'srcDoc', 'width' // canvas, embed, iframe, img, input, object, video,
|
176
|
+
]);
|
166
177
|
/**
|
167
178
|
* An array of IMAGE tag properties and events.
|
168
179
|
*
|
169
180
|
* @public
|
170
181
|
*/
|
171
182
|
|
172
|
-
exports.imgProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['alt', 'crossOrigin', 'height', 'src', 'srcSet', 'useMap', 'width'
|
183
|
+
exports.imgProperties = /*#__PURE__*/toObjectMap(exports.htmlElementProperties, ['alt', 'crossOrigin', 'height', 'src', 'srcSet', 'useMap', 'width' // canvas, embed, iframe, img, input, object, video
|
184
|
+
]);
|
173
185
|
/**
|
174
186
|
* @deprecated Use imgProperties for img elements.
|
175
187
|
*/
|
@@ -205,14 +217,13 @@ props, allowedPropNames, excludedPropNames) {
|
|
205
217
|
// Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then
|
206
218
|
// return native props.
|
207
219
|
// We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797
|
208
|
-
|
220
|
+
const isArray = Array.isArray(allowedPropNames); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
209
221
|
|
210
|
-
|
211
|
-
|
222
|
+
const result = {};
|
223
|
+
const keys = Object.keys(props);
|
212
224
|
|
213
|
-
for (
|
214
|
-
|
215
|
-
var isNativeProp = !isArray && allowedPropNames[key] || isArray && allowedPropNames.indexOf(key) >= 0 || key.indexOf('data-') === 0 || key.indexOf('aria-') === 0;
|
225
|
+
for (const key of keys) {
|
226
|
+
const isNativeProp = !isArray && allowedPropNames[key] || isArray && allowedPropNames.indexOf(key) >= 0 || key.indexOf('data-') === 0 || key.indexOf('aria-') === 0;
|
216
227
|
|
217
228
|
if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {
|
218
229
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/properties.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/utils/properties.ts"],"names":[],"mappings":"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","sourceRoot":""}
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.shouldPreventDefaultOnKeyDown = void 0;
|
7
7
|
|
8
|
-
|
8
|
+
const keyboard_keys_1 = /*#__PURE__*/require("@fluentui/keyboard-keys");
|
9
9
|
/**
|
10
10
|
* Checks if the keyboard event should preventDefault() for Enter and Spacebar keys
|
11
11
|
*
|
@@ -14,15 +14,15 @@ var keyboard_keys_1 = /*#__PURE__*/require("@fluentui/keyboard-keys");
|
|
14
14
|
|
15
15
|
|
16
16
|
function shouldPreventDefaultOnKeyDown(e) {
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
const key = e.key;
|
18
|
+
const target = e.target;
|
19
|
+
const matchesByKey = key === keyboard_keys_1.Space || key === keyboard_keys_1.Enter;
|
20
20
|
|
21
21
|
if ((target === null || target === void 0 ? void 0 : target.tagName) === 'A') {
|
22
22
|
return key === keyboard_keys_1.Space;
|
23
23
|
}
|
24
24
|
|
25
|
-
|
25
|
+
const ignoredByTag = (target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT' || (target === null || target === void 0 ? void 0 : target.tagName) === 'TEXTAREA' || (target === null || target === void 0 ? void 0 : target.isContentEditable) === true;
|
26
26
|
return matchesByKey && !ignoredByTag;
|
27
27
|
}
|
28
28
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/shouldPreventDefaultOnKeyDown.ts"],"names":[],"mappings":";;;;;;;AAAA,
|
1
|
+
{"version":3,"sources":["../../src/utils/shouldPreventDefaultOnKeyDown.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,eAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;AAGA;;;;AAIG;;;AACH,SAAgB,6BAAhB,CAA8C,CAA9C,EAAoF;AAClF,QAAM,GAAG,GAAG,CAAC,CAAC,GAAd;AACA,QAAM,MAAM,GAA4B,CAAC,CAAC,MAA1C;AAEA,QAAM,YAAY,GAAG,GAAG,KAAK,eAAA,CAAA,KAAR,IAAiB,GAAG,KAAK,eAAA,CAAA,KAA9C;;AAEA,MAAI,CAAA,MAAM,KAAA,IAAN,IAAA,MAAM,KAAA,KAAA,CAAN,GAAM,KAAA,CAAN,GAAA,MAAM,CAAE,OAAR,MAAoB,GAAxB,EAA6B;AAC3B,WAAO,GAAG,KAAK,eAAA,CAAA,KAAf;AACD;;AAED,QAAM,YAAY,GAChB,CAAA,MAAM,KAAA,IAAN,IAAA,MAAM,KAAA,KAAA,CAAN,GAAM,KAAA,CAAN,GAAA,MAAM,CAAE,OAAR,MAAoB,OAApB,IAA+B,CAAA,MAAM,KAAA,IAAN,IAAA,MAAM,KAAA,KAAA,CAAN,GAAM,KAAA,CAAN,GAAA,MAAM,CAAE,OAAR,MAAoB,UAAnD,IAAiE,CAAA,MAAM,KAAA,IAAN,IAAA,MAAM,KAAA,KAAA,CAAN,GAAM,KAAA,CAAN,GAAA,MAAM,CAAE,iBAAR,MAA8B,IADjG;AAGA,SAAO,YAAY,IAAI,CAAC,YAAxB;AACD;;AAdD,OAAA,CAAA,6BAAA,GAAA,6BAAA","sourceRoot":""}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fluentui/react-utilities",
|
3
|
-
"version": "0.0.0-
|
3
|
+
"version": "0.0.0-nightlyc49127232120220201.1",
|
4
4
|
"description": "A set of general React-specific utilities.",
|
5
5
|
"main": "lib-commonjs/index.js",
|
6
6
|
"module": "lib/index.js",
|
@@ -18,26 +18,22 @@
|
|
18
18
|
"code-style": "just-scripts code-style",
|
19
19
|
"just": "just-scripts",
|
20
20
|
"lint": "just-scripts lint",
|
21
|
-
"test": "jest",
|
21
|
+
"test": "jest --passWithNoTests",
|
22
22
|
"docs": "api-extractor run --config=config/api-extractor.local.json --local",
|
23
|
-
"build:local": "tsc -p . --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output dist/react-utilities/src && yarn docs",
|
24
|
-
"
|
25
|
-
"
|
23
|
+
"build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../scripts/typescript/normalize-import --output ./dist/packages/react-utilities/src && yarn docs",
|
24
|
+
"start": "yarn storybook",
|
25
|
+
"type-check": "tsc -b tsconfig.json"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"@fluentui/eslint-plugin": "*",
|
29
29
|
"@fluentui/scripts": "^1.0.0",
|
30
|
-
"@types/enzyme": "3.10.3",
|
31
|
-
"@types/enzyme-adapter-react-16": "1.0.3",
|
32
30
|
"@types/react": "16.9.42",
|
33
31
|
"@types/react-test-renderer": "^16.0.0",
|
34
|
-
"enzyme": "~3.10.0",
|
35
|
-
"enzyme-adapter-react-16": "^1.15.0",
|
36
32
|
"react": "16.8.6",
|
37
33
|
"react-test-renderer": "^16.3.0"
|
38
34
|
},
|
39
35
|
"dependencies": {
|
40
|
-
"@fluentui/keyboard-keys": "0.0.0-
|
36
|
+
"@fluentui/keyboard-keys": "0.0.0-nightlyc49127232120220201.1",
|
41
37
|
"tslib": "^2.1.0"
|
42
38
|
},
|
43
39
|
"peerDependencies": {
|
@@ -45,7 +41,6 @@
|
|
45
41
|
"react": ">=16.8.0 <18.0.0"
|
46
42
|
},
|
47
43
|
"beachball": {
|
48
|
-
"tag": "beta",
|
49
44
|
"disallowedChangeTypes": [
|
50
45
|
"major",
|
51
46
|
"minor",
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
export declare type ChangeCallback<TElement extends HTMLElement, TValue, TEvent extends React.SyntheticEvent<TElement> | undefined> = (ev: TEvent, newValue: TValue | undefined) => void;
|
3
|
-
/**
|
4
|
-
* Default value can be a value or an initializer
|
5
|
-
*/
|
6
|
-
declare type DefaultValue<TValue> = TValue | (() => TValue);
|
7
|
-
/**
|
8
|
-
* Hook to manage a value that could be either controlled or uncontrolled, such as a checked state or
|
9
|
-
* text box string.
|
10
|
-
* @param controlledValue - The controlled value passed in the props. This value will always be used if provided,
|
11
|
-
* and the internal state will be updated to reflect it.
|
12
|
-
* @param defaultUncontrolledValue - Initial value for the internal state in the uncontrolled case.
|
13
|
-
* @returns An array of the current value and an updater callback. Like `React.useState`, the updater
|
14
|
-
* callback always has the same identity, and it can take either a new value, or a function which
|
15
|
-
* is passed the previous value and returns the new value.
|
16
|
-
* @see https://reactjs.org/docs/uncontrolled-components.html
|
17
|
-
*/
|
18
|
-
export declare function useControllableValue<TValue, TElement extends HTMLElement>(controlledValue: TValue, defaultUncontrolledValue: DefaultValue<TValue>): Readonly<[TValue, (update: React.SetStateAction<TValue>) => void]>;
|
19
|
-
export declare function useControllableValue<TValue, TElement extends HTMLElement, TEvent extends React.SyntheticEvent<TElement> | undefined>(controlledValue: TValue, defaultUncontrolledValue: DefaultValue<TValue>, onChange: ChangeCallback<TElement, TValue, TEvent>): Readonly<[TValue, (update: React.SetStateAction<TValue>, ev?: React.FormEvent<TElement>) => void]>;
|
20
|
-
export {};
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { useConst } from './useConst';
|
3
|
-
export function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {
|
4
|
-
var _a = React.useState(defaultUncontrolledValue),
|
5
|
-
value = _a[0],
|
6
|
-
setValue = _a[1];
|
7
|
-
|
8
|
-
var isControlled = useIsControlled(controlledValue);
|
9
|
-
var currentValue = isControlled ? controlledValue : value; // Duplicate the current value and onChange in refs so they're accessible from
|
10
|
-
// setValueOrCallOnChange without creating a new callback every time
|
11
|
-
|
12
|
-
var valueRef = React.useRef(currentValue);
|
13
|
-
var onChangeRef = React.useRef(onChange);
|
14
|
-
React.useEffect(function () {
|
15
|
-
valueRef.current = currentValue;
|
16
|
-
onChangeRef.current = onChange;
|
17
|
-
}); // To match the behavior of the setter returned by React.useState, this callback's identity
|
18
|
-
// should never change. This means it MUST NOT directly reference variables that can change.
|
19
|
-
|
20
|
-
var setValueOrCallOnChange = useConst(function () {
|
21
|
-
return function (update, ev) {
|
22
|
-
// Assuming here that TValue is not a function, because a controllable value will typically
|
23
|
-
// be something a user can enter as input
|
24
|
-
var newValue = typeof update === 'function' ? update(valueRef.current) : update;
|
25
|
-
|
26
|
-
if (onChangeRef.current) {
|
27
|
-
onChangeRef.current(ev, newValue);
|
28
|
-
}
|
29
|
-
|
30
|
-
if (!isControlled) {
|
31
|
-
setValue(newValue);
|
32
|
-
}
|
33
|
-
};
|
34
|
-
});
|
35
|
-
return [currentValue, setValueOrCallOnChange];
|
36
|
-
}
|
37
|
-
/**
|
38
|
-
* Helper hook to handle previous comparison of controlled/uncontrolled
|
39
|
-
* Prints an error when isControlled value switches between subsequent renders
|
40
|
-
*/
|
41
|
-
|
42
|
-
var useIsControlled = function (controlledValue) {
|
43
|
-
var isControlled = useConst(controlledValue !== undefined);
|
44
|
-
|
45
|
-
if (process.env.NODE_ENV !== 'production') {
|
46
|
-
// We don't want these warnings in production even though it is against native behaviour
|
47
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
48
|
-
React.useEffect(function () {
|
49
|
-
if (isControlled !== (controlledValue !== undefined)) {
|
50
|
-
var error = new Error();
|
51
|
-
var controlWarning = isControlled ? 'a controlled value to be uncontrolled' : 'an uncontrolled value to be controlled';
|
52
|
-
var undefinedWarning = isControlled ? 'defined to an undefined' : 'undefined to a defined'; // eslint-disable-next-line no-console
|
53
|
-
|
54
|
-
console.error([// Default react error
|
55
|
-
'A component is changing ' + controlWarning + '. This is likely caused by the value', 'changing from ' + undefinedWarning + ' value, which should not happen.', 'Decide between using a controlled or uncontrolled input element for the lifetime of the component.', 'More info: https://reactjs.org/link/controlled-components', error.stack].join(' '));
|
56
|
-
}
|
57
|
-
}, [isControlled, controlledValue]);
|
58
|
-
}
|
59
|
-
|
60
|
-
return isControlled;
|
61
|
-
};
|
62
|
-
//# sourceMappingURL=useControllableValue.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useControllableValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,YAAzB;AAqCA,OAAM,SAAU,oBAAV,CAKJ,eALI,EAMJ,wBANI,EAOJ,QAPI,EAO+C;AAE7C,MAAA,EAAA,GAAoB,KAAK,CAAC,QAAN,CAAmC,wBAAnC,CAApB;AAAA,MAAC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAN;AAAA,MAAQ,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAhB;;AACN,MAAM,YAAY,GAAG,eAAe,CAAC,eAAD,CAApC;AACA,MAAM,YAAY,GAAG,YAAY,GAAG,eAAH,GAAqB,KAAtD,CAJmD,CAMnD;AACA;;AACA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAN,CAAa,YAAb,CAAjB;AACA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAN,CAAa,QAAb,CAApB;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,YAAA;AACd,IAAA,QAAQ,CAAC,OAAT,GAAmB,YAAnB;AACA,IAAA,WAAW,CAAC,OAAZ,GAAsB,QAAtB;AACD,GAHD,EAVmD,CAenD;AACA;;AACA,MAAM,sBAAsB,GAAG,QAAQ,CAAC,YAAA;AAAM,WAAA,UAAC,MAAD,EAAmD,EAAnD,EAA8D;AAC1G;AACA;AACA,UAAM,QAAQ,GAAG,OAAO,MAAP,KAAkB,UAAlB,GAAgC,MAAmB,CAAC,QAAQ,CAAC,OAAV,CAAnD,GAAwE,MAAzF;;AAEA,UAAI,WAAW,CAAC,OAAhB,EAAyB;AACvB,QAAA,WAAW,CAAC,OAAZ,CAAoB,EAApB,EAAyB,QAAzB;AACD;;AAED,UAAI,CAAC,YAAL,EAAmB;AACjB,QAAA,QAAQ,CAAC,QAAD,CAAR;AACD;AAX2C,KAAA;AAY7C,GAZsC,CAAvC;AAcA,SAAO,CAAC,YAAD,EAAe,sBAAf,CAAP;AACD;AAED;;;AAGG;;AACH,IAAM,eAAe,GAAG,UAAS,eAAT,EAAgC;AACtD,MAAM,YAAY,GAAG,QAAQ,CAAU,eAAe,KAAK,SAA9B,CAA7B;;AAEA,MAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA;AACA,IAAA,KAAK,CAAC,SAAN,CAAgB,YAAA;AACd,UAAI,YAAY,MAAM,eAAe,KAAK,SAA1B,CAAhB,EAAsD;AACpD,YAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AAEA,YAAM,cAAc,GAAG,YAAY,GAC/B,uCAD+B,GAE/B,wCAFJ;AAIA,YAAM,gBAAgB,GAAG,YAAY,GAAG,yBAAH,GAA+B,wBAApE,CAPoD,CASpD;;AACA,QAAA,OAAO,CAAC,KAAR,CACE,CACE;AACA,qCAA6B,cAA7B,GAA8C,sCAFhD,EAGE,mBAAmB,gBAAnB,GAAsC,kCAHxC,EAIE,oGAJF,EAKE,2DALF,EAME,KAAK,CAAC,KANR,EAOE,IAPF,CAOO,GAPP,CADF;AAUD;AACF,KAtBD,EAsBG,CAAC,YAAD,EAAe,eAAf,CAtBH;AAuBD;;AAED,SAAO,YAAP;AACD,CAhCD","sourceRoot":""}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
export declare type ChangeCallback<TElement extends HTMLElement, TValue, TEvent extends React.SyntheticEvent<TElement> | undefined> = (ev: TEvent, newValue: TValue | undefined) => void;
|
3
|
-
/**
|
4
|
-
* Default value can be a value or an initializer
|
5
|
-
*/
|
6
|
-
declare type DefaultValue<TValue> = TValue | (() => TValue);
|
7
|
-
/**
|
8
|
-
* Hook to manage a value that could be either controlled or uncontrolled, such as a checked state or
|
9
|
-
* text box string.
|
10
|
-
* @param controlledValue - The controlled value passed in the props. This value will always be used if provided,
|
11
|
-
* and the internal state will be updated to reflect it.
|
12
|
-
* @param defaultUncontrolledValue - Initial value for the internal state in the uncontrolled case.
|
13
|
-
* @returns An array of the current value and an updater callback. Like `React.useState`, the updater
|
14
|
-
* callback always has the same identity, and it can take either a new value, or a function which
|
15
|
-
* is passed the previous value and returns the new value.
|
16
|
-
* @see https://reactjs.org/docs/uncontrolled-components.html
|
17
|
-
*/
|
18
|
-
export declare function useControllableValue<TValue, TElement extends HTMLElement>(controlledValue: TValue, defaultUncontrolledValue: DefaultValue<TValue>): Readonly<[TValue, (update: React.SetStateAction<TValue>) => void]>;
|
19
|
-
export declare function useControllableValue<TValue, TElement extends HTMLElement, TEvent extends React.SyntheticEvent<TElement> | undefined>(controlledValue: TValue, defaultUncontrolledValue: DefaultValue<TValue>, onChange: ChangeCallback<TElement, TValue, TEvent>): Readonly<[TValue, (update: React.SetStateAction<TValue>, ev?: React.FormEvent<TElement>) => void]>;
|
20
|
-
export {};
|
@@ -1,73 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.useControllableValue = void 0;
|
7
|
-
|
8
|
-
var React = /*#__PURE__*/require("react");
|
9
|
-
|
10
|
-
var useConst_1 = /*#__PURE__*/require("./useConst");
|
11
|
-
|
12
|
-
function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {
|
13
|
-
var _a = React.useState(defaultUncontrolledValue),
|
14
|
-
value = _a[0],
|
15
|
-
setValue = _a[1];
|
16
|
-
|
17
|
-
var isControlled = useIsControlled(controlledValue);
|
18
|
-
var currentValue = isControlled ? controlledValue : value; // Duplicate the current value and onChange in refs so they're accessible from
|
19
|
-
// setValueOrCallOnChange without creating a new callback every time
|
20
|
-
|
21
|
-
var valueRef = React.useRef(currentValue);
|
22
|
-
var onChangeRef = React.useRef(onChange);
|
23
|
-
React.useEffect(function () {
|
24
|
-
valueRef.current = currentValue;
|
25
|
-
onChangeRef.current = onChange;
|
26
|
-
}); // To match the behavior of the setter returned by React.useState, this callback's identity
|
27
|
-
// should never change. This means it MUST NOT directly reference variables that can change.
|
28
|
-
|
29
|
-
var setValueOrCallOnChange = useConst_1.useConst(function () {
|
30
|
-
return function (update, ev) {
|
31
|
-
// Assuming here that TValue is not a function, because a controllable value will typically
|
32
|
-
// be something a user can enter as input
|
33
|
-
var newValue = typeof update === 'function' ? update(valueRef.current) : update;
|
34
|
-
|
35
|
-
if (onChangeRef.current) {
|
36
|
-
onChangeRef.current(ev, newValue);
|
37
|
-
}
|
38
|
-
|
39
|
-
if (!isControlled) {
|
40
|
-
setValue(newValue);
|
41
|
-
}
|
42
|
-
};
|
43
|
-
});
|
44
|
-
return [currentValue, setValueOrCallOnChange];
|
45
|
-
}
|
46
|
-
|
47
|
-
exports.useControllableValue = useControllableValue;
|
48
|
-
/**
|
49
|
-
* Helper hook to handle previous comparison of controlled/uncontrolled
|
50
|
-
* Prints an error when isControlled value switches between subsequent renders
|
51
|
-
*/
|
52
|
-
|
53
|
-
var useIsControlled = function (controlledValue) {
|
54
|
-
var isControlled = useConst_1.useConst(controlledValue !== undefined);
|
55
|
-
|
56
|
-
if (process.env.NODE_ENV !== 'production') {
|
57
|
-
// We don't want these warnings in production even though it is against native behaviour
|
58
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
59
|
-
React.useEffect(function () {
|
60
|
-
if (isControlled !== (controlledValue !== undefined)) {
|
61
|
-
var error = new Error();
|
62
|
-
var controlWarning = isControlled ? 'a controlled value to be uncontrolled' : 'an uncontrolled value to be controlled';
|
63
|
-
var undefinedWarning = isControlled ? 'defined to an undefined' : 'undefined to a defined'; // eslint-disable-next-line no-console
|
64
|
-
|
65
|
-
console.error([// Default react error
|
66
|
-
'A component is changing ' + controlWarning + '. This is likely caused by the value', 'changing from ' + undefinedWarning + ' value, which should not happen.', 'Decide between using a controlled or uncontrolled input element for the lifetime of the component.', 'More info: https://reactjs.org/link/controlled-components', error.stack].join(' '));
|
67
|
-
}
|
68
|
-
}, [isControlled, controlledValue]);
|
69
|
-
}
|
70
|
-
|
71
|
-
return isControlled;
|
72
|
-
};
|
73
|
-
//# sourceMappingURL=useControllableValue.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useControllableValue.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,IAAA,UAAA,gBAAA,OAAA,CAAA,YAAA,CAAA;;AAqCA,SAAgB,oBAAhB,CAKE,eALF,EAME,wBANF,EAOE,QAPF,EAOqD;AAE7C,MAAA,EAAA,GAAoB,KAAK,CAAC,QAAN,CAAmC,wBAAnC,CAApB;AAAA,MAAC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAN;AAAA,MAAQ,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAhB;;AACN,MAAM,YAAY,GAAG,eAAe,CAAC,eAAD,CAApC;AACA,MAAM,YAAY,GAAG,YAAY,GAAG,eAAH,GAAqB,KAAtD,CAJmD,CAMnD;AACA;;AACA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAN,CAAa,YAAb,CAAjB;AACA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAN,CAAa,QAAb,CAApB;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,YAAA;AACd,IAAA,QAAQ,CAAC,OAAT,GAAmB,YAAnB;AACA,IAAA,WAAW,CAAC,OAAZ,GAAsB,QAAtB;AACD,GAHD,EAVmD,CAenD;AACA;;AACA,MAAM,sBAAsB,GAAG,UAAA,CAAA,QAAA,CAAS,YAAA;AAAM,WAAA,UAAC,MAAD,EAAmD,EAAnD,EAA8D;AAC1G;AACA;AACA,UAAM,QAAQ,GAAG,OAAO,MAAP,KAAkB,UAAlB,GAAgC,MAAmB,CAAC,QAAQ,CAAC,OAAV,CAAnD,GAAwE,MAAzF;;AAEA,UAAI,WAAW,CAAC,OAAhB,EAAyB;AACvB,QAAA,WAAW,CAAC,OAAZ,CAAoB,EAApB,EAAyB,QAAzB;AACD;;AAED,UAAI,CAAC,YAAL,EAAmB;AACjB,QAAA,QAAQ,CAAC,QAAD,CAAR;AACD;AAX2C,KAAA;AAY7C,GAZ8B,CAA/B;AAcA,SAAO,CAAC,YAAD,EAAe,sBAAf,CAAP;AACD;;AAvCD,OAAA,CAAA,oBAAA,GAAA,oBAAA;AAyCA;;;AAGG;;AACH,IAAM,eAAe,GAAG,UAAS,eAAT,EAAgC;AACtD,MAAM,YAAY,GAAG,UAAA,CAAA,QAAA,CAAkB,eAAe,KAAK,SAAtC,CAArB;;AAEA,MAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA;AACA,IAAA,KAAK,CAAC,SAAN,CAAgB,YAAA;AACd,UAAI,YAAY,MAAM,eAAe,KAAK,SAA1B,CAAhB,EAAsD;AACpD,YAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AAEA,YAAM,cAAc,GAAG,YAAY,GAC/B,uCAD+B,GAE/B,wCAFJ;AAIA,YAAM,gBAAgB,GAAG,YAAY,GAAG,yBAAH,GAA+B,wBAApE,CAPoD,CASpD;;AACA,QAAA,OAAO,CAAC,KAAR,CACE,CACE;AACA,qCAA6B,cAA7B,GAA8C,sCAFhD,EAGE,mBAAmB,gBAAnB,GAAsC,kCAHxC,EAIE,oGAJF,EAKE,2DALF,EAME,KAAK,CAAC,KANR,EAOE,IAPF,CAOO,GAPP,CADF;AAUD;AACF,KAtBD,EAsBG,CAAC,YAAD,EAAe,eAAf,CAtBH;AAuBD;;AAED,SAAO,YAAP;AACD,CAhCD","sourceRoot":""}
|