@nlabs/arkhamjs-utils-react 3.29.5 → 3.30.0

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 ADDED
@@ -0,0 +1,459 @@
1
+ # @nlabs/arkhamjs-utils-react
2
+
3
+ > **React Hooks and Utilities for ArkhamJS** - Seamless React integration with powerful hooks for state management, component sizing, and window dimensions.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@nlabs/arkhamjs-utils-react.svg?style=flat-square)](https://www.npmjs.com/package/@nlabs/arkhamjs-utils-react)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@nlabs/arkhamjs-utils-react.svg?style=flat-square)](https://www.npmjs.com/package/@nlabs/arkhamjs-utils-react)
7
+ [![Travis](https://img.shields.io/travis/nitrogenlabs/arkhamjs.svg?style=flat-square)](https://travis-ci.org/nitrogenlabs/arkhamjs)
8
+ [![Issues](https://img.shields.io/github/issues/nitrogenlabs/arkhamjs.svg?style=flat-square)](https://github.com/nitrogenlabs/arkhamjs/issues)
9
+ [![TypeScript](https://badges.frapsoft.com/typescript/version/typescript-next.svg?v=101)](https://github.com/ellerbrock/typescript-badges/)
10
+ [![MIT license](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](http://opensource.org/licenses/MIT)
11
+ [![Chat](https://img.shields.io/discord/446122412715802649.svg)](https://discord.gg/Ttgev58)
12
+
13
+ ## 🚀 Features
14
+
15
+ - **🎯 Flux Integration Hooks** - `useFlux`, `useFluxState`, `useFluxDispatch`, `useFluxListener`
16
+ - **📏 Component Size Hooks** - `useComponentSize`, `useRefSize` for responsive components
17
+ - **🖥️ Window Size Hooks** - `useWindowSize` for viewport-aware components
18
+ - **🔧 FluxProvider** - React Context provider for ArkhamJS
19
+ - **⚡ TypeScript Support** - First-class TypeScript with full type safety
20
+ - **🌲 Tree-shakable** - Only import what you need
21
+
22
+ ## 📦 Installation
23
+
24
+ ```bash
25
+ npm install @nlabs/arkhamjs-utils-react
26
+ ```
27
+
28
+ **Peer Dependencies:**
29
+
30
+ - `@nlabs/arkhamjs` ^3.26.0
31
+ - `react` (any version)
32
+
33
+ ## 🎯 Quick Start
34
+
35
+ ### **Setup FluxProvider**
36
+
37
+ ```typescript
38
+ import React from 'react';
39
+ import { Flux } from '@nlabs/arkhamjs';
40
+ import { FluxProvider } from '@nlabs/arkhamjs-utils-react';
41
+
42
+ // Initialize Flux
43
+ Flux.init({
44
+ name: 'my-app',
45
+ stores: [UserStore, CartStore]
46
+ });
47
+
48
+ const App = (): JSX.Element => {
49
+ return (
50
+ <FluxProvider>
51
+ <UserList />
52
+ <CartSummary />
53
+ </FluxProvider>
54
+ );
55
+ };
56
+ ```
57
+
58
+ ### **Use Flux Hooks**
59
+
60
+ ```typescript
61
+ import React from 'react';
62
+ import { useFluxState, useFluxDispatch } from '@nlabs/arkhamjs-utils-react';
63
+
64
+ interface User {
65
+ id: number;
66
+ name: string;
67
+ }
68
+
69
+ const UserList = (): JSX.Element => {
70
+ // Get state with automatic re-renders
71
+ const users = useFluxState<User[]>('user.users', []);
72
+
73
+ // Get dispatch function
74
+ const dispatch = useFluxDispatch();
75
+
76
+ const addUser = (user: User): void => {
77
+ dispatch({ type: 'ADD_USER', user });
78
+ };
79
+
80
+ return (
81
+ <div>
82
+ {users.map(user => (
83
+ <div key={user.id}>{user.name}</div>
84
+ ))}
85
+ <button onClick={() => addUser({ id: 1, name: 'John' })}>
86
+ Add User
87
+ </button>
88
+ </div>
89
+ );
90
+ };
91
+ ```
92
+
93
+ ## 🔧 API Reference
94
+
95
+ ### **Flux Integration Hooks**
96
+
97
+ #### `useFlux()`
98
+
99
+ Get the Flux instance and dispatch function.
100
+
101
+ ```typescript
102
+ import { useFlux } from '@nlabs/arkhamjs-utils-react';
103
+
104
+ const MyComponent = (): JSX.Element => {
105
+ const { flux, dispatch } = useFlux();
106
+
107
+ // Access Flux methods
108
+ const state = flux.getState('user');
109
+
110
+ // Dispatch actions
111
+ dispatch({ type: 'UPDATE_USER', user });
112
+ };
113
+ ```
114
+
115
+ #### `useFluxState(path, defaultValue?)`
116
+
117
+ Subscribe to state changes with automatic re-renders.
118
+
119
+ ```typescript
120
+ import { useFluxState } from '@nlabs/arkhamjs-utils-react';
121
+
122
+ interface User {
123
+ name: string;
124
+ email: string;
125
+ }
126
+
127
+ const UserProfile = (): JSX.Element => {
128
+ // Subscribe to specific state path
129
+ const user = useFluxState<User | null>('user.current', null);
130
+ const isLoading = useFluxState<boolean>('user.loading', false);
131
+
132
+ if (isLoading) return <div>Loading...</div>;
133
+ if (!user) return <div>No user found</div>;
134
+
135
+ return <div>Welcome, {user.name}!</div>;
136
+ };
137
+ ```
138
+
139
+ #### `useFluxDispatch()`
140
+
141
+ Get the dispatch function for dispatching actions.
142
+
143
+ ```typescript
144
+ import { useFluxDispatch } from '@nlabs/arkhamjs-utils-react';
145
+
146
+ interface UserData {
147
+ name: string;
148
+ email: string;
149
+ }
150
+
151
+ const AddUserForm = (): JSX.Element => {
152
+ const dispatch = useFluxDispatch();
153
+
154
+ const handleSubmit = (userData: UserData): void => {
155
+ dispatch({ type: 'ADD_USER', user: userData });
156
+ };
157
+
158
+ return <form onSubmit={handleSubmit}>...</form>;
159
+ };
160
+ ```
161
+
162
+ #### `useFluxListener(event, callback)`
163
+
164
+ Listen to specific Flux events.
165
+
166
+ ```typescript
167
+ import { useFluxListener } from '@nlabs/arkhamjs-utils-react';
168
+
169
+ const NotificationComponent = (): JSX.Element => {
170
+ const [notifications, setNotifications] = useState<string[]>([]);
171
+
172
+ // Listen to user events
173
+ useFluxListener('USER_ADDED', (action: { type: string; user: { name: string } }) => {
174
+ setNotifications(prev => [...prev, `User ${action.user.name} added`]);
175
+ });
176
+
177
+ return (
178
+ <div>
179
+ {notifications.map((msg, i) => (
180
+ <div key={i}>{msg}</div>
181
+ ))}
182
+ </div>
183
+ );
184
+ };
185
+ ```
186
+
187
+ #### `useFluxValue(path, defaultValue?)`
188
+
189
+ Get a single value from state without re-renders on other changes.
190
+
191
+ ```typescript
192
+ import { useFluxValue } from '@nlabs/arkhamjs-utils-react';
193
+
194
+ const UserCount = (): JSX.Element => {
195
+ const userCount = useFluxValue<number>('user.count', 0);
196
+
197
+ return <div>Total users: {userCount}</div>;
198
+ };
199
+ ```
200
+
201
+ ### **Component Size Hooks**
202
+
203
+ #### `useComponentSize(ref)`
204
+
205
+ Track component dimensions with ResizeObserver.
206
+
207
+ ```typescript
208
+ import React, { useRef } from 'react';
209
+ import { useComponentSize } from '@nlabs/arkhamjs-utils-react';
210
+
211
+ const ResponsiveComponent = (): JSX.Element => {
212
+ const ref = useRef<HTMLDivElement>(null);
213
+ const { width, height } = useComponentSize(ref);
214
+
215
+ return (
216
+ <div ref={ref}>
217
+ <p>Width: {width}px, Height: {height}px</p>
218
+ </div>
219
+ );
220
+ };
221
+ ```
222
+
223
+ #### `useRefSize(ref)`
224
+
225
+ Alternative size hook with different API.
226
+
227
+ ```typescript
228
+ import React, { useRef } from 'react';
229
+ import { useRefSize } from '@nlabs/arkhamjs-utils-react';
230
+
231
+ const SizeTracker = (): JSX.Element => {
232
+ const ref = useRef<HTMLDivElement>(null);
233
+ const size = useRefSize(ref);
234
+
235
+ return (
236
+ <div ref={ref}>
237
+ <p>Size: {size.width} x {size.height}</p>
238
+ </div>
239
+ );
240
+ };
241
+ ```
242
+
243
+ ### **Window Size Hooks**
244
+
245
+ #### `useWindowSize()`
246
+
247
+ Track window dimensions.
248
+
249
+ ```typescript
250
+ import { useWindowSize } from '@nlabs/arkhamjs-utils-react';
251
+
252
+ const WindowInfo = (): JSX.Element => {
253
+ const { width, height } = useWindowSize();
254
+
255
+ return (
256
+ <div>
257
+ <p>Window: {width} x {height}</p>
258
+ <p>Is Mobile: {width < 768}</p>
259
+ </div>
260
+ );
261
+ };
262
+ ```
263
+
264
+ ## 🎯 Advanced Usage
265
+
266
+ ### **Custom Hook Composition**
267
+
268
+ ```typescript
269
+ import { useFluxState, useFluxDispatch } from '@nlabs/arkhamjs-utils-react';
270
+
271
+ interface User {
272
+ id: number;
273
+ name: string;
274
+ email: string;
275
+ }
276
+
277
+ const useUserManagement = () => {
278
+ const users = useFluxState<User[]>('user.users', []);
279
+ const currentUser = useFluxState<User | null>('user.current', null);
280
+ const dispatch = useFluxDispatch();
281
+
282
+ const addUser = (user: Omit<User, 'id'>): void => {
283
+ const newUser = { ...user, id: Date.now() };
284
+ dispatch({ type: 'ADD_USER', user: newUser });
285
+ };
286
+
287
+ const updateUser = (id: number, updates: Partial<User>): void => {
288
+ dispatch({ type: 'UPDATE_USER', id, updates });
289
+ };
290
+
291
+ const deleteUser = (id: number): void => {
292
+ dispatch({ type: 'DELETE_USER', id });
293
+ };
294
+
295
+ return {
296
+ users,
297
+ currentUser,
298
+ addUser,
299
+ updateUser,
300
+ deleteUser
301
+ };
302
+ };
303
+
304
+ const UserManagement = (): JSX.Element => {
305
+ const { users, addUser, updateUser, deleteUser } = useUserManagement();
306
+
307
+ return (
308
+ <div>
309
+ {users.map(user => (
310
+ <div key={user.id}>
311
+ {user.name}
312
+ <button onClick={() => updateUser(user.id, { name: 'Updated' })}>
313
+ Update
314
+ </button>
315
+ <button onClick={() => deleteUser(user.id)}>Delete</button>
316
+ </div>
317
+ ))}
318
+ <button onClick={() => addUser({ name: 'New User', email: 'new@example.com' })}>
319
+ Add User
320
+ </button>
321
+ </div>
322
+ );
323
+ };
324
+ ```
325
+
326
+ ### **Performance Optimization**
327
+
328
+ ```typescript
329
+ import React, { useCallback, useMemo } from 'react';
330
+ import { useFluxState, useFluxDispatch } from '@nlabs/arkhamjs-utils-react';
331
+
332
+ const OptimizedUserList = (): JSX.Element => {
333
+ const users = useFluxState<User[]>('user.users', []);
334
+ const dispatch = useFluxDispatch();
335
+
336
+ // Memoize expensive computations
337
+ const activeUsers = useMemo(() =>
338
+ users.filter(user => user.status === 'active'),
339
+ [users]
340
+ );
341
+
342
+ // Memoize callbacks
343
+ const handleUserClick = useCallback((userId: number) => {
344
+ dispatch({ type: 'SELECT_USER', id: userId });
345
+ }, [dispatch]);
346
+
347
+ return (
348
+ <div>
349
+ {activeUsers.map(user => (
350
+ <div key={user.id} onClick={() => handleUserClick(user.id)}>
351
+ {user.name}
352
+ </div>
353
+ ))}
354
+ </div>
355
+ );
356
+ };
357
+ ```
358
+
359
+ ## 🔧 Configuration
360
+
361
+ ### **FluxProvider Options**
362
+
363
+ ```typescript
364
+ import { FluxProvider } from '@nlabs/arkhamjs-utils-react';
365
+
366
+ const App = (): JSX.Element => {
367
+ return (
368
+ <FluxProvider
369
+ debug={process.env.NODE_ENV === 'development'}
370
+ enableStrictMode={true}
371
+ >
372
+ <YourApp />
373
+ </FluxProvider>
374
+ );
375
+ };
376
+ ```
377
+
378
+ ## 🎯 Use Cases
379
+
380
+ ### **E-commerce Application**
381
+
382
+ ```typescript
383
+ const ShoppingCart = (): JSX.Element => {
384
+ const cartItems = useFluxState<CartItem[]>('cart.items', []);
385
+ const total = useFluxState<number>('cart.total', 0);
386
+ const dispatch = useFluxDispatch();
387
+
388
+ const addToCart = (product: Product): void => {
389
+ dispatch({ type: 'ADD_TO_CART', product });
390
+ };
391
+
392
+ const removeFromCart = (productId: number): void => {
393
+ dispatch({ type: 'REMOVE_FROM_CART', productId });
394
+ };
395
+
396
+ return (
397
+ <div>
398
+ <h2>Shopping Cart ({cartItems.length} items)</h2>
399
+ {cartItems.map(item => (
400
+ <div key={item.id}>
401
+ {item.name} - ${item.price}
402
+ <button onClick={() => removeFromCart(item.id)}>Remove</button>
403
+ </div>
404
+ ))}
405
+ <div>Total: ${total}</div>
406
+ </div>
407
+ );
408
+ };
409
+ ```
410
+
411
+ ### **Real-time Dashboard**
412
+
413
+ ```typescript
414
+ const Dashboard = (): JSX.Element => {
415
+ const metrics = useFluxState<Metrics>('dashboard.metrics', {});
416
+ const { width, height } = useWindowSize();
417
+ const isMobile = width < 768;
418
+
419
+ // Listen for real-time updates
420
+ useFluxListener('METRICS_UPDATED', (action) => {
421
+ console.log('Metrics updated:', action.metrics);
422
+ });
423
+
424
+ return (
425
+ <div className={isMobile ? 'mobile-dashboard' : 'desktop-dashboard'}>
426
+ <MetricCard title="Users" value={metrics.userCount} />
427
+ <MetricCard title="Revenue" value={metrics.revenue} />
428
+ <MetricCard title="Orders" value={metrics.orderCount} />
429
+ </div>
430
+ );
431
+ };
432
+ ```
433
+
434
+ ## 🔗 Related Packages
435
+
436
+ - **[@nlabs/arkhamjs](./packages/arkhamjs/README.md)** - Core Flux framework
437
+ - **[@nlabs/arkhamjs-middleware-logger](./packages/arkhamjs-middleware-logger/README.md)** - Logging middleware
438
+ - **[@nlabs/arkhamjs-middleware-devtools](./packages/arkhamjs-middleware-devtools/README.md)** - DevTools integration
439
+ - **[@nlabs/arkhamjs-storage-browser](./packages/arkhamjs-storage-browser/README.md)** - Browser storage
440
+
441
+ ## 📚 Documentation
442
+
443
+ - **[ArkhamJS Documentation](https://arkhamjs.io)** - Complete API reference
444
+ - **[React Integration Guide](https://arkhamjs.io/docs/react)** - Detailed React setup
445
+ - **[TypeScript Guide](https://arkhamjs.io/docs/typescript)** - TypeScript best practices
446
+
447
+ ## 🤝 Community & Support
448
+
449
+ - **💬 [Discord Community](https://discord.gg/Ttgev58)** - Chat with other developers
450
+ - **🐛 [GitHub Issues](https://github.com/nitrogenlabs/arkhamjs/issues)** - Report bugs and request features
451
+ - **📝 [Examples](./packages/arkhamjs-example-ts-react/README.md)** - Complete working examples
452
+
453
+ ## 📄 License
454
+
455
+ MIT License - see [LICENSE](LICENSE) file for details.
456
+
457
+ ---
458
+
459
+ **Start building reactive React applications with ArkhamJS today!** 🚀
@@ -1,29 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var FluxContext_exports = {};
19
- __export(FluxContext_exports, {
20
- FluxContext: () => FluxContext
21
- });
22
- module.exports = __toCommonJS(FluxContext_exports);
23
- var import_react = require("react");
24
- const FluxContext = (0, import_react.createContext)(null);
25
- // Annotate the CommonJS export names for ESM import in node:
26
- 0 && (module.exports = {
27
- FluxContext
28
- });
29
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhDb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUNvbnRleHR9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IEZsdXhDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUE0QjtBQUVyQixNQUFNLGtCQUFjLDRCQUFjLElBQUk7IiwKICAibmFtZXMiOiBbXQp9Cg==
1
+ var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(o,t)=>{for(var n in t)r(o,n,{get:t[n],enumerable:!0})},C=(o,t,n,x)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of m(t))!p.call(o,e)&&e!==n&&r(o,e,{get:()=>t[e],enumerable:!(x=c(t,e))||x.enumerable});return o};var a=o=>C(r({},"__esModule",{value:!0}),o);var i={};u(i,{FluxContext:()=>f});module.exports=a(i);var l=require("react");const f=(0,l.createContext)(null);0&&(module.exports={FluxContext});
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhDb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUNvbnRleHR9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IEZsdXhDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcbiJdLAogICJtYXBwaW5ncyI6ICI0WkFBQSxJQUFBQSxFQUFBLEdBQUFDLEVBQUFELEVBQUEsaUJBQUFFLElBQUEsZUFBQUMsRUFBQUgsR0FBQSxJQUFBSSxFQUE0QixpQkFFckIsTUFBTUYsS0FBYyxpQkFBYyxJQUFJIiwKICAibmFtZXMiOiBbIkZsdXhDb250ZXh0X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiRmx1eENvbnRleHQiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9yZWFjdCJdCn0K
@@ -1,3 +1,3 @@
1
- import { FC } from 'react';
2
- import { FluxProviderProps } from './FluxProvider.types';
1
+ import type { FC } from 'react';
2
+ import type { FluxProviderProps } from './FluxProvider.types';
3
3
  export declare const FluxProvider: FC<FluxProviderProps>;
@@ -1,58 +1,2 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var FluxProvider_exports = {};
29
- __export(FluxProvider_exports, {
30
- FluxProvider: () => FluxProvider
31
- });
32
- module.exports = __toCommonJS(FluxProvider_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
- var import_isEqual = __toESM(require("lodash/isEqual"));
35
- var import_react = require("react");
36
- var import_FluxContext = require("./FluxContext");
37
- const FluxProvider = ({ children, flux }) => {
38
- const [state, setState] = (0, import_react.useState)(flux.getState());
39
- const ref = (0, import_react.useRef)(state);
40
- (0, import_react.useEffect)(() => {
41
- const updateState = (newState) => {
42
- if (!(0, import_isEqual.default)(newState, ref.current)) {
43
- ref.current = newState;
44
- setState(newState);
45
- }
46
- };
47
- flux.addListener("arkhamjs", updateState);
48
- return () => {
49
- flux.removeListener("arkhamjs", updateState);
50
- };
51
- }, []);
52
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_FluxContext.FluxContext.Provider, { value: { flux, state }, children });
53
- };
54
- // Annotate the CommonJS export names for ESM import in node:
55
- 0 && (module.exports = {
56
- FluxProvider
57
- });
58
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhQcm92aWRlci50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQge0ZDLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtGbHV4Q29udGV4dH0gZnJvbSAnLi9GbHV4Q29udGV4dCc7XG5pbXBvcnQge0ZsdXhQcm92aWRlclByb3BzfSBmcm9tICcuL0ZsdXhQcm92aWRlci50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBGbHV4UHJvdmlkZXI6IEZDPEZsdXhQcm92aWRlclByb3BzPiA9ICh7Y2hpbGRyZW4sIGZsdXh9KSA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoZmx1eC5nZXRTdGF0ZSgpKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmKHN0YXRlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVN0YXRlID0gKG5ld1N0YXRlKSA9PiB7XG4gICAgICBpZighaXNFcXVhbChuZXdTdGF0ZSwgcmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gbmV3U3RhdGU7XG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZsdXguYWRkTGlzdGVuZXIoJ2Fya2hhbWpzJywgdXBkYXRlU3RhdGUpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGZsdXgucmVtb3ZlTGlzdGVuZXIoJ2Fya2hhbWpzJywgdXBkYXRlU3RhdGUpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gPEZsdXhDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7Zmx1eCwgc3RhdGV9fT57Y2hpbGRyZW59PC9GbHV4Q29udGV4dC5Qcm92aWRlcj47XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTRCUztBQXhCVCxxQkFBb0I7QUFDcEIsbUJBQThDO0FBRTlDLHlCQUEwQjtBQUduQixNQUFNLGVBQXNDLENBQUMsRUFBQyxVQUFVLEtBQUksTUFBTTtBQUN2RSxRQUFNLENBQUMsT0FBTyxRQUFRLFFBQUksdUJBQVMsS0FBSyxTQUFTLENBQUM7QUFDbEQsUUFBTSxVQUFNLHFCQUFPLEtBQUs7QUFFeEIsOEJBQVUsTUFBTTtBQUNkLFVBQU0sY0FBYyxDQUFDLGFBQWE7QUFDaEMsVUFBRyxLQUFDLGVBQUFBLFNBQVEsVUFBVSxJQUFJLE9BQU8sR0FBRztBQUNsQyxZQUFJLFVBQVU7QUFDZCxpQkFBUyxRQUFRO0FBQUEsTUFDbkI7QUFBQSxJQUNGO0FBQ0EsU0FBSyxZQUFZLFlBQVksV0FBVztBQUV4QyxXQUFPLE1BQU07QUFDWCxXQUFLLGVBQWUsWUFBWSxXQUFXO0FBQUEsSUFDN0M7QUFBQSxFQUNGLEdBQUcsQ0FBQyxDQUFDO0FBRUwsU0FBTyw0Q0FBQywrQkFBWSxVQUFaLEVBQXFCLE9BQU8sRUFBQyxNQUFNLE1BQUssR0FBSSxVQUFTO0FBQy9EOyIsCiAgIm5hbWVzIjogWyJpc0VxdWFsIl0KfQo=
1
+ var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var c=(e,r)=>{for(var o in r)p(e,o,{get:r[o],enumerable:!0})},f=(e,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of F(r))!P.call(e,t)&&t!==o&&p(e,t,{get:()=>r[t],enumerable:!(i=v(r,t))||i.enumerable});return e};var l=e=>f(p({},"__esModule",{value:!0}),e);var C={};c(C,{FluxProvider:()=>x});module.exports=l(C);var a=require("@nlabs/utils/checks/isEqual"),s=require("react"),d=require("./FluxContext"),n=require("react/jsx-runtime");const x=({children:e,flux:r})=>{const[o,i]=(0,s.useState)(r.getState()),t=(0,s.useRef)(o);return(0,s.useEffect)(()=>{const u=m=>{(0,a.isEqual)(m,t.current)||(t.current=m,i(m))};return r.addListener("arkhamjs",u),()=>{r.removeListener("arkhamjs",u)}},[]),(0,n.jsx)(d.FluxContext.Provider,{value:{flux:r,state:o},children:e})};0&&(module.exports={FluxProvider});
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhQcm92aWRlci50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ0BubGFicy91dGlscy9jaGVja3MvaXNFcXVhbCc7XG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0ZsdXhDb250ZXh0fSBmcm9tICcuL0ZsdXhDb250ZXh0JztcblxuaW1wb3J0IHR5cGUge0ZDfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7Rmx1eFByb3ZpZGVyUHJvcHN9IGZyb20gJy4vRmx1eFByb3ZpZGVyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEZsdXhQcm92aWRlcjogRkM8Rmx1eFByb3ZpZGVyUHJvcHM+ID0gKHtjaGlsZHJlbiwgZmx1eH0pID0+IHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShmbHV4LmdldFN0YXRlKCkpO1xuICBjb25zdCByZWYgPSB1c2VSZWYoc3RhdGUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlU3RhdGUgPSAobmV3U3RhdGUpID0+IHtcbiAgICAgIGlmKCFpc0VxdWFsKG5ld1N0YXRlLCByZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBuZXdTdGF0ZTtcbiAgICAgICAgc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgICAgfVxuICAgIH07XG4gICAgZmx1eC5hZGRMaXN0ZW5lcignYXJraGFtanMnLCB1cGRhdGVTdGF0ZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZmx1eC5yZW1vdmVMaXN0ZW5lcignYXJraGFtanMnLCB1cGRhdGVTdGF0ZSk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiA8Rmx1eENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3tmbHV4LCBzdGF0ZX19PntjaGlsZHJlbn08L0ZsdXhDb250ZXh0LlByb3ZpZGVyPjtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiNFpBQUEsSUFBQUEsRUFBQSxHQUFBQyxFQUFBRCxFQUFBLGtCQUFBRSxJQUFBLGVBQUFDLEVBQUFILEdBSUEsSUFBQUksRUFBc0IsdUNBQ3RCQyxFQUEwQyxpQkFFMUNDLEVBQTBCLHlCQXVCakJDLEVBQUEsNkJBbEJGLE1BQU1MLEVBQXNDLENBQUMsQ0FBQyxTQUFBTSxFQUFVLEtBQUFDLENBQUksSUFBTSxDQUN2RSxLQUFNLENBQUNDLEVBQU9DLENBQVEsS0FBSSxZQUFTRixFQUFLLFNBQVMsQ0FBQyxFQUM1Q0csS0FBTSxVQUFPRixDQUFLLEVBRXhCLHNCQUFVLElBQU0sQ0FDZCxNQUFNRyxFQUFlQyxHQUFhLElBQzVCLFdBQVFBLEVBQVVGLEVBQUksT0FBTyxJQUMvQkEsRUFBSSxRQUFVRSxFQUNkSCxFQUFTRyxDQUFRLEVBRXJCLEVBQ0EsT0FBQUwsRUFBSyxZQUFZLFdBQVlJLENBQVcsRUFFakMsSUFBTSxDQUNYSixFQUFLLGVBQWUsV0FBWUksQ0FBVyxDQUM3QyxDQUNGLEVBQUcsQ0FBQyxDQUFDLEtBRUUsT0FBQyxjQUFZLFNBQVosQ0FBcUIsTUFBTyxDQUFDLEtBQUFKLEVBQU0sTUFBQUMsQ0FBSyxFQUFJLFNBQUFGLEVBQVMsQ0FDL0QiLAogICJuYW1lcyI6IFsiRmx1eFByb3ZpZGVyX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiRmx1eFByb3ZpZGVyIiwgIl9fdG9Db21tb25KUyIsICJpbXBvcnRfaXNFcXVhbCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X0ZsdXhDb250ZXh0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJjaGlsZHJlbiIsICJmbHV4IiwgInN0YXRlIiwgInNldFN0YXRlIiwgInJlZiIsICJ1cGRhdGVTdGF0ZSIsICJuZXdTdGF0ZSJdCn0K
@@ -1,16 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
- var FluxProvider_types_exports = {};
15
- module.exports = __toCommonJS(FluxProvider_types_exports);
16
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhQcm92aWRlci50eXBlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Rmx1eEZyYW1ld29ya30gZnJvbSAnQG5sYWJzL2Fya2hhbWpzJztcblxuZXhwb3J0IGludGVyZmFjZSBGbHV4UHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogYW55O1xuICBmbHV4OiBGbHV4RnJhbWV3b3JrO1xuICBzdGF0ZT86IGFueTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
1
+ var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var m=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of F(r))!i.call(e,o)&&o!==t&&l(e,o,{get:()=>r[o],enumerable:!(a=x(r,o))||a.enumerable});return e};var n=e=>m(l({},"__esModule",{value:!0}),e);var u={};module.exports=n(u);
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL0ZsdXhQcm92aWRlci50eXBlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Rmx1eEZyYW1ld29ya30gZnJvbSAnQG5sYWJzL2Fya2hhbWpzJztcblxuZXhwb3J0IGludGVyZmFjZSBGbHV4UHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogYW55O1xuICBmbHV4OiBGbHV4RnJhbWV3b3JrO1xuICBzdGF0ZT86IGFueTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJrV0FBQSxJQUFBQSxFQUFBLGtCQUFBQyxFQUFBRCIsCiAgIm5hbWVzIjogWyJGbHV4UHJvdmlkZXJfdHlwZXNfZXhwb3J0cyIsICJfX3RvQ29tbW9uSlMiXQp9Cg==
@@ -1,3 +1 @@
1
- class ResizeObserver {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL1Jlc2l6ZU9ic2VydmVyLmQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogVGhlICoqUmVzaXplT2JzZXJ2ZXIqKiBpbnRlcmZhY2UgcmVwb3J0cyBjaGFuZ2VzIHRvIHRoZSBkaW1lbnNpb25zIG9mIGFuXG4gKiBbRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQpJ3MgY29udGVudFxuICogb3IgYm9yZGVyIGJveCwgb3IgdGhlIGJvdW5kaW5nIGJveCBvZiBhblxuICogW1NWR0VsZW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TVkdFbGVtZW50KS5cbiAqXG4gKiA+ICoqTm90ZSoqOiBUaGUgY29udGVudCBib3ggaXMgdGhlIGJveCBpbiB3aGljaCBjb250ZW50IGNhbiBiZSBwbGFjZWQsXG4gKiA+IG1lYW5pbmcgdGhlIGJvcmRlciBib3ggbWludXMgdGhlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aC4gVGhlIGJvcmRlciBib3hcbiAqID4gZW5jb21wYXNzZXMgdGhlIGNvbnRlbnQsIHBhZGRpbmcsIGFuZCBib3JkZXIuIFNlZVxuICogPiBbVGhlIGJveCBtb2RlbF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9MZWFybi9DU1MvQnVpbGRpbmdfYmxvY2tzL1RoZV9ib3hfbW9kZWwpXG4gKiA+IGZvciBmdXJ0aGVyIGV4cGxhbmF0aW9uLlxuICpcbiAqIGBSZXNpemVPYnNlcnZlcmAgYXZvaWRzIGluZmluaXRlIGNhbGxiYWNrIGxvb3BzIGFuZCBjeWNsaWMgZGVwZW5kZW5jaWVzIHRoYXRcbiAqIGFyZSBvZnRlbiBjcmVhdGVkIHdoZW4gcmVzaXppbmcgdmlhIGEgY2FsbGJhY2sgZnVuY3Rpb24uIEl0IGRvZXMgdGhpcyBieSBvbmx5XG4gKiBwcm9jZXNzaW5nIGVsZW1lbnRzIGRlZXBlciBpbiB0aGUgRE9NIGluIHN1YnNlcXVlbnQgZnJhbWVzLiBJbXBsZW1lbnRhdGlvbnNcbiAqIHNob3VsZCwgaWYgdGhleSBmb2xsb3cgdGhlIHNwZWNpZmljYXRpb24sIGludm9rZSByZXNpemUgZXZlbnRzIGJlZm9yZSBwYWludFxuICogYW5kIGFmdGVyIGxheW91dC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlclxuICovXG5jbGFzcyBSZXNpemVPYnNlcnZlciB7XG4gIC8qKlxuICAgKiBUaGUgKipSZXNpemVPYnNlcnZlcioqIGNvbnN0cnVjdG9yIGNyZWF0ZXMgYSBuZXcgYFJlc2l6ZU9ic2VydmVyYCBvYmplY3QsXG4gICAqIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlcG9ydCBjaGFuZ2VzIHRvIHRoZSBjb250ZW50IG9yIGJvcmRlciBib3ggb2YgYW5cbiAgICogYEVsZW1lbnRgIG9yIHRoZSBib3VuZGluZyBib3ggb2YgYW4gYFNWR0VsZW1lbnRgLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFja1xuICAgKiBUaGUgZnVuY3Rpb24gY2FsbGVkIHdoZW5ldmVyIGFuIG9ic2VydmVkIHJlc2l6ZSBvY2N1cnMuIFRoZSBmdW5jdGlvbiBpc1xuICAgKiBjYWxsZWQgd2l0aCB0d28gcGFyYW1ldGVyczpcbiAgICogKiAqKmVudHJpZXMqKlxuICAgKiAgIEFuIGFycmF5IG9mXG4gICAqICAgW1Jlc2l6ZU9ic2VydmVyRW50cnldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlckVudHJ5KVxuICAgKiAgIG9iamVjdHMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgdGhlIG5ldyBkaW1lbnNpb25zIG9mIHRoZSBlbGVtZW50XG4gICAqICAgYWZ0ZXIgZWFjaCBjaGFuZ2UuXG4gICAqICogKipvYnNlcnZlcioqXG4gICAqICAgQSByZWZlcmVuY2UgdG8gdGhlIGBSZXNpemVPYnNlcnZlcmAgaXRzZWxmLCBzbyBpdCB3aWxsIGRlZmluaXRlbHkgYmVcbiAgICogICBhY2Nlc3NpYmxlIGZyb20gaW5zaWRlIHRoZSBjYWxsYmFjaywgc2hvdWxkIHlvdSBuZWVkIGl0LiBUaGlzIGNvdWxkIGJlXG4gICAqICAgdXNlZCBmb3IgZXhhbXBsZSB0byBhdXRvbWF0aWNhbGx5IHVub2JzZXJ2ZSB0aGUgb2JzZXJ2ZXIgd2hlbiBhIGNlcnRhaW5cbiAgICogICBjb25kaXRpb24gaXMgcmVhY2hlZCwgYnV0IHlvdSBjYW4gb21pdCBpdCBpZiB5b3UgZG9uJ3QgbmVlZCBpdC5cbiAgICpcbiAgICogVGhlIGNhbGxiYWNrIHdpbGwgZ2VuZXJhbGx5IGZvbGxvdyBhIHBhdHRlcm4gYWxvbmcgdGhlIGxpbmVzIG9mOlxuICAgKiBgYGBqc1xuICAgKiBmdW5jdGlvbihlbnRyaWVzLCBvYnNlcnZlcikge1xuICAgKiAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICogICAgIC8vIERvIHNvbWV0aGluZyB0byBlYWNoIGVudHJ5XG4gICAqICAgICAvLyBhbmQgcG9zc2libHkgc29tZXRoaW5nIHRvIHRoZSBvYnNlcnZlciBpdHNlbGZcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBpcyB0YWtlbiBmcm9tIHRoZVxuICAgKiBbcmVzaXplLW9ic2VydmVyLXRleHQuaHRtbF0oaHR0cHM6Ly9tZG4uZ2l0aHViLmlvL2RvbS1leGFtcGxlcy9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLXRleHQuaHRtbClcbiAgICogKFtzZWUgc291cmNlXShodHRwczovL2dpdGh1Yi5jb20vbWRuL2RvbS1leGFtcGxlcy9ibG9iL21hc3Rlci9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLXRleHQuaHRtbCkpXG4gICAqIGV4YW1wbGU6XG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgKiAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICogICAgIGlmKGVudHJ5LmNvbnRlbnRCb3hTaXplKSB7XG4gICAqICAgICAgIGgxRWxlbS5zdHlsZS5mb250U2l6ZSA9IE1hdGgubWF4KDEuNSwgZW50cnkuY29udGVudEJveFNpemUuaW5saW5lU2l6ZS8yMDApICsgJ3JlbSc7XG4gICAqICAgICAgIHBFbGVtLnN0eWxlLmZvbnRTaXplID0gTWF0aC5tYXgoMSwgZW50cnkuY29udGVudEJveFNpemUuaW5saW5lU2l6ZS82MDApICsgJ3JlbSc7XG4gICAqICAgICB9IGVsc2Uge1xuICAgKiAgICAgICBoMUVsZW0uc3R5bGUuZm9udFNpemUgPSBNYXRoLm1heCgxLjUsIGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoLzIwMCkgKyAncmVtJztcbiAgICogICAgICAgcEVsZW0uc3R5bGUuZm9udFNpemUgPSBNYXRoLm1heCgxLCBlbnRyeS5jb250ZW50UmVjdC53aWR0aC82MDApICsgJ3JlbSc7XG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9KTtcbiAgICpcbiAgICogcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShkaXZFbGVtKTtcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNhbGxiYWNrOiBSZXNpemVPYnNlcnZlckNhbGxiYWNrKTtcblxuICAvKipcbiAgICogVGhlICoqZGlzY29ubmVjdCgpKiogbWV0aG9kIG9mIHRoZVxuICAgKiBbUmVzaXplT2JzZXJ2ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlcilcbiAgICogaW50ZXJmYWNlIHVub2JzZXJ2ZXMgYWxsIG9ic2VydmVkXG4gICAqIFtFbGVtZW50XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudCkgb3JcbiAgICogW1NWR0VsZW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TVkdFbGVtZW50KVxuICAgKiB0YXJnZXRzLlxuICAgKi9cbiAgZGlzY29ubmVjdDogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGBvYnNlcnZlKClgIG1ldGhvZCBvZiB0aGVcbiAgICogW1Jlc2l6ZU9ic2VydmVyXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzaXplT2JzZXJ2ZXIpXG4gICAqIGludGVyZmFjZSBzdGFydHMgb2JzZXJ2aW5nIHRoZSBzcGVjaWZpZWRcbiAgICogW0VsZW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50KSBvclxuICAgKiBbU1ZHRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NWR0VsZW1lbnQpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldCwgb3B0aW9ucyk7XG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXRcbiAgICogQSByZWZlcmVuY2UgdG8gYW5cbiAgICogW0VsZW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50KSBvclxuICAgKiBbU1ZHRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NWR0VsZW1lbnQpXG4gICAqIHRvIGJlIG9ic2VydmVkLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBBbiBvcHRpb25zIG9iamVjdCBhbGxvd2luZyB5b3UgdG8gc2V0IG9wdGlvbnMgZm9yIHRoZSBvYnNlcnZhdGlvbi5cbiAgICogQ3VycmVudGx5IHRoaXMgb25seSBoYXMgb25lIHBvc3NpYmxlIG9wdGlvbiB0aGF0IGNhbiBiZSBzZXQuXG4gICAqL1xuICBvYnNlcnZlOiAodGFyZ2V0OiBFbGVtZW50LCBvcHRpb25zPzogUmVzaXplT2JzZXJ2ZXJPYnNlcnZlT3B0aW9ucykgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlICoqdW5vYnNlcnZlKCkqKiBtZXRob2Qgb2YgdGhlXG4gICAqIFtSZXNpemVPYnNlcnZlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZU9ic2VydmVyKVxuICAgKiBpbnRlcmZhY2UgZW5kcyB0aGUgb2JzZXJ2aW5nIG9mIGEgc3BlY2lmaWVkXG4gICAqIFtFbGVtZW50XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudCkgb3JcbiAgICogW1NWR0VsZW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TVkdFbGVtZW50KS5cbiAgICovXG4gIHVub2JzZXJ2ZTogKHRhcmdldDogRWxlbWVudCkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyT2JzZXJ2ZU9wdGlvbnMge1xuICAvKipcbiAgICogU2V0cyB3aGljaCBib3ggbW9kZWwgdGhlIG9ic2VydmVyIHdpbGwgb2JzZXJ2ZSBjaGFuZ2VzIHRvLiBQb3NzaWJsZSB2YWx1ZXNcbiAgICogYXJlIGBjb250ZW50LWJveGAgKHRoZSBkZWZhdWx0KSwgYW5kIGBib3JkZXItYm94YC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjb250ZW50LWJveFwiXG4gICAqL1xuICBib3g/OiBcImNvbnRlbnQtYm94XCIgfCBcImJvcmRlci1ib3hcIjtcbn1cblxuLyoqXG4gKiBUaGUgZnVuY3Rpb24gY2FsbGVkIHdoZW5ldmVyIGFuIG9ic2VydmVkIHJlc2l6ZSBvY2N1cnMuIFRoZSBmdW5jdGlvbiBpc1xuICogY2FsbGVkIHdpdGggdHdvIHBhcmFtZXRlcnM6XG4gKlxuICogQHBhcmFtIGVudHJpZXNcbiAqIEFuIGFycmF5IG9mXG4gKiBbUmVzaXplT2JzZXJ2ZXJFbnRyeV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZU9ic2VydmVyRW50cnkpXG4gKiBvYmplY3RzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBuZXcgZGltZW5zaW9ucyBvZiB0aGUgZWxlbWVudCBhZnRlclxuICogZWFjaCBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIG9ic2VydmVyXG4gKiBBIHJlZmVyZW5jZSB0byB0aGUgYFJlc2l6ZU9ic2VydmVyYCBpdHNlbGYsIHNvIGl0IHdpbGwgZGVmaW5pdGVseSBiZVxuICogYWNjZXNzaWJsZSBmcm9tIGluc2lkZSB0aGUgY2FsbGJhY2ssIHNob3VsZCB5b3UgbmVlZCBpdC4gVGhpcyBjb3VsZCBiZSB1c2VkXG4gKiBmb3IgZXhhbXBsZSB0byBhdXRvbWF0aWNhbGx5IHVub2JzZXJ2ZSB0aGUgb2JzZXJ2ZXIgd2hlbiBhIGNlcnRhaW4gY29uZGl0aW9uXG4gKiBpcyByZWFjaGVkLCBidXQgeW91IGNhbiBvbWl0IGl0IGlmIHlvdSBkb24ndCBuZWVkIGl0LlxuICpcbiAqIFRoZSBjYWxsYmFjayB3aWxsIGdlbmVyYWxseSBmb2xsb3cgYSBwYXR0ZXJuIGFsb25nIHRoZSBsaW5lcyBvZjpcbiAqIEBleGFtcGxlXG4gKiBmdW5jdGlvbihlbnRyaWVzLCBvYnNlcnZlcikge1xuICogICBmb3IgKGxldCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gKiAgICAgLy8gRG8gc29tZXRoaW5nIHRvIGVhY2ggZW50cnlcbiAqICAgICAvLyBhbmQgcG9zc2libHkgc29tZXRoaW5nIHRvIHRoZSBvYnNlcnZlciBpdHNlbGZcbiAqICAgfVxuICogfVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcbiAqICAgZm9yIChsZXQgZW50cnkgb2YgZW50cmllcykge1xuICogICAgIGlmKGVudHJ5LmNvbnRlbnRCb3hTaXplKSB7XG4gKiAgICAgICBoMUVsZW0uc3R5bGUuZm9udFNpemUgPSBNYXRoLm1heCgxLjUsIGVudHJ5LmNvbnRlbnRCb3hTaXplLmlubGluZVNpemUvMjAwKSArICdyZW0nO1xuICogICAgICAgcEVsZW0uc3R5bGUuZm9udFNpemUgPSBNYXRoLm1heCgxLCBlbnRyeS5jb250ZW50Qm94U2l6ZS5pbmxpbmVTaXplLzYwMCkgKyAncmVtJztcbiAqICAgICB9IGVsc2Uge1xuICogICAgICAgaDFFbGVtLnN0eWxlLmZvbnRTaXplID0gTWF0aC5tYXgoMS41LCBlbnRyeS5jb250ZW50UmVjdC53aWR0aC8yMDApICsgJ3JlbSc7XG4gKiAgICAgICBwRWxlbS5zdHlsZS5mb250U2l6ZSA9IE1hdGgubWF4KDEsIGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoLzYwMCkgKyAncmVtJztcbiAqICAgICB9XG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZGl2RWxlbSk7XG4gKi9cbnR5cGUgUmVzaXplT2JzZXJ2ZXJDYWxsYmFjayA9IChcbiAgZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdLFxuICBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIsXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogVGhlICoqUmVzaXplT2JzZXJ2ZXJFbnRyeSoqIGludGVyZmFjZSByZXByZXNlbnRzIHRoZSBvYmplY3QgcGFzc2VkIHRvIHRoZVxuICogW1Jlc2l6ZU9ic2VydmVyKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlci9SZXNpemVPYnNlcnZlcilcbiAqIGNvbnN0cnVjdG9yJ3MgY2FsbGJhY2sgZnVuY3Rpb24sIHdoaWNoIGFsbG93cyB5b3UgdG8gYWNjZXNzIHRoZSBuZXdcbiAqIGRpbWVuc2lvbnMgb2YgdGhlXG4gKiBbRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQpIG9yXG4gKiBbU1ZHRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NWR0VsZW1lbnQpXG4gKiBiZWluZyBvYnNlcnZlZC5cbiAqL1xuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyRW50cnkge1xuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5ldyBib3JkZXIgYm94IHNpemUgb2YgdGhlIG9ic2VydmVkIGVsZW1lbnQgd2hlblxuICAgKiB0aGUgY2FsbGJhY2sgaXMgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9yZGVyQm94U2l6ZTogUmVzaXplT2JzZXJ2ZXJFbnRyeUJveFNpemU7XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBuZXcgY29udGVudCBib3ggc2l6ZSBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudCB3aGVuXG4gICAqIHRoZSBjYWxsYmFjayBpcyBydW4uXG4gICAqL1xuICByZWFkb25seSBjb250ZW50Qm94U2l6ZTogUmVzaXplT2JzZXJ2ZXJFbnRyeUJveFNpemU7XG5cbiAgLyoqXG4gICAqIEEgW0RPTVJlY3RSZWFkT25seV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RPTVJlY3RSZWFkT25seSlcbiAgICogb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5ldyBzaXplIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50IHdoZW4gdGhlIGNhbGxiYWNrIGlzXG4gICAqIHJ1bi4gTm90ZSB0aGF0IHRoaXMgaXMgYmV0dGVyIHN1cHBvcnRlZCB0aGFuIHRoZSBhYm92ZSB0d28gcHJvcGVydGllcywgYnV0XG4gICAqIGl0IGlzIGxlZnQgb3ZlciBmcm9tIGFuIGVhcmxpZXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlc2l6ZSBPYnNlcnZlciBBUEksXG4gICAqIGlzIHN0aWxsIGluY2x1ZGVkIGluIHRoZSBzcGVjIGZvciB3ZWIgY29tcGF0IHJlYXNvbnMsIGFuZCBtYXkgYmUgZGVwcmVjYXRlZFxuICAgKiBpbiBmdXR1cmUgdmVyc2lvbnMuXG4gICAqL1xuICAvLyBub2RlX21vZHVsZXMvdHlwZXNjcmlwdC9saWIvbGliLmRvbS5kLnRzXG4gIHJlYWRvbmx5IGNvbnRlbnRSZWN0OiBET01SZWN0UmVhZE9ubHk7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZVxuICAgKiBbRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQpIG9yXG4gICAqIFtTVkdFbGVtZW50XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU1ZHRWxlbWVudClcbiAgICogYmVpbmcgb2JzZXJ2ZWQuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IEVsZW1lbnQ7XG59XG5cbi8qKlxuICogVGhlICoqYm9yZGVyQm94U2l6ZSoqIHJlYWQtb25seSBwcm9wZXJ0eSBvZiB0aGVcbiAqIFtSZXNpemVPYnNlcnZlckVudHJ5XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzaXplT2JzZXJ2ZXJFbnRyeSlcbiAqIGludGVyZmFjZSByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBuZXcgYm9yZGVyIGJveCBzaXplIG9mIHRoZVxuICogb2JzZXJ2ZWQgZWxlbWVudCB3aGVuIHRoZSBjYWxsYmFjayBpcyBydW4uXG4gKi9cbmludGVyZmFjZSBSZXNpemVPYnNlcnZlckVudHJ5Qm94U2l6ZSB7XG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50J3MgYm9yZGVyIGJveCBpbiB0aGUgYmxvY2sgZGltZW5zaW9uLiBGb3JcbiAgICogYm94ZXMgd2l0aCBhIGhvcml6b250YWxcbiAgICogW3dyaXRpbmctbW9kZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3dyaXRpbmctbW9kZSksXG4gICAqIHRoaXMgaXMgdGhlIHZlcnRpY2FsIGRpbWVuc2lvbiwgb3IgaGVpZ2h0OyBpZiB0aGUgd3JpdGluZy1tb2RlIGlzIHZlcnRpY2FsLFxuICAgKiB0aGlzIGlzIHRoZSBob3Jpem9udGFsIGRpbWVuc2lvbiwgb3Igd2lkdGguXG4gICAqL1xuICBibG9ja1NpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxlbmd0aCBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudCdzIGJvcmRlciBib3ggaW4gdGhlIGlubGluZSBkaW1lbnNpb24uXG4gICAqIEZvciBib3hlcyB3aXRoIGEgaG9yaXpvbnRhbFxuICAgKiBbd3JpdGluZy1tb2RlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1Mvd3JpdGluZy1tb2RlKSxcbiAgICogdGhpcyBpcyB0aGUgaG9yaXpvbnRhbCBkaW1lbnNpb24sIG9yIHdpZHRoOyBpZiB0aGUgd3JpdGluZy1tb2RlIGlzXG4gICAqIHZlcnRpY2FsLCB0aGlzIGlzIHRoZSB2ZXJ0aWNhbCBkaW1lbnNpb24sIG9yIGhlaWdodC5cbiAgICovXG4gIGlubGluZVNpemU6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFdpbmRvdyB7XG4gIFJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbn0iXSwKICAibWFwcGluZ3MiOiAiQUFvQkEsTUFBTSxlQUFlO0FBOEZyQjsiLAogICJuYW1lcyI6IFtdCn0K
1
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K