Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit 3e1fcbd

Browse files
ThomasBurlesontinayuangao
authored andcommitted
fix(flexbox): resolve 'renderer.setStyle()' error (#298)
* Revert back to Renderer (from Renderer2); Injecting both Renderers causes intermittent `TypeError: _this._renderer.setStyle is not a function` errors. * Refactor the FxBaseDirective to use a StyleRenderer interface Fixes #270
1 parent bc0c900 commit 3e1fcbd

16 files changed

+1935
-1349
lines changed

package.json

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"core-js": "^2.4.1",
4646
"reflect-metadata": "^0.1.8",
4747
"rxjs": "^5.0.1",
48-
"systemjs": "^0.19.41",
48+
"systemjs": "0.19.43",
4949
"zone.js": "^0.8.4"
5050
},
5151
"devDependencies": {
@@ -61,81 +61,93 @@
6161
"@angularclass/request-idle-callback": "^1.0.7",
6262
"@angularclass/webpack-toolkit": "^1.3.3",
6363
"@types/core-js": "^0.9.34",
64-
"@types/glob": "^5.0.29",
65-
"@types/gulp": "^3.8.29",
66-
"@types/hammerjs": "~2.0.33",
67-
"@types/jasmine": "2.5.38",
68-
"@types/merge2": "0.0.28",
69-
"@types/minimist": "^1.1.28",
70-
"@types/node": "^6.0.45",
71-
"@types/run-sequence": "0.0.27",
72-
"@types/rx": "^2.5.33",
64+
"@types/glob": "^5.0.30",
65+
"@types/gulp": "^4.0.3",
66+
"@types/hammerjs": "^2.0.34",
67+
"@types/jasmine": "2.5.45",
68+
"@types/merge2": "^0.3.30",
69+
"@types/minimist": "^1.2.0",
70+
"@types/node": "^7.0.21",
71+
"@types/run-sequence": "^0.0.29",
72+
"@types/rx": "2.5.33",
73+
7374
"@types/source-map": "^0.1.27",
7475
"@types/uglify-js": "^2.0.27",
75-
"@types/webpack": "^1.12.34",
76+
"@types/webpack": "^2.2.15",
7677
"angular2-template-loader": "^0.6.0",
77-
"assets-webpack-plugin": "^3.4.0",
78-
"awesome-typescript-loader": "3.0.0-beta.9",
78+
"assets-webpack-plugin": "^3.5.1",
79+
"awesome-typescript-loader": "^3.1.3",
7980
"browserstacktunnel-wrapper": "^2.0.0",
8081
"clang-format": "^1.0.45",
8182
"concurrently": "^2.2.0",
8283
"conventional-changelog": "^1.1.0",
83-
"copy-webpack-plugin": "^4.0.0",
84-
"css-loader": "^0.25.0",
85-
"extract-text-webpack-plugin": "^1.0.1",
86-
"file-loader": "^0.9.0",
87-
"fs-extra": "^0.26.5",
88-
"glob": "^6.0.4",
84+
"copy-webpack-plugin": "^4.0.1",
85+
"css-loader": "^0.28.2",
86+
"extract-text-webpack-plugin": "^2.1.0",
87+
"file-loader": "^0.11.1",
88+
"fs-extra": "^3.0.1",
89+
"glob": "^7.1.2",
8990
"gulp": "^3.9.1",
9091
"gulp-autoprefixer": "^3.1.1",
9192
"gulp-better-rollup": "^1.0.2",
9293
"gulp-clang-format": "^1.0.23",
9394
"gulp-clean": "^0.3.2",
94-
"gulp-cli": "^1.2.2",
95+
"gulp-cli": "^1.3.0",
9596
"gulp-conventional-changelog": "^1.1.0",
96-
"gulp-server-livereload": "^1.8.2",
97-
"gulp-sourcemaps": "^1.6.0",
97+
"gulp-dom": "^0.9.17",
98+
"gulp-flatten": "^0.3.1",
99+
"gulp-highlight-files": "^0.0.4",
100+
"gulp-htmlmin": "^3.0.0",
101+
"gulp-if": "^2.0.2",
102+
"gulp-markdown": "^1.2.0",
103+
"gulp-rename": "^1.2.2",
104+
"gulp-sass": "^3.1.0",
105+
"gulp-sourcemaps": "^2.6.0",
106+
"gulp-transform": "^2.0.0",
107+
"gulp-server-livereload": "^1.9.2",
108+
"gulp-transform": "^2.0.0",
98109
"gulp-typescript": "^2.13.6",
99-
"hammerjs": "~2.0.8",
110+
"hammerjs": "^2.0.8",
100111
"html-loader": "^0.4.3",
101112
"html-webpack-plugin": "^2.22.0",
102-
"jasmine-core": "^2.4.1",
103-
"karma": "^1.3.0",
113+
"jasmine-core": "^2.6.2",
114+
"karma": "^1.7.0",
104115
"karma-browserstack-launcher": "^1.2.0",
105-
"karma-chrome-launcher": "^2.0.0",
116+
"karma-chrome-launcher": "^2.1.1",
106117
"karma-coverage": "^1.1.1",
107-
"karma-jasmine": "^1.0.2",
118+
"karma-firefox-launcher": "^1.0.1",
119+
"karma-jasmine": "^1.1.0",
108120
"karma-mocha-reporter": "^2.0.0",
109121
"karma-remap-coverage": "^0.1.1",
110122
"karma-sauce-launcher": "^1.1.0",
111123
"karma-sourcemap-loader": "^0.3.7",
112124
"karma-webpack": "1.8.1",
113-
"madge": "^1.4.4",
114-
"merge2": "^1.0.2",
125+
"madge": "^1.6.0",
126+
"merge2": "^1.0.3",
115127
"minimist": "^1.2.0",
116128
"opn-cli": "^3.1.0",
117129
"prompt-sync": "^4.1.4",
118130
"raw-loader": "^0.5.1",
119131
"reflect-metadata": "^0.1.8",
120132
"resolve-bin": "^0.4.0",
121-
"rollup": "^0.34.13",
133+
"rollup": "^0.41.6",
122134
"rollup-plugin-includepaths": "^0.1.6",
123135
"rollup-plugin-uglify": "^1.0.1",
124136
"run-sequence": "^1.2.2",
125137
"sass": "^0.5.0",
126138
"source-map-loader": "^0.1.5",
127139
"style-loader": "^0.13.1",
128-
"stylelint": "^7.5.0",
140+
"stylelint": "^7.10.1",
129141
"travis-after-modes": "0.0.7",
130142
"ts-helpers": "1.1.2",
131-
"ts-node": "^0.7.3",
132-
"tslint": "^4.2.0",
143+
"ts-node": "^3.0.4",
144+
"tslint": "^5.2.0",
133145
"tslint-loader": "^3.3.0",
134-
"typescript": "^2.1.10",
146+
"typescript": "~2.2.1",
135147
"url-loader": "^0.5.7",
136-
"webpack": "2.2.0-rc.3",
148+
"webpack": "2.6.1",
137149
"webpack-bundle-analyzer": "^2.2.0",
138-
"webpack-dev-server": "^2.2.0-rc.0",
150+
"webpack-dev-server": "^2.4.5",
139151
"webpack-livereload-plugin": "^0.9.0"
140152
}
141-
}
153+
}

