@effijs/props-manager 2.0.12 → 2.0.13
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 +653 -0
- package/dist/cjs/PropertyManager.d.ts +1 -1
- package/dist/cjs/PropertyManager.d.ts.map +1 -1
- package/dist/cjs/PropertyManager.js +9 -4
- package/dist/cjs/PropertyManager.js.map +1 -1
- package/dist/cjs/utils.d.ts +1 -0
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +5 -0
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/PropertyManager.d.ts +1 -1
- package/dist/esm/PropertyManager.d.ts.map +1 -1
- package/dist/esm/PropertyManager.js +9 -4
- package/dist/esm/PropertyManager.js.map +1 -1
- package/dist/esm/utils.d.ts +1 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +5 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/PropertyManager.d.ts +1 -1
- package/dist/types/PropertyManager.d.ts.map +1 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
# Property Manager
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The Property Manager library is a powerful tool for managing and transforming React component props. It provides a structured way to handle complex component structures, redirect props to appropriate child components, and simplify component testing by analyzing prop interactions and results.
|
|
6
|
+
|
|
7
|
+
## Key Features
|
|
8
|
+
|
|
9
|
+
- **Prop Transformation**: Convert incoming props into appropriate styles and properties
|
|
10
|
+
- **Manage Design Systems**: Better supporting Design systems
|
|
11
|
+
- **Component Inheritance**: Extend existing property managers to create new components
|
|
12
|
+
- **Child Component Management**: Define and manage props for child components
|
|
13
|
+
- **Pattern Matching**: Transform props based on patterns
|
|
14
|
+
- **Provider Integration**: Connect to dynamic data sources
|
|
15
|
+
- **Testing Support**: Simplified testing of component prop behaviors
|
|
16
|
+
|
|
17
|
+
## Core Concepts
|
|
18
|
+
|
|
19
|
+
### PropertyManager
|
|
20
|
+
|
|
21
|
+
The PropertyManager is the core class responsible for managing component prop transformations. Its key features include:
|
|
22
|
+
|
|
23
|
+
1. **Separate Style and Prop Management**
|
|
24
|
+
- Allows independent control of styles and props transformations
|
|
25
|
+
- Uses distinct `.styles()` and `.props()` methods for clear separation
|
|
26
|
+
|
|
27
|
+
2. **Sequential Processing**
|
|
28
|
+
- Transformations are applied in the order they are defined
|
|
29
|
+
- Later transformations can override earlier ones
|
|
30
|
+
- This enables flexible layering of properties
|
|
31
|
+
|
|
32
|
+
3. **Component Creation and Inheritance**
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
const grid = PropertyManager.create('Grid')
|
|
36
|
+
.styles(
|
|
37
|
+
// Style transformations
|
|
38
|
+
)
|
|
39
|
+
.props(
|
|
40
|
+
// Props transformations
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const box = PropertyManager.create('Box')
|
|
44
|
+
.extends('Grid') // Inheritance
|
|
45
|
+
.styles(
|
|
46
|
+
// Additional style transformations
|
|
47
|
+
)
|
|
48
|
+
.props(
|
|
49
|
+
// Props transformations
|
|
50
|
+
);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
4. **Transformation Order**
|
|
54
|
+
- Base component transformations are applied first
|
|
55
|
+
- Extended component transformations are applied afterward
|
|
56
|
+
- Final output combines all transformations in sequence
|
|
57
|
+
|
|
58
|
+
5. **Usage Benefits**
|
|
59
|
+
- Promotes clean and maintainable code structure
|
|
60
|
+
- Enables component composition through inheritance
|
|
61
|
+
- Provides predictable prop transformation behavior
|
|
62
|
+
- Simplifies complex styling patterns
|
|
63
|
+
|
|
64
|
+
This structure makes PropertyManager ideal for:
|
|
65
|
+
- Building consistent component libraries
|
|
66
|
+
- Managing complex styling systems
|
|
67
|
+
- Creating extensible component hierarchies
|
|
68
|
+
- Maintaining clear separation of styling and behavioral props
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
### Style and Prop Transformers
|
|
72
|
+
|
|
73
|
+
The transformation system provides different ways to convert input props into desired output formats. Here's a detailed breakdown of the `Prop` transformer:
|
|
74
|
+
|
|
75
|
+
#### Prop
|
|
76
|
+
|
|
77
|
+
The `Prop` transformer is a versatile tool that can handle prop transformations in three main ways:
|
|
78
|
+
|
|
79
|
+
1. **Single Prop Renaming**
|
|
80
|
+
``` javascript
|
|
81
|
+
Prop('color', 'backgroundColor')
|
|
82
|
+
```
|
|
83
|
+
- Input: `{ color: 'blue' }`
|
|
84
|
+
- Output: `{ backgroundColor: 'blue' }`
|
|
85
|
+
- Process:
|
|
86
|
+
1. Takes the value from input prop 'color'
|
|
87
|
+
2. Creates new property with name 'backgroundColor'
|
|
88
|
+
3. Assigns the original value to the new property
|
|
89
|
+
|
|
90
|
+
2. **Multiple Props Pass-through**
|
|
91
|
+
``` javascript
|
|
92
|
+
Prop(['borderColor', 'borderWidth'])
|
|
93
|
+
```
|
|
94
|
+
- Input: `{ borderColor: 'black', borderWidth: 2 }`
|
|
95
|
+
- Output: `{ borderColor: 'black', borderWidth: 2 }`
|
|
96
|
+
- Process:
|
|
97
|
+
1. Takes an array of prop names
|
|
98
|
+
2. Creates identical properties in output
|
|
99
|
+
3. Copies values directly without transformation
|
|
100
|
+
4. If a prop is missing in input, it's skipped in output
|
|
101
|
+
|
|
102
|
+
3. **Custom Transformation Function**
|
|
103
|
+
``` javascript
|
|
104
|
+
Prop('color', ({color}) => ({ backgroundColor: color, borderColor: color }))
|
|
105
|
+
```
|
|
106
|
+
- Input: `{ color: 'red' }`
|
|
107
|
+
- Output: `{ backgroundColor: 'red', borderColor: 'red' }`
|
|
108
|
+
- Process:
|
|
109
|
+
1. Takes input prop name ('color')
|
|
110
|
+
2. Executes transformation function with props object
|
|
111
|
+
3. Function can return complex object with multiple properties
|
|
112
|
+
4. Allows for computed values and conditional logic
|
|
113
|
+
|
|
114
|
+
##### Advanced Features
|
|
115
|
+
|
|
116
|
+
1. **Value Processing**
|
|
117
|
+
``` javascript
|
|
118
|
+
Prop('size', (props) => ({
|
|
119
|
+
width: props.size * 2,
|
|
120
|
+
height: props.size * 2
|
|
121
|
+
}))
|
|
122
|
+
```
|
|
123
|
+
- Input: `{ size: 10 }`
|
|
124
|
+
- Output: `{ width: 20, height: 20 }`
|
|
125
|
+
- Allows mathematical operations and complex calculations
|
|
126
|
+
|
|
127
|
+
2. **Conditional Transformations**
|
|
128
|
+
``` javascript
|
|
129
|
+
Prop('variant', ({variant, disabled}) => ({
|
|
130
|
+
backgroundColor: disabled ? 'grey' : variant === 'primary' ? 'blue' : 'white'
|
|
131
|
+
}))
|
|
132
|
+
```
|
|
133
|
+
- Input: `{ variant: 'primary', disabled: true }`
|
|
134
|
+
- Output: `{ backgroundColor: 'grey' }`
|
|
135
|
+
- Can access multiple props for conditional logic
|
|
136
|
+
|
|
137
|
+
3. **Type Safety**
|
|
138
|
+
- Preserves TypeScript type information
|
|
139
|
+
- Provides autocomplete for prop names
|
|
140
|
+
- Validates prop types during transformation
|
|
141
|
+
|
|
142
|
+
This transformation system enables:
|
|
143
|
+
- Clean prop mapping
|
|
144
|
+
- Complex computed values
|
|
145
|
+
- Conditional styling
|
|
146
|
+
- Type-safe transformations
|
|
147
|
+
- Reusable transformation logic
|
|
148
|
+
|
|
149
|
+
The transformer can be used in both and methods, allowing for separation of visual styles from behavioral properties while using the same powerful transformation capabilities. `.styles()` `.props()`
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
#### Static
|
|
153
|
+
|
|
154
|
+
Applies constant styles or props:
|
|
155
|
+
|
|
156
|
+
```javascript
|
|
157
|
+
Static({
|
|
158
|
+
minHeight: 48,
|
|
159
|
+
overflow: 'hidden'
|
|
160
|
+
})
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### Pattern
|
|
164
|
+
|
|
165
|
+
The Pattern transformer is a powerful tool that generates multiple prop transformations using a template system. It's particularly useful for creating consistent, systematic prop mappings.
|
|
166
|
+
|
|
167
|
+
##### Core Concepts
|
|
168
|
+
1. **Pattern Definition**
|
|
169
|
+
``` javascript
|
|
170
|
+
Pattern('{placeholder}', valuesObject)
|
|
171
|
+
```
|
|
172
|
+
- First argument: pattern template with placeholders
|
|
173
|
+
- Second argument: object containing possible values
|
|
174
|
+
- Returns a pattern builder for defining transformations
|
|
175
|
+
|
|
176
|
+
2. **Value Mapping**
|
|
177
|
+
``` javascript
|
|
178
|
+
const spacing = {
|
|
179
|
+
s: 8,
|
|
180
|
+
m: 16,
|
|
181
|
+
l: 24,
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
- Values object defines all possible substitutions
|
|
185
|
+
- Keys become available for placeholder substitution
|
|
186
|
+
- Values are used in the resulting transformations
|
|
187
|
+
|
|
188
|
+
3. **Key Definition**
|
|
189
|
+
``` javascript
|
|
190
|
+
Pattern('{size}', spacing)
|
|
191
|
+
.key('margin-{size}', 'margin')
|
|
192
|
+
.key('padding-{size}', 'padding')
|
|
193
|
+
```
|
|
194
|
+
- `.key()` defines transformation rules
|
|
195
|
+
- First argument: input prop pattern
|
|
196
|
+
- Second argument: output property name
|
|
197
|
+
|
|
198
|
+
##### Transformation Process
|
|
199
|
+
1. **Pattern Recognition**
|
|
200
|
+
- Identifies placeholders in curly braces `{}`
|
|
201
|
+
- Matches placeholders with values object keys
|
|
202
|
+
- Creates combinations for each possible value
|
|
203
|
+
|
|
204
|
+
2. **Property Generation**
|
|
205
|
+
``` javascript
|
|
206
|
+
// Input pattern
|
|
207
|
+
.key('m-{size}', 'margin')
|
|
208
|
+
|
|
209
|
+
// Generates transformations for:
|
|
210
|
+
// m-s → { margin: 8 }
|
|
211
|
+
// m-m → { margin: 16 }
|
|
212
|
+
// m-l → { margin: 24 }
|
|
213
|
+
```
|
|
214
|
+
3. **Multiple Patterns**
|
|
215
|
+
- Can define multiple `.key()` patterns
|
|
216
|
+
- Each pattern generates its own set of transformations
|
|
217
|
+
- All transformations are combined into final result
|
|
218
|
+
|
|
219
|
+
##### Benefits
|
|
220
|
+
1. **Reduced Boilerplate**
|
|
221
|
+
- Generates multiple transformations from single pattern
|
|
222
|
+
- Eliminates repetitive transformer definitions
|
|
223
|
+
- Maintains consistency across related properties
|
|
224
|
+
|
|
225
|
+
2. **Systematic Approach**
|
|
226
|
+
- Creates predictable naming patterns
|
|
227
|
+
- Ensures consistent value mapping
|
|
228
|
+
- Makes style systems more maintainable
|
|
229
|
+
|
|
230
|
+
3. **Flexible Configuration**
|
|
231
|
+
- Easy to modify value sets
|
|
232
|
+
- Simple to add new patterns
|
|
233
|
+
- Supports complex transformation logic
|
|
234
|
+
|
|
235
|
+
The Pattern transformer is especially useful for:
|
|
236
|
+
- Design systems with systematic spacing
|
|
237
|
+
- Responsive design properties
|
|
238
|
+
- Consistent naming conventions
|
|
239
|
+
- Scale-based property systems
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
#### Provider
|
|
244
|
+
|
|
245
|
+
The Provider system is a mechanism for connecting transformers to dynamic data sources, enabling real-time updates of component properties based on changing values.
|
|
246
|
+
|
|
247
|
+
##### Core Components
|
|
248
|
+
1. **Provider Registration**
|
|
249
|
+
``` typescript
|
|
250
|
+
PropertyManager.registerProvider(
|
|
251
|
+
name: string,
|
|
252
|
+
getData: () => any,
|
|
253
|
+
subscribeToChanges?: (callback: () => void) => void
|
|
254
|
+
)
|
|
255
|
+
```
|
|
256
|
+
- `name`: Unique identifier for the provider
|
|
257
|
+
- `getData`: Function that returns current provider data
|
|
258
|
+
- `subscribeToChanges`: Optional function to listen for data changes
|
|
259
|
+
|
|
260
|
+
2. **Provider Usage**
|
|
261
|
+
``` typescript
|
|
262
|
+
Provider(
|
|
263
|
+
providerName: string,
|
|
264
|
+
transformerFactory: (data: any) => Transformer
|
|
265
|
+
)
|
|
266
|
+
```
|
|
267
|
+
- `providerName`: References registered provider
|
|
268
|
+
- `transformerFactory`: Function that creates transformer using provider data
|
|
269
|
+
|
|
270
|
+
##### How It Works
|
|
271
|
+
|
|
272
|
+
1. **Registration Process**
|
|
273
|
+
``` typescript
|
|
274
|
+
// Data structure
|
|
275
|
+
interface Theme {
|
|
276
|
+
colors: Record<string, string>;
|
|
277
|
+
spacing: Record<string, number>;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Provider setup
|
|
281
|
+
const themeProvider = {
|
|
282
|
+
data: initialTheme,
|
|
283
|
+
eventEmitter: new EventEmitter()
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
// Registration
|
|
287
|
+
PropertyManager.registerProvider(
|
|
288
|
+
'theme',
|
|
289
|
+
() => themeProvider.data,
|
|
290
|
+
(onChange) => themeProvider.eventEmitter.subscribe(onChange)
|
|
291
|
+
);
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
2. **Data Flow**
|
|
295
|
+
``` typescript
|
|
296
|
+
// Creating transformer with provider
|
|
297
|
+
const componentStyles = PropertyManager.create('Component')
|
|
298
|
+
.styles(
|
|
299
|
+
Provider('theme', (theme) =>
|
|
300
|
+
Prop('variant', ({variant}) => ({
|
|
301
|
+
backgroundColor: theme.colors[variant]
|
|
302
|
+
}))
|
|
303
|
+
)
|
|
304
|
+
);
|
|
305
|
+
|
|
306
|
+
// Using component
|
|
307
|
+
const styles = componentStyles.get({ variant: 'primary' });
|
|
308
|
+
// → { backgroundColor: 'white' }
|
|
309
|
+
|
|
310
|
+
// When theme changes
|
|
311
|
+
themeProvider.data = newTheme;
|
|
312
|
+
themeProvider.eventEmitter.emit();
|
|
313
|
+
// → Automatically updates all dependent components
|
|
314
|
+
```
|
|
315
|
+
3. **Update Mechanism**
|
|
316
|
+
1. Provider data changes
|
|
317
|
+
2. Provider emits change event
|
|
318
|
+
3. PropertyManager receives notification
|
|
319
|
+
4. All transformers using this provider are re-evaluated
|
|
320
|
+
5. Components using these transformers get updated properties
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
##### Use Cases
|
|
324
|
+
1. **Theming**
|
|
325
|
+
- Dynamic color schemes
|
|
326
|
+
- Light/dark mode switching
|
|
327
|
+
- Brand theme variations
|
|
328
|
+
|
|
329
|
+
2. **Responsive Design**
|
|
330
|
+
- Screen size-based adjustments
|
|
331
|
+
- Device-specific styling
|
|
332
|
+
- Orientation changes
|
|
333
|
+
|
|
334
|
+
3. **Feature Flags**
|
|
335
|
+
- Component variants
|
|
336
|
+
- Experimental features
|
|
337
|
+
- A/B testing
|
|
338
|
+
|
|
339
|
+
4. **Localization**
|
|
340
|
+
- RTL/LTR layouts
|
|
341
|
+
- Language-specific spacing
|
|
342
|
+
- Cultural adaptations
|
|
343
|
+
|
|
344
|
+
The Provider system enables:
|
|
345
|
+
- Dynamic styling updates
|
|
346
|
+
- Theme switching
|
|
347
|
+
- Responsive adaptations
|
|
348
|
+
- Real-time feature toggles
|
|
349
|
+
- Performance optimizations through selective updates
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
### Child Components
|
|
353
|
+
|
|
354
|
+
The Child Components system provides a structured way to manage props for complex components with multiple nested elements. It handles prop distribution and transformation for each child component independently.
|
|
355
|
+
|
|
356
|
+
##### Core Concepts
|
|
357
|
+
1. **Child Definition**
|
|
358
|
+
``` typescript
|
|
359
|
+
Child(name: string)
|
|
360
|
+
.extends(parentName: string)
|
|
361
|
+
.props(...transformers)
|
|
362
|
+
.styles(...transformers)
|
|
363
|
+
```
|
|
364
|
+
Components:
|
|
365
|
+
- `name`: Unique identifier for the child
|
|
366
|
+
- `props`: Prop transformers specific to this child
|
|
367
|
+
- `styles`: Style transformers for this child
|
|
368
|
+
- `extends`: Inherit from another component's transformations, reusing transformers
|
|
369
|
+
|
|
370
|
+
1. **Props Distribution**
|
|
371
|
+
``` typescript
|
|
372
|
+
const componentProps = PropertyManager.create('Component')
|
|
373
|
+
.styles(rootStyles)
|
|
374
|
+
.props(rootProps)
|
|
375
|
+
.child(
|
|
376
|
+
Child('childA').props(childAProps),
|
|
377
|
+
Child('childB').props(childBProps)
|
|
378
|
+
)
|
|
379
|
+
```
|
|
380
|
+
##### How It Works
|
|
381
|
+
1. **Transformation Process**
|
|
382
|
+
``` typescript
|
|
383
|
+
const result = componentProps.get({
|
|
384
|
+
color: 'primary',
|
|
385
|
+
children: 'Text',
|
|
386
|
+
Icon: 'star'
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
// Result structure:
|
|
390
|
+
{
|
|
391
|
+
// Root component props
|
|
392
|
+
prop: { ... },
|
|
393
|
+
style: { ... },
|
|
394
|
+
|
|
395
|
+
// Child components props
|
|
396
|
+
props: {
|
|
397
|
+
childA: { ... },
|
|
398
|
+
childB: { ... },
|
|
399
|
+
},
|
|
400
|
+
styles: {
|
|
401
|
+
childA: { ... },
|
|
402
|
+
childB: { ... },
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
1. **Prop Flow**
|
|
407
|
+
1. Input props are received
|
|
408
|
+
2. Root transformers process props first
|
|
409
|
+
3. Each child processes relevant props
|
|
410
|
+
4. Results are organized by component hierarchy
|
|
411
|
+
|
|
412
|
+
2. **Usage in Components**
|
|
413
|
+
``` typescript
|
|
414
|
+
function ComplexComponent(props) {
|
|
415
|
+
const {
|
|
416
|
+
// Root props
|
|
417
|
+
prop: rootProps,
|
|
418
|
+
style: rootStyle,
|
|
419
|
+
|
|
420
|
+
// Child props
|
|
421
|
+
props: {
|
|
422
|
+
icon: iconProps,
|
|
423
|
+
text: textProps
|
|
424
|
+
}
|
|
425
|
+
} = componentProps.get(props);
|
|
426
|
+
|
|
427
|
+
return (
|
|
428
|
+
<Root {...rootProps} style={rootStyle}>
|
|
429
|
+
<Icon {...iconProps} />
|
|
430
|
+
<Text {...textProps} />
|
|
431
|
+
</Root>
|
|
432
|
+
);
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
##### Advanced Features
|
|
436
|
+
1. **Prop Inheritance**
|
|
437
|
+
``` typescript
|
|
438
|
+
Child('text')
|
|
439
|
+
.extends('Typography')
|
|
440
|
+
.props(
|
|
441
|
+
// Additional props specific to this usage
|
|
442
|
+
)
|
|
443
|
+
```
|
|
444
|
+
- Inherit transformations from other components
|
|
445
|
+
- Override or extend inherited props
|
|
446
|
+
- Maintain consistency across components
|
|
447
|
+
|
|
448
|
+
1. **Conditional Child Props**
|
|
449
|
+
``` typescript
|
|
450
|
+
Child('icon').props(
|
|
451
|
+
Prop('visible', ({hasIcon}) => ({
|
|
452
|
+
display: hasIcon ? 'flex' : 'none'
|
|
453
|
+
}))
|
|
454
|
+
)
|
|
455
|
+
```
|
|
456
|
+
- Transform props based on conditions
|
|
457
|
+
- Dynamic child component behavior
|
|
458
|
+
- Responsive to parent state
|
|
459
|
+
|
|
460
|
+
1. **Style Organization**
|
|
461
|
+
``` typescript
|
|
462
|
+
Child('container')
|
|
463
|
+
.styles(
|
|
464
|
+
// Layout styles
|
|
465
|
+
Static({ display: 'flex' }),
|
|
466
|
+
Prop('direction', 'flexDirection'),
|
|
467
|
+
|
|
468
|
+
// Spacing
|
|
469
|
+
Pattern('{size}', spacing)
|
|
470
|
+
.key('gap-{size}', 'gap'),
|
|
471
|
+
|
|
472
|
+
// Visual
|
|
473
|
+
Prop('variant', ({variant, theme}) => ({
|
|
474
|
+
backgroundColor: theme.colors[variant]
|
|
475
|
+
}))
|
|
476
|
+
)
|
|
477
|
+
```
|
|
478
|
+
- Grouped style transformations
|
|
479
|
+
- Clear separation of concerns
|
|
480
|
+
- Maintainable style structure
|
|
481
|
+
|
|
482
|
+
##### Benefits
|
|
483
|
+
1. **Organized Prop Management**
|
|
484
|
+
- Clear hierarchy of components
|
|
485
|
+
- Structured prop distribution
|
|
486
|
+
- Isolated child component logic
|
|
487
|
+
|
|
488
|
+
2. **Reusability**
|
|
489
|
+
- Share transformations between components
|
|
490
|
+
- Consistent prop handling
|
|
491
|
+
- Reduced code duplication
|
|
492
|
+
|
|
493
|
+
3. **Maintainability**
|
|
494
|
+
- Isolated child component changes
|
|
495
|
+
- Clear prop flow
|
|
496
|
+
- Easy debugging
|
|
497
|
+
|
|
498
|
+
4. **Type Safety**
|
|
499
|
+
- TypeScript support
|
|
500
|
+
- Prop validation
|
|
501
|
+
- IDE autocompletion
|
|
502
|
+
|
|
503
|
+
This system is particularly useful for:
|
|
504
|
+
- Complex compound components
|
|
505
|
+
- Reusable component libraries
|
|
506
|
+
- Design systems
|
|
507
|
+
- Components with multiple variants
|
|
508
|
+
- Nested component structures
|
|
509
|
+
|
|
510
|
+
The Child Components system provides a powerful way to manage complex component hierarchies while maintaining clean, maintainable code.
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
## Benefits
|
|
514
|
+
|
|
515
|
+
1. **Structured Prop Management**: Organizes prop handling logic in a declarative way
|
|
516
|
+
2. **Component Reusability**: Easily extend existing components with new behaviors
|
|
517
|
+
3. **Enhanced Testability**: Test component prop transformations without rendering
|
|
518
|
+
4. **Dynamic Styling**: Connect to theme providers and other dynamic data sources
|
|
519
|
+
5. **Simplified Complex Components**: Manage multi-level component structures with clarity
|
|
520
|
+
6. **Pattern-Based Props**: Create consistent prop interfaces using patterns
|
|
521
|
+
7. **Separation of Concerns**: Clear separation between prop handling and rendering
|
|
522
|
+
|
|
523
|
+
## Testing
|
|
524
|
+
|
|
525
|
+
The Property Manager provides robust testing features that make it easy to verify prop transformations and component behavior.
|
|
526
|
+
### Core Testing Features
|
|
527
|
+
1. **Prop Transformation Testing**
|
|
528
|
+
``` typescript
|
|
529
|
+
const componentPM = PropertyManager.create('Component')
|
|
530
|
+
.styles(...)
|
|
531
|
+
.props(...)
|
|
532
|
+
|
|
533
|
+
test('verifies prop transformations', () => {
|
|
534
|
+
const result = componentPM.get({
|
|
535
|
+
variant: 'primary',
|
|
536
|
+
size: 'large'
|
|
537
|
+
});
|
|
538
|
+
|
|
539
|
+
expect(result).toMatchObject({
|
|
540
|
+
style: {
|
|
541
|
+
// Style transformations
|
|
542
|
+
},
|
|
543
|
+
props: {
|
|
544
|
+
// Prop transformations
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
});
|
|
548
|
+
```
|
|
549
|
+
1. **Child Component Testing**
|
|
550
|
+
``` typescript
|
|
551
|
+
test('child components receive correct props', () => {
|
|
552
|
+
const result = componentPM.get(inputProps);
|
|
553
|
+
|
|
554
|
+
expect(result.props.icon).toMatchObject({
|
|
555
|
+
// Icon-specific props
|
|
556
|
+
});
|
|
557
|
+
expect(result.props.text).toMatchObject({
|
|
558
|
+
// Text-specific props
|
|
559
|
+
});
|
|
560
|
+
});
|
|
561
|
+
```
|
|
562
|
+
### Testing Strategies
|
|
563
|
+
1. **Unit Testing Transformers**
|
|
564
|
+
- Test individual prop transformations
|
|
565
|
+
- Verify style calculations
|
|
566
|
+
- Check conditional logic
|
|
567
|
+
|
|
568
|
+
2. **Integration Testing**
|
|
569
|
+
- Test multiple transformers together
|
|
570
|
+
- Verify provider interactions
|
|
571
|
+
- Check child component prop flow
|
|
572
|
+
|
|
573
|
+
3. **Snapshot Testing**
|
|
574
|
+
- Capture full transformation results
|
|
575
|
+
- Track changes over time
|
|
576
|
+
- Ensure consistent behavior
|
|
577
|
+
|
|
578
|
+
### Benefits of Property Manager
|
|
579
|
+
#### 1. Development Experience
|
|
580
|
+
- Clear prop transformation syntax
|
|
581
|
+
- Type-safe prop handling
|
|
582
|
+
- Predictable component behavior
|
|
583
|
+
- Easy debugging and testing
|
|
584
|
+
|
|
585
|
+
#### 2. Code Organization
|
|
586
|
+
- Separation of concerns
|
|
587
|
+
- Reusable transformations
|
|
588
|
+
- Structured prop management
|
|
589
|
+
- Maintainable component logic
|
|
590
|
+
|
|
591
|
+
#### 3. Performance
|
|
592
|
+
- Optimized prop calculations
|
|
593
|
+
- Efficient updates
|
|
594
|
+
- Minimal re-renders
|
|
595
|
+
- Scalable architecture
|
|
596
|
+
|
|
597
|
+
#### 4. Maintainability
|
|
598
|
+
- Centralized prop management
|
|
599
|
+
- Clear transformation flow
|
|
600
|
+
- Easy to modify and extend
|
|
601
|
+
- Consistent patterns
|
|
602
|
+
|
|
603
|
+
#### 5. Component Systems
|
|
604
|
+
- Design system integration
|
|
605
|
+
- Theme management
|
|
606
|
+
- Responsive design
|
|
607
|
+
- Dynamic styling
|
|
608
|
+
|
|
609
|
+
### Best Practices
|
|
610
|
+
1. **Transformer Organization**
|
|
611
|
+
- Group related transformations
|
|
612
|
+
- Use meaningful names
|
|
613
|
+
- Keep transformations simple
|
|
614
|
+
- Document complex logic
|
|
615
|
+
|
|
616
|
+
2. **Testing Strategy**
|
|
617
|
+
- Test all transformation paths
|
|
618
|
+
- Verify edge cases
|
|
619
|
+
- Include provider testing
|
|
620
|
+
- Use snapshot testing
|
|
621
|
+
|
|
622
|
+
3. **Code Structure**
|
|
623
|
+
- Separate styling from behavior
|
|
624
|
+
- Use child components appropriately
|
|
625
|
+
- Leverage providers for dynamic data
|
|
626
|
+
- Keep transformations pure
|
|
627
|
+
|
|
628
|
+
4. **Performance Considerations**
|
|
629
|
+
- Minimize complex calculations
|
|
630
|
+
- Use memoization when needed
|
|
631
|
+
- Optimize provider updates
|
|
632
|
+
- Profile transformation performance
|
|
633
|
+
|
|
634
|
+
### Use Cases
|
|
635
|
+
1. **Component Libraries**
|
|
636
|
+
- Consistent interfaces
|
|
637
|
+
- Reusable patterns
|
|
638
|
+
- Maintainable code
|
|
639
|
+
- Clear documentation
|
|
640
|
+
|
|
641
|
+
2. **Design Systems**
|
|
642
|
+
- Theme management
|
|
643
|
+
- Style consistency
|
|
644
|
+
- Component variants
|
|
645
|
+
- Dynamic updates
|
|
646
|
+
|
|
647
|
+
3. **Complex Applications**
|
|
648
|
+
- Organized prop handling
|
|
649
|
+
- Clear component hierarchy
|
|
650
|
+
- Testable components
|
|
651
|
+
- Maintainable code base
|
|
652
|
+
|
|
653
|
+
The Property Manager library provides a solid foundation for building scalable, maintainable React applications with well-organized prop management and clear testing strategies.
|
|
@@ -21,7 +21,7 @@ export declare class PropertyManager {
|
|
|
21
21
|
props(...builders: Builder[]): this;
|
|
22
22
|
child(...nodes: TChild<PropertyManager>[]): this;
|
|
23
23
|
getForEntity(type: 'styles' | 'props', props: Map<string, unknown>): Record<string, unknown>;
|
|
24
|
-
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean): TGetResult;
|
|
24
|
+
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean, isChild?: boolean): TGetResult;
|
|
25
25
|
static registerProvider(name: string, getter: () => Record<string, unknown>, subscribe?: (onChange: () => void) => () => void): DataProvider | undefined;
|
|
26
26
|
private static update;
|
|
27
27
|
private update;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,
|
|
1
|
+
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,CACD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,UAAQ,EACnB,OAAO,UAAQ;IAoFjB,MAAM,CAAC,gBAAgB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI;IASlD,OAAO,CAAC,MAAM,CAAC,MAAM;IA4CrB,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,aAAa,CAAyB;IAE9C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;CAqG/B"}
|
|
@@ -99,7 +99,7 @@ class PropertyManager {
|
|
|
99
99
|
}
|
|
100
100
|
return res;
|
|
101
101
|
}
|
|
102
|
-
get({ style: overrideStyle, ...props }, isInherited = false) {
|
|
102
|
+
get({ style: overrideStyle, ...props }, isInherited = false, isChild = false) {
|
|
103
103
|
if (!this.initialized) {
|
|
104
104
|
this.init();
|
|
105
105
|
}
|
|
@@ -115,9 +115,14 @@ class PropertyManager {
|
|
|
115
115
|
for (const managerName of this.extendManagers) {
|
|
116
116
|
const pm = PropertyManager.getInstance(managerName);
|
|
117
117
|
if (pm) {
|
|
118
|
-
const passProps = {
|
|
118
|
+
const passProps = {
|
|
119
|
+
...((isChild ? {} : props) || {}),
|
|
120
|
+
...(global.prop || {}),
|
|
121
|
+
};
|
|
119
122
|
const inheritedRes = pm.get(passProps, true);
|
|
120
|
-
|
|
123
|
+
if (!isChild || Object.keys(passProps).length) {
|
|
124
|
+
global.omittedKeys = (0, utils_1.intersectKeys)(global.omittedKeys, inheritedRes.omittedKeys);
|
|
125
|
+
}
|
|
121
126
|
Object.keys(global.prop).forEach((key) => {
|
|
122
127
|
if (!inheritedRes.omittedKeys.has(key)) {
|
|
123
128
|
delete global.prop[key];
|
|
@@ -131,7 +136,7 @@ class PropertyManager {
|
|
|
131
136
|
global.styles = {};
|
|
132
137
|
global.props = {};
|
|
133
138
|
this.childNodes.forEach((pm, name) => {
|
|
134
|
-
const childRes = pm.get(props, true);
|
|
139
|
+
const childRes = pm.get(props, true, true);
|
|
135
140
|
global.props[name] = (0, ramda_1.mergeDeepRight)(childRes.prop, global.props[name] || {});
|
|
136
141
|
global.styles[name] = (0, ramda_1.mergeDeepRight)(childRes.style, global.styles[name] || {});
|
|
137
142
|
global.omittedKeys = (0, utils_1.intersectKeys)(global.omittedKeys, childRes.omittedKeys);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyManager.js","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AAGvC,mCAA2D;AAC3D,iDAA8C;AAE9C,MAAa,eAAe;IAGlB,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAkBD,YAA4B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAhBvB,eAAU,GAAG;YAC5B,MAAM,EAAE,IAAI,GAAG,EAAwB;YACvC,KAAK,EAAE,IAAI,GAAG,EAAwB;YACtC,IAAI,EAAE,IAAI,GAAG,EAAU;SACxB,CAAC;QAEM,aAAQ,GAA2C,EAAE,CAAC;QAEtD,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAExC,eAAU,GAAiC,IAAI,GAAG,EAAE,CAAC;QAErD,2BAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,gBAAW,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyManager.js","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare function organizePropsKeys(props: Record<string, unknown>, keys: Set<string>): {
|
|
2
2
|
orderedProps: Map<string, unknown>;
|
|
3
|
+
omittedProps: Record<string, unknown>;
|
|
3
4
|
omittedKeys: Set<string>;
|
|
4
5
|
};
|
|
5
6
|
export declare function intersectKeys(a: Set<string>, b: Set<string> | undefined): Set<string>;
|
package/dist/cjs/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B,CAgCA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAGrF;AA+BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlF"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -9,26 +9,31 @@ exports.prepareData = prepareData;
|
|
|
9
9
|
const ramda_1 = __importDefault(require("ramda"));
|
|
10
10
|
function organizePropsKeys(props, keys) {
|
|
11
11
|
const orderedProps = new Map();
|
|
12
|
+
const omittedProps = { ...props };
|
|
12
13
|
const omittedKeys = new Set(Object.keys(props));
|
|
13
14
|
for (const key of keys) {
|
|
14
15
|
if (Object.prototype.hasOwnProperty.call(props, key)) {
|
|
15
16
|
orderedProps.set(key, props[key]);
|
|
17
|
+
delete omittedProps[key];
|
|
16
18
|
omittedKeys.delete(key);
|
|
17
19
|
}
|
|
18
20
|
else if (key.endsWith('-')) {
|
|
19
21
|
const parserKey = Object.keys(props).find((k) => k.startsWith(key));
|
|
20
22
|
if (parserKey) {
|
|
21
23
|
orderedProps.set(key, props[parserKey]);
|
|
24
|
+
delete omittedProps[key];
|
|
22
25
|
omittedKeys.delete(key);
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
if (Object.prototype.hasOwnProperty.call(props, '*')) {
|
|
30
|
+
delete omittedProps['*'];
|
|
27
31
|
omittedKeys.delete('*');
|
|
28
32
|
}
|
|
29
33
|
return {
|
|
30
34
|
orderedProps,
|
|
31
35
|
omittedKeys,
|
|
36
|
+
omittedProps,
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
function intersectKeys(a, b) {
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;AAGA,8CAuCC;AAED,sCAGC;AA+BD,kCAiBC;AA9FD,kDAAsB;AAEtB,SAAgB,iBAAiB,CAC/B,KAA8B,EAC9B,IAAiB;IAMjB,MAAM,YAAY,GAAyB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;AAGA,8CAuCC;AAED,sCAGC;AA+BD,kCAiBC;AA9FD,kDAAsB;AAEtB,SAAgB,iBAAiB,CAC/B,KAA8B,EAC9B,IAAiB;IAMjB,MAAM,YAAY,GAAyB,IAAI,GAAG,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAGxD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACrD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;gBACzB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QACzB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,YAAY;QACZ,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,CAAc,EAAE,CAA0B;IACtE,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CACpB,GAAwB,EACxB,SAAS,GAAG,EAAE,EACd,SAAS,EAA6B;IAEtC,MAAM,GAAG,GAAG,MAAM,CAAC;IAEnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvD,IAAI,eAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrD,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,eAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC;gBACvC,IAAI,eAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,IAA6B,EAAE,IAAe;IACxE,MAAM,OAAO,GAAG,eAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,eAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,eAAC,CAAC,MAAM,CAAC,eAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,eAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE9C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAUtC,CAAC"}
|
|
@@ -21,7 +21,7 @@ export declare class PropertyManager {
|
|
|
21
21
|
props(...builders: Builder[]): this;
|
|
22
22
|
child(...nodes: TChild<PropertyManager>[]): this;
|
|
23
23
|
getForEntity(type: 'styles' | 'props', props: Map<string, unknown>): Record<string, unknown>;
|
|
24
|
-
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean): TGetResult;
|
|
24
|
+
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean, isChild?: boolean): TGetResult;
|
|
25
25
|
static registerProvider(name: string, getter: () => Record<string, unknown>, subscribe?: (onChange: () => void) => () => void): DataProvider | undefined;
|
|
26
26
|
private static update;
|
|
27
27
|
private update;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,
|
|
1
|
+
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,CACD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,UAAQ,EACnB,OAAO,UAAQ;IAoFjB,MAAM,CAAC,gBAAgB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI;IASlD,OAAO,CAAC,MAAM,CAAC,MAAM;IA4CrB,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,aAAa,CAAyB;IAE9C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;CAqG/B"}
|
|
@@ -96,7 +96,7 @@ export class PropertyManager {
|
|
|
96
96
|
}
|
|
97
97
|
return res;
|
|
98
98
|
}
|
|
99
|
-
get({ style: overrideStyle, ...props }, isInherited = false) {
|
|
99
|
+
get({ style: overrideStyle, ...props }, isInherited = false, isChild = false) {
|
|
100
100
|
if (!this.initialized) {
|
|
101
101
|
this.init();
|
|
102
102
|
}
|
|
@@ -112,9 +112,14 @@ export class PropertyManager {
|
|
|
112
112
|
for (const managerName of this.extendManagers) {
|
|
113
113
|
const pm = PropertyManager.getInstance(managerName);
|
|
114
114
|
if (pm) {
|
|
115
|
-
const passProps = {
|
|
115
|
+
const passProps = {
|
|
116
|
+
...((isChild ? {} : props) || {}),
|
|
117
|
+
...(global.prop || {}),
|
|
118
|
+
};
|
|
116
119
|
const inheritedRes = pm.get(passProps, true);
|
|
117
|
-
|
|
120
|
+
if (!isChild || Object.keys(passProps).length) {
|
|
121
|
+
global.omittedKeys = intersectKeys(global.omittedKeys, inheritedRes.omittedKeys);
|
|
122
|
+
}
|
|
118
123
|
Object.keys(global.prop).forEach((key) => {
|
|
119
124
|
if (!inheritedRes.omittedKeys.has(key)) {
|
|
120
125
|
delete global.prop[key];
|
|
@@ -128,7 +133,7 @@ export class PropertyManager {
|
|
|
128
133
|
global.styles = {};
|
|
129
134
|
global.props = {};
|
|
130
135
|
this.childNodes.forEach((pm, name) => {
|
|
131
|
-
const childRes = pm.get(props, true);
|
|
136
|
+
const childRes = pm.get(props, true, true);
|
|
132
137
|
global.props[name] = mergeDeepRight(childRes.prop, global.props[name] || {});
|
|
133
138
|
global.styles[name] = mergeDeepRight(childRes.style, global.styles[name] || {});
|
|
134
139
|
global.omittedKeys = intersectKeys(global.omittedKeys, childRes.omittedKeys);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyManager.js","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,OAAO,eAAe;IAGlB,MAAM,CAAC,WAAW,CAAC,IAAY;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAkBD,YAA4B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAhBvB,eAAU,GAAG;YAC5B,MAAM,EAAE,IAAI,GAAG,EAAwB;YACvC,KAAK,EAAE,IAAI,GAAG,EAAwB;YACtC,IAAI,EAAE,IAAI,GAAG,EAAU;SACxB,CAAC;QAEM,aAAQ,GAA2C,EAAE,CAAC;QAEtD,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAExC,eAAU,GAAiC,IAAI,GAAG,EAAE,CAAC;QAErD,2BAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,gBAAW,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyManager.js","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare function organizePropsKeys(props: Record<string, unknown>, keys: Set<string>): {
|
|
2
2
|
orderedProps: Map<string, unknown>;
|
|
3
|
+
omittedProps: Record<string, unknown>;
|
|
3
4
|
omittedKeys: Set<string>;
|
|
4
5
|
};
|
|
5
6
|
export declare function intersectKeys(a: Set<string>, b: Set<string> | undefined): Set<string>;
|
package/dist/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B,CAgCA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAGrF;AA+BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlF"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import R from 'ramda';
|
|
2
2
|
export function organizePropsKeys(props, keys) {
|
|
3
3
|
const orderedProps = new Map();
|
|
4
|
+
const omittedProps = { ...props };
|
|
4
5
|
const omittedKeys = new Set(Object.keys(props));
|
|
5
6
|
for (const key of keys) {
|
|
6
7
|
if (Object.prototype.hasOwnProperty.call(props, key)) {
|
|
7
8
|
orderedProps.set(key, props[key]);
|
|
9
|
+
delete omittedProps[key];
|
|
8
10
|
omittedKeys.delete(key);
|
|
9
11
|
}
|
|
10
12
|
else if (key.endsWith('-')) {
|
|
11
13
|
const parserKey = Object.keys(props).find((k) => k.startsWith(key));
|
|
12
14
|
if (parserKey) {
|
|
13
15
|
orderedProps.set(key, props[parserKey]);
|
|
16
|
+
delete omittedProps[key];
|
|
14
17
|
omittedKeys.delete(key);
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
if (Object.prototype.hasOwnProperty.call(props, '*')) {
|
|
22
|
+
delete omittedProps['*'];
|
|
19
23
|
omittedKeys.delete('*');
|
|
20
24
|
}
|
|
21
25
|
return {
|
|
22
26
|
orderedProps,
|
|
23
27
|
omittedKeys,
|
|
28
|
+
omittedProps,
|
|
24
29
|
};
|
|
25
30
|
}
|
|
26
31
|
export function intersectKeys(a, b) {
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,OAAO,CAAC;AAEtB,MAAM,UAAU,iBAAiB,CAC/B,KAA8B,EAC9B,IAAiB;IAMjB,MAAM,YAAY,GAAyB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export declare class PropertyManager {
|
|
|
21
21
|
props(...builders: Builder[]): this;
|
|
22
22
|
child(...nodes: TChild<PropertyManager>[]): this;
|
|
23
23
|
getForEntity(type: 'styles' | 'props', props: Map<string, unknown>): Record<string, unknown>;
|
|
24
|
-
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean): TGetResult;
|
|
24
|
+
get({ style: overrideStyle, ...props }: Record<string, unknown>, isInherited?: boolean, isChild?: boolean): TGetResult;
|
|
25
25
|
static registerProvider(name: string, getter: () => Record<string, unknown>, subscribe?: (onChange: () => void) => () => void): DataProvider | undefined;
|
|
26
26
|
private static update;
|
|
27
27
|
private update;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,
|
|
1
|
+
{"version":3,"file":"PropertyManager.d.ts","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAe;aAkCE,IAAI,EAAE,MAAM;IAjCxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,sBAAsB,CAAqB;IAEnD,OAAO,CAAC,WAAW,CAAS;gBAEA,IAAI,EAAE,MAAM;IAExC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM5C,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;IAO/C,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK7B,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE;IAK5B,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;IAQzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,GAAG,CACD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,UAAQ,EACnB,OAAO,UAAQ;IAoFjB,MAAM,CAAC,gBAAgB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI;IASlD,OAAO,CAAC,MAAM,CAAC,MAAM;IA4CrB,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,aAAa,CAAyB;IAE9C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;CAqG/B"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare function organizePropsKeys(props: Record<string, unknown>, keys: Set<string>): {
|
|
2
2
|
orderedProps: Map<string, unknown>;
|
|
3
|
+
omittedProps: Record<string, unknown>;
|
|
3
4
|
omittedKeys: Set<string>;
|
|
4
5
|
};
|
|
5
6
|
export declare function intersectKeys(a: Set<string>, b: Set<string> | undefined): Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B,CAgCA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAGrF;AA+BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlF"}
|
package/package.json
CHANGED