Apply page css when using nav-entry with create method

This commit is contained in:
vakrilov
2017-04-03 14:51:57 +03:00
parent 00d82010ae
commit 740d71a238
5 changed files with 41 additions and 34 deletions

View File

@@ -22,7 +22,7 @@ export class StyleScope {
public static createSelectorsFromCss(css: string, cssFileName: string, keyframes: Object): RuleSet[];
public static createSelectorsFromImports(tree: SyntaxTree, keyframes: Object): RuleSet[];
public ensureSelectors(): boolean;
public ensureSelectors(): number;
public applySelectors(view: ViewBase): void
public query(options: Node): SelectorCore[];

View File

@@ -200,7 +200,7 @@ export class StyleScope {
return undefined;
}
public ensureSelectors(): boolean {
public ensureSelectors(): number {
let toMerge: RuleSet[][];
if (this._applicationCssSelectorsAppliedVersion !== applicationCssSelectorVersion ||
this._localCssSelectorVersion !== this._localCssSelectorsAppliedVersion ||
@@ -218,12 +218,10 @@ export class StyleScope {
if (toMerge && toMerge.length > 0) {
this._mergedCssSelectors = toMerge.filter(m => !!m).reduce((merged, next) => merged.concat(next), []);
this._applyKeyframesOnSelectors();
} else {
return false;
this._selectors = new SelectorsMap(this._mergedCssSelectors);
}
this._selectors = new SelectorsMap(this._mergedCssSelectors);
return true;
return this._getSelectorsVersion();
}
public applySelectors(view: ViewBase): void {
@@ -245,6 +243,12 @@ export class StyleScope {
this._viewIdToKey = {};
}
private _getSelectorsVersion() {
// The counters can only go up. So we can return just appVersion + localVersion
// The 100000 * appVersion is just for easier debugging
return 100000 * this._applicationCssSelectorsAppliedVersion + this._localCssSelectorsAppliedVersion;
}
private _applyKeyframesOnSelectors() {
for (let i = this._mergedCssSelectors.length - 1; i >= 0; i--) {
let ruleset = this._mergedCssSelectors[i];