lib-portal-angular 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +24 -0
- package/esm2022/lib/components/advanced-calendar/calendar.component.mjs +135 -0
- package/esm2022/lib/components/advanced-calendar/date-picker.component.mjs +113 -0
- package/esm2022/lib/components/advanced-calendar/date-time-picker.component.mjs +113 -0
- package/esm2022/lib/components/badge/badge.component.mjs +151 -0
- package/esm2022/lib/components/button/button.component.mjs +192 -0
- package/esm2022/lib/components/card/card.component.mjs +37 -0
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +112 -0
- package/esm2022/lib/components/code-highlight/code-highlight.component.mjs +51 -0
- package/esm2022/lib/components/components.module.mjs +120 -0
- package/esm2022/lib/components/form/form.component.mjs +36 -0
- package/esm2022/lib/components/imput/input.component.mjs +189 -0
- package/esm2022/lib/components/multi-select/multi-select.component.mjs +147 -0
- package/esm2022/lib/components/radio/radio.component.mjs +114 -0
- package/esm2022/lib/components/select/select.component.mjs +107 -0
- package/esm2022/lib/components/tables/bootstrap-table.component.mjs +115 -0
- package/esm2022/lib/components/textarea/textarea.component.mjs +184 -0
- package/esm2022/lib/enum/ButtonClassesEnum.mjs +13 -0
- package/esm2022/lib/lib-portal-angular.module.mjs +20 -0
- package/esm2022/lib-portal-angular.mjs +5 -0
- package/esm2022/public-api.mjs +28 -0
- package/fesm2022/lib-portal-angular.mjs +1887 -0
- package/fesm2022/lib-portal-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/advanced-calendar/calendar.component.d.ts +28 -0
- package/lib/components/advanced-calendar/date-picker.component.d.ts +25 -0
- package/lib/components/advanced-calendar/date-time-picker.component.d.ts +25 -0
- package/lib/components/badge/badge.component.d.ts +34 -0
- package/lib/components/button/button.component.d.ts +45 -0
- package/lib/components/card/card.component.d.ts +6 -0
- package/lib/components/checkbox/checkbox.component.d.ts +23 -0
- package/lib/components/code-highlight/code-highlight.component.d.ts +15 -0
- package/lib/components/components.module.d.ts +26 -0
- package/lib/components/form/form.component.d.ts +6 -0
- package/lib/components/imput/input.component.d.ts +43 -0
- package/lib/components/multi-select/multi-select.component.d.ts +31 -0
- package/lib/components/radio/radio.component.d.ts +25 -0
- package/lib/components/select/select.component.d.ts +27 -0
- package/lib/components/tables/bootstrap-table.component.d.ts +33 -0
- package/lib/components/textarea/textarea.component.d.ts +42 -0
- package/lib/enum/ButtonClassesEnum.d.ts +11 -0
- package/lib/lib-portal-angular.module.d.ts +7 -0
- package/package.json +25 -0
- package/public-api.d.ts +18 -0
@@ -0,0 +1,189 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/common";
|
5
|
+
export class InputComponent {
|
6
|
+
constructor() {
|
7
|
+
this.label = 'Default Label';
|
8
|
+
this.placeholder = 'Default Placeholder';
|
9
|
+
this.id = 'inputId';
|
10
|
+
this.type = 'text';
|
11
|
+
this.disabled = false;
|
12
|
+
this.readonly = false;
|
13
|
+
this.maxlength = null;
|
14
|
+
this.minlength = null;
|
15
|
+
this.required = false;
|
16
|
+
this.pattern = null;
|
17
|
+
this.autofocus = false;
|
18
|
+
this.marginTop = 0;
|
19
|
+
this.marginBottom = 0;
|
20
|
+
this.marginLeft = 0;
|
21
|
+
this.marginRight = 0;
|
22
|
+
this.inputEvent = new EventEmitter();
|
23
|
+
this.changeEvent = new EventEmitter();
|
24
|
+
this.focusEvent = new EventEmitter();
|
25
|
+
this.blurEvent = new EventEmitter();
|
26
|
+
this.keyupEvent = new EventEmitter();
|
27
|
+
this.keydownEvent = new EventEmitter();
|
28
|
+
this.keypressEvent = new EventEmitter();
|
29
|
+
this.onChangeCallback = () => { };
|
30
|
+
this.onTouchedCallback = () => { };
|
31
|
+
this.value = '';
|
32
|
+
}
|
33
|
+
onInput(event) {
|
34
|
+
const inputElement = event.target;
|
35
|
+
this.value = inputElement.value;
|
36
|
+
this.onChangeCallback(this.value);
|
37
|
+
this.inputEvent.emit(event);
|
38
|
+
}
|
39
|
+
onChange(event) {
|
40
|
+
this.changeEvent.emit(event);
|
41
|
+
}
|
42
|
+
onFocus(event) {
|
43
|
+
this.focusEvent.emit(event);
|
44
|
+
}
|
45
|
+
onBlur(event) {
|
46
|
+
this.onTouchedCallback();
|
47
|
+
this.blurEvent.emit(event);
|
48
|
+
}
|
49
|
+
onKeyup(event) {
|
50
|
+
this.keyupEvent.emit(event);
|
51
|
+
}
|
52
|
+
onKeydown(event) {
|
53
|
+
this.keydownEvent.emit(event);
|
54
|
+
}
|
55
|
+
onKeypress(event) {
|
56
|
+
this.keypressEvent.emit(event);
|
57
|
+
}
|
58
|
+
writeValue(value) {
|
59
|
+
this.value = value;
|
60
|
+
}
|
61
|
+
registerOnChange(fn) {
|
62
|
+
this.onChangeCallback = fn;
|
63
|
+
}
|
64
|
+
registerOnTouched(fn) {
|
65
|
+
this.onTouchedCallback = fn;
|
66
|
+
}
|
67
|
+
setDisabledState(isDisabled) {
|
68
|
+
this.disabled = isDisabled;
|
69
|
+
}
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "sim-app-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
|
72
|
+
{
|
73
|
+
provide: NG_VALUE_ACCESSOR,
|
74
|
+
useExisting: forwardRef(() => InputComponent),
|
75
|
+
multi: true
|
76
|
+
}
|
77
|
+
], ngImport: i0, template: `
|
78
|
+
<div class="form-group" [ngStyle]="{
|
79
|
+
'margin-top': marginTop + 'rem',
|
80
|
+
'margin-bottom': marginBottom + 'rem',
|
81
|
+
'margin-left': marginLeft + 'rem',
|
82
|
+
'margin-right': marginRight + 'rem'
|
83
|
+
}">
|
84
|
+
<label [for]="id">{{ label }}</label>
|
85
|
+
<input [type]="type"
|
86
|
+
class="form-control custom-input"
|
87
|
+
[id]="id"
|
88
|
+
[placeholder]="placeholder"
|
89
|
+
[value]="value"
|
90
|
+
(input)="onInput($event)"
|
91
|
+
(change)="onChange($event)"
|
92
|
+
(focus)="onFocus($event)"
|
93
|
+
(blur)="onBlur($event)"
|
94
|
+
(keyup)="onKeyup($event)"
|
95
|
+
(keydown)="onKeydown($event)"
|
96
|
+
(keypress)="onKeypress($event)"
|
97
|
+
[disabled]="disabled"
|
98
|
+
[readonly]="readonly"
|
99
|
+
[attr.maxlength]="maxlength"
|
100
|
+
[attr.minlength]="minlength"
|
101
|
+
[required]="required"
|
102
|
+
[attr.pattern]="pattern"
|
103
|
+
[autofocus]="autofocus">
|
104
|
+
</div>
|
105
|
+
`, isInline: true, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
106
|
+
}
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, decorators: [{
|
108
|
+
type: Component,
|
109
|
+
args: [{ selector: 'sim-app-input', template: `
|
110
|
+
<div class="form-group" [ngStyle]="{
|
111
|
+
'margin-top': marginTop + 'rem',
|
112
|
+
'margin-bottom': marginBottom + 'rem',
|
113
|
+
'margin-left': marginLeft + 'rem',
|
114
|
+
'margin-right': marginRight + 'rem'
|
115
|
+
}">
|
116
|
+
<label [for]="id">{{ label }}</label>
|
117
|
+
<input [type]="type"
|
118
|
+
class="form-control custom-input"
|
119
|
+
[id]="id"
|
120
|
+
[placeholder]="placeholder"
|
121
|
+
[value]="value"
|
122
|
+
(input)="onInput($event)"
|
123
|
+
(change)="onChange($event)"
|
124
|
+
(focus)="onFocus($event)"
|
125
|
+
(blur)="onBlur($event)"
|
126
|
+
(keyup)="onKeyup($event)"
|
127
|
+
(keydown)="onKeydown($event)"
|
128
|
+
(keypress)="onKeypress($event)"
|
129
|
+
[disabled]="disabled"
|
130
|
+
[readonly]="readonly"
|
131
|
+
[attr.maxlength]="maxlength"
|
132
|
+
[attr.minlength]="minlength"
|
133
|
+
[required]="required"
|
134
|
+
[attr.pattern]="pattern"
|
135
|
+
[autofocus]="autofocus">
|
136
|
+
</div>
|
137
|
+
`, providers: [
|
138
|
+
{
|
139
|
+
provide: NG_VALUE_ACCESSOR,
|
140
|
+
useExisting: forwardRef(() => InputComponent),
|
141
|
+
multi: true
|
142
|
+
}
|
143
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem}\n"] }]
|
144
|
+
}], propDecorators: { label: [{
|
145
|
+
type: Input
|
146
|
+
}], placeholder: [{
|
147
|
+
type: Input
|
148
|
+
}], id: [{
|
149
|
+
type: Input
|
150
|
+
}], type: [{
|
151
|
+
type: Input
|
152
|
+
}], disabled: [{
|
153
|
+
type: Input
|
154
|
+
}], readonly: [{
|
155
|
+
type: Input
|
156
|
+
}], maxlength: [{
|
157
|
+
type: Input
|
158
|
+
}], minlength: [{
|
159
|
+
type: Input
|
160
|
+
}], required: [{
|
161
|
+
type: Input
|
162
|
+
}], pattern: [{
|
163
|
+
type: Input
|
164
|
+
}], autofocus: [{
|
165
|
+
type: Input
|
166
|
+
}], marginTop: [{
|
167
|
+
type: Input
|
168
|
+
}], marginBottom: [{
|
169
|
+
type: Input
|
170
|
+
}], marginLeft: [{
|
171
|
+
type: Input
|
172
|
+
}], marginRight: [{
|
173
|
+
type: Input
|
174
|
+
}], inputEvent: [{
|
175
|
+
type: Output
|
176
|
+
}], changeEvent: [{
|
177
|
+
type: Output
|
178
|
+
}], focusEvent: [{
|
179
|
+
type: Output
|
180
|
+
}], blurEvent: [{
|
181
|
+
type: Output
|
182
|
+
}], keyupEvent: [{
|
183
|
+
type: Output
|
184
|
+
}], keydownEvent: [{
|
185
|
+
type: Output
|
186
|
+
}], keypressEvent: [{
|
187
|
+
type: Output
|
188
|
+
}] } });
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUE0RHpFLE1BQU0sT0FBTyxjQUFjO0lBMUQzQjtRQTJEVyxVQUFLLEdBQVcsZUFBZSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVcscUJBQXFCLENBQUM7UUFDNUMsT0FBRSxHQUFXLFNBQVMsQ0FBQztRQUN2QixTQUFJLEdBQVcsTUFBTSxDQUFDO1FBQ3RCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBQzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFM0IsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM1RCxnQkFBVyxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzdELGVBQVUsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUN0RSxjQUFTLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFDckUsZUFBVSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUM1RSxpQkFBWSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUM5RSxrQkFBYSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUVqRixxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVsRCxVQUFLLEdBQVcsRUFBRSxDQUFDO0tBaURwQjtJQS9DQyxPQUFPLENBQUMsS0FBWTtRQUNsQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7K0dBN0VVLGNBQWM7bUdBQWQsY0FBYywra0JBVGQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQXJEUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVDs7NEZBNEJVLGNBQWM7a0JBMUQxQixTQUFTOytCQUNFLGVBQWUsWUFDZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxhQW1CVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7NEJBQzdDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltLWFwcC1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1ib3R0b20nOiBtYXJnaW5Cb3R0b20gKyAncmVtJyxcbiAgICAgICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQgKyAncmVtJyxcbiAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCArICdyZW0nXG4gICAgfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzdG9tLWlucHV0XCJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAoa2V5dXApPVwib25LZXl1cCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5cHJlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxcmVtOyAvKiBEZWZpbmUgbyB0YW1hbmhvIHBhZHLDo28gZGEgZm9udGUgKi9cbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICAuZm9ybS1jaGVjay1pbnB1dCB7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtOyAvKiBEZWZpbmUgbyB0YW1hbmhvIHBhZHLDo28gZGEgZm9udGUgcGFyYSBvIGlucHV0ICovXG4gICAgfVxuICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgZm9udC1zaXplOiAxcmVtOyAvKiBEZWZpbmUgbyB0YW1hbmhvIHBhZHLDo28gZGEgZm9udGUgcGFyYSBvIGxhYmVsICovXG4gICAgfVxuXG4gIGBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdEZWZhdWx0IExhYmVsJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdEZWZhdWx0IFBsYWNlaG9sZGVyJztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICdpbnB1dElkJztcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtaW5sZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXR0ZXJuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBpbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIGZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgQE91dHB1dCgpIGJsdXJFdmVudDogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkga2V5dXBFdmVudDogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuICBAT3V0cHV0KCkga2V5ZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBrZXlwcmVzc0V2ZW50OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMudmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5mb2N1c0V2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYmx1ckV2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25LZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5dXBFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5ZG93bkV2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25LZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5cHJlc3NFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,147 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import { of } from 'rxjs';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@angular/forms";
|
7
|
+
import * as i3 from "@ng-select/ng-select";
|
8
|
+
export class MultiSelectComponent {
|
9
|
+
constructor() {
|
10
|
+
this.label = 'Multi Select';
|
11
|
+
this.data = []; // Aceita um array de objetos genéricos
|
12
|
+
this.placeholder = 'Select items';
|
13
|
+
this.selected = []; // A variável selected deve ser um array
|
14
|
+
this.id = 'multiSelectId';
|
15
|
+
this.bindLabel = ''; // Label dinâmico genérico
|
16
|
+
this.marginTop = 0;
|
17
|
+
this.marginBottom = 0;
|
18
|
+
this.marginLeft = 0;
|
19
|
+
this.marginRight = 0;
|
20
|
+
this.keyupEvent = new EventEmitter();
|
21
|
+
this.items = of([]); // Inicialização da propriedade
|
22
|
+
this.onChangeCallback = () => { };
|
23
|
+
this.onTouchedCallback = () => { };
|
24
|
+
this.isCourseEntered = false;
|
25
|
+
}
|
26
|
+
ngOnInit() {
|
27
|
+
this.items = of(this.data);
|
28
|
+
}
|
29
|
+
onFocus() {
|
30
|
+
this.isCourseEntered = true;
|
31
|
+
}
|
32
|
+
onBlur() {
|
33
|
+
this.isCourseEntered = false;
|
34
|
+
}
|
35
|
+
onKeyUp(event) {
|
36
|
+
this.keyupEvent.emit(event);
|
37
|
+
}
|
38
|
+
writeValue(value) {
|
39
|
+
this.selected = value || [];
|
40
|
+
}
|
41
|
+
registerOnChange(fn) {
|
42
|
+
this.onChangeCallback = fn;
|
43
|
+
}
|
44
|
+
registerOnTouched(fn) {
|
45
|
+
this.onTouchedCallback = fn;
|
46
|
+
}
|
47
|
+
setDisabledState(isDisabled) {
|
48
|
+
// No implementation needed for this example
|
49
|
+
}
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "sim-app-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
|
52
|
+
{
|
53
|
+
provide: NG_VALUE_ACCESSOR,
|
54
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
55
|
+
multi: true
|
56
|
+
}
|
57
|
+
], ngImport: i0, template: `
|
58
|
+
<div class="form-group" [ngStyle]="{
|
59
|
+
'margin-top': marginTop + 'rem',
|
60
|
+
'margin-bottom': marginBottom + 'rem',
|
61
|
+
'margin-left': marginLeft + 'rem',
|
62
|
+
'margin-right': marginRight + 'rem'
|
63
|
+
}">
|
64
|
+
<label [for]="id" class="form-label">{{ label }}</label>
|
65
|
+
<ng-select
|
66
|
+
[class.course-entry]="isCourseEntered"
|
67
|
+
class="ng-select"
|
68
|
+
[items]="items | async"
|
69
|
+
[multiple]="true"
|
70
|
+
[closeOnSelect]="false"
|
71
|
+
[hideSelected]="true"
|
72
|
+
[bindLabel]="bindLabel"
|
73
|
+
[(ngModel)]="selected"
|
74
|
+
(keyup)="onKeyUp($event)"
|
75
|
+
[id]="id"
|
76
|
+
[placeholder]="selected && selected.length === 0 ? placeholder : ''"
|
77
|
+
(focus)="onFocus()"
|
78
|
+
(blur)="onBlur()"
|
79
|
+
>
|
80
|
+
<ng-template ng-option-tmp let-item="item">
|
81
|
+
{{ item[bindLabel] }}
|
82
|
+
</ng-template>
|
83
|
+
</ng-select>
|
84
|
+
</div>
|
85
|
+
`, isInline: true, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
86
|
+
}
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
88
|
+
type: Component,
|
89
|
+
args: [{ selector: 'sim-app-multi-select', template: `
|
90
|
+
<div class="form-group" [ngStyle]="{
|
91
|
+
'margin-top': marginTop + 'rem',
|
92
|
+
'margin-bottom': marginBottom + 'rem',
|
93
|
+
'margin-left': marginLeft + 'rem',
|
94
|
+
'margin-right': marginRight + 'rem'
|
95
|
+
}">
|
96
|
+
<label [for]="id" class="form-label">{{ label }}</label>
|
97
|
+
<ng-select
|
98
|
+
[class.course-entry]="isCourseEntered"
|
99
|
+
class="ng-select"
|
100
|
+
[items]="items | async"
|
101
|
+
[multiple]="true"
|
102
|
+
[closeOnSelect]="false"
|
103
|
+
[hideSelected]="true"
|
104
|
+
[bindLabel]="bindLabel"
|
105
|
+
[(ngModel)]="selected"
|
106
|
+
(keyup)="onKeyUp($event)"
|
107
|
+
[id]="id"
|
108
|
+
[placeholder]="selected && selected.length === 0 ? placeholder : ''"
|
109
|
+
(focus)="onFocus()"
|
110
|
+
(blur)="onBlur()"
|
111
|
+
>
|
112
|
+
<ng-template ng-option-tmp let-item="item">
|
113
|
+
{{ item[bindLabel] }}
|
114
|
+
</ng-template>
|
115
|
+
</ng-select>
|
116
|
+
</div>
|
117
|
+
`, providers: [
|
118
|
+
{
|
119
|
+
provide: NG_VALUE_ACCESSOR,
|
120
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
121
|
+
multi: true
|
122
|
+
}
|
123
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"] }]
|
124
|
+
}], propDecorators: { label: [{
|
125
|
+
type: Input
|
126
|
+
}], data: [{
|
127
|
+
type: Input
|
128
|
+
}], placeholder: [{
|
129
|
+
type: Input
|
130
|
+
}], selected: [{
|
131
|
+
type: Input
|
132
|
+
}], id: [{
|
133
|
+
type: Input
|
134
|
+
}], bindLabel: [{
|
135
|
+
type: Input
|
136
|
+
}], marginTop: [{
|
137
|
+
type: Input
|
138
|
+
}], marginBottom: [{
|
139
|
+
type: Input
|
140
|
+
}], marginLeft: [{
|
141
|
+
type: Input
|
142
|
+
}], marginRight: [{
|
143
|
+
type: Input
|
144
|
+
}], keyupEvent: [{
|
145
|
+
type: Output
|
146
|
+
}] } });
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBbUR0QyxNQUFNLE9BQU8sb0JBQW9CO0lBakRqQztRQWtEVyxVQUFLLEdBQVcsY0FBYyxDQUFDO1FBQy9CLFNBQUksR0FBVSxFQUFFLENBQUMsQ0FBQyx1Q0FBdUM7UUFDekQsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFDckMsYUFBUSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QztRQUM5RCxPQUFFLEdBQVcsZUFBZSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFbEQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsRSxVQUFLLEdBQXNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQU0xRCxxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVsRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztLQTZCekI7SUFwQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBT0QsT0FBTztRQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsNENBQTRDO0lBQzlDLENBQUM7K0dBcERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdVQVRwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkE1Q1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7OzRGQW1CVSxvQkFBb0I7a0JBakRoQyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxhQVVVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbS1hcHAtbXVsdGktc2VsZWN0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSArICdyZW0nLFxuICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0ICsgJ3JlbSdcbiAgICB9XCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxuZy1zZWxlY3RcbiAgICAgICAgW2NsYXNzLmNvdXJzZS1lbnRyeV09XCJpc0NvdXJzZUVudGVyZWRcIlxuICAgICAgICBjbGFzcz1cIm5nLXNlbGVjdFwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyB8IGFzeW5jXCJcbiAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgIFtoaWRlU2VsZWN0ZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiXG4gICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudClcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICAgIHt7IGl0ZW1bYmluZExhYmVsXSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgYF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnTXVsdGkgU2VsZWN0JztcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTsgLy8gQWNlaXRhIHVtIGFycmF5IGRlIG9iamV0b3MgZ2Vuw6lyaWNvc1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdOyAvLyBBIHZhcmnDoXZlbCBzZWxlY3RlZCBkZXZlIHNlciB1bSBhcnJheVxuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJ211bHRpU2VsZWN0SWQnO1xuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyA9ICcnOyAvLyBMYWJlbCBkaW7Dom1pY28gZ2Vuw6lyaWNvXG5cbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBrZXl1cEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTsgLy8gSW5pY2lhbGl6YcOnw6NvIGRhIHByb3ByaWVkYWRlXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgaXNDb3Vyc2VFbnRlcmVkID0gZmFsc2U7XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmlzQ291cnNlRW50ZXJlZCA9IHRydWU7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5pc0NvdXJzZUVudGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmtleXVwRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdmFsdWUgfHwgW107XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gbmVlZGVkIGZvciB0aGlzIGV4YW1wbGVcbiAgfVxufVxuIl19
|
@@ -0,0 +1,114 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/common";
|
5
|
+
export class RadioComponent {
|
6
|
+
constructor() {
|
7
|
+
this.name = 'defaultRadio';
|
8
|
+
this.id = 'radioId';
|
9
|
+
this.value = 'default';
|
10
|
+
this.checked = false;
|
11
|
+
this.disabled = false;
|
12
|
+
this.label = 'Radio label';
|
13
|
+
this.marginTop = 0;
|
14
|
+
this.marginBottom = 0;
|
15
|
+
this.marginLeft = 0;
|
16
|
+
this.marginRight = 0;
|
17
|
+
this.changeEvent = new EventEmitter();
|
18
|
+
this.onChangeCallback = () => { };
|
19
|
+
this.onTouchedCallback = () => { };
|
20
|
+
}
|
21
|
+
handleRadioChange(event) {
|
22
|
+
const inputElement = event.target;
|
23
|
+
this.checked = inputElement.checked;
|
24
|
+
this.onChangeCallback(this.checked);
|
25
|
+
this.changeEvent.emit(event);
|
26
|
+
}
|
27
|
+
writeValue(value) {
|
28
|
+
this.checked = value;
|
29
|
+
}
|
30
|
+
registerOnChange(fn) {
|
31
|
+
this.onChangeCallback = fn;
|
32
|
+
}
|
33
|
+
registerOnTouched(fn) {
|
34
|
+
this.onTouchedCallback = fn;
|
35
|
+
}
|
36
|
+
setDisabledState(isDisabled) {
|
37
|
+
this.disabled = isDisabled;
|
38
|
+
}
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioComponent, selector: "sim-app-radio", inputs: { name: "name", id: "id", value: "value", checked: "checked", disabled: "disabled", label: "label", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { changeEvent: "changeEvent" }, providers: [
|
41
|
+
{
|
42
|
+
provide: NG_VALUE_ACCESSOR,
|
43
|
+
useExisting: forwardRef(() => RadioComponent),
|
44
|
+
multi: true
|
45
|
+
}
|
46
|
+
], ngImport: i0, template: `
|
47
|
+
<div class="form-check" [ngStyle]="{
|
48
|
+
'margin-top': marginTop + 'rem',
|
49
|
+
'margin-bottom': marginBottom + 'rem',
|
50
|
+
'margin-left': marginLeft + 'rem',
|
51
|
+
'margin-right': marginRight + 'rem'
|
52
|
+
}">
|
53
|
+
<input class="form-check-input"
|
54
|
+
type="radio"
|
55
|
+
[name]="name"
|
56
|
+
[id]="id"
|
57
|
+
[value]="value"
|
58
|
+
[checked]="checked"
|
59
|
+
(change)="handleRadioChange($event)"
|
60
|
+
[disabled]="disabled">
|
61
|
+
<label class="form-check-label" [for]="id">{{ label }}</label>
|
62
|
+
</div>
|
63
|
+
`, isInline: true, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
64
|
+
}
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioComponent, decorators: [{
|
66
|
+
type: Component,
|
67
|
+
args: [{ selector: 'sim-app-radio', template: `
|
68
|
+
<div class="form-check" [ngStyle]="{
|
69
|
+
'margin-top': marginTop + 'rem',
|
70
|
+
'margin-bottom': marginBottom + 'rem',
|
71
|
+
'margin-left': marginLeft + 'rem',
|
72
|
+
'margin-right': marginRight + 'rem'
|
73
|
+
}">
|
74
|
+
<input class="form-check-input"
|
75
|
+
type="radio"
|
76
|
+
[name]="name"
|
77
|
+
[id]="id"
|
78
|
+
[value]="value"
|
79
|
+
[checked]="checked"
|
80
|
+
(change)="handleRadioChange($event)"
|
81
|
+
[disabled]="disabled">
|
82
|
+
<label class="form-check-label" [for]="id">{{ label }}</label>
|
83
|
+
</div>
|
84
|
+
`, providers: [
|
85
|
+
{
|
86
|
+
provide: NG_VALUE_ACCESSOR,
|
87
|
+
useExisting: forwardRef(() => RadioComponent),
|
88
|
+
multi: true
|
89
|
+
}
|
90
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
|
91
|
+
}], propDecorators: { name: [{
|
92
|
+
type: Input
|
93
|
+
}], id: [{
|
94
|
+
type: Input
|
95
|
+
}], value: [{
|
96
|
+
type: Input
|
97
|
+
}], checked: [{
|
98
|
+
type: Input
|
99
|
+
}], disabled: [{
|
100
|
+
type: Input
|
101
|
+
}], label: [{
|
102
|
+
type: Input
|
103
|
+
}], marginTop: [{
|
104
|
+
type: Input
|
105
|
+
}], marginBottom: [{
|
106
|
+
type: Input
|
107
|
+
}], marginLeft: [{
|
108
|
+
type: Input
|
109
|
+
}], marginRight: [{
|
110
|
+
type: Input
|
111
|
+
}], changeEvent: [{
|
112
|
+
type: Output
|
113
|
+
}] } });
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFpRHpFLE1BQU0sT0FBTyxjQUFjO0lBL0MzQjtRQWdEVyxTQUFJLEdBQVcsY0FBYyxDQUFDO1FBQzlCLE9BQUUsR0FBVyxTQUFTLENBQUM7UUFDdkIsVUFBSyxHQUFXLFNBQVMsQ0FBQztRQUMxQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsVUFBSyxHQUFXLGFBQWEsQ0FBQztRQUU5QixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFdkIsZ0JBQVcsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUUvRCxxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztLQXdCbkQ7SUF0QkMsaUJBQWlCLENBQUMsS0FBWTtRQUM1QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOytHQXZDVSxjQUFjO21HQUFkLGNBQWMsMlNBVGQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQTFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7OzRGQTRCVSxjQUFjO2tCQS9DMUIsU0FBUzsrQkFDRSxlQUFlLFlBQ2Y7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJULGFBbUJVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltLWFwcC1yYWRpbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1ib3R0b20nOiBtYXJnaW5Cb3R0b20gKyAncmVtJyxcbiAgICAgICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQgKyAncmVtJyxcbiAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCArICdyZW0nXG4gICAgfVwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVSYWRpb0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBbZm9yXT1cImlkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmZvcm0tY2hlY2sge1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxcmVtOyAvKiBEZWZpbmUgbyB0YW1hbmhvIHBhZHLDo28gZGEgZm9udGUgKi9cbiAgICB9XG4gICAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG4gICAgLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIGBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJ2RlZmF1bHRSYWRpbyc7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAncmFkaW9JZCc7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdSYWRpbyBsYWJlbCc7XG5cbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIGhhbmRsZVJhZGlvQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuY2hlY2tlZCA9IGlucHV0RWxlbWVudC5jaGVja2VkO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,107 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/common";
|
5
|
+
import * as i2 from "@angular/forms";
|
6
|
+
export class SelectComponent {
|
7
|
+
constructor() {
|
8
|
+
this.label = 'Default Label';
|
9
|
+
this.id = 'selectId';
|
10
|
+
this.disabled = false;
|
11
|
+
this.options = [];
|
12
|
+
this.marginTop = 0;
|
13
|
+
this.marginBottom = 0;
|
14
|
+
this.marginLeft = 0;
|
15
|
+
this.marginRight = 0;
|
16
|
+
this.changeEvent = new EventEmitter();
|
17
|
+
this.onChangeCallback = () => { };
|
18
|
+
this.onTouchedCallback = () => { };
|
19
|
+
}
|
20
|
+
onSelectChange(event) {
|
21
|
+
const selectElement = event.target;
|
22
|
+
this.value = selectElement.value;
|
23
|
+
this.onChangeCallback(this.value);
|
24
|
+
this.changeEvent.emit(this.value);
|
25
|
+
}
|
26
|
+
writeValue(value) {
|
27
|
+
this.value = value;
|
28
|
+
}
|
29
|
+
registerOnChange(fn) {
|
30
|
+
this.onChangeCallback = fn;
|
31
|
+
}
|
32
|
+
registerOnTouched(fn) {
|
33
|
+
this.onTouchedCallback = fn;
|
34
|
+
}
|
35
|
+
setDisabledState(isDisabled) {
|
36
|
+
this.disabled = isDisabled;
|
37
|
+
}
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectComponent, selector: "sim-app-select", inputs: { label: "label", id: "id", disabled: "disabled", options: "options", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { changeEvent: "changeEvent" }, providers: [
|
40
|
+
{
|
41
|
+
provide: NG_VALUE_ACCESSOR,
|
42
|
+
useExisting: forwardRef(() => SelectComponent),
|
43
|
+
multi: true
|
44
|
+
}
|
45
|
+
], ngImport: i0, template: `
|
46
|
+
<div class="form-group" [ngStyle]="{
|
47
|
+
'margin-top': marginTop + 'rem',
|
48
|
+
'margin-bottom': marginBottom + 'rem',
|
49
|
+
'margin-left': marginLeft + 'rem',
|
50
|
+
'margin-right': marginRight + 'rem'
|
51
|
+
}">
|
52
|
+
<label [for]="id">{{ label }}</label>
|
53
|
+
<select class="form-control custom-select"
|
54
|
+
[id]="id"
|
55
|
+
[value]="value"
|
56
|
+
(change)="onSelectChange($event)"
|
57
|
+
[disabled]="disabled">
|
58
|
+
<option *ngFor="let option of options" [value]="option.value">{{ option.label }}</option>
|
59
|
+
</select>
|
60
|
+
</div>
|
61
|
+
`, isInline: true, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
62
|
+
}
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
|
64
|
+
type: Component,
|
65
|
+
args: [{ selector: 'sim-app-select', template: `
|
66
|
+
<div class="form-group" [ngStyle]="{
|
67
|
+
'margin-top': marginTop + 'rem',
|
68
|
+
'margin-bottom': marginBottom + 'rem',
|
69
|
+
'margin-left': marginLeft + 'rem',
|
70
|
+
'margin-right': marginRight + 'rem'
|
71
|
+
}">
|
72
|
+
<label [for]="id">{{ label }}</label>
|
73
|
+
<select class="form-control custom-select"
|
74
|
+
[id]="id"
|
75
|
+
[value]="value"
|
76
|
+
(change)="onSelectChange($event)"
|
77
|
+
[disabled]="disabled">
|
78
|
+
<option *ngFor="let option of options" [value]="option.value">{{ option.label }}</option>
|
79
|
+
</select>
|
80
|
+
</div>
|
81
|
+
`, providers: [
|
82
|
+
{
|
83
|
+
provide: NG_VALUE_ACCESSOR,
|
84
|
+
useExisting: forwardRef(() => SelectComponent),
|
85
|
+
multi: true
|
86
|
+
}
|
87
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
|
88
|
+
}], propDecorators: { label: [{
|
89
|
+
type: Input
|
90
|
+
}], id: [{
|
91
|
+
type: Input
|
92
|
+
}], disabled: [{
|
93
|
+
type: Input
|
94
|
+
}], options: [{
|
95
|
+
type: Input
|
96
|
+
}], marginTop: [{
|
97
|
+
type: Input
|
98
|
+
}], marginBottom: [{
|
99
|
+
type: Input
|
100
|
+
}], marginLeft: [{
|
101
|
+
type: Input
|
102
|
+
}], marginRight: [{
|
103
|
+
type: Input
|
104
|
+
}], changeEvent: [{
|
105
|
+
type: Output
|
106
|
+
}] } });
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBeUN6RSxNQUFNLE9BQU8sZUFBZTtJQXZDNUI7UUF3Q1csVUFBSyxHQUFXLGVBQWUsQ0FBQztRQUNoQyxPQUFFLEdBQVcsVUFBVSxDQUFDO1FBQ3hCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFvQyxFQUFFLENBQUM7UUFDOUMsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0QscUJBQWdCLEdBQXFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0EwQm5EO0lBdEJDLGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUEyQixDQUFDO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOytHQXRDVSxlQUFlO21HQUFmLGVBQWUsOFFBVGY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQWxDUzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs7NEZBcUJVLGVBQWU7a0JBdkMzQixTQUFTOytCQUNFLGdCQUFnQixZQUNoQjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVCxhQVlVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltLWFwcC1zZWxlY3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nU3R5bGVdPVwie1xuICAgICAgJ21hcmdpbi10b3AnOiBtYXJnaW5Ub3AgKyAncmVtJyxcbiAgICAgICdtYXJnaW4tYm90dG9tJzogbWFyZ2luQm90dG9tICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLWxlZnQnOiBtYXJnaW5MZWZ0ICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyZ2luUmlnaHQgKyAncmVtJ1xuICAgIH1cIj5cbiAgICAgIDxsYWJlbCBbZm9yXT1cImlkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20tc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICBgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdEZWZhdWx0IExhYmVsJztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICdzZWxlY3RJZCc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IHsgdmFsdWU6IGFueSwgbGFiZWw6IHN0cmluZyB9W10gPSBbXTtcbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgdmFsdWU6IGFueTtcblxuICBvblNlbGVjdENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIHRoaXMudmFsdWUgPSBzZWxlY3RFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiJdfQ==
|