├── .editorconfig
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .storybook
├── addons.js
├── tsconfig.json
└── webpack.config.js
├── .vscode
└── extensions.json
├── README.md
├── angular.json
├── apps
├── .gitkeep
├── cov-app-e2e
│ ├── .nyc_output
│ │ └── out.json
│ ├── coverage.webpack.js
│ ├── cypress.json
│ ├── src
│ │ ├── fixtures
│ │ │ └── example.json
│ │ ├── integration
│ │ │ └── app.spec.ts
│ │ ├── plugins
│ │ │ └── index.js
│ │ └── support
│ │ │ ├── app.po.ts
│ │ │ ├── commands.ts
│ │ │ └── index.ts
│ ├── tsconfig.e2e.json
│ ├── tsconfig.json
│ └── tslint.json
├── cov-app
│ ├── browserslist
│ ├── jest.config.js
│ ├── src
│ │ ├── app
│ │ │ ├── app.component.css
│ │ │ ├── app.component.html
│ │ │ ├── app.component.spec.ts
│ │ │ ├── app.component.ts
│ │ │ └── app.module.ts
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── environments
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── polyfills.ts
│ │ ├── styles.css
│ │ └── test-setup.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ ├── tsconfig.spec.json
│ └── tslint.json
└── ui-lib-e2e
│ ├── .nyc_output
│ └── out.json
│ ├── cypress.json
│ ├── src
│ ├── fixtures
│ │ └── example.json
│ ├── integration
│ │ └── task
│ │ │ └── task.component.spec.ts
│ ├── plugins
│ │ └── index.js
│ └── support
│ │ ├── commands.ts
│ │ └── index.ts
│ ├── tsconfig.e2e.json
│ ├── tsconfig.json
│ └── tslint.json
├── jest.config.js
├── karma.conf.js
├── libs
├── .gitkeep
└── ui-lib
│ ├── .storybook
│ ├── addons.js
│ ├── config.js
│ ├── tsconfig.json
│ └── webpack.config.js
│ ├── README.md
│ ├── jest.config.js
│ ├── src
│ ├── index.ts
│ ├── lib
│ │ ├── task
│ │ │ ├── task.component.css
│ │ │ ├── task.component.html
│ │ │ ├── task.component.spec.ts
│ │ │ ├── task.component.stories.ts
│ │ │ └── task.component.ts
│ │ ├── ui-lib.module.spec.ts
│ │ └── ui-lib.module.ts
│ └── test-setup.ts
│ ├── tsconfig.json
│ ├── tsconfig.lib.json
│ ├── tsconfig.lib.prod.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── nx.json
├── package-lock.json
├── package.json
├── tools
├── schematics
│ └── .gitkeep
└── tsconfig.tools.json
├── tsconfig.json
└── tslint.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 | /out-tsc
7 |
8 | # dependencies
9 | /node_modules
10 |
11 | # IDEs and editors
12 | /.idea
13 | .project
14 | .classpath
15 | .c9/
16 | *.launch
17 | .settings/
18 | *.sublime-workspace
19 |
20 | # IDE - VSCode
21 | .vscode/*
22 | !.vscode/settings.json
23 | !.vscode/tasks.json
24 | !.vscode/launch.json
25 | !.vscode/extensions.json
26 |
27 | # misc
28 | /.sass-cache
29 | /connect.lock
30 | /coverage
31 | /libpeerconnection.log
32 | npm-debug.log
33 | yarn-error.log
34 | testem.log
35 | /typings
36 |
37 | # System Files
38 | .DS_Store
39 | Thumbs.db
40 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Add files here to ignore them from prettier formatting
2 |
3 | /dist
4 | /coverage
5 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true
3 | }
4 |
--------------------------------------------------------------------------------
/.storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-knobs/register';
2 |
--------------------------------------------------------------------------------
/.storybook/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "exclude": ["../**/test.ts", "../**/*.spec.ts"],
4 | "include": ["../**/*"]
5 | }
6 |
--------------------------------------------------------------------------------
/.storybook/webpack.config.js:
--------------------------------------------------------------------------------
1 | // Export a function. Accept the base config as the only param.
2 | module.exports = async ({ config, mode }) => {
3 | // `mode` has a value of 'DEVELOPMENT' or 'PRODUCTION'
4 | // You can change the configuration based on that.
5 | // 'PRODUCTION' is used when building the static version of storybook.
6 |
7 | // Make whatever fine-grained changes you need
8 |
9 | // Return the altered config
10 | return config;
11 | };
12 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "nrwl.angular-console",
4 | "angular.ng-template",
5 | "ms-vscode.vscode-typescript-tslint-plugin",
6 | "esbenp.prettier-vscode"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CoverageWorkspace
2 |
3 |
🔎 Nx is a set of Extensible Dev Tools for Monorepos.
4 |
5 | ## Further info on NX itself
6 |
7 | Visit the [Nx Documentation](https://nx.dev/angular) to learn more.
8 |
9 | ## Running the example
10 |
11 | ### Preparation
12 |
13 | Install the packages as usual with
14 | `npm install`
15 |
16 | If you haven't used nx before, you might need to run `npm install @nrwl/nx` as well.
17 |
18 | ### Running
19 |
20 | At least on Windows, there might be problems with locating `nyc`. You can solve that by either putting your `node_modules/.bin` on PATH (and of course restarting your terminal to make sure it's applied) or prefixing all execution commands with `npx`.
21 |
22 | #### NX-style
23 |
24 | NX generates a lot of commands to run the application, also with more elaborate configurations. They can be run directly in command line, being specified in `nx.json`.
25 |
26 | For running e2e-Tests of the app, run
27 | > nx run cov-app-e2e:e2e
28 |
29 | For running the Component-Tests against a Storybook-Instance, run
30 | > nx run ui-lib-e2e:e2e
31 |
32 | Both calls take care of starting their targets themselves.
33 |
34 | #### Plan B
35 |
36 | For users preferring scripts in package.json, you could also use scripts `app-e2e` for the classic e2e-Test against an application or `lib-e2e` for Component-Tests against Storybook
37 |
38 | In webpack.config mind the include - all correct paths to sources that shall be instrumented/you want coverage for in this e2e-Project, have to be declared correctly.
39 | If you want coverage for specs as well, remove corresponding entries from exclude.
40 |
41 | ## Changes needed in your NX-Setup
42 |
43 | This repo essentially followed the instructions of , but will expand on the details that took me a while to figure out, necessary to have a successful setup.
44 |
45 | ### Skylock's Setup, with hints
46 |
47 | - Install ngx-build-plus to extends the Angular CLI's build process and instrument the code. It enables adding an additional webpack-config which takes care of the instrumentation of the application when it is served.
48 |
49 | ```bash
50 | npm i -D ngx-build-plus
51 | ```
52 |
53 | - Add webpack coverage config file coverage.webpack.js to cypress folder (in this example, it's the app cov-app-e2e). In `include`, make sure all desired source-folders are listed, with correct paths relative to the webpack config.
54 |
55 | ```JavaScript
56 | module.exports = {
57 | module: {
58 | rules: [
59 | {
60 | test: /\.(js|ts)$/,
61 | loader: 'istanbul-instrumenter-loader',
62 | options: { esModules: true },
63 | enforce: 'post',
64 | include: [
65 | require('path').join(__dirname, '..', 'cov-app/src'),
66 | require('path').join(__dirname, '../..', 'libs/ui-lib/src')
67 | ],
68 | exclude: [
69 | /\.(e2e|spec)\.ts$/,
70 | /node_modules/,
71 | /(ngfactory|ngstyle)\.js/
72 | ]
73 | }
74 | ]
75 | }
76 | };
77 |
78 | ```
79 |
80 | - Update angular.json to use ngx-build with extra config, it extends the previous configuration with the instrumentation step. In NX Setup, serve is called on test startup, so with this configuration both `ng serve` and `nx run cov-app` result in instrumented code.
81 |
82 | ```JSON
83 | "serve": {
84 | "builder": "ngx-build-plus:dev-server",
85 | "options": {
86 | "browserTarget": "cypress-angular-coverage-example:build",
87 | "extraWebpackConfig": "./cypress/coverage.webpack.js"
88 | },
89 | ```
90 |
91 | - Instrument JS files with istanbul-lib-instrument for subsequent code coverage reporting
92 |
93 | ```bash
94 | npm i -D istanbul-instrumenter-loader
95 | ```
96 |
97 | - Make Istanbul understand your Typescript source files
98 |
99 | ```bash
100 | npm i -D @istanbuljs/nyc-config-typescript source-map-support ts-node
101 | ```
102 |
103 | - Make sure that Istanbul takes advantage of it by adding this configuration in your package.json or in .nycrc.json, on the same level as e.g. `scripts`
104 |
105 | ```JSON
106 | "nyc": {
107 | "extends": "@istanbuljs/nyc-config-typescript",
108 | "all": true
109 | },
110 | ```
111 |
112 | - Add cypress code coverage plugin
113 |
114 | ```bash
115 | npm install -D @cypress/code-coverage nyc istanbul-lib-coverage
116 | ```
117 |
118 | - Then add the code below to your supportFile and pluginsFile
119 |
120 | ```JavaScript
121 | // cypress/support/index.js
122 | import '@cypress/code-coverage/support'
123 | ```
124 |
125 | ```JavaScript
126 | // cypress/plugins/index.js
127 | module.exports = (on, config) => {
128 | on('task', require('@cypress/code-coverage/task'))
129 | }
130 | ```
131 |
132 | ### Summarized setup for a regular app, i.e. cov-app + cov-app-e2e
133 |
134 | - Install dependencies
135 |
136 | ```bash
137 | npm i -D ngx-build-plus
138 | npm i -D istanbul-instrumenter-loader
139 | npm i -D @istanbuljs/nyc-config-typescript source-map-support ts-node
140 | npm install -D @cypress/code-coverage nyc istanbul-lib-coverage
141 | ```
142 |
143 | - Provide additional webpack-config `coverage.webpack.js` in cov-app-e2e, make sure paths are all listed and correct
144 |
145 | ```JavaScript
146 | module.exports = {
147 | module: {
148 | rules: [
149 | {
150 | test: /\.(js|ts)$/,
151 | loader: 'istanbul-instrumenter-loader',
152 | options: { esModules: true },
153 | enforce: 'post',
154 | include: [
155 | require('path').join(__dirname, '..', 'cov-app/src'),
156 | require('path').join(__dirname, '../..', 'libs/ui-lib/src')
157 | ],
158 | exclude: [
159 | /\.(e2e|spec)\.ts$/,
160 | /node_modules/,
161 | /(ngfactory|ngstyle)\.js/
162 | ]
163 | }
164 | ]
165 | }
166 | };
167 |
168 | ```
169 |
170 | - Change `angular.json` for cov-app
171 |
172 | ```JSON
173 | "serve": {
174 | "builder": "ngx-build-plus:dev-server",
175 | "options": {
176 | "browserTarget": "cypress-angular-coverage-example:build",
177 | "extraWebpackConfig": "./cypress/coverage.webpack.js"
178 | },
179 | ```
180 |
181 | - Add global config to `package.json` (same level as e.g. scripts)
182 |
183 | ```JSON
184 | "nyc": {
185 | "extends": "@istanbuljs/nyc-config-typescript",
186 | "all": true
187 | },
188 | ```
189 |
190 | - Configure cypress-plugin in cov-app-e2e
191 |
192 | ```JavaScript
193 | // cypress/support/index.js
194 | import '@cypress/code-coverage/support'
195 | ```
196 |
197 | ```JavaScript
198 | // cypress/plugins/index.js
199 | module.exports = (on, config) => {
200 | on('task', require('@cypress/code-coverage/task'))
201 | }
202 | ```
203 |
204 | Coverage Report with Highlighting can be found after test execution in `/coverage/lcov-report/index.html`
205 |
206 | ### Configuration for e2e-Tests against Storybook
207 |
208 | - Install dependencies, build-plus is (probably) not necessary as there's already a webpack-configuration we can modify towards our needs.
209 |
210 | ```bash
211 | npm i -D istanbul-instrumenter-loader
212 | npm i -D @istanbuljs/nyc-config-typescript source-map-support ts-node
213 | npm install -D @cypress/code-coverage nyc istanbul-lib-coverage
214 | ```
215 |
216 | - Add instrumentation configuration into `webpack.config.js` in .storybook directory inside the tested library (here: ui-lib). As Storybook already makes use of Webpack, this step replaces the additional webpack-config and the alteration of the configuration in angular.json.
217 |
218 | ```JavaScript
219 | const rootWebpackConfig = require('../../../.storybook/webpack.config');
220 | // Export a function. Accept the base config as the only param.
221 | module.exports = async ({ config, mode }) => {
222 | config = await rootWebpackConfig({ config, mode });
223 | config.module.rules.push({
224 | test: /\.(js|ts)$/,
225 | loader: 'istanbul-instrumenter-loader',
226 | options: { esModules: true },
227 | enforce: 'post',
228 | include: require('path').join(__dirname, '..', 'src')
229 | });
230 | // Return the altered config
231 | return config;
232 | };
233 |
234 | ```
235 |
236 | - Add global config to `package.json` (same level as e.g. scripts)
237 |
238 | ```JSON
239 | "nyc": {
240 | "extends": "@istanbuljs/nyc-config-typescript",
241 | "all": true
242 | },
243 | ```
244 |
245 | - Configure cypress-plugin in ui-lib-e2e
246 |
247 | ```JavaScript
248 | // cypress/support/index.js
249 | import '@cypress/code-coverage/support'
250 | ```
251 |
252 | ```JavaScript
253 | // cypress/plugins/index.js
254 | module.exports = (on, config) => {
255 | on('task', require('@cypress/code-coverage/task'))
256 | }
257 | ```
258 |
259 | Coverage Report with Highlighting can be found after test execution in `/coverage/lcov-report/index.html`.
--------------------------------------------------------------------------------
/angular.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "projects": {
4 | "cov-app": {
5 | "projectType": "application",
6 | "schematics": {},
7 | "root": "apps/cov-app",
8 | "sourceRoot": "apps/cov-app/src",
9 | "prefix": "coverage-workspace",
10 | "architect": {
11 | "build": {
12 | "builder": "@angular-devkit/build-angular:browser",
13 | "options": {
14 | "outputPath": "dist/apps/cov-app",
15 | "index": "apps/cov-app/src/index.html",
16 | "main": "apps/cov-app/src/main.ts",
17 | "polyfills": "apps/cov-app/src/polyfills.ts",
18 | "tsConfig": "apps/cov-app/tsconfig.app.json",
19 | "aot": true,
20 | "assets": [
21 | "apps/cov-app/src/favicon.ico",
22 | "apps/cov-app/src/assets"
23 | ],
24 | "styles": [
25 | "apps/cov-app/src/styles.css"
26 | ],
27 | "scripts": []
28 | },
29 | "configurations": {
30 | "production": {
31 | "fileReplacements": [
32 | {
33 | "replace": "apps/cov-app/src/environments/environment.ts",
34 | "with": "apps/cov-app/src/environments/environment.prod.ts"
35 | }
36 | ],
37 | "optimization": true,
38 | "outputHashing": "all",
39 | "sourceMap": false,
40 | "extractCss": true,
41 | "namedChunks": false,
42 | "extractLicenses": true,
43 | "vendorChunk": false,
44 | "buildOptimizer": true,
45 | "budgets": [
46 | {
47 | "type": "initial",
48 | "maximumWarning": "2mb",
49 | "maximumError": "5mb"
50 | },
51 | {
52 | "type": "anyComponentStyle",
53 | "maximumWarning": "6kb",
54 | "maximumError": "10kb"
55 | }
56 | ]
57 | }
58 | }
59 | },
60 | "serve": {
61 | "builder": "ngx-build-plus:dev-server",
62 | "options": {
63 | "browserTarget": "cov-app:build",
64 | "extraWebpackConfig": "./apps/cov-app-e2e/coverage.webpack.js"
65 | },
66 | "configurations": {
67 | "production": {
68 | "browserTarget": "cov-app:build:production"
69 | }
70 | }
71 | },
72 | "extract-i18n": {
73 | "builder": "@angular-devkit/build-angular:extract-i18n",
74 | "options": {
75 | "browserTarget": "cov-app:build"
76 | }
77 | },
78 | "lint": {
79 | "builder": "@angular-devkit/build-angular:tslint",
80 | "options": {
81 | "tsConfig": [
82 | "apps/cov-app/tsconfig.app.json",
83 | "apps/cov-app/tsconfig.spec.json"
84 | ],
85 | "exclude": [
86 | "**/node_modules/**",
87 | "!apps/cov-app/**"
88 | ]
89 | }
90 | },
91 | "test": {
92 | "builder": "@nrwl/jest:jest",
93 | "options": {
94 | "jestConfig": "apps/cov-app/jest.config.js",
95 | "tsConfig": "apps/cov-app/tsconfig.spec.json",
96 | "setupFile": "apps/cov-app/src/test-setup.ts"
97 | }
98 | }
99 | }
100 | },
101 | "cov-app-e2e": {
102 | "root": "apps/cov-app-e2e",
103 | "sourceRoot": "apps/cov-app-e2e/src",
104 | "projectType": "application",
105 | "architect": {
106 | "e2e": {
107 | "builder": "@nrwl/cypress:cypress",
108 | "options": {
109 | "cypressConfig": "apps/cov-app-e2e/cypress.json",
110 | "tsConfig": "apps/cov-app-e2e/tsconfig.e2e.json",
111 | "devServerTarget": "cov-app:serve"
112 | },
113 | "configurations": {
114 | "production": {
115 | "devServerTarget": "cov-app:serve:production"
116 | }
117 | }
118 | },
119 | "lint": {
120 | "builder": "@angular-devkit/build-angular:tslint",
121 | "options": {
122 | "tsConfig": [
123 | "apps/cov-app-e2e/tsconfig.e2e.json"
124 | ],
125 | "exclude": [
126 | "**/node_modules/**",
127 | "!apps/cov-app-e2e/**"
128 | ]
129 | }
130 | }
131 | }
132 | },
133 | "ui-lib": {
134 | "projectType": "library",
135 | "root": "libs/ui-lib",
136 | "sourceRoot": "libs/ui-lib/src",
137 | "prefix": "coverage-workspace",
138 | "architect": {
139 | "lint": {
140 | "builder": "@angular-devkit/build-angular:tslint",
141 | "options": {
142 | "tsConfig": [
143 | "libs/ui-lib/tsconfig.lib.json",
144 | "libs/ui-lib/tsconfig.spec.json"
145 | ],
146 | "exclude": [
147 | "**/node_modules/**",
148 | "!libs/ui-lib/**"
149 | ]
150 | }
151 | },
152 | "test": {
153 | "builder": "@nrwl/jest:jest",
154 | "options": {
155 | "jestConfig": "libs/ui-lib/jest.config.js",
156 | "tsConfig": "libs/ui-lib/tsconfig.spec.json",
157 | "setupFile": "libs/ui-lib/src/test-setup.ts"
158 | }
159 | },
160 | "storybook": {
161 | "builder": "@nrwl/storybook:storybook",
162 | "options": {
163 | "uiFramework": "@storybook/angular",
164 | "port": 4400,
165 | "config": {
166 | "configFolder": "libs/ui-lib/.storybook"
167 | }
168 | },
169 | "configurations": {
170 | "ci": {
171 | "quiet": true
172 | }
173 | }
174 | },
175 | "build-storybook": {
176 | "builder": "@nrwl/storybook:build",
177 | "options": {
178 | "uiFramework": "@storybook/angular",
179 | "outputPath": "dist/storybook/ui-lib",
180 | "config": {
181 | "configFolder": "libs/ui-lib/.storybook"
182 | }
183 | },
184 | "configurations": {
185 | "ci": {
186 | "quiet": true
187 | }
188 | }
189 | }
190 | },
191 | "schematics": {}
192 | },
193 | "ui-lib-e2e": {
194 | "root": "apps/ui-lib-e2e",
195 | "sourceRoot": "apps/ui-lib-e2e/src",
196 | "projectType": "application",
197 | "architect": {
198 | "e2e": {
199 | "builder": "@nrwl/cypress:cypress",
200 | "options": {
201 | "cypressConfig": "apps/ui-lib-e2e/cypress.json",
202 | "tsConfig": "apps/ui-lib-e2e/tsconfig.e2e.json",
203 | "devServerTarget": "ui-lib:storybook"
204 | },
205 | "configurations": {
206 | "production": {
207 | "devServerTarget": "ui-lib:serve:production"
208 | }
209 | }
210 | },
211 | "lint": {
212 | "builder": "@angular-devkit/build-angular:tslint",
213 | "options": {
214 | "tsConfig": [
215 | "apps/ui-lib-e2e/tsconfig.e2e.json"
216 | ],
217 | "exclude": [
218 | "**/node_modules/**",
219 | "!apps/ui-lib-e2e/**"
220 | ]
221 | }
222 | }
223 | }
224 | }
225 | },
226 | "cli": {
227 | "defaultCollection": "@nrwl/angular"
228 | },
229 | "schematics": {
230 | "@nrwl/angular:application": {
231 | "unitTestRunner": "jest",
232 | "e2eTestRunner": "cypress"
233 | },
234 | "@nrwl/angular:library": {
235 | "unitTestRunner": "jest"
236 | }
237 | },
238 | "defaultProject": "cov-app"
239 | }
240 |
--------------------------------------------------------------------------------
/apps/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/.nyc_output/out.json:
--------------------------------------------------------------------------------
1 | {
2 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\polyfills.ts": {
3 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\polyfills.ts",
4 | "statementMap": {},
5 | "fnMap": {},
6 | "branchMap": {},
7 | "s": {},
8 | "f": {},
9 | "b": {},
10 | "inputSourceMap": {
11 | "version": 3,
12 | "file": "polyfills.js",
13 | "sourceRoot": "",
14 | "sources": [
15 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\polyfills.ts"
16 | ],
17 | "names": [],
18 | "mappings": "AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AAEH,+EAA+E;AAC/E,oEAAoE;AAEpE;;;;GAIG;AACH,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;GAEG;AACH,OAAO,mBAAmB,CAAC,CAAC,6BAA6B;AAEzD;;GAEG",
19 | "sourcesContent": [
20 | "/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n */\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags.ts';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n"
21 | ]
22 | },
23 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
24 | "hash": "cfd72d230e1ea95965eac0ccf970be62303736a3"
25 | },
26 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\environments\\environment.ts": {
27 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\environments\\environment.ts",
28 | "statementMap": {
29 | "0": {
30 | "start": {
31 | "line": 4,
32 | "column": 27
33 | },
34 | "end": {
35 | "line": 6,
36 | "column": 1
37 | }
38 | }
39 | },
40 | "fnMap": {},
41 | "branchMap": {},
42 | "s": {
43 | "0": 4
44 | },
45 | "f": {},
46 | "b": {},
47 | "inputSourceMap": {
48 | "version": 3,
49 | "file": "environment.js",
50 | "sourceRoot": "",
51 | "sources": [
52 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\environments\\environment.ts"
53 | ],
54 | "names": [],
55 | "mappings": "AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE",
56 | "sourcesContent": [
57 | "// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n"
58 | ]
59 | },
60 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
61 | "hash": "d6b67e2ee48f8ed517bbfa0e07438a30cc3002de"
62 | },
63 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.component.ts": {
64 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.component.ts",
65 | "statementMap": {
66 | "0": {
67 | "start": {
68 | "line": 6,
69 | "column": 8
70 | },
71 | "end": {
72 | "line": 6,
73 | "column": 31
74 | }
75 | },
76 | "1": {
77 | "start": {
78 | "line": 9,
79 | "column": 0
80 | },
81 | "end": {
82 | "line": 9,
83 | "column": 91
84 | }
85 | },
86 | "2": {
87 | "start": {
88 | "line": 9,
89 | "column": 55
90 | },
91 | "end": {
92 | "line": 9,
93 | "column": 88
94 | }
95 | },
96 | "3": {
97 | "start": {
98 | "line": 10,
99 | "column": 0
100 | },
101 | "end": {
102 | "line": 101,
103 | "column": 7855
104 | }
105 | },
106 | "4": {
107 | "start": {
108 | "line": 10,
109 | "column": 1210
110 | },
111 | "end": {
112 | "line": 98,
113 | "column": 5
114 | }
115 | },
116 | "5": {
117 | "start": {
118 | "line": 11,
119 | "column": 8
120 | },
121 | "end": {
122 | "line": 11,
123 | "column": 37
124 | }
125 | },
126 | "6": {
127 | "start": {
128 | "line": 12,
129 | "column": 8
130 | },
131 | "end": {
132 | "line": 12,
133 | "column": 42
134 | }
135 | },
136 | "7": {
137 | "start": {
138 | "line": 13,
139 | "column": 8
140 | },
141 | "end": {
142 | "line": 13,
143 | "column": 34
144 | }
145 | },
146 | "8": {
147 | "start": {
148 | "line": 14,
149 | "column": 8
150 | },
151 | "end": {
152 | "line": 14,
153 | "column": 35
154 | }
155 | },
156 | "9": {
157 | "start": {
158 | "line": 15,
159 | "column": 8
160 | },
161 | "end": {
162 | "line": 15,
163 | "column": 21
164 | }
165 | },
166 | "10": {
167 | "start": {
168 | "line": 16,
169 | "column": 8
170 | },
171 | "end": {
172 | "line": 16,
173 | "column": 26
174 | }
175 | },
176 | "11": {
177 | "start": {
178 | "line": 17,
179 | "column": 8
180 | },
181 | "end": {
182 | "line": 17,
183 | "column": 26
184 | }
185 | },
186 | "12": {
187 | "start": {
188 | "line": 18,
189 | "column": 8
190 | },
191 | "end": {
192 | "line": 18,
193 | "column": 37
194 | }
195 | },
196 | "13": {
197 | "start": {
198 | "line": 19,
199 | "column": 8
200 | },
201 | "end": {
202 | "line": 19,
203 | "column": 35
204 | }
205 | },
206 | "14": {
207 | "start": {
208 | "line": 20,
209 | "column": 8
210 | },
211 | "end": {
212 | "line": 20,
213 | "column": 42
214 | }
215 | },
216 | "15": {
217 | "start": {
218 | "line": 21,
219 | "column": 8
220 | },
221 | "end": {
222 | "line": 21,
223 | "column": 26
224 | }
225 | },
226 | "16": {
227 | "start": {
228 | "line": 22,
229 | "column": 8
230 | },
231 | "end": {
232 | "line": 22,
233 | "column": 34
234 | }
235 | },
236 | "17": {
237 | "start": {
238 | "line": 23,
239 | "column": 8
240 | },
241 | "end": {
242 | "line": 23,
243 | "column": 78
244 | }
245 | },
246 | "18": {
247 | "start": {
248 | "line": 24,
249 | "column": 8
250 | },
251 | "end": {
252 | "line": 24,
253 | "column": 26
254 | }
255 | },
256 | "19": {
257 | "start": {
258 | "line": 25,
259 | "column": 8
260 | },
261 | "end": {
262 | "line": 25,
263 | "column": 40
264 | }
265 | },
266 | "20": {
267 | "start": {
268 | "line": 26,
269 | "column": 8
270 | },
271 | "end": {
272 | "line": 26,
273 | "column": 38
274 | }
275 | },
276 | "21": {
277 | "start": {
278 | "line": 27,
279 | "column": 8
280 | },
281 | "end": {
282 | "line": 27,
283 | "column": 66
284 | }
285 | },
286 | "22": {
287 | "start": {
288 | "line": 28,
289 | "column": 8
290 | },
291 | "end": {
292 | "line": 28,
293 | "column": 40
294 | }
295 | },
296 | "23": {
297 | "start": {
298 | "line": 29,
299 | "column": 8
300 | },
301 | "end": {
302 | "line": 29,
303 | "column": 28
304 | }
305 | },
306 | "24": {
307 | "start": {
308 | "line": 30,
309 | "column": 8
310 | },
311 | "end": {
312 | "line": 30,
313 | "column": 40
314 | }
315 | },
316 | "25": {
317 | "start": {
318 | "line": 31,
319 | "column": 8
320 | },
321 | "end": {
322 | "line": 31,
323 | "column": 36
324 | }
325 | },
326 | "26": {
327 | "start": {
328 | "line": 32,
329 | "column": 8
330 | },
331 | "end": {
332 | "line": 32,
333 | "column": 36
334 | }
335 | },
336 | "27": {
337 | "start": {
338 | "line": 33,
339 | "column": 8
340 | },
341 | "end": {
342 | "line": 33,
343 | "column": 26
344 | }
345 | },
346 | "28": {
347 | "start": {
348 | "line": 34,
349 | "column": 8
350 | },
351 | "end": {
352 | "line": 34,
353 | "column": 32
354 | }
355 | },
356 | "29": {
357 | "start": {
358 | "line": 35,
359 | "column": 8
360 | },
361 | "end": {
362 | "line": 35,
363 | "column": 26
364 | }
365 | },
366 | "30": {
367 | "start": {
368 | "line": 36,
369 | "column": 8
370 | },
371 | "end": {
372 | "line": 36,
373 | "column": 26
374 | }
375 | },
376 | "31": {
377 | "start": {
378 | "line": 37,
379 | "column": 8
380 | },
381 | "end": {
382 | "line": 37,
383 | "column": 26
384 | }
385 | },
386 | "32": {
387 | "start": {
388 | "line": 38,
389 | "column": 8
390 | },
391 | "end": {
392 | "line": 38,
393 | "column": 29
394 | }
395 | },
396 | "33": {
397 | "start": {
398 | "line": 39,
399 | "column": 8
400 | },
401 | "end": {
402 | "line": 39,
403 | "column": 35
404 | }
405 | },
406 | "34": {
407 | "start": {
408 | "line": 40,
409 | "column": 8
410 | },
411 | "end": {
412 | "line": 40,
413 | "column": 72
414 | }
415 | },
416 | "35": {
417 | "start": {
418 | "line": 41,
419 | "column": 8
420 | },
421 | "end": {
422 | "line": 41,
423 | "column": 26
424 | }
425 | },
426 | "36": {
427 | "start": {
428 | "line": 42,
429 | "column": 8
430 | },
431 | "end": {
432 | "line": 42,
433 | "column": 39
434 | }
435 | },
436 | "37": {
437 | "start": {
438 | "line": 43,
439 | "column": 8
440 | },
441 | "end": {
442 | "line": 43,
443 | "column": 39
444 | }
445 | },
446 | "38": {
447 | "start": {
448 | "line": 44,
449 | "column": 8
450 | },
451 | "end": {
452 | "line": 44,
453 | "column": 39
454 | }
455 | },
456 | "39": {
457 | "start": {
458 | "line": 45,
459 | "column": 8
460 | },
461 | "end": {
462 | "line": 45,
463 | "column": 43
464 | }
465 | },
466 | "40": {
467 | "start": {
468 | "line": 46,
469 | "column": 8
470 | },
471 | "end": {
472 | "line": 46,
473 | "column": 26
474 | }
475 | },
476 | "41": {
477 | "start": {
478 | "line": 47,
479 | "column": 8
480 | },
481 | "end": {
482 | "line": 47,
483 | "column": 26
484 | }
485 | },
486 | "42": {
487 | "start": {
488 | "line": 48,
489 | "column": 8
490 | },
491 | "end": {
492 | "line": 48,
493 | "column": 39
494 | }
495 | },
496 | "43": {
497 | "start": {
498 | "line": 49,
499 | "column": 8
500 | },
501 | "end": {
502 | "line": 49,
503 | "column": 39
504 | }
505 | },
506 | "44": {
507 | "start": {
508 | "line": 50,
509 | "column": 8
510 | },
511 | "end": {
512 | "line": 50,
513 | "column": 45
514 | }
515 | },
516 | "45": {
517 | "start": {
518 | "line": 51,
519 | "column": 8
520 | },
521 | "end": {
522 | "line": 51,
523 | "column": 26
524 | }
525 | },
526 | "46": {
527 | "start": {
528 | "line": 52,
529 | "column": 8
530 | },
531 | "end": {
532 | "line": 52,
533 | "column": 26
534 | }
535 | },
536 | "47": {
537 | "start": {
538 | "line": 53,
539 | "column": 8
540 | },
541 | "end": {
542 | "line": 53,
543 | "column": 39
544 | }
545 | },
546 | "48": {
547 | "start": {
548 | "line": 54,
549 | "column": 8
550 | },
551 | "end": {
552 | "line": 54,
553 | "column": 39
554 | }
555 | },
556 | "49": {
557 | "start": {
558 | "line": 55,
559 | "column": 8
560 | },
561 | "end": {
562 | "line": 55,
563 | "column": 48
564 | }
565 | },
566 | "50": {
567 | "start": {
568 | "line": 56,
569 | "column": 8
570 | },
571 | "end": {
572 | "line": 56,
573 | "column": 26
574 | }
575 | },
576 | "51": {
577 | "start": {
578 | "line": 57,
579 | "column": 8
580 | },
581 | "end": {
582 | "line": 57,
583 | "column": 26
584 | }
585 | },
586 | "52": {
587 | "start": {
588 | "line": 58,
589 | "column": 8
590 | },
591 | "end": {
592 | "line": 58,
593 | "column": 39
594 | }
595 | },
596 | "53": {
597 | "start": {
598 | "line": 59,
599 | "column": 8
600 | },
601 | "end": {
602 | "line": 59,
603 | "column": 39
604 | }
605 | },
606 | "54": {
607 | "start": {
608 | "line": 60,
609 | "column": 8
610 | },
611 | "end": {
612 | "line": 60,
613 | "column": 36
614 | }
615 | },
616 | "55": {
617 | "start": {
618 | "line": 61,
619 | "column": 8
620 | },
621 | "end": {
622 | "line": 61,
623 | "column": 42
624 | }
625 | },
626 | "56": {
627 | "start": {
628 | "line": 62,
629 | "column": 8
630 | },
631 | "end": {
632 | "line": 62,
633 | "column": 38
634 | }
635 | },
636 | "57": {
637 | "start": {
638 | "line": 63,
639 | "column": 8
640 | },
641 | "end": {
642 | "line": 63,
643 | "column": 26
644 | }
645 | },
646 | "58": {
647 | "start": {
648 | "line": 64,
649 | "column": 8
650 | },
651 | "end": {
652 | "line": 64,
653 | "column": 26
654 | }
655 | },
656 | "59": {
657 | "start": {
658 | "line": 65,
659 | "column": 8
660 | },
661 | "end": {
662 | "line": 65,
663 | "column": 26
664 | }
665 | },
666 | "60": {
667 | "start": {
668 | "line": 66,
669 | "column": 8
670 | },
671 | "end": {
672 | "line": 66,
673 | "column": 26
674 | }
675 | },
676 | "61": {
677 | "start": {
678 | "line": 67,
679 | "column": 8
680 | },
681 | "end": {
682 | "line": 67,
683 | "column": 36
684 | }
685 | },
686 | "62": {
687 | "start": {
688 | "line": 68,
689 | "column": 8
690 | },
691 | "end": {
692 | "line": 68,
693 | "column": 36
694 | }
695 | },
696 | "63": {
697 | "start": {
698 | "line": 69,
699 | "column": 8
700 | },
701 | "end": {
702 | "line": 69,
703 | "column": 26
704 | }
705 | },
706 | "64": {
707 | "start": {
708 | "line": 70,
709 | "column": 8
710 | },
711 | "end": {
712 | "line": 70,
713 | "column": 35
714 | }
715 | },
716 | "65": {
717 | "start": {
718 | "line": 71,
719 | "column": 8
720 | },
721 | "end": {
722 | "line": 71,
723 | "column": 66
724 | }
725 | },
726 | "66": {
727 | "start": {
728 | "line": 72,
729 | "column": 8
730 | },
731 | "end": {
732 | "line": 72,
733 | "column": 26
734 | }
735 | },
736 | "67": {
737 | "start": {
738 | "line": 73,
739 | "column": 8
740 | },
741 | "end": {
742 | "line": 73,
743 | "column": 45
744 | }
745 | },
746 | "68": {
747 | "start": {
748 | "line": 74,
749 | "column": 8
750 | },
751 | "end": {
752 | "line": 74,
753 | "column": 41
754 | }
755 | },
756 | "69": {
757 | "start": {
758 | "line": 75,
759 | "column": 8
760 | },
761 | "end": {
762 | "line": 75,
763 | "column": 40
764 | }
765 | },
766 | "70": {
767 | "start": {
768 | "line": 76,
769 | "column": 8
770 | },
771 | "end": {
772 | "line": 76,
773 | "column": 26
774 | }
775 | },
776 | "71": {
777 | "start": {
778 | "line": 77,
779 | "column": 8
780 | },
781 | "end": {
782 | "line": 77,
783 | "column": 37
784 | }
785 | },
786 | "72": {
787 | "start": {
788 | "line": 78,
789 | "column": 8
790 | },
791 | "end": {
792 | "line": 78,
793 | "column": 138
794 | }
795 | },
796 | "73": {
797 | "start": {
798 | "line": 79,
799 | "column": 8
800 | },
801 | "end": {
802 | "line": 79,
803 | "column": 26
804 | }
805 | },
806 | "74": {
807 | "start": {
808 | "line": 80,
809 | "column": 8
810 | },
811 | "end": {
812 | "line": 80,
813 | "column": 26
814 | }
815 | },
816 | "75": {
817 | "start": {
818 | "line": 81,
819 | "column": 8
820 | },
821 | "end": {
822 | "line": 81,
823 | "column": 41
824 | }
825 | },
826 | "76": {
827 | "start": {
828 | "line": 82,
829 | "column": 8
830 | },
831 | "end": {
832 | "line": 82,
833 | "column": 41
834 | }
835 | },
836 | "77": {
837 | "start": {
838 | "line": 83,
839 | "column": 8
840 | },
841 | "end": {
842 | "line": 83,
843 | "column": 47
844 | }
845 | },
846 | "78": {
847 | "start": {
848 | "line": 84,
849 | "column": 8
850 | },
851 | "end": {
852 | "line": 84,
853 | "column": 26
854 | }
855 | },
856 | "79": {
857 | "start": {
858 | "line": 85,
859 | "column": 8
860 | },
861 | "end": {
862 | "line": 85,
863 | "column": 37
864 | }
865 | },
866 | "80": {
867 | "start": {
868 | "line": 86,
869 | "column": 8
870 | },
871 | "end": {
872 | "line": 86,
873 | "column": 38
874 | }
875 | },
876 | "81": {
877 | "start": {
878 | "line": 87,
879 | "column": 8
880 | },
881 | "end": {
882 | "line": 87,
883 | "column": 26
884 | }
885 | },
886 | "82": {
887 | "start": {
888 | "line": 88,
889 | "column": 8
890 | },
891 | "end": {
892 | "line": 88,
893 | "column": 26
894 | }
895 | },
896 | "83": {
897 | "start": {
898 | "line": 89,
899 | "column": 8
900 | },
901 | "end": {
902 | "line": 89,
903 | "column": 41
904 | }
905 | },
906 | "84": {
907 | "start": {
908 | "line": 90,
909 | "column": 8
910 | },
911 | "end": {
912 | "line": 90,
913 | "column": 41
914 | }
915 | },
916 | "85": {
917 | "start": {
918 | "line": 91,
919 | "column": 8
920 | },
921 | "end": {
922 | "line": 91,
923 | "column": 47
924 | }
925 | },
926 | "86": {
927 | "start": {
928 | "line": 92,
929 | "column": 8
930 | },
931 | "end": {
932 | "line": 92,
933 | "column": 26
934 | }
935 | },
936 | "87": {
937 | "start": {
938 | "line": 93,
939 | "column": 8
940 | },
941 | "end": {
942 | "line": 93,
943 | "column": 37
944 | }
945 | },
946 | "88": {
947 | "start": {
948 | "line": 94,
949 | "column": 8
950 | },
951 | "end": {
952 | "line": 94,
953 | "column": 197
954 | }
955 | },
956 | "89": {
957 | "start": {
958 | "line": 95,
959 | "column": 8
960 | },
961 | "end": {
962 | "line": 95,
963 | "column": 26
964 | }
965 | },
966 | "90": {
967 | "start": {
968 | "line": 96,
969 | "column": 8
970 | },
971 | "end": {
972 | "line": 96,
973 | "column": 26
974 | }
975 | },
976 | "91": {
977 | "start": {
978 | "line": 97,
979 | "column": 8
980 | },
981 | "end": {
982 | "line": 97,
983 | "column": 26
984 | }
985 | },
986 | "92": {
987 | "start": {
988 | "line": 98,
989 | "column": 6
990 | },
991 | "end": {
992 | "line": 101,
993 | "column": 5
994 | }
995 | },
996 | "93": {
997 | "start": {
998 | "line": 99,
999 | "column": 8
1000 | },
1001 | "end": {
1002 | "line": 99,
1003 | "column": 24
1004 | }
1005 | },
1006 | "94": {
1007 | "start": {
1008 | "line": 100,
1009 | "column": 8
1010 | },
1011 | "end": {
1012 | "line": 100,
1013 | "column": 61
1014 | }
1015 | },
1016 | "95": {
1017 | "start": {
1018 | "line": 102,
1019 | "column": 14
1020 | },
1021 | "end": {
1022 | "line": 109,
1023 | "column": 26
1024 | }
1025 | },
1026 | "96": {
1027 | "start": {
1028 | "line": 102,
1029 | "column": 29
1030 | },
1031 | "end": {
1032 | "line": 109,
1033 | "column": 20
1034 | }
1035 | }
1036 | },
1037 | "fnMap": {
1038 | "0": {
1039 | "name": "(anonymous_0)",
1040 | "decl": {
1041 | "start": {
1042 | "line": 5,
1043 | "column": 4
1044 | },
1045 | "end": {
1046 | "line": 5,
1047 | "column": 5
1048 | }
1049 | },
1050 | "loc": {
1051 | "start": {
1052 | "line": 5,
1053 | "column": 18
1054 | },
1055 | "end": {
1056 | "line": 7,
1057 | "column": 5
1058 | }
1059 | },
1060 | "line": 5
1061 | },
1062 | "1": {
1063 | "name": "AppComponent_Factory",
1064 | "decl": {
1065 | "start": {
1066 | "line": 9,
1067 | "column": 29
1068 | },
1069 | "end": {
1070 | "line": 9,
1071 | "column": 49
1072 | }
1073 | },
1074 | "loc": {
1075 | "start": {
1076 | "line": 9,
1077 | "column": 53
1078 | },
1079 | "end": {
1080 | "line": 9,
1081 | "column": 90
1082 | }
1083 | },
1084 | "line": 9
1085 | },
1086 | "2": {
1087 | "name": "AppComponent_Template",
1088 | "decl": {
1089 | "start": {
1090 | "line": 10,
1091 | "column": 1177
1092 | },
1093 | "end": {
1094 | "line": 10,
1095 | "column": 1198
1096 | }
1097 | },
1098 | "loc": {
1099 | "start": {
1100 | "line": 10,
1101 | "column": 1208
1102 | },
1103 | "end": {
1104 | "line": 101,
1105 | "column": 7
1106 | }
1107 | },
1108 | "line": 10
1109 | },
1110 | "3": {
1111 | "name": "(anonymous_3)",
1112 | "decl": {
1113 | "start": {
1114 | "line": 102,
1115 | "column": 15
1116 | },
1117 | "end": {
1118 | "line": 102,
1119 | "column": 16
1120 | }
1121 | },
1122 | "loc": {
1123 | "start": {
1124 | "line": 102,
1125 | "column": 27
1126 | },
1127 | "end": {
1128 | "line": 109,
1129 | "column": 22
1130 | }
1131 | },
1132 | "line": 102
1133 | }
1134 | },
1135 | "branchMap": {
1136 | "0": {
1137 | "loc": {
1138 | "start": {
1139 | "line": 9,
1140 | "column": 67
1141 | },
1142 | "end": {
1143 | "line": 9,
1144 | "column": 84
1145 | }
1146 | },
1147 | "type": "binary-expr",
1148 | "locations": [
1149 | {
1150 | "start": {
1151 | "line": 9,
1152 | "column": 67
1153 | },
1154 | "end": {
1155 | "line": 9,
1156 | "column": 68
1157 | }
1158 | },
1159 | {
1160 | "start": {
1161 | "line": 9,
1162 | "column": 72
1163 | },
1164 | "end": {
1165 | "line": 9,
1166 | "column": 84
1167 | }
1168 | }
1169 | ],
1170 | "line": 9
1171 | },
1172 | "1": {
1173 | "loc": {
1174 | "start": {
1175 | "line": 10,
1176 | "column": 1210
1177 | },
1178 | "end": {
1179 | "line": 98,
1180 | "column": 5
1181 | }
1182 | },
1183 | "type": "if",
1184 | "locations": [
1185 | {
1186 | "start": {
1187 | "line": 10,
1188 | "column": 1210
1189 | },
1190 | "end": {
1191 | "line": 98,
1192 | "column": 5
1193 | }
1194 | },
1195 | {
1196 | "start": {
1197 | "line": 10,
1198 | "column": 1210
1199 | },
1200 | "end": {
1201 | "line": 98,
1202 | "column": 5
1203 | }
1204 | }
1205 | ],
1206 | "line": 10
1207 | },
1208 | "2": {
1209 | "loc": {
1210 | "start": {
1211 | "line": 98,
1212 | "column": 6
1213 | },
1214 | "end": {
1215 | "line": 101,
1216 | "column": 5
1217 | }
1218 | },
1219 | "type": "if",
1220 | "locations": [
1221 | {
1222 | "start": {
1223 | "line": 98,
1224 | "column": 6
1225 | },
1226 | "end": {
1227 | "line": 101,
1228 | "column": 5
1229 | }
1230 | },
1231 | {
1232 | "start": {
1233 | "line": 98,
1234 | "column": 6
1235 | },
1236 | "end": {
1237 | "line": 101,
1238 | "column": 5
1239 | }
1240 | }
1241 | ],
1242 | "line": 98
1243 | }
1244 | },
1245 | "s": {
1246 | "0": 4,
1247 | "1": 4,
1248 | "2": 4,
1249 | "3": 4,
1250 | "4": 20,
1251 | "5": 4,
1252 | "6": 4,
1253 | "7": 4,
1254 | "8": 4,
1255 | "9": 4,
1256 | "10": 4,
1257 | "11": 4,
1258 | "12": 4,
1259 | "13": 4,
1260 | "14": 4,
1261 | "15": 4,
1262 | "16": 4,
1263 | "17": 4,
1264 | "18": 4,
1265 | "19": 4,
1266 | "20": 4,
1267 | "21": 4,
1268 | "22": 4,
1269 | "23": 4,
1270 | "24": 4,
1271 | "25": 4,
1272 | "26": 4,
1273 | "27": 4,
1274 | "28": 4,
1275 | "29": 4,
1276 | "30": 4,
1277 | "31": 4,
1278 | "32": 4,
1279 | "33": 4,
1280 | "34": 4,
1281 | "35": 4,
1282 | "36": 4,
1283 | "37": 4,
1284 | "38": 4,
1285 | "39": 4,
1286 | "40": 4,
1287 | "41": 4,
1288 | "42": 4,
1289 | "43": 4,
1290 | "44": 4,
1291 | "45": 4,
1292 | "46": 4,
1293 | "47": 4,
1294 | "48": 4,
1295 | "49": 4,
1296 | "50": 4,
1297 | "51": 4,
1298 | "52": 4,
1299 | "53": 4,
1300 | "54": 4,
1301 | "55": 4,
1302 | "56": 4,
1303 | "57": 4,
1304 | "58": 4,
1305 | "59": 4,
1306 | "60": 4,
1307 | "61": 4,
1308 | "62": 4,
1309 | "63": 4,
1310 | "64": 4,
1311 | "65": 4,
1312 | "66": 4,
1313 | "67": 4,
1314 | "68": 4,
1315 | "69": 4,
1316 | "70": 4,
1317 | "71": 4,
1318 | "72": 4,
1319 | "73": 4,
1320 | "74": 4,
1321 | "75": 4,
1322 | "76": 4,
1323 | "77": 4,
1324 | "78": 4,
1325 | "79": 4,
1326 | "80": 4,
1327 | "81": 4,
1328 | "82": 4,
1329 | "83": 4,
1330 | "84": 4,
1331 | "85": 4,
1332 | "86": 4,
1333 | "87": 4,
1334 | "88": 4,
1335 | "89": 4,
1336 | "90": 4,
1337 | "91": 4,
1338 | "92": 20,
1339 | "93": 16,
1340 | "94": 16,
1341 | "95": 4,
1342 | "96": 4
1343 | },
1344 | "f": {
1345 | "0": 4,
1346 | "1": 4,
1347 | "2": 20,
1348 | "3": 4
1349 | },
1350 | "b": {
1351 | "0": [
1352 | 4,
1353 | 4
1354 | ],
1355 | "1": [
1356 | 4,
1357 | 16
1358 | ],
1359 | "2": [
1360 | 16,
1361 | 4
1362 | ]
1363 | },
1364 | "inputSourceMap": {
1365 | "version": 3,
1366 | "file": "app.component.js",
1367 | "sourceRoot": "",
1368 | "sources": [
1369 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.component.ts",
1370 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.component.html"
1371 | ],
1372 | "names": [],
1373 | "mappings": "AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;AAO1C,MAAM,OAAO,YAAY;IALzB;QAME,UAAK,GAAG,SAAS,CAAC;KACnB;;wEAFY,YAAY;iDAAZ,YAAY;QCPzB,4BAAuB;QAEvB,iCACE;QAAA,yBAKA;QAAA,0BAAI;QAAA,YAAuB;QAAA,iBAAK;QAClC,iBAAS;QACT,4BACE;QAAA,0BAAI;QAAA,iCAAqB;QAAA,iBAAK;QAC9B,yBACE;QAAA,qEACF;QAAA,iBAAI;QACJ,+BACE;QAAA,6BAKE;QAAA,yDACA;QAAA,+BACE;QAAA,mBAOE;QAPF,+BAOE;QAAA,2BACA;QAAA,2BAGF;QAAA,iBAAM;QACN,uBACF;QAAA,iBAAM;QACR,iBAAI;QACN,iBAAM;QACN,oBACE;QADF,0BACE;QAAA,+DACF;QAAA,iBAAI;QACJ,8BACE;QAAA,8BACE;QAAA,8BAIE;QAAA,kCACF;QAAA,iBAAI;QACN,iBAAK;QACL,8BACE;QAAA,8BAIE;QAAA,oCACF;QAAA,iBAAI;QACN,iBAAK;QACL,8BACE;QAAA,8BAIE;QAAA,uCACF;QAAA,iBAAI;QACN,iBAAK;QACL,8BACE;QAAA,8BACE;QAAA,2BAKA;QAAA,iCAA0B;QAAA,6BAAY;QAAA,iBAAO;QAC/C,iBAAI;QACN,iBAAK;QACP,iBAAK;QACL,2BAAI;QAAA,2BAAU;QAAA,iBAAK;QACnB,0BAAG;QAAA,yDAAwC;QAAA,iBAAI;QAC/C,oCACE;QAAA,gCAAS;QAAA,+BAAc;QAAA,iBAAU;QACjC,4BACJ;QAAA,iIAI6C;QAAA,iBACxC;QACH,iBAAU;QACV,gCACE;QAAA,gCAAS;QAAA,sCAAqB;QAAA,iBAAU;QACxC,4BAAK;QAAA,6BAAY;QAAA,iBAAM;QACzB,iBAAU;QACV,gCACE;QAAA,gCAAS;QAAA,sCAAqB;QAAA,iBAAU;QACxC,4BACJ;QAAA,4LAQA;QAAA,iBACK;QACH,iBAAU;QACZ,iBAAO;;QApGD,eAAuB;QAAvB,oDAAuB;;kDDDhB,YAAY;cALxB,SAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,qBAAqB,CAAC;aACnC",
1374 | "sourcesContent": [
1375 | "import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'coverage-workspace-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n title = 'cov-app';\r\n}\r\n",
1376 | " \r\n\r\n\r\n \r\n Welcome to {{ title }}! \r\n \r\n\r\n Resources & Tools \r\n \r\n Thank you for using and showing some ♥ for Nx.\r\n
\r\n \r\n \r\n Here are some links to help you get started.\r\n
\r\n \r\n Next Steps \r\n Here are some things you can do with Nx.
\r\n \r\n Add UI library \r\n \r\n# Generate UI lib\r\nng g @nrwl/angular:lib ui\r\n\r\n# Add a component\r\nng g @nrwl/angular:component xyz --project ui \r\n \r\n \r\n View dependency graph \r\n nx dep-graph \r\n \r\n \r\n Run affected commands \r\n \r\n# see what's been affected by changes\r\nng affected:dep-graph\r\n\r\n# run tests for current changes\r\nng affected:test\r\n\r\n# run e2e tests for current changes\r\nng affected:e2e\r\n \r\n \r\n \r\n"
1377 | ]
1378 | },
1379 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
1380 | "hash": "97606225e327dec8bd2f2be34b2d1fee2300896c"
1381 | },
1382 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.module.ts": {
1383 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.module.ts",
1384 | "statementMap": {
1385 | "0": {
1386 | "start": {
1387 | "line": 8,
1388 | "column": 0
1389 | },
1390 | "end": {
1391 | "line": 8,
1392 | "column": 85
1393 | }
1394 | },
1395 | "1": {
1396 | "start": {
1397 | "line": 9,
1398 | "column": 0
1399 | },
1400 | "end": {
1401 | "line": 9,
1402 | "column": 172
1403 | }
1404 | },
1405 | "2": {
1406 | "start": {
1407 | "line": 9,
1408 | "column": 80
1409 | },
1410 | "end": {
1411 | "line": 9,
1412 | "column": 110
1413 | }
1414 | },
1415 | "3": {
1416 | "start": {
1417 | "line": 10,
1418 | "column": 0
1419 | },
1420 | "end": {
1421 | "line": 10,
1422 | "column": 178
1423 | }
1424 | },
1425 | "4": {
1426 | "start": {
1427 | "line": 10,
1428 | "column": 15
1429 | },
1430 | "end": {
1431 | "line": 10,
1432 | "column": 172
1433 | }
1434 | },
1435 | "5": {
1436 | "start": {
1437 | "line": 11,
1438 | "column": 14
1439 | },
1440 | "end": {
1441 | "line": 19,
1442 | "column": 26
1443 | }
1444 | },
1445 | "6": {
1446 | "start": {
1447 | "line": 11,
1448 | "column": 29
1449 | },
1450 | "end": {
1451 | "line": 19,
1452 | "column": 20
1453 | }
1454 | }
1455 | },
1456 | "fnMap": {
1457 | "0": {
1458 | "name": "AppModule_Factory",
1459 | "decl": {
1460 | "start": {
1461 | "line": 9,
1462 | "column": 57
1463 | },
1464 | "end": {
1465 | "line": 9,
1466 | "column": 74
1467 | }
1468 | },
1469 | "loc": {
1470 | "start": {
1471 | "line": 9,
1472 | "column": 78
1473 | },
1474 | "end": {
1475 | "line": 9,
1476 | "column": 112
1477 | }
1478 | },
1479 | "line": 9
1480 | },
1481 | "1": {
1482 | "name": "(anonymous_1)",
1483 | "decl": {
1484 | "start": {
1485 | "line": 10,
1486 | "column": 1
1487 | },
1488 | "end": {
1489 | "line": 10,
1490 | "column": 2
1491 | }
1492 | },
1493 | "loc": {
1494 | "start": {
1495 | "line": 10,
1496 | "column": 13
1497 | },
1498 | "end": {
1499 | "line": 10,
1500 | "column": 174
1501 | }
1502 | },
1503 | "line": 10
1504 | },
1505 | "2": {
1506 | "name": "(anonymous_2)",
1507 | "decl": {
1508 | "start": {
1509 | "line": 11,
1510 | "column": 15
1511 | },
1512 | "end": {
1513 | "line": 11,
1514 | "column": 16
1515 | }
1516 | },
1517 | "loc": {
1518 | "start": {
1519 | "line": 11,
1520 | "column": 27
1521 | },
1522 | "end": {
1523 | "line": 19,
1524 | "column": 22
1525 | }
1526 | },
1527 | "line": 11
1528 | }
1529 | },
1530 | "branchMap": {
1531 | "0": {
1532 | "loc": {
1533 | "start": {
1534 | "line": 9,
1535 | "column": 92
1536 | },
1537 | "end": {
1538 | "line": 9,
1539 | "column": 106
1540 | }
1541 | },
1542 | "type": "binary-expr",
1543 | "locations": [
1544 | {
1545 | "start": {
1546 | "line": 9,
1547 | "column": 92
1548 | },
1549 | "end": {
1550 | "line": 9,
1551 | "column": 93
1552 | }
1553 | },
1554 | {
1555 | "start": {
1556 | "line": 9,
1557 | "column": 97
1558 | },
1559 | "end": {
1560 | "line": 9,
1561 | "column": 106
1562 | }
1563 | }
1564 | ],
1565 | "line": 9
1566 | },
1567 | "1": {
1568 | "loc": {
1569 | "start": {
1570 | "line": 10,
1571 | "column": 15
1572 | },
1573 | "end": {
1574 | "line": 10,
1575 | "column": 171
1576 | }
1577 | },
1578 | "type": "binary-expr",
1579 | "locations": [
1580 | {
1581 | "start": {
1582 | "line": 10,
1583 | "column": 16
1584 | },
1585 | "end": {
1586 | "line": 10,
1587 | "column": 48
1588 | }
1589 | },
1590 | {
1591 | "start": {
1592 | "line": 10,
1593 | "column": 52
1594 | },
1595 | "end": {
1596 | "line": 10,
1597 | "column": 61
1598 | }
1599 | },
1600 | {
1601 | "start": {
1602 | "line": 10,
1603 | "column": 66
1604 | },
1605 | "end": {
1606 | "line": 10,
1607 | "column": 171
1608 | }
1609 | }
1610 | ],
1611 | "line": 10
1612 | }
1613 | },
1614 | "s": {
1615 | "0": 4,
1616 | "1": 4,
1617 | "2": 4,
1618 | "3": 4,
1619 | "4": 4,
1620 | "5": 4,
1621 | "6": 4
1622 | },
1623 | "f": {
1624 | "0": 4,
1625 | "1": 4,
1626 | "2": 4
1627 | },
1628 | "b": {
1629 | "0": [
1630 | 4,
1631 | 4
1632 | ],
1633 | "1": [
1634 | 4,
1635 | 0,
1636 | 4
1637 | ]
1638 | },
1639 | "inputSourceMap": {
1640 | "version": 3,
1641 | "file": "app.module.js",
1642 | "sourceRoot": "",
1643 | "sources": [
1644 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\app\\app.module.ts"
1645 | ],
1646 | "names": [],
1647 | "mappings": "AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;;AAQxD,MAAM,OAAO,SAAS;;6CAAT,SAAS,cAFR,YAAY;iGAEb,SAAS,mBAHT,EAAE,YADJ,CAAC,aAAa,EAAE,WAAW,CAAC;wFAI1B,SAAS,mBALL,YAAY,aACjB,aAAa,EAAE,WAAW;kDAIzB,SAAS;cANrB,QAAQ;eAAC;gBACR,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;gBACrC,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,CAAC,YAAY,CAAC;aAC1B",
1648 | "sourcesContent": [
1649 | "import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { UiLibModule } from '@coverage-workspace/ui-lib'\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [BrowserModule, UiLibModule],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n"
1650 | ]
1651 | },
1652 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
1653 | "hash": "89eca7a41a69091b88df57d8ddc14cc54fe0ea51"
1654 | },
1655 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\main.ts": {
1656 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\main.ts",
1657 | "statementMap": {
1658 | "0": {
1659 | "start": {
1660 | "line": 5,
1661 | "column": 0
1662 | },
1663 | "end": {
1664 | "line": 7,
1665 | "column": 1
1666 | }
1667 | },
1668 | "1": {
1669 | "start": {
1670 | "line": 6,
1671 | "column": 4
1672 | },
1673 | "end": {
1674 | "line": 6,
1675 | "column": 21
1676 | }
1677 | },
1678 | "2": {
1679 | "start": {
1680 | "line": 8,
1681 | "column": 0
1682 | },
1683 | "end": {
1684 | "line": 9,
1685 | "column": 38
1686 | }
1687 | },
1688 | "3": {
1689 | "start": {
1690 | "line": 9,
1691 | "column": 18
1692 | },
1693 | "end": {
1694 | "line": 9,
1695 | "column": 36
1696 | }
1697 | }
1698 | },
1699 | "fnMap": {
1700 | "0": {
1701 | "name": "(anonymous_0)",
1702 | "decl": {
1703 | "start": {
1704 | "line": 9,
1705 | "column": 11
1706 | },
1707 | "end": {
1708 | "line": 9,
1709 | "column": 12
1710 | }
1711 | },
1712 | "loc": {
1713 | "start": {
1714 | "line": 9,
1715 | "column": 18
1716 | },
1717 | "end": {
1718 | "line": 9,
1719 | "column": 36
1720 | }
1721 | },
1722 | "line": 9
1723 | }
1724 | },
1725 | "branchMap": {
1726 | "0": {
1727 | "loc": {
1728 | "start": {
1729 | "line": 5,
1730 | "column": 0
1731 | },
1732 | "end": {
1733 | "line": 7,
1734 | "column": 1
1735 | }
1736 | },
1737 | "type": "if",
1738 | "locations": [
1739 | {
1740 | "start": {
1741 | "line": 5,
1742 | "column": 0
1743 | },
1744 | "end": {
1745 | "line": 7,
1746 | "column": 1
1747 | }
1748 | },
1749 | {
1750 | "start": {
1751 | "line": 5,
1752 | "column": 0
1753 | },
1754 | "end": {
1755 | "line": 7,
1756 | "column": 1
1757 | }
1758 | }
1759 | ],
1760 | "line": 5
1761 | }
1762 | },
1763 | "s": {
1764 | "0": 4,
1765 | "1": 0,
1766 | "2": 4,
1767 | "3": 0
1768 | },
1769 | "f": {
1770 | "0": 0
1771 | },
1772 | "b": {
1773 | "0": [
1774 | 0,
1775 | 4
1776 | ]
1777 | },
1778 | "inputSourceMap": {
1779 | "version": 3,
1780 | "file": "main.js",
1781 | "sourceRoot": "",
1782 | "sources": [
1783 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\apps\\cov-app\\src\\main.ts"
1784 | ],
1785 | "names": [],
1786 | "mappings": "AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;;;AAEzD,IAAI,WAAW,CAAC,UAAU,EAAE;IAC1B,cAAc,EAAE,CAAC;CAClB;AAED,qCAAwB,gBACN,+BAAW;KAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC",
1787 | "sourcesContent": [
1788 | "import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"
1789 | ]
1790 | },
1791 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
1792 | "hash": "d3fd73ed7a58f04db5c1f427f8d259cd45e9f89f"
1793 | },
1794 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts": {
1795 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
1796 | "statementMap": {
1797 | "0": {
1798 | "start": {
1799 | "line": 4,
1800 | "column": 47
1801 | },
1802 | "end": {
1803 | "line": 10,
1804 | "column": 1
1805 | }
1806 | },
1807 | "1": {
1808 | "start": {
1809 | "line": 5,
1810 | "column": 16
1811 | },
1812 | "end": {
1813 | "line": 5,
1814 | "column": 37
1815 | }
1816 | },
1817 | "2": {
1818 | "start": {
1819 | "line": 6,
1820 | "column": 4
1821 | },
1822 | "end": {
1823 | "line": 6,
1824 | "column": 33
1825 | }
1826 | },
1827 | "3": {
1828 | "start": {
1829 | "line": 7,
1830 | "column": 4
1831 | },
1832 | "end": {
1833 | "line": 7,
1834 | "column": 190
1835 | }
1836 | },
1837 | "4": {
1838 | "start": {
1839 | "line": 7,
1840 | "column": 92
1841 | },
1842 | "end": {
1843 | "line": 7,
1844 | "column": 114
1845 | }
1846 | },
1847 | "5": {
1848 | "start": {
1849 | "line": 7,
1850 | "column": 130
1851 | },
1852 | "end": {
1853 | "line": 7,
1854 | "column": 148
1855 | }
1856 | },
1857 | "6": {
1858 | "start": {
1859 | "line": 7,
1860 | "column": 150
1861 | },
1862 | "end": {
1863 | "line": 7,
1864 | "column": 186
1865 | }
1866 | },
1867 | "7": {
1868 | "start": {
1869 | "line": 8,
1870 | "column": 4
1871 | },
1872 | "end": {
1873 | "line": 8,
1874 | "column": 31
1875 | }
1876 | },
1877 | "8": {
1878 | "start": {
1879 | "line": 9,
1880 | "column": 4
1881 | },
1882 | "end": {
1883 | "line": 9,
1884 | "column": 22
1885 | }
1886 | },
1887 | "9": {
1888 | "start": {
1889 | "line": 13,
1890 | "column": 8
1891 | },
1892 | "end": {
1893 | "line": 13,
1894 | "column": 44
1895 | }
1896 | },
1897 | "10": {
1898 | "start": {
1899 | "line": 14,
1900 | "column": 8
1901 | },
1902 | "end": {
1903 | "line": 14,
1904 | "column": 48
1905 | }
1906 | },
1907 | "11": {
1908 | "start": {
1909 | "line": 18,
1910 | "column": 8
1911 | },
1912 | "end": {
1913 | "line": 18,
1914 | "column": 32
1915 | }
1916 | },
1917 | "12": {
1918 | "start": {
1919 | "line": 21,
1920 | "column": 8
1921 | },
1922 | "end": {
1923 | "line": 21,
1924 | "column": 36
1925 | }
1926 | },
1927 | "13": {
1928 | "start": {
1929 | "line": 24,
1930 | "column": 0
1931 | },
1932 | "end": {
1933 | "line": 24,
1934 | "column": 94
1935 | }
1936 | },
1937 | "14": {
1938 | "start": {
1939 | "line": 24,
1940 | "column": 57
1941 | },
1942 | "end": {
1943 | "line": 24,
1944 | "column": 91
1945 | }
1946 | },
1947 | "15": {
1948 | "start": {
1949 | "line": 25,
1950 | "column": 0
1951 | },
1952 | "end": {
1953 | "line": 48,
1954 | "column": 243
1955 | }
1956 | },
1957 | "16": {
1958 | "start": {
1959 | "line": 25,
1960 | "column": 579
1961 | },
1962 | "end": {
1963 | "line": 40,
1964 | "column": 5
1965 | }
1966 | },
1967 | "17": {
1968 | "start": {
1969 | "line": 26,
1970 | "column": 8
1971 | },
1972 | "end": {
1973 | "line": 26,
1974 | "column": 36
1975 | }
1976 | },
1977 | "18": {
1978 | "start": {
1979 | "line": 27,
1980 | "column": 8
1981 | },
1982 | "end": {
1983 | "line": 27,
1984 | "column": 41
1985 | }
1986 | },
1987 | "19": {
1988 | "start": {
1989 | "line": 28,
1990 | "column": 8
1991 | },
1992 | "end": {
1993 | "line": 28,
1994 | "column": 36
1995 | }
1996 | },
1997 | "20": {
1998 | "start": {
1999 | "line": 29,
2000 | "column": 8
2001 | },
2002 | "end": {
2003 | "line": 29,
2004 | "column": 40
2005 | }
2006 | },
2007 | "21": {
2008 | "start": {
2009 | "line": 30,
2010 | "column": 8
2011 | },
2012 | "end": {
2013 | "line": 30,
2014 | "column": 133
2015 | }
2016 | },
2017 | "22": {
2018 | "start": {
2019 | "line": 30,
2020 | "column": 95
2021 | },
2022 | "end": {
2023 | "line": 30,
2024 | "column": 129
2025 | }
2026 | },
2027 | "23": {
2028 | "start": {
2029 | "line": 31,
2030 | "column": 8
2031 | },
2032 | "end": {
2033 | "line": 31,
2034 | "column": 26
2035 | }
2036 | },
2037 | "24": {
2038 | "start": {
2039 | "line": 32,
2040 | "column": 8
2041 | },
2042 | "end": {
2043 | "line": 32,
2044 | "column": 26
2045 | }
2046 | },
2047 | "25": {
2048 | "start": {
2049 | "line": 33,
2050 | "column": 8
2051 | },
2052 | "end": {
2053 | "line": 33,
2054 | "column": 39
2055 | }
2056 | },
2057 | "26": {
2058 | "start": {
2059 | "line": 34,
2060 | "column": 8
2061 | },
2062 | "end": {
2063 | "line": 34,
2064 | "column": 36
2065 | }
2066 | },
2067 | "27": {
2068 | "start": {
2069 | "line": 35,
2070 | "column": 8
2071 | },
2072 | "end": {
2073 | "line": 35,
2074 | "column": 26
2075 | }
2076 | },
2077 | "28": {
2078 | "start": {
2079 | "line": 36,
2080 | "column": 8
2081 | },
2082 | "end": {
2083 | "line": 36,
2084 | "column": 39
2085 | }
2086 | },
2087 | "29": {
2088 | "start": {
2089 | "line": 37,
2090 | "column": 8
2091 | },
2092 | "end": {
2093 | "line": 37,
2094 | "column": 67
2095 | }
2096 | },
2097 | "30": {
2098 | "start": {
2099 | "line": 38,
2100 | "column": 8
2101 | },
2102 | "end": {
2103 | "line": 38,
2104 | "column": 26
2105 | }
2106 | },
2107 | "31": {
2108 | "start": {
2109 | "line": 39,
2110 | "column": 8
2111 | },
2112 | "end": {
2113 | "line": 39,
2114 | "column": 26
2115 | }
2116 | },
2117 | "32": {
2118 | "start": {
2119 | "line": 40,
2120 | "column": 6
2121 | },
2122 | "end": {
2123 | "line": 48,
2124 | "column": 5
2125 | }
2126 | },
2127 | "33": {
2128 | "start": {
2129 | "line": 41,
2130 | "column": 8
2131 | },
2132 | "end": {
2133 | "line": 41,
2134 | "column": 94
2135 | }
2136 | },
2137 | "34": {
2138 | "start": {
2139 | "line": 42,
2140 | "column": 8
2141 | },
2142 | "end": {
2143 | "line": 42,
2144 | "column": 24
2145 | }
2146 | },
2147 | "35": {
2148 | "start": {
2149 | "line": 43,
2150 | "column": 8
2151 | },
2152 | "end": {
2153 | "line": 43,
2154 | "column": 104
2155 | }
2156 | },
2157 | "36": {
2158 | "start": {
2159 | "line": 44,
2160 | "column": 8
2161 | },
2162 | "end": {
2163 | "line": 44,
2164 | "column": 24
2165 | }
2166 | },
2167 | "37": {
2168 | "start": {
2169 | "line": 45,
2170 | "column": 8
2171 | },
2172 | "end": {
2173 | "line": 45,
2174 | "column": 73
2175 | }
2176 | },
2177 | "38": {
2178 | "start": {
2179 | "line": 46,
2180 | "column": 8
2181 | },
2182 | "end": {
2183 | "line": 46,
2184 | "column": 24
2185 | }
2186 | },
2187 | "39": {
2188 | "start": {
2189 | "line": 47,
2190 | "column": 8
2191 | },
2192 | "end": {
2193 | "line": 47,
2194 | "column": 94
2195 | }
2196 | },
2197 | "40": {
2198 | "start": {
2199 | "line": 49,
2200 | "column": 14
2201 | },
2202 | "end": {
2203 | "line": 62,
2204 | "column": 20
2205 | }
2206 | },
2207 | "41": {
2208 | "start": {
2209 | "line": 49,
2210 | "column": 29
2211 | },
2212 | "end": {
2213 | "line": 62,
2214 | "column": 14
2215 | }
2216 | },
2217 | "42": {
2218 | "start": {
2219 | "line": 56,
2220 | "column": 22
2221 | },
2222 | "end": {
2223 | "line": 56,
2224 | "column": 32
2225 | }
2226 | }
2227 | },
2228 | "fnMap": {
2229 | "0": {
2230 | "name": "TaskComponent_a_7_Template",
2231 | "decl": {
2232 | "start": {
2233 | "line": 4,
2234 | "column": 9
2235 | },
2236 | "end": {
2237 | "line": 4,
2238 | "column": 35
2239 | }
2240 | },
2241 | "loc": {
2242 | "start": {
2243 | "line": 4,
2244 | "column": 45
2245 | },
2246 | "end": {
2247 | "line": 10,
2248 | "column": 3
2249 | }
2250 | },
2251 | "line": 4
2252 | },
2253 | "1": {
2254 | "name": "TaskComponent_a_7_Template_a_click_0_listener",
2255 | "decl": {
2256 | "start": {
2257 | "line": 7,
2258 | "column": 36
2259 | },
2260 | "end": {
2261 | "line": 7,
2262 | "column": 81
2263 | }
2264 | },
2265 | "loc": {
2266 | "start": {
2267 | "line": 7,
2268 | "column": 90
2269 | },
2270 | "end": {
2271 | "line": 7,
2272 | "column": 188
2273 | }
2274 | },
2275 | "line": 7
2276 | },
2277 | "2": {
2278 | "name": "(anonymous_2)",
2279 | "decl": {
2280 | "start": {
2281 | "line": 12,
2282 | "column": 4
2283 | },
2284 | "end": {
2285 | "line": 12,
2286 | "column": 5
2287 | }
2288 | },
2289 | "loc": {
2290 | "start": {
2291 | "line": 12,
2292 | "column": 18
2293 | },
2294 | "end": {
2295 | "line": 15,
2296 | "column": 5
2297 | }
2298 | },
2299 | "line": 12
2300 | },
2301 | "3": {
2302 | "name": "(anonymous_3)",
2303 | "decl": {
2304 | "start": {
2305 | "line": 16,
2306 | "column": 4
2307 | },
2308 | "end": {
2309 | "line": 16,
2310 | "column": 5
2311 | }
2312 | },
2313 | "loc": {
2314 | "start": {
2315 | "line": 16,
2316 | "column": 15
2317 | },
2318 | "end": {
2319 | "line": 16,
2320 | "column": 18
2321 | }
2322 | },
2323 | "line": 16
2324 | },
2325 | "4": {
2326 | "name": "(anonymous_4)",
2327 | "decl": {
2328 | "start": {
2329 | "line": 17,
2330 | "column": 4
2331 | },
2332 | "end": {
2333 | "line": 17,
2334 | "column": 5
2335 | }
2336 | },
2337 | "loc": {
2338 | "start": {
2339 | "line": 17,
2340 | "column": 14
2341 | },
2342 | "end": {
2343 | "line": 19,
2344 | "column": 5
2345 | }
2346 | },
2347 | "line": 17
2348 | },
2349 | "5": {
2350 | "name": "(anonymous_5)",
2351 | "decl": {
2352 | "start": {
2353 | "line": 20,
2354 | "column": 4
2355 | },
2356 | "end": {
2357 | "line": 20,
2358 | "column": 5
2359 | }
2360 | },
2361 | "loc": {
2362 | "start": {
2363 | "line": 20,
2364 | "column": 18
2365 | },
2366 | "end": {
2367 | "line": 22,
2368 | "column": 5
2369 | }
2370 | },
2371 | "line": 20
2372 | },
2373 | "6": {
2374 | "name": "TaskComponent_Factory",
2375 | "decl": {
2376 | "start": {
2377 | "line": 24,
2378 | "column": 30
2379 | },
2380 | "end": {
2381 | "line": 24,
2382 | "column": 51
2383 | }
2384 | },
2385 | "loc": {
2386 | "start": {
2387 | "line": 24,
2388 | "column": 55
2389 | },
2390 | "end": {
2391 | "line": 24,
2392 | "column": 93
2393 | }
2394 | },
2395 | "line": 24
2396 | },
2397 | "7": {
2398 | "name": "TaskComponent_Template",
2399 | "decl": {
2400 | "start": {
2401 | "line": 25,
2402 | "column": 545
2403 | },
2404 | "end": {
2405 | "line": 25,
2406 | "column": 567
2407 | }
2408 | },
2409 | "loc": {
2410 | "start": {
2411 | "line": 25,
2412 | "column": 577
2413 | },
2414 | "end": {
2415 | "line": 48,
2416 | "column": 7
2417 | }
2418 | },
2419 | "line": 25
2420 | },
2421 | "8": {
2422 | "name": "TaskComponent_Template_span_click_3_listener",
2423 | "decl": {
2424 | "start": {
2425 | "line": 30,
2426 | "column": 40
2427 | },
2428 | "end": {
2429 | "line": 30,
2430 | "column": 84
2431 | }
2432 | },
2433 | "loc": {
2434 | "start": {
2435 | "line": 30,
2436 | "column": 93
2437 | },
2438 | "end": {
2439 | "line": 30,
2440 | "column": 131
2441 | }
2442 | },
2443 | "line": 30
2444 | },
2445 | "9": {
2446 | "name": "(anonymous_9)",
2447 | "decl": {
2448 | "start": {
2449 | "line": 49,
2450 | "column": 15
2451 | },
2452 | "end": {
2453 | "line": 49,
2454 | "column": 16
2455 | }
2456 | },
2457 | "loc": {
2458 | "start": {
2459 | "line": 49,
2460 | "column": 27
2461 | },
2462 | "end": {
2463 | "line": 62,
2464 | "column": 16
2465 | }
2466 | },
2467 | "line": 49
2468 | },
2469 | "10": {
2470 | "name": "(anonymous_10)",
2471 | "decl": {
2472 | "start": {
2473 | "line": 56,
2474 | "column": 8
2475 | },
2476 | "end": {
2477 | "line": 56,
2478 | "column": 9
2479 | }
2480 | },
2481 | "loc": {
2482 | "start": {
2483 | "line": 56,
2484 | "column": 20
2485 | },
2486 | "end": {
2487 | "line": 56,
2488 | "column": 34
2489 | }
2490 | },
2491 | "line": 56
2492 | }
2493 | },
2494 | "branchMap": {
2495 | "0": {
2496 | "loc": {
2497 | "start": {
2498 | "line": 4,
2499 | "column": 47
2500 | },
2501 | "end": {
2502 | "line": 10,
2503 | "column": 1
2504 | }
2505 | },
2506 | "type": "if",
2507 | "locations": [
2508 | {
2509 | "start": {
2510 | "line": 4,
2511 | "column": 47
2512 | },
2513 | "end": {
2514 | "line": 10,
2515 | "column": 1
2516 | }
2517 | },
2518 | {
2519 | "start": {
2520 | "line": 4,
2521 | "column": 47
2522 | },
2523 | "end": {
2524 | "line": 10,
2525 | "column": 1
2526 | }
2527 | }
2528 | ],
2529 | "line": 4
2530 | },
2531 | "1": {
2532 | "loc": {
2533 | "start": {
2534 | "line": 24,
2535 | "column": 69
2536 | },
2537 | "end": {
2538 | "line": 24,
2539 | "column": 87
2540 | }
2541 | },
2542 | "type": "binary-expr",
2543 | "locations": [
2544 | {
2545 | "start": {
2546 | "line": 24,
2547 | "column": 69
2548 | },
2549 | "end": {
2550 | "line": 24,
2551 | "column": 70
2552 | }
2553 | },
2554 | {
2555 | "start": {
2556 | "line": 24,
2557 | "column": 74
2558 | },
2559 | "end": {
2560 | "line": 24,
2561 | "column": 87
2562 | }
2563 | }
2564 | ],
2565 | "line": 24
2566 | },
2567 | "2": {
2568 | "loc": {
2569 | "start": {
2570 | "line": 25,
2571 | "column": 579
2572 | },
2573 | "end": {
2574 | "line": 40,
2575 | "column": 5
2576 | }
2577 | },
2578 | "type": "if",
2579 | "locations": [
2580 | {
2581 | "start": {
2582 | "line": 25,
2583 | "column": 579
2584 | },
2585 | "end": {
2586 | "line": 40,
2587 | "column": 5
2588 | }
2589 | },
2590 | {
2591 | "start": {
2592 | "line": 25,
2593 | "column": 579
2594 | },
2595 | "end": {
2596 | "line": 40,
2597 | "column": 5
2598 | }
2599 | }
2600 | ],
2601 | "line": 25
2602 | },
2603 | "3": {
2604 | "loc": {
2605 | "start": {
2606 | "line": 40,
2607 | "column": 6
2608 | },
2609 | "end": {
2610 | "line": 48,
2611 | "column": 5
2612 | }
2613 | },
2614 | "type": "if",
2615 | "locations": [
2616 | {
2617 | "start": {
2618 | "line": 40,
2619 | "column": 6
2620 | },
2621 | "end": {
2622 | "line": 48,
2623 | "column": 5
2624 | }
2625 | },
2626 | {
2627 | "start": {
2628 | "line": 40,
2629 | "column": 6
2630 | },
2631 | "end": {
2632 | "line": 48,
2633 | "column": 5
2634 | }
2635 | }
2636 | ],
2637 | "line": 40
2638 | },
2639 | "4": {
2640 | "loc": {
2641 | "start": {
2642 | "line": 41,
2643 | "column": 48
2644 | },
2645 | "end": {
2646 | "line": 41,
2647 | "column": 88
2648 | }
2649 | },
2650 | "type": "cond-expr",
2651 | "locations": [
2652 | {
2653 | "start": {
2654 | "line": 41,
2655 | "column": 67
2656 | },
2657 | "end": {
2658 | "line": 41,
2659 | "column": 71
2660 | }
2661 | },
2662 | {
2663 | "start": {
2664 | "line": 41,
2665 | "column": 74
2666 | },
2667 | "end": {
2668 | "line": 41,
2669 | "column": 88
2670 | }
2671 | }
2672 | ],
2673 | "line": 41
2674 | },
2675 | "5": {
2676 | "loc": {
2677 | "start": {
2678 | "line": 43,
2679 | "column": 41
2680 | },
2681 | "end": {
2682 | "line": 43,
2683 | "column": 81
2684 | }
2685 | },
2686 | "type": "cond-expr",
2687 | "locations": [
2688 | {
2689 | "start": {
2690 | "line": 43,
2691 | "column": 60
2692 | },
2693 | "end": {
2694 | "line": 43,
2695 | "column": 64
2696 | }
2697 | },
2698 | {
2699 | "start": {
2700 | "line": 43,
2701 | "column": 67
2702 | },
2703 | "end": {
2704 | "line": 43,
2705 | "column": 81
2706 | }
2707 | }
2708 | ],
2709 | "line": 43
2710 | },
2711 | "6": {
2712 | "loc": {
2713 | "start": {
2714 | "line": 45,
2715 | "column": 31
2716 | },
2717 | "end": {
2718 | "line": 45,
2719 | "column": 71
2720 | }
2721 | },
2722 | "type": "cond-expr",
2723 | "locations": [
2724 | {
2725 | "start": {
2726 | "line": 45,
2727 | "column": 50
2728 | },
2729 | "end": {
2730 | "line": 45,
2731 | "column": 54
2732 | }
2733 | },
2734 | {
2735 | "start": {
2736 | "line": 45,
2737 | "column": 57
2738 | },
2739 | "end": {
2740 | "line": 45,
2741 | "column": 71
2742 | }
2743 | }
2744 | ],
2745 | "line": 45
2746 | },
2747 | "7": {
2748 | "loc": {
2749 | "start": {
2750 | "line": 47,
2751 | "column": 31
2752 | },
2753 | "end": {
2754 | "line": 47,
2755 | "column": 71
2756 | }
2757 | },
2758 | "type": "cond-expr",
2759 | "locations": [
2760 | {
2761 | "start": {
2762 | "line": 47,
2763 | "column": 50
2764 | },
2765 | "end": {
2766 | "line": 47,
2767 | "column": 54
2768 | }
2769 | },
2770 | {
2771 | "start": {
2772 | "line": 47,
2773 | "column": 57
2774 | },
2775 | "end": {
2776 | "line": 47,
2777 | "column": 71
2778 | }
2779 | }
2780 | ],
2781 | "line": 47
2782 | }
2783 | },
2784 | "s": {
2785 | "0": 10,
2786 | "1": 2,
2787 | "2": 2,
2788 | "3": 2,
2789 | "4": 0,
2790 | "5": 0,
2791 | "6": 0,
2792 | "7": 2,
2793 | "8": 2,
2794 | "9": 2,
2795 | "10": 2,
2796 | "11": 0,
2797 | "12": 0,
2798 | "13": 2,
2799 | "14": 2,
2800 | "15": 2,
2801 | "16": 10,
2802 | "17": 2,
2803 | "18": 2,
2804 | "19": 2,
2805 | "20": 2,
2806 | "21": 2,
2807 | "22": 0,
2808 | "23": 2,
2809 | "24": 2,
2810 | "25": 2,
2811 | "26": 2,
2812 | "27": 2,
2813 | "28": 2,
2814 | "29": 2,
2815 | "30": 2,
2816 | "31": 2,
2817 | "32": 10,
2818 | "33": 8,
2819 | "34": 8,
2820 | "35": 8,
2821 | "36": 8,
2822 | "37": 8,
2823 | "38": 8,
2824 | "39": 8,
2825 | "40": 2,
2826 | "41": 2,
2827 | "42": 0
2828 | },
2829 | "f": {
2830 | "0": 10,
2831 | "1": 0,
2832 | "2": 2,
2833 | "3": 2,
2834 | "4": 0,
2835 | "5": 0,
2836 | "6": 2,
2837 | "7": 10,
2838 | "8": 0,
2839 | "9": 2,
2840 | "10": 0
2841 | },
2842 | "b": {
2843 | "0": [
2844 | 2,
2845 | 8
2846 | ],
2847 | "1": [
2848 | 2,
2849 | 2
2850 | ],
2851 | "2": [
2852 | 2,
2853 | 8
2854 | ],
2855 | "3": [
2856 | 8,
2857 | 2
2858 | ],
2859 | "4": [
2860 | 8,
2861 | 0
2862 | ],
2863 | "5": [
2864 | 8,
2865 | 0
2866 | ],
2867 | "6": [
2868 | 8,
2869 | 0
2870 | ],
2871 | "7": [
2872 | 8,
2873 | 0
2874 | ]
2875 | },
2876 | "inputSourceMap": {
2877 | "version": 3,
2878 | "file": "task.component.js",
2879 | "sourceRoot": "",
2880 | "sources": [
2881 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
2882 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.html"
2883 | ],
2884 | "names": [],
2885 | "mappings": "AAAA,OAAO,EAAC,SAAS,EAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;;;ICexE,4BACE;IADyC,yLAAwB;IACjE,0BAA2C;IAC7C,iBAAI;;ADVV,MAAM,OAAO,aAAa;IAOxB;QAHU,cAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;QAClD,kBAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEjD,CAAC;IAEhB,QAAQ,KAAI,CAAC;IAEb,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;;0EAjBU,aAAa;kDAAb,aAAa;QCP1B,2BACI;QAAA,gCACE;QAAA,2BAMA;QAAA,+BAAkE;QAApC,8FAAS,0BAAkB,IAAC;QAAC,iBAAO;QACpE,iBAAQ;QACR,8BACE;QAAA,2BACF;QAAA,iBAAM;QAEN,8BACE;QAAA,0DACE;QAEJ,iBAAM;QACR,iBAAM;;QAnBH,qFAAmC;QAKhC,eAAkD;QAAlD,+FAAkD;QAMpB,eAAqB;QAArB,gEAAqB;QAIlD,eAAuC;QAAvC,qFAAuC;;kDDRnC,aAAa;cALzB,SAAS;eAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,WAAW,EAAE,uBAAuB;gBACpC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;;kBAIE,KAAK;;kBACL,MAAM;;kBACN,MAAM",
2886 | "sourcesContent": [
2887 | "import {Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'task-item',\r\n templateUrl: './task.component.html',\r\n styleUrls: ['./task.component.css']\r\n})\r\nexport class TaskComponent implements OnInit {\r\n\r\n title: string;\r\n @Input() task: any;\r\n @Output() onPinTask: EventEmitter = new EventEmitter();\r\n @Output() onArchiveTask: EventEmitter = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n onPin(id) {\r\n this.onPinTask.emit(id);\r\n }\r\n\r\n onArchive(id) {\r\n this.onArchiveTask.emit(id);\r\n }\r\n\r\n}\r\n\r\nexport interface Task {\r\n id: string;\r\n title: string;\r\n state: string;\r\n}",
2888 | ""
2889 | ]
2890 | },
2891 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
2892 | "hash": "cc92679e14ab00f02c2091da318ed0db14060bf4"
2893 | },
2894 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\ui-lib.module.ts": {
2895 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\ui-lib.module.ts",
2896 | "statementMap": {
2897 | "0": {
2898 | "start": {
2899 | "line": 7,
2900 | "column": 0
2901 | },
2902 | "end": {
2903 | "line": 7,
2904 | "column": 62
2905 | }
2906 | },
2907 | "1": {
2908 | "start": {
2909 | "line": 8,
2910 | "column": 0
2911 | },
2912 | "end": {
2913 | "line": 8,
2914 | "column": 149
2915 | }
2916 | },
2917 | "2": {
2918 | "start": {
2919 | "line": 8,
2920 | "column": 84
2921 | },
2922 | "end": {
2923 | "line": 8,
2924 | "column": 116
2925 | }
2926 | },
2927 | "3": {
2928 | "start": {
2929 | "line": 9,
2930 | "column": 0
2931 | },
2932 | "end": {
2933 | "line": 9,
2934 | "column": 193
2935 | }
2936 | },
2937 | "4": {
2938 | "start": {
2939 | "line": 9,
2940 | "column": 15
2941 | },
2942 | "end": {
2943 | "line": 9,
2944 | "column": 187
2945 | }
2946 | },
2947 | "5": {
2948 | "start": {
2949 | "line": 10,
2950 | "column": 14
2951 | },
2952 | "end": {
2953 | "line": 17,
2954 | "column": 26
2955 | }
2956 | },
2957 | "6": {
2958 | "start": {
2959 | "line": 10,
2960 | "column": 29
2961 | },
2962 | "end": {
2963 | "line": 17,
2964 | "column": 20
2965 | }
2966 | }
2967 | },
2968 | "fnMap": {
2969 | "0": {
2970 | "name": "UiLibModule_Factory",
2971 | "decl": {
2972 | "start": {
2973 | "line": 8,
2974 | "column": 59
2975 | },
2976 | "end": {
2977 | "line": 8,
2978 | "column": 78
2979 | }
2980 | },
2981 | "loc": {
2982 | "start": {
2983 | "line": 8,
2984 | "column": 82
2985 | },
2986 | "end": {
2987 | "line": 8,
2988 | "column": 118
2989 | }
2990 | },
2991 | "line": 8
2992 | },
2993 | "1": {
2994 | "name": "(anonymous_1)",
2995 | "decl": {
2996 | "start": {
2997 | "line": 9,
2998 | "column": 1
2999 | },
3000 | "end": {
3001 | "line": 9,
3002 | "column": 2
3003 | }
3004 | },
3005 | "loc": {
3006 | "start": {
3007 | "line": 9,
3008 | "column": 13
3009 | },
3010 | "end": {
3011 | "line": 9,
3012 | "column": 189
3013 | }
3014 | },
3015 | "line": 9
3016 | },
3017 | "2": {
3018 | "name": "(anonymous_2)",
3019 | "decl": {
3020 | "start": {
3021 | "line": 10,
3022 | "column": 15
3023 | },
3024 | "end": {
3025 | "line": 10,
3026 | "column": 16
3027 | }
3028 | },
3029 | "loc": {
3030 | "start": {
3031 | "line": 10,
3032 | "column": 27
3033 | },
3034 | "end": {
3035 | "line": 17,
3036 | "column": 22
3037 | }
3038 | },
3039 | "line": 10
3040 | }
3041 | },
3042 | "branchMap": {
3043 | "0": {
3044 | "loc": {
3045 | "start": {
3046 | "line": 8,
3047 | "column": 96
3048 | },
3049 | "end": {
3050 | "line": 8,
3051 | "column": 112
3052 | }
3053 | },
3054 | "type": "binary-expr",
3055 | "locations": [
3056 | {
3057 | "start": {
3058 | "line": 8,
3059 | "column": 96
3060 | },
3061 | "end": {
3062 | "line": 8,
3063 | "column": 97
3064 | }
3065 | },
3066 | {
3067 | "start": {
3068 | "line": 8,
3069 | "column": 101
3070 | },
3071 | "end": {
3072 | "line": 8,
3073 | "column": 112
3074 | }
3075 | }
3076 | ],
3077 | "line": 8
3078 | },
3079 | "1": {
3080 | "loc": {
3081 | "start": {
3082 | "line": 9,
3083 | "column": 15
3084 | },
3085 | "end": {
3086 | "line": 9,
3087 | "column": 186
3088 | }
3089 | },
3090 | "type": "binary-expr",
3091 | "locations": [
3092 | {
3093 | "start": {
3094 | "line": 9,
3095 | "column": 16
3096 | },
3097 | "end": {
3098 | "line": 9,
3099 | "column": 48
3100 | }
3101 | },
3102 | {
3103 | "start": {
3104 | "line": 9,
3105 | "column": 52
3106 | },
3107 | "end": {
3108 | "line": 9,
3109 | "column": 61
3110 | }
3111 | },
3112 | {
3113 | "start": {
3114 | "line": 9,
3115 | "column": 66
3116 | },
3117 | "end": {
3118 | "line": 9,
3119 | "column": 186
3120 | }
3121 | }
3122 | ],
3123 | "line": 9
3124 | }
3125 | },
3126 | "s": {
3127 | "0": 2,
3128 | "1": 2,
3129 | "2": 2,
3130 | "3": 2,
3131 | "4": 2,
3132 | "5": 2,
3133 | "6": 2
3134 | },
3135 | "f": {
3136 | "0": 2,
3137 | "1": 2,
3138 | "2": 2
3139 | },
3140 | "b": {
3141 | "0": [
3142 | 2,
3143 | 2
3144 | ],
3145 | "1": [
3146 | 2,
3147 | 0,
3148 | 2
3149 | ]
3150 | },
3151 | "inputSourceMap": {
3152 | "version": 3,
3153 | "file": "ui-lib.module.js",
3154 | "sourceRoot": "",
3155 | "sources": [
3156 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\ui-lib.module.ts"
3157 | ],
3158 | "names": [],
3159 | "mappings": "AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;;AAOtD,MAAM,OAAO,WAAW;;+CAAX,WAAW;qGAAX,WAAW,kBAJb,CAAC,YAAY,CAAC;wFAIZ,WAAW,mBAHP,aAAa,aADlB,YAAY,aAEZ,aAAa;kDAEZ,WAAW;cALvB,QAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,aAAa,CAAC;gBAC7B,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB",
3160 | "sourcesContent": [
3161 | "import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\nimport { TaskComponent } from './task/task.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [TaskComponent],\r\n exports: [TaskComponent]\r\n})\r\nexport class UiLibModule {}\r\n"
3162 | ]
3163 | },
3164 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
3165 | "hash": "15a94de5c8fcd62d36d3d2bae1bc54da306c779e"
3166 | },
3167 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\index.ts": {
3168 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\index.ts",
3169 | "statementMap": {},
3170 | "fnMap": {},
3171 | "branchMap": {},
3172 | "s": {},
3173 | "f": {},
3174 | "b": {},
3175 | "inputSourceMap": {
3176 | "version": 3,
3177 | "file": "index.js",
3178 | "sourceRoot": "",
3179 | "sources": [
3180 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\index.ts"
3181 | ],
3182 | "names": [],
3183 | "mappings": "AAAA,cAAc,qBAAqB,CAAC",
3184 | "sourcesContent": [
3185 | "export * from './lib/ui-lib.module';\n"
3186 | ]
3187 | },
3188 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
3189 | "hash": "abee3f595f35ab561a27558469be6ea10c84ce2c"
3190 | }
3191 | }
--------------------------------------------------------------------------------
/apps/cov-app-e2e/coverage.webpack.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | module: {
3 | rules: [
4 | {
5 | test: /\.(js|ts)$/,
6 | loader: 'istanbul-instrumenter-loader',
7 | options: { esModules: true },
8 | enforce: 'post',
9 | include: [
10 | require('path').join(__dirname, '..', 'cov-app/src'),
11 | require('path').join(__dirname, '../..', 'libs/ui-lib/src')
12 | ],
13 | exclude: [
14 | /\.(e2e|spec)\.ts$/,
15 | /node_modules/,
16 | /(ngfactory|ngstyle)\.js/
17 | ]
18 | }
19 | ]
20 | }
21 | };
22 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "fileServerFolder": ".",
3 | "fixturesFolder": "./src/fixtures",
4 | "integrationFolder": "./src/integration",
5 | "modifyObstructiveCode": false,
6 | "pluginsFile": "./src/plugins/index",
7 | "supportFile": "./src/support/index.ts",
8 | "video": true,
9 | "videosFolder": "../../dist/cypress/apps/cov-app-e2e/videos",
10 | "screenshotsFolder": "../../dist/cypress/apps/cov-app-e2e/screenshots",
11 | "chromeWebSecurity": false
12 | }
13 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io"
4 | }
5 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/integration/app.spec.ts:
--------------------------------------------------------------------------------
1 | import { getGreeting } from '../support/app.po';
2 |
3 | describe('cov-app', () => {
4 | beforeEach(() => cy.visit('/'));
5 |
6 | it('should display welcome message', () => {
7 | // Custom command example, see `../support/commands.ts` file
8 | cy.login('my-email@something.com', 'myPassword');
9 |
10 | // Function helper example, see `../support/app.po.ts` file
11 | getGreeting().contains('Welcome to cov-app!');
12 | });
13 |
14 | it('should check if task-item is there', () => {
15 | cy.get('task-item').should('exist');
16 | })
17 | });
18 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/plugins/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example plugins/index.js can be used to load plugins
3 | //
4 | // You can change the location of this file or turn off loading
5 | // the plugins file with the 'pluginsFile' configuration option.
6 | //
7 | // You can read more here:
8 | // https://on.cypress.io/plugins-guide
9 | // ***********************************************************
10 |
11 | // This function is called when a project is opened or re-opened (e.g. due to
12 | // the project's config changing)
13 |
14 | const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor');
15 |
16 | module.exports = (on, config) => {
17 | // `on` is used to hook into various events Cypress emits
18 | // `config` is the resolved Cypress config
19 |
20 | // Preprocess Typescript file using Nx helper
21 | on('file:preprocessor', preprocessTypescript(config));
22 |
23 | on('task', require('@cypress/code-coverage/task'))
24 | };
25 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/support/app.po.ts:
--------------------------------------------------------------------------------
1 | export const getGreeting = () => cy.get('h1');
2 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/support/commands.ts:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | // eslint-disable-next-line @typescript-eslint/no-namespace
11 | declare namespace Cypress {
12 | interface Chainable {
13 | login(email: string, password: string): void;
14 | }
15 | }
16 | //
17 | // -- This is a parent command --
18 | Cypress.Commands.add('login', (email, password) => {
19 | console.log('Custom command example: Login', email, password);
20 | });
21 | //
22 | // -- This is a child command --
23 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
24 | //
25 | //
26 | // -- This is a dual command --
27 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
28 | //
29 | //
30 | // -- This will overwrite an existing command --
31 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
32 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/src/support/index.ts:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands';
18 |
19 | import '@cypress/code-coverage/support'
--------------------------------------------------------------------------------
/apps/cov-app-e2e/tsconfig.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "sourceMap": false,
5 | "outDir": "../../dist/out-tsc"
6 | },
7 | "include": ["src/**/*.ts", "src/**/*.js"]
8 | }
9 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "types": ["cypress", "node"]
5 | },
6 | "include": ["**/*.ts", "**/*.js"]
7 | }
8 |
--------------------------------------------------------------------------------
/apps/cov-app-e2e/tslint.json:
--------------------------------------------------------------------------------
1 | { "extends": "../../tslint.json", "rules": {} }
2 |
--------------------------------------------------------------------------------
/apps/cov-app/browserslist:
--------------------------------------------------------------------------------
1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2 | # For additional information regarding the format and rule options, please see:
3 | # https://github.com/browserslist/browserslist#queries
4 |
5 | # You can see what browsers were selected by your queries by running:
6 | # npx browserslist
7 |
8 | > 0.5%
9 | last 2 versions
10 | Firefox ESR
11 | not dead
12 | not IE 9-11 # For IE 9-11 support, remove 'not'.
--------------------------------------------------------------------------------
/apps/cov-app/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | name: 'cov-app',
3 | preset: '../../jest.config.js',
4 | coverageDirectory: '../../coverage/apps/cov-app',
5 | snapshotSerializers: [
6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js',
7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js',
8 | 'jest-preset-angular/build/HTMLCommentSerializer.js'
9 | ]
10 | };
11 |
--------------------------------------------------------------------------------
/apps/cov-app/src/app/app.component.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Remove template code below
3 | */
4 | :host {
5 | display: block;
6 | font-family: sans-serif;
7 | min-width: 300px;
8 | max-width: 600px;
9 | margin: 50px auto;
10 | }
11 |
12 | .gutter-left {
13 | margin-left: 9px;
14 | }
15 |
16 | .col-span-2 {
17 | grid-column: span 2;
18 | }
19 |
20 | .flex {
21 | display: flex;
22 | align-items: center;
23 | justify-content: center;
24 | }
25 |
26 | header {
27 | background-color: #143055;
28 | color: white;
29 | padding: 5px;
30 | border-radius: 3px;
31 | }
32 |
33 | main {
34 | padding: 0 36px;
35 | }
36 |
37 | p {
38 | text-align: center;
39 | }
40 |
41 | h1 {
42 | text-align: center;
43 | margin-left: 18px;
44 | font-size: 24px;
45 | }
46 |
47 | h2 {
48 | text-align: center;
49 | font-size: 20px;
50 | margin: 40px 0 10px 0;
51 | }
52 |
53 | .resources {
54 | text-align: center;
55 | list-style: none;
56 | padding: 0;
57 | display: grid;
58 | grid-gap: 9px;
59 | grid-template-columns: 1fr 1fr;
60 | }
61 |
62 | .resource {
63 | color: #0094ba;
64 | height: 36px;
65 | background-color: rgba(0, 0, 0, 0);
66 | border: 1px solid rgba(0, 0, 0, 0.12);
67 | border-radius: 4px;
68 | padding: 3px 9px;
69 | text-decoration: none;
70 | }
71 |
72 | .resource:hover {
73 | background-color: rgba(68, 138, 255, 0.04);
74 | }
75 |
76 | pre {
77 | padding: 9px;
78 | border-radius: 4px;
79 | background-color: black;
80 | color: #eee;
81 | }
82 |
83 | details {
84 | border-radius: 4px;
85 | color: #333;
86 | background-color: rgba(0, 0, 0, 0);
87 | border: 1px solid rgba(0, 0, 0, 0.12);
88 | padding: 3px 9px;
89 | margin-bottom: 9px;
90 | }
91 |
92 | summary {
93 | cursor: pointer;
94 | outline: none;
95 | height: 36px;
96 | line-height: 36px;
97 | }
98 |
99 | .github-star-container {
100 | margin-top: 12px;
101 | line-height: 20px;
102 | }
103 |
104 | .github-star-container a {
105 | display: flex;
106 | align-items: center;
107 | text-decoration: none;
108 | color: #333;
109 | }
110 |
111 | .github-star-badge {
112 | color: #24292e;
113 | display: flex;
114 | align-items: center;
115 | font-size: 12px;
116 | padding: 3px 10px;
117 | border: 1px solid rgba(27, 31, 35, 0.2);
118 | border-radius: 3px;
119 | background-image: linear-gradient(-180deg, #fafbfc, #eff3f6 90%);
120 | margin-left: 4px;
121 | font-weight: 600;
122 | }
123 |
124 | .github-star-badge:hover {
125 | background-image: linear-gradient(-180deg, #f0f3f6, #e6ebf1 90%);
126 | border-color: rgba(27, 31, 35, 0.35);
127 | background-position: -0.5em;
128 | }
129 | .github-star-badge .material-icons {
130 | height: 16px;
131 | width: 16px;
132 | margin-right: 4px;
133 | }
134 |
--------------------------------------------------------------------------------
/apps/cov-app/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 | Welcome to {{ title }}!
10 |
11 |
12 | Resources & Tools
13 |
14 | Thank you for using and showing some ♥ for Nx.
15 |
16 |
40 |
41 | Here are some links to help you get started.
42 |
43 |
79 | Next Steps
80 | Here are some things you can do with Nx.
81 |
82 | Add UI library
83 |
84 | # Generate UI lib
85 | ng g @nrwl/angular:lib ui
86 |
87 | # Add a component
88 | ng g @nrwl/angular:component xyz --project ui
90 |
91 |
92 | View dependency graph
93 | nx dep-graph
94 |
95 |
96 | Run affected commands
97 |
98 | # see what's been affected by changes
99 | ng affected:dep-graph
100 |
101 | # run tests for current changes
102 | ng affected:test
103 |
104 | # run e2e tests for current changes
105 | ng affected:e2e
106 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/apps/cov-app/src/app/app.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed, async } from '@angular/core/testing';
2 | import { AppComponent } from './app.component';
3 |
4 | describe('AppComponent', () => {
5 | beforeEach(async(() => {
6 | TestBed.configureTestingModule({
7 | declarations: [AppComponent]
8 | }).compileComponents();
9 | }));
10 |
11 | it('should create the app', () => {
12 | const fixture = TestBed.createComponent(AppComponent);
13 | const app = fixture.componentInstance;
14 | expect(app).toBeTruthy();
15 | });
16 |
17 | it(`should have as title 'cov-app'`, () => {
18 | const fixture = TestBed.createComponent(AppComponent);
19 | const app = fixture.componentInstance;
20 | expect(app.title).toEqual('cov-app');
21 | });
22 |
23 | it('should render title', () => {
24 | const fixture = TestBed.createComponent(AppComponent);
25 | fixture.detectChanges();
26 | const compiled = fixture.nativeElement;
27 | expect(compiled.querySelector('h1').textContent).toContain(
28 | 'Welcome to cov-app!'
29 | );
30 | });
31 | });
32 |
--------------------------------------------------------------------------------
/apps/cov-app/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'coverage-workspace-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'cov-app';
10 | }
11 |
--------------------------------------------------------------------------------
/apps/cov-app/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { BrowserModule } from '@angular/platform-browser';
2 | import { NgModule } from '@angular/core';
3 |
4 | import { AppComponent } from './app.component';
5 | import { UiLibModule } from '@coverage-workspace/ui-lib'
6 |
7 | @NgModule({
8 | declarations: [AppComponent],
9 | imports: [BrowserModule, UiLibModule],
10 | providers: [],
11 | bootstrap: [AppComponent]
12 | })
13 | export class AppModule {}
14 |
--------------------------------------------------------------------------------
/apps/cov-app/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flaxline/angular-nx-cypress-coverage-example/5b8c42860a6250bab446c897efe672a183e55423/apps/cov-app/src/assets/.gitkeep
--------------------------------------------------------------------------------
/apps/cov-app/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/apps/cov-app/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // This file can be replaced during build by using the `fileReplacements` array.
2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
3 | // The list of file replacements can be found in `angular.json`.
4 |
5 | export const environment = {
6 | production: false
7 | };
8 |
9 | /*
10 | * For easier debugging in development mode, you can import the following file
11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
12 | *
13 | * This import should be commented out in production mode because it will have a negative impact
14 | * on performance if an error is thrown.
15 | */
16 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI.
17 |
--------------------------------------------------------------------------------
/apps/cov-app/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flaxline/angular-nx-cypress-coverage-example/5b8c42860a6250bab446c897efe672a183e55423/apps/cov-app/src/favicon.ico
--------------------------------------------------------------------------------
/apps/cov-app/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CovApp
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/apps/cov-app/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic()
12 | .bootstrapModule(AppModule)
13 | .catch(err => console.error(err));
14 |
--------------------------------------------------------------------------------
/apps/cov-app/src/polyfills.ts:
--------------------------------------------------------------------------------
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/guide/browser-support
15 | */
16 |
17 | /***************************************************************************************************
18 | * BROWSER POLYFILLS
19 | */
20 |
21 | /** IE10 and IE11 requires the following for NgClass support on SVG elements */
22 | // import 'classlist.js'; // Run `npm install --save classlist.js`.
23 |
24 | /**
25 | * Web Animations `@angular/platform-browser/animations`
26 | * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
27 | * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
28 | */
29 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
30 |
31 | /**
32 | * By default, zone.js will patch all possible macroTask and DomEvents
33 | * user can disable parts of macroTask/DomEvents patch by setting following flags
34 | * because those flags need to be set before `zone.js` being loaded, and webpack
35 | * will put import in the top of bundle, so user need to create a separate file
36 | * in this directory (for example: zone-flags.ts), and put the following flags
37 | * into that file, and then add the following code before importing zone.js.
38 | * import './zone-flags.ts';
39 | *
40 | * The flags allowed in zone-flags.ts are listed here.
41 | *
42 | * The following flags will work for all browsers.
43 | *
44 | * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
45 | * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
46 | * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
47 | *
48 | * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
49 | * with the following flag, it will bypass `zone.js` patch for IE/Edge
50 | *
51 | * (window as any).__Zone_enable_cross_context_check = true;
52 | *
53 | */
54 |
55 | /***************************************************************************************************
56 | * Zone JS is required by default for Angular itself.
57 | */
58 | import 'zone.js/dist/zone'; // Included with Angular CLI.
59 |
60 | /***************************************************************************************************
61 | * APPLICATION IMPORTS
62 | */
63 |
--------------------------------------------------------------------------------
/apps/cov-app/src/styles.css:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
2 |
--------------------------------------------------------------------------------
/apps/cov-app/src/test-setup.ts:
--------------------------------------------------------------------------------
1 | import 'jest-preset-angular';
2 |
--------------------------------------------------------------------------------
/apps/cov-app/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../dist/out-tsc",
5 | "types": []
6 | },
7 | "files": ["src/main.ts", "src/polyfills.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/apps/cov-app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "types": ["node", "jest"]
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/apps/cov-app/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "files": ["src/test-setup.ts"],
9 | "include": ["**/*.spec.ts", "**/*.d.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/apps/cov-app/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tslint.json",
3 | "rules": {
4 | "directive-selector": [true, "attribute", "coverageWorkspace", "camelCase"],
5 | "component-selector": [true, "element", "coverage-workspace", "kebab-case"]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/.nyc_output/out.json:
--------------------------------------------------------------------------------
1 | {
2 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts": {
3 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
4 | "statementMap": {
5 | "0": {
6 | "start": {
7 | "line": 4,
8 | "column": 20
9 | },
10 | "end": {
11 | "line": 16,
12 | "column": 1
13 | }
14 | },
15 | "1": {
16 | "start": {
17 | "line": 6,
18 | "column": 8
19 | },
20 | "end": {
21 | "line": 6,
22 | "column": 44
23 | }
24 | },
25 | "2": {
26 | "start": {
27 | "line": 7,
28 | "column": 8
29 | },
30 | "end": {
31 | "line": 7,
32 | "column": 48
33 | }
34 | },
35 | "3": {
36 | "start": {
37 | "line": 11,
38 | "column": 8
39 | },
40 | "end": {
41 | "line": 11,
42 | "column": 32
43 | }
44 | },
45 | "4": {
46 | "start": {
47 | "line": 14,
48 | "column": 8
49 | },
50 | "end": {
51 | "line": 14,
52 | "column": 36
53 | }
54 | },
55 | "5": {
56 | "start": {
57 | "line": 17,
58 | "column": 0
59 | },
60 | "end": {
61 | "line": 20,
62 | "column": 44
63 | }
64 | },
65 | "6": {
66 | "start": {
67 | "line": 21,
68 | "column": 0
69 | },
70 | "end": {
71 | "line": 24,
72 | "column": 49
73 | }
74 | },
75 | "7": {
76 | "start": {
77 | "line": 25,
78 | "column": 0
79 | },
80 | "end": {
81 | "line": 28,
82 | "column": 53
83 | }
84 | },
85 | "8": {
86 | "start": {
87 | "line": 29,
88 | "column": 0
89 | },
90 | "end": {
91 | "line": 36,
92 | "column": 18
93 | }
94 | }
95 | },
96 | "fnMap": {
97 | "0": {
98 | "name": "(anonymous_0)",
99 | "decl": {
100 | "start": {
101 | "line": 5,
102 | "column": 4
103 | },
104 | "end": {
105 | "line": 5,
106 | "column": 5
107 | }
108 | },
109 | "loc": {
110 | "start": {
111 | "line": 5,
112 | "column": 18
113 | },
114 | "end": {
115 | "line": 8,
116 | "column": 5
117 | }
118 | },
119 | "line": 5
120 | },
121 | "1": {
122 | "name": "(anonymous_1)",
123 | "decl": {
124 | "start": {
125 | "line": 9,
126 | "column": 4
127 | },
128 | "end": {
129 | "line": 9,
130 | "column": 5
131 | }
132 | },
133 | "loc": {
134 | "start": {
135 | "line": 9,
136 | "column": 15
137 | },
138 | "end": {
139 | "line": 9,
140 | "column": 18
141 | }
142 | },
143 | "line": 9
144 | },
145 | "2": {
146 | "name": "(anonymous_2)",
147 | "decl": {
148 | "start": {
149 | "line": 10,
150 | "column": 4
151 | },
152 | "end": {
153 | "line": 10,
154 | "column": 5
155 | }
156 | },
157 | "loc": {
158 | "start": {
159 | "line": 10,
160 | "column": 14
161 | },
162 | "end": {
163 | "line": 12,
164 | "column": 5
165 | }
166 | },
167 | "line": 10
168 | },
169 | "3": {
170 | "name": "(anonymous_3)",
171 | "decl": {
172 | "start": {
173 | "line": 13,
174 | "column": 4
175 | },
176 | "end": {
177 | "line": 13,
178 | "column": 5
179 | }
180 | },
181 | "loc": {
182 | "start": {
183 | "line": 13,
184 | "column": 18
185 | },
186 | "end": {
187 | "line": 15,
188 | "column": 5
189 | }
190 | },
191 | "line": 13
192 | }
193 | },
194 | "branchMap": {
195 | "0": {
196 | "loc": {
197 | "start": {
198 | "line": 23,
199 | "column": 30
200 | },
201 | "end": {
202 | "line": 23,
203 | "column": 124
204 | }
205 | },
206 | "type": "cond-expr",
207 | "locations": [
208 | {
209 | "start": {
210 | "line": 23,
211 | "column": 113
212 | },
213 | "end": {
214 | "line": 23,
215 | "column": 115
216 | }
217 | },
218 | {
219 | "start": {
220 | "line": 23,
221 | "column": 118
222 | },
223 | "end": {
224 | "line": 23,
225 | "column": 124
226 | }
227 | }
228 | ],
229 | "line": 23
230 | },
231 | "1": {
232 | "loc": {
233 | "start": {
234 | "line": 23,
235 | "column": 43
236 | },
237 | "end": {
238 | "line": 23,
239 | "column": 94
240 | }
241 | },
242 | "type": "binary-expr",
243 | "locations": [
244 | {
245 | "start": {
246 | "line": 23,
247 | "column": 43
248 | },
249 | "end": {
250 | "line": 23,
251 | "column": 78
252 | }
253 | },
254 | {
255 | "start": {
256 | "line": 23,
257 | "column": 82
258 | },
259 | "end": {
260 | "line": 23,
261 | "column": 94
262 | }
263 | }
264 | ],
265 | "line": 23
266 | },
267 | "2": {
268 | "loc": {
269 | "start": {
270 | "line": 27,
271 | "column": 30
272 | },
273 | "end": {
274 | "line": 27,
275 | "column": 124
276 | }
277 | },
278 | "type": "cond-expr",
279 | "locations": [
280 | {
281 | "start": {
282 | "line": 27,
283 | "column": 113
284 | },
285 | "end": {
286 | "line": 27,
287 | "column": 115
288 | }
289 | },
290 | {
291 | "start": {
292 | "line": 27,
293 | "column": 118
294 | },
295 | "end": {
296 | "line": 27,
297 | "column": 124
298 | }
299 | }
300 | ],
301 | "line": 27
302 | },
303 | "3": {
304 | "loc": {
305 | "start": {
306 | "line": 27,
307 | "column": 43
308 | },
309 | "end": {
310 | "line": 27,
311 | "column": 94
312 | }
313 | },
314 | "type": "binary-expr",
315 | "locations": [
316 | {
317 | "start": {
318 | "line": 27,
319 | "column": 43
320 | },
321 | "end": {
322 | "line": 27,
323 | "column": 78
324 | }
325 | },
326 | {
327 | "start": {
328 | "line": 27,
329 | "column": 82
330 | },
331 | "end": {
332 | "line": 27,
333 | "column": 94
334 | }
335 | }
336 | ],
337 | "line": 27
338 | },
339 | "4": {
340 | "loc": {
341 | "start": {
342 | "line": 32,
343 | "column": 18
344 | },
345 | "end": {
346 | "line": 32,
347 | "column": 189
348 | }
349 | },
350 | "type": "cond-expr",
351 | "locations": [
352 | {
353 | "start": {
354 | "line": 32,
355 | "column": 107
356 | },
357 | "end": {
358 | "line": 32,
359 | "column": 183
360 | }
361 | },
362 | {
363 | "start": {
364 | "line": 32,
365 | "column": 187
366 | },
367 | "end": {
368 | "line": 32,
369 | "column": 189
370 | }
371 | }
372 | ],
373 | "line": 32
374 | },
375 | "5": {
376 | "loc": {
377 | "start": {
378 | "line": 32,
379 | "column": 19
380 | },
381 | "end": {
382 | "line": 32,
383 | "column": 95
384 | }
385 | },
386 | "type": "binary-expr",
387 | "locations": [
388 | {
389 | "start": {
390 | "line": 32,
391 | "column": 19
392 | },
393 | "end": {
394 | "line": 32,
395 | "column": 59
396 | }
397 | },
398 | {
399 | "start": {
400 | "line": 32,
401 | "column": 63
402 | },
403 | "end": {
404 | "line": 32,
405 | "column": 95
406 | }
407 | }
408 | ],
409 | "line": 32
410 | },
411 | "6": {
412 | "loc": {
413 | "start": {
414 | "line": 32,
415 | "column": 107
416 | },
417 | "end": {
418 | "line": 32,
419 | "column": 183
420 | }
421 | },
422 | "type": "binary-expr",
423 | "locations": [
424 | {
425 | "start": {
426 | "line": 32,
427 | "column": 107
428 | },
429 | "end": {
430 | "line": 32,
431 | "column": 147
432 | }
433 | },
434 | {
435 | "start": {
436 | "line": 32,
437 | "column": 151
438 | },
439 | "end": {
440 | "line": 32,
441 | "column": 183
442 | }
443 | }
444 | ],
445 | "line": 32
446 | },
447 | "7": {
448 | "loc": {
449 | "start": {
450 | "line": 33,
451 | "column": 17
452 | },
453 | "end": {
454 | "line": 33,
455 | "column": 184
456 | }
457 | },
458 | "type": "cond-expr",
459 | "locations": [
460 | {
461 | "start": {
462 | "line": 33,
463 | "column": 104
464 | },
465 | "end": {
466 | "line": 33,
467 | "column": 178
468 | }
469 | },
470 | {
471 | "start": {
472 | "line": 33,
473 | "column": 182
474 | },
475 | "end": {
476 | "line": 33,
477 | "column": 184
478 | }
479 | }
480 | ],
481 | "line": 33
482 | },
483 | "8": {
484 | "loc": {
485 | "start": {
486 | "line": 33,
487 | "column": 18
488 | },
489 | "end": {
490 | "line": 33,
491 | "column": 92
492 | }
493 | },
494 | "type": "binary-expr",
495 | "locations": [
496 | {
497 | "start": {
498 | "line": 33,
499 | "column": 18
500 | },
501 | "end": {
502 | "line": 33,
503 | "column": 57
504 | }
505 | },
506 | {
507 | "start": {
508 | "line": 33,
509 | "column": 61
510 | },
511 | "end": {
512 | "line": 33,
513 | "column": 92
514 | }
515 | }
516 | ],
517 | "line": 33
518 | },
519 | "9": {
520 | "loc": {
521 | "start": {
522 | "line": 33,
523 | "column": 104
524 | },
525 | "end": {
526 | "line": 33,
527 | "column": 178
528 | }
529 | },
530 | "type": "binary-expr",
531 | "locations": [
532 | {
533 | "start": {
534 | "line": 33,
535 | "column": 104
536 | },
537 | "end": {
538 | "line": 33,
539 | "column": 143
540 | }
541 | },
542 | {
543 | "start": {
544 | "line": 33,
545 | "column": 147
546 | },
547 | "end": {
548 | "line": 33,
549 | "column": 178
550 | }
551 | }
552 | ],
553 | "line": 33
554 | }
555 | },
556 | "s": {
557 | "0": 13,
558 | "1": 13,
559 | "2": 13,
560 | "3": 0,
561 | "4": 0,
562 | "5": 13,
563 | "6": 13,
564 | "7": 13,
565 | "8": 13
566 | },
567 | "f": {
568 | "0": 13,
569 | "1": 13,
570 | "2": 0,
571 | "3": 0
572 | },
573 | "b": {
574 | "0": [
575 | 13,
576 | 0
577 | ],
578 | "1": [
579 | 13,
580 | 13
581 | ],
582 | "2": [
583 | 13,
584 | 0
585 | ],
586 | "3": [
587 | 13,
588 | 13
589 | ],
590 | "4": [
591 | 13,
592 | 0
593 | ],
594 | "5": [
595 | 13,
596 | 0
597 | ],
598 | "6": [
599 | 13,
600 | 0
601 | ],
602 | "7": [
603 | 0,
604 | 13
605 | ],
606 | "8": [
607 | 13,
608 | 13
609 | ],
610 | "9": [
611 | 0,
612 | 0
613 | ]
614 | },
615 | "inputSourceMap": {
616 | "version": 3,
617 | "file": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
618 | "sourceRoot": "",
619 | "sources": [
620 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts"
621 | ],
622 | "names": [],
623 | "mappings": ";;AAAA,OAAO,EAAC,SAAS,EAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO9E,IAAa,aAAa,GAA1B,MAAa,aAAa;IAOxB;QAHU,cAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;QAClD,kBAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEjD,CAAC;IAEhB,QAAQ,KAAI,CAAC;IAEb,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CAEF,CAAA;AAhBU;IAAR,KAAK,EAAE;;2CAAW;AACT;IAAT,MAAM,EAAE;kDAAY,YAAY,oBAAZ,YAAY;gDAA2B;AAClD;IAAT,MAAM,EAAE;kDAAgB,YAAY,oBAAZ,YAAY;oDAA2B;AALrD,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACrL,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClL,CAAC;;GACW,aAAa,CAmBzB;SAnBY,aAAa",
624 | "sourcesContent": [
625 | "import {Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'task-item',\r\n template: (require('./task.component.html').default || require('./task.component.html')).length ? (require('./task.component.html').default || require('./task.component.html')) : '',\r\n styles: [(require('./task.component.css').default || require('./task.component.css')).length ? (require('./task.component.css').default || require('./task.component.css')) : '']\r\n})\r\nexport class TaskComponent implements OnInit {\r\n\r\n title: string;\r\n @Input() task: any;\r\n @Output() onPinTask: EventEmitter = new EventEmitter();\r\n @Output() onArchiveTask: EventEmitter = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n onPin(id) {\r\n this.onPinTask.emit(id);\r\n }\r\n\r\n onArchive(id) {\r\n this.onArchiveTask.emit(id);\r\n }\r\n\r\n}\r\n\r\nexport interface Task {\r\n id: string;\r\n title: string;\r\n state: string;\r\n}"
626 | ]
627 | },
628 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
629 | "hash": "e330dc050407944dd1a9b1ba32c5572432d35736"
630 | },
631 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts": {
632 | "path": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts",
633 | "statementMap": {
634 | "0": {
635 | "start": {
636 | "line": 5,
637 | "column": 20
638 | },
639 | "end": {
640 | "line": 10,
641 | "column": 1
642 | }
643 | },
644 | "1": {
645 | "start": {
646 | "line": 11,
647 | "column": 23
648 | },
649 | "end": {
650 | "line": 14,
651 | "column": 1
652 | }
653 | },
654 | "2": {
655 | "start": {
656 | "line": 15,
657 | "column": 0
658 | },
659 | "end": {
660 | "line": 63,
661 | "column": 3
662 | }
663 | },
664 | "3": {
665 | "start": {
666 | "line": 21,
667 | "column": 4
668 | },
669 | "end": {
670 | "line": 28,
671 | "column": 6
672 | }
673 | },
674 | "4": {
675 | "start": {
676 | "line": 31,
677 | "column": 4
678 | },
679 | "end": {
680 | "line": 38,
681 | "column": 6
682 | }
683 | },
684 | "5": {
685 | "start": {
686 | "line": 41,
687 | "column": 4
688 | },
689 | "end": {
690 | "line": 48,
691 | "column": 6
692 | }
693 | },
694 | "6": {
695 | "start": {
696 | "line": 51,
697 | "column": 4
698 | },
699 | "end": {
700 | "line": 62,
701 | "column": 6
702 | }
703 | }
704 | },
705 | "fnMap": {
706 | "0": {
707 | "name": "(anonymous_0)",
708 | "decl": {
709 | "start": {
710 | "line": 20,
711 | "column": 20
712 | },
713 | "end": {
714 | "line": 20,
715 | "column": 21
716 | }
717 | },
718 | "loc": {
719 | "start": {
720 | "line": 20,
721 | "column": 26
722 | },
723 | "end": {
724 | "line": 29,
725 | "column": 1
726 | }
727 | },
728 | "line": 20
729 | },
730 | "1": {
731 | "name": "(anonymous_1)",
732 | "decl": {
733 | "start": {
734 | "line": 30,
735 | "column": 19
736 | },
737 | "end": {
738 | "line": 30,
739 | "column": 20
740 | }
741 | },
742 | "loc": {
743 | "start": {
744 | "line": 30,
745 | "column": 25
746 | },
747 | "end": {
748 | "line": 39,
749 | "column": 1
750 | }
751 | },
752 | "line": 30
753 | },
754 | "2": {
755 | "name": "(anonymous_2)",
756 | "decl": {
757 | "start": {
758 | "line": 40,
759 | "column": 21
760 | },
761 | "end": {
762 | "line": 40,
763 | "column": 22
764 | }
765 | },
766 | "loc": {
767 | "start": {
768 | "line": 40,
769 | "column": 27
770 | },
771 | "end": {
772 | "line": 49,
773 | "column": 1
774 | }
775 | },
776 | "line": 40
777 | },
778 | "3": {
779 | "name": "(anonymous_3)",
780 | "decl": {
781 | "start": {
782 | "line": 50,
783 | "column": 20
784 | },
785 | "end": {
786 | "line": 50,
787 | "column": 21
788 | }
789 | },
790 | "loc": {
791 | "start": {
792 | "line": 50,
793 | "column": 26
794 | },
795 | "end": {
796 | "line": 63,
797 | "column": 1
798 | }
799 | },
800 | "line": 50
801 | }
802 | },
803 | "branchMap": {},
804 | "s": {
805 | "0": 13,
806 | "1": 13,
807 | "2": 13,
808 | "3": 8,
809 | "4": 0,
810 | "5": 1,
811 | "6": 4
812 | },
813 | "f": {
814 | "0": 8,
815 | "1": 0,
816 | "2": 1,
817 | "3": 4
818 | },
819 | "b": {},
820 | "inputSourceMap": {
821 | "version": 3,
822 | "file": "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts",
823 | "sourceRoot": "",
824 | "sources": [
825 | "C:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts"
826 | ],
827 | "names": [],
828 | "mappings": "AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAS,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,GAAG;IACP,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;CACvC,CAAC;AAEF,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;KACtB,YAAY,CAAC,SAAS,CAAC;KACvB,YAAY,CACX,cAAc,CAAC;IACb,YAAY,EAAE,CAAC,aAAa,CAAC;CAC9B,CAAC,CACH;KACA,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI;YACJ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE;IAClB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,kCAAO,IAAI,KAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAE;YACpD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;IACpB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,kCAAO,IAAI,KAAE,KAAK,EAAE,eAAe,GAAE;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxB,KAAK,EAAE,eAAe;aAAE;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC",
829 | "sourcesContent": [
830 | "import { storiesOf, moduleMetadata } from '@storybook/angular';\r\nimport { action } from '@storybook/addon-actions';\r\nimport { array, boolean, withKnobs, number, text } from '@storybook/addon-knobs';\r\nimport { TaskComponent } from './task.component';\r\n\r\nexport const task = {\r\n id: '1',\r\n title: 'Test Task',\r\n state: 'TASK_INBOX',\r\n updatedAt: new Date(2018, 0, 1, 9, 0),\r\n};\r\n\r\nexport const actions = {\r\n onPinTask: action('onPinTask'),\r\n onArchiveTask: action('onArchiveTask'),\r\n};\r\n\r\nstoriesOf('Task', module)\r\n .addDecorator(withKnobs)\r\n .addDecorator(\r\n moduleMetadata({\r\n declarations: [TaskComponent],\r\n })\r\n )\r\n .add('default', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task,\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('pinned', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { ...task, state: boolean('disabled', false) },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('archived', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { ...task, state: 'TASK_ARCHIVED' },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('knobbed', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { \r\n id: number('id', 0),\r\n title: text('title', ''),\r\n state: 'TASK_ARCHIVED' },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n });\r\n"
831 | ]
832 | },
833 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
834 | "hash": "6b13aa890993845ac1260ed8413cf4dd72582f5f"
835 | },
836 | "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts": {
837 | "path": "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
838 | "statementMap": {
839 | "0": {
840 | "start": {
841 | "line": 4,
842 | "column": 20
843 | },
844 | "end": {
845 | "line": 16,
846 | "column": 1
847 | }
848 | },
849 | "1": {
850 | "start": {
851 | "line": 6,
852 | "column": 8
853 | },
854 | "end": {
855 | "line": 6,
856 | "column": 44
857 | }
858 | },
859 | "2": {
860 | "start": {
861 | "line": 7,
862 | "column": 8
863 | },
864 | "end": {
865 | "line": 7,
866 | "column": 48
867 | }
868 | },
869 | "3": {
870 | "start": {
871 | "line": 11,
872 | "column": 8
873 | },
874 | "end": {
875 | "line": 11,
876 | "column": 32
877 | }
878 | },
879 | "4": {
880 | "start": {
881 | "line": 14,
882 | "column": 8
883 | },
884 | "end": {
885 | "line": 14,
886 | "column": 36
887 | }
888 | },
889 | "5": {
890 | "start": {
891 | "line": 17,
892 | "column": 0
893 | },
894 | "end": {
895 | "line": 20,
896 | "column": 44
897 | }
898 | },
899 | "6": {
900 | "start": {
901 | "line": 21,
902 | "column": 0
903 | },
904 | "end": {
905 | "line": 24,
906 | "column": 49
907 | }
908 | },
909 | "7": {
910 | "start": {
911 | "line": 25,
912 | "column": 0
913 | },
914 | "end": {
915 | "line": 28,
916 | "column": 53
917 | }
918 | },
919 | "8": {
920 | "start": {
921 | "line": 29,
922 | "column": 0
923 | },
924 | "end": {
925 | "line": 36,
926 | "column": 18
927 | }
928 | }
929 | },
930 | "fnMap": {
931 | "0": {
932 | "name": "(anonymous_0)",
933 | "decl": {
934 | "start": {
935 | "line": 5,
936 | "column": 4
937 | },
938 | "end": {
939 | "line": 5,
940 | "column": 5
941 | }
942 | },
943 | "loc": {
944 | "start": {
945 | "line": 5,
946 | "column": 18
947 | },
948 | "end": {
949 | "line": 8,
950 | "column": 5
951 | }
952 | },
953 | "line": 5
954 | },
955 | "1": {
956 | "name": "(anonymous_1)",
957 | "decl": {
958 | "start": {
959 | "line": 9,
960 | "column": 4
961 | },
962 | "end": {
963 | "line": 9,
964 | "column": 5
965 | }
966 | },
967 | "loc": {
968 | "start": {
969 | "line": 9,
970 | "column": 15
971 | },
972 | "end": {
973 | "line": 9,
974 | "column": 18
975 | }
976 | },
977 | "line": 9
978 | },
979 | "2": {
980 | "name": "(anonymous_2)",
981 | "decl": {
982 | "start": {
983 | "line": 10,
984 | "column": 4
985 | },
986 | "end": {
987 | "line": 10,
988 | "column": 5
989 | }
990 | },
991 | "loc": {
992 | "start": {
993 | "line": 10,
994 | "column": 14
995 | },
996 | "end": {
997 | "line": 12,
998 | "column": 5
999 | }
1000 | },
1001 | "line": 10
1002 | },
1003 | "3": {
1004 | "name": "(anonymous_3)",
1005 | "decl": {
1006 | "start": {
1007 | "line": 13,
1008 | "column": 4
1009 | },
1010 | "end": {
1011 | "line": 13,
1012 | "column": 5
1013 | }
1014 | },
1015 | "loc": {
1016 | "start": {
1017 | "line": 13,
1018 | "column": 18
1019 | },
1020 | "end": {
1021 | "line": 15,
1022 | "column": 5
1023 | }
1024 | },
1025 | "line": 13
1026 | }
1027 | },
1028 | "branchMap": {
1029 | "0": {
1030 | "loc": {
1031 | "start": {
1032 | "line": 23,
1033 | "column": 30
1034 | },
1035 | "end": {
1036 | "line": 23,
1037 | "column": 124
1038 | }
1039 | },
1040 | "type": "cond-expr",
1041 | "locations": [
1042 | {
1043 | "start": {
1044 | "line": 23,
1045 | "column": 113
1046 | },
1047 | "end": {
1048 | "line": 23,
1049 | "column": 115
1050 | }
1051 | },
1052 | {
1053 | "start": {
1054 | "line": 23,
1055 | "column": 118
1056 | },
1057 | "end": {
1058 | "line": 23,
1059 | "column": 124
1060 | }
1061 | }
1062 | ],
1063 | "line": 23
1064 | },
1065 | "1": {
1066 | "loc": {
1067 | "start": {
1068 | "line": 23,
1069 | "column": 43
1070 | },
1071 | "end": {
1072 | "line": 23,
1073 | "column": 94
1074 | }
1075 | },
1076 | "type": "binary-expr",
1077 | "locations": [
1078 | {
1079 | "start": {
1080 | "line": 23,
1081 | "column": 43
1082 | },
1083 | "end": {
1084 | "line": 23,
1085 | "column": 78
1086 | }
1087 | },
1088 | {
1089 | "start": {
1090 | "line": 23,
1091 | "column": 82
1092 | },
1093 | "end": {
1094 | "line": 23,
1095 | "column": 94
1096 | }
1097 | }
1098 | ],
1099 | "line": 23
1100 | },
1101 | "2": {
1102 | "loc": {
1103 | "start": {
1104 | "line": 27,
1105 | "column": 30
1106 | },
1107 | "end": {
1108 | "line": 27,
1109 | "column": 124
1110 | }
1111 | },
1112 | "type": "cond-expr",
1113 | "locations": [
1114 | {
1115 | "start": {
1116 | "line": 27,
1117 | "column": 113
1118 | },
1119 | "end": {
1120 | "line": 27,
1121 | "column": 115
1122 | }
1123 | },
1124 | {
1125 | "start": {
1126 | "line": 27,
1127 | "column": 118
1128 | },
1129 | "end": {
1130 | "line": 27,
1131 | "column": 124
1132 | }
1133 | }
1134 | ],
1135 | "line": 27
1136 | },
1137 | "3": {
1138 | "loc": {
1139 | "start": {
1140 | "line": 27,
1141 | "column": 43
1142 | },
1143 | "end": {
1144 | "line": 27,
1145 | "column": 94
1146 | }
1147 | },
1148 | "type": "binary-expr",
1149 | "locations": [
1150 | {
1151 | "start": {
1152 | "line": 27,
1153 | "column": 43
1154 | },
1155 | "end": {
1156 | "line": 27,
1157 | "column": 78
1158 | }
1159 | },
1160 | {
1161 | "start": {
1162 | "line": 27,
1163 | "column": 82
1164 | },
1165 | "end": {
1166 | "line": 27,
1167 | "column": 94
1168 | }
1169 | }
1170 | ],
1171 | "line": 27
1172 | },
1173 | "4": {
1174 | "loc": {
1175 | "start": {
1176 | "line": 32,
1177 | "column": 18
1178 | },
1179 | "end": {
1180 | "line": 32,
1181 | "column": 189
1182 | }
1183 | },
1184 | "type": "cond-expr",
1185 | "locations": [
1186 | {
1187 | "start": {
1188 | "line": 32,
1189 | "column": 107
1190 | },
1191 | "end": {
1192 | "line": 32,
1193 | "column": 183
1194 | }
1195 | },
1196 | {
1197 | "start": {
1198 | "line": 32,
1199 | "column": 187
1200 | },
1201 | "end": {
1202 | "line": 32,
1203 | "column": 189
1204 | }
1205 | }
1206 | ],
1207 | "line": 32
1208 | },
1209 | "5": {
1210 | "loc": {
1211 | "start": {
1212 | "line": 32,
1213 | "column": 19
1214 | },
1215 | "end": {
1216 | "line": 32,
1217 | "column": 95
1218 | }
1219 | },
1220 | "type": "binary-expr",
1221 | "locations": [
1222 | {
1223 | "start": {
1224 | "line": 32,
1225 | "column": 19
1226 | },
1227 | "end": {
1228 | "line": 32,
1229 | "column": 59
1230 | }
1231 | },
1232 | {
1233 | "start": {
1234 | "line": 32,
1235 | "column": 63
1236 | },
1237 | "end": {
1238 | "line": 32,
1239 | "column": 95
1240 | }
1241 | }
1242 | ],
1243 | "line": 32
1244 | },
1245 | "6": {
1246 | "loc": {
1247 | "start": {
1248 | "line": 32,
1249 | "column": 107
1250 | },
1251 | "end": {
1252 | "line": 32,
1253 | "column": 183
1254 | }
1255 | },
1256 | "type": "binary-expr",
1257 | "locations": [
1258 | {
1259 | "start": {
1260 | "line": 32,
1261 | "column": 107
1262 | },
1263 | "end": {
1264 | "line": 32,
1265 | "column": 147
1266 | }
1267 | },
1268 | {
1269 | "start": {
1270 | "line": 32,
1271 | "column": 151
1272 | },
1273 | "end": {
1274 | "line": 32,
1275 | "column": 183
1276 | }
1277 | }
1278 | ],
1279 | "line": 32
1280 | },
1281 | "7": {
1282 | "loc": {
1283 | "start": {
1284 | "line": 33,
1285 | "column": 17
1286 | },
1287 | "end": {
1288 | "line": 33,
1289 | "column": 184
1290 | }
1291 | },
1292 | "type": "cond-expr",
1293 | "locations": [
1294 | {
1295 | "start": {
1296 | "line": 33,
1297 | "column": 104
1298 | },
1299 | "end": {
1300 | "line": 33,
1301 | "column": 178
1302 | }
1303 | },
1304 | {
1305 | "start": {
1306 | "line": 33,
1307 | "column": 182
1308 | },
1309 | "end": {
1310 | "line": 33,
1311 | "column": 184
1312 | }
1313 | }
1314 | ],
1315 | "line": 33
1316 | },
1317 | "8": {
1318 | "loc": {
1319 | "start": {
1320 | "line": 33,
1321 | "column": 18
1322 | },
1323 | "end": {
1324 | "line": 33,
1325 | "column": 92
1326 | }
1327 | },
1328 | "type": "binary-expr",
1329 | "locations": [
1330 | {
1331 | "start": {
1332 | "line": 33,
1333 | "column": 18
1334 | },
1335 | "end": {
1336 | "line": 33,
1337 | "column": 57
1338 | }
1339 | },
1340 | {
1341 | "start": {
1342 | "line": 33,
1343 | "column": 61
1344 | },
1345 | "end": {
1346 | "line": 33,
1347 | "column": 92
1348 | }
1349 | }
1350 | ],
1351 | "line": 33
1352 | },
1353 | "9": {
1354 | "loc": {
1355 | "start": {
1356 | "line": 33,
1357 | "column": 104
1358 | },
1359 | "end": {
1360 | "line": 33,
1361 | "column": 178
1362 | }
1363 | },
1364 | "type": "binary-expr",
1365 | "locations": [
1366 | {
1367 | "start": {
1368 | "line": 33,
1369 | "column": 104
1370 | },
1371 | "end": {
1372 | "line": 33,
1373 | "column": 143
1374 | }
1375 | },
1376 | {
1377 | "start": {
1378 | "line": 33,
1379 | "column": 147
1380 | },
1381 | "end": {
1382 | "line": 33,
1383 | "column": 178
1384 | }
1385 | }
1386 | ],
1387 | "line": 33
1388 | }
1389 | },
1390 | "s": {
1391 | "0": 2,
1392 | "1": 2,
1393 | "2": 2,
1394 | "3": 0,
1395 | "4": 0,
1396 | "5": 2,
1397 | "6": 2,
1398 | "7": 2,
1399 | "8": 2
1400 | },
1401 | "f": {
1402 | "0": 2,
1403 | "1": 2,
1404 | "2": 0,
1405 | "3": 0
1406 | },
1407 | "b": {
1408 | "0": [
1409 | 2,
1410 | 0
1411 | ],
1412 | "1": [
1413 | 2,
1414 | 2
1415 | ],
1416 | "2": [
1417 | 2,
1418 | 0
1419 | ],
1420 | "3": [
1421 | 2,
1422 | 2
1423 | ],
1424 | "4": [
1425 | 2,
1426 | 0
1427 | ],
1428 | "5": [
1429 | 2,
1430 | 0
1431 | ],
1432 | "6": [
1433 | 2,
1434 | 0
1435 | ],
1436 | "7": [
1437 | 0,
1438 | 2
1439 | ],
1440 | "8": [
1441 | 2,
1442 | 2
1443 | ],
1444 | "9": [
1445 | 0,
1446 | 0
1447 | ]
1448 | },
1449 | "inputSourceMap": {
1450 | "version": 3,
1451 | "file": "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts",
1452 | "sourceRoot": "",
1453 | "sources": [
1454 | "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.ts"
1455 | ],
1456 | "names": [],
1457 | "mappings": ";;AAAA,OAAO,EAAC,SAAS,EAAU,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO9E,IAAa,aAAa,GAA1B,MAAa,aAAa;IAOxB;QAHU,cAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;QAClD,kBAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEjD,CAAC;IAEhB,QAAQ,KAAI,CAAC;IAEb,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CAEF,CAAA;AAhBU;IAAR,KAAK,EAAE;;2CAAW;AACT;IAAT,MAAM,EAAE;kDAAY,YAAY,oBAAZ,YAAY;gDAA2B;AAClD;IAAT,MAAM,EAAE;kDAAgB,YAAY,oBAAZ,YAAY;oDAA2B;AALrD,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACrL,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClL,CAAC;;GACW,aAAa,CAmBzB;SAnBY,aAAa",
1458 | "sourcesContent": [
1459 | "import {Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'task-item',\r\n template: (require('./task.component.html').default || require('./task.component.html')).length ? (require('./task.component.html').default || require('./task.component.html')) : '',\r\n styles: [(require('./task.component.css').default || require('./task.component.css')).length ? (require('./task.component.css').default || require('./task.component.css')) : '']\r\n})\r\nexport class TaskComponent implements OnInit {\r\n\r\n title: string;\r\n @Input() task: any;\r\n @Output() onPinTask: EventEmitter = new EventEmitter();\r\n @Output() onArchiveTask: EventEmitter = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n onPin(id) {\r\n this.onPinTask.emit(id);\r\n }\r\n\r\n onArchive(id) {\r\n this.onArchiveTask.emit(id);\r\n }\r\n\r\n}\r\n\r\nexport interface Task {\r\n id: string;\r\n title: string;\r\n state: string;\r\n}"
1460 | ]
1461 | },
1462 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
1463 | "hash": "12fccf5652b72769882a72f66636a385fe23beee"
1464 | },
1465 | "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts": {
1466 | "path": "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts",
1467 | "statementMap": {
1468 | "0": {
1469 | "start": {
1470 | "line": 5,
1471 | "column": 20
1472 | },
1473 | "end": {
1474 | "line": 10,
1475 | "column": 1
1476 | }
1477 | },
1478 | "1": {
1479 | "start": {
1480 | "line": 11,
1481 | "column": 23
1482 | },
1483 | "end": {
1484 | "line": 14,
1485 | "column": 1
1486 | }
1487 | },
1488 | "2": {
1489 | "start": {
1490 | "line": 15,
1491 | "column": 0
1492 | },
1493 | "end": {
1494 | "line": 63,
1495 | "column": 3
1496 | }
1497 | },
1498 | "3": {
1499 | "start": {
1500 | "line": 21,
1501 | "column": 4
1502 | },
1503 | "end": {
1504 | "line": 28,
1505 | "column": 6
1506 | }
1507 | },
1508 | "4": {
1509 | "start": {
1510 | "line": 31,
1511 | "column": 4
1512 | },
1513 | "end": {
1514 | "line": 38,
1515 | "column": 6
1516 | }
1517 | },
1518 | "5": {
1519 | "start": {
1520 | "line": 41,
1521 | "column": 4
1522 | },
1523 | "end": {
1524 | "line": 48,
1525 | "column": 6
1526 | }
1527 | },
1528 | "6": {
1529 | "start": {
1530 | "line": 51,
1531 | "column": 4
1532 | },
1533 | "end": {
1534 | "line": 62,
1535 | "column": 6
1536 | }
1537 | }
1538 | },
1539 | "fnMap": {
1540 | "0": {
1541 | "name": "(anonymous_0)",
1542 | "decl": {
1543 | "start": {
1544 | "line": 20,
1545 | "column": 20
1546 | },
1547 | "end": {
1548 | "line": 20,
1549 | "column": 21
1550 | }
1551 | },
1552 | "loc": {
1553 | "start": {
1554 | "line": 20,
1555 | "column": 26
1556 | },
1557 | "end": {
1558 | "line": 29,
1559 | "column": 1
1560 | }
1561 | },
1562 | "line": 20
1563 | },
1564 | "1": {
1565 | "name": "(anonymous_1)",
1566 | "decl": {
1567 | "start": {
1568 | "line": 30,
1569 | "column": 19
1570 | },
1571 | "end": {
1572 | "line": 30,
1573 | "column": 20
1574 | }
1575 | },
1576 | "loc": {
1577 | "start": {
1578 | "line": 30,
1579 | "column": 25
1580 | },
1581 | "end": {
1582 | "line": 39,
1583 | "column": 1
1584 | }
1585 | },
1586 | "line": 30
1587 | },
1588 | "2": {
1589 | "name": "(anonymous_2)",
1590 | "decl": {
1591 | "start": {
1592 | "line": 40,
1593 | "column": 21
1594 | },
1595 | "end": {
1596 | "line": 40,
1597 | "column": 22
1598 | }
1599 | },
1600 | "loc": {
1601 | "start": {
1602 | "line": 40,
1603 | "column": 27
1604 | },
1605 | "end": {
1606 | "line": 49,
1607 | "column": 1
1608 | }
1609 | },
1610 | "line": 40
1611 | },
1612 | "3": {
1613 | "name": "(anonymous_3)",
1614 | "decl": {
1615 | "start": {
1616 | "line": 50,
1617 | "column": 20
1618 | },
1619 | "end": {
1620 | "line": 50,
1621 | "column": 21
1622 | }
1623 | },
1624 | "loc": {
1625 | "start": {
1626 | "line": 50,
1627 | "column": 26
1628 | },
1629 | "end": {
1630 | "line": 63,
1631 | "column": 1
1632 | }
1633 | },
1634 | "line": 50
1635 | }
1636 | },
1637 | "branchMap": {},
1638 | "s": {
1639 | "0": 2,
1640 | "1": 2,
1641 | "2": 2,
1642 | "3": 2,
1643 | "4": 0,
1644 | "5": 0,
1645 | "6": 0
1646 | },
1647 | "f": {
1648 | "0": 2,
1649 | "1": 0,
1650 | "2": 0,
1651 | "3": 0
1652 | },
1653 | "b": {},
1654 | "inputSourceMap": {
1655 | "version": 3,
1656 | "file": "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts",
1657 | "sourceRoot": "",
1658 | "sources": [
1659 | "c:\\Users\\walchshofer\\git\\coverage-workspace\\libs\\ui-lib\\src\\lib\\task\\task.component.stories.ts"
1660 | ],
1661 | "names": [],
1662 | "mappings": "AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAS,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,GAAG;IACP,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;CACvC,CAAC;AAEF,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;KACtB,YAAY,CAAC,SAAS,CAAC;KACvB,YAAY,CACX,cAAc,CAAC;IACb,YAAY,EAAE,CAAC,aAAa,CAAC;CAC9B,CAAC,CACH;KACA,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI;YACJ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE;IAClB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,kCAAO,IAAI,KAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAE;YACpD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;IACpB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,kCAAO,IAAI,KAAE,KAAK,EAAE,eAAe,GAAE;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,OAAO;QACL,QAAQ,EAAE,gHAAgH;QAC1H,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxB,KAAK,EAAE,eAAe;aAAE;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC",
1663 | "sourcesContent": [
1664 | "import { storiesOf, moduleMetadata } from '@storybook/angular';\r\nimport { action } from '@storybook/addon-actions';\r\nimport { array, boolean, withKnobs, number, text } from '@storybook/addon-knobs';\r\nimport { TaskComponent } from './task.component';\r\n\r\nexport const task = {\r\n id: '1',\r\n title: 'Test Task',\r\n state: 'TASK_INBOX',\r\n updatedAt: new Date(2018, 0, 1, 9, 0),\r\n};\r\n\r\nexport const actions = {\r\n onPinTask: action('onPinTask'),\r\n onArchiveTask: action('onArchiveTask'),\r\n};\r\n\r\nstoriesOf('Task', module)\r\n .addDecorator(withKnobs)\r\n .addDecorator(\r\n moduleMetadata({\r\n declarations: [TaskComponent],\r\n })\r\n )\r\n .add('default', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task,\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('pinned', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { ...task, state: boolean('disabled', false) },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('archived', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { ...task, state: 'TASK_ARCHIVED' },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n })\r\n .add('knobbed', () => {\r\n return {\r\n template: ` `,\r\n props: {\r\n task: { \r\n id: number('id', 0),\r\n title: text('title', ''),\r\n state: 'TASK_ARCHIVED' },\r\n onPinTask: actions.onPinTask,\r\n onArchiveTask: actions.onArchiveTask,\r\n },\r\n };\r\n });\r\n"
1665 | ]
1666 | },
1667 | "_coverageSchema": "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c",
1668 | "hash": "a3749066c1f59171a32b19ddfb664c38cfc0e9ea"
1669 | }
1670 | }
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "fileServerFolder": ".",
3 | "fixturesFolder": "./src/fixtures",
4 | "integrationFolder": "./src/integration",
5 | "modifyObstructiveCode": false,
6 | "pluginsFile": "./src/plugins/index",
7 | "supportFile": "./src/support/index.ts",
8 | "video": true,
9 | "videosFolder": "../../dist/cypress/apps/ui-lib-e2e/videos",
10 | "screenshotsFolder": "../../dist/cypress/apps/ui-lib-e2e/screenshots",
11 | "chromeWebSecurity": false,
12 | "baseUrl": "http://localhost:4400"
13 | }
14 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/src/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io"
4 | }
5 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/src/integration/task/task.component.spec.ts:
--------------------------------------------------------------------------------
1 | describe('ui-lib', () => {
2 | beforeEach(() => cy.visit('/iframe.html?id=task--default&knob-task'));
3 |
4 | it('should render the component', () => {
5 | cy.get('task-item').should('exist');
6 | });
7 | it('should click checkbox', () => {
8 | cy.get('task-item').get('#myCB').click();
9 | })
10 |
11 | context('archived', () => {
12 | beforeEach(() => cy.visit('/iframe.html?id=task--archived&knob-task'));
13 | it('should render the component', () => {
14 | cy.get('task-item').should('exist');
15 | })
16 | it('should check textbox content', () => {
17 | const ip = cy.get('task-item').get('.title').find('input');
18 | expect(ip).not.to.be.empty;
19 | })
20 | })
21 |
22 | context('knobbed', () => {
23 | beforeEach(() => cy.visit('/iframe.html?id=task--knobbed&knob-id=0&knob-title=Hello'));
24 | it('should render the component', () => {
25 | cy.get('task-item').should('exist');
26 |
27 | })
28 | it('should check textbox content', () => {
29 | var ip = cy.get('task-item').get('#myTitle');
30 | expect(ip).not.to.be.empty;
31 | ip.should('have.value', 'Hello');
32 | })
33 | it('should insert into textbox', () => {
34 | var ip = cy.get('#myTitle'); //works fine as well
35 | ip.type('Goodbye');
36 | expect(ip).not.to.be.empty;
37 | ip.should('have.value', 'HelloGoodbye');
38 | })
39 | it('should uncheck checkbox', () => {
40 | var cb = cy.get('task-item').get('#myCB');
41 | cb.should('be.checked');
42 | cb.click();
43 | expect(cb).not.to.be.checked;
44 | })
45 |
46 | })
47 |
48 | });
49 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/src/plugins/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example plugins/index.js can be used to load plugins
3 | //
4 | // You can change the location of this file or turn off loading
5 | // the plugins file with the 'pluginsFile' configuration option.
6 | //
7 | // You can read more here:
8 | // https://on.cypress.io/plugins-guide
9 | // ***********************************************************
10 |
11 | // This function is called when a project is opened or re-opened (e.g. due to
12 | // the project's config changing)
13 |
14 | const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor');
15 |
16 | module.exports = (on, config) => {
17 | // `on` is used to hook into various events Cypress emits
18 | // `config` is the resolved Cypress config
19 |
20 | // Preprocess Typescript file using Nx helper
21 | on('file:preprocessor', preprocessTypescript(config));
22 |
23 | on('task', require('@cypress/code-coverage/task'))
24 | };
25 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/src/support/commands.ts:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | // eslint-disable-next-line @typescript-eslint/no-namespace
11 | declare namespace Cypress {
12 | interface Chainable {
13 | login(email: string, password: string): void;
14 | }
15 | }
16 | //
17 | // -- This is a parent command --
18 | Cypress.Commands.add('login', (email, password) => {
19 | console.log('Custom command example: Login', email, password);
20 | });
21 | //
22 | // -- This is a child command --
23 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
24 | //
25 | //
26 | // -- This is a dual command --
27 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
28 | //
29 | //
30 | // -- This will overwrite an existing command --
31 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
32 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/src/support/index.ts:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands';
18 | import '@cypress/code-coverage/support'
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/tsconfig.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "sourceMap": false,
5 | "outDir": "../../dist/out-tsc"
6 | },
7 | "include": ["src/**/*.ts", "src/**/*.js"]
8 | }
9 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "types": ["cypress", "node"]
5 | },
6 | "include": ["**/*.ts", "**/*.js"]
7 | }
8 |
--------------------------------------------------------------------------------
/apps/ui-lib-e2e/tslint.json:
--------------------------------------------------------------------------------
1 | {"extends":"../../tslint.json","rules":{}}
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)'],
3 | transform: {
4 | '^.+\\.(ts|js|html)$': 'ts-jest'
5 | },
6 | resolver: '@nrwl/jest/plugins/resolver',
7 | moduleFileExtensions: ['ts', 'js', 'html'],
8 | coverageReporters: ['html'],
9 | passWithNoTests: true
10 | };
11 |
--------------------------------------------------------------------------------
/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration file, see link for more information
2 | // https://karma-runner.github.io/1.0/config/configuration-file.html
3 |
4 | const { join } = require('path');
5 | const { constants } = require('karma');
6 |
7 | module.exports = () => {
8 | return {
9 | basePath: '',
10 | frameworks: ['jasmine', '@angular-devkit/build-angular'],
11 | plugins: [
12 | require('karma-jasmine'),
13 | require('karma-chrome-launcher'),
14 | require('karma-jasmine-html-reporter'),
15 | require('karma-coverage-istanbul-reporter'),
16 | require('@angular-devkit/build-angular/plugins/karma')
17 | ],
18 | client: {
19 | clearContext: false // leave Jasmine Spec Runner output visible in browser
20 | },
21 | coverageIstanbulReporter: {
22 | dir: join(__dirname, '../../coverage'),
23 | reports: ['html', 'lcovonly'],
24 | fixWebpackSourcePaths: true
25 | },
26 | reporters: ['progress', 'kjhtml'],
27 | port: 9876,
28 | colors: true,
29 | logLevel: constants.LOG_INFO,
30 | autoWatch: true,
31 | browsers: ['Chrome'],
32 | singleRun: true
33 | };
34 | };
35 |
--------------------------------------------------------------------------------
/libs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flaxline/angular-nx-cypress-coverage-example/5b8c42860a6250bab446c897efe672a183e55423/libs/.gitkeep
--------------------------------------------------------------------------------
/libs/ui-lib/.storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '../../../.storybook/addons';
2 |
--------------------------------------------------------------------------------
/libs/ui-lib/.storybook/config.js:
--------------------------------------------------------------------------------
1 | import { configure, addDecorator } from '@storybook/angular';
2 | import { withKnobs } from '@storybook/addon-knobs';
3 |
4 | addDecorator(withKnobs);
5 | configure(require.context('../src/lib', true, /\.stories\.tsx?$/), module);
6 |
--------------------------------------------------------------------------------
/libs/ui-lib/.storybook/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "emitDecoratorMetadata": true
5 | },
6 | "exclude": ["../src/test.ts", "../**/*.spec.ts"],
7 | "include": ["../src/**/*"]
8 | }
9 |
--------------------------------------------------------------------------------
/libs/ui-lib/.storybook/webpack.config.js:
--------------------------------------------------------------------------------
1 | const rootWebpackConfig = require('../../../.storybook/webpack.config');
2 | // Export a function. Accept the base config as the only param.
3 | module.exports = async ({ config, mode }) => {
4 | config = await rootWebpackConfig({ config, mode });
5 | config.module.rules.push({
6 | test: /\.(js|ts)$/,
7 | loader: 'istanbul-instrumenter-loader',
8 | options: { esModules: true },
9 | enforce: 'post',
10 | include: require('path').join(__dirname, '..', 'src')
11 | });
12 | // Return the altered config
13 | return config;
14 | };
15 |
--------------------------------------------------------------------------------
/libs/ui-lib/README.md:
--------------------------------------------------------------------------------
1 | # ui-lib
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test ui-lib` to execute the unit tests.
8 |
--------------------------------------------------------------------------------
/libs/ui-lib/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | name: 'ui-lib',
3 | preset: '../../jest.config.js',
4 | coverageDirectory: '../../coverage/libs/ui-lib',
5 | snapshotSerializers: [
6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js',
7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js',
8 | 'jest-preset-angular/build/HTMLCommentSerializer.js'
9 | ]
10 | };
11 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/ui-lib.module';
2 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/task/task.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flaxline/angular-nx-cypress-coverage-example/5b8c42860a6250bab446c897efe672a183e55423/libs/ui-lib/src/lib/task/task.component.css
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/task/task.component.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/task/task.component.spec.ts:
--------------------------------------------------------------------------------
1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { TaskComponent } from './task.component';
4 |
5 | describe('TaskComponent', () => {
6 | let component: TaskComponent;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async(() => {
10 | TestBed.configureTestingModule({
11 | declarations: [ TaskComponent ]
12 | })
13 | .compileComponents();
14 | }));
15 |
16 | beforeEach(() => {
17 | fixture = TestBed.createComponent(TaskComponent);
18 | component = fixture.componentInstance;
19 | fixture.detectChanges();
20 | });
21 |
22 | it('should create', () => {
23 | expect(component).toBeTruthy();
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/task/task.component.stories.ts:
--------------------------------------------------------------------------------
1 | import { storiesOf, moduleMetadata } from '@storybook/angular';
2 | import { action } from '@storybook/addon-actions';
3 | import { array, boolean, withKnobs, number, text } from '@storybook/addon-knobs';
4 | import { TaskComponent } from './task.component';
5 |
6 | export const task = {
7 | id: '1',
8 | title: 'Test Task',
9 | state: 'TASK_INBOX',
10 | updatedAt: new Date(2018, 0, 1, 9, 0),
11 | };
12 |
13 | export const actions = {
14 | onPinTask: action('onPinTask'),
15 | onArchiveTask: action('onArchiveTask'),
16 | };
17 |
18 | storiesOf('Task', module)
19 | .addDecorator(withKnobs)
20 | .addDecorator(
21 | moduleMetadata({
22 | declarations: [TaskComponent],
23 | })
24 | )
25 | .add('default', () => {
26 | return {
27 | template: ` `,
28 | props: {
29 | task,
30 | onPinTask: actions.onPinTask,
31 | onArchiveTask: actions.onArchiveTask,
32 | },
33 | };
34 | })
35 | .add('pinned', () => {
36 | return {
37 | template: ` `,
38 | props: {
39 | task: { ...task, state: boolean('disabled', false) },
40 | onPinTask: actions.onPinTask,
41 | onArchiveTask: actions.onArchiveTask,
42 | },
43 | };
44 | })
45 | .add('archived', () => {
46 | return {
47 | template: ` `,
48 | props: {
49 | task: { ...task, state: 'TASK_ARCHIVED' },
50 | onPinTask: actions.onPinTask,
51 | onArchiveTask: actions.onArchiveTask,
52 | },
53 | };
54 | })
55 | .add('knobbed', () => {
56 | return {
57 | template: ` `,
58 | props: {
59 | task: {
60 | id: number('id', 0),
61 | title: text('title', ''),
62 | state: 'TASK_ARCHIVED' },
63 | onPinTask: actions.onPinTask,
64 | onArchiveTask: actions.onArchiveTask,
65 | },
66 | };
67 | });
68 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/task/task.component.ts:
--------------------------------------------------------------------------------
1 | import {Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'task-item',
5 | templateUrl: './task.component.html',
6 | styleUrls: ['./task.component.css']
7 | })
8 | export class TaskComponent implements OnInit {
9 |
10 | title: string;
11 | @Input() task: any;
12 | @Output() onPinTask: EventEmitter = new EventEmitter();
13 | @Output() onArchiveTask: EventEmitter = new EventEmitter();
14 |
15 | constructor() {}
16 |
17 | ngOnInit() {}
18 |
19 | onPin(id) {
20 | this.onPinTask.emit(id);
21 | }
22 |
23 | onArchive(id) {
24 | this.onArchiveTask.emit(id);
25 | }
26 |
27 | }
28 |
29 | export interface Task {
30 | id: string;
31 | title: string;
32 | state: string;
33 | }
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/ui-lib.module.spec.ts:
--------------------------------------------------------------------------------
1 | import { async, TestBed } from '@angular/core/testing';
2 | import { UiLibModule } from './ui-lib.module';
3 |
4 | describe('UiLibModule', () => {
5 | beforeEach(async(() => {
6 | TestBed.configureTestingModule({
7 | imports: [UiLibModule]
8 | }).compileComponents();
9 | }));
10 |
11 | it('should create', () => {
12 | expect(UiLibModule).toBeDefined();
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/lib/ui-lib.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { CommonModule } from '@angular/common';
3 | import { TaskComponent } from './task/task.component';
4 |
5 | @NgModule({
6 | imports: [CommonModule],
7 | declarations: [TaskComponent],
8 | exports: [TaskComponent]
9 | })
10 | export class UiLibModule {}
11 |
--------------------------------------------------------------------------------
/libs/ui-lib/src/test-setup.ts:
--------------------------------------------------------------------------------
1 | import 'jest-preset-angular';
2 |
--------------------------------------------------------------------------------
/libs/ui-lib/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "types": ["node", "jest"]
5 | },
6 | "include": ["**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/libs/ui-lib/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../dist/out-tsc",
5 | "target": "es2015",
6 | "declaration": true,
7 | "inlineSources": true,
8 | "types": [],
9 | "lib": [
10 | "dom",
11 | "es2018"
12 | ]
13 | },
14 | "angularCompilerOptions": {
15 | "skipTemplateCodegen": true,
16 | "strictMetadataEmit": true,
17 | "enableResourceInlining": true
18 | },
19 | "exclude": [
20 | "src/test-setup.ts",
21 | "**/*.spec.ts",
22 | "**/*.stories.ts",
23 | "**/*.stories.js"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/libs/ui-lib/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.lib.json",
3 | "angularCompilerOptions": {
4 | "enableIvy": false
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/libs/ui-lib/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "files": ["src/test-setup.ts"],
9 | "include": ["**/*.spec.ts", "**/*.d.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/ui-lib/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tslint.json",
3 | "rules": {
4 | "directive-selector": [true, "attribute", "coverageWorkspace", "camelCase"],
5 | "component-selector": [true, "element", "coverage-workspace", "kebab-case"]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/nx.json:
--------------------------------------------------------------------------------
1 | {
2 | "npmScope": "coverage-workspace",
3 | "implicitDependencies": {
4 | "angular.json": "*",
5 | "package.json": {
6 | "dependencies": "*",
7 | "devDependencies": "*"
8 | },
9 | "tsconfig.json": "*",
10 | "tslint.json": "*",
11 | "nx.json": "*"
12 | },
13 | "projects": {
14 | "cov-app": {
15 | "tags": []
16 | },
17 | "cov-app-e2e": {
18 | "tags": [],
19 | "implicitDependencies": [
20 | "cov-app"
21 | ]
22 | },
23 | "ui-lib": {
24 | "tags": []
25 | },
26 | "ui-lib-e2e": {
27 | "tags": [],
28 | "implicitDependencies": [
29 | "ui-lib"
30 | ]
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "coverage-workspace",
3 | "version": "0.0.0",
4 | "license": "MIT",
5 | "scripts": {
6 | "ng": "ng",
7 | "nx": "nx",
8 | "start": "ng serve",
9 | "build": "ng build",
10 | "test": "ng test",
11 | "lint": "nx workspace-lint && ng lint",
12 | "e2e": "ng e2e",
13 | "affected:apps": "nx affected:apps",
14 | "affected:libs": "nx affected:libs",
15 | "affected:build": "nx affected:build",
16 | "affected:e2e": "nx affected:e2e",
17 | "affected:test": "nx affected:test",
18 | "affected:lint": "nx affected:lint",
19 | "affected:dep-graph": "nx affected:dep-graph",
20 | "affected": "nx affected",
21 | "format": "nx format:write",
22 | "format:write": "nx format:write",
23 | "format:check": "nx format:check",
24 | "update": "ng update @nrwl/workspace",
25 | "workspace-schematic": "nx workspace-schematic",
26 | "dep-graph": "nx dep-graph",
27 | "help": "nx help",
28 | "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points",
29 | "app-e2e": "npx nx run cov-app-e2e:e2e",
30 | "lib-e2e": "npx nx run ui-lib-e2e:e2e"
31 | },
32 | "private": true,
33 | "dependencies": {
34 | "@angular/animations": "9.0.0",
35 | "@angular/common": "9.0.0",
36 | "@angular/compiler": "9.0.0",
37 | "@angular/core": "9.0.0",
38 | "@angular/forms": "9.0.0",
39 | "@angular/platform-browser": "9.0.0",
40 | "@angular/platform-browser-dynamic": "9.0.0",
41 | "@angular/router": "9.0.0",
42 | "@nrwl/angular": "^9.0.0",
43 | "core-js": "^2.5.4",
44 | "rxjs": "~6.5.0",
45 | "zone.js": "^0.10.2"
46 | },
47 | "devDependencies": {
48 | "@angular-devkit/build-angular": "0.900.1",
49 | "@angular/cli": "9.0.1",
50 | "@angular/compiler-cli": "9.0.0",
51 | "@angular/language-service": "9.0.0",
52 | "@cypress/code-coverage": "^1.12.2",
53 | "@istanbuljs/nyc-config-typescript": "^1.0.1",
54 | "@nrwl/cypress": "9.0.0",
55 | "@nrwl/jest": "9.0.0",
56 | "@nrwl/workspace": "9.0.0",
57 | "@types/jasmine": "~2.8.8",
58 | "@types/jest": "24.0.9",
59 | "@types/node": "~8.9.4",
60 | "codelyzer": "~5.0.1",
61 | "cypress": "^3.8.2",
62 | "dotenv": "6.2.0",
63 | "eslint": "6.1.0",
64 | "istanbul-instrumenter-loader": "^3.0.1",
65 | "istanbul-lib-coverage": "^3.0.0",
66 | "jasmine-core": "~2.99.1",
67 | "jasmine-spec-reporter": "~4.2.1",
68 | "jest": "24.1.0",
69 | "jest-preset-angular": "8.0.0",
70 | "karma": "~4.0.0",
71 | "karma-chrome-launcher": "~2.2.0",
72 | "karma-coverage-istanbul-reporter": "~2.0.1",
73 | "karma-jasmine": "~1.1.2",
74 | "karma-jasmine-html-reporter": "^0.2.2",
75 | "ngx-build-plus": "^9.0.6",
76 | "nyc": "^15.0.0",
77 | "prettier": "1.18.2",
78 | "source-map-support": "^0.5.16",
79 | "ts-jest": "24.0.0",
80 | "ts-node": "^7.0.1",
81 | "tslint": "~5.11.0",
82 | "typescript": "~3.7.4",
83 | "@nrwl/storybook": "*",
84 | "@storybook/angular": "5.3.9",
85 | "@storybook/react": "5.3.9",
86 | "@storybook/addon-actions": "^5.3.10",
87 | "@storybook/addon-knobs": "^5.3.10",
88 | "@storybook/addon-links": "^5.3.10",
89 | "@storybook/addon-notes": "^5.3.10",
90 | "@storybook/addon-storysource": "^5.3.10",
91 | "babel-loader": "8.0.6",
92 | "@babel/core": "7.8.3"
93 | },
94 | "nyc": {
95 | "extends": "@istanbuljs/nyc-config-typescript",
96 | "all": true
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/tools/schematics/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Flaxline/angular-nx-cypress-coverage-example/5b8c42860a6250bab446c897efe672a183e55423/tools/schematics/.gitkeep
--------------------------------------------------------------------------------
/tools/tsconfig.tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../dist/out-tsc/tools",
5 | "rootDir": ".",
6 | "module": "commonjs",
7 | "target": "es5",
8 | "types": ["node"]
9 | },
10 | "include": ["**/*.ts"]
11 | }
12 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "rootDir": ".",
5 | "sourceMap": true,
6 | "declaration": false,
7 | "moduleResolution": "node",
8 | "emitDecoratorMetadata": true,
9 | "experimentalDecorators": true,
10 | "importHelpers": true,
11 | "target": "es2015",
12 | "module": "esnext",
13 | "typeRoots": ["node_modules/@types"],
14 | "lib": ["es2017", "dom"],
15 | "skipLibCheck": true,
16 | "skipDefaultLibCheck": true,
17 | "baseUrl": ".",
18 | "paths": {
19 | "@coverage-workspace/ui-lib": ["libs/ui-lib/src/index.ts"]
20 | }
21 | },
22 | "exclude": ["node_modules", "tmp"]
23 | }
24 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rulesDirectory": [
3 | "node_modules/@nrwl/workspace/src/tslint",
4 | "node_modules/codelyzer"
5 | ],
6 | "rules": {
7 | "arrow-return-shorthand": true,
8 | "callable-types": true,
9 | "class-name": true,
10 | "deprecation": {
11 | "severity": "warn"
12 | },
13 | "forin": true,
14 | "import-blacklist": [true, "rxjs/Rx"],
15 | "interface-over-type-literal": true,
16 | "member-access": false,
17 | "member-ordering": [
18 | true,
19 | {
20 | "order": [
21 | "static-field",
22 | "instance-field",
23 | "static-method",
24 | "instance-method"
25 | ]
26 | }
27 | ],
28 | "no-arg": true,
29 | "no-bitwise": true,
30 | "no-console": [true, "debug", "info", "time", "timeEnd", "trace"],
31 | "no-construct": true,
32 | "no-debugger": true,
33 | "no-duplicate-super": true,
34 | "no-empty": false,
35 | "no-empty-interface": true,
36 | "no-eval": true,
37 | "no-inferrable-types": [true, "ignore-params"],
38 | "no-misused-new": true,
39 | "no-non-null-assertion": true,
40 | "no-shadowed-variable": true,
41 | "no-string-literal": false,
42 | "no-string-throw": true,
43 | "no-switch-case-fall-through": true,
44 | "no-unnecessary-initializer": true,
45 | "no-unused-expression": true,
46 | "no-var-keyword": true,
47 | "object-literal-sort-keys": false,
48 | "prefer-const": true,
49 | "radix": true,
50 | "triple-equals": [true, "allow-null-check"],
51 | "unified-signatures": true,
52 | "variable-name": false,
53 | "nx-enforce-module-boundaries": [
54 | true,
55 | {
56 | "enforceBuildableLibDependency": true,
57 | "allow": [],
58 | "depConstraints": [
59 | {
60 | "sourceTag": "*",
61 | "onlyDependOnLibsWithTags": ["*"]
62 | }
63 | ]
64 | }
65 | ],
66 | "directive-selector": [true, "attribute", "app", "camelCase"],
67 | "component-selector": [true, "element", "app", "kebab-case"],
68 | "no-conflicting-lifecycle": true,
69 | "no-host-metadata-property": true,
70 | "no-input-rename": true,
71 | "no-inputs-metadata-property": true,
72 | "no-output-native": true,
73 | "no-output-on-prefix": true,
74 | "no-output-rename": true,
75 | "no-outputs-metadata-property": true,
76 | "template-banana-in-box": true,
77 | "template-no-negated-async": true,
78 | "use-lifecycle-interface": true,
79 | "use-pipe-transform-interface": true
80 | }
81 | }
82 |
--------------------------------------------------------------------------------