Skip to content

Commit 1869167

Browse files
committed
fix: Ensure the style requirements are satisfied.
1 parent eddefa2 commit 1869167

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

packages/@css-blocks/ember-app/runtime/app/services/css-blocks.ts

+18-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { ObjectDictionary } from "@opticss/util";
66

77
/// @ts-ignore
88
import { data as _data } from "./-css-blocks-data";
9-
import type { AggregateRewriteData, ConditionalStyle, ImpliedStyles, StyleExpression } from "./AggregateRewriteData";
9+
import type { AggregateRewriteData, ConditionalStyle, ImpliedStyles, StyleExpression, StyleRequirements } from "./AggregateRewriteData";
1010

1111
const data: AggregateRewriteData = _data;
1212

@@ -215,6 +215,8 @@ export default class CSSBlocksService extends Service {
215215
}
216216
}
217217

218+
ensureRequirementsAreSatisfied(stylesApplied, data.styleRequirements);
219+
218220
let aliasClassNames = applyImpliedStyles(stylesApplied, data.impliedStyles);
219221

220222
let classNameIndices = new Set<number>();
@@ -253,8 +255,22 @@ function evaluateExpression(expr: StyleExpression, stylesApplied: Set<number>, s
253255
}
254256
}
255257

258+
function ensureRequirementsAreSatisfied(stylesApplied: Set<number>, requirements: StyleRequirements): void {
259+
let checkAgain = true;
260+
while (checkAgain) {
261+
checkAgain = false;
262+
for (let s of stylesApplied) {
263+
let expr = requirements[s];
264+
if (expr && !evaluateExpression(expr, stylesApplied)) {
265+
stylesApplied.delete(s);
266+
checkAgain = true;
267+
break;
268+
}
269+
}
270+
}
271+
}
272+
256273
function applyImpliedStyles(stylesApplied: Set<number>, impliedStyles: ImpliedStyles): Set<string> {
257-
console.log({impliedStyles});
258274
let aliases = new Set<string>();
259275
let newStyles = new Set(stylesApplied);
260276
let failedConditions = new Set<ConditionalStyle>();

0 commit comments

Comments
 (0)