@cqa-lib/cqa-ui 0.0.3 → 0.1.1
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/dist/cqa-ui/README.md +226 -0
- package/dist/cqa-ui/esm2020/lib/button/button.component.mjs +257 -0
- package/dist/cqa-ui/esm2020/lib/dialog/dialog.component.mjs +127 -0
- package/dist/cqa-ui/esm2020/lib/search-bar/search-bar.component.mjs +95 -0
- package/{esm2020 → dist/cqa-ui/esm2020}/lib/segment-control/segment-control.component.mjs +3 -3
- package/{esm2020 → dist/cqa-ui/esm2020}/lib/ui-kit.module.mjs +6 -8
- package/{esm2020 → dist/cqa-ui/esm2020}/public-api.mjs +1 -2
- package/{fesm2015 → dist/cqa-ui/fesm2015}/cqa-lib-cqa-ui.mjs +96 -128
- package/dist/cqa-ui/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -0
- package/{fesm2020 → dist/cqa-ui/fesm2020}/cqa-lib-cqa-ui.mjs +96 -128
- package/dist/cqa-ui/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -0
- package/dist/cqa-ui/lib/ui-kit.module.d.ts +15 -0
- package/dist/cqa-ui/package.json +56 -0
- package/{public-api.d.ts → dist/cqa-ui/public-api.d.ts} +0 -1
- package/dist/cqa-ui/styles.css +1 -0
- package/package.json +49 -23
- package/esm2020/lib/button/button.component.mjs +0 -257
- package/esm2020/lib/dialog/dialog.component.mjs +0 -127
- package/esm2020/lib/root-wrapper/root-wrapper.component.mjs +0 -34
- package/esm2020/lib/search-bar/search-bar.component.mjs +0 -95
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +0 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +0 -1
- package/lib/root-wrapper/root-wrapper.component.d.ts +0 -9
- package/lib/ui-kit.module.d.ts +0 -16
- package/styles.css +0 -1
- /package/{cqa-lib-cqa-ui.d.ts → dist/cqa-ui/cqa-lib-cqa-ui.d.ts} +0 -0
- /package/{esm2020 → dist/cqa-ui/esm2020}/cqa-lib-cqa-ui.mjs +0 -0
- /package/{esm2020 → dist/cqa-ui/esm2020}/lib/dialog/dialog-ref.mjs +0 -0
- /package/{esm2020 → dist/cqa-ui/esm2020}/lib/dialog/dialog.models.mjs +0 -0
- /package/{esm2020 → dist/cqa-ui/esm2020}/lib/dialog/dialog.service.mjs +0 -0
- /package/{esm2020 → dist/cqa-ui/esm2020}/lib/dialog/dialog.tokens.mjs +0 -0
- /package/{lib → dist/cqa-ui/lib}/button/button.component.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/dialog/dialog-ref.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/dialog/dialog.component.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/dialog/dialog.models.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/dialog/dialog.service.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/dialog/dialog.tokens.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/search-bar/search-bar.component.d.ts +0 -0
- /package/{lib → dist/cqa-ui/lib}/segment-control/segment-control.component.d.ts +0 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# CQA UI
|
|
2
|
+
|
|
3
|
+
Component library for Angular 13+, built with Tailwind CSS tokens and Storybook-driven documentation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📦 Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @cqa-lib/cqa-ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Peer dependencies
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @angular/common@^13.4.0 @angular/core@^13.4.0 @angular/forms@^13.4.0 @angular/material@^13.3.9 @angular/cdk@^13.3.9 rxjs@^6.6.7 || ^7.5.0
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🚀 Quick Start
|
|
22
|
+
|
|
23
|
+
### Step 1: Import the Module
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
// app.module.ts
|
|
27
|
+
import { NgModule } from '@angular/core';
|
|
28
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
29
|
+
import { UiKitModule } from '@cqa-lib/cqa-ui';
|
|
30
|
+
|
|
31
|
+
import { AppComponent } from './app.component';
|
|
32
|
+
|
|
33
|
+
@NgModule({
|
|
34
|
+
declarations: [AppComponent],
|
|
35
|
+
imports: [
|
|
36
|
+
BrowserModule,
|
|
37
|
+
UiKitModule
|
|
38
|
+
],
|
|
39
|
+
bootstrap: [AppComponent]
|
|
40
|
+
})
|
|
41
|
+
export class AppModule {}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 2: Import the Styles
|
|
45
|
+
|
|
46
|
+
**Option A: In `angular.json`** (Recommended)
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"projects": {
|
|
51
|
+
"your-project": {
|
|
52
|
+
"architect": {
|
|
53
|
+
"build": {
|
|
54
|
+
"options": {
|
|
55
|
+
"styles": [
|
|
56
|
+
"node_modules/@cqa-lib/cqa-ui/styles.css",
|
|
57
|
+
"src/styles.css"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Option B: In `styles.css`**
|
|
68
|
+
|
|
69
|
+
```css
|
|
70
|
+
@import '@cqa-lib/cqa-ui/styles.css';
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Step 3: Add Angular Material Icon Font
|
|
74
|
+
|
|
75
|
+
Add this to your `index.html`:
|
|
76
|
+
|
|
77
|
+
```html
|
|
78
|
+
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Or in `styles.css`:
|
|
82
|
+
|
|
83
|
+
```css
|
|
84
|
+
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 💡 Usage Examples
|
|
90
|
+
|
|
91
|
+
### Button
|
|
92
|
+
|
|
93
|
+
```html
|
|
94
|
+
<cqa-button variant="filled" icon="save" (clicked)="onSave()">
|
|
95
|
+
Save changes
|
|
96
|
+
</cqa-button>
|
|
97
|
+
|
|
98
|
+
<cqa-button variant="outlined" [disabled]="isSubmitting">
|
|
99
|
+
Cancel
|
|
100
|
+
</cqa-button>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Search bar
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<cqa-search-bar
|
|
107
|
+
placeholder="Search components"
|
|
108
|
+
[value]="query"
|
|
109
|
+
[showClear]="true"
|
|
110
|
+
(valueChange)="query = $event"
|
|
111
|
+
(search)="onSearch($event)"
|
|
112
|
+
></cqa-search-bar>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Segment control
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<cqa-segment-control
|
|
119
|
+
[segments]="[
|
|
120
|
+
{ label: 'Overview', value: 'overview' },
|
|
121
|
+
{ label: 'Analytics', value: 'analytics' },
|
|
122
|
+
{ label: 'Settings', value: 'settings', disabled: true }
|
|
123
|
+
]"
|
|
124
|
+
[value]="currentTab"
|
|
125
|
+
(valueChange)="currentTab = $event"
|
|
126
|
+
></cqa-segment-control>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Dialog
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
import { DialogService } from '@cqa-lib/cqa-ui';
|
|
133
|
+
|
|
134
|
+
constructor(private readonly dialog: DialogService) {}
|
|
135
|
+
|
|
136
|
+
openDialog(): void {
|
|
137
|
+
this.dialog.open({
|
|
138
|
+
title: 'Delete dashboard',
|
|
139
|
+
description: 'Deleting this dashboard will remove it for all collaborators.',
|
|
140
|
+
warning: 'This action cannot be undone.',
|
|
141
|
+
content: {
|
|
142
|
+
type: 'text',
|
|
143
|
+
text: 'Are you sure you want to continue?'
|
|
144
|
+
},
|
|
145
|
+
buttons: [
|
|
146
|
+
{ label: 'Cancel', role: 'secondary' },
|
|
147
|
+
{ label: 'Delete', role: 'warn', handler: () => 'delete' }
|
|
148
|
+
]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 🔧 Troubleshooting
|
|
156
|
+
|
|
157
|
+
### Component renders as empty tag (no inner HTML)
|
|
158
|
+
|
|
159
|
+
If you see `<cqa-search-bar></cqa-search-bar>` without any inner content, check:
|
|
160
|
+
|
|
161
|
+
1. **Missing styles import** - Add to `angular.json`:
|
|
162
|
+
```json
|
|
163
|
+
"styles": [
|
|
164
|
+
"node_modules/@cqa-lib/cqa-ui/styles.css",
|
|
165
|
+
"src/styles.css"
|
|
166
|
+
]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
2. **Missing Angular Material Icon font** - Add to `index.html`:
|
|
170
|
+
```html
|
|
171
|
+
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
3. **Check browser console** for errors:
|
|
175
|
+
- Missing peer dependencies (`@angular/material`, `@angular/cdk`)
|
|
176
|
+
- Module import errors
|
|
177
|
+
- Template compilation errors
|
|
178
|
+
|
|
179
|
+
4. **Verify module import** in your `app.module.ts`:
|
|
180
|
+
```ts
|
|
181
|
+
import { UiKitModule } from '@cqa-lib/cqa-ui';
|
|
182
|
+
|
|
183
|
+
@NgModule({
|
|
184
|
+
imports: [UiKitModule, ...]
|
|
185
|
+
})
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
5. **Clear Angular cache and rebuild**:
|
|
189
|
+
```bash
|
|
190
|
+
rm -rf .angular
|
|
191
|
+
npm start # or ng serve
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 📚 Storybook
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm run storybook
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
View component documentation and interactive examples at `http://localhost:6006`.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 🛠 Development
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npm install
|
|
210
|
+
npm run build:cqa-ui # build the library bundle
|
|
211
|
+
npm run storybook # start Storybook
|
|
212
|
+
npm run build-storybook # static Storybook build
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Publish workflow
|
|
216
|
+
|
|
217
|
+
1. Update version in `package.json`
|
|
218
|
+
2. `npm run build:cqa-ui`
|
|
219
|
+
3. `npm publish dist/cqa-ui`
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 📄 License
|
|
224
|
+
|
|
225
|
+
MIT — contributions and issues welcome!
|
|
226
|
+
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/icon";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class ButtonComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.variant = 'filled';
|
|
8
|
+
this.disabled = false;
|
|
9
|
+
this.iconPosition = 'start';
|
|
10
|
+
this.type = 'button';
|
|
11
|
+
this.clicked = new EventEmitter();
|
|
12
|
+
// Internal state tracking
|
|
13
|
+
this.isHovered = false;
|
|
14
|
+
this.isFocused = false;
|
|
15
|
+
this.isPressed = false;
|
|
16
|
+
}
|
|
17
|
+
get hasIcon() {
|
|
18
|
+
return !!this.icon;
|
|
19
|
+
}
|
|
20
|
+
get buttonClasses() {
|
|
21
|
+
const baseClasses = [
|
|
22
|
+
'cqa-flex',
|
|
23
|
+
'cqa-flex-col',
|
|
24
|
+
'cqa-justify-center',
|
|
25
|
+
'cqa-items-center',
|
|
26
|
+
'cqa-p-0',
|
|
27
|
+
'cqa-gap-2',
|
|
28
|
+
'cqa-rounded-lg',
|
|
29
|
+
'cqa-cursor-pointer',
|
|
30
|
+
'cqa-font-inter',
|
|
31
|
+
'cqa-font-semibold',
|
|
32
|
+
'cqa-text-sm',
|
|
33
|
+
'cqa-leading-[14px]',
|
|
34
|
+
'cqa-transition-all',
|
|
35
|
+
'cqa-duration-200',
|
|
36
|
+
'cqa-outline-none'
|
|
37
|
+
];
|
|
38
|
+
if (this.disabled) {
|
|
39
|
+
baseClasses.push('cqa-cursor-not-allowed');
|
|
40
|
+
}
|
|
41
|
+
// Add variant and state specific classes
|
|
42
|
+
const variantClasses = this.getVariantClasses();
|
|
43
|
+
return [...baseClasses, ...variantClasses].join(' ');
|
|
44
|
+
}
|
|
45
|
+
get stateLayerClasses() {
|
|
46
|
+
const classes = [
|
|
47
|
+
'cqa-flex',
|
|
48
|
+
'cqa-flex-row',
|
|
49
|
+
'cqa-justify-center',
|
|
50
|
+
'cqa-items-center',
|
|
51
|
+
'cqa-gap-2',
|
|
52
|
+
'cqa-w-full',
|
|
53
|
+
'cqa-h-full',
|
|
54
|
+
'cqa-py-[10px]',
|
|
55
|
+
'cqa-px-6',
|
|
56
|
+
];
|
|
57
|
+
return classes.join(' ');
|
|
58
|
+
}
|
|
59
|
+
get labelClasses() {
|
|
60
|
+
const classes = [
|
|
61
|
+
'cqa-flex',
|
|
62
|
+
'cqa-items-center',
|
|
63
|
+
'cqa-text-center',
|
|
64
|
+
'cqa-font-inter',
|
|
65
|
+
'cqa-font-semibold',
|
|
66
|
+
'cqa-text-sm',
|
|
67
|
+
'cqa-leading-[14px]',
|
|
68
|
+
'cqa-flex-none',
|
|
69
|
+
this.textClass,
|
|
70
|
+
];
|
|
71
|
+
if (this.disabled) {
|
|
72
|
+
classes.push('cqa-opacity-[0.38]');
|
|
73
|
+
}
|
|
74
|
+
return classes.join(' ');
|
|
75
|
+
}
|
|
76
|
+
get iconClasses() {
|
|
77
|
+
const classes = [
|
|
78
|
+
'cqa-flex',
|
|
79
|
+
'cqa-items-center',
|
|
80
|
+
'cqa-justify-center',
|
|
81
|
+
'cqa-w-[14px]',
|
|
82
|
+
'cqa-h-[14px]',
|
|
83
|
+
'cqa-shrink-0',
|
|
84
|
+
'cqa-flex-none'
|
|
85
|
+
];
|
|
86
|
+
if (this.disabled) {
|
|
87
|
+
classes.push('cqa-opacity-[0.38]');
|
|
88
|
+
}
|
|
89
|
+
return classes.join(' ');
|
|
90
|
+
}
|
|
91
|
+
getVariantClasses() {
|
|
92
|
+
const classes = [];
|
|
93
|
+
if (this.variant === 'filled') {
|
|
94
|
+
if (this.disabled) {
|
|
95
|
+
classes.push('cqa-bg-primary-muted');
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
classes.push('cqa-bg-primary');
|
|
99
|
+
if (this.isHovered) {
|
|
100
|
+
classes.push('cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else if (this.variant === 'outlined') {
|
|
105
|
+
if (this.disabled) {
|
|
106
|
+
classes.push('cqa-bg-transparent', 'cqa-border', 'cqa-border-primary-muted');
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
if (this.isFocused) {
|
|
110
|
+
classes.push('cqa-bg-primary-surface-alt', 'cqa-border', 'cqa-border-primary-hover', 'cqa-shadow-[0px_4px_4px_rgba(0,0,0,0.25)]');
|
|
111
|
+
}
|
|
112
|
+
else if (this.isHovered || this.isPressed) {
|
|
113
|
+
classes.push('cqa-bg-primary-surface', 'cqa-border', 'cqa-border-primary');
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
classes.push('cqa-bg-transparent', 'cqa-border', 'cqa-border-slate');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else if (this.variant === 'text') {
|
|
121
|
+
if (this.disabled) {
|
|
122
|
+
classes.push('cqa-bg-transparent');
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
classes.push('cqa-bg-transparent');
|
|
126
|
+
if (this.isHovered || this.isFocused || this.isPressed) {
|
|
127
|
+
classes.push('cqa-bg-primary-surface');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else if (this.variant === 'elevated') {
|
|
132
|
+
if (this.disabled) {
|
|
133
|
+
classes.push('cqa-bg-primary-muted', 'cqa-shadow-none');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
if (this.isFocused) {
|
|
137
|
+
classes.push('cqa-bg-primary-surface-alt', 'cqa-shadow-[0px_4px_4px_rgba(0,0,0,0.25)]');
|
|
138
|
+
}
|
|
139
|
+
else if (this.isPressed) {
|
|
140
|
+
classes.push('cqa-bg-primary-surface', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
|
|
141
|
+
}
|
|
142
|
+
else if (this.isHovered) {
|
|
143
|
+
classes.push('cqa-bg-primary-surface-alt', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_2px_6px_2px_rgba(0,0,0,0.15)]');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
classes.push('cqa-bg-primary-surface', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else if (this.variant === 'tonal') {
|
|
151
|
+
if (this.disabled) {
|
|
152
|
+
classes.push('cqa-bg-primary-muted');
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
if (this.isHovered) {
|
|
156
|
+
classes.push('cqa-bg-tonal-hover', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
classes.push('cqa-bg-primary-surface-alt');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return classes;
|
|
164
|
+
}
|
|
165
|
+
get textClass() {
|
|
166
|
+
if (this.disabled) {
|
|
167
|
+
if (this.variant === 'outlined' || this.variant === 'text') {
|
|
168
|
+
return 'cqa-text-ink';
|
|
169
|
+
}
|
|
170
|
+
return 'cqa-text-ink-muted';
|
|
171
|
+
}
|
|
172
|
+
switch (this.variant) {
|
|
173
|
+
case 'filled':
|
|
174
|
+
return 'cqa-text-surface-default';
|
|
175
|
+
case 'outlined':
|
|
176
|
+
if (this.isFocused || this.isHovered || this.isPressed) {
|
|
177
|
+
return 'cqa-text-primary-hover';
|
|
178
|
+
}
|
|
179
|
+
return 'cqa-text-slate';
|
|
180
|
+
case 'text':
|
|
181
|
+
case 'elevated':
|
|
182
|
+
return 'cqa-text-primary-hover';
|
|
183
|
+
case 'tonal':
|
|
184
|
+
return 'cqa-text-ink';
|
|
185
|
+
default:
|
|
186
|
+
return '';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
onMouseEnter() {
|
|
190
|
+
if (!this.disabled) {
|
|
191
|
+
this.isHovered = true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
onMouseLeave() {
|
|
195
|
+
this.isHovered = false;
|
|
196
|
+
this.isPressed = false;
|
|
197
|
+
}
|
|
198
|
+
onMouseDown() {
|
|
199
|
+
if (!this.disabled) {
|
|
200
|
+
this.isPressed = true;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
onMouseUp() {
|
|
204
|
+
this.isPressed = false;
|
|
205
|
+
}
|
|
206
|
+
onFocus() {
|
|
207
|
+
if (!this.disabled) {
|
|
208
|
+
this.isFocused = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
onBlur() {
|
|
212
|
+
this.isFocused = false;
|
|
213
|
+
this.isPressed = false;
|
|
214
|
+
}
|
|
215
|
+
onClick(event) {
|
|
216
|
+
if (!this.disabled) {
|
|
217
|
+
this.clicked.emit(event);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ButtonComponent, selector: "cqa-button", inputs: { variant: "variant", disabled: "disabled", icon: "icon", iconPosition: "iconPosition", type: "type" }, outputs: { clicked: "clicked" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "mousedown": "onMouseDown()", "mouseup": "onMouseUp()", "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0, template: "<div id=\"cqa-ui-root\" style=\"display: inline-block; width: auto;\">\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n (click)=\"onClick($event)\"\n >\n <span [class]=\"stateLayerClasses\">\n <span *ngIf=\"icon && iconPosition === 'start'\" [class]=\"iconClasses\" [ngClass]=\"textClass\">\n <mat-icon class=\"cqa-text-[18px] cqa-leading-[18px] cqa-w-[18px] cqa-h-[18px]\">\n {{ icon }}\n </mat-icon>\n </span>\n <span [class]=\"labelClasses\" [ngClass]=\"textClass\">\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"icon && iconPosition === 'end'\" [class]=\"iconClasses\" [ngClass]=\"textClass\">\n <mat-icon class=\"cqa-text-[18px] cqa-leading-[18px] cqa-w-[18px] cqa-h-[18px]\">\n {{ icon }}\n </mat-icon>\n </span>\n </span>\n </button>\n</div>\n\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
224
|
+
type: Component,
|
|
225
|
+
args: [{ selector: 'cqa-button', template: "<div id=\"cqa-ui-root\" style=\"display: inline-block; width: auto;\">\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n (click)=\"onClick($event)\"\n >\n <span [class]=\"stateLayerClasses\">\n <span *ngIf=\"icon && iconPosition === 'start'\" [class]=\"iconClasses\" [ngClass]=\"textClass\">\n <mat-icon class=\"cqa-text-[18px] cqa-leading-[18px] cqa-w-[18px] cqa-h-[18px]\">\n {{ icon }}\n </mat-icon>\n </span>\n <span [class]=\"labelClasses\" [ngClass]=\"textClass\">\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"icon && iconPosition === 'end'\" [class]=\"iconClasses\" [ngClass]=\"textClass\">\n <mat-icon class=\"cqa-text-[18px] cqa-leading-[18px] cqa-w-[18px] cqa-h-[18px]\">\n {{ icon }}\n </mat-icon>\n </span>\n </span>\n </button>\n</div>\n\n", styles: [] }]
|
|
226
|
+
}], propDecorators: { variant: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], disabled: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], icon: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], iconPosition: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], type: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], clicked: [{
|
|
237
|
+
type: Output
|
|
238
|
+
}], onMouseEnter: [{
|
|
239
|
+
type: HostListener,
|
|
240
|
+
args: ['mouseenter']
|
|
241
|
+
}], onMouseLeave: [{
|
|
242
|
+
type: HostListener,
|
|
243
|
+
args: ['mouseleave']
|
|
244
|
+
}], onMouseDown: [{
|
|
245
|
+
type: HostListener,
|
|
246
|
+
args: ['mousedown']
|
|
247
|
+
}], onMouseUp: [{
|
|
248
|
+
type: HostListener,
|
|
249
|
+
args: ['mouseup']
|
|
250
|
+
}], onFocus: [{
|
|
251
|
+
type: HostListener,
|
|
252
|
+
args: ['focus']
|
|
253
|
+
}], onBlur: [{
|
|
254
|
+
type: HostListener,
|
|
255
|
+
args: ['blur']
|
|
256
|
+
}] } });
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTckYsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFPVyxZQUFPLEdBQWtCLFFBQVEsQ0FBQztRQUNsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGlCQUFZLEdBQW9CLE9BQU8sQ0FBQztRQUN4QyxTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUVuRCwwQkFBMEI7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7S0EwTjVCO0lBeE5DLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFVBQVU7WUFDVixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsa0JBQWtCO1NBQ25CLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsV0FBVyxDQUFDLElBQUksQ0FBQyx3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R0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBR0QsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBR0QsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs0R0FyT1UsZUFBZTtnR0FBZixlQUFlLDhYQ1Q1Qiw0NkJBMEJBOzJGRGpCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7OEJBTWIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBcUxQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQVExQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFPMUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVc7Z0JBUXpCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTO2dCQU12QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSAnZmlsbGVkJyB8ICdvdXRsaW5lZCcgfCAndGV4dCcgfCAnZWxldmF0ZWQnIHwgJ3RvbmFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdmaWxsZWQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8vIEludGVybmFsIHN0YXRlIHRyYWNraW5nXG4gIGlzSG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQcmVzc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWZsZXgtY29sJyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1wLTAnLFxuICAgICAgJ2NxYS1nYXAtMicsXG4gICAgICAnY3FhLXJvdW5kZWQtbGcnLFxuICAgICAgJ2NxYS1jdXJzb3ItcG9pbnRlcicsXG4gICAgICAnY3FhLWZvbnQtaW50ZXInLFxuICAgICAgJ2NxYS1mb250LXNlbWlib2xkJyxcbiAgICAgICdjcWEtdGV4dC1zbScsXG4gICAgICAnY3FhLWxlYWRpbmctWzE0cHhdJyxcbiAgICAgICdjcWEtdHJhbnNpdGlvbi1hbGwnLFxuICAgICAgJ2NxYS1kdXJhdGlvbi0yMDAnLFxuICAgICAgJ2NxYS1vdXRsaW5lLW5vbmUnXG4gICAgXTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtY3Vyc29yLW5vdC1hbGxvd2VkJyk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHZhcmlhbnQgYW5kIHN0YXRlIHNwZWNpZmljIGNsYXNzZXNcbiAgICBjb25zdCB2YXJpYW50Q2xhc3NlcyA9IHRoaXMuZ2V0VmFyaWFudENsYXNzZXMoKTtcbiAgICBcbiAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAuLi52YXJpYW50Q2xhc3Nlc10uam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHN0YXRlTGF5ZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWZsZXgtcm93JyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1nYXAtMicsXG4gICAgICAnY3FhLXctZnVsbCcsXG4gICAgICAnY3FhLWgtZnVsbCcsXG4gICAgICAnY3FhLXB5LVsxMHB4XScsXG4gICAgICAnY3FhLXB4LTYnLFxuICAgIF07XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgbGFiZWxDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLXRleHQtY2VudGVyJyxcbiAgICAgICdjcWEtZm9udC1pbnRlcicsXG4gICAgICAnY3FhLWZvbnQtc2VtaWJvbGQnLFxuICAgICAgJ2NxYS10ZXh0LXNtJyxcbiAgICAgICdjcWEtbGVhZGluZy1bMTRweF0nLFxuICAgICAgJ2NxYS1mbGV4LW5vbmUnLFxuICAgICAgdGhpcy50ZXh0Q2xhc3MsXG4gICAgXTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LVswLjM4XScpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBpY29uQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbXG4gICAgICAnY3FhLWZsZXgnLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICAnY3FhLXctWzE0cHhdJyxcbiAgICAgICdjcWEtaC1bMTRweF0nLFxuICAgICAgJ2NxYS1zaHJpbmstMCcsXG4gICAgICAnY3FhLWZsZXgtbm9uZSdcbiAgICBdO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LVswLjM4XScpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhbnRDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2ZpbGxlZCcpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnknKTtcbiAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzFweF8zcHhfMXB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFudCA9PT0gJ291dGxpbmVkJykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZS1hbHQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktaG92ZXInLCAnY3FhLXNoYWRvdy1bMHB4XzRweF80cHhfcmdiYSgwLDAsMCwwLjI1KV0nKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScsICdjcWEtYm9yZGVyJywgJ2NxYS1ib3JkZXItcHJpbWFyeScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRyYW5zcGFyZW50JywgJ2NxYS1ib3JkZXInLCAnY3FhLWJvcmRlci1zbGF0ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICd0ZXh0Jykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRyYW5zcGFyZW50Jyk7XG4gICAgICAgIGlmICh0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICdlbGV2YXRlZCcpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktbXV0ZWQnLCAnY3FhLXNoYWRvdy1ub25lJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UtYWx0JywgJ2NxYS1zaGFkb3ctWzBweF80cHhfNHB4X3JnYmEoMCwwLDAsMC4yNSldJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXNzZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UnLCAnY3FhLXNoYWRvdy1bMHB4XzFweF8ycHhfcmdiYSgwLDAsMCwwLjMpLDBweF8xcHhfM3B4XzFweF9yZ2JhKDAsMCwwLDAuMTUpXScpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlLWFsdCcsICdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzJweF82cHhfMnB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlJywgJ2NxYS1zaGFkb3ctWzBweF8xcHhfMnB4X3JnYmEoMCwwLDAsMC4zKSwwcHhfMXB4XzNweF8xcHhfcmdiYSgwLDAsMCwwLjE1KV0nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAndG9uYWwnKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LW11dGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc0hvdmVyZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy10b25hbC1ob3ZlcicsICdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzFweF8zcHhfMXB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlLWFsdCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXQgdGV4dENsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lZCcgfHwgdGhpcy52YXJpYW50ID09PSAndGV4dCcpIHtcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmsnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmstbXV0ZWQnO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy52YXJpYW50KSB7XG4gICAgICBjYXNlICdmaWxsZWQnOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LXN1cmZhY2UtZGVmYXVsdCc7XG4gICAgICBjYXNlICdvdXRsaW5lZCc6XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIHJldHVybiAnY3FhLXRleHQtcHJpbWFyeS1ob3Zlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1zbGF0ZSc7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgIGNhc2UgJ2VsZXZhdGVkJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1wcmltYXJ5LWhvdmVyJztcbiAgICAgIGNhc2UgJ3RvbmFsJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmsnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nKVxuICBvbk1vdXNlRG93bigpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNQcmVzc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJylcbiAgb25Nb3VzZVVwKCkge1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIG9uRm9jdXMoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgaWQ9XCJjcWEtdWktcm9vdFwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogYXV0bztcIj5cbiAgPGJ1dHRvblxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXNcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICA+XG4gICAgPHNwYW4gW2NsYXNzXT1cInN0YXRlTGF5ZXJDbGFzc2VzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImljb24gJiYgaWNvblBvc2l0aW9uID09PSAnc3RhcnQnXCIgW2NsYXNzXT1cImljb25DbGFzc2VzXCIgW25nQ2xhc3NdPVwidGV4dENsYXNzXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXctWzE4cHhdIGNxYS1oLVsxOHB4XVwiPlxuICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJsYWJlbENsYXNzZXNcIiBbbmdDbGFzc109XCJ0ZXh0Q2xhc3NcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJpY29uICYmIGljb25Qb3NpdGlvbiA9PT0gJ2VuZCdcIiBbY2xhc3NdPVwiaWNvbkNsYXNzZXNcIiBbbmdDbGFzc109XCJ0ZXh0Q2xhc3NcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdy1bMThweF0gY3FhLWgtWzE4cHhdXCI+XG4gICAgICAgICAge3sgaWNvbiB9fVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuIl19
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild, } from '@angular/core';
|
|
2
|
+
import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../button/button.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/cdk/portal";
|
|
7
|
+
export class DialogComponent {
|
|
8
|
+
constructor(viewContainerRef, cdr) {
|
|
9
|
+
this.viewContainerRef = viewContainerRef;
|
|
10
|
+
this.cdr = cdr;
|
|
11
|
+
this.contentAttached = false;
|
|
12
|
+
}
|
|
13
|
+
attachTemplate(template, context) {
|
|
14
|
+
if (!this.portalOutlet) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const templateContext = context ??
|
|
18
|
+
{
|
|
19
|
+
$implicit: this.config?.data,
|
|
20
|
+
data: this.config?.data,
|
|
21
|
+
};
|
|
22
|
+
const portal = new TemplatePortal(template, this.viewContainerRef, templateContext);
|
|
23
|
+
this.portalOutlet.attachTemplatePortal(portal);
|
|
24
|
+
this.markContentAttached();
|
|
25
|
+
}
|
|
26
|
+
attachComponent(component) {
|
|
27
|
+
if (!this.portalOutlet) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const componentRef = this.portalOutlet.attachComponentPortal(component);
|
|
31
|
+
this.markContentAttached();
|
|
32
|
+
return componentRef;
|
|
33
|
+
}
|
|
34
|
+
async onButtonClick(button) {
|
|
35
|
+
const closeOnClick = button.closeOnClick ?? true;
|
|
36
|
+
let handlerResult = undefined;
|
|
37
|
+
if (button.handler) {
|
|
38
|
+
handlerResult = button.handler(this.dialogRef);
|
|
39
|
+
}
|
|
40
|
+
const resolved = handlerResult instanceof Promise ? await handlerResult : handlerResult;
|
|
41
|
+
if (!closeOnClick || resolved === false) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.dialogRef.close(resolved);
|
|
45
|
+
}
|
|
46
|
+
get buttonAlignmentClass() {
|
|
47
|
+
const alignment = this.config?.buttonAlignment ?? 'right';
|
|
48
|
+
return this.mapAlignmentToClass(alignment);
|
|
49
|
+
}
|
|
50
|
+
get panelClassList() {
|
|
51
|
+
const baseClasses = [
|
|
52
|
+
'cqa-relative',
|
|
53
|
+
'cqa-w-full',
|
|
54
|
+
'cqa-bg-white',
|
|
55
|
+
'cqa-rounded-2xl',
|
|
56
|
+
'cqa-shadow-md',
|
|
57
|
+
'cqa-border',
|
|
58
|
+
'cqa-border-[#E5E7EB]',
|
|
59
|
+
'cqa-p-6',
|
|
60
|
+
'cqa-text-left',
|
|
61
|
+
];
|
|
62
|
+
const custom = this.config?.panelClass;
|
|
63
|
+
if (!custom) {
|
|
64
|
+
return baseClasses;
|
|
65
|
+
}
|
|
66
|
+
return Array.isArray(custom) ? [...baseClasses, ...custom] : [...baseClasses, custom];
|
|
67
|
+
}
|
|
68
|
+
get panelStyles() {
|
|
69
|
+
return {
|
|
70
|
+
width: this.config?.width,
|
|
71
|
+
maxWidth: this.config?.maxWidth ?? '480px',
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
buttonVariant(button) {
|
|
75
|
+
const role = this.normalizeRole(button.role);
|
|
76
|
+
switch (role) {
|
|
77
|
+
case 'secondary':
|
|
78
|
+
return 'outlined';
|
|
79
|
+
case 'text':
|
|
80
|
+
return 'text';
|
|
81
|
+
case 'tonal':
|
|
82
|
+
return 'tonal';
|
|
83
|
+
case 'elevated':
|
|
84
|
+
return 'elevated';
|
|
85
|
+
case 'filled':
|
|
86
|
+
case 'primary':
|
|
87
|
+
case 'warn':
|
|
88
|
+
default:
|
|
89
|
+
return 'filled';
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
buttonHostClasses(button) {
|
|
93
|
+
const role = this.normalizeRole(button.role);
|
|
94
|
+
if (role === 'warn') {
|
|
95
|
+
return ['cqa-dialog-btn-warn'];
|
|
96
|
+
}
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
mapAlignmentToClass(alignment) {
|
|
100
|
+
switch (alignment) {
|
|
101
|
+
case 'left':
|
|
102
|
+
return 'cqa-justify-start';
|
|
103
|
+
case 'center':
|
|
104
|
+
return 'cqa-justify-center';
|
|
105
|
+
case 'right':
|
|
106
|
+
default:
|
|
107
|
+
return 'cqa-justify-end';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
markContentAttached() {
|
|
111
|
+
this.contentAttached = true;
|
|
112
|
+
this.cdr.markForCheck();
|
|
113
|
+
}
|
|
114
|
+
normalizeRole(role) {
|
|
115
|
+
return (role ?? 'secondary').trim().split(/\s+/)[0];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
+
DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DialogComponent, selector: "cqa-dialog", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], ngImport: i0, template: "<div id=\"cqa-ui-root\" style=\"display: block;\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-[#111827]\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-[#4B5563]\">\n {{ config.description }}\n </p>\n\n <div\n *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\"\n >\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-[#111827]\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button\n *ngFor=\"let button of config.buttons\"\n type=\"button\"\n [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\"\n (clicked)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n\n", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "type"], outputs: ["clicked"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DialogComponent, decorators: [{
|
|
121
|
+
type: Component,
|
|
122
|
+
args: [{ selector: 'cqa-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\" style=\"display: block;\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-[#111827]\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-[#4B5563]\">\n {{ config.description }}\n </p>\n\n <div\n *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\"\n >\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-[#111827]\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button\n *ngFor=\"let button of config.buttons\"\n type=\"button\"\n [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\"\n (clicked)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n\n", styles: [] }]
|
|
123
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { portalOutlet: [{
|
|
124
|
+
type: ViewChild,
|
|
125
|
+
args: [CdkPortalOutlet, { static: true }]
|
|
126
|
+
}] } });
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBR1QsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQW1CLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVd2RixNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUE2QixnQkFBa0MsRUFBbUIsR0FBc0I7UUFBM0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUZ4RyxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUVtRixDQUFDO0lBRTVHLGNBQWMsQ0FBQyxRQUE4QixFQUFFLE9BQWlDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUVELE1BQU0sZUFBZSxHQUNuQixPQUFPO1lBQ1A7Z0JBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTthQUN4QixDQUFDO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBbUM7UUFDakQsSUFBSSxDQUFDLElBQUks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QUM7SUFDWixDQUFDO0lBRU8sbUJBQW1CLENBQUMsU0FBZ0M7UUFDMUQsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxNQUFNO2dCQUNULE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsS0FBSyxRQUFRO2dCQUNYLE9BQU8sb0JBQW9CLENBQUM7WUFDOUIsS0FBSyxPQUFPLENBQUM7WUFDYjtnQkFDRSxPQUFPLGlCQUFpQixDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBd0I7UUFDNUMsT0FBTyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7NEdBeklVLGVBQWU7Z0dBQWYsZUFBZSxnR0FFZixlQUFlLDhEQ3RCNUIseS9DQTBDQTsyRkR0QmEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU07dUlBSUQsWUFBWTtzQkFBekQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERpYWxvZ0J1dHRvbkFsaWdubWVudCwgRGlhbG9nQnV0dG9uQ29uZmlnLCBEaWFsb2dDb25maWcsIERpYWxvZ0NvbnRlbnRDb25maWcgfSBmcm9tICcuL2RpYWxvZy5tb2RlbHMnO1xuaW1wb3J0IHsgQnV0dG9uVmFyaWFudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudDxUUmVzdWx0ID0gdW5rbm93bj4ge1xuXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb3J0YWxPdXRsZXQ/OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgY29uZmlnITogRGlhbG9nQ29uZmlnPERpYWxvZ0NvbnRlbnRDb25maWcsIFRSZXN1bHQ+O1xuICBkaWFsb2dSZWYhOiBEaWFsb2dSZWY8VFJlc3VsdD47XG5cbiAgY29udGVudEF0dGFjaGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgYXR0YWNoVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+LCBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucG9ydGFsT3V0bGV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVDb250ZXh0ID1cbiAgICAgIGNvbnRleHQgPz9cbiAgICAgIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbmZpZz8uZGF0YSxcbiAgICAgICAgZGF0YTogdGhpcy5jb25maWc/LmRhdGEsXG4gICAgICB9O1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0ZW1wbGF0ZUNvbnRleHQpO1xuICAgIHRoaXMucG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gICAgdGhpcy5tYXJrQ29udGVudEF0dGFjaGVkKCk7XG4gIH1cblxuICBhdHRhY2hDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRQb3J0YWw8dW5rbm93bj4pOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5wb3J0YWxPdXRsZXQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudCk7XG4gICAgdGhpcy5tYXJrQ29udGVudEF0dGFjaGVkKCk7XG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIGFzeW5jIG9uQnV0dG9uQ2xpY2soYnV0dG9uOiBEaWFsb2dCdXR0b25Db25maWc8VFJlc3VsdD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbG9zZU9uQ2xpY2sgPSBidXR0b24uY2xvc2VPbkNsaWNrID8/IHRydWU7XG4gICAgbGV0IGhhbmRsZXJSZXN1bHQ6IFRSZXN1bHQgfCBmYWxzZSB8IHZvaWQgfCBQcm9taXNlPFRSZXN1bHQgfCBmYWxzZSB8IHZvaWQ+ID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGJ1dHRvbi5oYW5kbGVyKSB7XG4gICAgICBoYW5kbGVyUmVzdWx0ID0gYnV0dG9uLmhhbmRsZXIodGhpcy5kaWFsb2dSZWYpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdmVkID0gaGFuZGxlclJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBhd2FpdCBoYW5kbGVyUmVzdWx0IDogaGFuZGxlclJlc3VsdDtcblxuICAgIGlmICghY2xvc2VPbkNsaWNrIHx8IHJlc29sdmVkID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc29sdmVkIGFzIFRSZXN1bHQgfCB1bmRlZmluZWQpO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkFsaWdubWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gdGhpcy5jb25maWc/LmJ1dHRvbkFsaWdubWVudCA/PyAncmlnaHQnO1xuICAgIHJldHVybiB0aGlzLm1hcEFsaWdubWVudFRvQ2xhc3MoYWxpZ25tZW50KTtcbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLXJlbGF0aXZlJyxcbiAgICAgICdjcWEtdy1mdWxsJyxcbiAgICAgICdjcWEtYmctd2hpdGUnLFxuICAgICAgJ2NxYS1yb3VuZGVkLTJ4bCcsXG4gICAgICAnY3FhLXNoYWRvdy1tZCcsXG4gICAgICAnY3FhLWJvcmRlcicsXG4gICAgICAnY3FhLWJvcmRlci1bI0U1RTdFQl0nLFxuICAgICAgJ2NxYS1wLTYnLFxuICAgICAgJ2NxYS10ZXh0LWxlZnQnLFxuICAgIF07XG5cbiAgICBjb25zdCBjdXN0b20gPSB0aGlzLmNvbmZpZz8ucGFuZWxDbGFzcztcblxuICAgIGlmICghY3VzdG9tKSB7XG4gICAgICByZXR1cm4gYmFzZUNsYXNzZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY3VzdG9tKSA/IFsuLi5iYXNlQ2xhc3NlcywgLi4uY3VzdG9tXSA6IFsuLi5iYXNlQ2xhc3NlcywgY3VzdG9tXTtcbiAgfVxuXG4gIGdldCBwYW5lbFN0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IHRoaXMuY29uZmlnPy53aWR0aCxcbiAgICAgIG1heFdpZHRoOiB0aGlzLmNvbmZpZz8ubWF4V2lkdGggPz8gJzQ4MHB4JyxcbiAgICB9O1xuICB9XG5cbiAgYnV0dG9uVmFyaWFudChidXR0b246IERpYWxvZ0J1dHRvbkNvbmZpZzxUUmVzdWx0Pik6IEJ1dHRvblZhcmlhbnQge1xuICAgIGNvbnN0IHJvbGUgPSB0aGlzLm5vcm1hbGl6ZVJvbGUoYnV0dG9uLnJvbGUpO1xuXG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlICdzZWNvbmRhcnknOlxuICAgICAgICByZXR1cm4gJ291dGxpbmVkJztcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICByZXR1cm4gJ3RleHQnO1xuICAgICAgY2FzZSAndG9uYWwnOlxuICAgICAgICByZXR1cm4gJ3RvbmFsJztcbiAgICAgIGNhc2UgJ2VsZXZhdGVkJzpcbiAgICAgICAgcmV0dXJuICdlbGV2YXRlZCc7XG4gICAgICBjYXNlICdmaWxsZWQnOlxuICAgICAgY2FzZSAncHJpbWFyeSc6XG4gICAgICBjYXNlICd3YXJuJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmlsbGVkJztcbiAgICB9XG4gIH1cblxuICBidXR0b25Ib3N0Q2xhc3NlcyhidXR0b246IERpYWxvZ0J1dHRvbkNvbmZpZzxUUmVzdWx0Pik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCByb2xlID0gdGhpcy5ub3JtYWxpemVSb2xlKGJ1dHRvbi5yb2xlKTtcblxuICAgIGlmIChyb2xlID09PSAnd2FybicpIHtcbiAgICAgIHJldHVybiBbJ2NxYS1kaWFsb2ctYnRuLXdhcm4nXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIG1hcEFsaWdubWVudFRvQ2xhc3MoYWxpZ25tZW50OiBEaWFsb2dCdXR0b25BbGlnbm1lbnQpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuICdjcWEtanVzdGlmeS1zdGFydCc7XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgICByZXR1cm4gJ2NxYS1qdXN0aWZ5LWNlbnRlcic7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2NxYS1qdXN0aWZ5LWVuZCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQ29udGVudEF0dGFjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudEF0dGFjaGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplUm9sZShyb2xlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiAocm9sZSA/PyAnc2Vjb25kYXJ5JykudHJpbSgpLnNwbGl0KC9cXHMrLylbMF07XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLXctZnVsbCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB4LTQgc206Y3FhLXB4LTZcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhbmVsQ2xhc3NMaXN0XCIgW25nU3R5bGVdPVwicGFuZWxTdHlsZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiY3FhLXRleHQtbGcgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMxMTE4MjddXCI+XG4gICAgICAgICAgICB7eyBjb25maWcudGl0bGUgfX1cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHAgKm5nSWY9XCJjb25maWcuZGVzY3JpcHRpb25cIiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLTYgY3FhLXRleHQtWyM0QjU1NjNdXCI+XG4gICAgICAgICAgICB7eyBjb25maWcuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbmZpZy53YXJuaW5nXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXJvdW5kZWQteGwgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXJlZC0yMDAgY3FhLWJnLXJlZC01MCBjcWEtcHgtNCBjcWEtcHktMyBjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy01IGNxYS10ZXh0LXJlZC03MDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGNvbmZpZy53YXJuaW5nIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtdGV4dC1bIzExMTgyN11cIiBbY2xhc3MuaGlkZGVuXT1cIiFjb250ZW50QXR0YWNoZWRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtNCBjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1nYXAtM1wiIFtuZ0NsYXNzXT1cImJ1dHRvbkFsaWdubWVudENsYXNzXCI+XG4gICAgICAgICAgPGNxYS1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY29uZmlnLmJ1dHRvbnNcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50KGJ1dHRvbilcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiYnV0dG9uSG9zdENsYXNzZXMoYnV0dG9uKVwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKGJ1dHRvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB9fVxuICAgICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG4iXX0=
|