Skip to content

Commit 7a21eb9

Browse files
author
Maxime GRIS
committed
v1.0.0
1 parent 616a69e commit 7a21eb9

File tree

8 files changed

+5688
-41
lines changed

8 files changed

+5688
-41
lines changed

Diff for: LICENSE.md

+194
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
Apache License
2+
==============
3+
4+
_Version 2.0, January 2004_
5+
_&lt;<http://www.apache.org/licenses/>&gt;_
6+
7+
### Terms and Conditions for use, reproduction, and distribution
8+
9+
#### 1. Definitions
10+
11+
“License” shall mean the terms and conditions for use, reproduction, and
12+
distribution as defined by Sections 1 through 9 of this document.
13+
14+
“Licensor” shall mean the copyright owner or entity authorized by the copyright
15+
owner that is granting the License.
16+
17+
“Legal Entity” shall mean the union of the acting entity and all other entities
18+
that control, are controlled by, or are under common control with that entity.
19+
For the purposes of this definition, “control” means **(i)** the power, direct or
20+
indirect, to cause the direction or management of such entity, whether by
21+
contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
22+
outstanding shares, or **(iii)** beneficial ownership of such entity.
23+
24+
“You” (or “Your”) shall mean an individual or Legal Entity exercising
25+
permissions granted by this License.
26+
27+
“Source” form shall mean the preferred form for making modifications, including
28+
but not limited to software source code, documentation source, and configuration
29+
files.
30+
31+
“Object” form shall mean any form resulting from mechanical transformation or
32+
translation of a Source form, including but not limited to compiled object code,
33+
generated documentation, and conversions to other media types.
34+
35+
“Work” shall mean the work of authorship, whether in Source or Object form, made
36+
available under the License, as indicated by a copyright notice that is included
37+
in or attached to the work (an example is provided in the Appendix below).
38+
39+
“Derivative Works” shall mean any work, whether in Source or Object form, that
40+
is based on (or derived from) the Work and for which the editorial revisions,
41+
annotations, elaborations, or other modifications represent, as a whole, an
42+
original work of authorship. For the purposes of this License, Derivative Works
43+
shall not include works that remain separable from, or merely link (or bind by
44+
name) to the interfaces of, the Work and Derivative Works thereof.
45+
46+
“Contribution” shall mean any work of authorship, including the original version
47+
of the Work and any modifications or additions to that Work or Derivative Works
48+
thereof, that is intentionally submitted to Licensor for inclusion in the Work
49+
by the copyright owner or by an individual or Legal Entity authorized to submit
50+
on behalf of the copyright owner. For the purposes of this definition,
51+
“submitted” means any form of electronic, verbal, or written communication sent
52+
to the Licensor or its representatives, including but not limited to
53+
communication on electronic mailing lists, source code control systems, and
54+
issue tracking systems that are managed by, or on behalf of, the Licensor for
55+
the purpose of discussing and improving the Work, but excluding communication
56+
that is conspicuously marked or otherwise designated in writing by the copyright
57+
owner as “Not a Contribution.”
58+
59+
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
60+
of whom a Contribution has been received by Licensor and subsequently
61+
incorporated within the Work.
62+
63+
#### 2. Grant of Copyright License
64+
65+
Subject to the terms and conditions of this License, each Contributor hereby
66+
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
67+
irrevocable copyright license to reproduce, prepare Derivative Works of,
68+
publicly display, publicly perform, sublicense, and distribute the Work and such
69+
Derivative Works in Source or Object form.
70+
71+
#### 3. Grant of Patent License
72+
73+
Subject to the terms and conditions of this License, each Contributor hereby
74+
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
75+
irrevocable (except as stated in this section) patent license to make, have
76+
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
77+
such license applies only to those patent claims licensable by such Contributor
78+
that are necessarily infringed by their Contribution(s) alone or by combination
79+
of their Contribution(s) with the Work to which such Contribution(s) was
80+
submitted. If You institute patent litigation against any entity (including a
81+
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
82+
Contribution incorporated within the Work constitutes direct or contributory
83+
patent infringement, then any patent licenses granted to You under this License
84+
for that Work shall terminate as of the date such litigation is filed.
85+
86+
#### 4. Redistribution
87+
88+
You may reproduce and distribute copies of the Work or Derivative Works thereof
89+
in any medium, with or without modifications, and in Source or Object form,
90+
provided that You meet the following conditions:
91+
92+
* **(a)** You must give any other recipients of the Work or Derivative Works a copy of
93+
this License; and
94+
* **(b)** You must cause any modified files to carry prominent notices stating that You
95+
changed the files; and
96+
* **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
97+
all copyright, patent, trademark, and attribution notices from the Source form
98+
of the Work, excluding those notices that do not pertain to any part of the
99+
Derivative Works; and
100+
* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
101+
Derivative Works that You distribute must include a readable copy of the
102+
attribution notices contained within such NOTICE file, excluding those notices
103+
that do not pertain to any part of the Derivative Works, in at least one of the
104+
following places: within a NOTICE text file distributed as part of the
105+
Derivative Works; within the Source form or documentation, if provided along
106+
with the Derivative Works; or, within a display generated by the Derivative
107+
Works, if and wherever such third-party notices normally appear. The contents of
108+
the NOTICE file are for informational purposes only and do not modify the
109+
License. You may add Your own attribution notices within Derivative Works that
110+
You distribute, alongside or as an addendum to the NOTICE text from the Work,
111+
provided that such additional attribution notices cannot be construed as
112+
modifying the License.
113+
114+
You may add Your own copyright statement to Your modifications and may provide
115+
additional or different license terms and conditions for use, reproduction, or
116+
distribution of Your modifications, or for any such Derivative Works as a whole,
117+
provided Your use, reproduction, and distribution of the Work otherwise complies
118+
with the conditions stated in this License.
119+
120+
#### 5. Submission of Contributions
121+
122+
Unless You explicitly state otherwise, any Contribution intentionally submitted
123+
for inclusion in the Work by You to the Licensor shall be under the terms and
124+
conditions of this License, without any additional terms or conditions.
125+
Notwithstanding the above, nothing herein shall supersede or modify the terms of
126+
any separate license agreement you may have executed with Licensor regarding
127+
such Contributions.
128+
129+
#### 6. Trademarks
130+
131+
This License does not grant permission to use the trade names, trademarks,
132+
service marks, or product names of the Licensor, except as required for
133+
reasonable and customary use in describing the origin of the Work and
134+
reproducing the content of the NOTICE file.
135+
136+
#### 7. Disclaimer of Warranty
137+
138+
Unless required by applicable law or agreed to in writing, Licensor provides the
139+
Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
140+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
141+
including, without limitation, any warranties or conditions of TITLE,
142+
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
143+
solely responsible for determining the appropriateness of using or
144+
redistributing the Work and assume any risks associated with Your exercise of
145+
permissions under this License.
146+
147+
#### 8. Limitation of Liability
148+
149+
In no event and under no legal theory, whether in tort (including negligence),
150+
contract, or otherwise, unless required by applicable law (such as deliberate
151+
and grossly negligent acts) or agreed to in writing, shall any Contributor be
152+
liable to You for damages, including any direct, indirect, special, incidental,
153+
or consequential damages of any character arising as a result of this License or
154+
out of the use or inability to use the Work (including but not limited to
155+
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
156+
any and all other commercial damages or losses), even if such Contributor has
157+
been advised of the possibility of such damages.
158+
159+
#### 9. Accepting Warranty or Additional Liability
160+
161+
While redistributing the Work or Derivative Works thereof, You may choose to
162+
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
163+
other liability obligations and/or rights consistent with this License. However,
164+
in accepting such obligations, You may act only on Your own behalf and on Your
165+
sole responsibility, not on behalf of any other Contributor, and only if You
166+
agree to indemnify, defend, and hold each Contributor harmless for any liability
167+
incurred by, or claims asserted against, such Contributor by reason of your
168+
accepting any such warranty or additional liability.
169+
170+
_END OF TERMS AND CONDITIONS_
171+
172+
### APPENDIX: How to apply the Apache License to your work
173+
174+
To apply the Apache License to your work, attach the following boilerplate
175+
notice, with the fields enclosed by brackets `[]` replaced with your own
176+
identifying information. (Don't include the brackets!) The text should be
177+
enclosed in the appropriate comment syntax for the file format. We also
178+
recommend that a file or class name and description of purpose be included on
179+
the same “printed page” as the copyright notice for easier identification within
180+
third-party archives.
181+
182+
Copyright [yyyy] [name of copyright owner]
183+
184+
Licensed under the Apache License, Version 2.0 (the "License");
185+
you may not use this file except in compliance with the License.
186+
You may obtain a copy of the License at
187+
188+
http://www.apache.org/licenses/LICENSE-2.0
189+
190+
Unless required by applicable law or agreed to in writing, software
191+
distributed under the License is distributed on an "AS IS" BASIS,
192+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
193+
See the License for the specific language governing permissions and
194+
limitations under the License.

Diff for: README.md

+10-21
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,17 @@
1-
# AngularElectron
1+
[![Angular Logo](./logo-angular.jpg)](https://angular.io/) [![Electron Logo](./logo-electron.jpg)](https://electron.atom.io/)
22

3-
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.0.0.
3+
# Introduction
44

5-
## Development server
5+
Bootstrap your project with Angular 4 and Electron (Typescript + SASS)
66

7-
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
7+
## To build for development
88

9-
## Code scaffolding
9+
**in a terminal window** -> npm start
10+
**in another terminal window** -> npm run electron
1011

11-
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class/module`.
12+
Note: also works with yarn
1213

13-
## Build
14+
## To build for production
1415

15-
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
16-
17-
## Running unit tests
18-
19-
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
20-
21-
## Running end-to-end tests
22-
23-
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
24-
Before running the tests make sure you are serving the app via `ng serve`.
25-
26-
## Further help
27-
28-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
16+
npm run build
17+
npm run electron dist

Diff for: logo-angular.jpg

3.28 KB
Loading

Diff for: logo-electron.jpg

7.84 KB
Loading

Diff for: main.js

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
'use strict';
2+
const electron = require('electron');
3+
// Module to control application life.
4+
const {app} = electron;
5+
// Module to create native browser window.
6+
const {BrowserWindow} = electron;
7+
8+
let win;
9+
10+
function createWindow() {
11+
12+
let electronScreen = electron.screen;
13+
let size = electronScreen.getPrimaryDisplay().workAreaSize;
14+
15+
// Create the browser window.
16+
win = new BrowserWindow({
17+
x: 0,
18+
y: 0,
19+
width: size.width,
20+
height: size.height
21+
});
22+
23+
let url = 'http://localhost:4200';
24+
let Args = process.argv.slice(2);
25+
Args.forEach(function (val) {
26+
if (val === "dist") {
27+
url = 'file://' + __dirname + '/dist/index.html'
28+
}
29+
});
30+
31+
// and load the index.html of the app.
32+
win.loadURL(url);
33+
34+
// Open the DevTools.
35+
win.webContents.openDevTools();
36+
37+
// Emitted when the window is closed.
38+
win.on('closed', () => {
39+
// Dereference the window object, usually you would store windows
40+
// in an array if your app supports multi windows, this is the time
41+
// when you should delete the corresponding element.
42+
win = null;
43+
});
44+
}
45+
46+
// This method will be called when Electron has finished
47+
// initialization and is ready to create browser windows.
48+
// Some APIs can only be used after this event occurs.
49+
app.on('ready', createWindow);
50+
51+
// Quit when all windows are closed.
52+
app.on('window-all-closed', () => {
53+
// On OS X it is common for applications and their menu bar
54+
// to stay active until the user quits explicitly with Cmd + Q
55+
if (process.platform !== 'darwin') {
56+
app.quit();
57+
}
58+
});
59+
60+
app.on('activate', () => {
61+
// On OS X it's common to re-create a window in the app when the
62+
// dock icon is clicked and there are no other windows open.
63+
if (win === null) {
64+
createWindow();
65+
}
66+
});

Diff for: package.json

+35-19
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,62 @@
11
{
22
"name": "angular-electron",
3-
"version": "0.0.0",
4-
"license": "MIT",
3+
"version": "1.0.0",
4+
"description": "Angular 4 with Electron (Typescript + SASS)",
5+
"homepage": "",
6+
"author": {
7+
"name": "Maxime GRIS",
8+
"email": "[email protected]"
9+
},
10+
"keywords" : [
11+
"angular",
12+
"electron",
13+
"typescript",
14+
"sass"
15+
],
16+
"main": "main.js",
17+
"private": true,
518
"scripts": {
619
"ng": "ng",
720
"start": "ng serve",
821
"build": "ng build",
922
"test": "ng test",
1023
"lint": "ng lint",
11-
"e2e": "ng e2e"
24+
"e2e": "ng e2e",
25+
"electron": "electron .",
26+
"electron dist": "electron main.js"
1227
},
13-
"private": true,
1428
"dependencies": {
15-
"@angular/common": "^4.0.0",
16-
"@angular/compiler": "^4.0.0",
17-
"@angular/core": "^4.0.0",
18-
"@angular/forms": "^4.0.0",
19-
"@angular/http": "^4.0.0",
20-
"@angular/platform-browser": "^4.0.0",
21-
"@angular/platform-browser-dynamic": "^4.0.0",
22-
"@angular/router": "^4.0.0",
23-
"core-js": "^2.4.1",
24-
"rxjs": "^5.1.0",
25-
"zone.js": "^0.8.4"
29+
"@angular/common": "~4.0.0",
30+
"@angular/compiler": "~4.0.0",
31+
"@angular/core": "~4.0.0",
32+
"@angular/forms": "~4.0.0",
33+
"@angular/http": "~4.0.0",
34+
"@angular/platform-browser": "~4.0.0",
35+
"@angular/platform-browser-dynamic": "~4.0.0",
36+
"@angular/router": "~4.0.0",
37+
"core-js": "~2.4.1",
38+
"rxjs": "~5.1.0",
39+
"zone.js": "~0.8.4"
2640
},
2741
"devDependencies": {
2842
"@angular/cli": "1.0.0",
29-
"@angular/compiler-cli": "^4.0.0",
43+
"@angular/compiler-cli": "~4.0.0",
3044
"@types/jasmine": "2.5.38",
3145
"@types/node": "~6.0.60",
3246
"codelyzer": "~2.0.0",
47+
"electron-prebuilt": "~1.4.13",
3348
"jasmine-core": "~2.5.2",
3449
"jasmine-spec-reporter": "~3.2.0",
3550
"karma": "~1.4.1",
3651
"karma-chrome-launcher": "~2.0.0",
3752
"karma-cli": "~1.0.1",
3853
"karma-jasmine": "~1.1.0",
39-
"karma-jasmine-html-reporter": "^0.2.2",
40-
"karma-coverage-istanbul-reporter": "^0.2.0",
54+
"karma-jasmine-html-reporter": "~0.2.2",
55+
"karma-coverage-istanbul-reporter": "~0.2.0",
4156
"protractor": "~5.1.0",
4257
"ts-node": "~2.0.0",
4358
"tslint": "~4.5.0",
4459
"typescript": "~2.2.0"
45-
}
60+
},
61+
"license": "SEE LICENSE IN LICENSE.md"
4662
}

Diff for: src/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="utf-8">
55
<title>AngularElectron</title>
6-
<base href="/">
6+
<base href="./">
77

88
<meta name="viewport" content="width=device-width, initial-scale=1">
99
<link rel="icon" type="image/x-icon" href="favicon.ico">

0 commit comments

Comments
 (0)