tailwind-typescript-plugin 1.4.1-beta.3 → 1.4.1-beta.31
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 +155 -0
- package/README.md +369 -71
- package/lib/core/interfaces.d.ts +40 -13
- package/lib/core/interfaces.d.ts.map +1 -1
- package/lib/core/types.d.ts +112 -1
- package/lib/core/types.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.d.ts +56 -3
- package/lib/extractors/BaseExtractor.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.js +194 -5
- package/lib/extractors/BaseExtractor.js.map +1 -1
- package/lib/extractors/BaseExtractor.spec.d.ts +2 -0
- package/lib/extractors/BaseExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/BaseExtractor.spec.js +421 -0
- package/lib/extractors/BaseExtractor.spec.js.map +1 -0
- package/lib/extractors/CvaExtractor.js +1 -1
- package/lib/extractors/CvaExtractor.js.map +1 -1
- package/lib/extractors/CvaExtractor.spec.d.ts +2 -0
- package/lib/extractors/CvaExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/CvaExtractor.spec.js +1177 -0
- package/lib/extractors/CvaExtractor.spec.js.map +1 -0
- package/lib/extractors/ExpressionExtractor.d.ts.map +1 -1
- package/lib/extractors/ExpressionExtractor.js +35 -5
- package/lib/extractors/ExpressionExtractor.js.map +1 -1
- package/lib/extractors/ExpressionExtractor.spec.d.ts +2 -0
- package/lib/extractors/ExpressionExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/ExpressionExtractor.spec.js +316 -0
- package/lib/extractors/ExpressionExtractor.spec.js.map +1 -0
- package/lib/extractors/JsxAttributeExtractor.d.ts +7 -1
- package/lib/extractors/JsxAttributeExtractor.d.ts.map +1 -1
- package/lib/extractors/JsxAttributeExtractor.js +21 -8
- package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
- package/lib/extractors/JsxAttributeExtractor.spec.d.ts +2 -0
- package/lib/extractors/JsxAttributeExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/JsxAttributeExtractor.spec.js +430 -0
- package/lib/extractors/JsxAttributeExtractor.spec.js.map +1 -0
- package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.js +1 -5
- package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.spec.d.ts +2 -0
- package/lib/extractors/TailwindVariantsExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/TailwindVariantsExtractor.spec.js +1407 -0
- package/lib/extractors/TailwindVariantsExtractor.spec.js.map +1 -0
- package/lib/extractors/TemplateExpressionExtractor.spec.d.ts +2 -0
- package/lib/extractors/TemplateExpressionExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/TemplateExpressionExtractor.spec.js +240 -0
- package/lib/extractors/TemplateExpressionExtractor.spec.js.map +1 -0
- package/lib/extractors/VariableReferenceExtractor.d.ts.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.js +21 -0
- package/lib/extractors/VariableReferenceExtractor.js.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.spec.d.ts +2 -0
- package/lib/extractors/VariableReferenceExtractor.spec.d.ts.map +1 -0
- package/lib/extractors/VariableReferenceExtractor.spec.js +138 -0
- package/lib/extractors/VariableReferenceExtractor.spec.js.map +1 -0
- package/lib/extractors/VueAttributeExtractor.d.ts +202 -0
- package/lib/extractors/VueAttributeExtractor.d.ts.map +1 -0
- package/lib/extractors/VueAttributeExtractor.js +1691 -0
- package/lib/extractors/VueAttributeExtractor.js.map +1 -0
- package/lib/extractors/VueExpressionExtractor.d.ts +34 -0
- package/lib/extractors/VueExpressionExtractor.d.ts.map +1 -0
- package/lib/extractors/VueExpressionExtractor.js +171 -0
- package/lib/extractors/VueExpressionExtractor.js.map +1 -0
- package/lib/infrastructure/TailwindValidator.css-vars.spec.js +1 -11
- package/lib/infrastructure/TailwindValidator.css-vars.spec.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.d.ts +10 -3
- package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
- package/lib/infrastructure/TailwindValidator.js +68 -28
- package/lib/infrastructure/TailwindValidator.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.spec.js +50 -17
- package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.d.ts +22 -1
- package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.js +133 -50
- package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
- package/lib/services/ClassNameExtractionService.d.ts +27 -6
- package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
- package/lib/services/ClassNameExtractionService.js +80 -17
- package/lib/services/ClassNameExtractionService.js.map +1 -1
- package/lib/services/ClassNameExtractionService.spec.d.ts +2 -0
- package/lib/services/ClassNameExtractionService.spec.d.ts.map +1 -0
- package/lib/services/ClassNameExtractionService.spec.js +215 -0
- package/lib/services/ClassNameExtractionService.spec.js.map +1 -0
- package/lib/services/CodeActionService.spec.js +1 -2
- package/lib/services/CodeActionService.spec.js.map +1 -1
- package/lib/services/CompletionService.d.ts +121 -0
- package/lib/services/CompletionService.d.ts.map +1 -0
- package/lib/services/CompletionService.js +573 -0
- package/lib/services/CompletionService.js.map +1 -0
- package/lib/services/CompletionService.spec.d.ts +2 -0
- package/lib/services/CompletionService.spec.d.ts.map +1 -0
- package/lib/services/CompletionService.spec.js +1182 -0
- package/lib/services/CompletionService.spec.js.map +1 -0
- package/lib/services/ConfigSchemaValidator.d.ts +40 -0
- package/lib/services/ConfigSchemaValidator.d.ts.map +1 -0
- package/lib/services/ConfigSchemaValidator.js +139 -0
- package/lib/services/ConfigSchemaValidator.js.map +1 -0
- package/lib/services/ConfigSchemaValidator.spec.d.ts +2 -0
- package/lib/services/ConfigSchemaValidator.spec.d.ts.map +1 -0
- package/lib/services/ConfigSchemaValidator.spec.js +344 -0
- package/lib/services/ConfigSchemaValidator.spec.js.map +1 -0
- package/lib/services/ConflictClassDetection.spec.js +53 -5
- package/lib/services/ConflictClassDetection.spec.js.map +1 -1
- package/lib/services/DiagnosticService.d.ts +8 -8
- package/lib/services/DiagnosticService.d.ts.map +1 -1
- package/lib/services/DiagnosticService.js +29 -13
- package/lib/services/DiagnosticService.js.map +1 -1
- package/lib/services/DiagnosticService.spec.d.ts +2 -0
- package/lib/services/DiagnosticService.spec.d.ts.map +1 -0
- package/lib/services/DiagnosticService.spec.js +259 -0
- package/lib/services/DiagnosticService.spec.js.map +1 -0
- package/lib/services/DuplicateClassDetection.spec.js +20 -21
- package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
- package/lib/services/FileDiagnosticCache.spec.d.ts +2 -0
- package/lib/services/FileDiagnosticCache.spec.d.ts.map +1 -0
- package/lib/services/FileDiagnosticCache.spec.js +213 -0
- package/lib/services/FileDiagnosticCache.spec.js.map +1 -0
- package/lib/services/PerformanceCache.spec.d.ts +2 -0
- package/lib/services/PerformanceCache.spec.d.ts.map +1 -0
- package/lib/services/PerformanceCache.spec.js +168 -0
- package/lib/services/PerformanceCache.spec.js.map +1 -0
- package/lib/services/PluginConfigService.d.ts +66 -15
- package/lib/services/PluginConfigService.d.ts.map +1 -1
- package/lib/services/PluginConfigService.js +230 -73
- package/lib/services/PluginConfigService.js.map +1 -1
- package/lib/services/PluginConfigService.spec.d.ts +2 -0
- package/lib/services/PluginConfigService.spec.d.ts.map +1 -0
- package/lib/services/PluginConfigService.spec.js +93 -0
- package/lib/services/PluginConfigService.spec.js.map +1 -0
- package/lib/services/ValidationService.d.ts +7 -5
- package/lib/services/ValidationService.d.ts.map +1 -1
- package/lib/services/ValidationService.js +40 -43
- package/lib/services/ValidationService.js.map +1 -1
- package/lib/services/ValidationService.spec.d.ts +2 -0
- package/lib/services/ValidationService.spec.d.ts.map +1 -0
- package/lib/services/ValidationService.spec.js +289 -0
- package/lib/services/ValidationService.spec.js.map +1 -0
- package/lib/utils/FrameworkDetector.d.ts +23 -0
- package/lib/utils/FrameworkDetector.d.ts.map +1 -0
- package/lib/utils/FrameworkDetector.js +47 -0
- package/lib/utils/FrameworkDetector.js.map +1 -0
- package/lib/utils/FrameworkDetector.spec.d.ts +2 -0
- package/lib/utils/FrameworkDetector.spec.d.ts.map +1 -0
- package/lib/utils/FrameworkDetector.spec.js +67 -0
- package/lib/utils/FrameworkDetector.spec.js.map +1 -0
- package/package.json +11 -4
- package/lib/extractors/StringLiteralExtractor.d.ts +0 -12
- package/lib/extractors/StringLiteralExtractor.d.ts.map +0 -1
- package/lib/extractors/StringLiteralExtractor.js +0 -21
- package/lib/extractors/StringLiteralExtractor.js.map +0 -1
- package/lib/services/ClassNameExtractionService.original.d.ts +0 -20
- package/lib/services/ClassNameExtractionService.original.d.ts.map +0 -1
- package/lib/services/ClassNameExtractionService.original.js +0 -48
- package/lib/services/ClassNameExtractionService.original.js.map +0 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
|
+
import { NodeFilterFn } from '../core/interfaces';
|
|
3
|
+
import { ClassNameInfo, ExtractionContext, UtilityFunction } from '../core/types';
|
|
4
|
+
import { BaseExtractor } from './BaseExtractor';
|
|
5
|
+
/**
|
|
6
|
+
* Extracts class names from Vue template class attributes
|
|
7
|
+
*
|
|
8
|
+
* When @vue/language-tools (Volar) transforms Vue SFC templates, it generates
|
|
9
|
+
* TypeScript code using function calls with object spreads:
|
|
10
|
+
*
|
|
11
|
+
* ```typescript
|
|
12
|
+
* __VLS_asFunctionalElement(__VLS_intrinsicElements.div)({
|
|
13
|
+
* ...{ class: "flex items-center" },
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* For dynamic classes:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* __VLS_asFunctionalElement(__VLS_intrinsicElements.div)({
|
|
20
|
+
* ...{ class: ({ 'bg-red-500': isActive }) },
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* This extractor handles these patterns to extract class names.
|
|
25
|
+
*/
|
|
26
|
+
export declare class VueAttributeExtractor extends BaseExtractor {
|
|
27
|
+
private expressionExtractor;
|
|
28
|
+
constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Fast filter: Vue patterns are always CallExpression nodes (~95% node skip rate)
|
|
31
|
+
* Volar transforms templates into: __VLS_asFunctionalElement(...)({...})
|
|
32
|
+
*/
|
|
33
|
+
getNodeFilter(): NodeFilterFn;
|
|
34
|
+
/**
|
|
35
|
+
* Override to handle Vue's __VLS_ctx pattern.
|
|
36
|
+
*
|
|
37
|
+
* Vue generates code like __VLS_ctx.clsx(...) for template expressions
|
|
38
|
+
* where clsx is imported in the script section. We need to check if the
|
|
39
|
+
* function name (not __VLS_ctx) is directly imported.
|
|
40
|
+
*
|
|
41
|
+
* Also handles namespace imports: __VLS_ctx.utils.clsx(...) for `import * as utils from 'clsx'`
|
|
42
|
+
*/
|
|
43
|
+
protected shouldValidateFunctionCall(callExpression: ts.CallExpression, utilityFunctions: UtilityFunction[], context?: ExtractionContext): boolean;
|
|
44
|
+
canHandle(node: ts.Node, context: ExtractionContext): boolean;
|
|
45
|
+
private hasClassSpreadProperty;
|
|
46
|
+
/**
|
|
47
|
+
* Check if an object has direct class attribute properties (for custom components).
|
|
48
|
+
* Vue generates direct properties like: { colorStyles: "bg-blue-500" }
|
|
49
|
+
*/
|
|
50
|
+
private hasClassDirectProperty;
|
|
51
|
+
extract(node: ts.Node, context: ExtractionContext): ClassNameInfo[];
|
|
52
|
+
private extractClassesFromValue;
|
|
53
|
+
/**
|
|
54
|
+
* Extract classes from an array expression, handling __VLS_ctx references.
|
|
55
|
+
* This method processes array elements directly to support variable references.
|
|
56
|
+
*/
|
|
57
|
+
private extractFromArrayExpression;
|
|
58
|
+
/**
|
|
59
|
+
* Extract classes from an object expression, handling computed property names.
|
|
60
|
+
*/
|
|
61
|
+
private extractFromObjectExpression;
|
|
62
|
+
/**
|
|
63
|
+
* Extract classes from a conditional (ternary) expression in array context.
|
|
64
|
+
*/
|
|
65
|
+
private extractFromConditionalElement;
|
|
66
|
+
/**
|
|
67
|
+
* Extract classes from a conditional (ternary) expression.
|
|
68
|
+
* Handles: isActive ? 'flex' : 'hidden'
|
|
69
|
+
*/
|
|
70
|
+
private extractFromConditionalExpression;
|
|
71
|
+
/**
|
|
72
|
+
* Extract classes from a binary expression.
|
|
73
|
+
* Handles: isActive && 'flex', isDisabled || 'fallback'
|
|
74
|
+
*/
|
|
75
|
+
private extractFromBinaryExpression;
|
|
76
|
+
/**
|
|
77
|
+
* Extract classes from a branch expression (ternary branch or binary operand).
|
|
78
|
+
* Handles string literals, nested ternaries, nested binaries, and VLS references.
|
|
79
|
+
*/
|
|
80
|
+
private extractFromBranchExpression;
|
|
81
|
+
/**
|
|
82
|
+
* Extract classes from CVA/TV function calls with class override.
|
|
83
|
+
* Handles patterns like: button({ color: 'primary', class: 'invalid-class' })
|
|
84
|
+
*
|
|
85
|
+
* Only extracts from functions that are defined using cva() or tv(),
|
|
86
|
+
* not from arbitrary custom functions.
|
|
87
|
+
*/
|
|
88
|
+
private extractFromCvaTvClassOverride;
|
|
89
|
+
/**
|
|
90
|
+
* Check if a function is defined using cva() or tv().
|
|
91
|
+
* Resolves the function symbol and checks if its initializer is a cva/tv call.
|
|
92
|
+
*/
|
|
93
|
+
private isCvaTvFunction;
|
|
94
|
+
/**
|
|
95
|
+
* Check if an expression is a call to cva() or tv().
|
|
96
|
+
*/
|
|
97
|
+
private isCallToCvaOrTv;
|
|
98
|
+
/**
|
|
99
|
+
* Extract classes from a string literal with attributeId.
|
|
100
|
+
*/
|
|
101
|
+
private extractClassesFromStringLiteral;
|
|
102
|
+
/**
|
|
103
|
+
* Extract classes from __VLS_ctx patterns by resolving variable/function references.
|
|
104
|
+
*
|
|
105
|
+
* Vue's generated code transforms template expressions in two ways:
|
|
106
|
+
* - :class="myClass" becomes class: (__VLS_ctx.myClass) - property access
|
|
107
|
+
* - :class="getClasses()" becomes class: (__VLS_ctx.getClasses()) - call expression
|
|
108
|
+
*
|
|
109
|
+
* The symbol resolves to a property assignment in Vue's generated code like:
|
|
110
|
+
* `return { myClass: myClass as typeof myClass }` or
|
|
111
|
+
* `return { getClasses: getClasses as typeof getClasses }`
|
|
112
|
+
* We need to follow the reference chain to find the actual declaration.
|
|
113
|
+
*
|
|
114
|
+
* IMPORTANT: We use the TEMPLATE position (the propertyName in __VLS_ctx.propertyName)
|
|
115
|
+
* for diagnostics because Volar only maps diagnostics from the template-generated section,
|
|
116
|
+
* not from the script section. Script section positions have valid mappings but Volar
|
|
117
|
+
* doesn't apply them for diagnostics.
|
|
118
|
+
*/
|
|
119
|
+
private extractFromVlsCtxReference;
|
|
120
|
+
/**
|
|
121
|
+
* Extract classes from a PropertySignature by getting the type.
|
|
122
|
+
*
|
|
123
|
+
* In Volar 3.x, script variables are exposed via a type like:
|
|
124
|
+
* type __VLS_SetupExposed = { myClass: typeof myClass; }
|
|
125
|
+
*
|
|
126
|
+
* We prioritize finding the actual variable declaration to use original positions,
|
|
127
|
+
* so errors point to the actual class strings in the script section.
|
|
128
|
+
*/
|
|
129
|
+
private extractFromPropertySignatureType;
|
|
130
|
+
/**
|
|
131
|
+
* Parse a class string into ClassNameInfo array.
|
|
132
|
+
* Uses the identifier position for diagnostics (mapped by Volar).
|
|
133
|
+
*/
|
|
134
|
+
private parseClassString;
|
|
135
|
+
/**
|
|
136
|
+
* Extract classes from a __VLS_ctx.functionName() call by resolving the function.
|
|
137
|
+
*/
|
|
138
|
+
private extractFromVlsCtxFunctionCall;
|
|
139
|
+
/**
|
|
140
|
+
* Extract classes from a function referenced via PropertySignature.
|
|
141
|
+
* In Volar 3.x: `type __VLS_SetupExposed = { getClasses: typeof getClasses; }`
|
|
142
|
+
*/
|
|
143
|
+
private extractFromPropertySignatureFunction;
|
|
144
|
+
/**
|
|
145
|
+
* Extract classes from a TypeScript type (for union types, string literals, etc.)
|
|
146
|
+
*/
|
|
147
|
+
private extractClassesFromType;
|
|
148
|
+
/**
|
|
149
|
+
* Resolve a function identifier to its declaration and extract classes from return statements.
|
|
150
|
+
*/
|
|
151
|
+
private resolveFunctionIdentifier;
|
|
152
|
+
/**
|
|
153
|
+
* Resolve classes from a property assignment initializer.
|
|
154
|
+
* Handles patterns like `myClass as typeof myClass` or just `myClass`.
|
|
155
|
+
*/
|
|
156
|
+
private resolvePropertyAssignmentClasses;
|
|
157
|
+
/**
|
|
158
|
+
* Resolve classes from an identifier by finding its declaration.
|
|
159
|
+
*/
|
|
160
|
+
private resolveIdentifierClasses;
|
|
161
|
+
/**
|
|
162
|
+
* Extract classes from a computed() call expression.
|
|
163
|
+
* Handles: const classes = computed(() => ['flex', 'items-center'])
|
|
164
|
+
*/
|
|
165
|
+
private extractFromComputedCall;
|
|
166
|
+
/**
|
|
167
|
+
* Extract classes from an inject() call with a default value.
|
|
168
|
+
* Handles: const classes = inject('key', 'flex items-center')
|
|
169
|
+
*/
|
|
170
|
+
private extractFromInjectCall;
|
|
171
|
+
/**
|
|
172
|
+
* Extract classes from a function declaration's return statements.
|
|
173
|
+
* Handles: function getClasses() { return ['flex', 'items-center']; }
|
|
174
|
+
*/
|
|
175
|
+
private extractFromFunctionDeclaration;
|
|
176
|
+
/**
|
|
177
|
+
* Extract classes from a function body (block or expression).
|
|
178
|
+
* Handles both arrow function expressions and function blocks.
|
|
179
|
+
*/
|
|
180
|
+
private extractFromFunctionBody;
|
|
181
|
+
/**
|
|
182
|
+
* Extract classes from an expression (array, object, string, etc.)
|
|
183
|
+
* @param expr The expression to extract from
|
|
184
|
+
* @param context The extraction context
|
|
185
|
+
* @param attributeId Optional attribute ID for tracking
|
|
186
|
+
*/
|
|
187
|
+
private extractFromExpression;
|
|
188
|
+
/**
|
|
189
|
+
* Extract classes from props.propertyName patterns with default values.
|
|
190
|
+
* Vue generates __VLS_defaults for withDefaults() calls.
|
|
191
|
+
*
|
|
192
|
+
* Generated code pattern:
|
|
193
|
+
* const __VLS_defaults = { buttonClass: 'flex items-center' };
|
|
194
|
+
* ...{ class: (props.buttonClass) }
|
|
195
|
+
*/
|
|
196
|
+
private extractFromPropsWithDefaults;
|
|
197
|
+
/**
|
|
198
|
+
* Find a property value in __VLS_defaults object.
|
|
199
|
+
*/
|
|
200
|
+
private findVlsDefaultsProperty;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=VueAttributeExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VueAttributeExtractor.d.ts","sourceRoot":"","sources":["../../src/extractors/VueAttributeExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACvD,OAAO,CAAC,mBAAmB,CAAyB;;IAOpD;;;OAGG;IACH,aAAa,IAAI,YAAY;IAI7B;;;;;;;;OAQG;cACgB,0BAA0B,CAC5C,cAAc,EAAE,EAAE,CAAC,cAAc,EACjC,gBAAgB,EAAE,eAAe,EAAE,EACnC,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO;IA6DV,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAyC7D,OAAO,CAAC,sBAAsB;IAyB9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE;IA+DnE,OAAO,CAAC,uBAAuB;IAsN/B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAqFlC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiEnC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAQrC;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IAmCxC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA0DnC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA0ErC;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0EvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAkCvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,0BAA0B;IAyQlC;;;;;;;;OAQG;IACH,OAAO,CAAC,gCAAgC;IAmJxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,6BAA6B;IA2ErC;;;OAGG;IACH,OAAO,CAAC,oCAAoC;IAkD5C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA0CjC;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IA6BxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2EhC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiD/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IA2C/B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiL7B;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IA0CpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAuC/B"}
|