Skip to content

Commit 98df0a8

Browse files
authored
Merge pull request #1237 from IgniteUI/hPopov/fix-issue-1226
Add polyfill template for IE
2 parents e7e5142 + e6c6703 commit 98df0a8

File tree

2 files changed

+90
-4
lines changed

2 files changed

+90
-4
lines changed

live-editing/generators/SharedAssetsGenerator.ts

+10-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const ANGULAR_JSON_TEMPLATE_CSS_SUPPORT_PATH =
1717
const MAIN_TS_FILE_PATH = path.join(__dirname, "../templates/main.ts.template");
1818
const APP_COMPONENT_SCSS_PATH = path.join(__dirname, "../../src/app/app.component.scss");
1919
const APP_COMPONENT_TS_PATH = path.join(__dirname, "../../src/app/app.component.ts");
20-
20+
const IE_POLYFILLS_TS_PATH = path.join(__dirname, "../templates/polyfills.ts.template");
2121
export class SharedAssetsGenerator extends Generator {
2222
private _showLogs: boolean;
2323

@@ -69,15 +69,21 @@ export class SharedAssetsGenerator extends Generator {
6969
let args = new SharedAssetsGeneratorArgs("styles.css", styles,
7070
ANGULAR_JSON_TEMPLATE_CSS_SUPPORT_PATH, "app.component.css",
7171
appComponentStylesFileContent, appComponentTsFileContnet);
72-
this._generateSharedAssets(args);
72+
this._generateSharedAssets(args, true);
7373
}
7474

75-
private _generateSharedAssets(args: SharedAssetsGeneratorArgs) {
75+
private _generateSharedAssets(args: SharedAssetsGeneratorArgs, cssAssets?: boolean) {
7676
let indexFile = fs.readFileSync(INDEX_FILE_PATH, "utf8");
77-
let polyfillsFile = fs.readFileSync(POLYPFILLS_FILE_PATH, "utf8");
7877
let angularJsonFile = fs.readFileSync(args.angularJsonFilePath, "utf8");
7978
let mainTsFile = fs.readFileSync(MAIN_TS_FILE_PATH, "utf8");
8079
let files = new Array<LiveEditingFile>();
80+
let polyfillsFile;
81+
82+
if (cssAssets) {
83+
polyfillsFile = fs.readFileSync(IE_POLYFILLS_TS_PATH, "utf8");
84+
} else {
85+
polyfillsFile = fs.readFileSync(POLYPFILLS_FILE_PATH, "utf8");
86+
}
8187

8288
files.push(new LiveEditingFile(SAMPLE_SRC_FOLDER + "index.html", indexFile));
8389
files.push(new LiveEditingFile(SAMPLE_SRC_FOLDER + "polyfills.ts", polyfillsFile));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/**
2+
* This file includes polyfills needed by Angular and is loaded before the app.
3+
* You can add your own extra polyfills to this file.
4+
*
5+
* This file is divided into 2 sections:
6+
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
7+
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
8+
* file.
9+
*
10+
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
11+
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
12+
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
13+
*
14+
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
15+
*/
16+
17+
/***************************************************************************************************
18+
* BROWSER POLYFILLS
19+
*/
20+
21+
/* IE9, IE10 and IE11 requires all of the following polyfills. */
22+
import "core-js/es6/array";
23+
import "core-js/es6/date";
24+
import "core-js/es6/function";
25+
import "core-js/es6/map";
26+
import "core-js/es6/math";
27+
import "core-js/es6/number";
28+
import "core-js/es6/object";
29+
import "core-js/es6/parse-float";
30+
import "core-js/es6/parse-int";
31+
import "core-js/es6/regexp";
32+
import "core-js/es6/set";
33+
import "core-js/es6/string";
34+
import "core-js/es6/symbol";
35+
import "core-js/es6/weak-map";
36+
import "core-js/es7/object";
37+
38+
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
39+
import "classlist.js"; // Run `npm install --save classlist.js`.
40+
41+
/** IE10 and IE11 requires the following for the Reflect API. */
42+
import "core-js/es6/reflect";
43+
44+
/* Evergreen browsers require these. */
45+
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
46+
import "core-js/es7/reflect";
47+
48+
/*
49+
* Required to support Web Animations `@angular/platform-browser/animations`.
50+
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
51+
*/
52+
import "web-animations-js"; // Run `npm install --save web-animations-js`.
53+
54+
/***************************************************************************************************
55+
* Zone JS is required by Angular itself.
56+
*/
57+
import "hammerjs/hammer";
58+
import "zone.js/dist/zone"; // Included with Angular CLI.
59+
60+
/***************************************************************************************************
61+
* @angular/animations polyfill
62+
*/
63+
if (!Element.prototype.matches) {
64+
Element.prototype.matches = (Element.prototype as any).msMatchesSelector;
65+
}
66+
67+
/***************************************************************************************************
68+
* APPLICATION IMPORTS
69+
*/
70+
71+
/**
72+
* Date, currency, decimal and percent pipes.
73+
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
74+
*/
75+
// import "intl"; // Run `npm install --save intl`.
76+
// import "intl/locale-data/jsonp/de";
77+
/**
78+
* Need to import at least one locale-data with intl.
79+
*/
80+
// import "intl/locale-data/jsonp/en";

0 commit comments

Comments
 (0)