react-resize-detector-context 0.0.0 → 0.1.2
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 +207 -68
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +118 -104
package/README.md
CHANGED
|
@@ -1,31 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
# React Resize Detector Context
|
|
1
|
+
# ⚛️ React Resize Detector Context
|
|
3
2
|
|
|
4
3
|

|
|
5
4
|
|
|
6
|
-
A lightweight React context that leverages [react-resize-detector](https://github.com/maslianok/react-resize-detector) to detect the
|
|
5
|
+
A lightweight React context that leverages [react-resize-detector](https://github.com/maslianok/react-resize-detector) to dynamically detect the
|
|
6
|
+
current breakpoint based on an element's width. It provides utility functions and helper components to conditionally render content based on
|
|
7
|
+
responsive breakpoints – all fully typed in TypeScript for excellent IDE support. 😎
|
|
7
8
|
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## Table of Contents 📚
|
|
12
|
+
|
|
13
|
+
- [Features](#features)
|
|
14
|
+
- [Requirements](#requirements)
|
|
15
|
+
- [Installation](#installation)
|
|
16
|
+
- [Usage](#usage)
|
|
17
|
+
- [Basic Usage](#basic-usage)
|
|
18
|
+
- [Conditional Rendering with BreakpointConditional](#conditional-rendering-with-breakpointconditional)
|
|
19
|
+
- [Custom Breakpoints Example](#custom-breakpoints-example)
|
|
20
|
+
- [API Documentation](#api-documentation)
|
|
21
|
+
- [BreakpointProvider](#breakpointprovider)
|
|
22
|
+
- [BreakpointConditional](#breakpointconditional)
|
|
23
|
+
- [useBreakpoint Hook](#usebreakpoint-hook)
|
|
24
|
+
- [Available Scripts](#available-scripts)
|
|
25
|
+
- [Contribution Guidelines](#contribution-guidelines)
|
|
26
|
+
- [License](#license)
|
|
27
|
+
|
|
28
|
+
---
|
|
11
29
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
30
|
+
## Features ✨
|
|
31
|
+
|
|
32
|
+
- **Responsive Breakpoint Detection:** Dynamically calculates the active breakpoint from an element’s width.
|
|
33
|
+
- **Custom Breakpoints:** Define standard breakpoints like "XS", "SM", "MD", "LG", "XL" or any custom names (e.g. "Smart", "Mini", etc.).
|
|
34
|
+
- **Utility Methods:**
|
|
35
|
+
- `isAtLeast(breakpoint)`: Returns `true` if the active breakpoint is greater than or equal to the specified breakpoint.
|
|
36
|
+
- `isBelow(breakpoint)`: Returns `true` if the active breakpoint is lower than the specified breakpoint.
|
|
37
|
+
- `valueByBreakpoint(mapping)`: Retrieves a value from a mapping object based on the active breakpoint.
|
|
38
|
+
- **Conditional Rendering:** The `BreakpointConditional` component conditionally renders content based on breakpoint conditions.
|
|
39
|
+
- **Full TypeScript Support:** Enjoy robust type definitions and IDE hints for a seamless development experience.
|
|
21
40
|
|
|
22
41
|
---
|
|
23
42
|
|
|
24
43
|
## Requirements
|
|
25
44
|
|
|
26
|
-
- **Node.js
|
|
27
|
-
- **React
|
|
28
|
-
- **React-DOM
|
|
45
|
+
- **Node.js:** >= 18.0.0
|
|
46
|
+
- **React:** >= 17
|
|
47
|
+
- **React-DOM:** >= 17
|
|
29
48
|
|
|
30
49
|
---
|
|
31
50
|
|
|
@@ -33,7 +52,7 @@ A lightweight React context that leverages [react-resize-detector](https://githu
|
|
|
33
52
|
|
|
34
53
|
Install via npm:
|
|
35
54
|
|
|
36
|
-
```
|
|
55
|
+
``` bash
|
|
37
56
|
npm install react-resize-detector-context
|
|
38
57
|
```
|
|
39
58
|
|
|
@@ -43,11 +62,12 @@ npm install react-resize-detector-context
|
|
|
43
62
|
|
|
44
63
|
### Basic Usage
|
|
45
64
|
|
|
46
|
-
Wrap your component tree with the `BreakpointProvider` and
|
|
65
|
+
Wrap your component tree with the `BreakpointProvider` and supply your breakpoint configuration. Then, use the `useBreakpoint` hook to access context
|
|
66
|
+
values.
|
|
47
67
|
|
|
48
68
|
```typescript
|
|
49
69
|
import React from 'react';
|
|
50
|
-
import { BreakpointProvider, useBreakpoint } from '
|
|
70
|
+
import { BreakpointProvider, useBreakpoint } from 'my-breakpoint-package';
|
|
51
71
|
|
|
52
72
|
const breakpoints = {
|
|
53
73
|
XS: 0,
|
|
@@ -62,25 +82,25 @@ const ResponsiveComponent = () => {
|
|
|
62
82
|
return (
|
|
63
83
|
<div>
|
|
64
84
|
<p>Current width: {width}px</p>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
<p>Active breakpoint: {breakpoint}</p>
|
|
86
|
+
<p>Is at least MD: {isAtLeast('MD') ? '✅' : '❌'}</p>
|
|
87
|
+
<p>
|
|
88
|
+
Mapping: {valueByBreakpoint({
|
|
89
|
+
XS: 'Extra Small',
|
|
90
|
+
SM: 'Small',
|
|
91
|
+
MD: 'Medium',
|
|
92
|
+
LG: 'Large',
|
|
93
|
+
XL: 'Extra Large'
|
|
94
|
+
})}
|
|
95
|
+
</p>
|
|
96
|
+
</div>
|
|
97
|
+
);
|
|
78
98
|
};
|
|
79
99
|
|
|
80
100
|
const App = () => (
|
|
81
101
|
<BreakpointProvider breakpoints={breakpoints}>
|
|
82
102
|
<ResponsiveComponent />
|
|
83
|
-
|
|
103
|
+
</BreakpointProvider>
|
|
84
104
|
);
|
|
85
105
|
|
|
86
106
|
export default App;
|
|
@@ -90,11 +110,11 @@ export default App;
|
|
|
90
110
|
|
|
91
111
|
### Conditional Rendering with BreakpointConditional
|
|
92
112
|
|
|
93
|
-
|
|
113
|
+
Render content only when specific breakpoint conditions are met.
|
|
94
114
|
|
|
95
115
|
```typescript
|
|
96
116
|
import React from 'react';
|
|
97
|
-
import { BreakpointProvider, BreakpointConditional } from '
|
|
117
|
+
import { BreakpointProvider, BreakpointConditional } from 'my-breakpoint-package';
|
|
98
118
|
|
|
99
119
|
const breakpoints = {
|
|
100
120
|
XS: 0,
|
|
@@ -107,18 +127,18 @@ const breakpoints = {
|
|
|
107
127
|
const ConditionalComponent = () => (
|
|
108
128
|
<div>
|
|
109
129
|
<BreakpointConditional isAtLeast="MD">
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
130
|
+
<p>😊 This content is visible from MD and up.</p>
|
|
131
|
+
</BreakpointConditional>
|
|
132
|
+
<BreakpointConditional isBelow="LG">
|
|
133
|
+
<p>🚀 This content is visible for breakpoints below LG.</p>
|
|
134
|
+
</BreakpointConditional>
|
|
135
|
+
</div>
|
|
116
136
|
);
|
|
117
137
|
|
|
118
138
|
const App = () => (
|
|
119
139
|
<BreakpointProvider breakpoints={breakpoints}>
|
|
120
140
|
<ConditionalComponent />
|
|
121
|
-
|
|
141
|
+
</BreakpointProvider>
|
|
122
142
|
);
|
|
123
143
|
|
|
124
144
|
export default App;
|
|
@@ -128,11 +148,11 @@ export default App;
|
|
|
128
148
|
|
|
129
149
|
### Custom Breakpoints Example
|
|
130
150
|
|
|
131
|
-
|
|
151
|
+
Define your own custom breakpoints – for example, using car sizes:
|
|
132
152
|
|
|
133
153
|
```typescript
|
|
134
154
|
import React from 'react';
|
|
135
|
-
import { BreakpointProvider, useBreakpoint } from '
|
|
155
|
+
import { BreakpointProvider, useBreakpoint } from 'my-breakpoint-package';
|
|
136
156
|
|
|
137
157
|
const carBreakpoints = {
|
|
138
158
|
Smart: 0,
|
|
@@ -147,24 +167,116 @@ const CarComponent = () => {
|
|
|
147
167
|
return (
|
|
148
168
|
<div>
|
|
149
169
|
<p>Current width: {width}px</p>
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
170
|
+
<p>Active car size: {breakpoint}</p>
|
|
171
|
+
<p>
|
|
172
|
+
Mapping: {valueByBreakpoint({
|
|
173
|
+
Smart: '🚗 Smart',
|
|
174
|
+
Mini: '🚙 Mini',
|
|
175
|
+
Sedan: '🚘 Sedan',
|
|
176
|
+
SUV: '🚐 SUV',
|
|
177
|
+
Ram: '🚚 Ram'
|
|
178
|
+
})}
|
|
179
|
+
</p>
|
|
180
|
+
</div>
|
|
181
|
+
);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
const App = () => ( <BreakpointProvider breakpoints={carBreakpoints}>
|
|
185
|
+
<CarComponent />
|
|
186
|
+
</BreakpointProvider>
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
export default App;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## API Documentation
|
|
195
|
+
|
|
196
|
+
### BreakpointProvider
|
|
197
|
+
|
|
198
|
+
The `BreakpointProvider` sets up the responsive context by measuring the width of an element and determining the active breakpoint based on the
|
|
199
|
+
provided configuration.
|
|
200
|
+
|
|
201
|
+
| Property | Type | Description | Default |
|
|
202
|
+
|-------------|-----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
|
|
203
|
+
| breakpoints | `Record<Breakpoint, number>` | An object defining your breakpoints. The keys are the breakpoint names (e.g., "XS", "SM", "MD", etc.), and the values are the minimum widths (in pixels). | **Required** |
|
|
204
|
+
| children | `React.ReactNode` | Child components that consume the breakpoint context. | **Required** |
|
|
205
|
+
| targetRef | `{ current: HTMLElement \| null }` (optional) | A reference to the element whose width is observed. If not provided, an internal `<div>` is rendered to attach the ref. | Internal `<div>` is used |
|
|
206
|
+
|
|
207
|
+
**Notes:**
|
|
208
|
+
|
|
209
|
+
- If the measured width is `undefined` or `0`, an error is logged in the console.
|
|
210
|
+
- If duplicate breakpoint values are detected, a warning is logged.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### BreakpointConditional
|
|
215
|
+
|
|
216
|
+
The `BreakpointConditional` component conditionally renders its children based on the active breakpoint.
|
|
217
|
+
|
|
218
|
+
| Property | Type | Description | Default |
|
|
219
|
+
|-----------|-------------------|------------------------------------------------------------------------------------------------------------------|--------------|
|
|
220
|
+
| show | `Breakpoint[]` | An array of breakpoint names. The children are rendered only if the active breakpoint is included in this array. | Not set |
|
|
221
|
+
| isAtLeast | `Breakpoint` | The children are rendered only if the active breakpoint is greater than or equal to this value. | Not set |
|
|
222
|
+
| isBelow | `Breakpoint` | The children are rendered only if the active breakpoint is lower than this value. | Not set |
|
|
223
|
+
| children | `React.ReactNode` | The content to render if the condition is met. | **Required** |
|
|
224
|
+
|
|
225
|
+
*Note:* Multiple conditions can be combined; all specified conditions must be met for the children to render.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### useBreakpoint Hook
|
|
230
|
+
|
|
231
|
+
The `useBreakpoint` hook provides access to the responsive context. It returns an object with the following properties and methods:
|
|
232
|
+
|
|
233
|
+
| Property/Method | Type | Description |
|
|
234
|
+
|----------------------------------------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
235
|
+
| **width** | `number` | The current width (in pixels) of the observed element. |
|
|
236
|
+
| **breakpoint** | `Breakpoint \| null` | The active breakpoint based on the current width. Returns `null` if no breakpoint is determined or if width is undefined. |
|
|
237
|
+
| **breakpoints** | `Record<Breakpoint, number>` | The breakpoint configuration provided to the `BreakpointProvider`. |
|
|
238
|
+
| **isAtLeast(breakpoint: Breakpoint): boolean** | `(breakpoint: Breakpoint) => boolean` | Returns `true` if the active breakpoint is greater than or equal to the specified breakpoint. |
|
|
239
|
+
| **isBelow(breakpoint: Breakpoint): boolean** | `(breakpoint: Breakpoint) => boolean` | Returns `true` if the active breakpoint is lower than the specified breakpoint. |
|
|
240
|
+
| **valueByBreakpoint<T>(values: Partial<Record<Breakpoint, T>>): T \| undefined** | `<T>(values: Partial<Record<Breakpoint, T>>) => T \| undefined` | Returns a value from the provided mapping based on the active breakpoint. If no value is mapped for the current breakpoint, returns `undefined`. |
|
|
241
|
+
|
|
242
|
+
#### Example Usage of `useBreakpoint`
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
import React from 'react';
|
|
246
|
+
import { BreakpointProvider, useBreakpoint } from 'my-breakpoint-package';
|
|
247
|
+
|
|
248
|
+
const breakpoints = {
|
|
249
|
+
XS: 0,
|
|
250
|
+
SM: 500,
|
|
251
|
+
MD: 700,
|
|
252
|
+
LG: 900,
|
|
253
|
+
XL: 1100,
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
const ResponsiveComponent = () => {
|
|
257
|
+
const { width, breakpoint, isAtLeast, valueByBreakpoint } = useBreakpoint();
|
|
258
|
+
return (
|
|
259
|
+
<div>
|
|
260
|
+
<p>Current width: {width}px</p>
|
|
261
|
+
<p>Active breakpoint: {breakpoint}</p>
|
|
262
|
+
<p>Is at least MD: {isAtLeast('MD') ? '✅' : '❌'}</p>
|
|
263
|
+
<p>
|
|
264
|
+
Mapping: {valueByBreakpoint({
|
|
265
|
+
XS: 'Extra Small',
|
|
266
|
+
SM: 'Small',
|
|
267
|
+
MD: 'Medium',
|
|
268
|
+
LG: 'Large',
|
|
269
|
+
XL: 'Extra Large',
|
|
270
|
+
})}
|
|
271
|
+
</p>
|
|
272
|
+
</div>
|
|
273
|
+
);
|
|
162
274
|
};
|
|
163
275
|
|
|
164
276
|
const App = () => (
|
|
165
|
-
<BreakpointProvider breakpoints={
|
|
166
|
-
<
|
|
167
|
-
|
|
277
|
+
<BreakpointProvider breakpoints={breakpoints}>
|
|
278
|
+
<ResponsiveComponent />
|
|
279
|
+
</BreakpointProvider>
|
|
168
280
|
);
|
|
169
281
|
|
|
170
282
|
export default App;
|
|
@@ -172,18 +284,21 @@ export default App;
|
|
|
172
284
|
|
|
173
285
|
---
|
|
174
286
|
|
|
175
|
-
## Available Scripts
|
|
287
|
+
## Available Scripts 🚀
|
|
176
288
|
|
|
177
|
-
|
|
289
|
+
The following scripts are available in this package:
|
|
178
290
|
|
|
179
291
|
- **`npm run build`**
|
|
180
|
-
Builds the package
|
|
292
|
+
Builds the package using `tsup` (bundles and compiles your source code).
|
|
181
293
|
|
|
182
294
|
- **`npm run dev`**
|
|
183
295
|
Runs development mode concurrently with build watch, Storybook, and tests.
|
|
184
296
|
|
|
185
297
|
- **`npm run storybook`**
|
|
186
|
-
Launches Storybook for interactive component demos
|
|
298
|
+
Launches Storybook on port 6006 for interactive component demos.
|
|
299
|
+
|
|
300
|
+
- **`npm run storybook:build`**
|
|
301
|
+
Builds the Storybook static site.
|
|
187
302
|
|
|
188
303
|
- **`npm run test`**
|
|
189
304
|
Runs tests using Vitest.
|
|
@@ -192,15 +307,39 @@ You can use the following scripts from your command line:
|
|
|
192
307
|
Runs tests with coverage.
|
|
193
308
|
|
|
194
309
|
- **`npm run lint`**
|
|
195
|
-
Runs
|
|
310
|
+
Runs lint to check (and optionally fix) your code style.
|
|
196
311
|
|
|
197
312
|
- **`npm run release`**
|
|
198
|
-
Builds and triggers the release process.
|
|
313
|
+
Builds the package and triggers the release process.
|
|
314
|
+
|
|
315
|
+
- **`npm run link:self`**
|
|
316
|
+
Creates a global link for local development/testing.
|
|
199
317
|
|
|
200
318
|
---
|
|
201
319
|
|
|
202
|
-
##
|
|
320
|
+
## Contribution Guidelines 🤝
|
|
321
|
+
|
|
322
|
+
Contributions are very welcome! If you would like to help improve this package, please follow these guidelines:
|
|
323
|
+
|
|
324
|
+
1. **Fork the Repository:**
|
|
325
|
+
Fork this repository to your own GitHub account.
|
|
203
326
|
|
|
204
|
-
|
|
327
|
+
2. **Create a Branch:**
|
|
328
|
+
Create a new branch for your feature or bug fix (e.g., `feature/awesome-improvement`).
|
|
329
|
+
|
|
330
|
+
3. **Make Your Changes:**
|
|
331
|
+
Ensure that your changes follow the coding style and that all tests pass.
|
|
332
|
+
|
|
333
|
+
4. **Submit a Pull Request:**
|
|
334
|
+
Once your changes are ready, open a pull request with a clear description of your modifications and the rationale behind them.
|
|
335
|
+
|
|
336
|
+
5. **Issues:**
|
|
337
|
+
If you find bugs or have suggestions, please open an issue to discuss before starting work on a pull request.
|
|
338
|
+
|
|
339
|
+
Let's build something awesome together! 🚀✨
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## License
|
|
205
344
|
|
|
206
|
-
|
|
345
|
+
This project is licensed under the MIT License.
|
package/dist/index.d.mts
CHANGED
|
@@ -10,7 +10,8 @@ interface BreakpointContextType {
|
|
|
10
10
|
breakpoints: Record<Breakpoint, number>;
|
|
11
11
|
/**
|
|
12
12
|
* Returns `true` if the current breakpoint is greater than or equal to the provided one.
|
|
13
|
-
* E.g.: isAtLeast('MD') returns true if the current breakpoint is MD,
|
|
13
|
+
* E.g.: isAtLeast('MD') returns true if the current breakpoint is MD,
|
|
14
|
+
* LG, or XL.
|
|
14
15
|
*/
|
|
15
16
|
isAtLeast: (size: Breakpoint) => boolean;
|
|
16
17
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ interface BreakpointContextType {
|
|
|
10
10
|
breakpoints: Record<Breakpoint, number>;
|
|
11
11
|
/**
|
|
12
12
|
* Returns `true` if the current breakpoint is greater than or equal to the provided one.
|
|
13
|
-
* E.g.: isAtLeast('MD') returns true if the current breakpoint is MD,
|
|
13
|
+
* E.g.: isAtLeast('MD') returns true if the current breakpoint is MD,
|
|
14
|
+
* LG, or XL.
|
|
14
15
|
*/
|
|
15
16
|
isAtLeast: (size: Breakpoint) => boolean;
|
|
16
17
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var k=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(e,
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9CcmVha3BvaW50Q29udGV4dC50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCAqIGZyb20gXCIuL0JyZWFrcG9pbnRDb250ZXh0XCI7IiwgImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVEZXRlY3RvciB9IGZyb20gJ3JlYWN0LXJlc2l6ZS1kZXRlY3Rvcic7XG5cbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSBzdHJpbmc7IC8vIEFsbG93IGFyYml0cmFyeSBicmVha3BvaW50IG5hbWVzXG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtwb2ludENvbnRleHRUeXBlIHtcbiAgLyoqIEN1cnJlbnQgd2lkdGggb2YgdGhlIG9ic2VydmVkIGVsZW1lbnQgKi9cbiAgd2lkdGg6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCAqL1xuICBicmVha3BvaW50OiBCcmVha3BvaW50IHwgbnVsbDtcbiAgLyoqIERlZmluZWQgYnJlYWtwb2ludHMsIGUuZy4sIHsgWFM6IDAsIFNNOiA1MDAsIE1EOiA3MDAsIExHOiA5MDAsIFhMOiAxMTAwIH0gKi9cbiAgYnJlYWtwb2ludHM6IFJlY29yZDxCcmVha3BvaW50LCBudW1iZXI+O1xuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIG9uZS5cbiAgICogRS5nLjogaXNBdExlYXN0KCdNRCcpIHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIE1ELCBMRywgb3IgWEwuXG4gICAqL1xuICBpc0F0TGVhc3Q6IChzaXplOiBCcmVha3BvaW50KSA9PiBib29sZWFuO1xuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBsZXNzIHRoYW4gdGhlIHByb3ZpZGVkIG9uZS5cbiAgICovXG4gIGlzQmVsb3c6IChzaXplOiBCcmVha3BvaW50KSA9PiBib29sZWFuO1xuICAvKipcbiAgICogUmV0dXJucyBhIHZhbHVlIGZyb20gdGhlIG1hcHBpbmcgYmFzZWQgb24gdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICogRS5nLjogdmFsdWVCeUJyZWFrcG9pbnQoeyBNRDogMywgTEc6IDIgfSkgcmV0dXJucyAzIGZvciBNRCBhbmQgMiBmb3IgTEcuXG4gICAqL1xuICB2YWx1ZUJ5QnJlYWtwb2ludDogPFQ+KHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCwgVD4+KSA9PiBUIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBCcmVha3BvaW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QnJlYWtwb2ludENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4vKipcbiAqIEluc3RlYWQgb2YgdXNpbmcgUmVhY3QuUmVmT2JqZWN0PEhUTUxFbGVtZW50PiAod2hpY2ggaXMgaW52YXJpYW50KSxcbiAqIHdlIHVzZSBhIHN0cnVjdHVyYWwgdHlwZSB0aGF0IGFjY2VwdHMgYW55IG9iamVjdCB3aXRoIGEgYGN1cnJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbGAgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtwb2ludFByb3ZpZGVyUHJvcHMge1xuICAvKiogRGVmaW5lZCBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUmVjb3JkPEJyZWFrcG9pbnQsIG51bWJlcj47XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRoYXQgdXNlIHRoZSBjb250ZXh0ICovXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBPcHRpb25hbDogUHJvdmlkZSBhIHJlZiB0byB0aGUgZWxlbWVudCB0byBiZSBvYnNlcnZlZC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhbiBpbnRlcm5hbCA8ZGl2IHJlZj17Li4ufT4gd2lsbCBiZSByZW5kZXJlZC5cbiAgICovXG4gIHRhcmdldFJlZj86IHsgY3VycmVudDogSFRNTEVsZW1lbnQgfCBudWxsIH07XG59XG5cbi8qKlxuICogQnJlYWtwb2ludFByb3ZpZGVyIFx1RDgzRFx1REU4MFxuICpcbiAqIFVzZXMgcmVhY3QtcmVzaXplLWRldGVjdG9yIHRvIG1lYXN1cmUgdGhlIHdpZHRoIG9mIGFuIGVsZW1lbnQgYW5kIGRldGVybWluZSB0aGUgY3VycmVudCBicmVha3BvaW50XG4gKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYnJlYWtwb2ludHMuIEFkZGl0aW9uYWxseSwgaXQgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgKGlzQXRMZWFzdCwgaXNCZWxvdylcbiAqIGFuZCB2YWx1ZUJ5QnJlYWtwb2ludC5cbiAqXG4gKiBcdTI2QTBcdUZFMEYgKipFZGdlIENhc2VzIC8gV2FybmluZ3M6KipcbiAqIC0gSWYgdGhlIG1lYXN1cmVkIHdpZHRoIGlzIHVuZGVmaW5lZCBvciAwLCBhbiBlcnJvciBpcyBsb2dnZWQgaW4gdGhlIGNvbnNvbGUuXG4gKiAtIElmIHRoZSBjdXJyZW50IHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCAoYW5kIHdpZHRoID4gMCksIGFuIGVycm9yIGlzIGxvZ2dlZC5cbiAqIC0gSWYgZHVwbGljYXRlIGJyZWFrcG9pbnQgdmFsdWVzIGFyZSBkZXRlY3RlZCwgYW4gZXJyb3IgaXMgbG9nZ2VkLlxuICovXG5leHBvcnQgY29uc3QgQnJlYWtwb2ludFByb3ZpZGVyOiBSZWFjdC5GQzxCcmVha3BvaW50UHJvdmlkZXJQcm9wcz4gPSAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA9PiB7XG4gIC8vIElmIGEgdGFyZ2V0UmVmIGlzIHByb3ZpZGVkLCB1c2VSZXNpemVEZXRlY3RvciBvYnNlcnZlcyB0aGF0IGVsZW1lbnQ7IG90aGVyd2lzZSwgYW4gaW50ZXJuYWwgcmVmIGlzIGNyZWF0ZWQuXG4gIGNvbnN0IHsgd2lkdGgsIHJlZiB9ID0gdXNlUmVzaXplRGV0ZWN0b3IoeyB0YXJnZXRSZWYgfSk7XG5cbiAgLy8gU29ydCB0aGUgYnJlYWtwb2ludHMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIHRoZWlyIG51bWVyaWMgdmFsdWVzLiBcdUQ4M0RcdUREMjJcbiAgY29uc3Qgc29ydGVkQnJlYWtwb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnJlYWtwb2ludHMpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIHZhbHVlXSBhcyBbQnJlYWtwb2ludCwgbnVtYmVyXSlcbiAgICAgIC5zb3J0KChbLCBhXSwgWywgYl0pID0+IGEgLSBiKTtcbiAgfSwgW2JyZWFrcG9pbnRzXSk7XG5cbiAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZSBicmVha3BvaW50IHZhbHVlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGR1cGxpY2F0ZXMgPSBzb3J0ZWRCcmVha3BvaW50cy5maWx0ZXIoXG4gICAgICAoWywgdmFsdWVdLCBpbmRleCkgPT5cbiAgICAgICAgc29ydGVkQnJlYWtwb2ludHMuZmluZEluZGV4KChbLCB2XSkgPT4gdiA9PT0gdmFsdWUpICE9PSBpbmRleFxuICAgICk7XG4gICAgaWYgKGR1cGxpY2F0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgJ0JyZWFrcG9pbnRQcm92aWRlcjogRHVwbGljYXRlIGJyZWFrcG9pbnQgdmFsdWVzIGRldGVjdGVkLiBUaGlzIG1heSBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuJ1xuICAgICAgKTtcbiAgICB9XG4gIH0sIFtzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIERldGVybWluZSB0aGUgY3VycmVudCBicmVha3BvaW50IGJhc2VkIG9uIHRoZSBtZWFzdXJlZCB3aWR0aC4gXHVEODNEXHVEQ0NGXG4gIGNvbnN0IGN1cnJlbnRCcmVha3BvaW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgIGxldCBhY3RpdmU6IEJyZWFrcG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBzb3J0ZWRCcmVha3BvaW50cy5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICh3aWR0aCA+PSB2YWx1ZSkge1xuICAgICAgICBhY3RpdmUgPSBrZXk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZTtcbiAgfSwgW3dpZHRoLCBzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIExvZyBlcnJvciBpZiB3aWR0aCBpcyB1bmRlZmluZWQgb3IgMFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnQnJlYWtwb2ludFByb3ZpZGVyOiB3aWR0aCBpcyB1bmRlZmluZWQuIEVuc3VyZSB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbW91bnRlZCBhbmQgdmlzaWJsZS4nXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAod2lkdGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdCcmVha3BvaW50UHJvdmlkZXI6IHdpZHRoIGlzIDAuIFRoZSB0YXJnZXQgZWxlbWVudCBtaWdodCBiZSBoaWRkZW4gb3Igbm90IG1vdW50ZWQgY29ycmVjdGx5LidcbiAgICAgICk7XG4gICAgfVxuICB9LCBbd2lkdGhdKTtcblxuICAvLyBMb2cgZXJyb3IgaWYgd2lkdGggPiAwIGJ1dCBubyBicmVha3BvaW50IGNvdWxkIGJlIGRldGVybWluZWRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiB3aWR0aCA+IDAgJiYgY3VycmVudEJyZWFrcG9pbnQgPT09IG51bGwpIHtcbiAgICAgIGlmIChzb3J0ZWRCcmVha3BvaW50cy5sZW5ndGggPiAwICYmIHdpZHRoIDwgc29ydGVkQnJlYWtwb2ludHNbMF1bMV0pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgQnJlYWtwb2ludFByb3ZpZGVyOiBUaGUgY3VycmVudCB3aWR0aCAoJHt3aWR0aH1weCkgaXMgbGVzcyB0aGFuIHRoZSBzbWFsbGVzdCBicmVha3BvaW50IHZhbHVlICgke3NvcnRlZEJyZWFrcG9pbnRzWzBdWzFdfXB4KS4gQ29uc2lkZXIgaW5jbHVkaW5nIGEgYnJlYWtwb2ludCB3aXRoIGEgdmFsdWUgb2YgMCB0byBjb3ZlciBhbGwgY2FzZXMuYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnQnJlYWtwb2ludFByb3ZpZGVyOiBObyBicmVha3BvaW50IGNvdWxkIGJlIGRldGVybWluZWQgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi4gQ2hlY2sgeW91ciBicmVha3BvaW50cyBvYmplY3QuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3dpZHRoLCBjdXJyZW50QnJlYWtwb2ludCwgc29ydGVkQnJlYWtwb2ludHNdKTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpbmRleCBvZiBhIGJyZWFrcG9pbnQgaW4gdGhlIHNvcnRlZCBhcnJheS4gXHVEODNEXHVERDBEXG4gIGNvbnN0IGdldEJyZWFrcG9pbnRJbmRleCA9IChzaXplOiBCcmVha3BvaW50KTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gc29ydGVkQnJlYWtwb2ludHMuZmluZEluZGV4KChba2V5XSkgPT4ga2V5ID09PSBzaXplKTtcbiAgfTtcblxuICBjb25zdCBpc0F0TGVhc3QgPSAoc2l6ZTogQnJlYWtwb2ludCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghY3VycmVudEJyZWFrcG9pbnQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZ2V0QnJlYWtwb2ludEluZGV4KGN1cnJlbnRCcmVha3BvaW50KSA+PSBnZXRCcmVha3BvaW50SW5kZXgoc2l6ZSk7XG4gIH07XG5cbiAgY29uc3QgaXNCZWxvdyA9IChzaXplOiBCcmVha3BvaW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBnZXRCcmVha3BvaW50SW5kZXgoY3VycmVudEJyZWFrcG9pbnQpIDwgZ2V0QnJlYWtwb2ludEluZGV4KHNpemUpO1xuICB9O1xuXG4gIC8vIERlZmluZSB2YWx1ZUJ5QnJlYWtwb2ludCBhcyBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHRvIGF2b2lkIEpTWCBwYXJzaW5nIGlzc3VlcyBpbiBUU1ggZmlsZXMuIFx1RDgzQ1x1REZBOFxuICBmdW5jdGlvbiB2YWx1ZUJ5QnJlYWtwb2ludDxUPih2YWx1ZXM6IFBhcnRpYWw8UmVjb3JkPEJyZWFrcG9pbnQsIFQ+Pik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghY3VycmVudEJyZWFrcG9pbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHZhbHVlc1tjdXJyZW50QnJlYWtwb2ludF07XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCcmVha3BvaW50Q29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgd2lkdGg6IHdpZHRoID8/IDAsXG4gICAgICAgIGJyZWFrcG9pbnQ6IGN1cnJlbnRCcmVha3BvaW50LFxuICAgICAgICBicmVha3BvaW50cyxcbiAgICAgICAgaXNBdExlYXN0LFxuICAgICAgICBpc0JlbG93LFxuICAgICAgICB2YWx1ZUJ5QnJlYWtwb2ludCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgey8qIElmIGEgdGFyZ2V0UmVmIGlzIHByb3ZpZGVkLCB0aGF0IHJlZiBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGFuIGV4dGVybmFsIGVsZW1lbnQuXG4gICAgICAgICAgT3RoZXJ3aXNlLCByZW5kZXIgYSA8ZGl2IHJlZj17cmVmfT4gdG8gb2JzZXJ2ZSBpdHMgc2l6ZS4gXHVEODNEXHVEQ0QwICovfVxuICAgICAge3RhcmdldFJlZiA/IGNoaWxkcmVuIDogPGRpdiByZWY9e3JlZn0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L0JyZWFrcG9pbnRDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuLyoqXG4gKiBIb29rIGZvciBhY2Nlc3NpbmcgdGhlIEJyZWFrcG9pbnRDb250ZXh0LlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHVzZWQgb3V0c2lkZSBvZiBhIEJyZWFrcG9pbnRQcm92aWRlci4gXHUyNkEwXHVGRTBGXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VCcmVha3BvaW50ID0gKCk6IEJyZWFrcG9pbnRDb250ZXh0VHlwZSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEJyZWFrcG9pbnRDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VCcmVha3BvaW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBCcmVha3BvaW50UHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG5cbmludGVyZmFjZSBCcmVha3BvaW50Q29uZGl0aW9uYWxQcm9wcyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBicmVha3BvaW50cyBhdCB3aGljaCB0aGUgY2hpbGRyZW4gc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICogRS5nLjogWydNRCcsICdMRyddIHJlbmRlcnMgY2hpbGRyZW4gb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIE1EIG9yIExHLlxuICAgKi9cbiAgc2hvdz86IEJyZWFrcG9pbnRbXTtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZHJlbiBhcmUgZGlzcGxheWVkIG9ubHkgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBhdCBsZWFzdCB0aGlzIHZhbHVlLlxuICAgKiBFLmcuOiBpc0F0TGVhc3Q9XCJNRFwiIHJlbmRlcnMgY2hpbGRyZW4gZm9yIE1ELCBMRywgb3IgWEwuXG4gICAqL1xuICBpc0F0TGVhc3Q/OiBCcmVha3BvaW50O1xuICAvKipcbiAgICogVGhlIGNoaWxkcmVuIGFyZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGJlbG93IHRoaXMgdmFsdWUuXG4gICAqL1xuICBpc0JlbG93PzogQnJlYWtwb2ludDtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50Q29uZGl0aW9uYWwgXHVEODNDXHVERkE4XG4gKlxuICogUmVuZGVycyBpdHMgY2hpbGRyZW4gb25seSBpZiBhbGwgcHJvdmlkZWQgY29uZGl0aW9ucyByZWdhcmRpbmcgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBhcmUgbWV0LlxuICovXG5leHBvcnQgY29uc3QgQnJlYWtwb2ludENvbmRpdGlvbmFsOiBSZWFjdC5GQzxCcmVha3BvaW50Q29uZGl0aW9uYWxQcm9wcz4gPSAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRMZWFzdDogbWluU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVsb3c6IG1heFNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA9PiB7XG4gIGNvbnN0IHsgYnJlYWtwb2ludCwgaXNBdExlYXN0OiBjb250ZXh0SXNBdExlYXN0LCBpc0JlbG93OiBjb250ZXh0SXNCZWxvdyB9ID0gdXNlQnJlYWtwb2ludCgpO1xuXG4gIGxldCBzaG91bGRSZW5kZXIgPSB0cnVlO1xuXG4gIGlmIChzaG93ICYmIGJyZWFrcG9pbnQpIHtcbiAgICBzaG91bGRSZW5kZXIgPSBzaG91bGRSZW5kZXIgJiYgc2hvdy5pbmNsdWRlcyhicmVha3BvaW50KTtcbiAgfVxuICBpZiAobWluU2l6ZSkge1xuICAgIHNob3VsZFJlbmRlciA9IHNob3VsZFJlbmRlciAmJiBjb250ZXh0SXNBdExlYXN0KG1pblNpemUpO1xuICB9XG4gIGlmIChtYXhTaXplKSB7XG4gICAgc2hvdWxkUmVuZGVyID0gc2hvdWxkUmVuZGVyICYmIGNvbnRleHRJc0JlbG93KG1heFNpemUpO1xuICB9XG5cbiAgcmV0dXJuIHNob3VsZFJlbmRlciA/IDw+e2NoaWxkcmVufTwvPiA6IG51bGw7XG59OyJdLAogICJtYXBwaW5ncyI6ICJ5YUFBQSxJQUFBQSxFQUFBLEdBQUFDLEVBQUFELEVBQUEsMkJBQUFFLEVBQUEsdUJBQUFDLEVBQUEsa0JBQUFD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QWtCLFFBQVNDLENBQWUsRUFBSVIsRUFBYyxFQUV2RlMsRUFBZSxHQUVuQixPQUFJTixHQUFRRyxJQUNWRyxFQUFlQSxHQUFnQk4sRUFBSyxTQUFTRyxDQUFVLEdBRXJERixJQUNGSyxFQUFlQSxHQUFnQkYsRUFBaUJILENBQU8sR0FFckRDLElBQ0ZJLEVBQWVBLEdBQWdCRCxFQUFlSCxDQUFPLEdBR2hESSxLQUFlLG1CQUFHLFNBQUE1QixFQUFTLEVBQU0sSUFDMUMiLAogICJuYW1lcyI6IFsiaW5kZXhfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJCcmVha3BvaW50Q29uZGl0aW9uYWwiLCAiQnJlYWtwb2ludFByb3ZpZGVyIiwgInVzZUJyZWFrcG9pbnQiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcmVhY3RfcmVzaXplX2RldGVjdG9yIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJCcmVha3BvaW50Q29udGV4dCIsICJCcmVha3BvaW50UHJvdmlkZXIiLCAiYnJlYWtwb2ludHMiLCAiY2hpbGRyZW4iLCAidGFyZ2V0UmVmIiwgIndpZHRoIiwgInJlZiIsICJzb3J0ZWRCcmVha3BvaW50cyIsICJrZXkiLCAidmFsdWUiLCAiYSIsICJiIiwgImluZGV4IiwgInYiLCAiY3VycmVudEJyZWFrcG9pbnQiLCAiYWN0aXZlIiwgImdldEJyZWFrcG9pbnRJbmRleCIsICJzaXplIiwgImlzQXRMZWFzdCIsICJpc0JlbG93IiwgInZhbHVlQnlCcmVha3BvaW50IiwgInZhbHVlcyIsICJ1c2VCcmVha3BvaW50IiwgImNvbnRleHQiLCAiQnJlYWtwb2ludENvbmRpdGlvbmFsIiwgInNob3ciLCAibWluU2l6ZSIsICJtYXhTaXplIiwgImJyZWFrcG9pbnQiLCAiY29udGV4dElzQXRMZWFzdCIsICJjb250ZXh0SXNCZWxvdyIsICJzaG91bGRSZW5kZXIiXQp9Cg==
|
|
1
|
+
"use strict";var k=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(e,t)=>{for(var s in t)k(e,s,{get:t[s],enumerable:!0})},T=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of w(t))!C.call(e,p)&&p!==s&&k(e,p,{get:()=>t[p],enumerable:!(o=P(t,p))||o.enumerable});return e};var y=e=>T(k({},"__esModule",{value:!0}),e);var A={};R(A,{BreakpointConditional:()=>g,BreakpointProvider:()=>L,useBreakpoint:()=>b});module.exports=y(A);var d=require("react"),B=require("react-resize-detector"),u=require("react/jsx-runtime"),f=(0,d.createContext)(void 0),L=({breakpoints:e,children:t,targetRef:s})=>{let{width:o,ref:p}=(0,B.useResizeDetector)({targetRef:s}),n=(0,d.useMemo)(()=>Object.entries(e).map(([r,l])=>[r,l]).sort(([,r],[,l])=>r-l),[e]);(0,d.useEffect)(()=>{n.filter(([,l],c)=>n.findIndex(([,m])=>m===l)!==c).length>0&&console.error("BreakpointProvider: Duplicate breakpoint values detected. This may lead to unexpected behavior.")},[n]);let a=(0,d.useMemo)(()=>{if(o===void 0)return null;let r=null;return n.forEach(([l,c])=>{o>=c&&(r=l)}),r},[o,n]);(0,d.useEffect)(()=>{o!==void 0&&o>0&&a===null&&(n.length>0&&o<n[0][1]?console.error(`BreakpointProvider: The current width (${o}px) is less than the smallest breakpoint value (${n[0][1]}px). Consider including a breakpoint with a value of 0 to cover all cases.`):console.error("BreakpointProvider: No breakpoint could be determined from the provided configuration. Check your breakpoints object."))},[o,a,n]);let i=r=>n.findIndex(([l])=>l===r),v=r=>a?i(a)>=i(r):!1,x=r=>a?i(a)<i(r):!1;function h(r){if(a)return r[a]}return(0,u.jsx)(f.Provider,{value:{width:o??0,breakpoint:a,breakpoints:e,isAtLeast:v,isBelow:x,valueByBreakpoint:h},children:s?t:(0,u.jsx)("div",{ref:p,children:t})})},b=()=>{let e=(0,d.useContext)(f);if(!e)throw new Error("useBreakpoint must be used within a BreakpointProvider");return e},g=({show:e,isAtLeast:t,isBelow:s,children:o})=>{let{breakpoint:p,isAtLeast:n,isBelow:a}=b(),i=!0;return e&&p&&(i=i&&e.includes(p)),t&&(i=i&&n(t)),s&&(i=i&&a(s)),i?(0,u.jsx)(u.Fragment,{children:o}):null};0&&(module.exports={BreakpointConditional,BreakpointProvider,useBreakpoint});
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9CcmVha3BvaW50Q29udGV4dC50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCAqIGZyb20gJy4vQnJlYWtwb2ludENvbnRleHQnO1xuIiwgImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVEZXRlY3RvciB9IGZyb20gJ3JlYWN0LXJlc2l6ZS1kZXRlY3Rvcic7XG5cbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSBzdHJpbmc7IC8vIEFsbG93IGFyYml0cmFyeSBicmVha3BvaW50IG5hbWVzXG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtwb2ludENvbnRleHRUeXBlIHtcbiAgLyoqIEN1cnJlbnQgd2lkdGggb2YgdGhlIG9ic2VydmVkIGVsZW1lbnQgKi9cbiAgd2lkdGg6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCAqL1xuICBicmVha3BvaW50OiBCcmVha3BvaW50IHwgbnVsbDtcbiAgLyoqIERlZmluZWQgYnJlYWtwb2ludHMsIGUuZy4sIHsgWFM6IDAsIFNNOiA1MDAsIE1EOiA3MDAsIExHOiA5MDAsIFhMOiAxMTAwIH0gKi9cbiAgYnJlYWtwb2ludHM6IFJlY29yZDxCcmVha3BvaW50LCBudW1iZXI+O1xuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIG9uZS5cbiAgICogRS5nLjogaXNBdExlYXN0KCdNRCcpIHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIE1ELFxuICAgKiBMRywgb3IgWEwuXG4gICAqL1xuICBpc0F0TGVhc3Q6IChzaXplOiBCcmVha3BvaW50KSA9PiBib29sZWFuO1xuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBsZXNzIHRoYW4gdGhlIHByb3ZpZGVkIG9uZS5cbiAgICovXG4gIGlzQmVsb3c6IChzaXplOiBCcmVha3BvaW50KSA9PiBib29sZWFuO1xuICAvKipcbiAgICogUmV0dXJucyBhIHZhbHVlIGZyb20gdGhlIG1hcHBpbmcgYmFzZWQgb24gdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICogRS5nLjogdmFsdWVCeUJyZWFrcG9pbnQoeyBNRDogMywgTEc6IDIgfSkgcmV0dXJucyAzIGZvciBNRCBhbmQgMiBmb3IgTEcuXG4gICAqL1xuICB2YWx1ZUJ5QnJlYWtwb2ludDogPFQ+KHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCwgVD4+KSA9PiBUIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBCcmVha3BvaW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QnJlYWtwb2ludENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4vKipcbiAqIEluc3RlYWQgb2YgdXNpbmcgUmVhY3QuUmVmT2JqZWN0PEhUTUxFbGVtZW50PiAod2hpY2ggaXMgaW52YXJpYW50KSxcbiAqIHdlIHVzZSBhIHN0cnVjdHVyYWwgdHlwZSB0aGF0IGFjY2VwdHMgYW55IG9iamVjdCB3aXRoIGEgYGN1cnJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbGAgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtwb2ludFByb3ZpZGVyUHJvcHMge1xuICAvKiogRGVmaW5lZCBicmVha3BvaW50cyAqL1xuICBicmVha3BvaW50czogUmVjb3JkPEJyZWFrcG9pbnQsIG51bWJlcj47XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRoYXQgdXNlIHRoZSBjb250ZXh0ICovXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBPcHRpb25hbDogUHJvdmlkZSBhIHJlZiB0byB0aGUgZWxlbWVudCB0byBiZSBvYnNlcnZlZC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhbiBpbnRlcm5hbCA8ZGl2IHJlZj17Li4ufT4gd2lsbCBiZSByZW5kZXJlZC5cbiAgICovXG4gIHRhcmdldFJlZj86IHsgY3VycmVudDogSFRNTEVsZW1lbnQgfCBudWxsIH07XG59XG5cbi8qKlxuICogQnJlYWtwb2ludFByb3ZpZGVyIFx1RDgzRFx1REU4MFxuICpcbiAqIFVzZXMgcmVhY3QtcmVzaXplLWRldGVjdG9yIHRvIG1lYXN1cmUgdGhlIHdpZHRoIG9mIGFuIGVsZW1lbnQgYW5kIGRldGVybWluZSB0aGUgY3VycmVudCBicmVha3BvaW50XG4gKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYnJlYWtwb2ludHMuIEFkZGl0aW9uYWxseSwgaXQgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgKGlzQXRMZWFzdCwgaXNCZWxvdylcbiAqIGFuZCB2YWx1ZUJ5QnJlYWtwb2ludC5cbiAqXG4gKiBcdTI2QTBcdUZFMEYgKipFZGdlIENhc2VzIC8gV2FybmluZ3M6KipcbiAqIC0gSWYgdGhlIG1lYXN1cmVkIHdpZHRoIGlzIHVuZGVmaW5lZCBvciAwLCBhbiBlcnJvciBpcyBsb2dnZWQgaW4gdGhlIGNvbnNvbGUuXG4gKiAtIElmIHRoZSBjdXJyZW50IHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCAoYW5kIHdpZHRoID4gMCksIGFuIGVycm9yIGlzIGxvZ2dlZC5cbiAqIC0gSWYgZHVwbGljYXRlIGJyZWFrcG9pbnQgdmFsdWVzIGFyZSBkZXRlY3RlZCwgYW4gZXJyb3IgaXMgbG9nZ2VkLlxuICovXG5leHBvcnQgY29uc3QgQnJlYWtwb2ludFByb3ZpZGVyOiBSZWFjdC5GQzxCcmVha3BvaW50UHJvdmlkZXJQcm9wcz4gPSAoeyBicmVha3BvaW50cywgY2hpbGRyZW4sIHRhcmdldFJlZiB9KSA9PiB7XG4gIC8vIElmIGEgdGFyZ2V0UmVmIGlzIHByb3ZpZGVkLCB1c2VSZXNpemVEZXRlY3RvciBvYnNlcnZlcyB0aGF0IGVsZW1lbnQ7IG90aGVyd2lzZSwgYW4gaW50ZXJuYWwgcmVmIGlzIGNyZWF0ZWQuXG4gIGNvbnN0IHsgd2lkdGgsIHJlZiB9ID0gdXNlUmVzaXplRGV0ZWN0b3IoeyB0YXJnZXRSZWYgfSk7XG5cbiAgLy8gU29ydCB0aGUgYnJlYWtwb2ludHMgaW4gYXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIHRoZWlyIG51bWVyaWMgdmFsdWVzLiBcdUQ4M0RcdUREMjJcbiAgY29uc3Qgc29ydGVkQnJlYWtwb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnJlYWtwb2ludHMpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIHZhbHVlXSBhcyBbQnJlYWtwb2ludCwgbnVtYmVyXSlcbiAgICAgIC5zb3J0KChbLCBhXSwgWywgYl0pID0+IGEgLSBiKTtcbiAgfSwgW2JyZWFrcG9pbnRzXSk7XG5cbiAgLyoqIENoZWNrIGZvciBkdXBsaWNhdGUgYnJlYWtwb2ludCB2YWx1ZXMgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkdXBsaWNhdGVzID0gc29ydGVkQnJlYWtwb2ludHMuZmlsdGVyKFxuICAgICAgKFssIHZhbHVlXSwgaW5kZXgpID0+IHNvcnRlZEJyZWFrcG9pbnRzLmZpbmRJbmRleCgoWywgdl0pID0+IHYgPT09IHZhbHVlKSAhPT0gaW5kZXhcbiAgICApO1xuICAgIGlmIChkdXBsaWNhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0JyZWFrcG9pbnRQcm92aWRlcjogRHVwbGljYXRlIGJyZWFrcG9pbnQgdmFsdWVzIGRldGVjdGVkLiBUaGlzIG1heSBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuJyk7XG4gICAgfVxuICB9LCBbc29ydGVkQnJlYWtwb2ludHNdKTtcblxuICAvLyBEZXRlcm1pbmUgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBiYXNlZCBvbiB0aGUgbWVhc3VyZWQgd2lkdGguIFx1RDgzRFx1RENDRlxuICBjb25zdCBjdXJyZW50QnJlYWtwb2ludCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgYWN0aXZlOiBCcmVha3BvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgc29ydGVkQnJlYWtwb2ludHMuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAod2lkdGggPj0gdmFsdWUpIHtcbiAgICAgICAgYWN0aXZlID0ga2V5O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmU7XG4gIH0sIFt3aWR0aCwgc29ydGVkQnJlYWtwb2ludHNdKTtcblxuICAvLyBMb2cgZXJyb3IgaWYgd2lkdGggPiAwIGJ1dCBubyBicmVha3BvaW50IGNvdWxkIGJlIGRldGVybWluZWRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiB3aWR0aCA+IDAgJiYgY3VycmVudEJyZWFrcG9pbnQgPT09IG51bGwpIHtcbiAgICAgIGlmIChzb3J0ZWRCcmVha3BvaW50cy5sZW5ndGggPiAwICYmIHdpZHRoIDwgc29ydGVkQnJlYWtwb2ludHNbMF1bMV0pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgQnJlYWtwb2ludFByb3ZpZGVyOiBUaGUgY3VycmVudCB3aWR0aCAoJHt3aWR0aH1weCkgaXMgbGVzcyB0aGFuIHRoZSBzbWFsbGVzdCBicmVha3BvaW50IHZhbHVlICgke3NvcnRlZEJyZWFrcG9pbnRzWzBdWzFdfXB4KS4gQ29uc2lkZXIgaW5jbHVkaW5nIGEgYnJlYWtwb2ludCB3aXRoIGEgdmFsdWUgb2YgMCB0byBjb3ZlciBhbGwgY2FzZXMuYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnQnJlYWtwb2ludFByb3ZpZGVyOiBObyBicmVha3BvaW50IGNvdWxkIGJlIGRldGVybWluZWQgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi4gQ2hlY2sgeW91ciBicmVha3BvaW50cyBvYmplY3QuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3dpZHRoLCBjdXJyZW50QnJlYWtwb2ludCwgc29ydGVkQnJlYWtwb2ludHNdKTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpbmRleCBvZiBhIGJyZWFrcG9pbnQgaW4gdGhlIHNvcnRlZCBhcnJheS4gXHVEODNEXHVERDBEXG4gIGNvbnN0IGdldEJyZWFrcG9pbnRJbmRleCA9IChzaXplOiBCcmVha3BvaW50KTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gc29ydGVkQnJlYWtwb2ludHMuZmluZEluZGV4KChba2V5XSkgPT4ga2V5ID09PSBzaXplKTtcbiAgfTtcblxuICBjb25zdCBpc0F0TGVhc3QgPSAoc2l6ZTogQnJlYWtwb2ludCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghY3VycmVudEJyZWFrcG9pbnQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZ2V0QnJlYWtwb2ludEluZGV4KGN1cnJlbnRCcmVha3BvaW50KSA+PSBnZXRCcmVha3BvaW50SW5kZXgoc2l6ZSk7XG4gIH07XG5cbiAgY29uc3QgaXNCZWxvdyA9IChzaXplOiBCcmVha3BvaW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBnZXRCcmVha3BvaW50SW5kZXgoY3VycmVudEJyZWFrcG9pbnQpIDwgZ2V0QnJlYWtwb2ludEluZGV4KHNpemUpO1xuICB9O1xuXG4gIC8vIERlZmluZSB2YWx1ZUJ5QnJlYWtwb2ludCBhcyBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHRvIGF2b2lkIEpTWCBwYXJzaW5nIGlzc3VlcyBpbiBUU1ggZmlsZXMuIFx1RDgzQ1x1REZBOFxuICBmdW5jdGlvbiB2YWx1ZUJ5QnJlYWtwb2ludDxUPih2YWx1ZXM6IFBhcnRpYWw8UmVjb3JkPEJyZWFrcG9pbnQsIFQ+Pik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghY3VycmVudEJyZWFrcG9pbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHZhbHVlc1tjdXJyZW50QnJlYWtwb2ludF07XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCcmVha3BvaW50Q29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgd2lkdGg6IHdpZHRoID8/IDAsXG4gICAgICAgIGJyZWFrcG9pbnQ6IGN1cnJlbnRCcmVha3BvaW50LFxuICAgICAgICBicmVha3BvaW50cyxcbiAgICAgICAgaXNBdExlYXN0LFxuICAgICAgICBpc0JlbG93LFxuICAgICAgICB2YWx1ZUJ5QnJlYWtwb2ludCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgey8qIElmIGEgdGFyZ2V0UmVmIGlzIHByb3ZpZGVkLCB0aGF0IHJlZiBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGFuIGV4dGVybmFsIGVsZW1lbnQuXG4gICAgICAgICAgT3RoZXJ3aXNlLCByZW5kZXIgYSA8ZGl2IHJlZj17cmVmfT4gdG8gb2JzZXJ2ZSBpdHMgc2l6ZS4gXHVEODNEXHVEQ0QwICovfVxuICAgICAge3RhcmdldFJlZiA/IGNoaWxkcmVuIDogPGRpdiByZWY9e3JlZn0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L0JyZWFrcG9pbnRDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuLyoqXG4gKiBIb29rIGZvciBhY2Nlc3NpbmcgdGhlIEJyZWFrcG9pbnRDb250ZXh0LlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHVzZWQgb3V0c2lkZSBvZiBhIEJyZWFrcG9pbnRQcm92aWRlci4gXHUyNkEwXHVGRTBGXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VCcmVha3BvaW50ID0gKCk6IEJyZWFrcG9pbnRDb250ZXh0VHlwZSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEJyZWFrcG9pbnRDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VCcmVha3BvaW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBCcmVha3BvaW50UHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG5cbmludGVyZmFjZSBCcmVha3BvaW50Q29uZGl0aW9uYWxQcm9wcyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBicmVha3BvaW50cyBhdCB3aGljaCB0aGUgY2hpbGRyZW4gc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICogRS5nLjogWydNRCcsICdMRyddIHJlbmRlcnMgY2hpbGRyZW4gb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIE1EIG9yIExHLlxuICAgKi9cbiAgc2hvdz86IEJyZWFrcG9pbnRbXTtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZHJlbiBhcmUgZGlzcGxheWVkIG9ubHkgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyBhdCBsZWFzdCB0aGlzIHZhbHVlLlxuICAgKiBFLmcuOiBpc0F0TGVhc3Q9XCJNRFwiIHJlbmRlcnMgY2hpbGRyZW4gZm9yIE1ELCBMRywgb3IgWEwuXG4gICAqL1xuICBpc0F0TGVhc3Q/OiBCcmVha3BvaW50O1xuICAvKipcbiAgICogVGhlIGNoaWxkcmVuIGFyZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGJlbG93IHRoaXMgdmFsdWUuXG4gICAqL1xuICBpc0JlbG93PzogQnJlYWtwb2ludDtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50Q29uZGl0aW9uYWwgXHVEODNDXHVERkE4XG4gKlxuICogUmVuZGVycyBpdHMgY2hpbGRyZW4gb25seSBpZiBhbGwgcHJvdmlkZWQgY29uZGl0aW9ucyByZWdhcmRpbmcgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBhcmUgbWV0LlxuICovXG5leHBvcnQgY29uc3QgQnJlYWtwb2ludENvbmRpdGlvbmFsOiBSZWFjdC5GQzxCcmVha3BvaW50Q29uZGl0aW9uYWxQcm9wcz4gPSAoe1xuICBzaG93LFxuICBpc0F0TGVhc3Q6IG1pblNpemUsXG4gIGlzQmVsb3c6IG1heFNpemUsXG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCB7IGJyZWFrcG9pbnQsIGlzQXRMZWFzdDogY29udGV4dElzQXRMZWFzdCwgaXNCZWxvdzogY29udGV4dElzQmVsb3cgfSA9IHVzZUJyZWFrcG9pbnQoKTtcblxuICBsZXQgc2hvdWxkUmVuZGVyID0gdHJ1ZTtcblxuICBpZiAoc2hvdyAmJiBicmVha3BvaW50KSB7XG4gICAgc2hvdWxkUmVuZGVyID0gc2hvdWxkUmVuZGVyICYmIHNob3cuaW5jbHVkZXMoYnJlYWtwb2ludCk7XG4gIH1cbiAgaWYgKG1pblNpemUpIHtcbiAgICBzaG91bGRSZW5kZXIgPSBzaG91bGRSZW5kZXIgJiYgY29udGV4dElzQXRMZWFzdChtaW5TaXplKTtcbiAgfVxuICBpZiAobWF4U2l6ZSkge1xuICAgIHNob3VsZFJlbmRlciA9IHNob3VsZFJlbmRlciAmJiBjb250ZXh0SXNCZWxvdyhtYXhTaXplKTtcbiAgfVxuXG4gIHJldHVybiBzaG91bGRSZW5kZXIgPyA8PntjaGlsZHJlbn08Lz4gOiBudWxsO1xufTsiXSwKICAibWFwcGluZ3MiOiAieWFBQUEsSUFBQUEsRUFBQSxHQUFBQyxFQUFBRCxFQUFBLDJCQUFBRSxFQUFBLHVCQUFBQyxFQUFBLGtCQUFBQyxJQUFBLGVBQUFDLEVBQUFMLEdDQUEsSUFBQU0sRUFBcUUsaUJBQ3JFQyxFQUFrQyxpQ0E0SUpDLEVBQUEsNkJBaEh4QkMsS0FBb0IsaUJBQWlELE1BQVMsRUE4QnZFQyxFQUF3RCxDQUFDLENBQUUsWUFBQUMsRUFBYSxTQUFBQyxFQUFVLFVBQUFDLENBQVUsSUFBTSxDQUU3RyxHQUFNLENBQUUsTUFBQUMsRUFBTyxJQUFBQyxDQUFJLEtBQUkscUJBQWtCLENBQUUsVUFBQUYsQ0FBVSxDQUFDLEVBR2hERyxLQUFvQixXQUFRLElBQ3pCLE9BQU8sUUFBUUwsQ0FBVyxFQUM5QixJQUFJLENBQUMsQ0FBQ00sRUFBS0MsQ0FBSyxJQUFNLENBQUNELEVBQUtDLENBQUssQ0FBeUIsRUFDMUQsS0FBSyxDQUFDLENBQUMsQ0FBRUMsQ0FBQyxFQUFHLENBQUMsQ0FBRUMsQ0FBQyxJQUFNRCxFQUFJQyxDQUFDLEVBQzlCLENBQUNULENBQVcsQ0FBQyxLQUdoQixhQUFVLElBQU0sQ0FDS0ssRUFBa0IsT0FDbkMsQ0FBQyxDQUFDLENBQUVFLENBQUssRUFBR0csSUFBVUwsRUFBa0IsVUFBVSxDQUFDLENBQUMsQ0FBRU0sQ0FBQyxJQUFNQSxJQUFNSixDQUFLLElBQU1HLENBQ2hGLEVBQ2UsT0FBUyxHQUN0QixRQUFRLE1BQU0saUdBQWlHLENBRW5ILEVBQUcsQ0FBQ0wsQ0FBaUIsQ0FBQyxFQUd0QixJQUFNTyxLQUFvQixXQUFRLElBQU0sQ0FDdEMsR0FBSVQsSUFBVSxPQUFXLE9BQU8sS0FDaEMsSUFBSVUsRUFBNEIsS0FDaEMsT0FBQVIsRUFBa0IsUUFBUSxDQUFDLENBQUNDLEVBQUtDLENBQUssSUFBTSxDQUN0Q0osR0FBU0ksSUFDWE0sRUFBU1AsRUFFYixDQUFDLEVBQ01PLENBQ1QsRUFBRyxDQUFDVixFQUFPRSxDQUFpQixDQUFDLEtBRzdCLGFBQVUsSUFBTSxDQUNWRixJQUFVLFFBQWFBLEVBQVEsR0FBS1MsSUFBc0IsT0FDeERQLEVBQWtCLE9BQVMsR0FBS0YsRUFBUUUsRUFBa0IsQ0FBQyxFQUFFLENBQUMsRUFDaEUsUUFBUSxNQUNOLDBDQUEwQ0YsQ0FBSyxtREFBbURFLEVBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsNEVBQzNILEVBRUEsUUFBUSxNQUNOLHVIQUNGLEVBR04sRUFBRyxDQUFDRixFQUFPUyxFQUFtQlAsQ0FBaUIsQ0FBQyxFQUdoRCxJQUFNUyxFQUFzQkMsR0FDbkJWLEVBQWtCLFVBQVUsQ0FBQyxDQUFDQyxDQUFHLElBQU1BLElBQVFTLENBQUksRUFHdERDLEVBQWFELEdBQ1pILEVBQ0VFLEVBQW1CRixDQUFpQixHQUFLRSxFQUFtQkMsQ0FBSSxFQUR4QyxHQUkzQkUsRUFBV0YsR0FDVkgsRUFDRUUsRUFBbUJGLENBQWlCLEVBQUlFLEVBQW1CQyxDQUFJLEVBRHZDLEdBS2pDLFNBQVNHLEVBQXFCQyxFQUF1RCxDQUNuRixHQUFLUCxFQUNMLE9BQU9PLEVBQU9QLENBQWlCLENBQ2pDLENBRUEsU0FDRSxPQUFDZCxFQUFrQixTQUFsQixDQUNDLE1BQU8sQ0FDTCxNQUFPSyxHQUFTLEVBQ2hCLFdBQVlTLEVBQ1osWUFBQVosRUFDQSxVQUFBZ0IsRUFDQSxRQUFBQyxFQUNBLGtCQUFBQyxDQUNGLEVBSUMsU0FBQWhCLEVBQVlELEtBQVcsT0FBQyxPQUFJLElBQUtHLEVBQU0sU0FBQUgsRUFBUyxFQUNuRCxDQUVKLEVBTWFtQixFQUFnQixJQUE2QixDQUN4RCxJQUFNQyxLQUFVLGNBQVd2QixDQUFpQixFQUM1QyxHQUFJLENBQUN1QixFQUNILE1BQU0sSUFBSSxNQUFNLHdEQUF3RCxFQUUxRSxPQUFPQSxDQUNULEVBeUJhQyxFQUE4RCxDQUFDLENBQzFFLEtBQUFDLEVBQ0EsVUFBV0MsRUFDWCxRQUFTQyxFQUNULFNBQUF4QixDQUNGLElBQU0sQ0FDSixHQUFNLENBQUUsV0FBQXlCLEVBQVksVUFBV0MsRUFBa0IsUUFBU0MsQ0FBZSxFQUFJUixFQUFjLEVBRXZGUyxFQUFlLEdBRW5CLE9BQUlOLEdBQVFHLElBQ1ZHLEVBQWVBLEdBQWdCTixFQUFLLFNBQVNHLENBQVUsR0FFckRGLElBQ0ZLLEVBQWVBLEdBQWdCRixFQUFpQkgsQ0FBTyxHQUVyREMsSUFDRkksRUFBZUEsR0FBZ0JELEVBQWVILENBQU8sR0FHaERJLEtBQWUsbUJBQUcsU0FBQTVCLEVBQVMsRUFBTSxJQUMxQyIsCiAgIm5hbWVzIjogWyJzcmNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJCcmVha3BvaW50Q29uZGl0aW9uYWwiLCAiQnJlYWtwb2ludFByb3ZpZGVyIiwgInVzZUJyZWFrcG9pbnQiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcmVhY3RfcmVzaXplX2RldGVjdG9yIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJCcmVha3BvaW50Q29udGV4dCIsICJCcmVha3BvaW50UHJvdmlkZXIiLCAiYnJlYWtwb2ludHMiLCAiY2hpbGRyZW4iLCAidGFyZ2V0UmVmIiwgIndpZHRoIiwgInJlZiIsICJzb3J0ZWRCcmVha3BvaW50cyIsICJrZXkiLCAidmFsdWUiLCAiYSIsICJiIiwgImluZGV4IiwgInYiLCAiY3VycmVudEJyZWFrcG9pbnQiLCAiYWN0aXZlIiwgImdldEJyZWFrcG9pbnRJbmRleCIsICJzaXplIiwgImlzQXRMZWFzdCIsICJpc0JlbG93IiwgInZhbHVlQnlCcmVha3BvaW50IiwgInZhbHVlcyIsICJ1c2VCcmVha3BvaW50IiwgImNvbnRleHQiLCAiQnJlYWtwb2ludENvbmRpdGlvbmFsIiwgInNob3ciLCAibWluU2l6ZSIsICJtYXhTaXplIiwgImJyZWFrcG9pbnQiLCAiY29udGV4dElzQXRMZWFzdCIsICJjb250ZXh0SXNCZWxvdyIsICJzaG91bGRSZW5kZXIiXQp9Cg==
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createContext as
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0JyZWFrcG9pbnRDb250ZXh0LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJlc2l6ZURldGVjdG9yIH0gZnJvbSAncmVhY3QtcmVzaXplLWRldGVjdG9yJztcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9IHN0cmluZzsgLy8gQWxsb3cgYXJiaXRyYXJ5IGJyZWFrcG9pbnQgbmFtZXNcblxuZXhwb3J0IGludGVyZmFjZSBCcmVha3BvaW50Q29udGV4dFR5cGUge1xuICAvKiogQ3VycmVudCB3aWR0aCBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudCAqL1xuICB3aWR0aDogbnVtYmVyO1xuICAvKiogQ3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50ICovXG4gIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQgfCBudWxsO1xuICAvKiogRGVmaW5lZCBicmVha3BvaW50cywgZS5nLiwgeyBYUzogMCwgU006IDUwMCwgTUQ6IDcwMCwgTEc6IDkwMCwgWEw6IDExMDAgfSAqL1xuICBicmVha3BvaW50czogUmVjb3JkPEJyZWFrcG9pbnQsIG51bWJlcj47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgb25lLlxuICAgKiBFLmcuOiBpc0F0TGVhc3QoJ01EJykgcmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgTUQsIExHLCBvciBYTC5cbiAgICovXG4gIGlzQXRMZWFzdDogKHNpemU6IEJyZWFrcG9pbnQpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGxlc3MgdGhhbiB0aGUgcHJvdmlkZWQgb25lLlxuICAgKi9cbiAgaXNCZWxvdzogKHNpemU6IEJyZWFrcG9pbnQpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmFsdWUgZnJvbSB0aGUgbWFwcGluZyBiYXNlZCBvbiB0aGUgY3VycmVudCBicmVha3BvaW50LlxuICAgKiBFLmcuOiB2YWx1ZUJ5QnJlYWtwb2ludCh7IE1EOiAzLCBMRzogMiB9KSByZXR1cm5zIDMgZm9yIE1EIGFuZCAyIGZvciBMRy5cbiAgICovXG4gIHZhbHVlQnlCcmVha3BvaW50OiA8VD4odmFsdWVzOiBQYXJ0aWFsPFJlY29yZDxCcmVha3BvaW50LCBUPj4pID0+IFQgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IEJyZWFrcG9pbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxCcmVha3BvaW50Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogSW5zdGVhZCBvZiB1c2luZyBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQ+ICh3aGljaCBpcyBpbnZhcmlhbnQpLFxuICogd2UgdXNlIGEgc3RydWN0dXJhbCB0eXBlIHRoYXQgYWNjZXB0cyBhbnkgb2JqZWN0IHdpdGggYSBgY3VycmVudDogSFRNTEVsZW1lbnQgfCBudWxsYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmVha3BvaW50UHJvdmlkZXJQcm9wcyB7XG4gIC8qKiBEZWZpbmVkIGJyZWFrcG9pbnRzICovXG4gIGJyZWFrcG9pbnRzOiBSZWNvcmQ8QnJlYWtwb2ludCwgbnVtYmVyPjtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdGhhdCB1c2UgdGhlIGNvbnRleHQgKi9cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBQcm92aWRlIGEgcmVmIHRvIHRoZSBlbGVtZW50IHRvIGJlIG9ic2VydmVkLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGFuIGludGVybmFsIDxkaXYgcmVmPXsuLi59PiB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKi9cbiAgdGFyZ2V0UmVmPzogeyBjdXJyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfTtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50UHJvdmlkZXIgXHVEODNEXHVERTgwXG4gKlxuICogVXNlcyByZWFjdC1yZXNpemUtZGV0ZWN0b3IgdG8gbWVhc3VyZSB0aGUgd2lkdGggb2YgYW4gZWxlbWVudCBhbmQgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGJyZWFrcG9pbnRcbiAqIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBicmVha3BvaW50cy4gQWRkaXRpb25hbGx5LCBpdCBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyAoaXNBdExlYXN0LCBpc0JlbG93KVxuICogYW5kIHZhbHVlQnlCcmVha3BvaW50LlxuICpcbiAqIFx1MjZBMFx1RkUwRiAqKkVkZ2UgQ2FzZXMgLyBXYXJuaW5nczoqKlxuICogLSBJZiB0aGUgbWVhc3VyZWQgd2lkdGggaXMgdW5kZWZpbmVkIG9yIDAsIGFuIGVycm9yIGlzIGxvZ2dlZCBpbiB0aGUgY29uc29sZS5cbiAqIC0gSWYgdGhlIGN1cnJlbnQgd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBzbWFsbGVzdCBicmVha3BvaW50IChhbmQgd2lkdGggPiAwKSwgYW4gZXJyb3IgaXMgbG9nZ2VkLlxuICogLSBJZiBkdXBsaWNhdGUgYnJlYWtwb2ludCB2YWx1ZXMgYXJlIGRldGVjdGVkLCBhbiBlcnJvciBpcyBsb2dnZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmVha3BvaW50UHJvdmlkZXI6IFJlYWN0LkZDPEJyZWFrcG9pbnRQcm92aWRlclByb3BzPiA9ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgLy8gSWYgYSB0YXJnZXRSZWYgaXMgcHJvdmlkZWQsIHVzZVJlc2l6ZURldGVjdG9yIG9ic2VydmVzIHRoYXQgZWxlbWVudDsgb3RoZXJ3aXNlLCBhbiBpbnRlcm5hbCByZWYgaXMgY3JlYXRlZC5cbiAgY29uc3QgeyB3aWR0aCwgcmVmIH0gPSB1c2VSZXNpemVEZXRlY3Rvcih7IHRhcmdldFJlZiB9KTtcblxuICAvLyBTb3J0IHRoZSBicmVha3BvaW50cyBpbiBhc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gdGhlaXIgbnVtZXJpYyB2YWx1ZXMuIFx1RDgzRFx1REQyMlxuICBjb25zdCBzb3J0ZWRCcmVha3BvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhicmVha3BvaW50cylcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdmFsdWVdIGFzIFtCcmVha3BvaW50LCBudW1iZXJdKVxuICAgICAgLnNvcnQoKFssIGFdLCBbLCBiXSkgPT4gYSAtIGIpO1xuICB9LCBbYnJlYWtwb2ludHNdKTtcblxuICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIGJyZWFrcG9pbnQgdmFsdWVzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZHVwbGljYXRlcyA9IHNvcnRlZEJyZWFrcG9pbnRzLmZpbHRlcihcbiAgICAgIChbLCB2YWx1ZV0sIGluZGV4KSA9PlxuICAgICAgICBzb3J0ZWRCcmVha3BvaW50cy5maW5kSW5kZXgoKFssIHZdKSA9PiB2ID09PSB2YWx1ZSkgIT09IGluZGV4XG4gICAgKTtcbiAgICBpZiAoZHVwbGljYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnQnJlYWtwb2ludFByb3ZpZGVyOiBEdXBsaWNhdGUgYnJlYWtwb2ludCB2YWx1ZXMgZGV0ZWN0ZWQuIFRoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvci4nXG4gICAgICApO1xuICAgIH1cbiAgfSwgW3NvcnRlZEJyZWFrcG9pbnRzXSk7XG5cbiAgLy8gRGV0ZXJtaW5lIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgYmFzZWQgb24gdGhlIG1lYXN1cmVkIHdpZHRoLiBcdUQ4M0RcdURDQ0ZcbiAgY29uc3QgY3VycmVudEJyZWFrcG9pbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG4gICAgbGV0IGFjdGl2ZTogQnJlYWtwb2ludCB8IG51bGwgPSBudWxsO1xuICAgIHNvcnRlZEJyZWFrcG9pbnRzLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHdpZHRoID49IHZhbHVlKSB7XG4gICAgICAgIGFjdGl2ZSA9IGtleTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWN0aXZlO1xuICB9LCBbd2lkdGgsIHNvcnRlZEJyZWFrcG9pbnRzXSk7XG5cbiAgLy8gTG9nIGVycm9yIGlmIHdpZHRoIGlzIHVuZGVmaW5lZCBvciAwXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdCcmVha3BvaW50UHJvdmlkZXI6IHdpZHRoIGlzIHVuZGVmaW5lZC4gRW5zdXJlIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBtb3VudGVkIGFuZCB2aXNpYmxlLidcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh3aWR0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgJ0JyZWFrcG9pbnRQcm92aWRlcjogd2lkdGggaXMgMC4gVGhlIHRhcmdldCBlbGVtZW50IG1pZ2h0IGJlIGhpZGRlbiBvciBub3QgbW91bnRlZCBjb3JyZWN0bHkuJ1xuICAgICAgKTtcbiAgICB9XG4gIH0sIFt3aWR0aF0pO1xuXG4gIC8vIExvZyBlcnJvciBpZiB3aWR0aCA+IDAgYnV0IG5vIGJyZWFrcG9pbnQgY291bGQgYmUgZGV0ZXJtaW5lZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3aWR0aCAhPT0gdW5kZWZpbmVkICYmIHdpZHRoID4gMCAmJiBjdXJyZW50QnJlYWtwb2ludCA9PT0gbnVsbCkge1xuICAgICAgaWYgKHNvcnRlZEJyZWFrcG9pbnRzLmxlbmd0aCA+IDAgJiYgd2lkdGggPCBzb3J0ZWRCcmVha3BvaW50c1swXVsxXSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBCcmVha3BvaW50UHJvdmlkZXI6IFRoZSBjdXJyZW50IHdpZHRoICgke3dpZHRofXB4KSBpcyBsZXNzIHRoYW4gdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQgdmFsdWUgKCR7c29ydGVkQnJlYWtwb2ludHNbMF1bMV19cHgpLiBDb25zaWRlciBpbmNsdWRpbmcgYSBicmVha3BvaW50IHdpdGggYSB2YWx1ZSBvZiAwIHRvIGNvdmVyIGFsbCBjYXNlcy5gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdCcmVha3BvaW50UHJvdmlkZXI6IE5vIGJyZWFrcG9pbnQgY291bGQgYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uLiBDaGVjayB5b3VyIGJyZWFrcG9pbnRzIG9iamVjdC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbd2lkdGgsIGN1cnJlbnRCcmVha3BvaW50LCBzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZGV4IG9mIGEgYnJlYWtwb2ludCBpbiB0aGUgc29ydGVkIGFycmF5LiBcdUQ4M0RcdUREMERcbiAgY29uc3QgZ2V0QnJlYWtwb2ludEluZGV4ID0gKHNpemU6IEJyZWFrcG9pbnQpOiBudW1iZXIgPT4ge1xuICAgIHJldHVybiBzb3J0ZWRCcmVha3BvaW50cy5maW5kSW5kZXgoKFtrZXldKSA9PiBrZXkgPT09IHNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGlzQXRMZWFzdCA9IChzaXplOiBCcmVha3BvaW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBnZXRCcmVha3BvaW50SW5kZXgoY3VycmVudEJyZWFrcG9pbnQpID49IGdldEJyZWFrcG9pbnRJbmRleChzaXplKTtcbiAgfTtcblxuICBjb25zdCBpc0JlbG93ID0gKHNpemU6IEJyZWFrcG9pbnQpOiBib29sZWFuID0+IHtcbiAgICBpZiAoIWN1cnJlbnRCcmVha3BvaW50KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGdldEJyZWFrcG9pbnRJbmRleChjdXJyZW50QnJlYWtwb2ludCkgPCBnZXRCcmVha3BvaW50SW5kZXgoc2l6ZSk7XG4gIH07XG5cbiAgLy8gRGVmaW5lIHZhbHVlQnlCcmVha3BvaW50IGFzIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gdG8gYXZvaWQgSlNYIHBhcnNpbmcgaXNzdWVzIGluIFRTWCBmaWxlcy4gXHVEODNDXHVERkE4XG4gIGZ1bmN0aW9uIHZhbHVlQnlCcmVha3BvaW50PFQ+KHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCwgVD4+KTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdmFsdWVzW2N1cnJlbnRCcmVha3BvaW50XTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEJyZWFrcG9pbnRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICB3aWR0aDogd2lkdGggPz8gMCxcbiAgICAgICAgYnJlYWtwb2ludDogY3VycmVudEJyZWFrcG9pbnQsXG4gICAgICAgIGJyZWFrcG9pbnRzLFxuICAgICAgICBpc0F0TGVhc3QsXG4gICAgICAgIGlzQmVsb3csXG4gICAgICAgIHZhbHVlQnlCcmVha3BvaW50LFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7LyogSWYgYSB0YXJnZXRSZWYgaXMgcHJvdmlkZWQsIHRoYXQgcmVmIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gYW4gZXh0ZXJuYWwgZWxlbWVudC5cbiAgICAgICAgICBPdGhlcndpc2UsIHJlbmRlciBhIDxkaXYgcmVmPXtyZWZ9PiB0byBvYnNlcnZlIGl0cyBzaXplLiBcdUQ4M0RcdURDRDAgKi99XG4gICAgICB7dGFyZ2V0UmVmID8gY2hpbGRyZW4gOiA8ZGl2IHJlZj17cmVmfT57Y2hpbGRyZW59PC9kaXY+fVxuICAgIDwvQnJlYWtwb2ludENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG4vKipcbiAqIEhvb2sgZm9yIGFjY2Vzc2luZyB0aGUgQnJlYWtwb2ludENvbnRleHQuXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdXNlZCBvdXRzaWRlIG9mIGEgQnJlYWtwb2ludFByb3ZpZGVyLiBcdTI2QTBcdUZFMEZcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUJyZWFrcG9pbnQgPSAoKTogQnJlYWtwb2ludENvbnRleHRUeXBlID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQnJlYWtwb2ludENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUJyZWFrcG9pbnQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEJyZWFrcG9pbnRQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuaW50ZXJmYWNlIEJyZWFrcG9pbnRDb25kaXRpb25hbFByb3BzIHtcbiAgLyoqXG4gICAqIEFycmF5IG9mIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHRoZSBjaGlsZHJlbiBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKiBFLmcuOiBbJ01EJywgJ0xHJ10gcmVuZGVycyBjaGlsZHJlbiBvbmx5IGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgTUQgb3IgTEcuXG4gICAqL1xuICBzaG93PzogQnJlYWtwb2ludFtdO1xuICAvKipcbiAgICogVGhlIGNoaWxkcmVuIGFyZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGF0IGxlYXN0IHRoaXMgdmFsdWUuXG4gICAqIEUuZy46IGlzQXRMZWFzdD1cIk1EXCIgcmVuZGVycyBjaGlsZHJlbiBmb3IgTUQsIExHLCBvciBYTC5cbiAgICovXG4gIGlzQXRMZWFzdD86IEJyZWFrcG9pbnQ7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGRyZW4gYXJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgYmVsb3cgdGhpcyB2YWx1ZS5cbiAgICovXG4gIGlzQmVsb3c/OiBCcmVha3BvaW50O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG4vKipcbiAqIEJyZWFrcG9pbnRDb25kaXRpb25hbCBcdUQ4M0NcdURGQThcbiAqXG4gKiBSZW5kZXJzIGl0cyBjaGlsZHJlbiBvbmx5IGlmIGFsbCBwcm92aWRlZCBjb25kaXRpb25zIHJlZ2FyZGluZyB0aGUgY3VycmVudCBicmVha3BvaW50IGFyZSBtZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmVha3BvaW50Q29uZGl0aW9uYWw6IFJlYWN0LkZDPEJyZWFrcG9pbnRDb25kaXRpb25hbFByb3BzPiA9ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdExlYXN0OiBtaW5TaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNCZWxvdzogbWF4U2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgY29uc3QgeyBicmVha3BvaW50LCBpc0F0TGVhc3Q6IGNvbnRleHRJc0F0TGVhc3QsIGlzQmVsb3c6IGNvbnRleHRJc0JlbG93IH0gPSB1c2VCcmVha3BvaW50KCk7XG5cbiAgbGV0IHNob3VsZFJlbmRlciA9IHRydWU7XG5cbiAgaWYgKHNob3cgJiYgYnJlYWtwb2ludCkge1xuICAgIHNob3VsZFJlbmRlciA9IHNob3VsZFJlbmRlciAmJiBzaG93LmluY2x1ZGVzKGJyZWFrcG9pbnQpO1xuICB9XG4gIGlmIChtaW5TaXplKSB7XG4gICAgc2hvdWxkUmVuZGVyID0gc2hvdWxkUmVuZGVyICYmIGNvbnRleHRJc0F0TGVhc3QobWluU2l6ZSk7XG4gIH1cbiAgaWYgKG1heFNpemUpIHtcbiAgICBzaG91bGRSZW5kZXIgPSBzaG91bGRSZW5kZXIgJiYgY29udGV4dElzQmVsb3cobWF4U2l6ZSk7XG4gIH1cblxuICByZXR1cm4gc2hvdWxkUmVuZGVyID8gPD57Y2hpbGRyZW59PC8+IDogbnVsbDtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBZ0IsaUJBQUFBLEVBQWUsY0FBQUMsRUFBWSxXQUFBQyxFQUFTLGFBQUFDLE1BQWlCLFFBQ3JFLE9BQVMscUJBQUFDLE1BQXlCLHdCQStKSixPQTRETixZQUFBQyxFQTVETSxPQUFBQyxNQUFBLG9CQXBJOUIs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SUFDVkcsRUFBZUEsR0FBZ0JOLEVBQUssU0FBU0csQ0FBVSxHQUVyREYsSUFDRkssRUFBZUEsR0FBZ0JGLEVBQWlCSCxDQUFPLEdBRXJEQyxJQUNGSSxFQUFlQSxHQUFnQkQsRUFBZUgsQ0FBTyxHQUdoREksRUFBZWhDLEVBQUFELEVBQUEsQ0FBRyxTQUFBSyxFQUFTLEVBQU0sSUFDMUMiLAogICJuYW1lcyI6IFsiY3JlYXRlQ29udGV4dCIsICJ1c2VDb250ZXh0IiwgInVzZU1lbW8iLCAidXNlRWZmZWN0IiwgInVzZVJlc2l6ZURldGVjdG9yIiwgIkZyYWdtZW50IiwgImpzeCIsICJCcmVha3BvaW50Q29udGV4dCIsICJCcmVha3BvaW50UHJvdmlkZXIiLCAiYnJlYWtwb2ludHMiLCAiY2hpbGRyZW4iLCAidGFyZ2V0UmVmIiwgIndpZHRoIiwgInJlZiIsICJzb3J0ZWRCcmVha3BvaW50cyIsICJrZXkiLCAidmFsdWUiLCAiYSIsICJiIiwgImluZGV4IiwgInYiLCAiY3VycmVudEJyZWFrcG9pbnQiLCAiYWN0aXZlIiwgImdldEJyZWFrcG9pbnRJbmRleCIsICJzaXplIiwgImlzQXRMZWFzdCIsICJpc0JlbG93IiwgInZhbHVlQnlCcmVha3BvaW50IiwgInZhbHVlcyIsICJ1c2VCcmVha3BvaW50IiwgImNvbnRleHQiLCAiQnJlYWtwb2ludENvbmRpdGlvbmFsIiwgInNob3ciLCAibWluU2l6ZSIsICJtYXhTaXplIiwgImJyZWFrcG9pbnQiLCAiY29udGV4dElzQXRMZWFzdCIsICJjb250ZXh0SXNCZWxvdyIsICJzaG91bGRSZW5kZXIiXQp9Cg==
|
|
1
|
+
import{createContext as h,useContext as m,useMemo as c,useEffect as k}from"react";import{useResizeDetector as P}from"react-resize-detector";import{Fragment as C,jsx as u}from"react/jsx-runtime";var B=h(void 0),L=({breakpoints:i,children:s,targetRef:p})=>{let{width:o,ref:d}=P({targetRef:p}),t=c(()=>Object.entries(i).map(([e,a])=>[e,a]).sort(([,e],[,a])=>e-a),[i]);k(()=>{t.filter(([,a],l)=>t.findIndex(([,x])=>x===a)!==l).length>0&&console.error("BreakpointProvider: Duplicate breakpoint values detected. This may lead to unexpected behavior.")},[t]);let n=c(()=>{if(o===void 0)return null;let e=null;return t.forEach(([a,l])=>{o>=l&&(e=a)}),e},[o,t]);k(()=>{o!==void 0&&o>0&&n===null&&(t.length>0&&o<t[0][1]?console.error(`BreakpointProvider: The current width (${o}px) is less than the smallest breakpoint value (${t[0][1]}px). Consider including a breakpoint with a value of 0 to cover all cases.`):console.error("BreakpointProvider: No breakpoint could be determined from the provided configuration. Check your breakpoints object."))},[o,n,t]);let r=e=>t.findIndex(([a])=>a===e),f=e=>n?r(n)>=r(e):!1,b=e=>n?r(n)<r(e):!1;function v(e){if(n)return e[n]}return u(B.Provider,{value:{width:o??0,breakpoint:n,breakpoints:i,isAtLeast:f,isBelow:b,valueByBreakpoint:v},children:p?s:u("div",{ref:d,children:s})})},w=()=>{let i=m(B);if(!i)throw new Error("useBreakpoint must be used within a BreakpointProvider");return i},g=({show:i,isAtLeast:s,isBelow:p,children:o})=>{let{breakpoint:d,isAtLeast:t,isBelow:n}=w(),r=!0;return i&&d&&(r=r&&i.includes(d)),s&&(r=r&&t(s)),p&&(r=r&&n(p)),r?u(C,{children:o}):null};export{g as BreakpointConditional,L as BreakpointProvider,w as useBreakpoint};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0JyZWFrcG9pbnRDb250ZXh0LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJlc2l6ZURldGVjdG9yIH0gZnJvbSAncmVhY3QtcmVzaXplLWRldGVjdG9yJztcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9IHN0cmluZzsgLy8gQWxsb3cgYXJiaXRyYXJ5IGJyZWFrcG9pbnQgbmFtZXNcblxuZXhwb3J0IGludGVyZmFjZSBCcmVha3BvaW50Q29udGV4dFR5cGUge1xuICAvKiogQ3VycmVudCB3aWR0aCBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudCAqL1xuICB3aWR0aDogbnVtYmVyO1xuICAvKiogQ3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50ICovXG4gIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQgfCBudWxsO1xuICAvKiogRGVmaW5lZCBicmVha3BvaW50cywgZS5nLiwgeyBYUzogMCwgU006IDUwMCwgTUQ6IDcwMCwgTEc6IDkwMCwgWEw6IDExMDAgfSAqL1xuICBicmVha3BvaW50czogUmVjb3JkPEJyZWFrcG9pbnQsIG51bWJlcj47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgb25lLlxuICAgKiBFLmcuOiBpc0F0TGVhc3QoJ01EJykgcmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgTUQsXG4gICAqIExHLCBvciBYTC5cbiAgICovXG4gIGlzQXRMZWFzdDogKHNpemU6IEJyZWFrcG9pbnQpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGxlc3MgdGhhbiB0aGUgcHJvdmlkZWQgb25lLlxuICAgKi9cbiAgaXNCZWxvdzogKHNpemU6IEJyZWFrcG9pbnQpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmFsdWUgZnJvbSB0aGUgbWFwcGluZyBiYXNlZCBvbiB0aGUgY3VycmVudCBicmVha3BvaW50LlxuICAgKiBFLmcuOiB2YWx1ZUJ5QnJlYWtwb2ludCh7IE1EOiAzLCBMRzogMiB9KSByZXR1cm5zIDMgZm9yIE1EIGFuZCAyIGZvciBMRy5cbiAgICovXG4gIHZhbHVlQnlCcmVha3BvaW50OiA8VD4odmFsdWVzOiBQYXJ0aWFsPFJlY29yZDxCcmVha3BvaW50LCBUPj4pID0+IFQgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IEJyZWFrcG9pbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxCcmVha3BvaW50Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogSW5zdGVhZCBvZiB1c2luZyBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQ+ICh3aGljaCBpcyBpbnZhcmlhbnQpLFxuICogd2UgdXNlIGEgc3RydWN0dXJhbCB0eXBlIHRoYXQgYWNjZXB0cyBhbnkgb2JqZWN0IHdpdGggYSBgY3VycmVudDogSFRNTEVsZW1lbnQgfCBudWxsYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmVha3BvaW50UHJvdmlkZXJQcm9wcyB7XG4gIC8qKiBEZWZpbmVkIGJyZWFrcG9pbnRzICovXG4gIGJyZWFrcG9pbnRzOiBSZWNvcmQ8QnJlYWtwb2ludCwgbnVtYmVyPjtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdGhhdCB1c2UgdGhlIGNvbnRleHQgKi9cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBQcm92aWRlIGEgcmVmIHRvIHRoZSBlbGVtZW50IHRvIGJlIG9ic2VydmVkLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGFuIGludGVybmFsIDxkaXYgcmVmPXsuLi59PiB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKi9cbiAgdGFyZ2V0UmVmPzogeyBjdXJyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfTtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50UHJvdmlkZXIgXHVEODNEXHVERTgwXG4gKlxuICogVXNlcyByZWFjdC1yZXNpemUtZGV0ZWN0b3IgdG8gbWVhc3VyZSB0aGUgd2lkdGggb2YgYW4gZWxlbWVudCBhbmQgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGJyZWFrcG9pbnRcbiAqIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBicmVha3BvaW50cy4gQWRkaXRpb25hbGx5LCBpdCBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyAoaXNBdExlYXN0LCBpc0JlbG93KVxuICogYW5kIHZhbHVlQnlCcmVha3BvaW50LlxuICpcbiAqIFx1MjZBMFx1RkUwRiAqKkVkZ2UgQ2FzZXMgLyBXYXJuaW5nczoqKlxuICogLSBJZiB0aGUgbWVhc3VyZWQgd2lkdGggaXMgdW5kZWZpbmVkIG9yIDAsIGFuIGVycm9yIGlzIGxvZ2dlZCBpbiB0aGUgY29uc29sZS5cbiAqIC0gSWYgdGhlIGN1cnJlbnQgd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBzbWFsbGVzdCBicmVha3BvaW50IChhbmQgd2lkdGggPiAwKSwgYW4gZXJyb3IgaXMgbG9nZ2VkLlxuICogLSBJZiBkdXBsaWNhdGUgYnJlYWtwb2ludCB2YWx1ZXMgYXJlIGRldGVjdGVkLCBhbiBlcnJvciBpcyBsb2dnZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmVha3BvaW50UHJvdmlkZXI6IFJlYWN0LkZDPEJyZWFrcG9pbnRQcm92aWRlclByb3BzPiA9ICh7IGJyZWFrcG9pbnRzLCBjaGlsZHJlbiwgdGFyZ2V0UmVmIH0pID0+IHtcbiAgLy8gSWYgYSB0YXJnZXRSZWYgaXMgcHJvdmlkZWQsIHVzZVJlc2l6ZURldGVjdG9yIG9ic2VydmVzIHRoYXQgZWxlbWVudDsgb3RoZXJ3aXNlLCBhbiBpbnRlcm5hbCByZWYgaXMgY3JlYXRlZC5cbiAgY29uc3QgeyB3aWR0aCwgcmVmIH0gPSB1c2VSZXNpemVEZXRlY3Rvcih7IHRhcmdldFJlZiB9KTtcblxuICAvLyBTb3J0IHRoZSBicmVha3BvaW50cyBpbiBhc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gdGhlaXIgbnVtZXJpYyB2YWx1ZXMuIFx1RDgzRFx1REQyMlxuICBjb25zdCBzb3J0ZWRCcmVha3BvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhicmVha3BvaW50cylcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdmFsdWVdIGFzIFtCcmVha3BvaW50LCBudW1iZXJdKVxuICAgICAgLnNvcnQoKFssIGFdLCBbLCBiXSkgPT4gYSAtIGIpO1xuICB9LCBbYnJlYWtwb2ludHNdKTtcblxuICAvKiogQ2hlY2sgZm9yIGR1cGxpY2F0ZSBicmVha3BvaW50IHZhbHVlcyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGR1cGxpY2F0ZXMgPSBzb3J0ZWRCcmVha3BvaW50cy5maWx0ZXIoXG4gICAgICAoWywgdmFsdWVdLCBpbmRleCkgPT4gc29ydGVkQnJlYWtwb2ludHMuZmluZEluZGV4KChbLCB2XSkgPT4gdiA9PT0gdmFsdWUpICE9PSBpbmRleFxuICAgICk7XG4gICAgaWYgKGR1cGxpY2F0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5lcnJvcignQnJlYWtwb2ludFByb3ZpZGVyOiBEdXBsaWNhdGUgYnJlYWtwb2ludCB2YWx1ZXMgZGV0ZWN0ZWQuIFRoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvci4nKTtcbiAgICB9XG4gIH0sIFtzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIERldGVybWluZSB0aGUgY3VycmVudCBicmVha3BvaW50IGJhc2VkIG9uIHRoZSBtZWFzdXJlZCB3aWR0aC4gXHVEODNEXHVEQ0NGXG4gIGNvbnN0IGN1cnJlbnRCcmVha3BvaW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgIGxldCBhY3RpdmU6IEJyZWFrcG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBzb3J0ZWRCcmVha3BvaW50cy5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICh3aWR0aCA+PSB2YWx1ZSkge1xuICAgICAgICBhY3RpdmUgPSBrZXk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZTtcbiAgfSwgW3dpZHRoLCBzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIExvZyBlcnJvciBpZiB3aWR0aCA+IDAgYnV0IG5vIGJyZWFrcG9pbnQgY291bGQgYmUgZGV0ZXJtaW5lZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3aWR0aCAhPT0gdW5kZWZpbmVkICYmIHdpZHRoID4gMCAmJiBjdXJyZW50QnJlYWtwb2ludCA9PT0gbnVsbCkge1xuICAgICAgaWYgKHNvcnRlZEJyZWFrcG9pbnRzLmxlbmd0aCA+IDAgJiYgd2lkdGggPCBzb3J0ZWRCcmVha3BvaW50c1swXVsxXSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBCcmVha3BvaW50UHJvdmlkZXI6IFRoZSBjdXJyZW50IHdpZHRoICgke3dpZHRofXB4KSBpcyBsZXNzIHRoYW4gdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQgdmFsdWUgKCR7c29ydGVkQnJlYWtwb2ludHNbMF1bMV19cHgpLiBDb25zaWRlciBpbmNsdWRpbmcgYSBicmVha3BvaW50IHdpdGggYSB2YWx1ZSBvZiAwIHRvIGNvdmVyIGFsbCBjYXNlcy5gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdCcmVha3BvaW50UHJvdmlkZXI6IE5vIGJyZWFrcG9pbnQgY291bGQgYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uLiBDaGVjayB5b3VyIGJyZWFrcG9pbnRzIG9iamVjdC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbd2lkdGgsIGN1cnJlbnRCcmVha3BvaW50LCBzb3J0ZWRCcmVha3BvaW50c10pO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZGV4IG9mIGEgYnJlYWtwb2ludCBpbiB0aGUgc29ydGVkIGFycmF5LiBcdUQ4M0RcdUREMERcbiAgY29uc3QgZ2V0QnJlYWtwb2ludEluZGV4ID0gKHNpemU6IEJyZWFrcG9pbnQpOiBudW1iZXIgPT4ge1xuICAgIHJldHVybiBzb3J0ZWRCcmVha3BvaW50cy5maW5kSW5kZXgoKFtrZXldKSA9PiBrZXkgPT09IHNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGlzQXRMZWFzdCA9IChzaXplOiBCcmVha3BvaW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBnZXRCcmVha3BvaW50SW5kZXgoY3VycmVudEJyZWFrcG9pbnQpID49IGdldEJyZWFrcG9pbnRJbmRleChzaXplKTtcbiAgfTtcblxuICBjb25zdCBpc0JlbG93ID0gKHNpemU6IEJyZWFrcG9pbnQpOiBib29sZWFuID0+IHtcbiAgICBpZiAoIWN1cnJlbnRCcmVha3BvaW50KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGdldEJyZWFrcG9pbnRJbmRleChjdXJyZW50QnJlYWtwb2ludCkgPCBnZXRCcmVha3BvaW50SW5kZXgoc2l6ZSk7XG4gIH07XG5cbiAgLy8gRGVmaW5lIHZhbHVlQnlCcmVha3BvaW50IGFzIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gdG8gYXZvaWQgSlNYIHBhcnNpbmcgaXNzdWVzIGluIFRTWCBmaWxlcy4gXHVEODNDXHVERkE4XG4gIGZ1bmN0aW9uIHZhbHVlQnlCcmVha3BvaW50PFQ+KHZhbHVlczogUGFydGlhbDxSZWNvcmQ8QnJlYWtwb2ludCwgVD4+KTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjdXJyZW50QnJlYWtwb2ludCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdmFsdWVzW2N1cnJlbnRCcmVha3BvaW50XTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEJyZWFrcG9pbnRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICB3aWR0aDogd2lkdGggPz8gMCxcbiAgICAgICAgYnJlYWtwb2ludDogY3VycmVudEJyZWFrcG9pbnQsXG4gICAgICAgIGJyZWFrcG9pbnRzLFxuICAgICAgICBpc0F0TGVhc3QsXG4gICAgICAgIGlzQmVsb3csXG4gICAgICAgIHZhbHVlQnlCcmVha3BvaW50LFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7LyogSWYgYSB0YXJnZXRSZWYgaXMgcHJvdmlkZWQsIHRoYXQgcmVmIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gYW4gZXh0ZXJuYWwgZWxlbWVudC5cbiAgICAgICAgICBPdGhlcndpc2UsIHJlbmRlciBhIDxkaXYgcmVmPXtyZWZ9PiB0byBvYnNlcnZlIGl0cyBzaXplLiBcdUQ4M0RcdURDRDAgKi99XG4gICAgICB7dGFyZ2V0UmVmID8gY2hpbGRyZW4gOiA8ZGl2IHJlZj17cmVmfT57Y2hpbGRyZW59PC9kaXY+fVxuICAgIDwvQnJlYWtwb2ludENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG4vKipcbiAqIEhvb2sgZm9yIGFjY2Vzc2luZyB0aGUgQnJlYWtwb2ludENvbnRleHQuXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdXNlZCBvdXRzaWRlIG9mIGEgQnJlYWtwb2ludFByb3ZpZGVyLiBcdTI2QTBcdUZFMEZcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUJyZWFrcG9pbnQgPSAoKTogQnJlYWtwb2ludENvbnRleHRUeXBlID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQnJlYWtwb2ludENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUJyZWFrcG9pbnQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEJyZWFrcG9pbnRQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuaW50ZXJmYWNlIEJyZWFrcG9pbnRDb25kaXRpb25hbFByb3BzIHtcbiAgLyoqXG4gICAqIEFycmF5IG9mIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHRoZSBjaGlsZHJlbiBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKiBFLmcuOiBbJ01EJywgJ0xHJ10gcmVuZGVycyBjaGlsZHJlbiBvbmx5IGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgTUQgb3IgTEcuXG4gICAqL1xuICBzaG93PzogQnJlYWtwb2ludFtdO1xuICAvKipcbiAgICogVGhlIGNoaWxkcmVuIGFyZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIGF0IGxlYXN0IHRoaXMgdmFsdWUuXG4gICAqIEUuZy46IGlzQXRMZWFzdD1cIk1EXCIgcmVuZGVycyBjaGlsZHJlbiBmb3IgTUQsIExHLCBvciBYTC5cbiAgICovXG4gIGlzQXRMZWFzdD86IEJyZWFrcG9pbnQ7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGRyZW4gYXJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgYmVsb3cgdGhpcyB2YWx1ZS5cbiAgICovXG4gIGlzQmVsb3c/OiBCcmVha3BvaW50O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG4vKipcbiAqIEJyZWFrcG9pbnRDb25kaXRpb25hbCBcdUQ4M0NcdURGQThcbiAqXG4gKiBSZW5kZXJzIGl0cyBjaGlsZHJlbiBvbmx5IGlmIGFsbCBwcm92aWRlZCBjb25kaXRpb25zIHJlZ2FyZGluZyB0aGUgY3VycmVudCBicmVha3BvaW50IGFyZSBtZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmVha3BvaW50Q29uZGl0aW9uYWw6IFJlYWN0LkZDPEJyZWFrcG9pbnRDb25kaXRpb25hbFByb3BzPiA9ICh7XG4gIHNob3csXG4gIGlzQXRMZWFzdDogbWluU2l6ZSxcbiAgaXNCZWxvdzogbWF4U2l6ZSxcbiAgY2hpbGRyZW4sXG59KSA9PiB7XG4gIGNvbnN0IHsgYnJlYWtwb2ludCwgaXNBdExlYXN0OiBjb250ZXh0SXNBdExlYXN0LCBpc0JlbG93OiBjb250ZXh0SXNCZWxvdyB9ID0gdXNlQnJlYWtwb2ludCgpO1xuXG4gIGxldCBzaG91bGRSZW5kZXIgPSB0cnVlO1xuXG4gIGlmIChzaG93ICYmIGJyZWFrcG9pbnQpIHtcbiAgICBzaG91bGRSZW5kZXIgPSBzaG91bGRSZW5kZXIgJiYgc2hvdy5pbmNsdWRlcyhicmVha3BvaW50KTtcbiAgfVxuICBpZiAobWluU2l6ZSkge1xuICAgIHNob3VsZFJlbmRlciA9IHNob3VsZFJlbmRlciAmJiBjb250ZXh0SXNBdExlYXN0KG1pblNpemUpO1xuICB9XG4gIGlmIChtYXhTaXplKSB7XG4gICAgc2hvdWxkUmVuZGVyID0gc2hvdWxkUmVuZGVyICYmIGNvbnRleHRJc0JlbG93KG1heFNpemUpO1xuICB9XG5cbiAgcmV0dXJuIHNob3VsZFJlbmRlciA/IDw+e2NoaWxkcmVufTwvPiA6IG51bGw7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQWdCLGlCQUFBQSxFQUFlLGNBQUFDLEVBQVksV0FBQUMsRUFBUyxhQUFBQyxNQUFpQixRQUNyRSxPQUFTLHFCQUFBQyxNQUF5Qix3QkE0SUosT0E0RE4sWUFBQUMsRUE1RE0sT0FBQUMsTUFBQSxvQkFoSDlCLElBQU1DLEVBQW9CUCxFQUFpRCxNQUFTLEVBOEJ2RVEsRUFBd0QsQ0FBQyxDQUFFLFlBQUFDLEVBQWEsU0FBQUMsRUFBVSxVQUFBQyxDQUFVLElBQU0sQ0FFN0csR0FBTSxDQUFFLE1BQUFDLEVBQU8sSUFBQUMsQ0FBSSxFQUFJVCxFQUFrQixDQUFFLFVBQUFPLENBQVUsQ0FBQyxFQUdoREcsRUFBb0JaLEVBQVEsSUFDekIsT0FBTyxRQUFRTyxDQUFXLEVBQzlCLElBQUksQ0FBQyxDQUFDTSxFQUFLQyxDQUFLLElBQU0sQ0FBQ0QsRUFBS0MsQ0FBSyxDQUF5QixFQUMxRCxLQUFLLENBQUMsQ0FBQyxDQUFFQyxDQUFDLEVBQUcsQ0FBQyxDQUFFQyxDQUFDLElBQU1ELEVBQUlDLENBQUMsRUFDOUIsQ0FBQ1QsQ0FBVyxDQUFDLEVBR2hCTixFQUFVLElBQU0sQ0FDS1csRUFBa0IsT0FDbkMsQ0FBQyxDQUFDLENBQUVFLENBQUssRUFBR0csSUFBVUwsRUFBa0IsVUFBVSxDQUFDLENBQUMsQ0FBRU0sQ0FBQyxJQUFNQSxJQUFNSixDQUFLLElBQU1HLENBQ2hGLEVBQ2UsT0FBUyxHQUN0QixRQUFRLE1BQU0saUdBQWlHLENBRW5ILEVBQUcsQ0FBQ0wsQ0FBaUIsQ0FBQyxFQUd0QixJQUFNTyxFQUFvQm5CLEVBQVEsSUFBTSxDQUN0QyxHQUFJVSxJQUFVLE9BQVcsT0FBTyxLQUNoQyxJQUFJVSxFQUE0QixLQUNoQyxPQUFBUixFQUFrQixRQUFRLENBQUMsQ0FBQ0MsRUFBS0MsQ0FBSyxJQUFNLENBQ3RDSixHQUFTSSxJQUNYTSxFQUFTUCxFQUViLENBQUMsRUFDTU8sQ0FDVCxFQUFHLENBQUNWLEVBQU9FLENBQWlCLENBQUMsRUFHN0JYLEVBQVUsSUFBTSxDQUNWUyxJQUFVLFFBQWFBLEVBQVEsR0FBS1MsSUFBc0IsT0FDeERQLEVBQWtCLE9BQVMsR0FBS0YsRUFBUUUsRUFBa0IsQ0FBQyxFQUFFLENBQUMsRUFDaEUsUUFBUSxNQUNOLDBDQUEwQ0YsQ0FBSyxtREFBbURFLEVBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsNEVBQzNILEVBRUEsUUFBUSxNQUNOLHVIQUNGLEVBR04sRUFBRyxDQUFDRixFQUFPUyxFQUFtQlAsQ0FBaUIsQ0FBQyxFQUdoRCxJQUFNUyxFQUFzQkMsR0FDbkJWLEVBQWtCLFVBQVUsQ0FBQyxDQUFDQyxDQUFHLElBQU1BLElBQVFTLENBQUksRUFHdERDLEVBQWFELEdBQ1pILEVBQ0VFLEVBQW1CRixDQUFpQixHQUFLRSxFQUFtQkMsQ0FBSSxFQUR4QyxHQUkzQkUsRUFBV0YsR0FDVkgsRUFDRUUsRUFBbUJGLENBQWlCLEVBQUlFLEVBQW1CQyxDQUFJLEVBRHZDLEdBS2pDLFNBQVNHLEVBQXFCQyxFQUF1RCxDQUNuRixHQUFLUCxFQUNMLE9BQU9PLEVBQU9QLENBQWlCLENBQ2pDLENBRUEsT0FDRWYsRUFBQ0MsRUFBa0IsU0FBbEIsQ0FDQyxNQUFPLENBQ0wsTUFBT0ssR0FBUyxFQUNoQixXQUFZUyxFQUNaLFlBQUFaLEVBQ0EsVUFBQWdCLEVBQ0EsUUFBQUMsRUFDQSxrQkFBQUMsQ0FDRixFQUlDLFNBQUFoQixFQUFZRCxFQUFXSixFQUFDLE9BQUksSUFBS08sRUFBTSxTQUFBSCxFQUFTLEVBQ25ELENBRUosRUFNYW1CLEVBQWdCLElBQTZCLENBQ3hELElBQU1DLEVBQVU3QixFQUFXTSxDQUFpQixFQUM1QyxHQUFJLENBQUN1QixFQUNILE1BQU0sSUFBSSxNQUFNLHdEQUF3RCxFQUUxRSxPQUFPQSxDQUNULEVBeUJhQyxFQUE4RCxDQUFDLENBQzFFLEtBQUFDLEVBQ0EsVUFBV0MsRUFDWCxRQUFTQyxFQUNULFNBQUF4QixDQUNGLElBQU0sQ0FDSixHQUFNLENBQUUsV0FBQXlCLEVBQVksVUFBV0MsRUFBa0IsUUFBU0MsQ0FBZSxFQUFJUixFQUFjLEVBRXZGUyxFQUFlLEdBRW5CLE9BQUlOLEdBQVFHLElBQ1ZHLEVBQWVBLEdBQWdCTixFQUFLLFNBQVNHLENBQVUsR0FFckRGLElBQ0ZLLEVBQWVBLEdBQWdCRixFQUFpQkgsQ0FBTyxHQUVyREMsSUFDRkksRUFBZUEsR0FBZ0JELEVBQWVILENBQU8sR0FHaERJLEVBQWVoQyxFQUFBRCxFQUFBLENBQUcsU0FBQUssRUFBUyxFQUFNLElBQzFDIiwKICAibmFtZXMiOiBbImNyZWF0ZUNvbnRleHQiLCAidXNlQ29udGV4dCIsICJ1c2VNZW1vIiwgInVzZUVmZmVjdCIsICJ1c2VSZXNpemVEZXRlY3RvciIsICJGcmFnbWVudCIsICJqc3giLCAiQnJlYWtwb2ludENvbnRleHQiLCAiQnJlYWtwb2ludFByb3ZpZGVyIiwgImJyZWFrcG9pbnRzIiwgImNoaWxkcmVuIiwgInRhcmdldFJlZiIsICJ3aWR0aCIsICJyZWYiLCAic29ydGVkQnJlYWtwb2ludHMiLCAia2V5IiwgInZhbHVlIiwgImEiLCAiYiIsICJpbmRleCIsICJ2IiwgImN1cnJlbnRCcmVha3BvaW50IiwgImFjdGl2ZSIsICJnZXRCcmVha3BvaW50SW5kZXgiLCAic2l6ZSIsICJpc0F0TGVhc3QiLCAiaXNCZWxvdyIsICJ2YWx1ZUJ5QnJlYWtwb2ludCIsICJ2YWx1ZXMiLCAidXNlQnJlYWtwb2ludCIsICJjb250ZXh0IiwgIkJyZWFrcG9pbnRDb25kaXRpb25hbCIsICJzaG93IiwgIm1pblNpemUiLCAibWF4U2l6ZSIsICJicmVha3BvaW50IiwgImNvbnRleHRJc0F0TGVhc3QiLCAiY29udGV4dElzQmVsb3ciLCAic2hvdWxkUmVuZGVyIl0KfQo=
|
package/package.json
CHANGED
|
@@ -1,106 +1,120 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
2
|
+
"name": "react-resize-detector-context",
|
|
3
|
+
"description": "",
|
|
4
|
+
"version": "0.1.2",
|
|
5
|
+
"author": "",
|
|
6
|
+
"license": "",
|
|
7
|
+
"keywords": [],
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": ""
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "concurrently \"pnpm build --watch\" \"pnpm storybook\" \"pnpm test\" ",
|
|
14
|
+
"build": "tsup",
|
|
15
|
+
"lint": "eslint src --fix",
|
|
16
|
+
"lint:ci": "eslint src --debug",
|
|
17
|
+
"format": "prettier --write src",
|
|
18
|
+
"test": "vitest",
|
|
19
|
+
"test:ci": "vitest run --coverage",
|
|
20
|
+
"commit": "cz",
|
|
21
|
+
"storybook": "storybook dev -p 6006",
|
|
22
|
+
"storybook:build": "storybook build",
|
|
23
|
+
"release": "pnpm build && pnpm release-it",
|
|
24
|
+
"link:self": "pnpm link --global",
|
|
25
|
+
"prepare": "lefthook install"
|
|
26
|
+
},
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"require": "./dist/index.js",
|
|
31
|
+
"import": "./dist/index.mjs"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist"
|
|
36
|
+
],
|
|
37
|
+
"config": {
|
|
38
|
+
"commitizen": {
|
|
39
|
+
"path": "./node_modules/@ryansonshine/cz-conventional-changelog"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"lint-staged": {
|
|
43
|
+
"src/**/*.{js,jsx,ts,tsx,json,md}": [
|
|
44
|
+
"prettier --write",
|
|
45
|
+
"eslint --fix"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"release-it": {
|
|
49
|
+
"git": {
|
|
50
|
+
"commitMessage": "chore(release): v${version}"
|
|
51
|
+
},
|
|
52
|
+
"github": {
|
|
53
|
+
"release": true
|
|
54
|
+
},
|
|
55
|
+
"npm": {
|
|
56
|
+
"publish": false
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">=18.0.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@emotion/styled": "^11.14.0",
|
|
64
|
+
"@eslint/js": "^9.20.0",
|
|
65
|
+
"@mui/material": "^6.4.3",
|
|
66
|
+
"@ryansonshine/commitizen": "4.2.8",
|
|
67
|
+
"@ryansonshine/cz-conventional-changelog": "3.3.4",
|
|
68
|
+
"@storybook/addon-essentials": "8.4.7",
|
|
69
|
+
"@storybook/addon-interactions": "8.4.7",
|
|
70
|
+
"@storybook/addon-links": "8.4.7",
|
|
71
|
+
"@storybook/addon-webpack5-compiler-swc": "2.0.0",
|
|
72
|
+
"@storybook/blocks": "8.4.7",
|
|
73
|
+
"@storybook/react": "8.4.7",
|
|
74
|
+
"@storybook/react-webpack5": "8.4.7",
|
|
75
|
+
"@storybook/test": "8.4.7",
|
|
76
|
+
"@testing-library/jest-dom": "6.6.3",
|
|
77
|
+
"@testing-library/react": "^16.1.0",
|
|
78
|
+
"@types/node": "22.10.5",
|
|
79
|
+
"@types/react": "18.3.13",
|
|
80
|
+
"@types/react-dom": "18.3.1",
|
|
81
|
+
"@types/react-test-renderer": "18.3.0",
|
|
82
|
+
"@types/testing-library__jest-dom": "^5.14.9",
|
|
83
|
+
"@vitest/coverage-v8": "2.1.8",
|
|
84
|
+
"concurrently": "9.1.2",
|
|
85
|
+
"eslint": "^9.20.0",
|
|
86
|
+
"eslint-plugin-react": "^7.37.4",
|
|
87
|
+
"globals": "^15.14.0",
|
|
88
|
+
"husky": "^9.1.7",
|
|
89
|
+
"jsdom": "25.0.1",
|
|
90
|
+
"lefthook": "1.10.1",
|
|
91
|
+
"lint-staged": "^15.4.3",
|
|
92
|
+
"prettier": "^3.5.0",
|
|
93
|
+
"prop-types": "15.8.1",
|
|
94
|
+
"react": "18.3.1",
|
|
95
|
+
"react-dom": "18.3.1",
|
|
96
|
+
"react-test-renderer": "18.3.1",
|
|
97
|
+
"release-it": "17.11.0",
|
|
98
|
+
"storybook": "8.4.7",
|
|
99
|
+
"ts-node": "10.9.2",
|
|
100
|
+
"tsconfig-paths": "4.2.0",
|
|
101
|
+
"tsup": "8.3.5",
|
|
102
|
+
"tsx": "4.19.2",
|
|
103
|
+
"typescript": "5.7.2",
|
|
104
|
+
"typescript-eslint": "^8.23.0",
|
|
105
|
+
"vitest": "^2.1.8"
|
|
106
|
+
},
|
|
107
|
+
"peerDependencies": {
|
|
108
|
+
"react": ">=17",
|
|
109
|
+
"react-dom": ">=17"
|
|
110
|
+
},
|
|
111
|
+
"pnpm": {
|
|
112
|
+
"overrides": {
|
|
113
|
+
"micromatch@<4.0.8": ">=4.0.8"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"dependencies": {
|
|
117
|
+
"@emotion/styled": "^11.14.0",
|
|
118
|
+
"react-resize-detector": "^12.0.2"
|
|
119
|
+
}
|
|
106
120
|
}
|