@ngrdt/button 0.0.2 → 0.0.18
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/fesm2022/ngrdt-button.mjs +118 -224
- package/fesm2022/ngrdt-button.mjs.map +1 -1
- package/index.d.ts +120 -5
- package/package.json +1 -3
- package/esm2022/index.mjs +0 -6
- package/esm2022/lib/button/rdt-button-base.mjs +0 -307
- package/esm2022/lib/button/rdt-button-constants.mjs +0 -7
- package/esm2022/lib/button/rdt-button-int.mjs +0 -2
- package/esm2022/lib/button/rdt-button-notification.service.mjs +0 -2
- package/esm2022/lib/button-outlet/rdt-button-outlet.directive.mjs +0 -69
- package/esm2022/ngrdt-button.mjs +0 -5
- package/lib/button/rdt-button-base.d.ts +0 -87
- package/lib/button/rdt-button-constants.d.ts +0 -7
- package/lib/button/rdt-button-int.d.ts +0 -29
- package/lib/button/rdt-button-notification.service.d.ts +0 -4
- package/lib/button-outlet/rdt-button-outlet.directive.d.ts +0 -25
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { PlatformLocation } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, ElementRef,
|
|
3
|
+
import { InjectionToken, inject, ElementRef, Renderer2, input, booleanAttribute, linkedSignal, numberAttribute, computed, afterRenderEffect, EventEmitter, Output, Directive, ViewContainerRef, Input } from '@angular/core';
|
|
3
4
|
import { Router } from '@angular/router';
|
|
5
|
+
import { RdtInteractiveElementComponent } from '@ngrdt/core';
|
|
4
6
|
import { RdtStringUtils } from '@ngrdt/utils';
|
|
5
7
|
import { take } from 'rxjs';
|
|
6
|
-
import { PlatformLocation } from '@angular/common';
|
|
7
8
|
|
|
8
9
|
const RDT_BUTTON_SETTER_KEY = Symbol();
|
|
9
10
|
const RDT_BUTTON_DEFAULT_PROPAGATE = false;
|
|
@@ -11,159 +12,95 @@ const RDT_BUTTON_DEFAULT_TARGET = '_self';
|
|
|
11
12
|
const RDT_BUTTON_DEFAULT_TAB_INDEX = null;
|
|
12
13
|
const RDT_BUTTON_BASE_PROVIDER = new InjectionToken('RdtButton');
|
|
13
14
|
|
|
14
|
-
class RdtButtonBase {
|
|
15
|
+
class RdtButtonBase extends RdtInteractiveElementComponent {
|
|
15
16
|
elRef = inject(ElementRef);
|
|
16
|
-
cd = inject(ChangeDetectorRef);
|
|
17
17
|
router = inject(Router);
|
|
18
18
|
baseHref = inject(PlatformLocation).getBaseHrefFromDOM();
|
|
19
19
|
renderer = inject(Renderer2);
|
|
20
20
|
notificationService;
|
|
21
21
|
internalDisabledMap = {};
|
|
22
22
|
internalLoadingMap = {};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
_stateParams;
|
|
88
|
-
set queryParams(value) {
|
|
89
|
-
this._queryParams = value;
|
|
90
|
-
this.updateHrefWithQueryParams();
|
|
91
|
-
}
|
|
92
|
-
get queryParams() {
|
|
93
|
-
return this._queryParams;
|
|
94
|
-
}
|
|
95
|
-
_queryParams;
|
|
96
|
-
set download(value) {
|
|
97
|
-
this._download = value;
|
|
98
|
-
this.cd.markForCheck();
|
|
99
|
-
}
|
|
100
|
-
get download() {
|
|
101
|
-
return this._download ?? undefined;
|
|
102
|
-
}
|
|
103
|
-
_download;
|
|
104
|
-
set icon(value) {
|
|
105
|
-
this._icon = value;
|
|
106
|
-
this.cd.markForCheck();
|
|
107
|
-
}
|
|
108
|
-
get icon() {
|
|
109
|
-
return this._icon;
|
|
110
|
-
}
|
|
111
|
-
_icon;
|
|
112
|
-
set label(value) {
|
|
113
|
-
this._label = value;
|
|
114
|
-
this.cd.markForCheck();
|
|
115
|
-
}
|
|
116
|
-
get label() {
|
|
117
|
-
return this._label;
|
|
118
|
-
}
|
|
119
|
-
_label;
|
|
120
|
-
set dataTestId(value) {
|
|
121
|
-
this._dataTestId = value;
|
|
122
|
-
this.cd.markForCheck();
|
|
123
|
-
}
|
|
124
|
-
get dataTestId() {
|
|
125
|
-
return this._dataTestId;
|
|
126
|
-
}
|
|
127
|
-
_dataTestId = '';
|
|
128
|
-
set onlineEnabled$(value) {
|
|
129
|
-
this._onlineEnabled$ = value;
|
|
130
|
-
this.cd.markForCheck();
|
|
131
|
-
}
|
|
132
|
-
get onlineEnabled$() {
|
|
133
|
-
return this._onlineEnabled$;
|
|
134
|
-
}
|
|
135
|
-
_onlineEnabled$;
|
|
136
|
-
set aria(value) {
|
|
137
|
-
this._aria = value;
|
|
138
|
-
this.updateAriaAttributes();
|
|
139
|
-
}
|
|
140
|
-
get aria() {
|
|
141
|
-
return this._aria;
|
|
142
|
-
}
|
|
143
|
-
_aria = {};
|
|
23
|
+
// Inputs
|
|
24
|
+
propagateInput = input(false, ...(ngDevMode ? [{ debugName: "propagateInput", transform: booleanAttribute,
|
|
25
|
+
alias: 'propagate' }] : [{
|
|
26
|
+
transform: booleanAttribute,
|
|
27
|
+
alias: 'propagate',
|
|
28
|
+
}]));
|
|
29
|
+
propagate = linkedSignal(() => this.propagateInput());
|
|
30
|
+
tabIndexInput = input(RDT_BUTTON_DEFAULT_TAB_INDEX, ...(ngDevMode ? [{ debugName: "tabIndexInput", transform: numberAttribute,
|
|
31
|
+
alias: 'tabIndex' }] : [{
|
|
32
|
+
transform: numberAttribute,
|
|
33
|
+
alias: 'tabIndex',
|
|
34
|
+
}]));
|
|
35
|
+
tabIndex = linkedSignal(() => this.tabIndexInput());
|
|
36
|
+
hrefInput = input(undefined, ...(ngDevMode ? [{ debugName: "hrefInput", alias: 'href' }] : [{
|
|
37
|
+
alias: 'href',
|
|
38
|
+
}]));
|
|
39
|
+
href = linkedSignal(() => this.hrefInput());
|
|
40
|
+
ngHrefInput = input(undefined, ...(ngDevMode ? [{ debugName: "ngHrefInput", alias: 'ngHref' }] : [{
|
|
41
|
+
alias: 'ngHref',
|
|
42
|
+
}]));
|
|
43
|
+
ngHref = linkedSignal(() => this.ngHrefInput());
|
|
44
|
+
targetInput = input(RDT_BUTTON_DEFAULT_TARGET, ...(ngDevMode ? [{ debugName: "targetInput", alias: 'target' }] : [{ alias: 'target' }]));
|
|
45
|
+
target = linkedSignal(() => this.targetInput());
|
|
46
|
+
stateParamsInput = input(undefined, ...(ngDevMode ? [{ debugName: "stateParamsInput", alias: 'stateParams' }] : [{
|
|
47
|
+
alias: 'stateParams',
|
|
48
|
+
}]));
|
|
49
|
+
stateParams = linkedSignal(() => this.stateParamsInput());
|
|
50
|
+
queryParamsInput = input(undefined, ...(ngDevMode ? [{ debugName: "queryParamsInput", alias: 'queryParams' }] : [{
|
|
51
|
+
alias: 'queryParams',
|
|
52
|
+
}]));
|
|
53
|
+
queryParams = linkedSignal(() => this.queryParamsInput());
|
|
54
|
+
downloadInput = input(undefined, ...(ngDevMode ? [{ debugName: "downloadInput", alias: 'download' }] : [{
|
|
55
|
+
alias: 'download',
|
|
56
|
+
}]));
|
|
57
|
+
download = linkedSignal(() => this.downloadInput());
|
|
58
|
+
iconInput = input(null, ...(ngDevMode ? [{ debugName: "iconInput", alias: 'icon' }] : [{
|
|
59
|
+
alias: 'icon',
|
|
60
|
+
}]));
|
|
61
|
+
icon = linkedSignal(() => this.iconInput());
|
|
62
|
+
labelInput = input(undefined, ...(ngDevMode ? [{ debugName: "labelInput", alias: 'label' }] : [{
|
|
63
|
+
alias: 'label',
|
|
64
|
+
}]));
|
|
65
|
+
label = linkedSignal(() => this.labelInput());
|
|
66
|
+
dataTestIdInput = input(undefined, ...(ngDevMode ? [{ debugName: "dataTestIdInput", alias: 'dataTestId' }] : [{ alias: 'dataTestId' }]));
|
|
67
|
+
dataTestId = linkedSignal(() => this.dataTestIdInput() ?? this.label() ?? '');
|
|
68
|
+
onlineEnabledInput$ = input(null, ...(ngDevMode ? [{ debugName: "onlineEnabledInput$", alias: 'onlineEnabled' }] : [{
|
|
69
|
+
alias: 'onlineEnabled',
|
|
70
|
+
}]));
|
|
71
|
+
onlineEnabled$ = linkedSignal(() => this.onlineEnabledInput$());
|
|
72
|
+
ariaInput = input({}, ...(ngDevMode ? [{ debugName: "ariaInput", alias: 'aria' }] : [{ alias: 'aria' }]));
|
|
73
|
+
aria = linkedSignal(() => this.ariaInput());
|
|
74
|
+
hrefWithParams = computed(() => {
|
|
75
|
+
const href = this.href();
|
|
76
|
+
const queryParams = this.queryParams();
|
|
77
|
+
if (href && queryParams) {
|
|
78
|
+
return RdtStringUtils.appendQueryParams(href, queryParams);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return href;
|
|
82
|
+
}
|
|
83
|
+
}, ...(ngDevMode ? [{ debugName: "hrefWithParams" }] : []));
|
|
84
|
+
ariaRenderEffect = afterRenderEffect({
|
|
85
|
+
write: () => this.updateAriaAttributes(this.aria()),
|
|
86
|
+
});
|
|
144
87
|
click$ = new EventEmitter();
|
|
145
|
-
ngAfterViewInit() {
|
|
146
|
-
this.updateAriaAttributes();
|
|
147
|
-
}
|
|
148
|
-
setDisabled(key, disabled) {
|
|
149
|
-
this.internalDisabledMap[key] = disabled;
|
|
150
|
-
this.updateDisabledValue();
|
|
151
|
-
}
|
|
152
|
-
setLoading(key, disabled) {
|
|
153
|
-
this.internalLoadingMap[key] = disabled;
|
|
154
|
-
this.updateLoadingValue();
|
|
155
|
-
}
|
|
156
88
|
focus() {
|
|
157
|
-
this.focusElement?.focus();
|
|
89
|
+
this.focusElement()?.focus();
|
|
90
|
+
}
|
|
91
|
+
canFocus() {
|
|
92
|
+
return !this.disabled() && !!this.focusElement();
|
|
158
93
|
}
|
|
159
94
|
onClicked($event) {
|
|
160
|
-
|
|
161
|
-
|
|
95
|
+
const onlineEnabled$ = this.onlineEnabled$();
|
|
96
|
+
const disabled = this.disabled();
|
|
97
|
+
if (onlineEnabled$) {
|
|
98
|
+
if (disabled) {
|
|
162
99
|
return;
|
|
163
100
|
}
|
|
164
101
|
$event.stopPropagation();
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
102
|
+
this.setDisabledState(true, RdtButtonBase.ONLINE_ENABLED_KEY);
|
|
103
|
+
this.setLoadingState(true, RdtButtonBase.ONLINE_ENABLED_KEY);
|
|
167
104
|
const observer = {
|
|
168
105
|
next: () => {
|
|
169
106
|
this.onClickPermissionAllowed($event);
|
|
@@ -175,46 +112,57 @@ class RdtButtonBase {
|
|
|
175
112
|
},
|
|
176
113
|
complete: () => this.finishOnlineCheck(),
|
|
177
114
|
};
|
|
178
|
-
|
|
115
|
+
onlineEnabled$.pipe(take(1)).subscribe(observer);
|
|
179
116
|
}
|
|
180
117
|
else {
|
|
181
118
|
this.emitAndStopProp($event);
|
|
182
119
|
}
|
|
183
120
|
}
|
|
184
121
|
emitAndStopProp($event) {
|
|
122
|
+
const ngHref = this.ngHref();
|
|
123
|
+
const href = this.href();
|
|
124
|
+
const propagate = this.propagate();
|
|
125
|
+
const disabled = this.disabled();
|
|
185
126
|
// stopPropagation prevents routerLinks from working
|
|
186
|
-
if (!
|
|
127
|
+
if (!propagate && !ngHref && !href) {
|
|
187
128
|
$event.stopPropagation();
|
|
188
129
|
}
|
|
189
|
-
if (!
|
|
130
|
+
if (!disabled && !ngHref && !href) {
|
|
190
131
|
this.click$.emit($event);
|
|
191
132
|
}
|
|
192
133
|
}
|
|
193
134
|
onClickPermissionAllowed($event) {
|
|
194
|
-
|
|
135
|
+
const propagate = this.propagate();
|
|
136
|
+
const disabled = this.disabled();
|
|
137
|
+
if (!propagate) {
|
|
195
138
|
$event.stopPropagation();
|
|
196
139
|
}
|
|
197
|
-
if (!
|
|
140
|
+
if (!disabled) {
|
|
198
141
|
this.navigateOrEmit($event);
|
|
199
142
|
}
|
|
200
143
|
}
|
|
201
144
|
navigateOrEmit(event) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
145
|
+
const ngHref = this.ngHref();
|
|
146
|
+
const href = this.href();
|
|
147
|
+
const target = this.target();
|
|
148
|
+
const queryParams = this.queryParams();
|
|
149
|
+
const stateParams = this.stateParams();
|
|
150
|
+
if (ngHref) {
|
|
151
|
+
if (target !== '_self') {
|
|
152
|
+
const absolutePath = RdtStringUtils.createAbsoluteUrl(ngHref, this.baseHref);
|
|
153
|
+
const pathWithParams = RdtStringUtils.appendQueryParams(absolutePath, queryParams);
|
|
154
|
+
window.open(pathWithParams, target);
|
|
207
155
|
}
|
|
208
156
|
else {
|
|
209
|
-
this.router.navigate([
|
|
210
|
-
queryParams:
|
|
211
|
-
state:
|
|
157
|
+
this.router.navigate([ngHref], {
|
|
158
|
+
queryParams: queryParams,
|
|
159
|
+
state: stateParams ?? undefined,
|
|
212
160
|
});
|
|
213
161
|
}
|
|
214
162
|
}
|
|
215
|
-
else if (
|
|
216
|
-
const pathWithParams = RdtStringUtils.appendQueryParams(
|
|
217
|
-
window.open(pathWithParams,
|
|
163
|
+
else if (href) {
|
|
164
|
+
const pathWithParams = RdtStringUtils.appendQueryParams(href, queryParams);
|
|
165
|
+
window.open(pathWithParams, target);
|
|
218
166
|
}
|
|
219
167
|
else {
|
|
220
168
|
this.click$.emit(event);
|
|
@@ -231,33 +179,13 @@ class RdtButtonBase {
|
|
|
231
179
|
}
|
|
232
180
|
}
|
|
233
181
|
finishOnlineCheck() {
|
|
234
|
-
this.
|
|
235
|
-
this.
|
|
236
|
-
}
|
|
237
|
-
updateDisabledValue() {
|
|
238
|
-
this._disabled = Object.values(this.internalDisabledMap).some((value) => value);
|
|
239
|
-
this.cd.markForCheck();
|
|
240
|
-
}
|
|
241
|
-
updateLoadingValue() {
|
|
242
|
-
this._loading = Object.values(this.internalLoadingMap).some((value) => value);
|
|
243
|
-
this.cd.markForCheck();
|
|
182
|
+
this.setDisabledState(false, RdtButtonBase.ONLINE_ENABLED_KEY);
|
|
183
|
+
this.setLoadingState(false, RdtButtonBase.ONLINE_ENABLED_KEY);
|
|
244
184
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
else {
|
|
250
|
-
this.hrefWithParams = this._href;
|
|
251
|
-
}
|
|
252
|
-
this.cd.markForCheck();
|
|
253
|
-
}
|
|
254
|
-
updateTabIndexValue() {
|
|
255
|
-
this.cd.markForCheck();
|
|
256
|
-
}
|
|
257
|
-
updateAriaAttributes() {
|
|
258
|
-
const el = this.ariaElement;
|
|
259
|
-
if (this.ariaElement) {
|
|
260
|
-
Object.entries(this._aria).forEach(([key, value]) => {
|
|
185
|
+
updateAriaAttributes(aria) {
|
|
186
|
+
const el = this.ariaElement();
|
|
187
|
+
if (el) {
|
|
188
|
+
Object.entries(aria).forEach(([key, value]) => {
|
|
261
189
|
if (value === null || value === undefined) {
|
|
262
190
|
this.renderer.removeAttribute(el, key);
|
|
263
191
|
}
|
|
@@ -268,46 +196,12 @@ class RdtButtonBase {
|
|
|
268
196
|
}
|
|
269
197
|
}
|
|
270
198
|
static ONLINE_ENABLED_KEY = Symbol();
|
|
271
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
272
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
199
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtButtonBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
200
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: RdtButtonBase, isStandalone: true, inputs: { propagateInput: { classPropertyName: "propagateInput", publicName: "propagate", isSignal: true, isRequired: false, transformFunction: null }, tabIndexInput: { classPropertyName: "tabIndexInput", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, hrefInput: { classPropertyName: "hrefInput", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, ngHrefInput: { classPropertyName: "ngHrefInput", publicName: "ngHref", isSignal: true, isRequired: false, transformFunction: null }, targetInput: { classPropertyName: "targetInput", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, stateParamsInput: { classPropertyName: "stateParamsInput", publicName: "stateParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsInput: { classPropertyName: "queryParamsInput", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, downloadInput: { classPropertyName: "downloadInput", publicName: "download", isSignal: true, isRequired: false, transformFunction: null }, iconInput: { classPropertyName: "iconInput", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, labelInput: { classPropertyName: "labelInput", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, dataTestIdInput: { classPropertyName: "dataTestIdInput", publicName: "dataTestId", isSignal: true, isRequired: false, transformFunction: null }, onlineEnabledInput$: { classPropertyName: "onlineEnabledInput$", publicName: "onlineEnabled", isSignal: true, isRequired: false, transformFunction: null }, ariaInput: { classPropertyName: "ariaInput", publicName: "aria", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click$: "click$" }, usesInheritance: true, ngImport: i0 });
|
|
273
201
|
}
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtButtonBase, decorators: [{
|
|
275
203
|
type: Directive
|
|
276
|
-
}], propDecorators: {
|
|
277
|
-
type: Input,
|
|
278
|
-
args: [{ transform: booleanAttribute }]
|
|
279
|
-
}], loading: [{
|
|
280
|
-
type: Input,
|
|
281
|
-
args: [{ transform: booleanAttribute }]
|
|
282
|
-
}], propagate: [{
|
|
283
|
-
type: Input,
|
|
284
|
-
args: [{ transform: booleanAttribute }]
|
|
285
|
-
}], tabIndex: [{
|
|
286
|
-
type: Input,
|
|
287
|
-
args: [{ transform: numberAttribute }]
|
|
288
|
-
}], href: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}], ngHref: [{
|
|
291
|
-
type: Input
|
|
292
|
-
}], target: [{
|
|
293
|
-
type: Input
|
|
294
|
-
}], stateParams: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], queryParams: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], download: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], icon: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}], label: [{
|
|
303
|
-
type: Input
|
|
304
|
-
}], dataTestId: [{
|
|
305
|
-
type: Input
|
|
306
|
-
}], onlineEnabled$: [{
|
|
307
|
-
type: Input
|
|
308
|
-
}], aria: [{
|
|
309
|
-
type: Input
|
|
310
|
-
}], click$: [{
|
|
204
|
+
}], propDecorators: { click$: [{
|
|
311
205
|
type: Output
|
|
312
206
|
}] } });
|
|
313
207
|
|
|
@@ -361,10 +255,10 @@ class RdtButtonOutletDirective {
|
|
|
361
255
|
}
|
|
362
256
|
}
|
|
363
257
|
}
|
|
364
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
365
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtButtonOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
259
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: RdtButtonOutletDirective, isStandalone: true, selector: "[rdtButtonOutlet]", inputs: { inputs: "inputs" }, outputs: { click$: "click$" }, exportAs: ["rdtButtonOutlet"], usesOnChanges: true, ngImport: i0 });
|
|
366
260
|
}
|
|
367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: RdtButtonOutletDirective, decorators: [{
|
|
368
262
|
type: Directive,
|
|
369
263
|
args: [{
|
|
370
264
|
selector: '[rdtButtonOutlet]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrdt-button.mjs","sources":["../../../../@ngrdt/button/src/lib/button/rdt-button-constants.ts","../../../../@ngrdt/button/src/lib/button/rdt-button-base.ts","../../../../@ngrdt/button/src/lib/button-outlet/rdt-button-outlet.directive.ts","../../../../@ngrdt/button/src/ngrdt-button.ts"],"sourcesContent":["import { InjectionToken, Type } from '@angular/core';\r\nimport { RdtButtonBaseInt } from './rdt-button-int';\r\n\r\nexport const RDT_BUTTON_SETTER_KEY = Symbol();\r\n\r\nexport const RDT_BUTTON_DEFAULT_PROPAGATE = false;\r\nexport const RDT_BUTTON_DEFAULT_TARGET = '_self';\r\nexport const RDT_BUTTON_DEFAULT_TAB_INDEX = null;\r\n\r\nexport const RDT_BUTTON_BASE_PROVIDER = new InjectionToken<\r\n Type<RdtButtonBaseInt>\r\n>('RdtButton');\r\n","import {\r\n AfterViewInit,\r\n booleanAttribute,\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n numberAttribute,\r\n Output,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { RdtButtonBaseInt } from './rdt-button-int';\r\nimport { Params, Router } from '@angular/router';\r\nimport {\r\n Nullable,\r\n WindowOpenTargetType,\r\n RdtStringUtils,\r\n AriaAttributes,\r\n} from '@ngrdt/utils';\r\nimport { Observable, take } from 'rxjs';\r\nimport {\r\n RDT_BUTTON_DEFAULT_TAB_INDEX,\r\n RDT_BUTTON_DEFAULT_TARGET,\r\n RDT_BUTTON_SETTER_KEY,\r\n} from './rdt-button-constants';\r\nimport { RdtButtonNotificationServiceInt } from './rdt-button-notification.service';\r\nimport { PlatformLocation } from '@angular/common';\r\n\r\n@Directive()\r\nexport abstract class RdtButtonBase<TIcon = string>\r\n implements RdtButtonBaseInt<TIcon>, AfterViewInit\r\n{\r\n protected readonly elRef = inject(ElementRef);\r\n protected readonly cd = inject(ChangeDetectorRef);\r\n protected readonly router = inject(Router);\r\n protected readonly baseHref = inject(PlatformLocation).getBaseHrefFromDOM();\r\n protected readonly renderer = inject(Renderer2);\r\n\r\n protected readonly notificationService?: RdtButtonNotificationServiceInt;\r\n\r\n protected internalDisabledMap: Record<symbol, boolean> = {};\r\n protected internalLoadingMap: Record<symbol, boolean> = {};\r\n protected hrefWithParams: Nullable<string>;\r\n\r\n get focusElement(): HTMLElement | null {\r\n return this.elRef?.nativeElement ?? null;\r\n }\r\n\r\n get ariaElement(): HTMLElement | null {\r\n return this.elRef?.nativeElement ?? null;\r\n }\r\n\r\n get anchorElement(): HTMLElement | null {\r\n return this.elRef?.nativeElement ?? null;\r\n }\r\n\r\n @Input({ transform: booleanAttribute })\r\n set disabled(value: boolean) {\r\n this.setDisabled(RDT_BUTTON_SETTER_KEY, value);\r\n }\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n private _disabled = false;\r\n\r\n @Input({ transform: booleanAttribute })\r\n set loading(value: boolean) {\r\n this.setLoading(RDT_BUTTON_SETTER_KEY, value);\r\n }\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n private _loading = false;\r\n\r\n @Input({ transform: booleanAttribute })\r\n propagate = false;\r\n\r\n @Input({ transform: numberAttribute })\r\n set tabIndex(value: Nullable<number>) {\r\n this._tabIndex = value;\r\n this.updateTabIndexValue();\r\n }\r\n get tabIndex() {\r\n return this._tabIndex;\r\n }\r\n private _tabIndex: Nullable<number> = RDT_BUTTON_DEFAULT_TAB_INDEX;\r\n\r\n @Input()\r\n set href(value: Nullable<string>) {\r\n this._href = value;\r\n this.updateHrefWithQueryParams();\r\n }\r\n get href() {\r\n return this._href;\r\n }\r\n private _href: Nullable<string>;\r\n\r\n @Input()\r\n set ngHref(value: Nullable<string>) {\r\n this._ngHref = value;\r\n this.cd.markForCheck();\r\n }\r\n get ngHref() {\r\n return this._ngHref;\r\n }\r\n private _ngHref: Nullable<string>;\r\n\r\n @Input()\r\n set target(value: WindowOpenTargetType) {\r\n this._target = value;\r\n this.cd.markForCheck();\r\n }\r\n get target() {\r\n return this._target;\r\n }\r\n private _target: WindowOpenTargetType = RDT_BUTTON_DEFAULT_TARGET;\r\n\r\n @Input()\r\n set stateParams(value: Nullable<Params>) {\r\n this._stateParams = value;\r\n this.cd.markForCheck();\r\n }\r\n get stateParams() {\r\n return this._stateParams;\r\n }\r\n private _stateParams: Nullable<Params>;\r\n\r\n @Input()\r\n set queryParams(value: Nullable<Params>) {\r\n this._queryParams = value;\r\n this.updateHrefWithQueryParams();\r\n }\r\n get queryParams() {\r\n return this._queryParams;\r\n }\r\n private _queryParams: Nullable<Params>;\r\n\r\n @Input()\r\n set download(value: Nullable<string>) {\r\n this._download = value;\r\n this.cd.markForCheck();\r\n }\r\n get download() {\r\n return this._download ?? undefined;\r\n }\r\n private _download: Nullable<string>;\r\n\r\n @Input()\r\n set icon(value: Nullable<TIcon>) {\r\n this._icon = value;\r\n this.cd.markForCheck();\r\n }\r\n get icon() {\r\n return this._icon;\r\n }\r\n private _icon: Nullable<TIcon>;\r\n\r\n @Input()\r\n set label(value: Nullable<string>) {\r\n this._label = value;\r\n this.cd.markForCheck();\r\n }\r\n get label() {\r\n return this._label;\r\n }\r\n private _label: Nullable<string>;\r\n\r\n @Input()\r\n set dataTestId(value: string) {\r\n this._dataTestId = value;\r\n this.cd.markForCheck();\r\n }\r\n get dataTestId() {\r\n return this._dataTestId;\r\n }\r\n private _dataTestId = '';\r\n\r\n @Input()\r\n set onlineEnabled$(value: Nullable<Observable<boolean>>) {\r\n this._onlineEnabled$ = value;\r\n this.cd.markForCheck();\r\n }\r\n get onlineEnabled$() {\r\n return this._onlineEnabled$;\r\n }\r\n private _onlineEnabled$: Nullable<Observable<boolean>>;\r\n\r\n @Input()\r\n set aria(value: Partial<AriaAttributes>) {\r\n this._aria = value;\r\n this.updateAriaAttributes();\r\n }\r\n get aria() {\r\n return this._aria;\r\n }\r\n private _aria: Partial<AriaAttributes> = {};\r\n\r\n @Output()\r\n readonly click$ = new EventEmitter<MouseEvent>();\r\n\r\n ngAfterViewInit(): void {\r\n this.updateAriaAttributes();\r\n }\r\n\r\n setDisabled(key: symbol, disabled: boolean): void {\r\n this.internalDisabledMap[key] = disabled;\r\n this.updateDisabledValue();\r\n }\r\n\r\n setLoading(key: symbol, disabled: boolean): void {\r\n this.internalLoadingMap[key] = disabled;\r\n this.updateLoadingValue();\r\n }\r\n\r\n focus(): void {\r\n this.focusElement?.focus();\r\n }\r\n\r\n protected onClicked($event: MouseEvent) {\r\n if (this._onlineEnabled$) {\r\n if (this._disabled) {\r\n return;\r\n }\r\n\r\n $event.stopPropagation();\r\n this.setDisabled(RdtButtonBase.ONLINE_ENABLED_KEY, true);\r\n this.setLoading(RdtButtonBase.ONLINE_ENABLED_KEY, true);\r\n const observer = {\r\n next: () => {\r\n this.onClickPermissionAllowed($event);\r\n this.finishOnlineCheck();\r\n },\r\n error: (error: any) => {\r\n this.notifyAccessDenied(error);\r\n this.finishOnlineCheck();\r\n },\r\n complete: () => this.finishOnlineCheck(),\r\n };\r\n this._onlineEnabled$.pipe(take(1)).subscribe(observer);\r\n } else {\r\n this.emitAndStopProp($event);\r\n }\r\n }\r\n\r\n private emitAndStopProp($event: MouseEvent) {\r\n // stopPropagation prevents routerLinks from working\r\n if (!this.propagate && !this._ngHref && !this._href) {\r\n $event.stopPropagation();\r\n }\r\n if (!this._disabled && !this._ngHref && !this._href) {\r\n this.click$.emit($event);\r\n }\r\n }\r\n\r\n private onClickPermissionAllowed($event: MouseEvent) {\r\n if (!this.propagate) {\r\n $event.stopPropagation();\r\n }\r\n if (!this._disabled) {\r\n this.navigateOrEmit($event);\r\n }\r\n }\r\n\r\n private navigateOrEmit(event: MouseEvent) {\r\n if (this._ngHref) {\r\n if (this._target !== '_self') {\r\n const absolutePath = RdtStringUtils.createAbsoluteUrl(\r\n this._ngHref,\r\n this.baseHref\r\n );\r\n const pathWithParams = RdtStringUtils.appendQueryParams(\r\n absolutePath,\r\n this.queryParams\r\n );\r\n window.open(pathWithParams, this._target);\r\n } else {\r\n this.router.navigate([this._ngHref], {\r\n queryParams: this._queryParams,\r\n state: this._stateParams ?? undefined,\r\n });\r\n }\r\n } else if (this._href) {\r\n const pathWithParams = RdtStringUtils.appendQueryParams(\r\n this._href,\r\n this.queryParams\r\n );\r\n window.open(pathWithParams, this._target);\r\n } else {\r\n this.click$.emit(event);\r\n }\r\n }\r\n\r\n private notifyAccessDenied(error?: unknown) {\r\n if (this.notificationService) {\r\n if (typeof error === 'string') {\r\n this.notificationService.error(error);\r\n } else {\r\n this.notificationService.accessDenied();\r\n }\r\n }\r\n }\r\n\r\n private finishOnlineCheck() {\r\n this.setDisabled(RdtButtonBase.ONLINE_ENABLED_KEY, false);\r\n this.setLoading(RdtButtonBase.ONLINE_ENABLED_KEY, false);\r\n }\r\n\r\n private updateDisabledValue() {\r\n this._disabled = Object.values(this.internalDisabledMap).some(\r\n (value) => value\r\n );\r\n this.cd.markForCheck();\r\n }\r\n\r\n private updateLoadingValue() {\r\n this._loading = Object.values(this.internalLoadingMap).some(\r\n (value) => value\r\n );\r\n this.cd.markForCheck();\r\n }\r\n\r\n private updateHrefWithQueryParams() {\r\n if (this._href && this._queryParams) {\r\n this.hrefWithParams = RdtStringUtils.appendQueryParams(\r\n this._href,\r\n this._queryParams\r\n );\r\n } else {\r\n this.hrefWithParams = this._href;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n protected updateTabIndexValue() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n private updateAriaAttributes() {\r\n const el = this.ariaElement;\r\n if (this.ariaElement) {\r\n Object.entries(this._aria).forEach(([key, value]) => {\r\n if (value === null || value === undefined) {\r\n this.renderer.removeAttribute(el, key);\r\n } else {\r\n this.renderer.setAttribute(el, key, String(value));\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected static readonly ONLINE_ENABLED_KEY = Symbol();\r\n}\r\n","import {\r\n ComponentRef,\r\n Directive,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { RDT_BUTTON_BASE_PROVIDER } from '../button/rdt-button-constants';\r\nimport {\r\n RdtButtonBaseInputsInt,\r\n RdtButtonBaseInt,\r\n} from '../button/rdt-button-int';\r\n\r\n@Directive({\r\n selector: '[rdtButtonOutlet]',\r\n standalone: true,\r\n exportAs: 'rdtButtonOutlet',\r\n})\r\nexport class RdtButtonOutletDirective<\r\n TButton extends RdtButtonBaseInt,\r\n TButtonInputs extends RdtButtonBaseInputsInt = RdtButtonBaseInputsInt\r\n> implements OnChanges\r\n{\r\n readonly buttonClass = inject(RDT_BUTTON_BASE_PROVIDER);\r\n\r\n private readonly _viewContainerRef = inject(ViewContainerRef);\r\n\r\n @Input()\r\n inputs: Partial<TButtonInputs> = {};\r\n\r\n @Output()\r\n click$ = new EventEmitter<MouseEvent>();\r\n\r\n get instance() {\r\n return this._componentRef?.instance;\r\n }\r\n private _componentRef?: ComponentRef<TButton>;\r\n\r\n /**\r\n * A helper data structure that allows us to track inputs that were part of the\r\n * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones\r\n * that are no longer referenced.\r\n */\r\n private _inputsUsed = new Map<string, boolean>();\r\n\r\n constructor() {\r\n const injector = this._viewContainerRef.injector;\r\n this._componentRef = this._viewContainerRef.createComponent(\r\n this.buttonClass,\r\n {\r\n injector,\r\n }\r\n ) as ComponentRef<TButton>;\r\n this.onInputsChanged();\r\n this._componentRef.instance.click$.subscribe(this.click$);\r\n }\r\n\r\n /** @nodoc */\r\n ngOnChanges() {\r\n this.onInputsChanged();\r\n }\r\n\r\n private onInputsChanged() {\r\n for (const inputName of Object.keys(this.inputs)) {\r\n this._inputsUsed.set(inputName, true);\r\n }\r\n if (this._componentRef) {\r\n this._applyInputStateDiff(this._componentRef);\r\n }\r\n }\r\n\r\n /** @nodoc */\r\n private _applyInputStateDiff(componentRef: ComponentRef<unknown>) {\r\n for (const [inputName, touched] of this._inputsUsed) {\r\n if (!touched) {\r\n // The input that was previously active no longer exists and needs to be set to undefined.\r\n componentRef.setInput(inputName, undefined);\r\n this._inputsUsed.delete(inputName);\r\n } else {\r\n // Since touched is true, it can be asserted that the inputs object is not empty.\r\n componentRef.setInput(\r\n inputName,\r\n this.inputs[inputName as keyof TButtonInputs]\r\n );\r\n this._inputsUsed.set(inputName, false);\r\n }\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngrdt-button.mjs","sources":["../tmp-esm2022/lib/button/rdt-button-constants.js","../tmp-esm2022/lib/button/rdt-button-base.js","../tmp-esm2022/lib/button-outlet/rdt-button-outlet.directive.js","../tmp-esm2022/ngrdt-button.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const RDT_BUTTON_SETTER_KEY = Symbol();\nexport const RDT_BUTTON_DEFAULT_PROPAGATE = false;\nexport const RDT_BUTTON_DEFAULT_TARGET = '_self';\nexport const RDT_BUTTON_DEFAULT_TAB_INDEX = null;\nexport const RDT_BUTTON_BASE_PROVIDER = new InjectionToken('RdtButton');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvYnV0dG9uL3NyYy9saWIvYnV0dG9uL3JkdC1idXR0b24tY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsS0FBSyxDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUNqRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBRXhELFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmR0QnV0dG9uQmFzZUludCB9IGZyb20gJy4vcmR0LWJ1dHRvbi1pbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJEVF9CVVRUT05fU0VUVEVSX0tFWSA9IFN5bWJvbCgpO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJEVF9CVVRUT05fREVGQVVMVF9QUk9QQUdBVEUgPSBmYWxzZTtcclxuZXhwb3J0IGNvbnN0IFJEVF9CVVRUT05fREVGQVVMVF9UQVJHRVQgPSAnX3NlbGYnO1xyXG5leHBvcnQgY29uc3QgUkRUX0JVVFRPTl9ERUZBVUxUX1RBQl9JTkRFWCA9IG51bGw7XHJcblxyXG5leHBvcnQgY29uc3QgUkRUX0JVVFRPTl9CQVNFX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPFxyXG4gIFR5cGU8UmR0QnV0dG9uQmFzZUludD5cclxuPignUmR0QnV0dG9uJyk7XHJcbiJdfQ==","import { PlatformLocation } from '@angular/common';\nimport { afterRenderEffect, booleanAttribute, computed, Directive, ElementRef, EventEmitter, inject, input, linkedSignal, numberAttribute, Output, Renderer2, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RdtInteractiveElementComponent } from '@ngrdt/core';\nimport { RdtStringUtils, } from '@ngrdt/utils';\nimport { take } from 'rxjs';\nimport { RDT_BUTTON_DEFAULT_TAB_INDEX, RDT_BUTTON_DEFAULT_TARGET, } from './rdt-button-constants';\nimport * as i0 from \"@angular/core\";\nexport class RdtButtonBase extends RdtInteractiveElementComponent {\n elRef = inject(ElementRef);\n router = inject(Router);\n baseHref = inject(PlatformLocation).getBaseHrefFromDOM();\n renderer = inject(Renderer2);\n notificationService;\n internalDisabledMap = {};\n internalLoadingMap = {};\n // Inputs\n propagateInput = input(false, ...(ngDevMode ? [{ debugName: \"propagateInput\", transform: booleanAttribute,\n alias: 'propagate' }] : [{\n transform: booleanAttribute,\n alias: 'propagate',\n }]));\n propagate = linkedSignal(() => this.propagateInput());\n tabIndexInput = input(RDT_BUTTON_DEFAULT_TAB_INDEX, ...(ngDevMode ? [{ debugName: \"tabIndexInput\", transform: numberAttribute,\n alias: 'tabIndex' }] : [{\n transform: numberAttribute,\n alias: 'tabIndex',\n }]));\n tabIndex = linkedSignal(() => this.tabIndexInput());\n hrefInput = input(undefined, ...(ngDevMode ? [{ debugName: \"hrefInput\", alias: 'href' }] : [{\n alias: 'href',\n }]));\n href = linkedSignal(() => this.hrefInput());\n ngHrefInput = input(undefined, ...(ngDevMode ? [{ debugName: \"ngHrefInput\", alias: 'ngHref' }] : [{\n alias: 'ngHref',\n }]));\n ngHref = linkedSignal(() => this.ngHrefInput());\n targetInput = input(RDT_BUTTON_DEFAULT_TARGET, ...(ngDevMode ? [{ debugName: \"targetInput\", alias: 'target' }] : [{ alias: 'target' }]));\n target = linkedSignal(() => this.targetInput());\n stateParamsInput = input(undefined, ...(ngDevMode ? [{ debugName: \"stateParamsInput\", alias: 'stateParams' }] : [{\n alias: 'stateParams',\n }]));\n stateParams = linkedSignal(() => this.stateParamsInput());\n queryParamsInput = input(undefined, ...(ngDevMode ? [{ debugName: \"queryParamsInput\", alias: 'queryParams' }] : [{\n alias: 'queryParams',\n }]));\n queryParams = linkedSignal(() => this.queryParamsInput());\n downloadInput = input(undefined, ...(ngDevMode ? [{ debugName: \"downloadInput\", alias: 'download' }] : [{\n alias: 'download',\n }]));\n download = linkedSignal(() => this.downloadInput());\n iconInput = input(null, ...(ngDevMode ? [{ debugName: \"iconInput\", alias: 'icon' }] : [{\n alias: 'icon',\n }]));\n icon = linkedSignal(() => this.iconInput());\n labelInput = input(undefined, ...(ngDevMode ? [{ debugName: \"labelInput\", alias: 'label' }] : [{\n alias: 'label',\n }]));\n label = linkedSignal(() => this.labelInput());\n dataTestIdInput = input(undefined, ...(ngDevMode ? [{ debugName: \"dataTestIdInput\", alias: 'dataTestId' }] : [{ alias: 'dataTestId' }]));\n dataTestId = linkedSignal(() => this.dataTestIdInput() ?? this.label() ?? '');\n onlineEnabledInput$ = input(null, ...(ngDevMode ? [{ debugName: \"onlineEnabledInput$\", alias: 'onlineEnabled' }] : [{\n alias: 'onlineEnabled',\n }]));\n onlineEnabled$ = linkedSignal(() => this.onlineEnabledInput$());\n ariaInput = input({}, ...(ngDevMode ? [{ debugName: \"ariaInput\", alias: 'aria' }] : [{ alias: 'aria' }]));\n aria = linkedSignal(() => this.ariaInput());\n hrefWithParams = computed(() => {\n const href = this.href();\n const queryParams = this.queryParams();\n if (href && queryParams) {\n return RdtStringUtils.appendQueryParams(href, queryParams);\n }\n else {\n return href;\n }\n }, ...(ngDevMode ? [{ debugName: \"hrefWithParams\" }] : []));\n ariaRenderEffect = afterRenderEffect({\n write: () => this.updateAriaAttributes(this.aria()),\n });\n click$ = new EventEmitter();\n focus() {\n this.focusElement()?.focus();\n }\n canFocus() {\n return !this.disabled() && !!this.focusElement();\n }\n onClicked($event) {\n const onlineEnabled$ = this.onlineEnabled$();\n const disabled = this.disabled();\n if (onlineEnabled$) {\n if (disabled) {\n return;\n }\n $event.stopPropagation();\n this.setDisabledState(true, RdtButtonBase.ONLINE_ENABLED_KEY);\n this.setLoadingState(true, RdtButtonBase.ONLINE_ENABLED_KEY);\n const observer = {\n next: () => {\n this.onClickPermissionAllowed($event);\n this.finishOnlineCheck();\n },\n error: (error) => {\n this.notifyAccessDenied(error);\n this.finishOnlineCheck();\n },\n complete: () => this.finishOnlineCheck(),\n };\n onlineEnabled$.pipe(take(1)).subscribe(observer);\n }\n else {\n this.emitAndStopProp($event);\n }\n }\n emitAndStopProp($event) {\n const ngHref = this.ngHref();\n const href = this.href();\n const propagate = this.propagate();\n const disabled = this.disabled();\n // stopPropagation prevents routerLinks from working\n if (!propagate && !ngHref && !href) {\n $event.stopPropagation();\n }\n if (!disabled && !ngHref && !href) {\n this.click$.emit($event);\n }\n }\n onClickPermissionAllowed($event) {\n const propagate = this.propagate();\n const disabled = this.disabled();\n if (!propagate) {\n $event.stopPropagation();\n }\n if (!disabled) {\n this.navigateOrEmit($event);\n }\n }\n navigateOrEmit(event) {\n const ngHref = this.ngHref();\n const href = this.href();\n const target = this.target();\n const queryParams = this.queryParams();\n const stateParams = this.stateParams();\n if (ngHref) {\n if (target !== '_self') {\n const absolutePath = RdtStringUtils.createAbsoluteUrl(ngHref, this.baseHref);\n const pathWithParams = RdtStringUtils.appendQueryParams(absolutePath, queryParams);\n window.open(pathWithParams, target);\n }\n else {\n this.router.navigate([ngHref], {\n queryParams: queryParams,\n state: stateParams ?? undefined,\n });\n }\n }\n else if (href) {\n const pathWithParams = RdtStringUtils.appendQueryParams(href, queryParams);\n window.open(pathWithParams, target);\n }\n else {\n this.click$.emit(event);\n }\n }\n notifyAccessDenied(error) {\n if (this.notificationService) {\n if (typeof error === 'string') {\n this.notificationService.error(error);\n }\n else {\n this.notificationService.accessDenied();\n }\n }\n }\n finishOnlineCheck() {\n this.setDisabledState(false, RdtButtonBase.ONLINE_ENABLED_KEY);\n this.setLoadingState(false, RdtButtonBase.ONLINE_ENABLED_KEY);\n }\n updateAriaAttributes(aria) {\n const el = this.ariaElement();\n if (el) {\n Object.entries(aria).forEach(([key, value]) => {\n if (value === null || value === undefined) {\n this.renderer.removeAttribute(el, key);\n }\n else {\n this.renderer.setAttribute(el, key, String(value));\n }\n });\n }\n }\n static ONLINE_ENABLED_KEY = Symbol();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtButtonBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: RdtButtonBase, isStandalone: true, inputs: { propagateInput: { classPropertyName: \"propagateInput\", publicName: \"propagate\", isSignal: true, isRequired: false, transformFunction: null }, tabIndexInput: { classPropertyName: \"tabIndexInput\", publicName: \"tabIndex\", isSignal: true, isRequired: false, transformFunction: null }, hrefInput: { classPropertyName: \"hrefInput\", publicName: \"href\", isSignal: true, isRequired: false, transformFunction: null }, ngHrefInput: { classPropertyName: \"ngHrefInput\", publicName: \"ngHref\", isSignal: true, isRequired: false, transformFunction: null }, targetInput: { classPropertyName: \"targetInput\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null }, stateParamsInput: { classPropertyName: \"stateParamsInput\", publicName: \"stateParams\", isSignal: true, isRequired: false, transformFunction: null }, queryParamsInput: { classPropertyName: \"queryParamsInput\", publicName: \"queryParams\", isSignal: true, isRequired: false, transformFunction: null }, downloadInput: { classPropertyName: \"downloadInput\", publicName: \"download\", isSignal: true, isRequired: false, transformFunction: null }, iconInput: { classPropertyName: \"iconInput\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, labelInput: { classPropertyName: \"labelInput\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, dataTestIdInput: { classPropertyName: \"dataTestIdInput\", publicName: \"dataTestId\", isSignal: true, isRequired: false, transformFunction: null }, onlineEnabledInput$: { classPropertyName: \"onlineEnabledInput$\", publicName: \"onlineEnabled\", isSignal: true, isRequired: false, transformFunction: null }, ariaInput: { classPropertyName: \"ariaInput\", publicName: \"aria\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click$: \"click$\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtButtonBase, decorators: [{\n type: Directive\n }], propDecorators: { click$: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbGliL2J1dHRvbi9yZHQtYnV0dG9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQW9CLDhCQUE4QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFHTCxjQUFjLEdBRWYsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLHdCQUF3QixDQUFDOztBQUtoQyxNQUFNLE9BQWdCLGFBQ3BCLFNBQVEsOEJBQThCO0lBR25CLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN6RCxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTdCLG1CQUFtQixDQUFtQztJQUUvRCxtQkFBbUIsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELGtCQUFrQixHQUE0QixFQUFFLENBQUM7SUFNM0QsU0FBUztJQUNB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R0FsT3BDLGFBQWE7MkZBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUzs4QkFxR0MsTUFBTTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm1Mb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgYWZ0ZXJSZW5kZXJFZmZlY3QsXHJcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcclxuICBjb21wdXRlZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIGxpbmtlZFNpZ25hbCxcclxuICBudW1iZXJBdHRyaWJ1dGUsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUmR0Qm9vbGVhblJlc3VsdCwgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnQG5ncmR0L2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFyaWFBdHRyaWJ1dGVzLFxyXG4gIE51bGxhYmxlLFxyXG4gIFJkdFN0cmluZ1V0aWxzLFxyXG4gIFdpbmRvd09wZW5UYXJnZXRUeXBlLFxyXG59IGZyb20gJ0BuZ3JkdC91dGlscyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBSRFRfQlVUVE9OX0RFRkFVTFRfVEFCX0lOREVYLFxyXG4gIFJEVF9CVVRUT05fREVGQVVMVF9UQVJHRVQsXHJcbn0gZnJvbSAnLi9yZHQtYnV0dG9uLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFJkdEJ1dHRvbkJhc2VJbnQgfSBmcm9tICcuL3JkdC1idXR0b24taW50JztcclxuaW1wb3J0IHsgUmR0QnV0dG9uTm90aWZpY2F0aW9uU2VydmljZUludCB9IGZyb20gJy4vcmR0LWJ1dHRvbi1ub3RpZmljYXRpb24uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdEJ1dHRvbkJhc2U8VEljb24gPSBzdHJpbmc+XHJcbiAgZXh0ZW5kcyBSZHRJbnRlcmFjdGl2ZUVsZW1lbnRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIFJkdEJ1dHRvbkJhc2VJbnQ8VEljb24+XHJcbntcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBiYXNlSHJlZiA9IGluamVjdChQbGF0Zm9ybUxvY2F0aW9uKS5nZXRCYXNlSHJlZkZyb21ET00oKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U/OiBSZHRCdXR0b25Ob3RpZmljYXRpb25TZXJ2aWNlSW50O1xyXG5cclxuICBwcm90ZWN0ZWQgaW50ZXJuYWxEaXNhYmxlZE1hcDogUmVjb3JkPHN5bWJvbCwgYm9vbGVhbj4gPSB7fTtcclxuICBwcm90ZWN0ZWQgaW50ZXJuYWxMb2FkaW5nTWFwOiBSZWNvcmQ8c3ltYm9sLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICBhYnN0cmFjdCByZWFkb25seSBmb2N1c0VsZW1lbnQ6IFNpZ25hbDxIVE1MRWxlbWVudCB8IG51bGw+O1xyXG4gIGFic3RyYWN0IHJlYWRvbmx5IGFyaWFFbGVtZW50OiBTaWduYWw8SFRNTEVsZW1lbnQgfCBudWxsPjtcclxuICBhYnN0cmFjdCByZWFkb25seSBhbmNob3JFbGVtZW50OiBTaWduYWw8SFRNTEVsZW1lbnQgfCBudWxsPjtcclxuXHJcbiAgLy8gSW5wdXRzXHJcbiAgcmVhZG9ubHkgcHJvcGFnYXRlSW5wdXQgPSBpbnB1dChmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxyXG4gICAgYWxpYXM6ICdwcm9wYWdhdGUnLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IHByb3BhZ2F0ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnByb3BhZ2F0ZUlucHV0KCkpO1xyXG5cclxuICByZWFkb25seSB0YWJJbmRleElucHV0ID0gaW5wdXQoUkRUX0JVVFRPTl9ERUZBVUxUX1RBQl9JTkRFWCwge1xyXG4gICAgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXHJcbiAgICBhbGlhczogJ3RhYkluZGV4JyxcclxuICB9KTtcclxuICByZWFkb25seSB0YWJJbmRleCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnRhYkluZGV4SW5wdXQoKSk7XHJcblxyXG4gIHJlYWRvbmx5IGhyZWZJbnB1dCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwge1xyXG4gICAgYWxpYXM6ICdocmVmJyxcclxuICB9KTtcclxuICByZWFkb25seSBocmVmID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuaHJlZklucHV0KCkpO1xyXG5cclxuICByZWFkb25seSBuZ0hyZWZJbnB1dCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwge1xyXG4gICAgYWxpYXM6ICduZ0hyZWYnLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IG5nSHJlZiA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm5nSHJlZklucHV0KCkpO1xyXG5cclxuICByZWFkb25seSB0YXJnZXRJbnB1dCA9IGlucHV0PFdpbmRvd09wZW5UYXJnZXRUeXBlPihcclxuICAgIFJEVF9CVVRUT05fREVGQVVMVF9UQVJHRVQsXHJcbiAgICB7IGFsaWFzOiAndGFyZ2V0JyB9XHJcbiAgKTtcclxuICByZWFkb25seSB0YXJnZXQgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy50YXJnZXRJbnB1dCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgc3RhdGVQYXJhbXNJbnB1dCA9IGlucHV0PE51bGxhYmxlPFBhcmFtcz4+KHVuZGVmaW5lZCwge1xyXG4gICAgYWxpYXM6ICdzdGF0ZVBhcmFtcycsXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgc3RhdGVQYXJhbXMgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5zdGF0ZVBhcmFtc0lucHV0KCkpO1xyXG5cclxuICByZWFkb25seSBxdWVyeVBhcmFtc0lucHV0ID0gaW5wdXQ8TnVsbGFibGU8UGFyYW1zPj4odW5kZWZpbmVkLCB7XHJcbiAgICBhbGlhczogJ3F1ZXJ5UGFyYW1zJyxcclxuICB9KTtcclxuICByZWFkb25seSBxdWVyeVBhcmFtcyA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnF1ZXJ5UGFyYW1zSW5wdXQoKSk7XHJcblxyXG4gIHJlYWRvbmx5IGRvd25sb2FkSW5wdXQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHtcclxuICAgIGFsaWFzOiAnZG93bmxvYWQnLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGRvd25sb2FkID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuZG93bmxvYWRJbnB1dCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgaWNvbklucHV0ID0gaW5wdXQ8TnVsbGFibGU8VEljb24+PihudWxsLCB7XHJcbiAgICBhbGlhczogJ2ljb24nLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGljb24gPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5pY29uSW5wdXQoKSk7XHJcblxyXG4gIHJlYWRvbmx5IGxhYmVsSW5wdXQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHtcclxuICAgIGFsaWFzOiAnbGFiZWwnLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGxhYmVsID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubGFiZWxJbnB1dCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgZGF0YVRlc3RJZElucHV0ID0gaW5wdXQodW5kZWZpbmVkLCB7IGFsaWFzOiAnZGF0YVRlc3RJZCcgfSk7XHJcbiAgcmVhZG9ubHkgZGF0YVRlc3RJZCA9IGxpbmtlZFNpZ25hbChcclxuICAgICgpID0+IHRoaXMuZGF0YVRlc3RJZElucHV0KCkgPz8gdGhpcy5sYWJlbCgpID8/ICcnXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgb25saW5lRW5hYmxlZElucHV0JCA9IGlucHV0PE51bGxhYmxlPE9ic2VydmFibGU8Ym9vbGVhbj4+PihudWxsLCB7XHJcbiAgICBhbGlhczogJ29ubGluZUVuYWJsZWQnLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IG9ubGluZUVuYWJsZWQkID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMub25saW5lRW5hYmxlZElucHV0JCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgYXJpYUlucHV0ID0gaW5wdXQ8UGFydGlhbDxBcmlhQXR0cmlidXRlcz4+KHt9LCB7IGFsaWFzOiAnYXJpYScgfSk7XHJcbiAgcmVhZG9ubHkgYXJpYSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmFyaWFJbnB1dCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgaHJlZldpdGhQYXJhbXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBocmVmID0gdGhpcy5ocmVmKCk7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucXVlcnlQYXJhbXMoKTtcclxuICAgIGlmIChocmVmICYmIHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgIHJldHVybiBSZHRTdHJpbmdVdGlscy5hcHBlbmRRdWVyeVBhcmFtcyhocmVmLCBxdWVyeVBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaHJlZjtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFyaWFSZW5kZXJFZmZlY3QgPSBhZnRlclJlbmRlckVmZmVjdCh7XHJcbiAgICB3cml0ZTogKCkgPT4gdGhpcy51cGRhdGVBcmlhQXR0cmlidXRlcyh0aGlzLmFyaWEoKSksXHJcbiAgfSk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJlYWRvbmx5IGNsaWNrJCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzRWxlbWVudCgpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgY2FuRm9jdXMoKTogUmR0Qm9vbGVhblJlc3VsdCB7XHJcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQoKSAmJiAhIXRoaXMuZm9jdXNFbGVtZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25DbGlja2VkKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3Qgb25saW5lRW5hYmxlZCQgPSB0aGlzLm9ubGluZUVuYWJsZWQkKCk7XHJcbiAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQoKTtcclxuICAgIGlmIChvbmxpbmVFbmFibGVkJCkge1xyXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRydWUsIFJkdEJ1dHRvbkJhc2UuT05MSU5FX0VOQUJMRURfS0VZKTtcclxuICAgICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUodHJ1ZSwgUmR0QnV0dG9uQmFzZS5PTkxJTkVfRU5BQkxFRF9LRVkpO1xyXG4gICAgICBjb25zdCBvYnNlcnZlciA9IHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uQ2xpY2tQZXJtaXNzaW9uQWxsb3dlZCgkZXZlbnQpO1xyXG4gICAgICAgICAgdGhpcy5maW5pc2hPbmxpbmVDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmeUFjY2Vzc0RlbmllZChlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmZpbmlzaE9ubGluZUNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5maW5pc2hPbmxpbmVDaGVjaygpLFxyXG4gICAgICB9O1xyXG4gICAgICBvbmxpbmVFbmFibGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShvYnNlcnZlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVtaXRBbmRTdG9wUHJvcCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0QW5kU3RvcFByb3AoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCBuZ0hyZWYgPSB0aGlzLm5nSHJlZigpO1xyXG4gICAgY29uc3QgaHJlZiA9IHRoaXMuaHJlZigpO1xyXG4gICAgY29uc3QgcHJvcGFnYXRlID0gdGhpcy5wcm9wYWdhdGUoKTtcclxuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCgpO1xyXG4gICAgLy8gc3RvcFByb3BhZ2F0aW9uIHByZXZlbnRzIHJvdXRlckxpbmtzIGZyb20gd29ya2luZ1xyXG4gICAgaWYgKCFwcm9wYWdhdGUgJiYgIW5nSHJlZiAmJiAhaHJlZikge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWRpc2FibGVkICYmICFuZ0hyZWYgJiYgIWhyZWYpIHtcclxuICAgICAgdGhpcy5jbGljayQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNsaWNrUGVybWlzc2lvbkFsbG93ZWQoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCBwcm9wYWdhdGUgPSB0aGlzLnByb3BhZ2F0ZSgpO1xyXG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCk7XHJcbiAgICBpZiAoIXByb3BhZ2F0ZSkge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGVPckVtaXQoJGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVPckVtaXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IG5nSHJlZiA9IHRoaXMubmdIcmVmKCk7XHJcbiAgICBjb25zdCBocmVmID0gdGhpcy5ocmVmKCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zKCk7XHJcbiAgICBjb25zdCBzdGF0ZVBhcmFtcyA9IHRoaXMuc3RhdGVQYXJhbXMoKTtcclxuXHJcbiAgICBpZiAobmdIcmVmKSB7XHJcbiAgICAgIGlmICh0YXJnZXQgIT09ICdfc2VsZicpIHtcclxuICAgICAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBSZHRTdHJpbmdVdGlscy5jcmVhdGVBYnNvbHV0ZVVybChcclxuICAgICAgICAgIG5nSHJlZixcclxuICAgICAgICAgIHRoaXMuYmFzZUhyZWZcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHBhdGhXaXRoUGFyYW1zID0gUmR0U3RyaW5nVXRpbHMuYXBwZW5kUXVlcnlQYXJhbXMoXHJcbiAgICAgICAgICBhYnNvbHV0ZVBhdGgsXHJcbiAgICAgICAgICBxdWVyeVBhcmFtc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgd2luZG93Lm9wZW4ocGF0aFdpdGhQYXJhbXMsIHRhcmdldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW25nSHJlZl0sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyxcclxuICAgICAgICAgIHN0YXRlOiBzdGF0ZVBhcmFtcyA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoaHJlZikge1xyXG4gICAgICBjb25zdCBwYXRoV2l0aFBhcmFtcyA9IFJkdFN0cmluZ1V0aWxzLmFwcGVuZFF1ZXJ5UGFyYW1zKFxyXG4gICAgICAgIGhyZWYsXHJcbiAgICAgICAgcXVlcnlQYXJhbXNcclxuICAgICAgKTtcclxuICAgICAgd2luZG93Lm9wZW4ocGF0aFdpdGhQYXJhbXMsIHRhcmdldCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsaWNrJC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm90aWZ5QWNjZXNzRGVuaWVkKGVycm9yPzogdW5rbm93bikge1xyXG4gICAgaWYgKHRoaXMubm90aWZpY2F0aW9uU2VydmljZSkge1xyXG4gICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFjY2Vzc0RlbmllZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaE9ubGluZUNoZWNrKCkge1xyXG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKGZhbHNlLCBSZHRCdXR0b25CYXNlLk9OTElORV9FTkFCTEVEX0tFWSk7XHJcbiAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShmYWxzZSwgUmR0QnV0dG9uQmFzZS5PTkxJTkVfRU5BQkxFRF9LRVkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBcmlhQXR0cmlidXRlcyhhcmlhOiBQYXJ0aWFsPEFyaWFBdHRyaWJ1dGVzPikge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmFyaWFFbGVtZW50KCk7XHJcbiAgICBpZiAoZWwpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoYXJpYSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGVsLCBrZXkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwga2V5LCBTdHJpbmcodmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBPTkxJTkVfRU5BQkxFRF9LRVkgPSBTeW1ib2woKTtcclxufVxyXG4iXX0=","import { Directive, EventEmitter, inject, Input, Output, ViewContainerRef, } from '@angular/core';\nimport { RDT_BUTTON_BASE_PROVIDER } from '../button/rdt-button-constants';\nimport * as i0 from \"@angular/core\";\nexport class RdtButtonOutletDirective {\n buttonClass = inject(RDT_BUTTON_BASE_PROVIDER);\n _viewContainerRef = inject(ViewContainerRef);\n inputs = {};\n click$ = new EventEmitter();\n get instance() {\n return this._componentRef?.instance;\n }\n _componentRef;\n /**\n * A helper data structure that allows us to track inputs that were part of the\n * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones\n * that are no longer referenced.\n */\n _inputsUsed = new Map();\n constructor() {\n const injector = this._viewContainerRef.injector;\n this._componentRef = this._viewContainerRef.createComponent(this.buttonClass, {\n injector,\n });\n this.onInputsChanged();\n this._componentRef.instance.click$.subscribe(this.click$);\n }\n /** @nodoc */\n ngOnChanges() {\n this.onInputsChanged();\n }\n onInputsChanged() {\n for (const inputName of Object.keys(this.inputs)) {\n this._inputsUsed.set(inputName, true);\n }\n if (this._componentRef) {\n this._applyInputStateDiff(this._componentRef);\n }\n }\n /** @nodoc */\n _applyInputStateDiff(componentRef) {\n for (const [inputName, touched] of this._inputsUsed) {\n if (!touched) {\n // The input that was previously active no longer exists and needs to be set to undefined.\n componentRef.setInput(inputName, undefined);\n this._inputsUsed.delete(inputName);\n }\n else {\n // Since touched is true, it can be asserted that the inputs object is not empty.\n componentRef.setInput(inputName, this.inputs[inputName]);\n this._inputsUsed.set(inputName, false);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtButtonOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: RdtButtonOutletDirective, isStandalone: true, selector: \"[rdtButtonOutlet]\", inputs: { inputs: \"inputs\" }, outputs: { click$: \"click$\" }, exportAs: [\"rdtButtonOutlet\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: RdtButtonOutletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtButtonOutlet]',\n standalone: true,\n exportAs: 'rdtButtonOutlet',\n }]\n }], ctorParameters: () => [], propDecorators: { inputs: [{\n type: Input\n }], click$: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1vdXRsZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbGliL2J1dHRvbi1vdXRsZXQvcmR0LWJ1dHRvbi1vdXRsZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFXMUUsTUFBTSxPQUFPLHdCQUF3QjtJQUsxQixXQUFXLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFHOUQsTUFBTSxHQUEyQixFQUFFLENBQUM7SUFHcEMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFeEMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBQ08sYUFBYSxDQUF5QjtJQUU5Qzs7OztPQUlHO0lBQ0ssV0FBVyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRWpEO1FBQ0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3pELElBQUksQ0FBQyxXQUFXLEVBQ2hCO1lBQ0UsUUFBUTtTQUNULENBQ3VCLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQUNMLG9CQUFvQixDQUFDLFlBQW1DO1FBQzlELEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLDBGQUEwRjtnQkFDMUYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixpRkFBaUY7Z0JBQ2pGLFlBQVksQ0FBQyxRQUFRLENBQ25CLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQWdDLENBQUMsQ0FDOUMsQ0FBQztnQkFDRixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQXJFVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7d0RBV0MsTUFBTTtzQkFETCxLQUFLO2dCQUlOLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUkRUX0JVVFRPTl9CQVNFX1BST1ZJREVSIH0gZnJvbSAnLi4vYnV0dG9uL3JkdC1idXR0b24tY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuICBSZHRCdXR0b25CYXNlSW5wdXRzSW50LFxyXG4gIFJkdEJ1dHRvbkJhc2VJbnQsXHJcbn0gZnJvbSAnLi4vYnV0dG9uL3JkdC1idXR0b24taW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3JkdEJ1dHRvbk91dGxldF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgZXhwb3J0QXM6ICdyZHRCdXR0b25PdXRsZXQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0QnV0dG9uT3V0bGV0RGlyZWN0aXZlPFxyXG4gIFRCdXR0b24gZXh0ZW5kcyBSZHRCdXR0b25CYXNlSW50LFxyXG4gIFRCdXR0b25JbnB1dHMgZXh0ZW5kcyBSZHRCdXR0b25CYXNlSW5wdXRzSW50ID0gUmR0QnV0dG9uQmFzZUlucHV0c0ludFxyXG4+IGltcGxlbWVudHMgT25DaGFuZ2VzXHJcbntcclxuICByZWFkb25seSBidXR0b25DbGFzcyA9IGluamVjdChSRFRfQlVUVE9OX0JBU0VfUFJPVklERVIpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGlucHV0czogUGFydGlhbDxUQnV0dG9uSW5wdXRzPiA9IHt9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbGljayQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIGdldCBpbnN0YW5jZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY/Lmluc3RhbmNlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VEJ1dHRvbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgaGVscGVyIGRhdGEgc3RydWN0dXJlIHRoYXQgYWxsb3dzIHVzIHRvIHRyYWNrIGlucHV0cyB0aGF0IHdlcmUgcGFydCBvZiB0aGVcclxuICAgKiBuZ0NvbXBvbmVudE91dGxldElucHV0cyBleHByZXNzaW9uLiBUcmFja2luZyBpbnB1dHMgaXMgbmVjZXNzYXJ5IGZvciBwcm9wZXIgcmVtb3ZhbCBvZiBvbmVzXHJcbiAgICogdGhhdCBhcmUgbm8gbG9uZ2VyIHJlZmVyZW5jZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5wdXRzVXNlZCA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzLFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5qZWN0b3IsXHJcbiAgICAgIH1cclxuICAgICkgYXMgQ29tcG9uZW50UmVmPFRCdXR0b24+O1xyXG4gICAgdGhpcy5vbklucHV0c0NoYW5nZWQoKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5jbGljayQuc3Vic2NyaWJlKHRoaXMuY2xpY2skKTtcclxuICB9XHJcblxyXG4gIC8qKiBAbm9kb2MgKi9cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMub25JbnB1dHNDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uSW5wdXRzQ2hhbmdlZCgpIHtcclxuICAgIGZvciAoY29uc3QgaW5wdXROYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKSkge1xyXG4gICAgICB0aGlzLl9pbnB1dHNVc2VkLnNldChpbnB1dE5hbWUsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9hcHBseUlucHV0U3RhdGVEaWZmKHRoaXMuX2NvbXBvbmVudFJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQG5vZG9jICovXHJcbiAgcHJpdmF0ZSBfYXBwbHlJbnB1dFN0YXRlRGlmZihjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPikge1xyXG4gICAgZm9yIChjb25zdCBbaW5wdXROYW1lLCB0b3VjaGVkXSBvZiB0aGlzLl9pbnB1dHNVc2VkKSB7XHJcbiAgICAgIGlmICghdG91Y2hlZCkge1xyXG4gICAgICAgIC8vIFRoZSBpbnB1dCB0aGF0IHdhcyBwcmV2aW91c2x5IGFjdGl2ZSBubyBsb25nZXIgZXhpc3RzIGFuZCBuZWVkcyB0byBiZSBzZXQgdG8gdW5kZWZpbmVkLlxyXG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChpbnB1dE5hbWUsIHVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5faW5wdXRzVXNlZC5kZWxldGUoaW5wdXROYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBTaW5jZSB0b3VjaGVkIGlzIHRydWUsIGl0IGNhbiBiZSBhc3NlcnRlZCB0aGF0IHRoZSBpbnB1dHMgb2JqZWN0IGlzIG5vdCBlbXB0eS5cclxuICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXHJcbiAgICAgICAgICBpbnB1dE5hbWUsXHJcbiAgICAgICAgICB0aGlzLmlucHV0c1tpbnB1dE5hbWUgYXMga2V5b2YgVEJ1dHRvbklucHV0c11cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2lucHV0c1VzZWQuc2V0KGlucHV0TmFtZSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbmdyZHQtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|