@ngrdt/gov 0.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/fesm2022/ngrdt-gov.mjs +478 -0
- package/fesm2022/ngrdt-gov.mjs.map +1 -0
- package/index.d.ts +108 -0
- package/package.json +30 -0
- package/rdt-gov-menu.scss +102 -0
package/README.md
ADDED
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Renderer2, viewChild, input, linkedSignal, signal, effect, CUSTOM_ELEMENTS_SCHEMA, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive, ViewContainerRef, viewChildren, booleanAttribute, computed, untracked } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/forms';
|
|
4
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { RdtNumericInputComponent, RdtFormErrorPipe, RdtBaseFormInputComponent, RdtSelectOfflineDatasourceProviderDirective, RdtBaseSelectCommonComponent, RdtSelectOptionDirective, RdtSelectStore, RdtSingleSelectComponent, RdtTextInputComponent } from '@ngrdt/forms';
|
|
6
|
+
import { RdtIconOutletDirective } from '@ngrdt/icon';
|
|
7
|
+
import { signalToPromise } from '@ngrdt/utils';
|
|
8
|
+
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
9
|
+
import { UP_ARROW, DOWN_ARROW, ENTER } from '@angular/cdk/keycodes';
|
|
10
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
11
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
12
|
+
import * as i2 from '@gov-design-system-ce/angular';
|
|
13
|
+
import { GovDesignSystemModule } from '@gov-design-system-ce/angular';
|
|
14
|
+
import { RdtAutoFocusOnInitDirective } from '@ngrdt/core';
|
|
15
|
+
import { map, filter, fromEvent, throttleTime, animationFrameScheduler } from 'rxjs';
|
|
16
|
+
|
|
17
|
+
const DEFAULT_GOV_BUTTON_COLOR = 'primary';
|
|
18
|
+
const DEFAULT_GOV_BUTTON_TYPE = 'outlined';
|
|
19
|
+
const DEFAULT_GOV_BUTTON_SIZE = 'xs';
|
|
20
|
+
|
|
21
|
+
function forceFocus(input) {
|
|
22
|
+
let cnt = 0;
|
|
23
|
+
const maxCnt = 10;
|
|
24
|
+
const int = setInterval(() => {
|
|
25
|
+
input.focus({ preventScroll: true });
|
|
26
|
+
if (cnt === maxCnt || input.matches(':focus')) {
|
|
27
|
+
clearInterval(int);
|
|
28
|
+
}
|
|
29
|
+
cnt++;
|
|
30
|
+
}, 5);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
class RdtGovNumberInputComponent extends RdtNumericInputComponent {
|
|
34
|
+
renderer = inject(Renderer2);
|
|
35
|
+
govInput = viewChild('govInput');
|
|
36
|
+
size = input('s');
|
|
37
|
+
icon = input(null);
|
|
38
|
+
iconStart = input(null);
|
|
39
|
+
labelPositionInput = input('top', {
|
|
40
|
+
alias: 'labelPosition',
|
|
41
|
+
});
|
|
42
|
+
labelPosition = linkedSignal(() => this.labelPositionInput());
|
|
43
|
+
inputElement = signal(null);
|
|
44
|
+
hasErrors = false;
|
|
45
|
+
isEmpty(value) {
|
|
46
|
+
return value == null;
|
|
47
|
+
}
|
|
48
|
+
onInput(value) {
|
|
49
|
+
if (value === '' || value == null) {
|
|
50
|
+
this.onInternalValueChange(null);
|
|
51
|
+
}
|
|
52
|
+
else if (typeof value === 'string') {
|
|
53
|
+
const parsed = parseFloat(value);
|
|
54
|
+
if (!isNaN(parsed)) {
|
|
55
|
+
this.onInternalValueChange(parsed);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.onInternalValueChange(value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
readonlyEffect = effect(async () => {
|
|
63
|
+
const input = this.govInput()?.nativeElement;
|
|
64
|
+
const inputEl = await input?.getRef();
|
|
65
|
+
const readonly = this.readonlyInput();
|
|
66
|
+
if (input) {
|
|
67
|
+
if (readonly) {
|
|
68
|
+
this.renderer.setAttribute(input, 'readonly', 'true');
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.renderer.removeAttribute(input, 'readonly');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
inputElementEffect = effect(async () => {
|
|
76
|
+
const govInput = this.govInput()?.nativeElement;
|
|
77
|
+
if (govInput) {
|
|
78
|
+
const input = await govInput.getRef();
|
|
79
|
+
this.inputElement.set(input);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
errorFixEffect = effect(() => {
|
|
83
|
+
const inputElement = this.inputElement();
|
|
84
|
+
const visibleErrors = this.visibleErrors();
|
|
85
|
+
const hadErrors = this.hasErrors;
|
|
86
|
+
this.hasErrors = !!visibleErrors;
|
|
87
|
+
if (hadErrors !== this.hasErrors) {
|
|
88
|
+
const isActive = document.activeElement === inputElement;
|
|
89
|
+
if (isActive && inputElement) {
|
|
90
|
+
forceFocus(inputElement);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
async focus() {
|
|
95
|
+
const govInput = await this.govInput()?.nativeElement;
|
|
96
|
+
const el = await govInput?.getRef();
|
|
97
|
+
forceFocus(el);
|
|
98
|
+
}
|
|
99
|
+
canFocus() {
|
|
100
|
+
return signalToPromise(this.govInput, { injector: this.injector })
|
|
101
|
+
.then((btn) => btn?.nativeElement.getRef())
|
|
102
|
+
.then((el) => !!el);
|
|
103
|
+
}
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovNumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: RdtGovNumberInputComponent, isStandalone: true, selector: "rdt-gov-number-input", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconStart: { classPropertyName: "iconStart", publicName: "iconStart", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: "labelPositionInput", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
106
|
+
{
|
|
107
|
+
provide: NG_VALUE_ACCESSOR,
|
|
108
|
+
useExisting: RdtGovNumberInputComponent,
|
|
109
|
+
multi: true,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
provide: RdtBaseFormInputComponent,
|
|
113
|
+
useExisting: RdtGovNumberInputComponent,
|
|
114
|
+
},
|
|
115
|
+
], viewQueries: [{ propertyName: "govInput", first: true, predicate: ["govInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let lPos = labelPosition(); @if(lPos === 'top'){\n<gov-form-label slot=\"left\" size=\"m\" [class.warning-color-gov-label]=\"hasError\"\n >{{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<gov-form-input\n #govInput\n input-type=\"number\"\n [size]=\"size()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [autocomplete]=\"autocomplete()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [invalid]=\"invalid() && touched()\"\n [attr.invalid]=\"invalid() && touched()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [attr.disabled]=\"disabled()\"\n [name]=\"id()\"\n [identifier]=\"id()\"\n (gov-input)=\"onInput($event.detail.value)\"\n (gov-focus)=\"onFocus()\"\n (gov-blur)=\"onBlur()\"\n>\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if(lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if (lI) {\n <span slot=\"icon-start\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: lI }\"></ng-container>\n </span>\n } @if (rI) {\n <span slot=\"icon-end\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: rI }\"></ng-container>\n </span>\n }\n</gov-form-input>\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: [".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"], dependencies: [{ kind: "pipe", type: RdtFormErrorPipe, name: "rdtFormError" }, { kind: "directive", type: RdtIconOutletDirective, selector: "[rdtIconOutlet]", exportAs: ["rdtIconOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovNumberInputComponent, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{ selector: 'rdt-gov-number-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [RdtFormErrorPipe, RdtIconOutletDirective], providers: [
|
|
120
|
+
{
|
|
121
|
+
provide: NG_VALUE_ACCESSOR,
|
|
122
|
+
useExisting: RdtGovNumberInputComponent,
|
|
123
|
+
multi: true,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
provide: RdtBaseFormInputComponent,
|
|
127
|
+
useExisting: RdtGovNumberInputComponent,
|
|
128
|
+
},
|
|
129
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@let lPos = labelPosition(); @if(lPos === 'top'){\n<gov-form-label slot=\"left\" size=\"m\" [class.warning-color-gov-label]=\"hasError\"\n >{{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<gov-form-input\n #govInput\n input-type=\"number\"\n [size]=\"size()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [autocomplete]=\"autocomplete()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [invalid]=\"invalid() && touched()\"\n [attr.invalid]=\"invalid() && touched()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [attr.disabled]=\"disabled()\"\n [name]=\"id()\"\n [identifier]=\"id()\"\n (gov-input)=\"onInput($event.detail.value)\"\n (gov-focus)=\"onFocus()\"\n (gov-blur)=\"onBlur()\"\n>\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if(lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if (lI) {\n <span slot=\"icon-start\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: lI }\"></ng-container>\n </span>\n } @if (rI) {\n <span slot=\"icon-end\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: rI }\"></ng-container>\n </span>\n }\n</gov-form-input>\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: [".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"] }]
|
|
130
|
+
}] });
|
|
131
|
+
|
|
132
|
+
class RdtGovSelectOfflineProviderDirective extends RdtSelectOfflineDatasourceProviderDirective {
|
|
133
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovSelectOfflineProviderDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
134
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0", type: RdtGovSelectOfflineProviderDirective, isStandalone: true, selector: "rdt-gov-select[options]", usesInheritance: true, ngImport: i0 });
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovSelectOfflineProviderDirective, decorators: [{
|
|
137
|
+
type: Directive,
|
|
138
|
+
args: [{
|
|
139
|
+
selector: 'rdt-gov-select[options]',
|
|
140
|
+
}]
|
|
141
|
+
}] });
|
|
142
|
+
|
|
143
|
+
class RdtGovSelectComponent extends RdtBaseSelectCommonComponent {
|
|
144
|
+
overlay = inject(Overlay);
|
|
145
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
146
|
+
scrollContainer = viewChild('scrollContainer');
|
|
147
|
+
selectButton = viewChild('selectButton');
|
|
148
|
+
overlayTemplate = viewChild('overlayContainer');
|
|
149
|
+
optionEls = viewChildren((RdtSelectOptionDirective));
|
|
150
|
+
multi = input(false, { transform: booleanAttribute });
|
|
151
|
+
size = input('s');
|
|
152
|
+
placeholder = input('Vyberte');
|
|
153
|
+
showClear = input(true, { transform: booleanAttribute });
|
|
154
|
+
showSearchInput = input(false, {
|
|
155
|
+
transform: booleanAttribute,
|
|
156
|
+
alias: 'showSearch',
|
|
157
|
+
});
|
|
158
|
+
showSearch = linkedSignal(() => this.showSearchInput());
|
|
159
|
+
labelPositionInput = input('top', {
|
|
160
|
+
alias: 'labelPosition',
|
|
161
|
+
});
|
|
162
|
+
labelPosition = linkedSignal(() => this.labelPositionInput());
|
|
163
|
+
keyManager = new ActiveDescendantKeyManager(this.optionEls, this.injector);
|
|
164
|
+
resizeEffect = effect(() => {
|
|
165
|
+
const btn = this.selectButton()?.nativeElement;
|
|
166
|
+
const observer = new ResizeObserver((entries) => {
|
|
167
|
+
const size = entries[0]?.borderBoxSize?.[0].inlineSize;
|
|
168
|
+
if (this.overlayRef && size) {
|
|
169
|
+
this.overlayRef.updateSize({
|
|
170
|
+
minWidth: size,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
if (btn) {
|
|
175
|
+
observer.observe(btn);
|
|
176
|
+
}
|
|
177
|
+
return () => observer.disconnect();
|
|
178
|
+
});
|
|
179
|
+
overlayRef = null;
|
|
180
|
+
isEmpty(value) {
|
|
181
|
+
return value === null || (Array.isArray(value) && value.length === 0);
|
|
182
|
+
}
|
|
183
|
+
selectedLabel = computed(() => this.store
|
|
184
|
+
.selectedItems()
|
|
185
|
+
.map((i) => i.label)
|
|
186
|
+
.join(', ') || null);
|
|
187
|
+
onClearClick(event) {
|
|
188
|
+
this.store.unselectAll();
|
|
189
|
+
}
|
|
190
|
+
openOverlay() {
|
|
191
|
+
if (this.readonlyInput()) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (this.overlayRef === null) {
|
|
195
|
+
this.overlayRef = this.createOverlay();
|
|
196
|
+
this.overlayRef.backdropClick().subscribe(() => {
|
|
197
|
+
this.overlayRef?.detach();
|
|
198
|
+
this.onTouch();
|
|
199
|
+
});
|
|
200
|
+
this.overlayRef
|
|
201
|
+
.keydownEvents()
|
|
202
|
+
.pipe(map((e) => e.key), filter((key) => key === 'Escape'))
|
|
203
|
+
.subscribe((e) => {
|
|
204
|
+
this.overlayRef?.detach();
|
|
205
|
+
this.onTouch();
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
if (this.overlayRef.hasAttached()) {
|
|
209
|
+
this.overlayRef.detach();
|
|
210
|
+
this.onTouch();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const overlayTemplate = this.overlayTemplate();
|
|
214
|
+
if (overlayTemplate) {
|
|
215
|
+
const portal = new TemplatePortal(overlayTemplate, this.viewContainerRef);
|
|
216
|
+
this.overlayRef.attach(portal);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
handleButtonKeydown($event) {
|
|
220
|
+
const keyCode = $event.keyCode;
|
|
221
|
+
const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;
|
|
222
|
+
if (isArrowKey) {
|
|
223
|
+
this.openOverlay();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
handleButtonBlur() {
|
|
227
|
+
if (!this.overlayRef?.hasAttached()) {
|
|
228
|
+
this.onBlur();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
handleInput(query) {
|
|
232
|
+
this.store.setQuery(query);
|
|
233
|
+
this.keyManager.setActiveItem(-1);
|
|
234
|
+
}
|
|
235
|
+
handleInputKeydown($event) {
|
|
236
|
+
const key = $event.keyCode;
|
|
237
|
+
const activeItem = this.keyManager.activeItem;
|
|
238
|
+
if (key === ENTER && activeItem !== null) {
|
|
239
|
+
this.selectOption(activeItem.value());
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
this.keyManager.onKeydown($event);
|
|
243
|
+
this.keyManager.activeItem?.scrollIntoElement();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
toExternalValue(internalValue) {
|
|
247
|
+
if (untracked(this.multi)) {
|
|
248
|
+
return internalValue;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
return Array.isArray(internalValue) ? internalValue[0] : null;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
selectOption(option) {
|
|
255
|
+
if (untracked(this.multi)) {
|
|
256
|
+
this.store.toggle(option);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
this.store.selectSingle(option);
|
|
260
|
+
// detach on a next tick
|
|
261
|
+
// otherwise on ENTER overlay is still enter
|
|
262
|
+
setTimeout(() => {
|
|
263
|
+
this.overlayRef?.detach();
|
|
264
|
+
this.keyManager.setActiveItem(-1);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
selectButtonEffect = effect(() => {
|
|
269
|
+
const selectButton = this.selectButton()?.nativeElement;
|
|
270
|
+
const overlay = this.overlayRef;
|
|
271
|
+
if (overlay && selectButton) {
|
|
272
|
+
const positionStrategy = this.getPositionStrategy(selectButton);
|
|
273
|
+
overlay.updatePositionStrategy(positionStrategy);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
getPositionStrategy(element) {
|
|
277
|
+
return this.overlay
|
|
278
|
+
.position()
|
|
279
|
+
.flexibleConnectedTo(this.selectButton()?.nativeElement)
|
|
280
|
+
.withPositions([
|
|
281
|
+
{
|
|
282
|
+
originX: 'start',
|
|
283
|
+
originY: 'bottom',
|
|
284
|
+
overlayX: 'start',
|
|
285
|
+
overlayY: 'top',
|
|
286
|
+
panelClass: 'rdt-gov-select-overlay-panel-bottom',
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
originX: 'start',
|
|
290
|
+
originY: 'top',
|
|
291
|
+
overlayX: 'start',
|
|
292
|
+
overlayY: 'bottom',
|
|
293
|
+
panelClass: 'rdt-gov-select-overlay-panel-top',
|
|
294
|
+
},
|
|
295
|
+
]);
|
|
296
|
+
}
|
|
297
|
+
createOverlay() {
|
|
298
|
+
const selectButton = this.selectButton()?.nativeElement;
|
|
299
|
+
const positionStrategy = this.getPositionStrategy(selectButton);
|
|
300
|
+
return this.overlay.create({
|
|
301
|
+
hasBackdrop: true,
|
|
302
|
+
backdropClass: 'rdt-gov-transparent-backdrop',
|
|
303
|
+
positionStrategy,
|
|
304
|
+
minWidth: this.selectButton()?.nativeElement.clientWidth,
|
|
305
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
scrollEffect = effect((onCleanup) => {
|
|
309
|
+
const scrollContainer = this.scrollContainer()?.nativeElement;
|
|
310
|
+
if (!scrollContainer) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const dist$ = fromEvent(scrollContainer, 'scroll').pipe(filter(() => untracked(this.store.hasMore) && !untracked(this.store.loading)), throttleTime(0, animationFrameScheduler), map(() => this.scrollDistToBottom(scrollContainer)));
|
|
314
|
+
const THRESHOLD = 42;
|
|
315
|
+
const sub = dist$.subscribe((dist) => {
|
|
316
|
+
if (dist < THRESHOLD) {
|
|
317
|
+
this.store.fetch();
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
onCleanup(() => sub.unsubscribe());
|
|
321
|
+
});
|
|
322
|
+
scrollDistToBottom(container) {
|
|
323
|
+
return (container.scrollHeight - (container.scrollTop + container.clientHeight));
|
|
324
|
+
}
|
|
325
|
+
focus() {
|
|
326
|
+
this.openOverlay();
|
|
327
|
+
}
|
|
328
|
+
canFocus() {
|
|
329
|
+
return !this.disabled();
|
|
330
|
+
}
|
|
331
|
+
ngOnDestroy() {
|
|
332
|
+
super.ngOnDestroy();
|
|
333
|
+
this.overlayRef?.dispose();
|
|
334
|
+
this.keyManager.destroy();
|
|
335
|
+
}
|
|
336
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
337
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: RdtGovSelectComponent, isStandalone: true, selector: "rdt-gov-select", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, showSearchInput: { classPropertyName: "showSearchInput", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: "labelPositionInput", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
338
|
+
RdtSelectStore,
|
|
339
|
+
{
|
|
340
|
+
provide: NG_VALUE_ACCESSOR,
|
|
341
|
+
useExisting: RdtGovSelectComponent,
|
|
342
|
+
multi: true,
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
provide: RdtSingleSelectComponent,
|
|
346
|
+
useExisting: RdtGovSelectComponent,
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
provide: RdtBaseSelectCommonComponent,
|
|
350
|
+
useExisting: RdtGovSelectComponent,
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
provide: RdtBaseFormInputComponent,
|
|
354
|
+
useExisting: RdtGovSelectComponent,
|
|
355
|
+
},
|
|
356
|
+
], viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, isSignal: true }, { propertyName: "selectButton", first: true, predicate: ["selectButton"], descendants: true, isSignal: true }, { propertyName: "overlayTemplate", first: true, predicate: ["overlayContainer"], descendants: true, isSignal: true }, { propertyName: "optionEls", predicate: (RdtSelectOptionDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let sel = selectedLabel(); @let lPos = labelPosition(); @let hasError =\nvisibleErrors() | rdtFormError; @if(lPos === 'top'){\n<gov-form-label slot=\"left\" [class.warning-color-gov-label]=\"hasError\" size=\"s\"\n >{{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<div\n class=\"gov-form-select gov-form-input\"\n [class.has-clear]=\"showClear() && !!sel\"\n [attr.size]=\"size()\"\n [attr.invalid]=\"invalid() && touched()\"\n [attr.disabled]=\"disabled()\"\n>\n @if (lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n }\n <div class=\"element\">\n <button\n #selectButton\n [attr.size]=\"size()\"\n (click)=\"openOverlay()\"\n (keydown)=\"handleButtonKeydown($event)\"\n [disabled]=\"disabled()\"\n class=\"select\"\n type=\"button\"\n (blur)=\"handleButtonBlur()\"\n (focus)=\"onFocus()\"\n >\n <div class=\"scroll-content\" [class.warning-color-text]=\"hasError\">\n @if (sel) {\n {{ sel }}\n } @else {\n {{ placeholder() || ' ' }}\n }\n </div>\n @if (showClear() && sel) {\n <gov-button\n class=\"clear-button\"\n iconStart=\"basic/x\"\n (click)=\"onClearClick($event)\"\n propagate=\"false\"\n buttonType=\"base\"\n color=\"error\"\n [rdtDisabled]=\"disabled()\"\n ></gov-button>\n } @if (loading()) {\n <rdt-spinner />\n } @else { @if(hasError){\n <gov-icon name=\"exclamation-lg\" class=\"icon-warning\"></gov-icon>\n }\n <gov-icon\n name=\"chevron-down\"\n class=\"icon-arrow\"\n [class.warning-color-icon]=\"hasError\"\n ></gov-icon>\n }\n </button>\n </div>\n @if (lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n }\n</div>\n<ng-template #overlayContainer>\n <div class=\"rdt-gov-select-container\">\n @if (showSearch()) {\n <div class=\"search-container\" [class.loading]=\"loading()\">\n <input\n class=\"gov-form-input\"\n size=\"s\"\n type=\"search\"\n rdtAutofocusOnInit\n [formControl]=\"inputCtrl\"\n (keydown)=\"handleInputKeydown($event)\"\n placeholder=\"Zadejte hledan\u00FD v\u00FDraz\"\n />\n @if (loading()) {\n <rdt-spinner />\n }\n </div>\n }\n <ul role=\"listbox\" aria-hidden=\"false\" #scrollContainer>\n @for (option of visibleOptions(); track option.id) {\n <li role=\"option\" [attr.aria-selected]=\"option.selected\">\n <button\n [rdtSelectOption]=\"option\"\n (click)=\"selectOption(option.id)\"\n class=\"option\"\n type=\"button\"\n >\n <gov-icon\n name=\"check-lg\"\n [class.invisible]=\"!option.selected\"\n class=\"mr-1 w-4 picked\"\n />\n {{ option.label }}\n </button>\n </li>\n } @empty { @if (loading()) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">Na\u010D\u00EDt\u00E1n\u00ED hodnot...</div>\n </li>\n } @else if (store.query()) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">\n Pro zadan\u00FD v\u00FDraz nejsou k dispozici \u017E\u00E1dn\u00E9 z\u00E1znamy\n </div>\n </li>\n } @else if (!store.datasource()?.queryRequired) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">Nejsou k dispozici \u017E\u00E1dn\u00E9 hodnoty</div>\n </li>\n } }\n </ul>\n </div>\n</ng-template>\n@if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: ["rdt-gov-select{display:inline-block;max-width:100%}rdt-gov-select .gov-form-select{width:100%}rdt-gov-select .gov-form-select.has-clear .select{padding-right:calc(1.5rem + var(--spacing-s))!important}rdt-gov-select .gov-form-input{border:none!important;background-color:transparent!important}rdt-gov-select .select{display:flex}rdt-gov-select .select rdt-spinner{position:absolute;right:.5rem;width:1rem;height:1rem}rdt-gov-select [size=s].gov-form-select .select{height:var(--height-component-s);padding:var(--spacing-s);padding-right:var(--spacing-s);font-size:var(--font-size-body-s)}rdt-gov-select [size=s].gov-form-select .select:hover{background-color:var(--button-outlined-primary-hover)}rdt-gov-select .gov-form-select .select{position:relative;border:none;width:100%;border-radius:var(--corner-radius-s);background-color:var(--background-block-primary);font-family:var(--font-family);text-align:left}rdt-gov-select [invalid=true].gov-form-input .select{border-color:var(--background-status-error);color:var(--background-status-error)}rdt-gov-select .icon-arrow{color:var(--text-primary);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:.75rem;width:.75rem;height:.75rem}rdt-gov-select .icon-warning{color:var(--icon-error);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:1.85rem;width:.75rem;height:.75rem}rdt-gov-select .scroll-content{color:var(--text-primary);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}rdt-gov-select .clear-button{display:flex;position:absolute;right:2rem;top:50%;transform:translateY(-50%)}rdt-gov-select .clear-button button{padding:0!important;min-height:auto!important;--icon-size-xs: 1rem}rdt-gov-select .clear-button gov-icon[slot=left-icon]{left:0!important;position:inherit!important;top:0!important;display:inline!important;transform:none!important}rdt-gov-select .element{max-width:100%}.rdt-gov-select-container{width:100%;margin-top:.5rem;margin-bottom:.5rem;overflow:hidden;border:1px solid var(--color-neutral-600);border-radius:0;background-color:var(--background-block-primary)}.rdt-gov-select-container ul{font-size:var(--font-size-body-s);line-height:var(--height-line-s);letter-spacing:var(--spacing-s);padding-left:0;margin-top:0;margin-bottom:0;list-style:none;max-height:14.0625rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.rdt-gov-select-container ul .option{color:var(--text-primary);border:none;display:flex;align-items:center;padding:.75rem .5rem;width:100%;margin:0;background:none;text-align:left}.rdt-gov-select-container ul .option gov-icon{padding-right:var(--spacing-s)}.rdt-gov-select-container ul .option gov-icon.invisible{display:none}.rdt-gov-select-container ul .option:hover{color:var(--color-primary-50);background:var(--color-neutral-600)}.rdt-gov-select-container li{margin-bottom:0}.rdt-gov-select-container .picked{color:var(--icon-success)}.rdt-gov-select-container .search-spinner{--spinner-size: 1.2rem;position:absolute;right:1rem;top:100%;transform:translateY(calc(var(--spinner-size) / -2))}.rdt-gov-select-container .search-spinner .sis-icon-32-fix{height:var(--spinner-size)}.rdt-gov-select-container .search-container{width:100%;position:relative;padding:var(--spacing-s)}.rdt-gov-select-container .search-container input{width:100%;background-color:var(--background-block-primary);font-family:var(--font-family);font-size:var(--font-size-body-s);height:var(--height-component-s);padding:var(--spacing-s);color:var(--text-primary)}.rdt-gov-select-container .search-container input:focus-visible{outline:var(.125rem) solid var(--status-focus);outline-offset:0}.rdt-gov-select-container .search-container.loading input::-webkit-search-cancel-button{position:relative;right:1rem}.rdt-gov-select-overlay-panel-top .rdt-gov-select-container{display:flex;flex-direction:column-reverse}\n", ".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"], dependencies: [{ kind: "directive", type: RdtSelectOptionDirective, selector: "[rdtSelectOption]", inputs: ["rdtSelectOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: RdtAutoFocusOnInitDirective, selector: "[rdtAutofocusOnInit]" }, { kind: "ngmodule", type: GovDesignSystemModule }, { kind: "component", type: i2.GovButton, selector: "gov-button", inputs: ["color", "disabled", "download", "expanded", "expandedMobile", "focusable", "href", "hreflang", "identifier", "loading", "name", "nativeType", "referrerpolicy", "rel", "size", "target", "type"] }, { kind: "component", type: i2.GovFormLabel, selector: "gov-form-label", inputs: ["identifier", "legend", "required", "size"] }, { kind: "component", type: i2.GovFormMessage, selector: "gov-form-message", inputs: ["color", "size"] }, { kind: "component", type: i2.GovIcon, selector: "gov-icon", inputs: ["color", "name", "size", "type"] }, { kind: "pipe", type: RdtFormErrorPipe, name: "rdtFormError" }], encapsulation: i0.ViewEncapsulation.None });
|
|
357
|
+
}
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovSelectComponent, decorators: [{
|
|
359
|
+
type: Component,
|
|
360
|
+
args: [{ selector: 'rdt-gov-select', imports: [
|
|
361
|
+
RdtSelectOptionDirective,
|
|
362
|
+
ReactiveFormsModule,
|
|
363
|
+
RdtAutoFocusOnInitDirective,
|
|
364
|
+
GovDesignSystemModule,
|
|
365
|
+
RdtFormErrorPipe,
|
|
366
|
+
], providers: [
|
|
367
|
+
RdtSelectStore,
|
|
368
|
+
{
|
|
369
|
+
provide: NG_VALUE_ACCESSOR,
|
|
370
|
+
useExisting: RdtGovSelectComponent,
|
|
371
|
+
multi: true,
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
provide: RdtSingleSelectComponent,
|
|
375
|
+
useExisting: RdtGovSelectComponent,
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
provide: RdtBaseSelectCommonComponent,
|
|
379
|
+
useExisting: RdtGovSelectComponent,
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
provide: RdtBaseFormInputComponent,
|
|
383
|
+
useExisting: RdtGovSelectComponent,
|
|
384
|
+
},
|
|
385
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.None, template: "@let sel = selectedLabel(); @let lPos = labelPosition(); @let hasError =\nvisibleErrors() | rdtFormError; @if(lPos === 'top'){\n<gov-form-label slot=\"left\" [class.warning-color-gov-label]=\"hasError\" size=\"s\"\n >{{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<div\n class=\"gov-form-select gov-form-input\"\n [class.has-clear]=\"showClear() && !!sel\"\n [attr.size]=\"size()\"\n [attr.invalid]=\"invalid() && touched()\"\n [attr.disabled]=\"disabled()\"\n>\n @if (lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n }\n <div class=\"element\">\n <button\n #selectButton\n [attr.size]=\"size()\"\n (click)=\"openOverlay()\"\n (keydown)=\"handleButtonKeydown($event)\"\n [disabled]=\"disabled()\"\n class=\"select\"\n type=\"button\"\n (blur)=\"handleButtonBlur()\"\n (focus)=\"onFocus()\"\n >\n <div class=\"scroll-content\" [class.warning-color-text]=\"hasError\">\n @if (sel) {\n {{ sel }}\n } @else {\n {{ placeholder() || ' ' }}\n }\n </div>\n @if (showClear() && sel) {\n <gov-button\n class=\"clear-button\"\n iconStart=\"basic/x\"\n (click)=\"onClearClick($event)\"\n propagate=\"false\"\n buttonType=\"base\"\n color=\"error\"\n [rdtDisabled]=\"disabled()\"\n ></gov-button>\n } @if (loading()) {\n <rdt-spinner />\n } @else { @if(hasError){\n <gov-icon name=\"exclamation-lg\" class=\"icon-warning\"></gov-icon>\n }\n <gov-icon\n name=\"chevron-down\"\n class=\"icon-arrow\"\n [class.warning-color-icon]=\"hasError\"\n ></gov-icon>\n }\n </button>\n </div>\n @if (lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }}\n @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n }\n</div>\n<ng-template #overlayContainer>\n <div class=\"rdt-gov-select-container\">\n @if (showSearch()) {\n <div class=\"search-container\" [class.loading]=\"loading()\">\n <input\n class=\"gov-form-input\"\n size=\"s\"\n type=\"search\"\n rdtAutofocusOnInit\n [formControl]=\"inputCtrl\"\n (keydown)=\"handleInputKeydown($event)\"\n placeholder=\"Zadejte hledan\u00FD v\u00FDraz\"\n />\n @if (loading()) {\n <rdt-spinner />\n }\n </div>\n }\n <ul role=\"listbox\" aria-hidden=\"false\" #scrollContainer>\n @for (option of visibleOptions(); track option.id) {\n <li role=\"option\" [attr.aria-selected]=\"option.selected\">\n <button\n [rdtSelectOption]=\"option\"\n (click)=\"selectOption(option.id)\"\n class=\"option\"\n type=\"button\"\n >\n <gov-icon\n name=\"check-lg\"\n [class.invisible]=\"!option.selected\"\n class=\"mr-1 w-4 picked\"\n />\n {{ option.label }}\n </button>\n </li>\n } @empty { @if (loading()) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">Na\u010D\u00EDt\u00E1n\u00ED hodnot...</div>\n </li>\n } @else if (store.query()) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">\n Pro zadan\u00FD v\u00FDraz nejsou k dispozici \u017E\u00E1dn\u00E9 z\u00E1znamy\n </div>\n </li>\n } @else if (!store.datasource()?.queryRequired) {\n <li class=\"pointer-events-none\">\n <div class=\"option\">Nejsou k dispozici \u017E\u00E1dn\u00E9 hodnoty</div>\n </li>\n } }\n </ul>\n </div>\n</ng-template>\n@if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: ["rdt-gov-select{display:inline-block;max-width:100%}rdt-gov-select .gov-form-select{width:100%}rdt-gov-select .gov-form-select.has-clear .select{padding-right:calc(1.5rem + var(--spacing-s))!important}rdt-gov-select .gov-form-input{border:none!important;background-color:transparent!important}rdt-gov-select .select{display:flex}rdt-gov-select .select rdt-spinner{position:absolute;right:.5rem;width:1rem;height:1rem}rdt-gov-select [size=s].gov-form-select .select{height:var(--height-component-s);padding:var(--spacing-s);padding-right:var(--spacing-s);font-size:var(--font-size-body-s)}rdt-gov-select [size=s].gov-form-select .select:hover{background-color:var(--button-outlined-primary-hover)}rdt-gov-select .gov-form-select .select{position:relative;border:none;width:100%;border-radius:var(--corner-radius-s);background-color:var(--background-block-primary);font-family:var(--font-family);text-align:left}rdt-gov-select [invalid=true].gov-form-input .select{border-color:var(--background-status-error);color:var(--background-status-error)}rdt-gov-select .icon-arrow{color:var(--text-primary);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:.75rem;width:.75rem;height:.75rem}rdt-gov-select .icon-warning{color:var(--icon-error);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:1.85rem;width:.75rem;height:.75rem}rdt-gov-select .scroll-content{color:var(--text-primary);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}rdt-gov-select .clear-button{display:flex;position:absolute;right:2rem;top:50%;transform:translateY(-50%)}rdt-gov-select .clear-button button{padding:0!important;min-height:auto!important;--icon-size-xs: 1rem}rdt-gov-select .clear-button gov-icon[slot=left-icon]{left:0!important;position:inherit!important;top:0!important;display:inline!important;transform:none!important}rdt-gov-select .element{max-width:100%}.rdt-gov-select-container{width:100%;margin-top:.5rem;margin-bottom:.5rem;overflow:hidden;border:1px solid var(--color-neutral-600);border-radius:0;background-color:var(--background-block-primary)}.rdt-gov-select-container ul{font-size:var(--font-size-body-s);line-height:var(--height-line-s);letter-spacing:var(--spacing-s);padding-left:0;margin-top:0;margin-bottom:0;list-style:none;max-height:14.0625rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.rdt-gov-select-container ul .option{color:var(--text-primary);border:none;display:flex;align-items:center;padding:.75rem .5rem;width:100%;margin:0;background:none;text-align:left}.rdt-gov-select-container ul .option gov-icon{padding-right:var(--spacing-s)}.rdt-gov-select-container ul .option gov-icon.invisible{display:none}.rdt-gov-select-container ul .option:hover{color:var(--color-primary-50);background:var(--color-neutral-600)}.rdt-gov-select-container li{margin-bottom:0}.rdt-gov-select-container .picked{color:var(--icon-success)}.rdt-gov-select-container .search-spinner{--spinner-size: 1.2rem;position:absolute;right:1rem;top:100%;transform:translateY(calc(var(--spinner-size) / -2))}.rdt-gov-select-container .search-spinner .sis-icon-32-fix{height:var(--spinner-size)}.rdt-gov-select-container .search-container{width:100%;position:relative;padding:var(--spacing-s)}.rdt-gov-select-container .search-container input{width:100%;background-color:var(--background-block-primary);font-family:var(--font-family);font-size:var(--font-size-body-s);height:var(--height-component-s);padding:var(--spacing-s);color:var(--text-primary)}.rdt-gov-select-container .search-container input:focus-visible{outline:var(.125rem) solid var(--status-focus);outline-offset:0}.rdt-gov-select-container .search-container.loading input::-webkit-search-cancel-button{position:relative;right:1rem}.rdt-gov-select-overlay-panel-top .rdt-gov-select-container{display:flex;flex-direction:column-reverse}\n", ".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"] }]
|
|
386
|
+
}] });
|
|
387
|
+
|
|
388
|
+
class RdtGovTextInputComponent extends RdtTextInputComponent {
|
|
389
|
+
renderer = inject(Renderer2);
|
|
390
|
+
govInput = viewChild('govInput');
|
|
391
|
+
size = input('s');
|
|
392
|
+
icon = input(null);
|
|
393
|
+
iconStart = input(null);
|
|
394
|
+
labelPositionInput = input('top', {
|
|
395
|
+
alias: 'labelPosition',
|
|
396
|
+
});
|
|
397
|
+
labelPosition = linkedSignal(() => this.labelPositionInput());
|
|
398
|
+
inputElement = signal(null);
|
|
399
|
+
hasErrors = false;
|
|
400
|
+
isEmpty(value) {
|
|
401
|
+
return value == null || value === '';
|
|
402
|
+
}
|
|
403
|
+
readonlyEffect = effect(async () => {
|
|
404
|
+
const input = this.govInput()?.nativeElement;
|
|
405
|
+
const inputEl = await input?.getRef();
|
|
406
|
+
const readonly = this.readonlyInput();
|
|
407
|
+
if (input) {
|
|
408
|
+
if (readonly) {
|
|
409
|
+
this.renderer.setAttribute(input, 'readonly', 'true');
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
this.renderer.removeAttribute(input, 'readonly');
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
inputElementEffect = effect(async () => {
|
|
417
|
+
const govInput = this.govInput()?.nativeElement;
|
|
418
|
+
if (govInput) {
|
|
419
|
+
const input = await govInput.getRef();
|
|
420
|
+
this.inputElement.set(input);
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
errorFixEffect = effect(() => {
|
|
424
|
+
const inputElement = this.inputElement();
|
|
425
|
+
const visibleErrors = this.visibleErrors();
|
|
426
|
+
const hadErrors = this.hasErrors;
|
|
427
|
+
this.hasErrors = !!visibleErrors;
|
|
428
|
+
if (hadErrors !== this.hasErrors) {
|
|
429
|
+
const isActive = document.activeElement === inputElement;
|
|
430
|
+
if (isActive && inputElement) {
|
|
431
|
+
forceFocus(inputElement);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
async focus() {
|
|
436
|
+
const govInput = await this.govInput()?.nativeElement;
|
|
437
|
+
const el = await govInput?.getRef();
|
|
438
|
+
forceFocus(el);
|
|
439
|
+
}
|
|
440
|
+
canFocus() {
|
|
441
|
+
return signalToPromise(this.govInput, { injector: this.injector })
|
|
442
|
+
.then((btn) => btn?.nativeElement.getRef())
|
|
443
|
+
.then((el) => !!el);
|
|
444
|
+
}
|
|
445
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovTextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
446
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: RdtGovTextInputComponent, isStandalone: true, selector: "rdt-gov-text-input", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconStart: { classPropertyName: "iconStart", publicName: "iconStart", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: "labelPositionInput", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
447
|
+
{
|
|
448
|
+
provide: NG_VALUE_ACCESSOR,
|
|
449
|
+
useExisting: RdtGovTextInputComponent,
|
|
450
|
+
multi: true,
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
provide: RdtBaseFormInputComponent,
|
|
454
|
+
useExisting: RdtGovTextInputComponent,
|
|
455
|
+
},
|
|
456
|
+
], viewQueries: [{ propertyName: "govInput", first: true, predicate: ["govInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let lPos = labelPosition(); @if(lPos === 'top'){\n<gov-form-label slot=\"left\" size=\"m\" [class.warning-color-gov-label]=\"hasError\"\n >{{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<gov-form-input\n #govInput\n [inputType]=\"type()\"\n [size]=\"size()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [autocomplete]=\"autocomplete()\"\n [minlength]=\"minlength()\"\n [maxlength]=\"maxlength()\"\n [invalid]=\"invalid() && touched()\"\n [attr.invalid]=\"invalid() && touched()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [attr.disabled]=\"disabled()\"\n [name]=\"id()\"\n [identifier]=\"id()\"\n (gov-input)=\"onInternalValueChange($event.detail.value)\"\n (gov-focus)=\"onFocus()\"\n (gov-blur)=\"onBlur()\"\n>\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if(lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if (lI) {\n <span slot=\"icon-start\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: lI }\"></ng-container>\n </span>\n } @if (rI) {\n <span slot=\"icon-end\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: rI }\"></ng-container>\n </span>\n }\n</gov-form-input>\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: [".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"], dependencies: [{ kind: "pipe", type: RdtFormErrorPipe, name: "rdtFormError" }, { kind: "directive", type: RdtIconOutletDirective, selector: "[rdtIconOutlet]", exportAs: ["rdtIconOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
457
|
+
}
|
|
458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: RdtGovTextInputComponent, decorators: [{
|
|
459
|
+
type: Component,
|
|
460
|
+
args: [{ selector: 'rdt-gov-text-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [RdtFormErrorPipe, RdtIconOutletDirective], providers: [
|
|
461
|
+
{
|
|
462
|
+
provide: NG_VALUE_ACCESSOR,
|
|
463
|
+
useExisting: RdtGovTextInputComponent,
|
|
464
|
+
multi: true,
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
provide: RdtBaseFormInputComponent,
|
|
468
|
+
useExisting: RdtGovTextInputComponent,
|
|
469
|
+
},
|
|
470
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@let lPos = labelPosition(); @if(lPos === 'top'){\n<gov-form-label slot=\"left\" size=\"m\" [class.warning-color-gov-label]=\"hasError\"\n >{{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }</gov-form-label\n>\n}\n<gov-form-input\n #govInput\n [inputType]=\"type()\"\n [size]=\"size()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [autocomplete]=\"autocomplete()\"\n [minlength]=\"minlength()\"\n [maxlength]=\"maxlength()\"\n [invalid]=\"invalid() && touched()\"\n [attr.invalid]=\"invalid() && touched()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [attr.disabled]=\"disabled()\"\n [name]=\"id()\"\n [identifier]=\"id()\"\n (gov-input)=\"onInternalValueChange($event.detail.value)\"\n (gov-focus)=\"onFocus()\"\n (gov-blur)=\"onBlur()\"\n>\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"prefix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if(lPos === 'right') {\n <p\n class=\"gov-form-label__label s_label\"\n slot=\"sufix\"\n [class.warning-color-text]=\"hasError\"\n >\n {{ label() }} @if (required()) {\n <span class=\"warning-color-text\">*</span>\n }\n </p>\n } @if (lI) {\n <span slot=\"icon-start\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: lI }\"></ng-container>\n </span>\n } @if (rI) {\n <span slot=\"icon-end\" style=\"width: auto\">\n <ng-container rdtIconOutlet [inputs]=\"{ name: rI }\"></ng-container>\n </span>\n }\n</gov-form-input>\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\n<gov-form-message slot=\"bottom\" color=\"error\">{{ hasError }}</gov-form-message>\n}\n", styles: [".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\n"] }]
|
|
471
|
+
}] });
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Generated bundle index. Do not edit.
|
|
475
|
+
*/
|
|
476
|
+
|
|
477
|
+
export { DEFAULT_GOV_BUTTON_COLOR, DEFAULT_GOV_BUTTON_SIZE, DEFAULT_GOV_BUTTON_TYPE, RdtGovNumberInputComponent, RdtGovSelectComponent, RdtGovSelectOfflineProviderDirective, RdtGovTextInputComponent, forceFocus };
|
|
478
|
+
//# sourceMappingURL=ngrdt-gov.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngrdt-gov.mjs","sources":["../tmp-esm2022/lib/gov/constants/default.constants.js","../tmp-esm2022/lib/gov/utils/force-focus.js","../tmp-esm2022/lib/gov/ui/number-input/rdt-gov-number-input.component.js","../tmp-esm2022/lib/gov/ui/select/directives/rdt-gov-select-offline-provider.directive.js","../tmp-esm2022/lib/gov/ui/select/rdt-gov-select.component.js","../tmp-esm2022/lib/gov/ui/text-input/rdt-gov-text-input.component.js","../tmp-esm2022/ngrdt-gov.js"],"sourcesContent":["export const DEFAULT_GOV_BUTTON_COLOR = 'primary';\nexport const DEFAULT_GOV_BUTTON_TYPE = 'outlined';\nexport const DEFAULT_GOV_BUTTON_SIZE = 'xs';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZ292L3NyYy9saWIvZ292L2NvbnN0YW50cy9kZWZhdWx0LmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBYSxTQUFTLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWtCLFVBQVUsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBWSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHb3ZCdXR0b25UeXBlLCBHb3ZDb2xvciwgR292U2l6ZSB9IGZyb20gJy4vZGVmYXVsdC50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dPVl9CVVRUT05fQ09MT1I6IEdvdkNvbG9yID0gJ3ByaW1hcnknO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfR09WX0JVVFRPTl9UWVBFOiBHb3ZCdXR0b25UeXBlID0gJ291dGxpbmVkJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0dPVl9CVVRUT05fU0laRTogR292U2l6ZSA9ICd4cyc7XG4iXX0=","export function forceFocus(input) {\n let cnt = 0;\n const maxCnt = 10;\n const int = setInterval(() => {\n input.focus({ preventScroll: true });\n if (cnt === maxCnt || input.matches(':focus')) {\n clearInterval(int);\n }\n cnt++;\n }, 5);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtZm9jdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZ292L3NyYy9saWIvZ292L3V0aWxzL2ZvcmNlLWZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBdUI7SUFDaEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxHQUFHLEVBQUUsQ0FBQztJQUNSLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZm9yY2VGb2N1cyhpbnB1dDogSFRNTElucHV0RWxlbWVudCkge1xuICBsZXQgY250ID0gMDtcbiAgY29uc3QgbWF4Q250ID0gMTA7XG4gIGNvbnN0IGludCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICBpbnB1dC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgaWYgKGNudCA9PT0gbWF4Q250IHx8IGlucHV0Lm1hdGNoZXMoJzpmb2N1cycpKSB7XG4gICAgICBjbGVhckludGVydmFsKGludCk7XG4gICAgfVxuICAgIGNudCsrO1xuICB9LCA1KTtcbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, linkedSignal, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtBaseFormInputComponent, RdtFormErrorPipe, RdtNumericInputComponent, } from '@ngrdt/forms';\nimport { RdtIconOutletDirective } from '@ngrdt/icon';\nimport { signalToPromise } from '@ngrdt/utils';\nimport { forceFocus } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtGovNumberInputComponent extends RdtNumericInputComponent {\n renderer = inject(Renderer2);\n govInput = viewChild('govInput');\n size = input('s');\n icon = input(null);\n iconStart = input(null);\n labelPositionInput = input('top', {\n alias: 'labelPosition',\n });\n labelPosition = linkedSignal(() => this.labelPositionInput());\n inputElement = signal(null);\n hasErrors = false;\n isEmpty(value) {\n return value == null;\n }\n onInput(value) {\n if (value === '' || value == null) {\n this.onInternalValueChange(null);\n }\n else if (typeof value === 'string') {\n const parsed = parseFloat(value);\n if (!isNaN(parsed)) {\n this.onInternalValueChange(parsed);\n }\n }\n else {\n this.onInternalValueChange(value);\n }\n }\n readonlyEffect = effect(async () => {\n const input = this.govInput()?.nativeElement;\n const inputEl = await input?.getRef();\n const readonly = this.readonlyInput();\n if (input) {\n if (readonly) {\n this.renderer.setAttribute(input, 'readonly', 'true');\n }\n else {\n this.renderer.removeAttribute(input, 'readonly');\n }\n }\n });\n inputElementEffect = effect(async () => {\n const govInput = this.govInput()?.nativeElement;\n if (govInput) {\n const input = await govInput.getRef();\n this.inputElement.set(input);\n }\n });\n errorFixEffect = effect(() => {\n const inputElement = this.inputElement();\n const visibleErrors = this.visibleErrors();\n const hadErrors = this.hasErrors;\n this.hasErrors = !!visibleErrors;\n if (hadErrors !== this.hasErrors) {\n const isActive = document.activeElement === inputElement;\n if (isActive && inputElement) {\n forceFocus(inputElement);\n }\n }\n });\n async focus() {\n const govInput = await this.govInput()?.nativeElement;\n const el = await govInput?.getRef();\n forceFocus(el);\n }\n canFocus() {\n return signalToPromise(this.govInput, { injector: this.injector })\n .then((btn) => btn?.nativeElement.getRef())\n .then((el) => !!el);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovNumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.0\", type: RdtGovNumberInputComponent, isStandalone: true, selector: \"rdt-gov-number-input\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, iconStart: { classPropertyName: \"iconStart\", publicName: \"iconStart\", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: \"labelPositionInput\", publicName: \"labelPosition\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovNumberInputComponent,\n multi: true,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovNumberInputComponent,\n },\n ], viewQueries: [{ propertyName: \"govInput\", first: true, predicate: [\"govInput\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@let lPos = labelPosition(); @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" size=\\\"m\\\" [class.warning-color-gov-label]=\\\"hasError\\\"\\n >{{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<gov-form-input\\n #govInput\\n input-type=\\\"number\\\"\\n [size]=\\\"size()\\\"\\n [value]=\\\"internalValue()\\\"\\n [placeholder]=\\\"placeholder()\\\"\\n [autocomplete]=\\\"autocomplete()\\\"\\n [min]=\\\"min()\\\"\\n [max]=\\\"max()\\\"\\n [step]=\\\"step()\\\"\\n [invalid]=\\\"invalid() && touched()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [required]=\\\"required()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n [name]=\\\"id()\\\"\\n [identifier]=\\\"id()\\\"\\n (gov-input)=\\\"onInput($event.detail.value)\\\"\\n (gov-focus)=\\\"onFocus()\\\"\\n (gov-blur)=\\\"onBlur()\\\"\\n>\\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if(lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if (lI) {\\n <span slot=\\\"icon-start\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: lI }\\\"></ng-container>\\n </span>\\n } @if (rI) {\\n <span slot=\\\"icon-end\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: rI }\\\"></ng-container>\\n </span>\\n }\\n</gov-form-input>\\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"], dependencies: [{ kind: \"pipe\", type: RdtFormErrorPipe, name: \"rdtFormError\" }, { kind: \"directive\", type: RdtIconOutletDirective, selector: \"[rdtIconOutlet]\", exportAs: [\"rdtIconOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovNumberInputComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-gov-number-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [RdtFormErrorPipe, RdtIconOutletDirective], providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovNumberInputComponent,\n multi: true,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovNumberInputComponent,\n },\n ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: \"@let lPos = labelPosition(); @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" size=\\\"m\\\" [class.warning-color-gov-label]=\\\"hasError\\\"\\n >{{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<gov-form-input\\n #govInput\\n input-type=\\\"number\\\"\\n [size]=\\\"size()\\\"\\n [value]=\\\"internalValue()\\\"\\n [placeholder]=\\\"placeholder()\\\"\\n [autocomplete]=\\\"autocomplete()\\\"\\n [min]=\\\"min()\\\"\\n [max]=\\\"max()\\\"\\n [step]=\\\"step()\\\"\\n [invalid]=\\\"invalid() && touched()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [required]=\\\"required()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n [name]=\\\"id()\\\"\\n [identifier]=\\\"id()\\\"\\n (gov-input)=\\\"onInput($event.detail.value)\\\"\\n (gov-focus)=\\\"onFocus()\\\"\\n (gov-blur)=\\\"onBlur()\\\"\\n>\\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if(lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if (lI) {\\n <span slot=\\\"icon-start\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: lI }\\\"></ng-container>\\n </span>\\n } @if (rI) {\\n <span slot=\\\"icon-end\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: rI }\\\"></ng-container>\\n </span>\\n }\\n</gov-form-input>\\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWdvdi1udW1iZXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbGliL2dvdi91aS9udW1iZXItaW5wdXQvcmR0LWdvdi1udW1iZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbGliL2dvdi91aS9udW1iZXItaW5wdXQvcmR0LWdvdi1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkQsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsd0JBQXdCLEdBQ3pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBVyxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBc0J6QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsd0JBQXdCO0lBQ3JELFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsUUFBUSxHQUFHLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7SUFDckUsSUFBSSxHQUFHLEtBQUssQ0FBVSxHQUFHLENBQUMsQ0FBQztJQUMzQixJQUFJLEdBQUcsS0FBSyxDQUFvQixJQUFJLENBQUMsQ0FBQztJ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T0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdvdkZvcm1JbnB1dCB9IGZyb20gJ0Bnb3YtZGVzaWduLXN5c3RlbS1jZS9hbmd1bGFyJztcbmltcG9ydCB7IFJkdEJvb2xlYW5SZXN1bHQgfSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQge1xuICBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxuICBSZHRGb3JtRXJyb3JQaXBlLFxuICBSZHROdW1lcmljSW5wdXRDb21wb25lbnQsXG59IGZyb20gJ0BuZ3JkdC9mb3Jtcyc7XG5pbXBvcnQgeyBSZHRJY29uLCBSZHRJY29uT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncmR0L2ljb24nO1xuaW1wb3J0IHsgTnVsbGFibGUsIHNpZ25hbFRvUHJvbWlzZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBHb3ZMYWJlbFBvc2l0aW9uLCBHb3ZTaXplIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGZvcmNlRm9jdXMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZHQtZ292LW51bWJlci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZHQtZ292LW51bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLy4uL2dvdi1zaGFyZWQtc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZHRGb3JtRXJyb3JQaXBlLCBSZHRJY29uT3V0bGV0RGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogUmR0R292TnVtYmVySW5wdXRDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogUmR0R292TnVtYmVySW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRHb3ZOdW1iZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIFJkdE51bWVyaWNJbnB1dENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdvdklucHV0ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8R292Rm9ybUlucHV0Pj4oJ2dvdklucHV0Jyk7XG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxHb3ZTaXplPigncycpO1xuICByZWFkb25seSBpY29uID0gaW5wdXQ8TnVsbGFibGU8UmR0SWNvbj4+KG51bGwpO1xuICByZWFkb25seSBpY29uU3RhcnQgPSBpbnB1dDxOdWxsYWJsZTxSZHRJY29uPj4obnVsbCk7XG4gIHJlYWRvbmx5IGxhYmVsUG9zaXRpb25JbnB1dCA9IGlucHV0PEdvdkxhYmVsUG9zaXRpb24+KCd0b3AnLCB7XG4gICAgYWxpYXM6ICdsYWJlbFBvc2l0aW9uJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGxhYmVsUG9zaXRpb24gPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5sYWJlbFBvc2l0aW9uSW5wdXQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRFbGVtZW50ID0gc2lnbmFsPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBoYXNFcnJvcnMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbklucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgaWYgKCFpc05hTihwYXJzZWQpKSB7XG4gICAgICAgIHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlKHBhcnNlZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5RWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZ292SW5wdXQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpbnB1dEVsID0gYXdhaXQgaW5wdXQ/LmdldFJlZigpO1xuICAgIGNvbnN0IHJlYWRvbmx5ID0gdGhpcy5yZWFkb25seUlucHV0KCk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpZiAocmVhZG9ubHkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXQsICdyZWFkb25seScsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShpbnB1dCwgJ3JlYWRvbmx5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RWxlbWVudEVmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZ292SW5wdXQgPSB0aGlzLmdvdklucHV0KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGdvdklucHV0KSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IGdvdklucHV0LmdldFJlZigpO1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2V0KGlucHV0KTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JGaXhFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuaW5wdXRFbGVtZW50KCk7XG4gICAgY29uc3QgdmlzaWJsZUVycm9ycyA9IHRoaXMudmlzaWJsZUVycm9ycygpO1xuICAgIGNvbnN0IGhhZEVycm9ycyA9IHRoaXMuaGFzRXJyb3JzO1xuICAgIHRoaXMuaGFzRXJyb3JzID0gISF2aXNpYmxlRXJyb3JzO1xuXG4gICAgaWYgKGhhZEVycm9ycyAhPT0gdGhpcy5oYXNFcnJvcnMpIHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5wdXRFbGVtZW50O1xuXG4gICAgICBpZiAoaXNBY3RpdmUgJiYgaW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGZvcmNlRm9jdXMoaW5wdXRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIG92ZXJyaWRlIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGdvdklucHV0ID0gYXdhaXQgdGhpcy5nb3ZJbnB1dCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsID0gYXdhaXQgZ292SW5wdXQ/LmdldFJlZigpO1xuICAgIGZvcmNlRm9jdXMoZWwhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNhbkZvY3VzKCk6IFJkdEJvb2xlYW5SZXN1bHQge1xuICAgIHJldHVybiBzaWduYWxUb1Byb21pc2UodGhpcy5nb3ZJbnB1dCwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KVxuICAgICAgLnRoZW4oKGJ0bikgPT4gYnRuPy5uYXRpdmVFbGVtZW50LmdldFJlZigpKVxuICAgICAgLnRoZW4oKGVsKSA9PiAhIWVsKTtcbiAgfVxufVxuIiwiQGxldCBsUG9zID0gbGFiZWxQb3NpdGlvbigpOyBAaWYobFBvcyA9PT0gJ3RvcCcpe1xuPGdvdi1mb3JtLWxhYmVsIHNsb3Q9XCJsZWZ0XCIgc2l6ZT1cIm1cIiBbY2xhc3Mud2FybmluZy1jb2xvci1nb3YtbGFiZWxdPVwiaGFzRXJyb3JcIlxuICA+e3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgPHNwYW4gY2xhc3M9XCJ3YXJuaW5nLWNvbG9yLXRleHRcIj4qPC9zcGFuPlxuICB9PC9nb3YtZm9ybS1sYWJlbFxuPlxufVxuPGdvdi1mb3JtLWlucHV0XG4gICNnb3ZJbnB1dFxuICBpbnB1dC10eXBlPVwibnVtYmVyXCJcbiAgW3NpemVdPVwic2l6ZSgpXCJcbiAgW3ZhbHVlXT1cImludGVybmFsVmFsdWUoKVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUoKVwiXG4gIFttaW5dPVwibWluKClcIlxuICBbbWF4XT1cIm1heCgpXCJcbiAgW3N0ZXBdPVwic3RlcCgpXCJcbiAgW2ludmFsaWRdPVwiaW52YWxpZCgpICYmIHRvdWNoZWQoKVwiXG4gIFthdHRyLmludmFsaWRdPVwiaW52YWxpZCgpICYmIHRvdWNoZWQoKVwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW25hbWVdPVwiaWQoKVwiXG4gIFtpZGVudGlmaWVyXT1cImlkKClcIlxuICAoZ292LWlucHV0KT1cIm9uSW5wdXQoJGV2ZW50LmRldGFpbC52YWx1ZSlcIlxuICAoZ292LWZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gIChnb3YtYmx1cik9XCJvbkJsdXIoKVwiXG4+XG4gIEBsZXQgbEkgPSBpY29uU3RhcnQoKTsgQGxldCBySSA9IGljb24oKTsgQGlmKGxQb3MgPT09ICdsZWZ0Jykge1xuICA8cFxuICAgIGNsYXNzPVwiZ292LWZvcm0tbGFiZWxfX2xhYmVsIHNfbGFiZWxcIlxuICAgIHNsb3Q9XCJwcmVmaXhcIlxuICAgIFtjbGFzcy53YXJuaW5nLWNvbG9yLXRleHRdPVwiaGFzRXJyb3JcIlxuICA+XG4gICAge3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cIndhcm5pbmctY29sb3ItdGV4dFwiPio8L3NwYW4+XG4gICAgfVxuICA8L3A+XG4gIH0gQGlmKGxQb3MgPT09ICdyaWdodCcpIHtcbiAgPHBcbiAgICBjbGFzcz1cImdvdi1mb3JtLWxhYmVsX19sYWJlbCBzX2xhYmVsXCJcbiAgICBzbG90PVwic3VmaXhcIlxuICAgIFtjbGFzcy53YXJuaW5nLWNvbG9yLXRleHRdPVwiaGFzRXJyb3JcIlxuICA+XG4gICAge3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cIndhcm5pbmctY29sb3ItdGV4dFwiPio8L3NwYW4+XG4gICAgfVxuICA8L3A+XG4gIH0gQGlmIChsSSkge1xuICA8c3BhbiBzbG90PVwiaWNvbi1zdGFydFwiIHN0eWxlPVwid2lkdGg6IGF1dG9cIj5cbiAgICA8bmctY29udGFpbmVyIHJkdEljb25PdXRsZXQgW2lucHV0c109XCJ7IG5hbWU6IGxJIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuICB9IEBpZiAockkpIHtcbiAgPHNwYW4gc2xvdD1cImljb24tZW5kXCIgc3R5bGU9XCJ3aWR0aDogYXV0b1wiPlxuICAgIDxuZy1jb250YWluZXIgcmR0SWNvbk91dGxldCBbaW5wdXRzXT1cInsgbmFtZTogckkgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIH1cbjwvZ292LWZvcm0taW5wdXQ+XG5AbGV0IGhhc0Vycm9yID0gdmlzaWJsZUVycm9ycygpIHwgcmR0Rm9ybUVycm9yOyBAaWYoaGFzRXJyb3Ipe1xuPGdvdi1mb3JtLW1lc3NhZ2Ugc2xvdD1cImJvdHRvbVwiIGNvbG9yPVwiZXJyb3JcIj57eyBoYXNFcnJvciB9fTwvZ292LWZvcm0tbWVzc2FnZT5cbn1cbiJdfQ==","import { Directive } from '@angular/core';\nimport { RdtSelectOfflineDatasourceProviderDirective } from '@ngrdt/forms';\nimport * as i0 from \"@angular/core\";\nexport class RdtGovSelectOfflineProviderDirective extends RdtSelectOfflineDatasourceProviderDirective {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovSelectOfflineProviderDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtGovSelectOfflineProviderDirective, isStandalone: true, selector: \"rdt-gov-select[options]\", usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovSelectOfflineProviderDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'rdt-gov-select[options]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWdvdi1zZWxlY3Qtb2ZmbGluZS1wcm92aWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZ292L3NyYy9saWIvZ292L3VpL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1nb3Ytc2VsZWN0LW9mZmxpbmUtcHJvdmlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUszRSxNQUFNLE9BQU8sb0NBRVgsU0FBUSwyQ0FBOEM7dUdBRjNDLG9DQUFvQzsyRkFBcEMsb0NBQW9DOzsyRkFBcEMsb0NBQW9DO2tCQUhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRTZWxlY3RPZmZsaW5lRGF0YXNvdXJjZVByb3ZpZGVyRGlyZWN0aXZlIH0gZnJvbSAnQG5ncmR0L2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAncmR0LWdvdi1zZWxlY3Rbb3B0aW9uc10nLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRHb3ZTZWxlY3RPZmZsaW5lUHJvdmlkZXJEaXJlY3RpdmU8XG4gIFQgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXJcbj4gZXh0ZW5kcyBSZHRTZWxlY3RPZmZsaW5lRGF0YXNvdXJjZVByb3ZpZGVyRGlyZWN0aXZlPFQ+IHt9XG4iXX0=","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, ENTER, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { booleanAttribute, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, linkedSignal, untracked, viewChild, viewChildren, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { GovDesignSystemModule } from '@gov-design-system-ce/angular';\nimport { RdtAutoFocusOnInitDirective } from '@ngrdt/core';\nimport { RdtBaseFormInputComponent, RdtBaseSelectCommonComponent, RdtFormErrorPipe, RdtSelectOptionDirective, RdtSelectStore, RdtSingleSelectComponent, } from '@ngrdt/forms';\nimport { animationFrameScheduler, filter, fromEvent, map, throttleTime, } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@gov-design-system-ce/angular\";\nexport class RdtGovSelectComponent extends RdtBaseSelectCommonComponent {\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n scrollContainer = viewChild('scrollContainer');\n selectButton = viewChild('selectButton');\n overlayTemplate = viewChild('overlayContainer');\n optionEls = viewChildren((RdtSelectOptionDirective));\n multi = input(false, { transform: booleanAttribute });\n size = input('s');\n placeholder = input('Vyberte');\n showClear = input(true, { transform: booleanAttribute });\n showSearchInput = input(false, {\n transform: booleanAttribute,\n alias: 'showSearch',\n });\n showSearch = linkedSignal(() => this.showSearchInput());\n labelPositionInput = input('top', {\n alias: 'labelPosition',\n });\n labelPosition = linkedSignal(() => this.labelPositionInput());\n keyManager = new ActiveDescendantKeyManager(this.optionEls, this.injector);\n resizeEffect = effect(() => {\n const btn = this.selectButton()?.nativeElement;\n const observer = new ResizeObserver((entries) => {\n const size = entries[0]?.borderBoxSize?.[0].inlineSize;\n if (this.overlayRef && size) {\n this.overlayRef.updateSize({\n minWidth: size,\n });\n }\n });\n if (btn) {\n observer.observe(btn);\n }\n return () => observer.disconnect();\n });\n overlayRef = null;\n isEmpty(value) {\n return value === null || (Array.isArray(value) && value.length === 0);\n }\n selectedLabel = computed(() => this.store\n .selectedItems()\n .map((i) => i.label)\n .join(', ') || null);\n onClearClick(event) {\n this.store.unselectAll();\n }\n openOverlay() {\n if (this.readonlyInput()) {\n return;\n }\n if (this.overlayRef === null) {\n this.overlayRef = this.createOverlay();\n this.overlayRef.backdropClick().subscribe(() => {\n this.overlayRef?.detach();\n this.onTouch();\n });\n this.overlayRef\n .keydownEvents()\n .pipe(map((e) => e.key), filter((key) => key === 'Escape'))\n .subscribe((e) => {\n this.overlayRef?.detach();\n this.onTouch();\n });\n }\n if (this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n this.onTouch();\n return;\n }\n const overlayTemplate = this.overlayTemplate();\n if (overlayTemplate) {\n const portal = new TemplatePortal(overlayTemplate, this.viewContainerRef);\n this.overlayRef.attach(portal);\n }\n }\n handleButtonKeydown($event) {\n const keyCode = $event.keyCode;\n const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;\n if (isArrowKey) {\n this.openOverlay();\n }\n }\n handleButtonBlur() {\n if (!this.overlayRef?.hasAttached()) {\n this.onBlur();\n }\n }\n handleInput(query) {\n this.store.setQuery(query);\n this.keyManager.setActiveItem(-1);\n }\n handleInputKeydown($event) {\n const key = $event.keyCode;\n const activeItem = this.keyManager.activeItem;\n if (key === ENTER && activeItem !== null) {\n this.selectOption(activeItem.value());\n }\n else {\n this.keyManager.onKeydown($event);\n this.keyManager.activeItem?.scrollIntoElement();\n }\n }\n toExternalValue(internalValue) {\n if (untracked(this.multi)) {\n return internalValue;\n }\n else {\n return Array.isArray(internalValue) ? internalValue[0] : null;\n }\n }\n selectOption(option) {\n if (untracked(this.multi)) {\n this.store.toggle(option);\n }\n else {\n this.store.selectSingle(option);\n // detach on a next tick\n // otherwise on ENTER overlay is still enter\n setTimeout(() => {\n this.overlayRef?.detach();\n this.keyManager.setActiveItem(-1);\n });\n }\n }\n selectButtonEffect = effect(() => {\n const selectButton = this.selectButton()?.nativeElement;\n const overlay = this.overlayRef;\n if (overlay && selectButton) {\n const positionStrategy = this.getPositionStrategy(selectButton);\n overlay.updatePositionStrategy(positionStrategy);\n }\n });\n getPositionStrategy(element) {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.selectButton()?.nativeElement)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'rdt-gov-select-overlay-panel-bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'rdt-gov-select-overlay-panel-top',\n },\n ]);\n }\n createOverlay() {\n const selectButton = this.selectButton()?.nativeElement;\n const positionStrategy = this.getPositionStrategy(selectButton);\n return this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'rdt-gov-transparent-backdrop',\n positionStrategy,\n minWidth: this.selectButton()?.nativeElement.clientWidth,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n scrollEffect = effect((onCleanup) => {\n const scrollContainer = this.scrollContainer()?.nativeElement;\n if (!scrollContainer) {\n return;\n }\n const dist$ = fromEvent(scrollContainer, 'scroll').pipe(filter(() => untracked(this.store.hasMore) && !untracked(this.store.loading)), throttleTime(0, animationFrameScheduler), map(() => this.scrollDistToBottom(scrollContainer)));\n const THRESHOLD = 42;\n const sub = dist$.subscribe((dist) => {\n if (dist < THRESHOLD) {\n this.store.fetch();\n }\n });\n onCleanup(() => sub.unsubscribe());\n });\n scrollDistToBottom(container) {\n return (container.scrollHeight - (container.scrollTop + container.clientHeight));\n }\n focus() {\n this.openOverlay();\n }\n canFocus() {\n return !this.disabled();\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.overlayRef?.dispose();\n this.keyManager.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.0\", type: RdtGovSelectComponent, isStandalone: true, selector: \"rdt-gov-select\", inputs: { multi: { classPropertyName: \"multi\", publicName: \"multi\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: \"showClear\", publicName: \"showClear\", isSignal: true, isRequired: false, transformFunction: null }, showSearchInput: { classPropertyName: \"showSearchInput\", publicName: \"showSearch\", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: \"labelPositionInput\", publicName: \"labelPosition\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n RdtSelectStore,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovSelectComponent,\n multi: true,\n },\n {\n provide: RdtSingleSelectComponent,\n useExisting: RdtGovSelectComponent,\n },\n {\n provide: RdtBaseSelectCommonComponent,\n useExisting: RdtGovSelectComponent,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovSelectComponent,\n },\n ], viewQueries: [{ propertyName: \"scrollContainer\", first: true, predicate: [\"scrollContainer\"], descendants: true, isSignal: true }, { propertyName: \"selectButton\", first: true, predicate: [\"selectButton\"], descendants: true, isSignal: true }, { propertyName: \"overlayTemplate\", first: true, predicate: [\"overlayContainer\"], descendants: true, isSignal: true }, { propertyName: \"optionEls\", predicate: (RdtSelectOptionDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@let sel = selectedLabel(); @let lPos = labelPosition(); @let hasError =\\nvisibleErrors() | rdtFormError; @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" [class.warning-color-gov-label]=\\\"hasError\\\" size=\\\"s\\\"\\n >{{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<div\\n class=\\\"gov-form-select gov-form-input\\\"\\n [class.has-clear]=\\\"showClear() && !!sel\\\"\\n [attr.size]=\\\"size()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n>\\n @if (lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n }\\n <div class=\\\"element\\\">\\n <button\\n #selectButton\\n [attr.size]=\\\"size()\\\"\\n (click)=\\\"openOverlay()\\\"\\n (keydown)=\\\"handleButtonKeydown($event)\\\"\\n [disabled]=\\\"disabled()\\\"\\n class=\\\"select\\\"\\n type=\\\"button\\\"\\n (blur)=\\\"handleButtonBlur()\\\"\\n (focus)=\\\"onFocus()\\\"\\n >\\n <div class=\\\"scroll-content\\\" [class.warning-color-text]=\\\"hasError\\\">\\n @if (sel) {\\n {{ sel }}\\n } @else {\\n {{ placeholder() || ' ' }}\\n }\\n </div>\\n @if (showClear() && sel) {\\n <gov-button\\n class=\\\"clear-button\\\"\\n iconStart=\\\"basic/x\\\"\\n (click)=\\\"onClearClick($event)\\\"\\n propagate=\\\"false\\\"\\n buttonType=\\\"base\\\"\\n color=\\\"error\\\"\\n [rdtDisabled]=\\\"disabled()\\\"\\n ></gov-button>\\n } @if (loading()) {\\n <rdt-spinner />\\n } @else { @if(hasError){\\n <gov-icon name=\\\"exclamation-lg\\\" class=\\\"icon-warning\\\"></gov-icon>\\n }\\n <gov-icon\\n name=\\\"chevron-down\\\"\\n class=\\\"icon-arrow\\\"\\n [class.warning-color-icon]=\\\"hasError\\\"\\n ></gov-icon>\\n }\\n </button>\\n </div>\\n @if (lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n }\\n</div>\\n<ng-template #overlayContainer>\\n <div class=\\\"rdt-gov-select-container\\\">\\n @if (showSearch()) {\\n <div class=\\\"search-container\\\" [class.loading]=\\\"loading()\\\">\\n <input\\n class=\\\"gov-form-input\\\"\\n size=\\\"s\\\"\\n type=\\\"search\\\"\\n rdtAutofocusOnInit\\n [formControl]=\\\"inputCtrl\\\"\\n (keydown)=\\\"handleInputKeydown($event)\\\"\\n placeholder=\\\"Zadejte hledan\\u00FD v\\u00FDraz\\\"\\n />\\n @if (loading()) {\\n <rdt-spinner />\\n }\\n </div>\\n }\\n <ul role=\\\"listbox\\\" aria-hidden=\\\"false\\\" #scrollContainer>\\n @for (option of visibleOptions(); track option.id) {\\n <li role=\\\"option\\\" [attr.aria-selected]=\\\"option.selected\\\">\\n <button\\n [rdtSelectOption]=\\\"option\\\"\\n (click)=\\\"selectOption(option.id)\\\"\\n class=\\\"option\\\"\\n type=\\\"button\\\"\\n >\\n <gov-icon\\n name=\\\"check-lg\\\"\\n [class.invisible]=\\\"!option.selected\\\"\\n class=\\\"mr-1 w-4 picked\\\"\\n />\\n {{ option.label }}\\n </button>\\n </li>\\n } @empty { @if (loading()) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">Na\\u010D\\u00EDt\\u00E1n\\u00ED hodnot...</div>\\n </li>\\n } @else if (store.query()) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">\\n Pro zadan\\u00FD v\\u00FDraz nejsou k dispozici \\u017E\\u00E1dn\\u00E9 z\\u00E1znamy\\n </div>\\n </li>\\n } @else if (!store.datasource()?.queryRequired) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">Nejsou k dispozici \\u017E\\u00E1dn\\u00E9 hodnoty</div>\\n </li>\\n } }\\n </ul>\\n </div>\\n</ng-template>\\n@if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\"rdt-gov-select{display:inline-block;max-width:100%}rdt-gov-select .gov-form-select{width:100%}rdt-gov-select .gov-form-select.has-clear .select{padding-right:calc(1.5rem + var(--spacing-s))!important}rdt-gov-select .gov-form-input{border:none!important;background-color:transparent!important}rdt-gov-select .select{display:flex}rdt-gov-select .select rdt-spinner{position:absolute;right:.5rem;width:1rem;height:1rem}rdt-gov-select [size=s].gov-form-select .select{height:var(--height-component-s);padding:var(--spacing-s);padding-right:var(--spacing-s);font-size:var(--font-size-body-s)}rdt-gov-select [size=s].gov-form-select .select:hover{background-color:var(--button-outlined-primary-hover)}rdt-gov-select .gov-form-select .select{position:relative;border:none;width:100%;border-radius:var(--corner-radius-s);background-color:var(--background-block-primary);font-family:var(--font-family);text-align:left}rdt-gov-select [invalid=true].gov-form-input .select{border-color:var(--background-status-error);color:var(--background-status-error)}rdt-gov-select .icon-arrow{color:var(--text-primary);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:.75rem;width:.75rem;height:.75rem}rdt-gov-select .icon-warning{color:var(--icon-error);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:1.85rem;width:.75rem;height:.75rem}rdt-gov-select .scroll-content{color:var(--text-primary);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}rdt-gov-select .clear-button{display:flex;position:absolute;right:2rem;top:50%;transform:translateY(-50%)}rdt-gov-select .clear-button button{padding:0!important;min-height:auto!important;--icon-size-xs: 1rem}rdt-gov-select .clear-button gov-icon[slot=left-icon]{left:0!important;position:inherit!important;top:0!important;display:inline!important;transform:none!important}rdt-gov-select .element{max-width:100%}.rdt-gov-select-container{width:100%;margin-top:.5rem;margin-bottom:.5rem;overflow:hidden;border:1px solid var(--color-neutral-600);border-radius:0;background-color:var(--background-block-primary)}.rdt-gov-select-container ul{font-size:var(--font-size-body-s);line-height:var(--height-line-s);letter-spacing:var(--spacing-s);padding-left:0;margin-top:0;margin-bottom:0;list-style:none;max-height:14.0625rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.rdt-gov-select-container ul .option{color:var(--text-primary);border:none;display:flex;align-items:center;padding:.75rem .5rem;width:100%;margin:0;background:none;text-align:left}.rdt-gov-select-container ul .option gov-icon{padding-right:var(--spacing-s)}.rdt-gov-select-container ul .option gov-icon.invisible{display:none}.rdt-gov-select-container ul .option:hover{color:var(--color-primary-50);background:var(--color-neutral-600)}.rdt-gov-select-container li{margin-bottom:0}.rdt-gov-select-container .picked{color:var(--icon-success)}.rdt-gov-select-container .search-spinner{--spinner-size: 1.2rem;position:absolute;right:1rem;top:100%;transform:translateY(calc(var(--spinner-size) / -2))}.rdt-gov-select-container .search-spinner .sis-icon-32-fix{height:var(--spinner-size)}.rdt-gov-select-container .search-container{width:100%;position:relative;padding:var(--spacing-s)}.rdt-gov-select-container .search-container input{width:100%;background-color:var(--background-block-primary);font-family:var(--font-family);font-size:var(--font-size-body-s);height:var(--height-component-s);padding:var(--spacing-s);color:var(--text-primary)}.rdt-gov-select-container .search-container input:focus-visible{outline:var(.125rem) solid var(--status-focus);outline-offset:0}.rdt-gov-select-container .search-container.loading input::-webkit-search-cancel-button{position:relative;right:1rem}.rdt-gov-select-overlay-panel-top .rdt-gov-select-container{display:flex;flex-direction:column-reverse}\\n\", \".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"], dependencies: [{ kind: \"directive\", type: RdtSelectOptionDirective, selector: \"[rdtSelectOption]\", inputs: [\"rdtSelectOption\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: RdtAutoFocusOnInitDirective, selector: \"[rdtAutofocusOnInit]\" }, { kind: \"ngmodule\", type: GovDesignSystemModule }, { kind: \"component\", type: i2.GovButton, selector: \"gov-button\", inputs: [\"color\", \"disabled\", \"download\", \"expanded\", \"expandedMobile\", \"focusable\", \"href\", \"hreflang\", \"identifier\", \"loading\", \"name\", \"nativeType\", \"referrerpolicy\", \"rel\", \"size\", \"target\", \"type\"] }, { kind: \"component\", type: i2.GovFormLabel, selector: \"gov-form-label\", inputs: [\"identifier\", \"legend\", \"required\", \"size\"] }, { kind: \"component\", type: i2.GovFormMessage, selector: \"gov-form-message\", inputs: [\"color\", \"size\"] }, { kind: \"component\", type: i2.GovIcon, selector: \"gov-icon\", inputs: [\"color\", \"name\", \"size\", \"type\"] }, { kind: \"pipe\", type: RdtFormErrorPipe, name: \"rdtFormError\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovSelectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-gov-select', imports: [\n RdtSelectOptionDirective,\n ReactiveFormsModule,\n RdtAutoFocusOnInitDirective,\n GovDesignSystemModule,\n RdtFormErrorPipe,\n ], providers: [\n RdtSelectStore,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovSelectComponent,\n multi: true,\n },\n {\n provide: RdtSingleSelectComponent,\n useExisting: RdtGovSelectComponent,\n },\n {\n provide: RdtBaseSelectCommonComponent,\n useExisting: RdtGovSelectComponent,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovSelectComponent,\n },\n ], schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.None, template: \"@let sel = selectedLabel(); @let lPos = labelPosition(); @let hasError =\\nvisibleErrors() | rdtFormError; @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" [class.warning-color-gov-label]=\\\"hasError\\\" size=\\\"s\\\"\\n >{{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<div\\n class=\\\"gov-form-select gov-form-input\\\"\\n [class.has-clear]=\\\"showClear() && !!sel\\\"\\n [attr.size]=\\\"size()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n>\\n @if (lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n }\\n <div class=\\\"element\\\">\\n <button\\n #selectButton\\n [attr.size]=\\\"size()\\\"\\n (click)=\\\"openOverlay()\\\"\\n (keydown)=\\\"handleButtonKeydown($event)\\\"\\n [disabled]=\\\"disabled()\\\"\\n class=\\\"select\\\"\\n type=\\\"button\\\"\\n (blur)=\\\"handleButtonBlur()\\\"\\n (focus)=\\\"onFocus()\\\"\\n >\\n <div class=\\\"scroll-content\\\" [class.warning-color-text]=\\\"hasError\\\">\\n @if (sel) {\\n {{ sel }}\\n } @else {\\n {{ placeholder() || ' ' }}\\n }\\n </div>\\n @if (showClear() && sel) {\\n <gov-button\\n class=\\\"clear-button\\\"\\n iconStart=\\\"basic/x\\\"\\n (click)=\\\"onClearClick($event)\\\"\\n propagate=\\\"false\\\"\\n buttonType=\\\"base\\\"\\n color=\\\"error\\\"\\n [rdtDisabled]=\\\"disabled()\\\"\\n ></gov-button>\\n } @if (loading()) {\\n <rdt-spinner />\\n } @else { @if(hasError){\\n <gov-icon name=\\\"exclamation-lg\\\" class=\\\"icon-warning\\\"></gov-icon>\\n }\\n <gov-icon\\n name=\\\"chevron-down\\\"\\n class=\\\"icon-arrow\\\"\\n [class.warning-color-icon]=\\\"hasError\\\"\\n ></gov-icon>\\n }\\n </button>\\n </div>\\n @if (lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }}\\n @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n }\\n</div>\\n<ng-template #overlayContainer>\\n <div class=\\\"rdt-gov-select-container\\\">\\n @if (showSearch()) {\\n <div class=\\\"search-container\\\" [class.loading]=\\\"loading()\\\">\\n <input\\n class=\\\"gov-form-input\\\"\\n size=\\\"s\\\"\\n type=\\\"search\\\"\\n rdtAutofocusOnInit\\n [formControl]=\\\"inputCtrl\\\"\\n (keydown)=\\\"handleInputKeydown($event)\\\"\\n placeholder=\\\"Zadejte hledan\\u00FD v\\u00FDraz\\\"\\n />\\n @if (loading()) {\\n <rdt-spinner />\\n }\\n </div>\\n }\\n <ul role=\\\"listbox\\\" aria-hidden=\\\"false\\\" #scrollContainer>\\n @for (option of visibleOptions(); track option.id) {\\n <li role=\\\"option\\\" [attr.aria-selected]=\\\"option.selected\\\">\\n <button\\n [rdtSelectOption]=\\\"option\\\"\\n (click)=\\\"selectOption(option.id)\\\"\\n class=\\\"option\\\"\\n type=\\\"button\\\"\\n >\\n <gov-icon\\n name=\\\"check-lg\\\"\\n [class.invisible]=\\\"!option.selected\\\"\\n class=\\\"mr-1 w-4 picked\\\"\\n />\\n {{ option.label }}\\n </button>\\n </li>\\n } @empty { @if (loading()) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">Na\\u010D\\u00EDt\\u00E1n\\u00ED hodnot...</div>\\n </li>\\n } @else if (store.query()) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">\\n Pro zadan\\u00FD v\\u00FDraz nejsou k dispozici \\u017E\\u00E1dn\\u00E9 z\\u00E1znamy\\n </div>\\n </li>\\n } @else if (!store.datasource()?.queryRequired) {\\n <li class=\\\"pointer-events-none\\\">\\n <div class=\\\"option\\\">Nejsou k dispozici \\u017E\\u00E1dn\\u00E9 hodnoty</div>\\n </li>\\n } }\\n </ul>\\n </div>\\n</ng-template>\\n@if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\"rdt-gov-select{display:inline-block;max-width:100%}rdt-gov-select .gov-form-select{width:100%}rdt-gov-select .gov-form-select.has-clear .select{padding-right:calc(1.5rem + var(--spacing-s))!important}rdt-gov-select .gov-form-input{border:none!important;background-color:transparent!important}rdt-gov-select .select{display:flex}rdt-gov-select .select rdt-spinner{position:absolute;right:.5rem;width:1rem;height:1rem}rdt-gov-select [size=s].gov-form-select .select{height:var(--height-component-s);padding:var(--spacing-s);padding-right:var(--spacing-s);font-size:var(--font-size-body-s)}rdt-gov-select [size=s].gov-form-select .select:hover{background-color:var(--button-outlined-primary-hover)}rdt-gov-select .gov-form-select .select{position:relative;border:none;width:100%;border-radius:var(--corner-radius-s);background-color:var(--background-block-primary);font-family:var(--font-family);text-align:left}rdt-gov-select [invalid=true].gov-form-input .select{border-color:var(--background-status-error);color:var(--background-status-error)}rdt-gov-select .icon-arrow{color:var(--text-primary);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:.75rem;width:.75rem;height:.75rem}rdt-gov-select .icon-warning{color:var(--icon-error);position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none;right:1.85rem;width:.75rem;height:.75rem}rdt-gov-select .scroll-content{color:var(--text-primary);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}rdt-gov-select .clear-button{display:flex;position:absolute;right:2rem;top:50%;transform:translateY(-50%)}rdt-gov-select .clear-button button{padding:0!important;min-height:auto!important;--icon-size-xs: 1rem}rdt-gov-select .clear-button gov-icon[slot=left-icon]{left:0!important;position:inherit!important;top:0!important;display:inline!important;transform:none!important}rdt-gov-select .element{max-width:100%}.rdt-gov-select-container{width:100%;margin-top:.5rem;margin-bottom:.5rem;overflow:hidden;border:1px solid var(--color-neutral-600);border-radius:0;background-color:var(--background-block-primary)}.rdt-gov-select-container ul{font-size:var(--font-size-body-s);line-height:var(--height-line-s);letter-spacing:var(--spacing-s);padding-left:0;margin-top:0;margin-bottom:0;list-style:none;max-height:14.0625rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.rdt-gov-select-container ul .option{color:var(--text-primary);border:none;display:flex;align-items:center;padding:.75rem .5rem;width:100%;margin:0;background:none;text-align:left}.rdt-gov-select-container ul .option gov-icon{padding-right:var(--spacing-s)}.rdt-gov-select-container ul .option gov-icon.invisible{display:none}.rdt-gov-select-container ul .option:hover{color:var(--color-primary-50);background:var(--color-neutral-600)}.rdt-gov-select-container li{margin-bottom:0}.rdt-gov-select-container .picked{color:var(--icon-success)}.rdt-gov-select-container .search-spinner{--spinner-size: 1.2rem;position:absolute;right:1rem;top:100%;transform:translateY(calc(var(--spinner-size) / -2))}.rdt-gov-select-container .search-spinner .sis-icon-32-fix{height:var(--spinner-size)}.rdt-gov-select-container .search-container{width:100%;position:relative;padding:var(--spacing-s)}.rdt-gov-select-container .search-container input{width:100%;background-color:var(--background-block-primary);font-family:var(--font-family);font-size:var(--font-size-body-s);height:var(--height-component-s);padding:var(--spacing-s);color:var(--text-primary)}.rdt-gov-select-container .search-container input:focus-visible{outline:var(.125rem) solid var(--status-focus);outline-offset:0}.rdt-gov-select-container .search-container.loading input::-webkit-search-cancel-button{position:relative;right:1rem}.rdt-gov-select-overlay-panel-top .rdt-gov-select-container{display:flex;flex-direction:column-reverse}\\n\", \".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWdvdi1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbGliL2dvdi91aS9zZWxlY3QvcmR0LWdvdi1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbGliL2dvdi91aS9zZWxlY3QvcmR0LWdvdi1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFHWixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2Qsd0JBQXdCLEdBQ3pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEVBQ0gsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDOzs7O0FBb0NkLE1BQU0sT0FBTyxxQkFDWCxTQUFRLDRCQUFxRDtJQUc1QyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLGVBQWUsR0FDOUIsU0FBUyxDQUErQixpQkFBaUIsQ0FBQyxDQUFDO0lBQzVDLFlBQVksR0FBRyxTQUFTLENBQWEsY0FBYyxDQUFDLENBQUM7SUFDckQsZUFBZSxHQUM5QixTQUFTLENBQW9CLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFBLHdCQUE2QixDQUFBLENBQUMsQ0FBQztJQUVoRSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDdEQsSUFBSSxHQUFHLEtBQUssQ0FBVSxHQUFHLENBQUMsQ0FBQztJQUNsQixXQUFXLEdBQUcsS0FBSyxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN6RCxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN0QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLEtBQUssRUFBRSxZQUFZO0tBQ3BCLENBQUMsQ0FBQztJQUNNLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFtQixLQUFLLEVBQUU7UUFDM0QsS0FBSyxFQUFFLGVBQWU7S0FDdkIsQ0FBQyxDQUFDO0lBQ00sYUFBYSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBRXRELFVBQVUsR0FBRyxJQUFJLDBCQUEwQixDQUMxRCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztJQUVNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7b0JBQ3pCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztJQUVLLFVBQVUsR0FBc0IsSUFBSSxDQUFDO0lBRTFCLE9BQU8sQ0FBQyxLQUF5QjtRQUNsRCxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVRLGFBQWEsR0FBRyxRQUFRLENBQy9CLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxLQUFLO1NBQ1AsYUFBYSxFQUFFO1NBQ2YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQ3hCLENBQUM7SUFFRixZQUFZLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVTtpQkFDWixhQUFhLEVBQUU7aUJBQ2YsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FDbEM7aUJBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxNQUFxQjtRQUNqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLFVBQVUsQ0FBQztRQUVsRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRWtCLFdBQVcsQ0FBQyxLQUFvQjtRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFxQjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksR0FBRyxLQUFLLEtBQUssSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUFpQztRQUVqQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLGFBQTZCLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyx3QkFBd0I7WUFDeEIsNENBQTRDO1lBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVEsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUN4QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDaEMsSUFBSSxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7WUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEUsT0FBTyxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUssbUJBQW1CLENBQUMsT0FBb0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO2FBQ3ZELGFBQWEsQ0FBQztZQUNiO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFVBQVUsRUFBRSxxQ0FBcUM7YUFDbEQ7WUFDRDtnQkFDRSxPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixVQUFVLEVBQUUsa0NBQWtDO2FBQy9DO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSw4QkFBOEI7WUFDN0MsZ0JBQWdCO1lBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDLFdBQVc7WUFDeEQsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDMUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDckQsTUFBTSxDQUNKLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQ3RFLEVBQ0QsWUFBWSxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxFQUN4QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQ3BELENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztJQUVLLGtCQUFrQixDQUFDLFNBQXNCO1FBQy9DLE9BQU8sQ0FDTCxTQUFTLENBQUMsWUFBWSxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSztRQUNaLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRVEsUUFBUTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO3VHQW5QVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwrMkJBdkJyQjtZQUNULGNBQWM7WUFDZDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLHFCQUFxQjthQUNuQztZQUNEO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSxxQkFBcUI7YUFDbkM7WUFDRDtnQkFDRSxPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxXQUFXLEVBQUUscUJBQXFCO2FBQ25DO1NBQ0Ysa1pBZ0J5QyxDQUFBLHdCQUE2QixDQUFBLHVGQ3ZGekUsKy9IQTJJQSwrd0lEN0ZJLHdCQUF3QiwwRkFDeEIsbUJBQW1CLDBrQkFDbkIsMkJBQTJCLGdFQUMzQixxQkFBcUIsNG5CQUNyQixnQkFBZ0I7OzJGQXlCUCxxQkFBcUI7a0JBbENqQyxTQUFTOytCQUNFLGdCQUFnQixXQUdqQjt3QkFDUCx3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjtxQkFDakIsYUFDVTt3QkFDVCxjQUFjO3dCQUNkOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsdUJBQXVCOzRCQUNsQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxXQUFXLHVCQUF1Qjt5QkFDbkM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyx1QkFBdUI7eUJBQ25DO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFdBQVcsdUJBQXVCO3lCQUNuQztxQkFDRixXQUNRLENBQUMsc0JBQXNCLENBQUMsaUJBQ2xCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICB1bnRyYWNrZWQsXG4gIHZpZXdDaGlsZCxcbiAgdmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdvdkRlc2lnblN5c3RlbU1vZHVsZSB9IGZyb20gJ0Bnb3YtZGVzaWduLXN5c3RlbS1jZS9hbmd1bGFyJztcbmltcG9ydCB7IFJkdEF1dG9Gb2N1c09uSW5pdERpcmVjdGl2ZSwgUmR0Qm9vbGVhblJlc3VsdCB9IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7XG4gIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXG4gIFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQsXG4gIFJkdEZvcm1FcnJvclBpcGUsXG4gIFJkdFNlbGVjdE9wdGlvbkRpcmVjdGl2ZSxcbiAgUmR0U2VsZWN0U3RvcmUsXG4gIFJkdFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbn0gZnJvbSAnQG5ncmR0L2Zvcm1zJztcbmltcG9ydCB7XG4gIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLFxuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICB0aHJvdHRsZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR292TGFiZWxQb3NpdGlvbiwgR292U2l6ZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZHQtZ292LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZHQtZ292LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JkdC1nb3Ytc2VsZWN0LmNvbXBvbmVudC5zY3NzJywgJy4vLi4vZ292LXNoYXJlZC1zdHlsZXMuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgUmR0U2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUmR0QXV0b0ZvY3VzT25Jbml0RGlyZWN0aXZlLFxuICAgIEdvdkRlc2lnblN5c3RlbU1vZHVsZSxcbiAgICBSZHRGb3JtRXJyb3JQaXBlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBSZHRTZWxlY3RTdG9yZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRHb3ZTZWxlY3RDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJkdFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRHb3ZTZWxlY3RDb21wb25lbnQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZHRCYXNlU2VsZWN0Q29tbW9uQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdEdvdlNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogUmR0R292U2VsZWN0Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0R292U2VsZWN0Q29tcG9uZW50PFRJdGVtLCBUSWQ+XG4gIGV4dGVuZHMgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudDxUSXRlbSwgVElkLCBUSWQgfCBUSWRbXT5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxDb250YWluZXIgPVxuICAgIHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+Pignc2Nyb2xsQ29udGFpbmVyJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0QnV0dG9uID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdzZWxlY3RCdXR0b24nKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5VGVtcGxhdGUgPVxuICAgIHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjx2b2lkPj4oJ292ZXJsYXlDb250YWluZXInKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25FbHMgPSB2aWV3Q2hpbGRyZW4oUmR0U2VsZWN0T3B0aW9uRGlyZWN0aXZlPFRJZD4pO1xuXG4gIHJlYWRvbmx5IG11bHRpID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8R292U2l6ZT4oJ3MnKTtcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdWeWJlcnRlJyk7XG4gIHJlYWRvbmx5IHNob3dDbGVhciA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICByZWFkb25seSBzaG93U2VhcmNoSW5wdXQgPSBpbnB1dChmYWxzZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBhbGlhczogJ3Nob3dTZWFyY2gnLFxuICB9KTtcbiAgcmVhZG9ubHkgc2hvd1NlYXJjaCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnNob3dTZWFyY2hJbnB1dCgpKTtcbiAgcmVhZG9ubHkgbGFiZWxQb3NpdGlvbklucHV0ID0gaW5wdXQ8R292TGFiZWxQb3NpdGlvbj4oJ3RvcCcsIHtcbiAgICBhbGlhczogJ2xhYmVsUG9zaXRpb24nLFxuICB9KTtcbiAgcmVhZG9ubHkgbGFiZWxQb3NpdGlvbiA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmxhYmVsUG9zaXRpb25JbnB1dCgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIoXG4gICAgdGhpcy5vcHRpb25FbHMsXG4gICAgdGhpcy5pbmplY3RvclxuICApO1xuXG4gIHByaXZhdGUgcmVzaXplRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBidG4gPSB0aGlzLnNlbGVjdEJ1dHRvbigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gZW50cmllc1swXT8uYm9yZGVyQm94U2l6ZT8uWzBdLmlubGluZVNpemU7XG4gICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHNpemUpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xuICAgICAgICAgIG1pbldpZHRoOiBzaXplLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoYnRuKSB7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGJ0bik7XG4gICAgfVxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH0pO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBUSWQgfCBUSWRbXSB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XG4gIH1cblxuICByZWFkb25seSBzZWxlY3RlZExhYmVsID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLnNlbGVjdGVkSXRlbXMoKVxuICAgICAgICAubWFwKChpKSA9PiBpLmxhYmVsKVxuICAgICAgICAuam9pbignLCAnKSB8fCBudWxsXG4gICk7XG5cbiAgb25DbGVhckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS51bnNlbGVjdEFsbCgpO1xuICB9XG5cbiAgb3Blbk92ZXJsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlJbnB1dCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZiA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgIC5rZXlkb3duRXZlbnRzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChlKSA9PiBlLmtleSksXG4gICAgICAgICAgZmlsdGVyKChrZXkpID0+IGtleSA9PT0gJ0VzY2FwZScpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXlUZW1wbGF0ZSA9IHRoaXMub3ZlcmxheVRlbXBsYXRlKCk7XG4gICAgaWYgKG92ZXJsYXlUZW1wbGF0ZSkge1xuICAgICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKG92ZXJsYXlUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQnV0dG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXlDb2RlID0gJGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgaXNBcnJvd0tleSA9IGtleUNvZGUgPT09IFVQX0FSUk9XIHx8IGtleUNvZGUgPT09IERPV05fQVJST1c7XG5cbiAgICBpZiAoaXNBcnJvd0tleSkge1xuICAgICAgdGhpcy5vcGVuT3ZlcmxheSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVCdXR0b25CbHVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLm9uQmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVJbnB1dChxdWVyeTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuc2V0UXVlcnkocXVlcnkpO1xuICAgIHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0S2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSAkZXZlbnQua2V5Q29kZTtcbiAgICBjb25zdCBhY3RpdmVJdGVtID0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGtleSA9PT0gRU5URVIgJiYgYWN0aXZlSXRlbSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5zZWxlY3RPcHRpb24oYWN0aXZlSXRlbS52YWx1ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5rZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xuICAgICAgdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNjcm9sbEludG9FbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHRvRXh0ZXJuYWxWYWx1ZShcbiAgICBpbnRlcm5hbFZhbHVlOiBUSWQgfCBUSWRbXSB8IG51bGxcbiAgKTogVElkIHwgVElkW10gfCBudWxsIHtcbiAgICBpZiAodW50cmFja2VkKHRoaXMubXVsdGkpKSB7XG4gICAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSBhcyBUSWRbXSB8IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGludGVybmFsVmFsdWUpID8gaW50ZXJuYWxWYWx1ZVswXSA6IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogVElkKTogdm9pZCB7XG4gICAgaWYgKHVudHJhY2tlZCh0aGlzLm11bHRpKSkge1xuICAgICAgdGhpcy5zdG9yZS50b2dnbGUob3B0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3RTaW5nbGUob3B0aW9uKTtcbiAgICAgIC8vIGRldGFjaCBvbiBhIG5leHQgdGlja1xuICAgICAgLy8gb3RoZXJ3aXNlIG9uIEVOVEVSIG92ZXJsYXkgaXMgc3RpbGwgZW50ZXJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgICB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWFkb25seSBzZWxlY3RCdXR0b25FZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdEJ1dHRvbiA9IHRoaXMuc2VsZWN0QnV0dG9uKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMub3ZlcmxheVJlZjtcbiAgICBpZiAob3ZlcmxheSAmJiBzZWxlY3RCdXR0b24pIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koc2VsZWN0QnV0dG9uKTtcbiAgICAgIG92ZXJsYXkudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneShlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLnNlbGVjdEJ1dHRvbigpPy5uYXRpdmVFbGVtZW50KVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgcGFuZWxDbGFzczogJ3JkdC1nb3Ytc2VsZWN0LW92ZXJsYXktcGFuZWwtYm90dG9tJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdyZHQtZ292LXNlbGVjdC1vdmVybGF5LXBhbmVsLXRvcCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBzZWxlY3RCdXR0b24gPSB0aGlzLnNlbGVjdEJ1dHRvbigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koc2VsZWN0QnV0dG9uKTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdyZHQtZ292LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBtaW5XaWR0aDogdGhpcy5zZWxlY3RCdXR0b24oKT8ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxFZmZlY3QgPSBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbENvbnRhaW5lciA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFzY3JvbGxDb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaXN0JCA9IGZyb21FdmVudChzY3JvbGxDb250YWluZXIsICdzY3JvbGwnKS5waXBlKFxuICAgICAgZmlsdGVyKFxuICAgICAgICAoKSA9PiB1bnRyYWNrZWQodGhpcy5zdG9yZS5oYXNNb3JlKSAmJiAhdW50cmFja2VkKHRoaXMuc3RvcmUubG9hZGluZylcbiAgICAgICksXG4gICAgICB0aHJvdHRsZVRpbWUoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuc2Nyb2xsRGlzdFRvQm90dG9tKHNjcm9sbENvbnRhaW5lcikpXG4gICAgKTtcblxuICAgIGNvbnN0IFRIUkVTSE9MRCA9IDQyO1xuICAgIGNvbnN0IHN1YiA9IGRpc3QkLnN1YnNjcmliZSgoZGlzdCkgPT4ge1xuICAgICAgaWYgKGRpc3QgPCBUSFJFU0hPTEQpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5mZXRjaCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIG9uQ2xlYW51cCgoKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH0pO1xuXG4gIHByaXZhdGUgc2Nyb2xsRGlzdFRvQm90dG9tKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29udGFpbmVyLnNjcm9sbEhlaWdodCAtIChjb250YWluZXIuc2Nyb2xsVG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodClcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT3ZlcmxheSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2FuRm9jdXMoKTogUmR0Qm9vbGVhblJlc3VsdCB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMua2V5TWFuYWdlci5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIkBsZXQgc2VsID0gc2VsZWN0ZWRMYWJlbCgpOyBAbGV0IGxQb3MgPSBsYWJlbFBvc2l0aW9uKCk7IEBsZXQgaGFzRXJyb3IgPVxudmlzaWJsZUVycm9ycygpIHwgcmR0Rm9ybUVycm9yOyBAaWYobFBvcyA9PT0gJ3RvcCcpe1xuPGdvdi1mb3JtLWxhYmVsIHNsb3Q9XCJsZWZ0XCIgW2NsYXNzLndhcm5pbmctY29sb3ItZ292LWxhYmVsXT1cImhhc0Vycm9yXCIgc2l6ZT1cInNcIlxuICA+e3sgbGFiZWwoKSB9fVxuICBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgPHNwYW4gY2xhc3M9XCJ3YXJuaW5nLWNvbG9yLXRleHRcIj4qPC9zcGFuPlxuICB9PC9nb3YtZm9ybS1sYWJlbFxuPlxufVxuPGRpdlxuICBjbGFzcz1cImdvdi1mb3JtLXNlbGVjdCBnb3YtZm9ybS1pbnB1dFwiXG4gIFtjbGFzcy5oYXMtY2xlYXJdPVwic2hvd0NsZWFyKCkgJiYgISFzZWxcIlxuICBbYXR0ci5zaXplXT1cInNpemUoKVwiXG4gIFthdHRyLmludmFsaWRdPVwiaW52YWxpZCgpICYmIHRvdWNoZWQoKVwiXG4gIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkKClcIlxuPlxuICBAaWYgKGxQb3MgPT09ICdsZWZ0Jykge1xuICA8cFxuICAgIGNsYXNzPVwiZ292LWZvcm0tbGFiZWxfX2xhYmVsIHNfbGFiZWxcIlxuICAgIHNsb3Q9XCJwcmVmaXhcIlxuICAgIFtjbGFzcy53YXJuaW5nLWNvbG9yLXRleHRdPVwiaGFzRXJyb3JcIlxuICA+XG4gICAge3sgbGFiZWwoKSB9fVxuICAgIEBpZiAocmVxdWlyZWQoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwid2FybmluZy1jb2xvci10ZXh0XCI+Kjwvc3Bhbj5cbiAgICB9XG4gIDwvcD5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZWxlbWVudFwiPlxuICAgIDxidXR0b25cbiAgICAgICNzZWxlY3RCdXR0b25cbiAgICAgIFthdHRyLnNpemVdPVwic2l6ZSgpXCJcbiAgICAgIChjbGljayk9XCJvcGVuT3ZlcmxheSgpXCJcbiAgICAgIChrZXlkb3duKT1cImhhbmRsZUJ1dHRvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBjbGFzcz1cInNlbGVjdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChibHVyKT1cImhhbmRsZUJ1dHRvbkJsdXIoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWNvbnRlbnRcIiBbY2xhc3Mud2FybmluZy1jb2xvci10ZXh0XT1cImhhc0Vycm9yXCI+XG4gICAgICAgIEBpZiAoc2VsKSB7XG4gICAgICAgIHt7IHNlbCB9fVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgcGxhY2Vob2xkZXIoKSB8fCAnJm5ic3A7JyB9fVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoc2hvd0NsZWFyKCkgJiYgc2VsKSB7XG4gICAgICA8Z292LWJ1dHRvblxuICAgICAgICBjbGFzcz1cImNsZWFyLWJ1dHRvblwiXG4gICAgICAgIGljb25TdGFydD1cImJhc2ljL3hcIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhckNsaWNrKCRldmVudClcIlxuICAgICAgICBwcm9wYWdhdGU9XCJmYWxzZVwiXG4gICAgICAgIGJ1dHRvblR5cGU9XCJiYXNlXCJcbiAgICAgICAgY29sb3I9XCJlcnJvclwiXG4gICAgICAgIFtyZHREaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgID48L2dvdi1idXR0b24+XG4gICAgICB9IEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8cmR0LXNwaW5uZXIgLz5cbiAgICAgIH0gQGVsc2UgeyBAaWYoaGFzRXJyb3Ipe1xuICAgICAgPGdvdi1pY29uIG5hbWU9XCJleGNsYW1hdGlvbi1sZ1wiIGNsYXNzPVwiaWNvbi13YXJuaW5nXCI+PC9nb3YtaWNvbj5cbiAgICAgIH1cbiAgICAgIDxnb3YtaWNvblxuICAgICAgICBuYW1lPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgY2xhc3M9XCJpY29uLWFycm93XCJcbiAgICAgICAgW2NsYXNzLndhcm5pbmctY29sb3ItaWNvbl09XCJoYXNFcnJvclwiXG4gICAgICA+PC9nb3YtaWNvbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIEBpZiAobFBvcyA9PT0gJ3JpZ2h0Jykge1xuICA8cFxuICAgIGNsYXNzPVwiZ292LWZvcm0tbGFiZWxfX2xhYmVsIHNfbGFiZWxcIlxuICAgIHNsb3Q9XCJzdWZpeFwiXG4gICAgW2NsYXNzLndhcm5pbmctY29sb3ItdGV4dF09XCJoYXNFcnJvclwiXG4gID5cbiAgICB7eyBsYWJlbCgpIH19XG4gICAgQGlmIChyZXF1aXJlZCgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ3YXJuaW5nLWNvbG9yLXRleHRcIj4qPC9zcGFuPlxuICAgIH1cbiAgPC9wPlxuICB9XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheUNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cInJkdC1nb3Ytc2VsZWN0LWNvbnRhaW5lclwiPlxuICAgIEBpZiAoc2hvd1NlYXJjaCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIiBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nKClcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImdvdi1mb3JtLWlucHV0XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgcmR0QXV0b2ZvY3VzT25Jbml0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dEN0cmxcIlxuICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVJbnB1dEtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiWmFkZWp0ZSBobGVkYW7DvSB2w71yYXpcIlxuICAgICAgLz5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8cmR0LXNwaW5uZXIgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHVsIHJvbGU9XCJsaXN0Ym94XCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiICNzY3JvbGxDb250YWluZXI+XG4gICAgICBAZm9yIChvcHRpb24gb2YgdmlzaWJsZU9wdGlvbnMoKTsgdHJhY2sgb3B0aW9uLmlkKSB7XG4gICAgICA8bGkgcm9sZT1cIm9wdGlvblwiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbcmR0U2VsZWN0T3B0aW9uXT1cIm9wdGlvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24uaWQpXCJcbiAgICAgICAgICBjbGFzcz1cIm9wdGlvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8Z292LWljb25cbiAgICAgICAgICAgIG5hbWU9XCJjaGVjay1sZ1wiXG4gICAgICAgICAgICBbY2xhc3MuaW52aXNpYmxlXT1cIiFvcHRpb24uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJtci0xIHctNCBwaWNrZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIH0gQGVtcHR5IHsgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxsaSBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiPk5hxI3DrXTDoW7DrSBob2Rub3QuLi48L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICB9IEBlbHNlIGlmIChzdG9yZS5xdWVyeSgpKSB7XG4gICAgICA8bGkgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbiAgICAgICAgICBQcm8gemFkYW7DvSB2w71yYXogbmVqc291IGsgZGlzcG96aWNpIMW+w6FkbsOpIHrDoXpuYW15XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIH0gQGVsc2UgaWYgKCFzdG9yZS5kYXRhc291cmNlKCk/LnF1ZXJ5UmVxdWlyZWQpIHtcbiAgICAgIDxsaSBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiPk5lanNvdSBrIGRpc3BvemljaSDFvsOhZG7DqSBob2Rub3R5PC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgfSB9XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuQGlmKGhhc0Vycm9yKXtcbjxnb3YtZm9ybS1tZXNzYWdlIHNsb3Q9XCJib3R0b21cIiBjb2xvcj1cImVycm9yXCI+e3sgaGFzRXJyb3IgfX08L2dvdi1mb3JtLW1lc3NhZ2U+XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, linkedSignal, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtBaseFormInputComponent, RdtFormErrorPipe, RdtTextInputComponent, } from '@ngrdt/forms';\nimport { RdtIconOutletDirective } from '@ngrdt/icon';\nimport { signalToPromise } from '@ngrdt/utils';\nimport { forceFocus } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtGovTextInputComponent extends RdtTextInputComponent {\n renderer = inject(Renderer2);\n govInput = viewChild('govInput');\n size = input('s');\n icon = input(null);\n iconStart = input(null);\n labelPositionInput = input('top', {\n alias: 'labelPosition',\n });\n labelPosition = linkedSignal(() => this.labelPositionInput());\n inputElement = signal(null);\n hasErrors = false;\n isEmpty(value) {\n return value == null || value === '';\n }\n readonlyEffect = effect(async () => {\n const input = this.govInput()?.nativeElement;\n const inputEl = await input?.getRef();\n const readonly = this.readonlyInput();\n if (input) {\n if (readonly) {\n this.renderer.setAttribute(input, 'readonly', 'true');\n }\n else {\n this.renderer.removeAttribute(input, 'readonly');\n }\n }\n });\n inputElementEffect = effect(async () => {\n const govInput = this.govInput()?.nativeElement;\n if (govInput) {\n const input = await govInput.getRef();\n this.inputElement.set(input);\n }\n });\n errorFixEffect = effect(() => {\n const inputElement = this.inputElement();\n const visibleErrors = this.visibleErrors();\n const hadErrors = this.hasErrors;\n this.hasErrors = !!visibleErrors;\n if (hadErrors !== this.hasErrors) {\n const isActive = document.activeElement === inputElement;\n if (isActive && inputElement) {\n forceFocus(inputElement);\n }\n }\n });\n async focus() {\n const govInput = await this.govInput()?.nativeElement;\n const el = await govInput?.getRef();\n forceFocus(el);\n }\n canFocus() {\n return signalToPromise(this.govInput, { injector: this.injector })\n .then((btn) => btn?.nativeElement.getRef())\n .then((el) => !!el);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovTextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.0\", type: RdtGovTextInputComponent, isStandalone: true, selector: \"rdt-gov-text-input\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, iconStart: { classPropertyName: \"iconStart\", publicName: \"iconStart\", isSignal: true, isRequired: false, transformFunction: null }, labelPositionInput: { classPropertyName: \"labelPositionInput\", publicName: \"labelPosition\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovTextInputComponent,\n multi: true,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovTextInputComponent,\n },\n ], viewQueries: [{ propertyName: \"govInput\", first: true, predicate: [\"govInput\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@let lPos = labelPosition(); @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" size=\\\"m\\\" [class.warning-color-gov-label]=\\\"hasError\\\"\\n >{{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<gov-form-input\\n #govInput\\n [inputType]=\\\"type()\\\"\\n [size]=\\\"size()\\\"\\n [value]=\\\"internalValue()\\\"\\n [placeholder]=\\\"placeholder()\\\"\\n [autocomplete]=\\\"autocomplete()\\\"\\n [minlength]=\\\"minlength()\\\"\\n [maxlength]=\\\"maxlength()\\\"\\n [invalid]=\\\"invalid() && touched()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [required]=\\\"required()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n [name]=\\\"id()\\\"\\n [identifier]=\\\"id()\\\"\\n (gov-input)=\\\"onInternalValueChange($event.detail.value)\\\"\\n (gov-focus)=\\\"onFocus()\\\"\\n (gov-blur)=\\\"onBlur()\\\"\\n>\\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if(lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if (lI) {\\n <span slot=\\\"icon-start\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: lI }\\\"></ng-container>\\n </span>\\n } @if (rI) {\\n <span slot=\\\"icon-end\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: rI }\\\"></ng-container>\\n </span>\\n }\\n</gov-form-input>\\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"], dependencies: [{ kind: \"pipe\", type: RdtFormErrorPipe, name: \"rdtFormError\" }, { kind: \"directive\", type: RdtIconOutletDirective, selector: \"[rdtIconOutlet]\", exportAs: [\"rdtIconOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtGovTextInputComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-gov-text-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [RdtFormErrorPipe, RdtIconOutletDirective], providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RdtGovTextInputComponent,\n multi: true,\n },\n {\n provide: RdtBaseFormInputComponent,\n useExisting: RdtGovTextInputComponent,\n },\n ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: \"@let lPos = labelPosition(); @if(lPos === 'top'){\\n<gov-form-label slot=\\\"left\\\" size=\\\"m\\\" [class.warning-color-gov-label]=\\\"hasError\\\"\\n >{{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }</gov-form-label\\n>\\n}\\n<gov-form-input\\n #govInput\\n [inputType]=\\\"type()\\\"\\n [size]=\\\"size()\\\"\\n [value]=\\\"internalValue()\\\"\\n [placeholder]=\\\"placeholder()\\\"\\n [autocomplete]=\\\"autocomplete()\\\"\\n [minlength]=\\\"minlength()\\\"\\n [maxlength]=\\\"maxlength()\\\"\\n [invalid]=\\\"invalid() && touched()\\\"\\n [attr.invalid]=\\\"invalid() && touched()\\\"\\n [required]=\\\"required()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [attr.disabled]=\\\"disabled()\\\"\\n [name]=\\\"id()\\\"\\n [identifier]=\\\"id()\\\"\\n (gov-input)=\\\"onInternalValueChange($event.detail.value)\\\"\\n (gov-focus)=\\\"onFocus()\\\"\\n (gov-blur)=\\\"onBlur()\\\"\\n>\\n @let lI = iconStart(); @let rI = icon(); @if(lPos === 'left') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"prefix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if(lPos === 'right') {\\n <p\\n class=\\\"gov-form-label__label s_label\\\"\\n slot=\\\"sufix\\\"\\n [class.warning-color-text]=\\\"hasError\\\"\\n >\\n {{ label() }} @if (required()) {\\n <span class=\\\"warning-color-text\\\">*</span>\\n }\\n </p>\\n } @if (lI) {\\n <span slot=\\\"icon-start\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: lI }\\\"></ng-container>\\n </span>\\n } @if (rI) {\\n <span slot=\\\"icon-end\\\" style=\\\"width: auto\\\">\\n <ng-container rdtIconOutlet [inputs]=\\\"{ name: rI }\\\"></ng-container>\\n </span>\\n }\\n</gov-form-input>\\n@let hasError = visibleErrors() | rdtFormError; @if(hasError){\\n<gov-form-message slot=\\\"bottom\\\" color=\\\"error\\\">{{ hasError }}</gov-form-message>\\n}\\n\", styles: [\".warning-color-icon{color:var(--icon-error)!important}.warning-color-text{color:var(--text-status-error)!important}.warning-color-gov-label .gov-form-label__label{color:var(--form-state-label-error, var(--text-status-error))!important}.s_label{font-size:var(--font-size-body-s);line-height:150%;font-weight:400}gov-form-message{font-size:var(--font-size-body-s)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWdvdi10ZXh0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9nb3Yvc3JjL2xpYi9nb3YvdWkvdGV4dC1pbnB1dC9yZHQtZ292LXRleHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbGliL2dvdi91aS90ZXh0LWlucHV0L3JkdC1nb3YtdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsTUFBTSxFQUVOLE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixxQkFBcUIsR0FDdEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFXLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlELE9BQU8sRUFBWSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUF1QnpDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBcUI7SUFDaEQsUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQixRQUFRLEdBQUcsU0FBUyxDQUEyQixVQUFVLENBQUMsQ0FBQztJQUVyRSxJQUFJLEdBQUcsS0FBSyxDQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQUksR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxDQUFDO0lBQ3RDLFNBQVMs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LENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQzt1R0FqRVUsd0JBQXdCOzJGQUF4Qix3QkFBd0IscWxCQWJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxXQUFXLEVBQUUsd0JBQXdCO2FBQ3RDO1NBQ0YsdUtDN0NILG8wREE0REEsaWFEMUJZLGdCQUFnQixxREFBRSxzQkFBc0I7OzJGQWN2Qyx3QkFBd0I7a0JBckJwQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDLGFBQ3hDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsMEJBQTBCOzRCQUNyQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUseUJBQXlCOzRCQUNsQyxXQUFXLDBCQUEwQjt5QkFDdEM7cUJBQ0YsV0FDUSxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR292Rm9ybUlucHV0IH0gZnJvbSAnQGdvdi1kZXNpZ24tc3lzdGVtLWNlL2FuZ3VsYXInO1xuaW1wb3J0IHsgUmR0Qm9vbGVhblJlc3VsdCB9IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7XG4gIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXG4gIFJkdEZvcm1FcnJvclBpcGUsXG4gIFJkdFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnQG5ncmR0L2Zvcm1zJztcbmltcG9ydCB7IFJkdEljb24sIFJkdEljb25PdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyZHQvaWNvbic7XG5pbXBvcnQgeyBOdWxsYWJsZSwgc2lnbmFsVG9Qcm9taXNlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IEdvdkxhYmVsUG9zaXRpb24sIEdvdlNpemUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZm9yY2VGb2N1cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncmR0LWdvdi10ZXh0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkdC1nb3YtdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLy4uL2dvdi1zaGFyZWQtc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZHRGb3JtRXJyb3JQaXBlLCBSZHRJY29uT3V0bGV0RGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogUmR0R292VGV4dElucHV0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdEdvdlRleHRJbnB1dENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIFJkdEdvdlRleHRJbnB1dENvbXBvbmVudCBleHRlbmRzIFJkdFRleHRJbnB1dENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ292SW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxHb3ZGb3JtSW5wdXQ+PignZ292SW5wdXQnKTtcblxuICByZWFkb25seSBzaXplID0gaW5wdXQ8R292U2l6ZT4oJ3MnKTtcbiAgcmVhZG9ubHkgaWNvbiA9IGlucHV0PE51bGxhYmxlPFJkdEljb24+PihudWxsKTtcbiAgcmVhZG9ubHkgaWNvblN0YXJ0ID0gaW5wdXQ8TnVsbGFibGU8UmR0SWNvbj4+KG51bGwpO1xuICByZWFkb25seSBsYWJlbFBvc2l0aW9uSW5wdXQgPSBpbnB1dDxHb3ZMYWJlbFBvc2l0aW9uPigndG9wJywge1xuICAgIGFsaWFzOiAnbGFiZWxQb3NpdGlvbicsXG4gIH0pO1xuICByZWFkb25seSBsYWJlbFBvc2l0aW9uID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubGFiZWxQb3NpdGlvbklucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RWxlbWVudCA9IHNpZ25hbDxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgaGFzRXJyb3JzID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJyc7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5RWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZ292SW5wdXQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpbnB1dEVsID0gYXdhaXQgaW5wdXQ/LmdldFJlZigpO1xuICAgIGNvbnN0IHJlYWRvbmx5ID0gdGhpcy5yZWFkb25seUlucHV0KCk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpZiAocmVhZG9ubHkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXQsICdyZWFkb25seScsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShpbnB1dCwgJ3JlYWRvbmx5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RWxlbWVudEVmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZ292SW5wdXQgPSB0aGlzLmdvdklucHV0KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGdvdklucHV0KSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IGdvdklucHV0LmdldFJlZigpO1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2V0KGlucHV0KTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JGaXhFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuaW5wdXRFbGVtZW50KCk7XG4gICAgY29uc3QgdmlzaWJsZUVycm9ycyA9IHRoaXMudmlzaWJsZUVycm9ycygpO1xuICAgIGNvbnN0IGhhZEVycm9ycyA9IHRoaXMuaGFzRXJyb3JzO1xuICAgIHRoaXMuaGFzRXJyb3JzID0gISF2aXNpYmxlRXJyb3JzO1xuXG4gICAgaWYgKGhhZEVycm9ycyAhPT0gdGhpcy5oYXNFcnJvcnMpIHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5wdXRFbGVtZW50O1xuXG4gICAgICBpZiAoaXNBY3RpdmUgJiYgaW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGZvcmNlRm9jdXMoaW5wdXRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIG92ZXJyaWRlIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGdvdklucHV0ID0gYXdhaXQgdGhpcy5nb3ZJbnB1dCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsID0gYXdhaXQgZ292SW5wdXQ/LmdldFJlZigpO1xuICAgIGZvcmNlRm9jdXMoZWwhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNhbkZvY3VzKCk6IFJkdEJvb2xlYW5SZXN1bHQge1xuICAgIHJldHVybiBzaWduYWxUb1Byb21pc2UodGhpcy5nb3ZJbnB1dCwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KVxuICAgICAgLnRoZW4oKGJ0bikgPT4gYnRuPy5uYXRpdmVFbGVtZW50LmdldFJlZigpKVxuICAgICAgLnRoZW4oKGVsKSA9PiAhIWVsKTtcbiAgfVxufVxuIiwiQGxldCBsUG9zID0gbGFiZWxQb3NpdGlvbigpOyBAaWYobFBvcyA9PT0gJ3RvcCcpe1xuPGdvdi1mb3JtLWxhYmVsIHNsb3Q9XCJsZWZ0XCIgc2l6ZT1cIm1cIiBbY2xhc3Mud2FybmluZy1jb2xvci1nb3YtbGFiZWxdPVwiaGFzRXJyb3JcIlxuICA+e3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgPHNwYW4gY2xhc3M9XCJ3YXJuaW5nLWNvbG9yLXRleHRcIj4qPC9zcGFuPlxuICB9PC9nb3YtZm9ybS1sYWJlbFxuPlxufVxuPGdvdi1mb3JtLWlucHV0XG4gICNnb3ZJbnB1dFxuICBbaW5wdXRUeXBlXT1cInR5cGUoKVwiXG4gIFtzaXplXT1cInNpemUoKVwiXG4gIFt2YWx1ZV09XCJpbnRlcm5hbFZhbHVlKClcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlKClcIlxuICBbbWlubGVuZ3RoXT1cIm1pbmxlbmd0aCgpXCJcbiAgW21heGxlbmd0aF09XCJtYXhsZW5ndGgoKVwiXG4gIFtpbnZhbGlkXT1cImludmFsaWQoKSAmJiB0b3VjaGVkKClcIlxuICBbYXR0ci5pbnZhbGlkXT1cImludmFsaWQoKSAmJiB0b3VjaGVkKClcIlxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtuYW1lXT1cImlkKClcIlxuICBbaWRlbnRpZmllcl09XCJpZCgpXCJcbiAgKGdvdi1pbnB1dCk9XCJvbkludGVybmFsVmFsdWVDaGFuZ2UoJGV2ZW50LmRldGFpbC52YWx1ZSlcIlxuICAoZ292LWZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gIChnb3YtYmx1cik9XCJvbkJsdXIoKVwiXG4+XG4gIEBsZXQgbEkgPSBpY29uU3RhcnQoKTsgQGxldCBySSA9IGljb24oKTsgQGlmKGxQb3MgPT09ICdsZWZ0Jykge1xuICA8cFxuICAgIGNsYXNzPVwiZ292LWZvcm0tbGFiZWxfX2xhYmVsIHNfbGFiZWxcIlxuICAgIHNsb3Q9XCJwcmVmaXhcIlxuICAgIFtjbGFzcy53YXJuaW5nLWNvbG9yLXRleHRdPVwiaGFzRXJyb3JcIlxuICA+XG4gICAge3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cIndhcm5pbmctY29sb3ItdGV4dFwiPio8L3NwYW4+XG4gICAgfVxuICA8L3A+XG4gIH0gQGlmKGxQb3MgPT09ICdyaWdodCcpIHtcbiAgPHBcbiAgICBjbGFzcz1cImdvdi1mb3JtLWxhYmVsX19sYWJlbCBzX2xhYmVsXCJcbiAgICBzbG90PVwic3VmaXhcIlxuICAgIFtjbGFzcy53YXJuaW5nLWNvbG9yLXRleHRdPVwiaGFzRXJyb3JcIlxuICA+XG4gICAge3sgbGFiZWwoKSB9fSBAaWYgKHJlcXVpcmVkKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cIndhcm5pbmctY29sb3ItdGV4dFwiPio8L3NwYW4+XG4gICAgfVxuICA8L3A+XG4gIH0gQGlmIChsSSkge1xuICA8c3BhbiBzbG90PVwiaWNvbi1zdGFydFwiIHN0eWxlPVwid2lkdGg6IGF1dG9cIj5cbiAgICA8bmctY29udGFpbmVyIHJkdEljb25PdXRsZXQgW2lucHV0c109XCJ7IG5hbWU6IGxJIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuICB9IEBpZiAockkpIHtcbiAgPHNwYW4gc2xvdD1cImljb24tZW5kXCIgc3R5bGU9XCJ3aWR0aDogYXV0b1wiPlxuICAgIDxuZy1jb250YWluZXIgcmR0SWNvbk91dGxldCBbaW5wdXRzXT1cInsgbmFtZTogckkgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIH1cbjwvZ292LWZvcm0taW5wdXQ+XG5AbGV0IGhhc0Vycm9yID0gdmlzaWJsZUVycm9ycygpIHwgcmR0Rm9ybUVycm9yOyBAaWYoaGFzRXJyb3Ipe1xuPGdvdi1mb3JtLW1lc3NhZ2Ugc2xvdD1cImJvdHRvbVwiIGNvbG9yPVwiZXJyb3JcIj57eyBoYXNFcnJvciB9fTwvZ292LWZvcm0tbWVzc2FnZT5cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtZ292LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQG5ncmR0L2dvdi9zcmMvbmdyZHQtZ292LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { ElementRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { GovFormInput } from '@gov-design-system-ce/angular';
|
|
4
|
+
import { RdtBooleanResult } from '@ngrdt/core';
|
|
5
|
+
import { RdtNumericInputComponent, RdtSelectOfflineDatasourceProviderDirective, RdtBaseSelectCommonComponent, RdtTextInputComponent } from '@ngrdt/forms';
|
|
6
|
+
import { RdtIcon } from '@ngrdt/icon';
|
|
7
|
+
import { Nullable } from '@ngrdt/utils';
|
|
8
|
+
|
|
9
|
+
type GovSize = 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
10
|
+
type GovColor = 'primary' | 'secondary' | 'neutral' | 'success' | 'warning' | 'error';
|
|
11
|
+
type GovMessageVariant = 'success' | 'error' | 'warning' | 'secondary';
|
|
12
|
+
type GovButtonType = 'solid' | 'outlined' | 'base' | 'link';
|
|
13
|
+
type GovLabelPosition = 'left' | 'right' | 'top';
|
|
14
|
+
|
|
15
|
+
declare const DEFAULT_GOV_BUTTON_COLOR: GovColor;
|
|
16
|
+
declare const DEFAULT_GOV_BUTTON_TYPE: GovButtonType;
|
|
17
|
+
declare const DEFAULT_GOV_BUTTON_SIZE: GovSize;
|
|
18
|
+
|
|
19
|
+
declare class RdtGovNumberInputComponent extends RdtNumericInputComponent {
|
|
20
|
+
private readonly renderer;
|
|
21
|
+
protected readonly govInput: _angular_core.Signal<ElementRef<GovFormInput> | undefined>;
|
|
22
|
+
readonly size: _angular_core.InputSignal<GovSize>;
|
|
23
|
+
readonly icon: _angular_core.InputSignal<Nullable<RdtIcon>>;
|
|
24
|
+
readonly iconStart: _angular_core.InputSignal<Nullable<RdtIcon>>;
|
|
25
|
+
readonly labelPositionInput: _angular_core.InputSignal<GovLabelPosition>;
|
|
26
|
+
readonly labelPosition: _angular_core.WritableSignal<GovLabelPosition>;
|
|
27
|
+
private readonly inputElement;
|
|
28
|
+
private hasErrors;
|
|
29
|
+
protected isEmpty(value: number | null): boolean;
|
|
30
|
+
protected onInput(value: string | number | null): void;
|
|
31
|
+
private readonlyEffect;
|
|
32
|
+
private readonly inputElementEffect;
|
|
33
|
+
private readonly errorFixEffect;
|
|
34
|
+
focus(): Promise<void>;
|
|
35
|
+
canFocus(): RdtBooleanResult;
|
|
36
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtGovNumberInputComponent, never>;
|
|
37
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RdtGovNumberInputComponent, "rdt-gov-number-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconStart": { "alias": "iconStart"; "required": false; "isSignal": true; }; "labelPositionInput": { "alias": "labelPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class RdtGovSelectOfflineProviderDirective<T extends string | number> extends RdtSelectOfflineDatasourceProviderDirective<T> {
|
|
41
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtGovSelectOfflineProviderDirective<any>, never>;
|
|
42
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdtGovSelectOfflineProviderDirective<any>, "rdt-gov-select[options]", never, {}, {}, never, never, true, never>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
declare class RdtGovSelectComponent<TItem, TId> extends RdtBaseSelectCommonComponent<TItem, TId, TId | TId[]> implements OnDestroy {
|
|
46
|
+
private readonly overlay;
|
|
47
|
+
private readonly viewContainerRef;
|
|
48
|
+
private readonly scrollContainer;
|
|
49
|
+
private readonly selectButton;
|
|
50
|
+
private readonly overlayTemplate;
|
|
51
|
+
private readonly optionEls;
|
|
52
|
+
readonly multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
53
|
+
readonly size: _angular_core.InputSignal<GovSize>;
|
|
54
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
55
|
+
readonly showClear: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
56
|
+
readonly showSearchInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
57
|
+
readonly showSearch: _angular_core.WritableSignal<boolean>;
|
|
58
|
+
readonly labelPositionInput: _angular_core.InputSignal<GovLabelPosition>;
|
|
59
|
+
readonly labelPosition: _angular_core.WritableSignal<GovLabelPosition>;
|
|
60
|
+
private readonly keyManager;
|
|
61
|
+
private resizeEffect;
|
|
62
|
+
private overlayRef;
|
|
63
|
+
protected isEmpty(value: TId | TId[] | null): boolean;
|
|
64
|
+
readonly selectedLabel: _angular_core.Signal<string | null>;
|
|
65
|
+
onClearClick(event: MouseEvent): void;
|
|
66
|
+
openOverlay(): void;
|
|
67
|
+
protected handleButtonKeydown($event: KeyboardEvent): void;
|
|
68
|
+
protected handleButtonBlur(): void;
|
|
69
|
+
protected handleInput(query: string | null): void;
|
|
70
|
+
handleInputKeydown($event: KeyboardEvent): void;
|
|
71
|
+
protected toExternalValue(internalValue: TId | TId[] | null): TId | TId[] | null;
|
|
72
|
+
selectOption(option: TId): void;
|
|
73
|
+
readonly selectButtonEffect: _angular_core.EffectRef;
|
|
74
|
+
private getPositionStrategy;
|
|
75
|
+
private createOverlay;
|
|
76
|
+
private scrollEffect;
|
|
77
|
+
private scrollDistToBottom;
|
|
78
|
+
focus(): void;
|
|
79
|
+
canFocus(): RdtBooleanResult;
|
|
80
|
+
ngOnDestroy(): void;
|
|
81
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtGovSelectComponent<any, any>, never>;
|
|
82
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RdtGovSelectComponent<any, any>, "rdt-gov-select", never, { "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "showSearchInput": { "alias": "showSearch"; "required": false; "isSignal": true; }; "labelPositionInput": { "alias": "labelPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
declare class RdtGovTextInputComponent extends RdtTextInputComponent {
|
|
86
|
+
private readonly renderer;
|
|
87
|
+
protected readonly govInput: _angular_core.Signal<ElementRef<GovFormInput> | undefined>;
|
|
88
|
+
readonly size: _angular_core.InputSignal<GovSize>;
|
|
89
|
+
readonly icon: _angular_core.InputSignal<Nullable<RdtIcon>>;
|
|
90
|
+
readonly iconStart: _angular_core.InputSignal<Nullable<RdtIcon>>;
|
|
91
|
+
readonly labelPositionInput: _angular_core.InputSignal<GovLabelPosition>;
|
|
92
|
+
readonly labelPosition: _angular_core.WritableSignal<GovLabelPosition>;
|
|
93
|
+
private readonly inputElement;
|
|
94
|
+
private hasErrors;
|
|
95
|
+
protected isEmpty(value: string | null): boolean;
|
|
96
|
+
private readonlyEffect;
|
|
97
|
+
private readonly inputElementEffect;
|
|
98
|
+
private readonly errorFixEffect;
|
|
99
|
+
focus(): Promise<void>;
|
|
100
|
+
canFocus(): RdtBooleanResult;
|
|
101
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdtGovTextInputComponent, never>;
|
|
102
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RdtGovTextInputComponent, "rdt-gov-text-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconStart": { "alias": "iconStart"; "required": false; "isSignal": true; }; "labelPositionInput": { "alias": "labelPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
declare function forceFocus(input: HTMLInputElement): void;
|
|
106
|
+
|
|
107
|
+
export { DEFAULT_GOV_BUTTON_COLOR, DEFAULT_GOV_BUTTON_SIZE, DEFAULT_GOV_BUTTON_TYPE, RdtGovNumberInputComponent, RdtGovSelectComponent, RdtGovSelectOfflineProviderDirective, RdtGovTextInputComponent, forceFocus };
|
|
108
|
+
export type { GovButtonType, GovColor, GovLabelPosition, GovMessageVariant, GovSize };
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ngrdt/gov",
|
|
3
|
+
"version": "0.0.58",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/core": "^20.0.0",
|
|
6
|
+
"@angular/forms": "^20.0.0",
|
|
7
|
+
"@gov-design-system-ce/angular": "^1.3.1",
|
|
8
|
+
"rxjs": "~7.8.0",
|
|
9
|
+
"@ngrdt/core": "^0.0.58",
|
|
10
|
+
"@ngrdt/forms": "^0.0.58",
|
|
11
|
+
"@ngrdt/icon": "^0.0.58",
|
|
12
|
+
"@ngrdt/utils": "^0.0.58",
|
|
13
|
+
"@angular/cdk": "^20.2.0"
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"module": "fesm2022/ngrdt-gov.mjs",
|
|
17
|
+
"typings": "index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./index.d.ts",
|
|
24
|
+
"default": "./fesm2022/ngrdt-gov.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"tslib": "^2.3.0"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
ul {
|
|
3
|
+
li:before {
|
|
4
|
+
content: none;
|
|
5
|
+
}
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.menu-item {
|
|
10
|
+
&:hover {
|
|
11
|
+
text-decoration: underline;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
ul.menu-item-container {
|
|
16
|
+
min-width: 280px;
|
|
17
|
+
padding: var(--spacing-s) var(--spacing-m) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
--rdt-menu-background: var(--background-block-primary);
|
|
21
|
+
--rdt-menu-border-radius: 0 0 var(--corner-radius-m) var(--corner-radius-m);
|
|
22
|
+
|
|
23
|
+
// GOV menu bar item style
|
|
24
|
+
--rdt-menu-bar-item-background: transparent;
|
|
25
|
+
--rdt-menu-bar-item-text-color: var(--text-primary-color);
|
|
26
|
+
--rdt-menu-bar-item-padding: var(--spacing-s) var(--spacing-m) !important;
|
|
27
|
+
--rdt-menu-bar-item-border-radius: var(
|
|
28
|
+
--outline-border-radius,
|
|
29
|
+
var(--corner-radius-xs-nudge)
|
|
30
|
+
);
|
|
31
|
+
--rdt-menu-bar-item-border: none;
|
|
32
|
+
--rdt-menu-bar-item-outline: none;
|
|
33
|
+
--rdt-menu-bar-item-margin: 0;
|
|
34
|
+
--rdt-menu-bar-item-font-size: var(--font-size-body-m);
|
|
35
|
+
--rdt-menu-bar-item-font-weight: 500;
|
|
36
|
+
|
|
37
|
+
//GOV MENU ITEM
|
|
38
|
+
--rdt-menu-item-font-size: var(--font-size-body-s);
|
|
39
|
+
--rdt-menu-item-padding: var(--spacing-xs) 0 var(--spacing-xs)
|
|
40
|
+
var(--spacing-xs);
|
|
41
|
+
|
|
42
|
+
//GOV Hover styles
|
|
43
|
+
--rdt-menu-bar-item-hover-background: var(--button-outlined-primary-hover);
|
|
44
|
+
--rdt-menu-bar-item-hover-text-color: var(--text-primary-color);
|
|
45
|
+
--rdt-menu-bar-item-hover-border: none;
|
|
46
|
+
--rdt-menu-bar-item-hover-outline: none;
|
|
47
|
+
|
|
48
|
+
//GOV Expanded styles
|
|
49
|
+
--rdt-menu-bar-item-expanded-background: var(--button-outlined-primary-hover);
|
|
50
|
+
--rdt-menu-bar-item-expanded-text-color: var(--text-primary-color);
|
|
51
|
+
--rdt-menu-bar-item-expanded-border: none;
|
|
52
|
+
--rdt-menu-bar-item-expanded-outline: none;
|
|
53
|
+
|
|
54
|
+
//GOV Focus styles
|
|
55
|
+
--rdt-menu-bar-item-focus-background: transparent;
|
|
56
|
+
--rdt-menu-bar-item-focus-text-color: var(--text-primary-color);
|
|
57
|
+
--rdt-menu-bar-item-focus-border: none;
|
|
58
|
+
--rdt-menu-bar-item-focus-outline: var(--outline-width, 0.125rem) solid
|
|
59
|
+
var(--status-focus);
|
|
60
|
+
|
|
61
|
+
//GOV Route active styles
|
|
62
|
+
--rdt-menu-bar-item-route-active-background: var(
|
|
63
|
+
--button-outlined-primary-active
|
|
64
|
+
);
|
|
65
|
+
--rdt-menu-bar-item-route-active-text-color: var(--text-primary-color);
|
|
66
|
+
--rdt-menu-bar-item-route-active-border: none;
|
|
67
|
+
--rdt-menu-bar-item-route-active-outline: none;
|
|
68
|
+
|
|
69
|
+
//GOV Disabled styles
|
|
70
|
+
--rdt-menu-bar-item-disabled-background: var(
|
|
71
|
+
--disabled-background,
|
|
72
|
+
var(--button-solid-disabled)
|
|
73
|
+
);
|
|
74
|
+
--rdt-menu-bar-item-disabled-text-color: var(
|
|
75
|
+
--disabled-color,
|
|
76
|
+
var(--text-disabled)
|
|
77
|
+
);
|
|
78
|
+
--rdt-menu-bar-item-disabled-border: none;
|
|
79
|
+
--rdt-menu-bar-item-disabled-outline: none;
|
|
80
|
+
|
|
81
|
+
@media only screen and (max-width: 767px) {
|
|
82
|
+
--rdt-menu-background: transparent;
|
|
83
|
+
.menu-bar-item {
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
&-container {
|
|
86
|
+
flex-direction: column;
|
|
87
|
+
}
|
|
88
|
+
&-content {
|
|
89
|
+
width: 100%;
|
|
90
|
+
background-color: var(--background-block-primary);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
rdt-menu-overlay {
|
|
94
|
+
height: 0px;
|
|
95
|
+
width: 100%;
|
|
96
|
+
position: unset;
|
|
97
|
+
}
|
|
98
|
+
rdt-menu-overlay.expanded {
|
|
99
|
+
height: unset;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|