bdsa-react-components 0.1.18 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +224 -0
- package/CURSOR_INTEGRATION.md +2 -1
- package/dist/components/FolderBrowser/FolderBrowser.d.ts +38 -4
- package/dist/components/FolderBrowser/FolderBrowser.d.ts.map +1 -1
- package/dist/components/SlideViewer/SlideViewer.d.ts.map +1 -1
- package/dist/index.cjs +36 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12076 -12023
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/utils/itemUtils.d.ts +55 -0
- package/dist/utils/itemUtils.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,230 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.1.19] - 2025-11-10
|
|
9
|
+
|
|
10
|
+
### Added - Major UX Improvements and AI Model Detection 🚀
|
|
11
|
+
|
|
12
|
+
#### FolderBrowser: Item Count Display 📊
|
|
13
|
+
- **New prop**: `showItemCount?: boolean` - Display total item counts next to folder names
|
|
14
|
+
- Item count appears immediately after folder name: `myFolder (150)...`
|
|
15
|
+
- Shows `...` indicator when more items are available for pagination
|
|
16
|
+
- **Double-click the `...`** to automatically load ALL remaining items in background
|
|
17
|
+
- Shows ⏳ (hourglass) with pulse animation while loading all items
|
|
18
|
+
- Clickable indicator styled with blue color and hover underline
|
|
19
|
+
- Works with `showItems={false}` if `fetchItems={true}` is enabled
|
|
20
|
+
|
|
21
|
+
#### FolderBrowser: AI Model Detection 🤖
|
|
22
|
+
- **Automatic item classification** based on metadata:
|
|
23
|
+
- 🤖 **AI Model** - Items with `meta.dataset_args` AND `meta.train_args`
|
|
24
|
+
- 🖼️ **Image** - Items with `largeImage` flag
|
|
25
|
+
- 📄 **Item** - Regular items
|
|
26
|
+
- Type labels update dynamically: "AI Model", "Image", or "Item"
|
|
27
|
+
- **New utility functions**:
|
|
28
|
+
- `isAIModel(item: Item): boolean` - Check if item has AI model metadata
|
|
29
|
+
- `filterAIModels(items: Item[]): Item[]` - Filter array to only AI models
|
|
30
|
+
- Updated `Item` type interface with AI model metadata fields:
|
|
31
|
+
- `meta.dataset_args?: unknown`
|
|
32
|
+
- `meta.train_args?: unknown`
|
|
33
|
+
- `meta.results?: unknown`
|
|
34
|
+
|
|
35
|
+
#### FolderBrowser: Scroll Stability 🎯
|
|
36
|
+
- **Fixed scroll jumping** when expanding/collapsing folders
|
|
37
|
+
- Clicked folder stays in exact same position on screen
|
|
38
|
+
- Calculates position before DOM changes and compensates after
|
|
39
|
+
- No more losing track of which folder you just clicked
|
|
40
|
+
- Works for both expand and collapse operations
|
|
41
|
+
|
|
42
|
+
#### FolderBrowser: Visual Feedback 👁️
|
|
43
|
+
- **Last-clicked folder** gets prominent dark blue highlight
|
|
44
|
+
- Helps track which folder you're currently interacting with
|
|
45
|
+
- New CSS class: `.bdsa-folder-browser__folder-header.last-clicked`
|
|
46
|
+
- Darker blue background (#bbdefb)
|
|
47
|
+
- Thicker 3px left border (#1976d2)
|
|
48
|
+
- Persists until you click a different folder
|
|
49
|
+
- Follows standard UX patterns for active/selected states
|
|
50
|
+
|
|
51
|
+
#### FolderBrowser: Authentication Integration 🔐
|
|
52
|
+
- Fixed authentication state detection in Storybook examples
|
|
53
|
+
- Added "With Authentication" story showing proper integration with `DsaAuthManager`
|
|
54
|
+
- Added "With Item Filtering" story demonstrating item count and filtering
|
|
55
|
+
- Shows "Browsing public resources" indicator when not authenticated
|
|
56
|
+
- Automatic token passing via `apiHeaders` when authenticated
|
|
57
|
+
- Component re-mounts on auth state change using `key` prop pattern
|
|
58
|
+
- Works for both public and private resources
|
|
59
|
+
|
|
60
|
+
### Changed - Layout and Styling
|
|
61
|
+
|
|
62
|
+
#### FolderBrowser: Item Count Layout
|
|
63
|
+
- Item count appears left-justified immediately after folder name
|
|
64
|
+
- Changed `.bdsa-folder-browser__folder-name` from `flex: 1` to `flex: 0 1 auto`
|
|
65
|
+
- Added `max-width: 60%` to folder name to prevent excessive expansion
|
|
66
|
+
- Changed `.bdsa-folder-browser__folder-type` to use `margin-left: auto` (pushed to right)
|
|
67
|
+
- Prevents wide layouts from creating large gaps between name and count
|
|
68
|
+
|
|
69
|
+
#### New CSS Classes
|
|
70
|
+
- `.bdsa-folder-browser__item-count` - Item count display styling
|
|
71
|
+
- `.bdsa-folder-browser__load-all-indicator` - Clickable "..." indicator
|
|
72
|
+
- `.bdsa-folder-browser__load-all-indicator:hover` - Hover state with underline
|
|
73
|
+
- `.bdsa-folder-browser__load-all-indicator.loading` - Loading state with pulse animation
|
|
74
|
+
- `@keyframes pulse` - Animation for loading indicator
|
|
75
|
+
|
|
76
|
+
### Fixed
|
|
77
|
+
|
|
78
|
+
#### FolderBrowser: Item Count Display
|
|
79
|
+
- Fixed item count not appearing for array-based API responses
|
|
80
|
+
- Now correctly handles both array and paginated response formats
|
|
81
|
+
- Calculates `totalCount` from array length when API doesn't provide it
|
|
82
|
+
- Shows count even when `itemsPerPage` is default (50)
|
|
83
|
+
|
|
84
|
+
#### FolderBrowser: Storybook Auth Integration
|
|
85
|
+
- Fixed incorrect destructuring of `useDsaAuth()` return value
|
|
86
|
+
- Corrected from `{ isAuthenticated, token, userInfo }` to `{ authStatus, getToken }`
|
|
87
|
+
- Added proper derived values: `token = getToken()`, `isAuthenticated = authStatus.isAuthenticated`
|
|
88
|
+
- Added debug logging to help troubleshoot auth state issues
|
|
89
|
+
|
|
90
|
+
#### FolderBrowser: Scroll Behavior
|
|
91
|
+
- Replaced `scrollIntoView` with position-based scroll compensation
|
|
92
|
+
- Captures element position relative to scroll container before changes
|
|
93
|
+
- Adjusts scroll position after DOM updates to keep element stable
|
|
94
|
+
- Works with nested scroll containers (e.g., Storybook panels)
|
|
95
|
+
|
|
96
|
+
### Technical Details
|
|
97
|
+
|
|
98
|
+
#### Load All Items Implementation
|
|
99
|
+
- New `loadAllItems` callback function handles bulk loading
|
|
100
|
+
- Uses while loop to paginate through all items until `hasMore` is false
|
|
101
|
+
- Properly stops propagation to prevent folder collapse/expand
|
|
102
|
+
- Updates loading state to show visual feedback
|
|
103
|
+
- Console logging tracks progress for debugging
|
|
104
|
+
|
|
105
|
+
#### Item Classification Logic
|
|
106
|
+
Priority order for icon selection:
|
|
107
|
+
1. Check `isAIModel(item)` - requires BOTH `dataset_args` AND `train_args`
|
|
108
|
+
2. Check `hasLargeImage(item)` - checks root and meta levels
|
|
109
|
+
3. Default to generic item icon
|
|
110
|
+
|
|
111
|
+
#### Scroll Position Calculation
|
|
112
|
+
```typescript
|
|
113
|
+
// Before DOM changes
|
|
114
|
+
const initialTop = rect.top - containerRect.top
|
|
115
|
+
|
|
116
|
+
// After DOM changes
|
|
117
|
+
const newTop = newRect.top - containerRect.top
|
|
118
|
+
const diff = newTop - initialTop
|
|
119
|
+
scrollContainer.scrollTop -= diff // Compensate
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Documentation
|
|
123
|
+
|
|
124
|
+
- Added `V0.1.19_UPDATE_NOTES.md` - Comprehensive update guide for downstream applications
|
|
125
|
+
- Includes migration guide, API changes, testing recommendations
|
|
126
|
+
- Documents breaking changes in auth hook usage
|
|
127
|
+
- Provides code examples for all new features
|
|
128
|
+
|
|
129
|
+
### Breaking Changes
|
|
130
|
+
|
|
131
|
+
⚠️ **None** - All changes are backwards compatible
|
|
132
|
+
|
|
133
|
+
**Note**: The `useDsaAuth()` hook was already returning `{ authStatus, getToken, ... }`. If you were incorrectly destructuring as `{ isAuthenticated, token, userInfo }`, you need to update your code. This is a fix, not a breaking change.
|
|
134
|
+
|
|
135
|
+
## [0.1.18] - 2025-11-10
|
|
136
|
+
|
|
137
|
+
### Added - Major Performance and Feature Improvements
|
|
138
|
+
|
|
139
|
+
#### SlideViewer: Optimized Annotation Opacity Updates 🔥
|
|
140
|
+
- **Performance**: Eliminated unnecessary re-renders when annotation opacity changes
|
|
141
|
+
- Opacity changes now update existing Paper.js layers directly instead of re-fetching and re-rendering
|
|
142
|
+
- Smooth 60fps slider updates when dragging opacity controls
|
|
143
|
+
- Removed `annotationOpacity` and `annotationOpacities` from main render effect dependencies
|
|
144
|
+
- Separate effect handles opacity updates without triggering full component re-renders
|
|
145
|
+
- **Impact**: Significantly better UX when adjusting annotation visibility
|
|
146
|
+
|
|
147
|
+
#### FolderBrowser: Advanced Item Filtering and Fetching 🔥
|
|
148
|
+
- **Separate fetch from display**: New `fetchItems` prop decouples fetching from rendering
|
|
149
|
+
- `showItems={false}` + `fetchItems={true}` = fetch items without displaying them in tree
|
|
150
|
+
- Useful for getting item counts, filtering, or custom rendering
|
|
151
|
+
- Prevents duplicate API calls when you need item data but not the default UI
|
|
152
|
+
|
|
153
|
+
- **Flexible item filtering**: New `itemFilter` prop with comprehensive filtering support
|
|
154
|
+
- Filter by file extension: `item.name.endsWith('.jpg')`
|
|
155
|
+
- Filter by metadata properties: `item.meta?.type === 'model'`
|
|
156
|
+
- Combine multiple criteria: `hasValidExtension && hasLargeImage`
|
|
157
|
+
- Receives full `Item` object for maximum flexibility
|
|
158
|
+
- ⚠️ Must be wrapped in `useCallback` to prevent infinite loops
|
|
159
|
+
|
|
160
|
+
- **Item counts display**: New `showItemCount` prop shows total item count next to folder names
|
|
161
|
+
- Shows actual count from API: `(123)`
|
|
162
|
+
- Shows `...(75)` indicator for folders with 50+ items
|
|
163
|
+
- Respects pagination - shows total count, not just loaded count
|
|
164
|
+
- Works even when `showItems={false}` if `fetchItems={true}`
|
|
165
|
+
|
|
166
|
+
- **Enhanced callbacks**: New `onItemsFetched` callback receives all fetched items before filtering
|
|
167
|
+
- Useful for custom processing, analytics, or storing metadata
|
|
168
|
+
- Called with `(folderId, items)` before `itemFilter` is applied
|
|
169
|
+
- Allows parent component to react to data fetches independently of display
|
|
170
|
+
|
|
171
|
+
#### Type System Improvements
|
|
172
|
+
- Updated `FolderBrowserProps` type with new props and better documentation
|
|
173
|
+
- Added comprehensive JSDoc examples for `itemFilter` showing all common patterns
|
|
174
|
+
- Updated custom render functions to receive `itemCount?: number` parameter
|
|
175
|
+
- Exported `FolderBrowserItem` type from main index (alias for `Item`)
|
|
176
|
+
- Better TypeScript IntelliSense for all new features
|
|
177
|
+
|
|
178
|
+
### Changed
|
|
179
|
+
- **FolderBrowser**: Default for `showItems` changed from `true` to `false`
|
|
180
|
+
- More sensible default - most use cases browse folders, not files
|
|
181
|
+
- Explicitly set `showItems={true}` if you want the old behavior
|
|
182
|
+
- Breaking change: If you relied on default `showItems` behavior, you need to explicitly set it
|
|
183
|
+
|
|
184
|
+
### Technical Details
|
|
185
|
+
- Updated `SlideViewer.tsx` render effect dependencies (lines 1599-1613)
|
|
186
|
+
- Completely rewrote `loadItemsForFolder` with filtering and callback support
|
|
187
|
+
- Added `shouldFetchItems` computed value for cleaner logic
|
|
188
|
+
- Updated `itemPaginationState` to track `totalCount` from API
|
|
189
|
+
- Added comprehensive test suite for all new features:
|
|
190
|
+
- Item filtering by name/extension
|
|
191
|
+
- Item filtering by metadata properties
|
|
192
|
+
- `fetchItems` vs `showItems` behavior
|
|
193
|
+
- Item count display with/without `...` indicator
|
|
194
|
+
- `onItemsFetched` callback timing and parameters
|
|
195
|
+
- All tests passing (tests include new FolderBrowser test suite)
|
|
196
|
+
- No breaking changes to existing code (except `showItems` default)
|
|
197
|
+
|
|
198
|
+
### Migration Guide
|
|
199
|
+
If you're upgrading from 0.1.17 and using `FolderBrowser`:
|
|
200
|
+
|
|
201
|
+
```diff
|
|
202
|
+
<FolderBrowser
|
|
203
|
+
apiBaseUrl={apiBaseUrl}
|
|
204
|
+
+ showItems={true} // Add this if you want the old behavior
|
|
205
|
+
/>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**New filtering patterns:**
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// Filter by extension
|
|
212
|
+
const itemFilter = useCallback((item) => {
|
|
213
|
+
return item.name.endsWith('.tif') || item.name.endsWith('.svs');
|
|
214
|
+
}, []);
|
|
215
|
+
|
|
216
|
+
// Filter by metadata
|
|
217
|
+
const itemFilter = useCallback((item) => {
|
|
218
|
+
return item.meta?.type === 'model' && item.largeImage != null;
|
|
219
|
+
}, []);
|
|
220
|
+
|
|
221
|
+
// Fetch items for count, but don't show them
|
|
222
|
+
<FolderBrowser
|
|
223
|
+
fetchItems={true}
|
|
224
|
+
showItems={false}
|
|
225
|
+
showItemCount={true}
|
|
226
|
+
onItemsFetched={(folderId, items) => {
|
|
227
|
+
console.log(`Folder ${folderId} has ${items.length} items`);
|
|
228
|
+
}}
|
|
229
|
+
/>
|
|
230
|
+
```
|
|
231
|
+
|
|
8
232
|
## [0.1.17] - 2025-11-07
|
|
9
233
|
|
|
10
234
|
### Changed - UI Improvements
|
package/CURSOR_INTEGRATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# bdsa-react-components - CURSOR Integration Guide
|
|
2
2
|
|
|
3
|
-
**Version:** 0.1.
|
|
3
|
+
**Version:** 0.1.19 | **Generated:** 2025-11-10T22:56:32.827Z
|
|
4
4
|
|
|
5
5
|
> This document provides everything Cursor needs to integrate and use the bdsa-react-components library.
|
|
6
6
|
> Copy this entire document into your project's .cursorrules or docs folder.
|
|
@@ -158,6 +158,7 @@ import type {
|
|
|
158
158
|
FolderBrowserProps,
|
|
159
159
|
Collection,
|
|
160
160
|
Folder,
|
|
161
|
+
Item as FolderBrowserItem,
|
|
161
162
|
Resource,
|
|
162
163
|
DsaAuthManagerProps,
|
|
163
164
|
} from 'bdsa-react-components'
|
|
@@ -61,17 +61,51 @@ export interface FolderBrowserProps {
|
|
|
61
61
|
parentFolderId?: string;
|
|
62
62
|
className?: string;
|
|
63
63
|
/** Custom render for collections */
|
|
64
|
-
renderCollection?: (collection: Collection, isExpanded: boolean, onToggle: () => void) => React.ReactNode;
|
|
64
|
+
renderCollection?: (collection: Collection, isExpanded: boolean, onToggle: () => void, itemCount?: number) => React.ReactNode;
|
|
65
65
|
/** Custom render for folders */
|
|
66
|
-
renderFolder?: (folder: Folder, depth: number, isExpanded: boolean, onToggle: () => void) => React.ReactNode;
|
|
67
|
-
/** If true, shows items (files) within folders and collections
|
|
66
|
+
renderFolder?: (folder: Folder, depth: number, isExpanded: boolean, onToggle: () => void, itemCount?: number) => React.ReactNode;
|
|
67
|
+
/** If true, shows items (files) within folders and collections in the tree view. Default: false */
|
|
68
68
|
showItems?: boolean;
|
|
69
|
-
/**
|
|
69
|
+
/** If true, fetches items from folders even if showItems is false. Useful for getting item counts or filtering. Default: value of showItems */
|
|
70
|
+
fetchItems?: boolean;
|
|
71
|
+
/** Number of items to load per page when items are fetched (default: 50, set to 0 to load all) */
|
|
70
72
|
itemsPerPage?: number;
|
|
71
73
|
/** Callback when an item is selected (only used when showItems is true) */
|
|
72
74
|
onItemSelect?: (item: Item) => void;
|
|
73
75
|
/** Custom render for items */
|
|
74
76
|
renderItem?: (item: Item, depth: number) => React.ReactNode;
|
|
77
|
+
/**
|
|
78
|
+
* Filter function for items. Called for each item fetched from API.
|
|
79
|
+
* Return true to include the item, false to exclude it.
|
|
80
|
+
* Receives the full Item object, so you can filter by name, extension, metadata, or any other property.
|
|
81
|
+
*
|
|
82
|
+
* ⚠️ IMPORTANT: This function must be stable (wrapped in useCallback) to prevent infinite re-renders.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Filter by extension
|
|
86
|
+
* const itemFilter = useCallback((item) => {
|
|
87
|
+
* return item.name.endsWith('.jpg') || item.name.endsWith('.png');
|
|
88
|
+
* }, []);
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* // Filter by metadata
|
|
92
|
+
* const itemFilter = useCallback((item) => {
|
|
93
|
+
* return item.meta?.type === 'model' && item.meta?.status === 'published';
|
|
94
|
+
* }, []);
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* // Combine name and metadata filters
|
|
98
|
+
* const itemFilter = useCallback((item) => {
|
|
99
|
+
* const hasValidExtension = item.name.endsWith('.tif') || item.name.endsWith('.svs');
|
|
100
|
+
* const hasLargeImage = item.largeImage != null;
|
|
101
|
+
* return hasValidExtension && hasLargeImage;
|
|
102
|
+
* }, []);
|
|
103
|
+
*/
|
|
104
|
+
itemFilter?: (item: Item) => boolean;
|
|
105
|
+
/** Callback when items are fetched for a folder. Receives folder/collection ID and all fetched items (before filtering). */
|
|
106
|
+
onItemsFetched?: (folderId: string, items: Item[]) => void;
|
|
107
|
+
/** If true, shows item count next to folder/collection names. Default: false */
|
|
108
|
+
showItemCount?: boolean;
|
|
75
109
|
/** If true, persists the selected resource to localStorage and restores it on mount. Default: false */
|
|
76
110
|
persistSelection?: boolean;
|
|
77
111
|
/** Custom key for localStorage persistence. Default: 'bdsa_folder_browser_selection' */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FolderBrowser.d.ts","sourceRoot":"","sources":["../../../src/components/FolderBrowser/FolderBrowser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"FolderBrowser.d.ts","sourceRoot":"","sources":["../../../src/components/FolderBrowser/FolderBrowser.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlideViewer.d.ts","sourceRoot":"","sources":["../../../src/components/SlideViewer/SlideViewer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SlideViewer.d.ts","sourceRoot":"","sources":["../../../src/components/SlideViewer/SlideViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAGhF,OAAO,KAAK,EAAE,iBAAiB,EAAW,MAAM,SAAS,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,IAAI,mBAAmB,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAqCnG,OAAO,mBAAmB,CAAA;AAE1B,MAAM,WAAW,cAAc;IAC3B,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;oFACgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,cAAc,CAAC,EAAE,WAAW,GAAG,UAAU,CAAA;IACzC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChC,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACnC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACnM,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACjC,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC7C,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,iDAAiD;IACjD,SAAS,EAAE,cAAc,CAAA;IACzB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAA;IACrD,qEAAqE;IACrE,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACnC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACrD,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC3D,2CAA2C;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,oBAAoB,CAAA;IACjC,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;mFAC+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;2EACuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;oFACgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;wGACoG;IACpG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnE,mGAAmG;IACnG,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,gHAAgH;IAChH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;yBAEqB;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qEAAqE;IACrE,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,4DAA4D;IAC5D,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,mIAAmI;IACnI,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3E,uHAAuH;IACvH,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5E,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3D;;;;gHAI4G;IAC5G,eAAe,CAAC,EAAE;QACd,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;QACjF,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAClH,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1E,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,QAAQ,CAAC,IAAI,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAC3F,GAAG,IAAI,CAAA;IACR,gIAAgI;IAChI,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;gGAE4F;IAC5F,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;;;4FAIwF;IACxF,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9E;AAwID;;;GAGG;AACH,eAAO,MAAM,WAAW,yFA49CvB,CAAA"}
|