@coreui/angular 4.3.0-next.0 → 4.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,212 +1,212 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://coreui.io/">
|
|
3
|
-
<img
|
|
4
|
-
src="https://coreui.io/images/brand/coreui-signet.svg"
|
|
5
|
-
alt="CoreUI logo"
|
|
6
|
-
width="200"
|
|
7
|
-
/>
|
|
8
|
-
</a>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<h2 align="center">CoreUI for Angular</h3>
|
|
12
|
-
|
|
13
|
-
<p align="center">
|
|
14
|
-
Angular Components Library built on top of Bootstrap 5 and TypeScript.
|
|
15
|
-
<br>
|
|
16
|
-
<a href="https://coreui.io/angular/docs/"><strong>Explore CoreUI for Angular docs »</strong></a>
|
|
17
|
-
<br>
|
|
18
|
-
<br>
|
|
19
|
-
<a href="https://github.com/coreui/coreui-angular/issues/new?template=bug_report.md">Report a bug</a>
|
|
20
|
-
·
|
|
21
|
-
<a href="https://github.com/coreui/coreui-angular/issues/new?template=feature_request.md">Request a feature</a>
|
|
22
|
-
·
|
|
23
|
-
<a href="https://blog.coreui.io/">Blog</a>
|
|
24
|
-
</p>
|
|
25
|
-
|
|
26
|
-
## Status
|
|
27
|
-
|
|
28
|
-
![angular][angular-badge]
|
|
29
|
-
[![npm-coreui-angular-latest][npm-coreui-angular-badge-latest]][npm-coreui-angular]
|
|
30
|
-
[![npm-coreui-angular-next][npm-coreui-angular-badge-next]][npm-coreui-angular]
|
|
31
|
-
[![NPM downloads][npm-coreui-angular-download]][npm-coreui-angular]
|
|
32
|
-
[](https://github.com/coreui/coreui-angular/actions/workflows/build-check.yml)
|
|
33
|
-
|
|
34
|
-
[npm-coreui-angular-badge-latest]: https://img.shields.io/npm/v/@coreui/angular/latest?style=flat-square&color=brightgreen
|
|
35
|
-
[npm-coreui-angular-badge-next]: https://img.shields.io/npm/v/@coreui/angular/next?style=flat-square&color=red
|
|
36
|
-
[npm-coreui-angular]: https://www.npmjs.com/package/@coreui/angular
|
|
37
|
-
[npm-coreui-angular-download]: https://img.shields.io/npm/dm/@coreui/angular.svg?style=flat-square
|
|
38
|
-
[angular-badge]: https://img.shields.io/badge/angular-^15.0.0-lightgrey.svg?style=flat-square&logo=angular
|
|
39
|
-
|
|
40
|
-
## Table of contents
|
|
41
|
-
|
|
42
|
-
- [Status](#status)
|
|
43
|
-
- [Quick start](#quick-start)
|
|
44
|
-
- [Templates](#templates)
|
|
45
|
-
- [Bugs and feature requests](#bugs-and-feature-requests)
|
|
46
|
-
- [Documentation](#documentation)
|
|
47
|
-
- [Frameworks](#frameworks)
|
|
48
|
-
- [Templates](#templates)
|
|
49
|
-
- [Contributing](#contributing)
|
|
50
|
-
- [Community](#community)
|
|
51
|
-
- [Versioning](#versioning)
|
|
52
|
-
- [Creators](#creators)
|
|
53
|
-
- [Support CoreUI Development](#support-coreui-development)
|
|
54
|
-
- [Copyright and license](#copyright-and-license)
|
|
55
|
-
|
|
56
|
-
## Quick start
|
|
57
|
-
|
|
58
|
-
### Prerequisites
|
|
59
|
-
Before you begin, make sure your development environment includes `Node.js®` and `npm` package manager.
|
|
60
|
-
|
|
61
|
-
###### Node.js
|
|
62
|
-
[**Angular 15**](https://angular.io/guide/what-is-angular) requires `Node.js` LTS version `^14.20` or `^16.13` or `^18.10`.
|
|
63
|
-
|
|
64
|
-
- To check your version, run `node -v` in a terminal/console window.
|
|
65
|
-
- To get `Node.js`, go to [nodejs.org](https://nodejs.org/).
|
|
66
|
-
|
|
67
|
-
###### Angular CLI
|
|
68
|
-
Install the Angular CLI globally using a terminal/console window.
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
npm install -g @angular/cli
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
###
|
|
75
|
-
Several quick start options are available (pick one):
|
|
76
|
-
|
|
77
|
-
- [Download the latest release](https://github.com/coreui/coreui-angular/)
|
|
78
|
-
- Clone the repo: `git clone https://github.com/coreui/coreui-angular.git`
|
|
79
|
-
- Install with [npm](https://www.npmjs.com/): `npm install @coreui/angular`
|
|
80
|
-
- Install with [yarn](https://yarnpkg.com/): `yarn add @coreui/angular`
|
|
81
|
-
|
|
82
|
-
Read the [Getting started page](https://coreui.io/angular/docs/) for information on the framework contents, templates and examples, and more.
|
|
83
|
-
|
|
84
|
-
#### CoreUI CSS files
|
|
85
|
-
|
|
86
|
-
##### Installation
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
npm install @coreui/coreui --save
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
##### Basic usage
|
|
93
|
-
|
|
94
|
-
```scss
|
|
95
|
-
import '~@coreui/coreui/dist/css/coreui.min.css'
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
#### Bootstrap CSS files
|
|
99
|
-
|
|
100
|
-
##### Installation (optional)
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
npm install bootstrap
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Templates
|
|
107
|
-
|
|
108
|
-
* [CoreUI Free Angular Admin Template](https://github.com/coreui/coreui-free-angular-admin-template)
|
|
109
|
-
* 💪 [CoreUI Pro Angular Admin Template](https://coreui.io/angular/)
|
|
110
|
-
|
|
111
|
-
## Bugs and feature requests
|
|
112
|
-
|
|
113
|
-
Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/coreui/coreui-angular/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/coreui/coreui-angular/issues/new).
|
|
114
|
-
|
|
115
|
-
## Documentation
|
|
116
|
-
|
|
117
|
-
The documentation for the CoreUI & CoreUI PRO is hosted at our website [CoreUI for Angular](https://coreui.io/angular/docs/)
|
|
118
|
-
|
|
119
|
-
## Frameworks
|
|
120
|
-
|
|
121
|
-
CoreUI supports most popular frameworks.
|
|
122
|
-
|
|
123
|
-
- [CoreUI for Bootstap(Vanilla JS)](https://github.com/coreui/coreui)
|
|
124
|
-
- [CoreUI for React](https://github.com/coreui/coreui-react)
|
|
125
|
-
- [CoreUI for Vue](https://github.com/coreui/coreui-vue)
|
|
126
|
-
|
|
127
|
-
## Templates
|
|
128
|
-
|
|
129
|
-
Fully featured, out-of-the-box, templates for your application based on CoreUI.
|
|
130
|
-
|
|
131
|
-
- [Angular Admin Template](https://coreui.io/angular)
|
|
132
|
-
- [Bootstrap Admin Template](https://coreui.io/)
|
|
133
|
-
- [React Admin Template](https://coreui.io/react)
|
|
134
|
-
- [Vue Admin Template](https://coreui.io/vue)
|
|
135
|
-
|
|
136
|
-
## Contributing
|
|
137
|
-
|
|
138
|
-
Please read through our [contributing guidelines](https://github.com/coreui/coreui-angular/blob/main/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
|
|
139
|
-
|
|
140
|
-
Editor preferences are available in the [editor config](https://github.com/coreui/coreui-angular/blob/main/.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org/>.
|
|
141
|
-
|
|
142
|
-
## Community
|
|
143
|
-
|
|
144
|
-
Stay up to date on the development of CoreUI and reach out to the community with these helpful resources.
|
|
145
|
-
|
|
146
|
-
- Read and subscribe to [The Official CoreUI Blog](https://blog.coreui.io/).
|
|
147
|
-
|
|
148
|
-
You can also follow [@core_ui on Twitter](https://twitter.com/core_ui).
|
|
149
|
-
|
|
150
|
-
## Versioning
|
|
151
|
-
|
|
152
|
-
For transparency into our release cycle and in striving to maintain backward compatibility, CoreUI is maintained under [the Semantic Versioning guidelines](http://semver.org/).
|
|
153
|
-
|
|
154
|
-
See [the Releases section of our project](https://github.com/coreui/coreui-angular/releases) for changelogs for each release version.
|
|
155
|
-
|
|
156
|
-
## Creators
|
|
157
|
-
|
|
158
|
-
**Łukasz Holeczek**
|
|
159
|
-
|
|
160
|
-
- <https://twitter.com/lukaszholeczek>
|
|
161
|
-
- <https://github.com/mrholek>
|
|
162
|
-
|
|
163
|
-
**Andrzej Kopański**
|
|
164
|
-
|
|
165
|
-
- <https://github.com/xidedix>
|
|
166
|
-
|
|
167
|
-
**The CoreUI Team**
|
|
168
|
-
|
|
169
|
-
- <https://github.com/orgs/coreui/people>
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
## Support CoreUI Development
|
|
173
|
-
|
|
174
|
-
CoreUI is an MIT-licensed open source project and is completely free to use. However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support development by buying the [CoreUI PRO](https://coreui.io/pricing/) or by becoming a sponsor via [Open Collective](https://opencollective.com/coreui/).
|
|
175
|
-
|
|
176
|
-
<!--- StartOpenCollectiveBackers -->
|
|
177
|
-
|
|
178
|
-
### Platinum Sponsors
|
|
179
|
-
|
|
180
|
-
Support this project by [becoming a Platinum Sponsor](https://opencollective.com/coreui/contribute/platinum-sponsor-40959/). A large company logo will be added here with a link to your website.
|
|
181
|
-
|
|
182
|
-
<a href="https://opencollective.com/coreui/contribute/platinum-sponsor-40959/checkout"><img src="https://opencollective.com/coreui/tiers/platinum-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
183
|
-
|
|
184
|
-
### Gold Sponsors
|
|
185
|
-
|
|
186
|
-
Support this project by [becoming a Gold Sponsor](https://opencollective.com/coreui/contribute/gold-sponsor-40960/). A big company logo will be added here with a link to your website.
|
|
187
|
-
|
|
188
|
-
<a href="https://opencollective.com/coreui/contribute/gold-sponsor-40960/checkout"><img src="https://opencollective.com/coreui/tiers/gold-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
189
|
-
|
|
190
|
-
### Silver Sponsors
|
|
191
|
-
|
|
192
|
-
Support this project by [becoming a Silver Sponsor](https://opencollective.com/coreui/contribute/silver-sponsor-40967/). A medium company logo will be added here with a link to your website.
|
|
193
|
-
|
|
194
|
-
<a href="https://opencollective.com/coreui/contribute/silver-sponsor-40967/checkout"><img src="https://opencollective.com/coreui/tiers/gold-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
195
|
-
|
|
196
|
-
### Bronze Sponsors
|
|
197
|
-
|
|
198
|
-
Support this project by [becoming a Bronze Sponsor](https://opencollective.com/coreui/contribute/bronze-sponsor-40966/). The company avatar will show up here with a link to your OpenCollective Profile.
|
|
199
|
-
|
|
200
|
-
<a href="https://opencollective.com/coreui/contribute/bronze-sponsor-40966/checkout"><img src="https://opencollective.com/coreui/tiers/bronze-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
201
|
-
|
|
202
|
-
### Backers
|
|
203
|
-
|
|
204
|
-
Thanks to all the backers and sponsors! Support this project by [becoming a backer](https://opencollective.com/coreui/contribute/backer-40965/).
|
|
205
|
-
|
|
206
|
-
<a href="https://opencollective.com/coreui/contribute/backer-40965/checkout" target="_blank" rel="noopener"><img src="https://opencollective.com/coreui/backers.svg?width=890"></a>
|
|
207
|
-
|
|
208
|
-
<!--- EndOpenCollectiveBackers -->
|
|
209
|
-
|
|
210
|
-
## Copyright and license
|
|
211
|
-
|
|
212
|
-
Copyright 2022 creativeLabs Łukasz Holeczek. Code released under the [MIT License](https://github.com/coreui/coreui-angular/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/).
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://coreui.io/">
|
|
3
|
+
<img
|
|
4
|
+
src="https://coreui.io/images/brand/coreui-signet.svg"
|
|
5
|
+
alt="CoreUI logo"
|
|
6
|
+
width="200"
|
|
7
|
+
/>
|
|
8
|
+
</a>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<h2 align="center">CoreUI for Angular</h3>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
Angular Components Library built on top of Bootstrap 5 and TypeScript.
|
|
15
|
+
<br>
|
|
16
|
+
<a href="https://coreui.io/angular/docs/"><strong>Explore CoreUI for Angular docs »</strong></a>
|
|
17
|
+
<br>
|
|
18
|
+
<br>
|
|
19
|
+
<a href="https://github.com/coreui/coreui-angular/issues/new?template=bug_report.md">Report a bug</a>
|
|
20
|
+
·
|
|
21
|
+
<a href="https://github.com/coreui/coreui-angular/issues/new?template=feature_request.md">Request a feature</a>
|
|
22
|
+
·
|
|
23
|
+
<a href="https://blog.coreui.io/">Blog</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
## Status
|
|
27
|
+
|
|
28
|
+
![angular][angular-badge]
|
|
29
|
+
[![npm-coreui-angular-latest][npm-coreui-angular-badge-latest]][npm-coreui-angular]
|
|
30
|
+
[![npm-coreui-angular-next][npm-coreui-angular-badge-next]][npm-coreui-angular]
|
|
31
|
+
[![NPM downloads][npm-coreui-angular-download]][npm-coreui-angular]
|
|
32
|
+
[](https://github.com/coreui/coreui-angular/actions/workflows/build-check.yml)
|
|
33
|
+
|
|
34
|
+
[npm-coreui-angular-badge-latest]: https://img.shields.io/npm/v/@coreui/angular/latest?style=flat-square&color=brightgreen
|
|
35
|
+
[npm-coreui-angular-badge-next]: https://img.shields.io/npm/v/@coreui/angular/next?style=flat-square&color=red
|
|
36
|
+
[npm-coreui-angular]: https://www.npmjs.com/package/@coreui/angular
|
|
37
|
+
[npm-coreui-angular-download]: https://img.shields.io/npm/dm/@coreui/angular.svg?style=flat-square
|
|
38
|
+
[angular-badge]: https://img.shields.io/badge/angular-^15.0.0-lightgrey.svg?style=flat-square&logo=angular
|
|
39
|
+
|
|
40
|
+
## Table of contents
|
|
41
|
+
|
|
42
|
+
- [Status](#status)
|
|
43
|
+
- [Quick start](#quick-start)
|
|
44
|
+
- [Templates](#templates)
|
|
45
|
+
- [Bugs and feature requests](#bugs-and-feature-requests)
|
|
46
|
+
- [Documentation](#documentation)
|
|
47
|
+
- [Frameworks](#frameworks)
|
|
48
|
+
- [Templates](#templates)
|
|
49
|
+
- [Contributing](#contributing)
|
|
50
|
+
- [Community](#community)
|
|
51
|
+
- [Versioning](#versioning)
|
|
52
|
+
- [Creators](#creators)
|
|
53
|
+
- [Support CoreUI Development](#support-coreui-development)
|
|
54
|
+
- [Copyright and license](#copyright-and-license)
|
|
55
|
+
|
|
56
|
+
## Quick start
|
|
57
|
+
|
|
58
|
+
### Prerequisites
|
|
59
|
+
Before you begin, make sure your development environment includes `Node.js®` and `npm` package manager.
|
|
60
|
+
|
|
61
|
+
###### Node.js
|
|
62
|
+
[**Angular 15**](https://angular.io/guide/what-is-angular) requires `Node.js` LTS version `^14.20` or `^16.13` or `^18.10`.
|
|
63
|
+
|
|
64
|
+
- To check your version, run `node -v` in a terminal/console window.
|
|
65
|
+
- To get `Node.js`, go to [nodejs.org](https://nodejs.org/).
|
|
66
|
+
|
|
67
|
+
###### Angular CLI
|
|
68
|
+
Install the Angular CLI globally using a terminal/console window.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npm install -g @angular/cli
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Installation
|
|
75
|
+
Several quick start options are available (pick one):
|
|
76
|
+
|
|
77
|
+
- [Download the latest release](https://github.com/coreui/coreui-angular/)
|
|
78
|
+
- Clone the repo: `git clone https://github.com/coreui/coreui-angular.git`
|
|
79
|
+
- Install with [npm](https://www.npmjs.com/): `npm install @coreui/angular`
|
|
80
|
+
- Install with [yarn](https://yarnpkg.com/): `yarn add @coreui/angular`
|
|
81
|
+
|
|
82
|
+
Read the [Getting started page](https://coreui.io/angular/docs/) for information on the framework contents, templates and examples, and more.
|
|
83
|
+
|
|
84
|
+
#### CoreUI CSS files
|
|
85
|
+
|
|
86
|
+
##### Installation
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install @coreui/coreui --save
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
##### Basic usage
|
|
93
|
+
|
|
94
|
+
```scss
|
|
95
|
+
import '~@coreui/coreui/dist/css/coreui.min.css'
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### Bootstrap CSS files
|
|
99
|
+
|
|
100
|
+
##### Installation (optional)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npm install bootstrap
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Templates
|
|
107
|
+
|
|
108
|
+
* [CoreUI Free Angular Admin Template](https://github.com/coreui/coreui-free-angular-admin-template)
|
|
109
|
+
* 💪 [CoreUI Pro Angular Admin Template](https://coreui.io/angular/)
|
|
110
|
+
|
|
111
|
+
## Bugs and feature requests
|
|
112
|
+
|
|
113
|
+
Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/coreui/coreui-angular/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/coreui/coreui-angular/issues/new).
|
|
114
|
+
|
|
115
|
+
## Documentation
|
|
116
|
+
|
|
117
|
+
The documentation for the CoreUI & CoreUI PRO is hosted at our website [CoreUI for Angular](https://coreui.io/angular/docs/)
|
|
118
|
+
|
|
119
|
+
## Frameworks
|
|
120
|
+
|
|
121
|
+
CoreUI supports most popular frameworks.
|
|
122
|
+
|
|
123
|
+
- [CoreUI for Bootstap(Vanilla JS)](https://github.com/coreui/coreui)
|
|
124
|
+
- [CoreUI for React](https://github.com/coreui/coreui-react)
|
|
125
|
+
- [CoreUI for Vue](https://github.com/coreui/coreui-vue)
|
|
126
|
+
|
|
127
|
+
## Templates
|
|
128
|
+
|
|
129
|
+
Fully featured, out-of-the-box, templates for your application based on CoreUI.
|
|
130
|
+
|
|
131
|
+
- [Angular Admin Template](https://coreui.io/angular)
|
|
132
|
+
- [Bootstrap Admin Template](https://coreui.io/)
|
|
133
|
+
- [React Admin Template](https://coreui.io/react)
|
|
134
|
+
- [Vue Admin Template](https://coreui.io/vue)
|
|
135
|
+
|
|
136
|
+
## Contributing
|
|
137
|
+
|
|
138
|
+
Please read through our [contributing guidelines](https://github.com/coreui/coreui-angular/blob/main/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
|
|
139
|
+
|
|
140
|
+
Editor preferences are available in the [editor config](https://github.com/coreui/coreui-angular/blob/main/.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org/>.
|
|
141
|
+
|
|
142
|
+
## Community
|
|
143
|
+
|
|
144
|
+
Stay up to date on the development of CoreUI and reach out to the community with these helpful resources.
|
|
145
|
+
|
|
146
|
+
- Read and subscribe to [The Official CoreUI Blog](https://blog.coreui.io/).
|
|
147
|
+
|
|
148
|
+
You can also follow [@core_ui on Twitter](https://twitter.com/core_ui).
|
|
149
|
+
|
|
150
|
+
## Versioning
|
|
151
|
+
|
|
152
|
+
For transparency into our release cycle and in striving to maintain backward compatibility, CoreUI is maintained under [the Semantic Versioning guidelines](http://semver.org/).
|
|
153
|
+
|
|
154
|
+
See [the Releases section of our project](https://github.com/coreui/coreui-angular/releases) for changelogs for each release version.
|
|
155
|
+
|
|
156
|
+
## Creators
|
|
157
|
+
|
|
158
|
+
**Łukasz Holeczek**
|
|
159
|
+
|
|
160
|
+
- <https://twitter.com/lukaszholeczek>
|
|
161
|
+
- <https://github.com/mrholek>
|
|
162
|
+
|
|
163
|
+
**Andrzej Kopański**
|
|
164
|
+
|
|
165
|
+
- <https://github.com/xidedix>
|
|
166
|
+
|
|
167
|
+
**The CoreUI Team**
|
|
168
|
+
|
|
169
|
+
- <https://github.com/orgs/coreui/people>
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
## Support CoreUI Development
|
|
173
|
+
|
|
174
|
+
CoreUI is an MIT-licensed open source project and is completely free to use. However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support development by buying the [CoreUI PRO](https://coreui.io/pricing/) or by becoming a sponsor via [Open Collective](https://opencollective.com/coreui/).
|
|
175
|
+
|
|
176
|
+
<!--- StartOpenCollectiveBackers -->
|
|
177
|
+
|
|
178
|
+
### Platinum Sponsors
|
|
179
|
+
|
|
180
|
+
Support this project by [becoming a Platinum Sponsor](https://opencollective.com/coreui/contribute/platinum-sponsor-40959/). A large company logo will be added here with a link to your website.
|
|
181
|
+
|
|
182
|
+
<a href="https://opencollective.com/coreui/contribute/platinum-sponsor-40959/checkout"><img src="https://opencollective.com/coreui/tiers/platinum-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
183
|
+
|
|
184
|
+
### Gold Sponsors
|
|
185
|
+
|
|
186
|
+
Support this project by [becoming a Gold Sponsor](https://opencollective.com/coreui/contribute/gold-sponsor-40960/). A big company logo will be added here with a link to your website.
|
|
187
|
+
|
|
188
|
+
<a href="https://opencollective.com/coreui/contribute/gold-sponsor-40960/checkout"><img src="https://opencollective.com/coreui/tiers/gold-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
189
|
+
|
|
190
|
+
### Silver Sponsors
|
|
191
|
+
|
|
192
|
+
Support this project by [becoming a Silver Sponsor](https://opencollective.com/coreui/contribute/silver-sponsor-40967/). A medium company logo will be added here with a link to your website.
|
|
193
|
+
|
|
194
|
+
<a href="https://opencollective.com/coreui/contribute/silver-sponsor-40967/checkout"><img src="https://opencollective.com/coreui/tiers/gold-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
195
|
+
|
|
196
|
+
### Bronze Sponsors
|
|
197
|
+
|
|
198
|
+
Support this project by [becoming a Bronze Sponsor](https://opencollective.com/coreui/contribute/bronze-sponsor-40966/). The company avatar will show up here with a link to your OpenCollective Profile.
|
|
199
|
+
|
|
200
|
+
<a href="https://opencollective.com/coreui/contribute/bronze-sponsor-40966/checkout"><img src="https://opencollective.com/coreui/tiers/bronze-sponsor/0/avatar.svg?avatarHeight=100"></a>
|
|
201
|
+
|
|
202
|
+
### Backers
|
|
203
|
+
|
|
204
|
+
Thanks to all the backers and sponsors! Support this project by [becoming a backer](https://opencollective.com/coreui/contribute/backer-40965/).
|
|
205
|
+
|
|
206
|
+
<a href="https://opencollective.com/coreui/contribute/backer-40965/checkout" target="_blank" rel="noopener"><img src="https://opencollective.com/coreui/backers.svg?width=890"></a>
|
|
207
|
+
|
|
208
|
+
<!--- EndOpenCollectiveBackers -->
|
|
209
|
+
|
|
210
|
+
## Copyright and license
|
|
211
|
+
|
|
212
|
+
Copyright 2022 creativeLabs Łukasz Holeczek. Code released under the [MIT License](https://github.com/coreui/coreui-angular/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/).
|
|
@@ -65,8 +65,11 @@ export class SidebarComponent {
|
|
|
65
65
|
* Toggle the visibility of sidebar component. [docs]
|
|
66
66
|
*/
|
|
67
67
|
set visible(value) {
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const visible = coerceBooleanProperty(value);
|
|
69
|
+
if (this._visible !== visible) {
|
|
70
|
+
this._visible = visible;
|
|
71
|
+
this.visibleChange.emit(this._visible);
|
|
72
|
+
}
|
|
70
73
|
}
|
|
71
74
|
get visible() {
|
|
72
75
|
return this._visible;
|
|
@@ -83,6 +86,9 @@ export class SidebarComponent {
|
|
|
83
86
|
this.unfoldable = newState.unfoldable;
|
|
84
87
|
}
|
|
85
88
|
}
|
|
89
|
+
else {
|
|
90
|
+
this.visible = (newState.visible ?? this.visible) && !this.overlaid;
|
|
91
|
+
}
|
|
86
92
|
this.state = {
|
|
87
93
|
...this.state,
|
|
88
94
|
...newState
|
|
@@ -104,7 +110,7 @@ export class SidebarComponent {
|
|
|
104
110
|
sidebar: true,
|
|
105
111
|
'sidebar-fixed': this.position === 'fixed' && !mobile,
|
|
106
112
|
'sidebar-narrow': this.narrow && !this.unfoldable,
|
|
107
|
-
'sidebar-narrow-unfoldable': unfoldable,
|
|
113
|
+
'sidebar-narrow-unfoldable': this.unfoldable,
|
|
108
114
|
'sidebar-overlaid': this.overlaid,
|
|
109
115
|
[`sidebar-${this.size}`]: !!this.size,
|
|
110
116
|
show: visible && this.onMobile,
|
|
@@ -166,12 +172,13 @@ export class SidebarComponent {
|
|
|
166
172
|
const layoutChanges = this.breakpointObserver.observe([onMobile]);
|
|
167
173
|
this.layoutChangeSubscription = layoutChanges.subscribe((result) => {
|
|
168
174
|
const isOnMobile = result.breakpoints[onMobile];
|
|
175
|
+
const isUnfoldable = isOnMobile ? false : this.unfoldable;
|
|
169
176
|
if (this.onMobile !== isOnMobile) {
|
|
170
177
|
this.onMobile = isOnMobile;
|
|
171
178
|
this.sidebarService.toggle({
|
|
172
179
|
mobile: isOnMobile,
|
|
173
|
-
unfoldable:
|
|
174
|
-
visible: isOnMobile
|
|
180
|
+
unfoldable: isUnfoldable,
|
|
181
|
+
visible: (!isOnMobile) || isUnfoldable,
|
|
175
182
|
sidebar: this
|
|
176
183
|
});
|
|
177
184
|
}
|
|
@@ -189,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
189
196
|
args: [{
|
|
190
197
|
selector: 'c-sidebar',
|
|
191
198
|
exportAs: 'cSidebar',
|
|
192
|
-
template: '<ng-content></ng-content>'
|
|
199
|
+
template: '<ng-content></ng-content>'
|
|
193
200
|
}]
|
|
194
201
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
195
202
|
type: Inject,
|
|
@@ -214,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
214
221
|
type: HostBinding,
|
|
215
222
|
args: ['class']
|
|
216
223
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFZNUUsTUFBTSxPQUFPLGdCQUFnQjtJQXVIM0IsWUFDNEIsUUFBYSxFQUMvQixRQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBdUM7UUFKckIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQXJIekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUl6QixVQUFLLEdBQW1CO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQWlDRjs7O1dBR0c7UUFDTSxhQUFRLEdBQXVCLE9BQU8sQ0FBQztRQThCaEQ7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBc0NwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FB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QU07WUFDTCxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0M7SUFDSCxDQUFDOzs2R0E3TlUsZ0JBQWdCLGtCQXdIakIsUUFBUTtpR0F4SFAsZ0JBQWdCLGlWQUZqQiwyQkFBMkI7MkZBRTFCLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzswQkF5SEksTUFBTTsyQkFBQyxRQUFRO3VLQWhHVCxFQUFFO3NCQUFWLEtBQUs7Z0JBT0YsTUFBTTtzQkFEVCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFZRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFNRixVQUFVO3NCQURiLEtBQUs7Z0JBWUYsT0FBTztzQkFEVixLQUFLO2dCQWFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBMENILFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSVNpZGViYXJBY3Rpb24sIFNpZGViYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2lkZWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFNpZGViYXJCYWNrZHJvcFNlcnZpY2UgfSBmcm9tICcuLi9zaWRlYmFyLWJhY2tkcm9wL3NpZGViYXItYmFja2Ryb3Auc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Mtc2lkZWJhcicsXG4gIGV4cG9ydEFzOiAnY1NpZGViYXInLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX25hcnJvdzogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfb3ZlcmxhaWQ6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3VuZm9sZGFibGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Zpc2libGU6IEJvb2xlYW5JbnB1dDtcblxuICBwcml2YXRlIF9uYXJyb3cgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3ZlcmxhaWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdW5mb2xkYWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF92aXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgb25Nb2JpbGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsYXlvdXRDaGFuZ2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc3RhdGVUb2dnbGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgc3RhdGU6IElTaWRlYmFyQWN0aW9uID0ge1xuICAgIHNpZGViYXI6IHRoaXNcbiAgfTtcblxuICAvKipcbiAgICogU2V0cyBodG1sIGF0dHJpYnV0ZSBpZC4gW2RvY3NdXG4gICAqXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgQElucHV0KCkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2Ugc2lkZWJhciBuYXJyb3cuIFtkb2NzXVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbmFycm93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmFycm93ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgbmFycm93KCkge1xuICAgIHJldHVybiB0aGlzLl9uYXJyb3c7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNpZGViYXIgdG8gb3ZlcmxhaWQgdmFyaWFudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG92ZXJsYWlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3ZlcmxhaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBvdmVybGFpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxhaWQ7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2Ugc2lkZWJhciBpbiBub24tc3RhdGljIHBvc2l0aW9ucy4gW2RvY3NdXG4gICAqIEBkZWZhdWx0ICdmaXhlZCdcbiAgICovXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAnZml4ZWQnIHwgJ3N0aWNreScgPSAnZml4ZWQnO1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwsIGxhcmdlLCBvciBleHRyYSBsYXJnZS4gW2RvY3NdXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZycgfCAneGwnO1xuXG4gIC8qKlxuICAgKiBFeHBhbmQgbmFycm93ZWQgc2lkZWJhciBvbiBob3Zlci4gW2RvY3NdXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdW5mb2xkYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3VuZm9sZGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCB1bmZvbGRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl91bmZvbGRhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBzaWRlYmFyIGNvbXBvbmVudC4gW2RvY3NdXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Zpc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xuICB9XG4gIGdldCB2aXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdmlzaWJpbGl0eSBjaGFuZ2UuIFtkb2NzXVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBzZXQgc2lkZWJhclN0YXRlKHZhbHVlOiBJU2lkZWJhckFjdGlvbikge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gdmFsdWU7XG4gICAgaWYgKCd0b2dnbGUnIGluIG5ld1N0YXRlKSB7XG4gICAgICBpZiAobmV3U3RhdGUudG9nZ2xlID09PSAndmlzaWJsZScpIHtcbiAgICAgICAgbmV3U3RhdGUudmlzaWJsZSA9ICF0aGlzLnN0YXRlLnZpc2libGU7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IG5ld1N0YXRlLnZpc2libGUgJiYgIXRoaXMub3ZlcmxhaWQ7XG4gICAgICB9IGVsc2UgaWYgKG5ld1N0YXRlLnRvZ2dsZSA9PT0gJ3VuZm9sZGFibGUnKSB7XG4gICAgICAgIG5ld1N0YXRlLnVuZm9sZGFibGUgPSAhdGhpcy5zdGF0ZS51bmZvbGRhYmxlO1xuICAgICAgICB0aGlzLnVuZm9sZGFibGUgPSBuZXdTdGF0ZS51bmZvbGRhYmxlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlXG4gICAgfTtcbiAgICB0aGlzLnN0YXRlLm1vYmlsZSAmJiB0aGlzLnN0YXRlLnZpc2libGUgPyB0aGlzLmJhY2tkcm9wU2VydmljZS5zZXRCYWNrZHJvcCh0aGlzKSA6IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLmNsZWFyQmFja2Ryb3AoKTtcbiAgfVxuXG4gIGdldCBzaWRlYmFyU3RhdGUoKTogSVNpZGViYXJBY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICB9XG5cbiAgZ2V0IGdldE1vYmlsZUJyZWFrcG9pbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBjb25zdCBtb2JpbGVCcmVha3BvaW50ID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWN1aS1tb2JpbGUtYnJlYWtwb2ludCcpIHx8ICdtZCc7XG4gICAgY29uc3QgYnJlYWtwb2ludFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLWN1aS1icmVha3BvaW50LSR7bW9iaWxlQnJlYWtwb2ludC50cmltKCl9YCkgfHwgJzc2OHB4JztcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdChicmVha3BvaW50VmFsdWUudHJpbSgpKSAtIC4wMn1weGAgfHwgJzc2Ny45OHB4JztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBwcml2YXRlIHNpZGViYXJTZXJ2aWNlOiBTaWRlYmFyU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tkcm9wU2VydmljZTogU2lkZWJhckJhY2tkcm9wU2VydmljZVxuICApIHtcbiAgICB0aGlzLmJhY2tkcm9wU2VydmljZS5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBnZXRDbGFzc2VzKCk6IGFueSB7XG4gICAgY29uc3Qge21vYmlsZSwgdW5mb2xkYWJsZSwgdmlzaWJsZX0gPSB0aGlzLnNpZGViYXJTdGF0ZTtcbiAgICByZXR1cm4ge1xuICAgICAgc2lkZWJhcjogdHJ1ZSxcbiAgICAgICdzaWRlYmFyLWZpeGVkJzogdGhpcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJyAmJiAhbW9iaWxlLFxuICAgICAgJ3NpZGViYXItbmFycm93JzogdGhpcy5uYXJyb3cgJiYgIXRoaXMudW5mb2xkYWJsZSxcbiAgICAgICdzaWRlYmFyLW5hcnJvdy11bmZvbGRhYmxlJzogdW5mb2xkYWJsZSxcbiAgICAgICdzaWRlYmFyLW92ZXJsYWlkJzogdGhpcy5vdmVybGFpZCxcbiAgICAgIFtgc2lkZWJhci0ke3RoaXMuc2l6ZX1gXTogISF0aGlzLnNpemUsXG4gICAgICBzaG93OiB2aXNpYmxlICYmIHRoaXMub25Nb2JpbGUsXG4gICAgICBoaWRlOiAhdmlzaWJsZSAmJiAhdGhpcy5vbk1vYmlsZVxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZShmYWxzZSk7XG4gICAgdGhpcy5sYXlvdXRDaGFuZ2VTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IG9sZFN0YXRlTWFwID0gbmV3IE1hcChPYmplY3QuZW50cmllcyh0aGlzLnN0YXRlKSk7XG4gICAgY29uc3QgbmV3U3RhdGVNYXAgPSBuZXcgTWFwKCk7XG4gICAgbmV3U3RhdGVNYXAuc2V0KCdzaWRlYmFyJywgdGhpcyk7XG5cbiAgICBjb25zdCBwcm9wTGlzdCA9IFsndmlzaWJsZScsICd1bmZvbGRhYmxlJywgJ25hcnJvdyddO1xuXG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XG4gICAgICBpZiAocHJvcExpc3QuaW5jbHVkZXMocHJvcE5hbWUpKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzW3Byb3BOYW1lXSAmJiAhY2hhbmdlc1twcm9wTmFtZV0uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzW3Byb3BOYW1lXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgIGlmIChvbGRTdGF0ZU1hcC5nZXQocHJvcE5hbWUpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgbmV3U3RhdGVNYXAuc2V0KHByb3BOYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5ld1N0YXRlTWFwLnNpemUgPiAxKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5mcm9tRW50cmllcyhuZXdTdGF0ZU1hcC5lbnRyaWVzKCkpO1xuICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS50b2dnbGUoc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XG4gICAgICBuYXJyb3c6IHRoaXMubmFycm93LFxuICAgICAgdmlzaWJsZTogdGhpcy52aXNpYmxlLFxuICAgICAgdW5mb2xkYWJsZTogdGhpcy51bmZvbGRhYmxlLFxuICAgICAgc2lkZWJhcjogdGhpc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbiA9IHRoaXMuc2lkZWJhclNlcnZpY2Uuc2lkZWJhclN0YXRlJC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzID09PSBzdGF0ZS5zaWRlYmFyIHx8IHRoaXMuaWQgPT09IHN0YXRlLmlkKSB7XG4gICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBsYXlvdXRDaGFuZ2VTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IG9uTW9iaWxlID0gYChtYXgtd2lkdGg6ICR7dGhpcy5nZXRNb2JpbGVCcmVha3BvaW50fSlgO1xuXG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgY29uc3QgbGF5b3V0Q2hhbmdlcyA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW29uTW9iaWxlXSk7XG5cbiAgICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uID0gbGF5b3V0Q2hhbmdlcy5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzT25Nb2JpbGUgPSByZXN1bHQuYnJlYWtwb2ludHNbb25Nb2JpbGVdO1xuICAgICAgICBpZiAodGhpcy5vbk1vYmlsZSAhPT0gaXNPbk1vYmlsZSkge1xuICAgICAgICAgIHRoaXMub25Nb2JpbGUgPSBpc09uTW9iaWxlO1xuICAgICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UudG9nZ2xlKHtcbiAgICAgICAgICAgIG1vYmlsZTogaXNPbk1vYmlsZSxcbiAgICAgICAgICAgIHVuZm9sZGFibGU6IGlzT25Nb2JpbGUgPyBmYWxzZSA6IHRoaXMudW5mb2xkYWJsZSxcbiAgICAgICAgICAgIHZpc2libGU6IGlzT25Nb2JpbGUgPyBmYWxzZSA6IHRoaXMudmlzaWJsZSxcbiAgICAgICAgICAgIHNpZGViYXI6IHRoaXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFZNUUsTUFBTSxPQUFPLGdCQUFnQjtJQWdJM0IsWUFDNEIsUUFBYSxFQUMvQixRQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBdUM7UUFKckIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQTlIekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUl6QixVQUFLLEdBQW1CO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQW1DRjs7O1dBR0c7UUFDTSxhQUFRLEdBQXVCLE9BQU8sQ0FBQztRQW1DaEQ7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBd0NwRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FB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LENBQUM7b0JBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO3dCQUN6QixNQUFNLEVBQUUsVUFBVTt3QkFDbEIsVUFBVSxFQUFFLFlBQVk7d0JBQ3hCLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWTt3QkFDdEMsT0FBTyxFQUFFLElBQUk7cUJBQ2QsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7NkdBdk9VLGdCQUFnQixrQkFpSWpCLFFBQVE7aUdBaklQLGdCQUFnQixpVkFGakIsMkJBQTJCOzJGQUUxQixnQkFBZ0I7a0JBTDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs7MEJBa0lJLE1BQU07MkJBQUMsUUFBUTt1S0F6R1QsRUFBRTtzQkFBVixLQUFLO2dCQU9GLE1BQU07c0JBRFQsS0FBSztnQkFjRixRQUFRO3NCQURYLEtBQUs7Z0JBYUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUYsVUFBVTtzQkFEYixLQUFLO2dCQWFGLE9BQU87c0JBRFYsS0FBSztnQkFpQkksYUFBYTtzQkFBdEIsTUFBTTtnQkE0Q0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJU2lkZWJhckFjdGlvbiwgU2lkZWJhclNlcnZpY2UgfSBmcm9tICcuLi9zaWRlYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaWRlYmFyQmFja2Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi4vc2lkZWJhci1iYWNrZHJvcC9zaWRlYmFyLWJhY2tkcm9wLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLXNpZGViYXInLFxyXG4gIGV4cG9ydEFzOiAnY1NpZGViYXInLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX25hcnJvdzogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vdmVybGFpZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV91bmZvbGRhYmxlOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Zpc2libGU6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgcHJpdmF0ZSBfbmFycm93ID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfb3ZlcmxhaWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF91bmZvbGRhYmxlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgb25Nb2JpbGUgPSBmYWxzZTtcclxuICBwcml2YXRlIGxheW91dENoYW5nZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBzdGF0ZTogSVNpZGViYXJBY3Rpb24gPSB7XHJcbiAgICBzaWRlYmFyOiB0aGlzXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBodG1sIGF0dHJpYnV0ZSBpZC4gW2RvY3NdXHJcbiAgICpcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZSBzaWRlYmFyIG5hcnJvdy4gW2RvY3NdXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5hcnJvdyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbmFycm93ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBuYXJyb3coKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFycm93O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHNpZGViYXIgdG8gb3ZlcmxhaWQgdmFyaWFudC5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgb3ZlcmxhaWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX292ZXJsYWlkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBvdmVybGFpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9vdmVybGFpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBsYWNlIHNpZGViYXIgaW4gbm9uLXN0YXRpYyBwb3NpdGlvbnMuIFtkb2NzXVxyXG4gICAqIEBkZWZhdWx0ICdmaXhlZCdcclxuICAgKi9cclxuICBASW5wdXQoKSBwb3NpdGlvbjogJ2ZpeGVkJyB8ICdzdGlja3knID0gJ2ZpeGVkJztcclxuXHJcbiAgLyoqXHJcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsLCBsYXJnZSwgb3IgZXh0cmEgbGFyZ2UuIFtkb2NzXVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNpemU/OiAnc20nIHwgJ2xnJyB8ICd4bCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cGFuZCBuYXJyb3dlZCBzaWRlYmFyIG9uIGhvdmVyLiBbZG9jc11cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB1bmZvbGRhYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl91bmZvbGRhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCB1bmZvbGRhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VuZm9sZGFibGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2Ygc2lkZWJhciBjb21wb25lbnQuIFtkb2NzXVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IHZpc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgIT09IHZpc2libGUpIHtcclxuICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdmlzaWJpbGl0eSBjaGFuZ2UuIFtkb2NzXVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgc2V0IHNpZGViYXJTdGF0ZSh2YWx1ZTogSVNpZGViYXJBY3Rpb24pIHtcclxuICAgIGNvbnN0IG5ld1N0YXRlID0gdmFsdWU7XHJcbiAgICBpZiAoJ3RvZ2dsZScgaW4gbmV3U3RhdGUpIHtcclxuICAgICAgaWYgKG5ld1N0YXRlLnRvZ2dsZSA9PT0gJ3Zpc2libGUnKSB7XHJcbiAgICAgICAgbmV3U3RhdGUudmlzaWJsZSA9ICF0aGlzLnN0YXRlLnZpc2libGU7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gbmV3U3RhdGUudmlzaWJsZSAmJiAhdGhpcy5vdmVybGFpZDtcclxuICAgICAgfSBlbHNlIGlmIChuZXdTdGF0ZS50b2dnbGUgPT09ICd1bmZvbGRhYmxlJykge1xyXG4gICAgICAgIG5ld1N0YXRlLnVuZm9sZGFibGUgPSAhdGhpcy5zdGF0ZS51bmZvbGRhYmxlO1xyXG4gICAgICAgIHRoaXMudW5mb2xkYWJsZSA9IG5ld1N0YXRlLnVuZm9sZGFibGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IChuZXdTdGF0ZS52aXNpYmxlID8/IHRoaXMudmlzaWJsZSkgJiYgIXRoaXMub3ZlcmxhaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAuLi50aGlzLnN0YXRlLFxyXG4gICAgICAuLi5uZXdTdGF0ZVxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhdGUubW9iaWxlICYmIHRoaXMuc3RhdGUudmlzaWJsZSA/IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnNldEJhY2tkcm9wKHRoaXMpIDogdGhpcy5iYWNrZHJvcFNlcnZpY2UuY2xlYXJCYWNrZHJvcCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpZGViYXJTdGF0ZSgpOiBJU2lkZWJhckFjdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRNb2JpbGVCcmVha3BvaW50KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5maXJzdEVsZW1lbnRDaGlsZDtcclxuICAgIGNvbnN0IG1vYmlsZUJyZWFrcG9pbnQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tY3VpLW1vYmlsZS1icmVha3BvaW50JykgfHwgJ21kJztcclxuICAgIGNvbnN0IGJyZWFrcG9pbnRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShgLS1jdWktYnJlYWtwb2ludC0ke21vYmlsZUJyZWFrcG9pbnQudHJpbSgpfWApIHx8ICc3NjhweCc7XHJcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdChicmVha3BvaW50VmFsdWUudHJpbSgpKSAtIC4wMn1weGAgfHwgJzc2Ny45OHB4JztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcclxuICAgIHByaXZhdGUgc2lkZWJhclNlcnZpY2U6IFNpZGViYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYWNrZHJvcFNlcnZpY2U6IFNpZGViYXJCYWNrZHJvcFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBnZXQgZ2V0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgY29uc3QgeyBtb2JpbGUsIHVuZm9sZGFibGUsIHZpc2libGUgfSA9IHRoaXMuc2lkZWJhclN0YXRlO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2lkZWJhcjogdHJ1ZSxcclxuICAgICAgJ3NpZGViYXItZml4ZWQnOiB0aGlzLnBvc2l0aW9uID09PSAnZml4ZWQnICYmICFtb2JpbGUsXHJcbiAgICAgICdzaWRlYmFyLW5hcnJvdyc6IHRoaXMubmFycm93ICYmICF0aGlzLnVuZm9sZGFibGUsXHJcbiAgICAgICdzaWRlYmFyLW5hcnJvdy11bmZvbGRhYmxlJzogdGhpcy51bmZvbGRhYmxlLFxyXG4gICAgICAnc2lkZWJhci1vdmVybGFpZCc6IHRoaXMub3ZlcmxhaWQsXHJcbiAgICAgIFtgc2lkZWJhci0ke3RoaXMuc2l6ZX1gXTogISF0aGlzLnNpemUsXHJcbiAgICAgIHNob3c6IHZpc2libGUgJiYgdGhpcy5vbk1vYmlsZSxcclxuICAgICAgaGlkZTogIXZpc2libGUgJiYgIXRoaXMub25Nb2JpbGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgICB0aGlzLmxheW91dENoYW5nZVN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlVG9nZ2xlU3Vic2NyaWJlKGZhbHNlKTtcclxuICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaWJlKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9sZFN0YXRlTWFwID0gbmV3IE1hcChPYmplY3QuZW50cmllcyh0aGlzLnN0YXRlKSk7XHJcbiAgICBjb25zdCBuZXdTdGF0ZU1hcCA9IG5ldyBNYXAoKTtcclxuICAgIG5ld1N0YXRlTWFwLnNldCgnc2lkZWJhcicsIHRoaXMpO1xyXG5cclxuICAgIGNvbnN0IHByb3BMaXN0ID0gWyd2aXNpYmxlJywgJ3VuZm9sZGFibGUnLCAnbmFycm93J107XHJcblxyXG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIGlmIChwcm9wTGlzdC5pbmNsdWRlcyhwcm9wTmFtZSkpIHtcclxuICAgICAgICBpZiAoY2hhbmdlc1twcm9wTmFtZV0gJiYgIWNoYW5nZXNbcHJvcE5hbWVdLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzW3Byb3BOYW1lXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgaWYgKG9sZFN0YXRlTWFwLmdldChwcm9wTmFtZSkgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIG5ld1N0YXRlTWFwLnNldChwcm9wTmFtZSwgdmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChuZXdTdGF0ZU1hcC5zaXplID4gMSkge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5mcm9tRW50cmllcyhuZXdTdGF0ZU1hcC5lbnRyaWVzKCkpO1xyXG4gICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZShzdGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XHJcbiAgICAgIG5hcnJvdzogdGhpcy5uYXJyb3csXHJcbiAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgdW5mb2xkYWJsZTogdGhpcy51bmZvbGRhYmxlLFxyXG4gICAgICBzaWRlYmFyOiB0aGlzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGVUb2dnbGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICB0aGlzLnN0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uID0gdGhpcy5zaWRlYmFyU2VydmljZS5zaWRlYmFyU3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcclxuICAgICAgICBpZiAodGhpcyA9PT0gc3RhdGUuc2lkZWJhciB8fCB0aGlzLmlkID09PSBzdGF0ZS5pZCkge1xyXG4gICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGF5b3V0Q2hhbmdlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9uTW9iaWxlID0gYChtYXgtd2lkdGg6ICR7dGhpcy5nZXRNb2JpbGVCcmVha3BvaW50fSlgO1xyXG5cclxuICAgIGlmIChzdWJzY3JpYmUpIHtcclxuICAgICAgY29uc3QgbGF5b3V0Q2hhbmdlcyA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW29uTW9iaWxlXSk7XHJcblxyXG4gICAgICB0aGlzLmxheW91dENoYW5nZVN1YnNjcmlwdGlvbiA9IGxheW91dENoYW5nZXMuc3Vic2NyaWJlKChyZXN1bHQ6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzT25Nb2JpbGUgPSByZXN1bHQuYnJlYWtwb2ludHNbb25Nb2JpbGVdO1xyXG4gICAgICAgIGNvbnN0IGlzVW5mb2xkYWJsZSA9IGlzT25Nb2JpbGUgPyBmYWxzZSA6IHRoaXMudW5mb2xkYWJsZTtcclxuICAgICAgICBpZiAodGhpcy5vbk1vYmlsZSAhPT0gaXNPbk1vYmlsZSkge1xyXG4gICAgICAgICAgdGhpcy5vbk1vYmlsZSA9IGlzT25Nb2JpbGU7XHJcbiAgICAgICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XHJcbiAgICAgICAgICAgIG1vYmlsZTogaXNPbk1vYmlsZSxcclxuICAgICAgICAgICAgdW5mb2xkYWJsZTogaXNVbmZvbGRhYmxlLFxyXG4gICAgICAgICAgICB2aXNpYmxlOiAoIWlzT25Nb2JpbGUpIHx8IGlzVW5mb2xkYWJsZSxcclxuICAgICAgICAgICAgc2lkZWJhcjogdGhpc1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|