src/lib/flexbox/api/base-adapter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8-
import {ElementRef, Renderer2} from '@angular/core';
8+
import {ElementRef, Renderer} from '@angular/core';
99

1010
import {BaseFxDirective} from './base';
1111
import {ResponsiveActivation} from './../responsive/responsive-activation';
@@ -48,7 +48,7 @@ export class BaseFxDirectiveAdapter extends BaseFxDirective {
4848
constructor(protected _baseKey: string, // non-responsive @Input property name
4949
protected _mediaMonitor: MediaMonitor,
5050
protected _elementRef: ElementRef,
51-
protected _renderer: Renderer2 ) {
51+
protected _renderer: Renderer ) {
5252
super(_mediaMonitor, _elementRef, _renderer);
5353
}
5454

src/lib/flexbox/api/base.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
import {
9-
ElementRef, Renderer2, OnDestroy, SimpleChanges, OnChanges,
10-
SimpleChange
9+
ElementRef, OnDestroy, SimpleChanges, OnChanges,
10+
SimpleChange, Renderer
1111
} from '@angular/core';
1212

1313
import {applyCssPrefixes} from '../../utils/auto-prefixer';
@@ -17,6 +17,7 @@ import {ResponsiveActivation, KeyOptions} from '../responsive/responsive-activat
1717
import {MediaMonitor} from '../../media-query/media-monitor';
1818
import {MediaQuerySubscriber} from '../../media-query/media-change';
1919

20+
2021
/**
2122
* Definition of a css style. Either a property name (e.g. "flex-basis") or an object
2223
* map of property name and value (e.g. {display: 'none', flex-order: 5}).
@@ -64,11 +65,10 @@ export abstract class BaseFxDirective implements OnDestroy, OnChanges {
6465
*/
6566
constructor(protected _mediaMonitor: MediaMonitor,
6667
protected _elementRef: ElementRef,
67-
protected _renderer: Renderer2) {
68+
protected _renderer: Renderer) {
6869
this._display = this._getDisplayStyle();
6970
}
7071

71-
7272
// *********************************************
7373
// Accessor Methods
7474
// *********************************************
@@ -148,7 +148,7 @@ export abstract class BaseFxDirective implements OnDestroy, OnChanges {
148148
Object.keys(styles).forEach(key => {
149149
const values = Array.isArray(styles[key]) ? styles[key] : [styles[key]];
150150
for (let value of values) {
151-
this._renderer.setStyle(element, key, value);
151+
this._renderer.setElementStyle(element, key, value);
152152
}
153153
});
154154
}
@@ -249,4 +249,5 @@ export abstract class BaseFxDirective implements OnDestroy, OnChanges {
249249
* Dictionary of input keys with associated values
250250
*/
251251
protected _inputMap = {};
252+
252253
}

src/lib/flexbox/api/class.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
DoCheck,
1313
OnDestroy,
1414
Renderer,
15-
Renderer2,
1615
IterableDiffers,
1716
KeyValueDiffers, SimpleChanges, OnChanges
1817
} from '@angular/core';
@@ -110,10 +109,9 @@ export class ClassDirective extends NgClass implements DoCheck, OnChanges, OnDes
110109
/* tslint:enable */
111110
constructor(protected monitor: MediaMonitor,
112111
_iterableDiffers: IterableDiffers, _keyValueDiffers: KeyValueDiffers,
113-
_ngEl: ElementRef, _oldRenderer: Renderer, _renderer: Renderer2) {
112+
_ngEl: ElementRef, _renderer: Renderer) {
114113

115-
// TODO: this should use Renderer2 as well, but NgClass hasn't switched over yet.
116-
super(_iterableDiffers, _keyValueDiffers, _ngEl, _oldRenderer);
114+
super(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer);
117115

118116
this._classAdapter = new BaseFxDirectiveAdapter('class', monitor, _ngEl, _renderer);
119117
this._ngClassAdapter = new BaseFxDirectiveAdapter('ngClass', monitor, _ngEl, _renderer);

src/lib/flexbox/api/flex-align.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
OnInit,
1313
OnChanges,
1414
OnDestroy,
15-
Renderer2,
15+
Renderer,
1616
SimpleChanges,
1717
} from '@angular/core';
1818

@@ -54,7 +54,7 @@ export class FlexAlignDirective extends BaseFxDirective implements OnInit, OnCha
5454
@Input('fxFlexAlign.gt-lg') set alignGtLg(val) { this._cacheInput('alignGtLg', val); };
5555

5656
/* tslint:enable */
57-
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer2) {
57+
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer) {
5858
super(monitor, elRef, renderer);
5959
}
6060

src/lib/flexbox/api/flex-fill.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8-
import {Directive, ElementRef, Renderer2} from '@angular/core';
8+
import {Directive, ElementRef, Renderer} from '@angular/core';
99

1010
import {MediaMonitor} from '../../media-query/media-monitor';
1111
import {BaseFxDirective} from './base';
@@ -29,7 +29,7 @@ const FLEX_FILL_CSS = {
2929
[fxFlexFill]
3030
`})
3131
export class FlexFillDirective extends BaseFxDirective {
32-
constructor(monitor: MediaMonitor, public elRef: ElementRef, public renderer: Renderer2) {
32+
constructor(monitor: MediaMonitor, public elRef: ElementRef, public renderer: Renderer) {
3333
super(monitor, elRef, renderer);
3434
this._applyStyleToElement(FLEX_FILL_CSS);
3535
}

src/lib/flexbox/api/flex-offset.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
OnInit,
1313
OnChanges,
1414
OnDestroy,
15-
Renderer2,
15+
Renderer,
1616
SimpleChanges,
1717
} from '@angular/core';
1818

@@ -53,7 +53,7 @@ export class FlexOffsetDirective extends BaseFxDirective implements OnInit, OnCh
5353
@Input('fxFlexOffset.gt-lg') set offsetGtLg(val) { this._cacheInput('offsetGtLg', val); };
5454

5555
/* tslint:enable */
56-
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer2) {
56+
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer) {
5757
super(monitor, elRef, renderer);
5858
}
5959

src/lib/flexbox/api/flex-order.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
OnInit,
1313
OnChanges,
1414
OnDestroy,
15-
Renderer2,
15+
Renderer,
1616
SimpleChanges,
1717
} from '@angular/core';
1818

@@ -52,7 +52,7 @@ export class FlexOrderDirective extends BaseFxDirective implements OnInit, OnCha
5252
@Input('fxFlexOrder.lt-xl') set orderLtXl(val) { this._cacheInput('orderLtXl', val); };
5353

5454
/* tslint:enable */
55-
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer2) {
55+
constructor(monitor: MediaMonitor, elRef: ElementRef, renderer: Renderer) {
5656
super(monitor, elRef, renderer);
5757
}
5858

src/lib/flexbox/api/flex.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
OnDestroy,
1414
OnInit,
1515
Optional,
16-
Renderer2,
16+
Renderer,
1717
SimpleChanges,
1818
SkipSelf,
1919
} from '@angular/core';
@@ -83,7 +83,7 @@ export class FlexDirective extends BaseFxDirective implements OnInit, OnChanges,
8383
// parent flex container for this flex item.
8484
constructor(monitor: MediaMonitor,
8585
elRef: ElementRef,
86-
renderer: Renderer2,
86+
renderer: Renderer,
8787
@Optional() @SkipSelf() protected _container: LayoutDirective,
8888
@Optional() @SkipSelf() protected _wrap: LayoutWrapDirective) {
8989

src/lib/flexbox/api/layout-align.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
OnDestroy,
1414
OnInit,
1515
Optional,
16-
Renderer2,
16+
Renderer,
1717
SimpleChanges, Self,
1818
} from '@angular/core';
1919
import {Subscription} from 'rxjs/Subscription';
@@ -68,7 +68,7 @@ export class LayoutAlignDirective extends BaseFxDirective implements OnInit, OnC
6868
/* tslint:enable */
6969
constructor(
7070
monitor: MediaMonitor,
71-
elRef: ElementRef, renderer: Renderer2,
71+
elRef: ElementRef, renderer: Renderer,
7272
@Optional() @Self() container: LayoutDirective) {
7373
super(monitor, elRef, renderer);
7474

0 commit comments

Comments
 (0)