2017-01-27 03:20:51 -05:00
|
|
|
<!doctype html>
|
2019-02-21 20:23:16 -05:00
|
|
|
<html lang="en">
|
2019-02-21 20:20:09 -05:00
|
|
|
|
2017-01-27 03:20:51 -05:00
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
2019-02-21 20:21:40 -05:00
|
|
|
<title>Angular</title>
|
2019-02-21 20:31:43 -05:00
|
|
|
<meta name="Description" content="Angular is a platform for building mobile and desktop web applications.
|
2019-04-01 09:58:09 -04:00
|
|
|
Join the community of millions of developers who build compelling user interfaces with Angular.">
|
2017-01-27 03:20:51 -05:00
|
|
|
<base href="/">
|
|
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
2018-08-30 12:32:32 -04:00
|
|
|
<link rel="search" type="application/opensearchdescription+xml" href="assets/opensearch.xml">
|
2017-01-27 03:20:51 -05:00
|
|
|
<link rel="icon" type="image/x-icon" href="assets/images/favicons/favicon.ico">
|
2019-02-21 20:20:09 -05:00
|
|
|
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-32x32.png" sizes="32x32">
|
|
|
|
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-194x194.png" sizes="194x194">
|
|
|
|
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-96x96.png" sizes="96x96">
|
|
|
|
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-16x16.png" sizes="16x16">
|
2018-05-11 05:20:13 -04:00
|
|
|
<link rel="apple-touch-icon" sizes="144x144" href="assets/images/favicons/favicon-144x144.png">
|
|
|
|
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/images/favicons/favicon-144x144.png">
|
2017-02-15 14:22:37 -05:00
|
|
|
|
2017-11-28 13:13:52 -05:00
|
|
|
<!-- NOTE: These need to be kept in sync with `ngsw-config.json`. -->
|
2018-11-26 10:49:23 -05:00
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
|
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Droid+Sans+Mono">
|
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
2017-04-25 10:55:28 -04:00
|
|
|
<!-- -->
|
2017-04-19 14:10:13 -04:00
|
|
|
|
2017-03-30 15:35:15 -04:00
|
|
|
<link rel="manifest" href="pwa-manifest.json">
|
|
|
|
<meta name="theme-color" content="#1976d2">
|
2017-06-15 01:44:15 -04:00
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="translucent">
|
2017-06-16 10:33:21 -04:00
|
|
|
|
2018-02-02 11:40:14 -05:00
|
|
|
<script>
|
|
|
|
// Dynamically, pre-emptively, add `noindex`, which will be removed when the doc is ready and valid
|
|
|
|
tag = document.createElement('meta'); tag.name = 'robots'; tag.content = 'noindex';
|
|
|
|
document.head.appendChild(tag);
|
|
|
|
</script>
|
|
|
|
|
2017-03-13 21:08:23 -04:00
|
|
|
<!-- Google Analytics -->
|
|
|
|
<script>
|
2019-02-21 20:20:09 -05:00
|
|
|
// Note this is a customised version of the GA tracking snippet
|
|
|
|
// See the comments below for more info
|
|
|
|
(function (i, s, o, g, r, a, m) {
|
|
|
|
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
|
|
|
(i[r].q = i[r].q || []).push(arguments)
|
|
|
|
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
|
|
|
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g;
|
|
|
|
~i.name.indexOf('NG_DEFER_BOOTSTRAP') || // only load library if not running e2e tests
|
|
|
|
m.parentNode.insertBefore(a, m)
|
|
|
|
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
2017-03-13 21:08:23 -04:00
|
|
|
</script>
|
|
|
|
<!-- End Google Analytics -->
|
2017-05-15 16:22:06 -04:00
|
|
|
|
2018-02-06 12:59:34 -05:00
|
|
|
<script>
|
|
|
|
// Report fatal errors to Google Analytics
|
2019-02-21 20:20:09 -05:00
|
|
|
window.onerror = function () {
|
|
|
|
ga('send', 'exception', { exDescription: formatError.apply(null, arguments), exFatal: true });
|
2018-02-06 12:59:34 -05:00
|
|
|
|
|
|
|
function formatError(msg, url, line, col, e) {
|
|
|
|
var stack;
|
|
|
|
msg = msg.replace(/^Error: /, '');
|
|
|
|
if (e) {
|
|
|
|
stack = e.stack
|
2019-02-21 20:20:09 -05:00
|
|
|
// strip the leading "Error: " from the stack trace
|
|
|
|
.replace(/^Error: /, '')
|
|
|
|
// strip the message from the stack trace, if present
|
|
|
|
.replace(msg + '\n', '')
|
|
|
|
// strip leading spaces
|
|
|
|
.replace(/^ +/gm, '')
|
|
|
|
// strip all leading "at " for each frame
|
|
|
|
.replace(/^at /gm, '')
|
|
|
|
// replace long urls with just the last segment: `filename:line:column`
|
|
|
|
.replace(/(?: \(|@)http.+\/([^/)]+)\)?(?:\n|$)/gm, '@$1\n')
|
|
|
|
// replace "eval code" in Edge
|
|
|
|
.replace(/ *\(eval code(:\d+:\d+)\)(?:\n|$)/gm, '@???$1\n')
|
2018-02-06 12:59:34 -05:00
|
|
|
} else {
|
|
|
|
line = line || '?';
|
|
|
|
col = col || '?';
|
|
|
|
stack = url + ':' + line + ':' + col;
|
|
|
|
}
|
|
|
|
return (msg + '\n' + stack).substr(0, 150);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
2017-01-27 03:20:51 -05:00
|
|
|
</head>
|
2019-02-21 20:20:09 -05:00
|
|
|
|
2017-01-27 03:20:51 -05:00
|
|
|
<body>
|
2017-05-15 16:22:06 -04:00
|
|
|
|
2017-03-31 19:17:19 -04:00
|
|
|
<aio-shell></aio-shell>
|
|
|
|
|
|
|
|
<noscript>
|
2017-06-16 11:07:53 -04:00
|
|
|
<div class="background-sky hero"></div>
|
2018-10-01 15:24:02 -04:00
|
|
|
<section id="intro" style="text-shadow: 1px 1px #1976d2;">
|
2017-06-16 11:07:53 -04:00
|
|
|
<div class="hero-logo">
|
2019-01-11 13:44:08 -05:00
|
|
|
<img src="assets/images/logos/angular/angular.svg" width="250" height="250" alt="Angular">
|
2017-03-31 19:17:19 -04:00
|
|
|
</div>
|
2017-06-16 11:07:53 -04:00
|
|
|
<div class="homepage-container">
|
|
|
|
<div class="hero-headline">One framework.<br>Mobile & desktop.</div>
|
|
|
|
</div>
|
|
|
|
</section>
|
2018-10-01 15:24:02 -04:00
|
|
|
<h2 style="color: red; margin-top: 40px; position: relative; text-align: center; text-shadow: 1px 1px #fafafa;">
|
2017-07-07 14:16:51 -04:00
|
|
|
<b><i>This website requires JavaScript.</i></b>
|
|
|
|
</h2>
|
2017-03-31 19:17:19 -04:00
|
|
|
</noscript>
|
2017-01-27 03:20:51 -05:00
|
|
|
</body>
|
2019-02-21 20:20:09 -05:00
|
|
|
|
2017-01-27 03:20:51 -05:00
|
|
|
</html>
|