├── .editorconfig
├── .github
└── workflows
│ └── indexer.yml
├── .gitignore
├── .vscode
└── settings.json
├── LICENSE
├── README.md
├── angular.json
├── docs
├── 3rdpartylicenses.txt
├── assets
│ ├── fluent.png
│ ├── icon_list.json
│ ├── logo.png
│ ├── spinner.gif
│ └── spinner.png
├── favicon.ico
├── index.html
├── main.3227a5230a3ea44f.js
├── polyfills.5668e55da899aeab.js
├── runtime.ae3565dc55f03d24.js
└── styles.2e8d3fd29247c493.css
├── indexer.py
├── package-lock.json
├── package.json
├── projects
├── fluent-ui-icons-web
│ ├── .browserslistrc
│ ├── e2e
│ │ ├── protractor.conf.js
│ │ ├── src
│ │ │ ├── app.e2e-spec.ts
│ │ │ └── app.po.ts
│ │ └── tsconfig.json
│ ├── karma.conf.js
│ ├── src
│ │ ├── app
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── app.component.spec.ts
│ │ │ ├── app.component.ts
│ │ │ ├── app.module.ts
│ │ │ └── pipes
│ │ │ │ └── icons-filter.pipe.ts
│ │ ├── assets
│ │ │ ├── .gitkeep
│ │ │ ├── fluent.png
│ │ │ ├── icon_list.json
│ │ │ ├── logo.png
│ │ │ ├── spinner.gif
│ │ │ └── spinner.png
│ │ ├── environments
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── polyfills.ts
│ │ ├── styles.scss
│ │ └── test.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ └── tslint.json
└── fluent-ui-icons
│ ├── README.md
│ ├── karma.conf.js
│ ├── ng-package.json
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ ├── lib
│ │ ├── fluent-ui-icons.component.spec.ts
│ │ ├── fluent-ui-icons.component.ts
│ │ ├── fluent-ui-icons.library.ts
│ │ ├── fluent-ui-icons.module.ts
│ │ ├── fluent-ui-icons.provider.ts
│ │ ├── fluent-ui-icons.service.spec.ts
│ │ └── fluent-ui-icons.service.ts
│ ├── public-api.ts
│ └── test.ts
│ ├── tsconfig.lib.json
│ ├── tsconfig.lib.prod.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── test
└── icon_list.md
├── tsconfig.json
└── tslint.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://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 | [*.ts]
12 | quote_type = single
13 |
14 | [*.md]
15 | max_line_length = off
16 | trim_trailing_whitespace = false
17 |
--------------------------------------------------------------------------------
/.github/workflows/indexer.yml:
--------------------------------------------------------------------------------
1 | name: fluent-ui-icons-db
2 |
3 | on:
4 | workflow_dispatch:
5 | schedule:
6 | - cron: "0 0 * * 0" # runs at 12:00AM UTC every Sunday
7 |
8 | jobs:
9 | fluent-ui-icons-indexer:
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - name: checkout repo content # checkout the repository content to github runner.
14 | uses: actions/checkout@v4
15 |
16 | - name: setup node # install node
17 | uses: actions/setup-node@v4
18 | with:
19 | node-version: '18'
20 |
21 | - name: setup python # install python
22 | uses: actions/setup-python@v5
23 | with:
24 | python-version: '3.9'
25 |
26 | - name: install dependencies # install dependencies
27 | run: npm install --force
28 |
29 | - name: update fluent ui icons dependency # install latest fluent ui dependency
30 | run: npm install -D @fluentui/svg-icons@latest --force
31 |
32 | - name: index icons # run icon indexer python script
33 | run: |
34 | python indexer.py --production
35 |
36 | - name: build website # build website
37 | run: npm run build:web
38 |
39 | - name: commit changes # commit changes (if available)
40 | uses: stefanzweifel/git-auto-commit-action@v5
41 | with:
42 | commit_message: 'chore: updated icons database'
43 | commit_user_name: Benny Bot
44 | commit_user_email: bennymegk@gmail.com
45 | commit_author: bennymeg
46 |
47 | # - name: assert workflow active # keep workflow alive (if needed)
48 | # uses: gautamkrishnar/keepalive-workflow@v1
49 | # with:
50 | # committer_username: Benny Bot
51 | # committer_email: bennymegk@gmail.com
52 |
--------------------------------------------------------------------------------
/.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 | # Only exists if Bazel was run
8 | /bazel-out
9 |
10 | # dependencies
11 | /node_modules
12 | projects/**/node_modules
13 |
14 | # profiling files
15 | chrome-profiler-events*.json
16 | speed-measure-plugin*.json
17 |
18 | # IDEs and editors
19 | /.idea
20 | .project
21 | .classpath
22 | .c9/
23 | *.launch
24 | .settings/
25 | *.sublime-workspace
26 |
27 | # IDE - VSCode
28 | .vscode/*
29 | !.vscode/settings.json
30 | !.vscode/tasks.json
31 | !.vscode/launch.json
32 | !.vscode/extensions.json
33 | .history/*
34 |
35 | # misc
36 | /.angular/cache
37 | /.sass-cache
38 | /connect.lock
39 | /coverage
40 | /libpeerconnection.log
41 | npm-debug.log
42 | yarn-error.log
43 | testem.log
44 | /typings
45 |
46 | # System Files
47 | .DS_Store
48 | Thumbs.db
49 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "git.ignoreLimitWarning": true
3 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright [yyyy] [name of copyright owner]
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
31 |
32 |
33 |
34 | ## Installation
35 |
36 | ```bash
37 | npm install ngx-fluent-ui-icons
38 | ```
39 |
40 |
41 |
42 | ## Usage
43 |
44 | 1. Import Fluent UI icon module
45 |
46 | ```ts
47 | import { NgModule } from '@angular/core';
48 |
49 | import { FluentUiIconsModule } from 'ngx-fluent-ui-icons';
50 | import { heart_24_filled, heart_24_regular } from 'ngx-fluent-ui-icons';
51 |
52 | @NgModule({
53 | imports: [
54 | FluentUiIconsModule.pick({ heart_24_filled, heart_24_regular })
55 | ]
56 | })
57 | export class AppModule { }
58 | ```
59 | > **Note:** Only the icons you pick will be bundled in the final build
60 |
61 | 2. Use it in the html template
62 |
63 | ```html
64 |
65 |
66 |
67 | ```
68 |
69 | ## Roadmap
70 |
71 | See the [open issues](https://github.com/bennymeg/ngx-fluent-ui/issues) for a list of proposed features (and known issues).
72 |
73 | ## Contributing
74 |
75 | Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
76 | * If you have suggestions for adding or removing projects, feel free to [open an issue](https://github.com/bennymeg/ngx-fluent-ui/issues/new) to discuss it, or directly create a pull request after you edit the *README.md* file with necessary changes.
77 | * Please make sure you check your spelling and grammar.
78 | * Create individual PR for each suggestion.
79 | * Please also read through the [Code Of Conduct](https://github.com/bennymeg/ngx-fluent-ui/blob/master/CODE_OF_CONDUCT.md) before posting your first idea as well.
80 |
81 | ### Creating A Pull Request
82 |
83 | 1. Fork the Project
84 | 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
85 | 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
86 | 4. Push to the Branch (`git push origin feature/AmazingFeature`)
87 | 5. Open a Pull Request
88 |
89 | ## License
90 |
91 | Distributed under the Apache 2.0 License. See [LICENSE](https://github.com/bennymeg/ngx-fluent-ui/blob/master/LICENSE.md) for more information.
92 |
93 | ## Authors
94 |
95 | * **[Benny Megidish](https://github.com/bennymeg/)**
96 |
--------------------------------------------------------------------------------
/angular.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3 | "version": 1,
4 | "newProjectRoot": "projects",
5 | "projects": {
6 | "fluent-ui-icons": {
7 | "projectType": "library",
8 | "root": "projects/fluent-ui-icons",
9 | "sourceRoot": "projects/fluent-ui-icons/src",
10 | "prefix": "lib",
11 | "architect": {
12 | "build": {
13 | "builder": "@angular-devkit/build-angular:ng-packagr",
14 | "options": {
15 | "tsConfig": "projects/fluent-ui-icons/tsconfig.lib.json",
16 | "project": "projects/fluent-ui-icons/ng-package.json"
17 | },
18 | "configurations": {
19 | "production": {
20 | "tsConfig": "projects/fluent-ui-icons/tsconfig.lib.prod.json"
21 | }
22 | }
23 | },
24 | "test": {
25 | "builder": "@angular-devkit/build-angular:karma",
26 | "options": {
27 | "main": "projects/fluent-ui-icons/src/test.ts",
28 | "tsConfig": "projects/fluent-ui-icons/tsconfig.spec.json",
29 | "karmaConfig": "projects/fluent-ui-icons/karma.conf.js"
30 | }
31 | }
32 | }
33 | },
34 | "fluent-ui-icons-web": {
35 | "projectType": "application",
36 | "schematics": {
37 | "@schematics/angular:component": {
38 | "style": "scss"
39 | }
40 | },
41 | "root": "projects/fluent-ui-icons-web",
42 | "sourceRoot": "projects/fluent-ui-icons-web/src",
43 | "prefix": "app",
44 | "architect": {
45 | "build": {
46 | "builder": "@angular-devkit/build-angular:browser",
47 | "options": {
48 | "outputPath": "dist/fluent-ui-icons-web",
49 | "index": "projects/fluent-ui-icons-web/src/index.html",
50 | "main": "projects/fluent-ui-icons-web/src/main.ts",
51 | "polyfills": "projects/fluent-ui-icons-web/src/polyfills.ts",
52 | "tsConfig": "projects/fluent-ui-icons-web/tsconfig.app.json",
53 | "assets": [
54 | "projects/fluent-ui-icons-web/src/favicon.ico",
55 | "projects/fluent-ui-icons-web/src/assets"
56 | ],
57 | "styles": [
58 | "projects/fluent-ui-icons-web/src/styles.scss"
59 | ],
60 | "scripts": [],
61 | "vendorChunk": true,
62 | "extractLicenses": false,
63 | "buildOptimizer": false,
64 | "sourceMap": true,
65 | "optimization": false,
66 | "namedChunks": true
67 | },
68 | "configurations": {
69 | "production": {
70 | "fileReplacements": [
71 | {
72 | "replace": "projects/fluent-ui-icons-web/src/environments/environment.ts",
73 | "with": "projects/fluent-ui-icons-web/src/environments/environment.prod.ts"
74 | }
75 | ],
76 | "optimization": true,
77 | "outputHashing": "all",
78 | "sourceMap": false,
79 | "namedChunks": false,
80 | "extractLicenses": true,
81 | "vendorChunk": false,
82 | "buildOptimizer": true,
83 | "budgets": [
84 | {
85 | "type": "initial",
86 | "maximumWarning": "2mb",
87 | "maximumError": "5mb"
88 | },
89 | {
90 | "type": "anyComponentStyle",
91 | "maximumWarning": "6kb",
92 | "maximumError": "10kb"
93 | }
94 | ]
95 | }
96 | },
97 | "defaultConfiguration": ""
98 | },
99 | "serve": {
100 | "builder": "@angular-devkit/build-angular:dev-server",
101 | "options": {
102 | "browserTarget": "fluent-ui-icons-web:build"
103 | },
104 | "configurations": {
105 | "production": {
106 | "browserTarget": "fluent-ui-icons-web:build:production"
107 | }
108 | }
109 | },
110 | "extract-i18n": {
111 | "builder": "@angular-devkit/build-angular:extract-i18n",
112 | "options": {
113 | "browserTarget": "fluent-ui-icons-web:build"
114 | }
115 | },
116 | "test": {
117 | "builder": "@angular-devkit/build-angular:karma",
118 | "options": {
119 | "main": "projects/fluent-ui-icons-web/src/test.ts",
120 | "polyfills": "projects/fluent-ui-icons-web/src/polyfills.ts",
121 | "tsConfig": "projects/fluent-ui-icons-web/tsconfig.spec.json",
122 | "karmaConfig": "projects/fluent-ui-icons-web/karma.conf.js",
123 | "assets": [
124 | "projects/fluent-ui-icons-web/src/favicon.ico",
125 | "projects/fluent-ui-icons-web/src/assets"
126 | ],
127 | "styles": [
128 | "projects/fluent-ui-icons-web/src/styles.scss"
129 | ],
130 | "scripts": []
131 | }
132 | },
133 | "e2e": {
134 | "builder": "@angular-devkit/build-angular:protractor",
135 | "options": {
136 | "protractorConfig": "projects/fluent-ui-icons-web/e2e/protractor.conf.js",
137 | "devServerTarget": "fluent-ui-icons-web:serve"
138 | },
139 | "configurations": {
140 | "production": {
141 | "devServerTarget": "fluent-ui-icons-web:serve:production"
142 | }
143 | }
144 | }
145 | }
146 | }
147 | },
148 | "cli": {
149 | "analytics": false
150 | }
151 | }
152 |
--------------------------------------------------------------------------------
/docs/3rdpartylicenses.txt:
--------------------------------------------------------------------------------
1 | @angular/animations
2 | MIT
3 |
4 | @angular/cdk
5 | MIT
6 | The MIT License
7 |
8 | Copyright (c) 2022 Google LLC.
9 |
10 | Permission is hereby granted, free of charge, to any person obtaining a copy
11 | of this software and associated documentation files (the "Software"), to deal
12 | in the Software without restriction, including without limitation the rights
13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 | copies of the Software, and to permit persons to whom the Software is
15 | furnished to do so, subject to the following conditions:
16 |
17 | The above copyright notice and this permission notice shall be included in
18 | all copies or substantial portions of the Software.
19 |
20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26 | THE SOFTWARE.
27 |
28 |
29 | @angular/common
30 | MIT
31 |
32 | @angular/core
33 | MIT
34 |
35 | @angular/forms
36 | MIT
37 |
38 | @angular/material
39 | MIT
40 | The MIT License
41 |
42 | Copyright (c) 2022 Google LLC.
43 |
44 | Permission is hereby granted, free of charge, to any person obtaining a copy
45 | of this software and associated documentation files (the "Software"), to deal
46 | in the Software without restriction, including without limitation the rights
47 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
48 | copies of the Software, and to permit persons to whom the Software is
49 | furnished to do so, subject to the following conditions:
50 |
51 | The above copyright notice and this permission notice shall be included in
52 | all copies or substantial portions of the Software.
53 |
54 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
55 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
56 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
57 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
58 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
59 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
60 | THE SOFTWARE.
61 |
62 |
63 | @angular/platform-browser
64 | MIT
65 |
66 | @fortawesome/angular-fontawesome
67 | MIT
68 | MIT License
69 |
70 | Copyright (c) 2018 Fonticons, Inc. and contributors
71 |
72 | Permission is hereby granted, free of charge, to any person obtaining a copy
73 | of this software and associated documentation files (the "Software"), to deal
74 | in the Software without restriction, including without limitation the rights
75 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
76 | copies of the Software, and to permit persons to whom the Software is
77 | furnished to do so, subject to the following conditions:
78 |
79 | The above copyright notice and this permission notice shall be included in
80 | all copies or substantial portions of the Software.
81 |
82 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
83 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
84 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
85 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
86 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
87 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
88 | THE SOFTWARE.
89 |
90 |
91 | @fortawesome/fontawesome-svg-core
92 | MIT
93 | Fonticons, Inc. (https://fontawesome.com)
94 |
95 | --------------------------------------------------------------------------------
96 |
97 | Font Awesome Free License
98 |
99 | Font Awesome Free is free, open source, and GPL friendly. You can use it for
100 | commercial projects, open source projects, or really almost whatever you want.
101 | Full Font Awesome Free license: https://fontawesome.com/license/free.
102 |
103 | --------------------------------------------------------------------------------
104 |
105 | # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
106 |
107 | The Font Awesome Free download is licensed under a Creative Commons
108 | Attribution 4.0 International License and applies to all icons packaged
109 | as SVG and JS file types.
110 |
111 | --------------------------------------------------------------------------------
112 |
113 | # Fonts: SIL OFL 1.1 License
114 |
115 | In the Font Awesome Free download, the SIL OFL license applies to all icons
116 | packaged as web and desktop font files.
117 |
118 | Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
119 | with Reserved Font Name: "Font Awesome".
120 |
121 | This Font Software is licensed under the SIL Open Font License, Version 1.1.
122 | This license is copied below, and is also available with a FAQ at:
123 | http://scripts.sil.org/OFL
124 |
125 | SIL OPEN FONT LICENSE
126 | Version 1.1 - 26 February 2007
127 |
128 | PREAMBLE
129 | The goals of the Open Font License (OFL) are to stimulate worldwide
130 | development of collaborative font projects, to support the font creation
131 | efforts of academic and linguistic communities, and to provide a free and
132 | open framework in which fonts may be shared and improved in partnership
133 | with others.
134 |
135 | The OFL allows the licensed fonts to be used, studied, modified and
136 | redistributed freely as long as they are not sold by themselves. The
137 | fonts, including any derivative works, can be bundled, embedded,
138 | redistributed and/or sold with any software provided that any reserved
139 | names are not used by derivative works. The fonts and derivatives,
140 | however, cannot be released under any other type of license. The
141 | requirement for fonts to remain under this license does not apply
142 | to any document created using the fonts or their derivatives.
143 |
144 | DEFINITIONS
145 | "Font Software" refers to the set of files released by the Copyright
146 | Holder(s) under this license and clearly marked as such. This may
147 | include source files, build scripts and documentation.
148 |
149 | "Reserved Font Name" refers to any names specified as such after the
150 | copyright statement(s).
151 |
152 | "Original Version" refers to the collection of Font Software components as
153 | distributed by the Copyright Holder(s).
154 |
155 | "Modified Version" refers to any derivative made by adding to, deleting,
156 | or substituting — in part or in whole — any of the components of the
157 | Original Version, by changing formats or by porting the Font Software to a
158 | new environment.
159 |
160 | "Author" refers to any designer, engineer, programmer, technical
161 | writer or other person who contributed to the Font Software.
162 |
163 | PERMISSION & CONDITIONS
164 | Permission is hereby granted, free of charge, to any person obtaining
165 | a copy of the Font Software, to use, study, copy, merge, embed, modify,
166 | redistribute, and sell modified and unmodified copies of the Font
167 | Software, subject to the following conditions:
168 |
169 | 1) Neither the Font Software nor any of its individual components,
170 | in Original or Modified Versions, may be sold by itself.
171 |
172 | 2) Original or Modified Versions of the Font Software may be bundled,
173 | redistributed and/or sold with any software, provided that each copy
174 | contains the above copyright notice and this license. These can be
175 | included either as stand-alone text files, human-readable headers or
176 | in the appropriate machine-readable metadata fields within text or
177 | binary files as long as those fields can be easily viewed by the user.
178 |
179 | 3) No Modified Version of the Font Software may use the Reserved Font
180 | Name(s) unless explicit written permission is granted by the corresponding
181 | Copyright Holder. This restriction only applies to the primary font name as
182 | presented to the users.
183 |
184 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
185 | Software shall not be used to promote, endorse or advertise any
186 | Modified Version, except to acknowledge the contribution(s) of the
187 | Copyright Holder(s) and the Author(s) or with their explicit written
188 | permission.
189 |
190 | 5) The Font Software, modified or unmodified, in part or in whole,
191 | must be distributed entirely under this license, and must not be
192 | distributed under any other license. The requirement for fonts to
193 | remain under this license does not apply to any document created
194 | using the Font Software.
195 |
196 | TERMINATION
197 | This license becomes null and void if any of the above conditions are
198 | not met.
199 |
200 | DISCLAIMER
201 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
202 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
203 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
204 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
205 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
206 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
207 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
208 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
209 | OTHER DEALINGS IN THE FONT SOFTWARE.
210 |
211 | --------------------------------------------------------------------------------
212 |
213 | # Code: MIT License (https://opensource.org/licenses/MIT)
214 |
215 | In the Font Awesome Free download, the MIT license applies to all non-font and
216 | non-icon files.
217 |
218 | Copyright 2024 Fonticons, Inc.
219 |
220 | Permission is hereby granted, free of charge, to any person obtaining a copy of
221 | this software and associated documentation files (the "Software"), to deal in the
222 | Software without restriction, including without limitation the rights to use, copy,
223 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
224 | and to permit persons to whom the Software is furnished to do so, subject to the
225 | following conditions:
226 |
227 | The above copyright notice and this permission notice shall be included in all
228 | copies or substantial portions of the Software.
229 |
230 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
231 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
232 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
233 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
234 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
235 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
236 |
237 | --------------------------------------------------------------------------------
238 |
239 | # Attribution
240 |
241 | Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
242 | Awesome Free files already contain embedded comments with sufficient
243 | attribution, so you shouldn't need to do anything additional when using these
244 | files normally.
245 |
246 | We've kept attribution comments terse, so we ask that you do not actively work
247 | to remove them from files, especially code. They're a great way for folks to
248 | learn about Font Awesome.
249 |
250 | --------------------------------------------------------------------------------
251 |
252 | # Brand Icons
253 |
254 | All brand icons are trademarks of their respective owners. The use of these
255 | trademarks does not indicate endorsement of the trademark holder by Font
256 | Awesome, nor vice versa. **Please do not use brand logos for any purpose except
257 | to represent the company, product, or service to which they refer.**
258 |
259 |
260 | @fortawesome/free-brands-svg-icons
261 | (CC-BY-4.0 AND MIT)
262 | Fonticons, Inc. (https://fontawesome.com)
263 |
264 | --------------------------------------------------------------------------------
265 |
266 | Font Awesome Free License
267 |
268 | Font Awesome Free is free, open source, and GPL friendly. You can use it for
269 | commercial projects, open source projects, or really almost whatever you want.
270 | Full Font Awesome Free license: https://fontawesome.com/license/free.
271 |
272 | --------------------------------------------------------------------------------
273 |
274 | # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
275 |
276 | The Font Awesome Free download is licensed under a Creative Commons
277 | Attribution 4.0 International License and applies to all icons packaged
278 | as SVG and JS file types.
279 |
280 | --------------------------------------------------------------------------------
281 |
282 | # Fonts: SIL OFL 1.1 License
283 |
284 | In the Font Awesome Free download, the SIL OFL license applies to all icons
285 | packaged as web and desktop font files.
286 |
287 | Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
288 | with Reserved Font Name: "Font Awesome".
289 |
290 | This Font Software is licensed under the SIL Open Font License, Version 1.1.
291 | This license is copied below, and is also available with a FAQ at:
292 | http://scripts.sil.org/OFL
293 |
294 | SIL OPEN FONT LICENSE
295 | Version 1.1 - 26 February 2007
296 |
297 | PREAMBLE
298 | The goals of the Open Font License (OFL) are to stimulate worldwide
299 | development of collaborative font projects, to support the font creation
300 | efforts of academic and linguistic communities, and to provide a free and
301 | open framework in which fonts may be shared and improved in partnership
302 | with others.
303 |
304 | The OFL allows the licensed fonts to be used, studied, modified and
305 | redistributed freely as long as they are not sold by themselves. The
306 | fonts, including any derivative works, can be bundled, embedded,
307 | redistributed and/or sold with any software provided that any reserved
308 | names are not used by derivative works. The fonts and derivatives,
309 | however, cannot be released under any other type of license. The
310 | requirement for fonts to remain under this license does not apply
311 | to any document created using the fonts or their derivatives.
312 |
313 | DEFINITIONS
314 | "Font Software" refers to the set of files released by the Copyright
315 | Holder(s) under this license and clearly marked as such. This may
316 | include source files, build scripts and documentation.
317 |
318 | "Reserved Font Name" refers to any names specified as such after the
319 | copyright statement(s).
320 |
321 | "Original Version" refers to the collection of Font Software components as
322 | distributed by the Copyright Holder(s).
323 |
324 | "Modified Version" refers to any derivative made by adding to, deleting,
325 | or substituting — in part or in whole — any of the components of the
326 | Original Version, by changing formats or by porting the Font Software to a
327 | new environment.
328 |
329 | "Author" refers to any designer, engineer, programmer, technical
330 | writer or other person who contributed to the Font Software.
331 |
332 | PERMISSION & CONDITIONS
333 | Permission is hereby granted, free of charge, to any person obtaining
334 | a copy of the Font Software, to use, study, copy, merge, embed, modify,
335 | redistribute, and sell modified and unmodified copies of the Font
336 | Software, subject to the following conditions:
337 |
338 | 1) Neither the Font Software nor any of its individual components,
339 | in Original or Modified Versions, may be sold by itself.
340 |
341 | 2) Original or Modified Versions of the Font Software may be bundled,
342 | redistributed and/or sold with any software, provided that each copy
343 | contains the above copyright notice and this license. These can be
344 | included either as stand-alone text files, human-readable headers or
345 | in the appropriate machine-readable metadata fields within text or
346 | binary files as long as those fields can be easily viewed by the user.
347 |
348 | 3) No Modified Version of the Font Software may use the Reserved Font
349 | Name(s) unless explicit written permission is granted by the corresponding
350 | Copyright Holder. This restriction only applies to the primary font name as
351 | presented to the users.
352 |
353 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
354 | Software shall not be used to promote, endorse or advertise any
355 | Modified Version, except to acknowledge the contribution(s) of the
356 | Copyright Holder(s) and the Author(s) or with their explicit written
357 | permission.
358 |
359 | 5) The Font Software, modified or unmodified, in part or in whole,
360 | must be distributed entirely under this license, and must not be
361 | distributed under any other license. The requirement for fonts to
362 | remain under this license does not apply to any document created
363 | using the Font Software.
364 |
365 | TERMINATION
366 | This license becomes null and void if any of the above conditions are
367 | not met.
368 |
369 | DISCLAIMER
370 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
371 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
372 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
373 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
374 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
375 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
376 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
377 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
378 | OTHER DEALINGS IN THE FONT SOFTWARE.
379 |
380 | --------------------------------------------------------------------------------
381 |
382 | # Code: MIT License (https://opensource.org/licenses/MIT)
383 |
384 | In the Font Awesome Free download, the MIT license applies to all non-font and
385 | non-icon files.
386 |
387 | Copyright 2024 Fonticons, Inc.
388 |
389 | Permission is hereby granted, free of charge, to any person obtaining a copy of
390 | this software and associated documentation files (the "Software"), to deal in the
391 | Software without restriction, including without limitation the rights to use, copy,
392 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
393 | and to permit persons to whom the Software is furnished to do so, subject to the
394 | following conditions:
395 |
396 | The above copyright notice and this permission notice shall be included in all
397 | copies or substantial portions of the Software.
398 |
399 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
400 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
401 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
402 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
403 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
404 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
405 |
406 | --------------------------------------------------------------------------------
407 |
408 | # Attribution
409 |
410 | Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
411 | Awesome Free files already contain embedded comments with sufficient
412 | attribution, so you shouldn't need to do anything additional when using these
413 | files normally.
414 |
415 | We've kept attribution comments terse, so we ask that you do not actively work
416 | to remove them from files, especially code. They're a great way for folks to
417 | learn about Font Awesome.
418 |
419 | --------------------------------------------------------------------------------
420 |
421 | # Brand Icons
422 |
423 | All brand icons are trademarks of their respective owners. The use of these
424 | trademarks does not indicate endorsement of the trademark holder by Font
425 | Awesome, nor vice versa. **Please do not use brand logos for any purpose except
426 | to represent the company, product, or service to which they refer.**
427 |
428 |
429 | ng-lazyload-image
430 | MIT
431 | The MIT License (MIT)
432 |
433 | Copyright (c) 2016 Oskar Karlsson
434 |
435 | Permission is hereby granted, free of charge, to any person obtaining a copy
436 | of this software and associated documentation files (the "Software"), to deal
437 | in the Software without restriction, including without limitation the rights
438 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
439 | copies of the Software, and to permit persons to whom the Software is
440 | furnished to do so, subject to the following conditions:
441 |
442 | The above copyright notice and this permission notice shall be included in all
443 | copies or substantial portions of the Software.
444 |
445 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
446 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
447 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
448 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
449 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
450 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
451 | SOFTWARE.
452 |
453 |
454 | ngx-clipboard
455 | MIT
456 |
457 | ngx-window-token
458 | MIT
459 |
460 | rxjs
461 | Apache-2.0
462 | Apache License
463 | Version 2.0, January 2004
464 | http://www.apache.org/licenses/
465 |
466 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
467 |
468 | 1. Definitions.
469 |
470 | "License" shall mean the terms and conditions for use, reproduction,
471 | and distribution as defined by Sections 1 through 9 of this document.
472 |
473 | "Licensor" shall mean the copyright owner or entity authorized by
474 | the copyright owner that is granting the License.
475 |
476 | "Legal Entity" shall mean the union of the acting entity and all
477 | other entities that control, are controlled by, or are under common
478 | control with that entity. For the purposes of this definition,
479 | "control" means (i) the power, direct or indirect, to cause the
480 | direction or management of such entity, whether by contract or
481 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
482 | outstanding shares, or (iii) beneficial ownership of such entity.
483 |
484 | "You" (or "Your") shall mean an individual or Legal Entity
485 | exercising permissions granted by this License.
486 |
487 | "Source" form shall mean the preferred form for making modifications,
488 | including but not limited to software source code, documentation
489 | source, and configuration files.
490 |
491 | "Object" form shall mean any form resulting from mechanical
492 | transformation or translation of a Source form, including but
493 | not limited to compiled object code, generated documentation,
494 | and conversions to other media types.
495 |
496 | "Work" shall mean the work of authorship, whether in Source or
497 | Object form, made available under the License, as indicated by a
498 | copyright notice that is included in or attached to the work
499 | (an example is provided in the Appendix below).
500 |
501 | "Derivative Works" shall mean any work, whether in Source or Object
502 | form, that is based on (or derived from) the Work and for which the
503 | editorial revisions, annotations, elaborations, or other modifications
504 | represent, as a whole, an original work of authorship. For the purposes
505 | of this License, Derivative Works shall not include works that remain
506 | separable from, or merely link (or bind by name) to the interfaces of,
507 | the Work and Derivative Works thereof.
508 |
509 | "Contribution" shall mean any work of authorship, including
510 | the original version of the Work and any modifications or additions
511 | to that Work or Derivative Works thereof, that is intentionally
512 | submitted to Licensor for inclusion in the Work by the copyright owner
513 | or by an individual or Legal Entity authorized to submit on behalf of
514 | the copyright owner. For the purposes of this definition, "submitted"
515 | means any form of electronic, verbal, or written communication sent
516 | to the Licensor or its representatives, including but not limited to
517 | communication on electronic mailing lists, source code control systems,
518 | and issue tracking systems that are managed by, or on behalf of, the
519 | Licensor for the purpose of discussing and improving the Work, but
520 | excluding communication that is conspicuously marked or otherwise
521 | designated in writing by the copyright owner as "Not a Contribution."
522 |
523 | "Contributor" shall mean Licensor and any individual or Legal Entity
524 | on behalf of whom a Contribution has been received by Licensor and
525 | subsequently incorporated within the Work.
526 |
527 | 2. Grant of Copyright License. Subject to the terms and conditions of
528 | this License, each Contributor hereby grants to You a perpetual,
529 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
530 | copyright license to reproduce, prepare Derivative Works of,
531 | publicly display, publicly perform, sublicense, and distribute the
532 | Work and such Derivative Works in Source or Object form.
533 |
534 | 3. Grant of Patent License. Subject to the terms and conditions of
535 | this License, each Contributor hereby grants to You a perpetual,
536 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
537 | (except as stated in this section) patent license to make, have made,
538 | use, offer to sell, sell, import, and otherwise transfer the Work,
539 | where such license applies only to those patent claims licensable
540 | by such Contributor that are necessarily infringed by their
541 | Contribution(s) alone or by combination of their Contribution(s)
542 | with the Work to which such Contribution(s) was submitted. If You
543 | institute patent litigation against any entity (including a
544 | cross-claim or counterclaim in a lawsuit) alleging that the Work
545 | or a Contribution incorporated within the Work constitutes direct
546 | or contributory patent infringement, then any patent licenses
547 | granted to You under this License for that Work shall terminate
548 | as of the date such litigation is filed.
549 |
550 | 4. Redistribution. You may reproduce and distribute copies of the
551 | Work or Derivative Works thereof in any medium, with or without
552 | modifications, and in Source or Object form, provided that You
553 | meet the following conditions:
554 |
555 | (a) You must give any other recipients of the Work or
556 | Derivative Works a copy of this License; and
557 |
558 | (b) You must cause any modified files to carry prominent notices
559 | stating that You changed the files; and
560 |
561 | (c) You must retain, in the Source form of any Derivative Works
562 | that You distribute, all copyright, patent, trademark, and
563 | attribution notices from the Source form of the Work,
564 | excluding those notices that do not pertain to any part of
565 | the Derivative Works; and
566 |
567 | (d) If the Work includes a "NOTICE" text file as part of its
568 | distribution, then any Derivative Works that You distribute must
569 | include a readable copy of the attribution notices contained
570 | within such NOTICE file, excluding those notices that do not
571 | pertain to any part of the Derivative Works, in at least one
572 | of the following places: within a NOTICE text file distributed
573 | as part of the Derivative Works; within the Source form or
574 | documentation, if provided along with the Derivative Works; or,
575 | within a display generated by the Derivative Works, if and
576 | wherever such third-party notices normally appear. The contents
577 | of the NOTICE file are for informational purposes only and
578 | do not modify the License. You may add Your own attribution
579 | notices within Derivative Works that You distribute, alongside
580 | or as an addendum to the NOTICE text from the Work, provided
581 | that such additional attribution notices cannot be construed
582 | as modifying the License.
583 |
584 | You may add Your own copyright statement to Your modifications and
585 | may provide additional or different license terms and conditions
586 | for use, reproduction, or distribution of Your modifications, or
587 | for any such Derivative Works as a whole, provided Your use,
588 | reproduction, and distribution of the Work otherwise complies with
589 | the conditions stated in this License.
590 |
591 | 5. Submission of Contributions. Unless You explicitly state otherwise,
592 | any Contribution intentionally submitted for inclusion in the Work
593 | by You to the Licensor shall be under the terms and conditions of
594 | this License, without any additional terms or conditions.
595 | Notwithstanding the above, nothing herein shall supersede or modify
596 | the terms of any separate license agreement you may have executed
597 | with Licensor regarding such Contributions.
598 |
599 | 6. Trademarks. This License does not grant permission to use the trade
600 | names, trademarks, service marks, or product names of the Licensor,
601 | except as required for reasonable and customary use in describing the
602 | origin of the Work and reproducing the content of the NOTICE file.
603 |
604 | 7. Disclaimer of Warranty. Unless required by applicable law or
605 | agreed to in writing, Licensor provides the Work (and each
606 | Contributor provides its Contributions) on an "AS IS" BASIS,
607 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
608 | implied, including, without limitation, any warranties or conditions
609 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
610 | PARTICULAR PURPOSE. You are solely responsible for determining the
611 | appropriateness of using or redistributing the Work and assume any
612 | risks associated with Your exercise of permissions under this License.
613 |
614 | 8. Limitation of Liability. In no event and under no legal theory,
615 | whether in tort (including negligence), contract, or otherwise,
616 | unless required by applicable law (such as deliberate and grossly
617 | negligent acts) or agreed to in writing, shall any Contributor be
618 | liable to You for damages, including any direct, indirect, special,
619 | incidental, or consequential damages of any character arising as a
620 | result of this License or out of the use or inability to use the
621 | Work (including but not limited to damages for loss of goodwill,
622 | work stoppage, computer failure or malfunction, or any and all
623 | other commercial damages or losses), even if such Contributor
624 | has been advised of the possibility of such damages.
625 |
626 | 9. Accepting Warranty or Additional Liability. While redistributing
627 | the Work or Derivative Works thereof, You may choose to offer,
628 | and charge a fee for, acceptance of support, warranty, indemnity,
629 | or other liability obligations and/or rights consistent with this
630 | License. However, in accepting such obligations, You may act only
631 | on Your own behalf and on Your sole responsibility, not on behalf
632 | of any other Contributor, and only if You agree to indemnify,
633 | defend, and hold each Contributor harmless for any liability
634 | incurred by, or claims asserted against, such Contributor by reason
635 | of your accepting any such warranty or additional liability.
636 |
637 | END OF TERMS AND CONDITIONS
638 |
639 | APPENDIX: How to apply the Apache License to your work.
640 |
641 | To apply the Apache License to your work, attach the following
642 | boilerplate notice, with the fields enclosed by brackets "[]"
643 | replaced with your own identifying information. (Don't include
644 | the brackets!) The text should be enclosed in the appropriate
645 | comment syntax for the file format. We also recommend that a
646 | file or class name and description of purpose be included on the
647 | same "printed page" as the copyright notice for easier
648 | identification within third-party archives.
649 |
650 | Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
651 |
652 | Licensed under the Apache License, Version 2.0 (the "License");
653 | you may not use this file except in compliance with the License.
654 | You may obtain a copy of the License at
655 |
656 | http://www.apache.org/licenses/LICENSE-2.0
657 |
658 | Unless required by applicable law or agreed to in writing, software
659 | distributed under the License is distributed on an "AS IS" BASIS,
660 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
661 | See the License for the specific language governing permissions and
662 | limitations under the License.
663 |
664 |
665 |
666 | zone.js
667 | MIT
668 | The MIT License
669 |
670 | Copyright (c) 2010-2020 Google LLC. https://angular.io/license
671 |
672 | Permission is hereby granted, free of charge, to any person obtaining a copy
673 | of this software and associated documentation files (the "Software"), to deal
674 | in the Software without restriction, including without limitation the rights
675 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
676 | copies of the Software, and to permit persons to whom the Software is
677 | furnished to do so, subject to the following conditions:
678 |
679 | The above copyright notice and this permission notice shall be included in
680 | all copies or substantial portions of the Software.
681 |
682 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
683 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
684 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
685 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
686 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
687 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
688 | THE SOFTWARE.
689 |
--------------------------------------------------------------------------------
/docs/assets/fluent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bennymeg/ngx-fluent-ui/180b44ab776f76a9c376c15fc977c0f229358949/docs/assets/fluent.png
--------------------------------------------------------------------------------
/docs/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bennymeg/ngx-fluent-ui/180b44ab776f76a9c376c15fc977c0f229358949/docs/assets/logo.png
--------------------------------------------------------------------------------
/docs/assets/spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bennymeg/ngx-fluent-ui/180b44ab776f76a9c376c15fc977c0f229358949/docs/assets/spinner.gif
--------------------------------------------------------------------------------
/docs/assets/spinner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bennymeg/ngx-fluent-ui/180b44ab776f76a9c376c15fc977c0f229358949/docs/assets/spinner.png
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bennymeg/ngx-fluent-ui/180b44ab776f76a9c376c15fc977c0f229358949/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 | Fluent UI Icons Library
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/polyfills.5668e55da899aeab.js:
--------------------------------------------------------------------------------
1 | "use strict";(self.webpackChunkfluent_ui_icons_web=self.webpackChunkfluent_ui_icons_web||[]).push([[429],{333:(we,ue,he)=>{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,y=!1){if(J.hasOwnProperty(t)){if(!y&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const y=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(y,this,arguments,o)}}run(t,o,y,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,y,P)}finally{G=G.parent}}runGuarded(t,o=null,y,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,y,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,y){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,y)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let y=this;for(;y;){if(y===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);y=y.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(y){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,y),y}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,y,P){return this.scheduleTask(new m(v,t,o,y,P,void 0))}scheduleMacroTask(t,o,y,P,K){return this.scheduleTask(new m(M,t,o,y,P,K))}scheduleEventTask(t,o,y,P,K){return this.scheduleTask(new m(R,t,o,y,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const y=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,y,P)=>I.invokeTask(t,o,y,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const y=o&&o.onHasTask;(y||t&&t._hasTaskZS)&&(this._hasTaskZS=y?o:g,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=g,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=g,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=g,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,y,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,y,P):t.apply(o,y)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,y){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,y):t.callback.apply(o,y)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,y=o[p],P=o[p]=y+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=y&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,y,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=y,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&y&&y.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;if(je&&i===pe&&"error"===e.type){const u=e;c=r&&r.call(this,u.message,u.filename,u.lineno,u.colno,u.error),!0===c&&e.preventDefault()}else c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let g=Ce[_];g||(g=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[g]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[g]=T,m.addEventListener(_,qe,!1)):m[g]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[g];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const g=i(f,_);return g.cbIdx>=0&&"function"==typeof _[g.cbIdx]?Me(g.name,_[g.cbIdx],g,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],g=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const y=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[y]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[y]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),g="."+r+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function gt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,g,T){return g&&g.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=g.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(g.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,g,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=yt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=gt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ye(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function g(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,g);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ye(e,n,i,"Timeout"),ye(e,n,i,"Interval"),ye(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ye(e,"request","cancel","AnimationFrame"),ye(e,"mozRequest","mozCancel","AnimationFrame"),ye(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(g,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let g=0;g{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const g=f.HTMLMarqueeElement;g&&W(g.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function g(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const g=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(g,_),g})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const g=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(g)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=333)}]);
--------------------------------------------------------------------------------
/docs/runtime.ae3565dc55f03d24.js:
--------------------------------------------------------------------------------
1 | (()=>{"use strict";var e,v={},i={};function n(e){var a=i[e];if(void 0!==a)return a.exports;var r=i[e]={exports:{}};return v[e](r,r.exports,n),r.exports}n.m=v,e=[],n.O=(a,r,t,u)=>{if(!r){var o=1/0;for(f=0;f=u)&&Object.keys(n.O).every(h=>n.O[h](r[l]))?r.splice(l--,1):(s=!1,u0&&e[f-1][2]>u;f--)e[f]=e[f-1];e[f]=[r,t,u]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=t=>0===e[t];var a=(t,u)=>{var l,c,[f,o,s]=u,_=0;if(f.some(d=>0!==e[d])){for(l in o)n.o(o,l)&&(n.m[l]=o[l]);if(s)var b=s(n)}for(t&&t(u);_ {
5 | let page: AppPage;
6 |
7 | beforeEach(() => {
8 | page = new AppPage();
9 | });
10 |
11 | it('should display welcome message', async () => {
12 | await page.navigateTo();
13 | expect(await page.getTitleText()).toEqual('fluent-ui-icons-web app is running!');
14 | });
15 |
16 | afterEach(async () => {
17 | // Assert that there are no errors emitted from the browser
18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER);
19 | expect(logs).not.toContain(jasmine.objectContaining({
20 | level: logging.Level.SEVERE,
21 | } as logging.Entry));
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/fluent-ui-icons-web/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | async navigateTo(): Promise {
5 | return browser.get(browser.baseUrl);
6 | }
7 |
8 | async getTitleText(): Promise {
9 | return element(by.css('app-root .content span')).getText();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/fluent-ui-icons-web/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "../../../tsconfig.json",
4 | "compilerOptions": {
5 | "outDir": "../../../out-tsc/e2e",
6 | "module": "commonjs",
7 | "target": "es2018",
8 | "types": [
9 | "jasmine",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/projects/fluent-ui-icons-web/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 | module.exports = function (config) {
5 | config.set({
6 | basePath: '',
7 | frameworks: ['jasmine', '@angular-devkit/build-angular'],
8 | plugins: [
9 | require('karma-jasmine'),
10 | require('karma-chrome-launcher'),
11 | require('karma-jasmine-html-reporter'),
12 | require('karma-coverage'),
13 | require('@angular-devkit/build-angular/plugins/karma')
14 | ],
15 | client: {
16 | jasmine: {
17 | // you can add configuration options for Jasmine here
18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19 | // for example, you can disable the random execution with `random: false`
20 | // or set a specific seed with `seed: 4321`
21 | },
22 | clearContext: false // leave Jasmine Spec Runner output visible in browser
23 | },
24 | jasmineHtmlReporter: {
25 | suppressAll: true // removes the duplicated traces
26 | },
27 | coverageReporter: {
28 | dir: require('path').join(__dirname, '../../coverage/fluent-ui-icons-web'),
29 | subdir: '.',
30 | reporters: [
31 | { type: 'html' },
32 | { type: 'text-summary' }
33 | ]
34 | },
35 | reporters: ['progress', 'kjhtml'],
36 | port: 9876,
37 | colors: true,
38 | logLevel: config.LOG_INFO,
39 | autoWatch: true,
40 | browsers: ['Chrome'],
41 | singleRun: false,
42 | restartOnFileChange: true
43 | });
44 | };
45 |
--------------------------------------------------------------------------------
/projects/fluent-ui-icons-web/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |