@ngrdt/button 0.0.1 → 0.0.17

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/esm2022/index.mjs CHANGED
@@ -2,4 +2,5 @@ export * from './lib/button/rdt-button-base';
2
2
  export * from './lib/button/rdt-button-constants';
3
3
  export * from './lib/button/rdt-button-int';
4
4
  export * from './lib/button/rdt-button-notification.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvYnV0dG9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhDQUE4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL3JkdC1idXR0b24tYmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9yZHQtYnV0dG9uLWNvbnN0YW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9yZHQtYnV0dG9uLWludCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9yZHQtYnV0dG9uLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuIl19
5
+ export * from './lib/button-outlet/rdt-button-outlet.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvYnV0dG9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9idXR0b24vcmR0LWJ1dHRvbi1iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL3JkdC1idXR0b24tY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL3JkdC1idXR0b24taW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL3JkdC1idXR0b24tbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uLW91dGxldC9yZHQtYnV0dG9uLW91dGxldC5kaXJlY3RpdmUnO1xyXG4iXX0=
@@ -1,6 +1,6 @@
1
- import { booleanAttribute, ChangeDetectorRef, Directive, ElementRef, EventEmitter, inject, Input, numberAttribute, Output, } from '@angular/core';
1
+ import { booleanAttribute, ChangeDetectorRef, Directive, ElementRef, EventEmitter, inject, Input, numberAttribute, Output, Renderer2, } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
- import { RdtStringUtils } from '@ngrdt/utils';
3
+ import { RdtStringUtils, } from '@ngrdt/utils';
4
4
  import { take } from 'rxjs';
5
5
  import { RDT_BUTTON_DEFAULT_TAB_INDEX, RDT_BUTTON_DEFAULT_TARGET, RDT_BUTTON_SETTER_KEY, } from './rdt-button-constants';
6
6
  import { PlatformLocation } from '@angular/common';
@@ -10,11 +10,18 @@ export class RdtButtonBase {
10
10
  cd = inject(ChangeDetectorRef);
11
11
  router = inject(Router);
12
12
  baseHref = inject(PlatformLocation).getBaseHrefFromDOM();
13
+ renderer = inject(Renderer2);
13
14
  notificationService;
14
15
  internalDisabledMap = {};
15
16
  internalLoadingMap = {};
16
17
  hrefWithParams;
17
- get buttonEl() {
18
+ get focusElement() {
19
+ return this.elRef?.nativeElement ?? null;
20
+ }
21
+ get ariaElement() {
22
+ return this.elRef?.nativeElement ?? null;
23
+ }
24
+ get anchorElement() {
18
25
  return this.elRef?.nativeElement ?? null;
19
26
  }
20
27
  set disabled(value) {
@@ -96,6 +103,14 @@ export class RdtButtonBase {
96
103
  return this._icon;
97
104
  }
98
105
  _icon;
106
+ set label(value) {
107
+ this._label = value;
108
+ this.cd.markForCheck();
109
+ }
110
+ get label() {
111
+ return this._label;
112
+ }
113
+ _label;
99
114
  set dataTestId(value) {
100
115
  this._dataTestId = value;
101
116
  this.cd.markForCheck();
@@ -112,7 +127,18 @@ export class RdtButtonBase {
112
127
  return this._onlineEnabled$;
113
128
  }
114
129
  _onlineEnabled$;
130
+ set aria(value) {
131
+ this._aria = value;
132
+ this.updateAriaAttributes();
133
+ }
134
+ get aria() {
135
+ return this._aria;
136
+ }
137
+ _aria = {};
115
138
  click$ = new EventEmitter();
139
+ ngAfterViewInit() {
140
+ this.updateAriaAttributes();
141
+ }
116
142
  setDisabled(key, disabled) {
117
143
  this.internalDisabledMap[key] = disabled;
118
144
  this.updateDisabledValue();
@@ -122,7 +148,7 @@ export class RdtButtonBase {
122
148
  this.updateLoadingValue();
123
149
  }
124
150
  focus() {
125
- this.buttonEl?.focus();
151
+ this.focusElement?.focus();
126
152
  }
127
153
  onClicked($event) {
128
154
  if (this._onlineEnabled$) {
@@ -222,9 +248,22 @@ export class RdtButtonBase {
222
248
  updateTabIndexValue() {
223
249
  this.cd.markForCheck();
224
250
  }
251
+ updateAriaAttributes() {
252
+ const el = this.ariaElement;
253
+ if (this.ariaElement) {
254
+ Object.entries(this._aria).forEach(([key, value]) => {
255
+ if (value === null || value === undefined) {
256
+ this.renderer.removeAttribute(el, key);
257
+ }
258
+ else {
259
+ this.renderer.setAttribute(el, key, String(value));
260
+ }
261
+ });
262
+ }
263
+ }
225
264
  static ONLINE_ENABLED_KEY = Symbol();
226
265
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
227
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.7", type: RdtButtonBase, inputs: { disabled: ["disabled", "disabled", booleanAttribute], loading: ["loading", "loading", booleanAttribute], propagate: ["propagate", "propagate", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", numberAttribute], href: "href", ngHref: "ngHref", target: "target", stateParams: "stateParams", queryParams: "queryParams", download: "download", icon: "icon", dataTestId: "dataTestId", onlineEnabled$: "onlineEnabled$" }, outputs: { click$: "click$" }, ngImport: i0 });
266
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.7", type: RdtButtonBase, inputs: { disabled: ["disabled", "disabled", booleanAttribute], loading: ["loading", "loading", booleanAttribute], propagate: ["propagate", "propagate", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", numberAttribute], href: "href", ngHref: "ngHref", target: "target", stateParams: "stateParams", queryParams: "queryParams", download: "download", icon: "icon", label: "label", dataTestId: "dataTestId", onlineEnabled$: "onlineEnabled$", aria: "aria" }, outputs: { click$: "click$" }, ngImport: i0 });
228
267
  }
229
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonBase, decorators: [{
230
269
  type: Directive
@@ -254,11 +293,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
254
293
  type: Input
255
294
  }], icon: [{
256
295
  type: Input
296
+ }], label: [{
297
+ type: Input
257
298
  }], dataTestId: [{
258
299
  type: Input
259
300
  }], onlineEnabled$: [{
260
301
  type: Input
302
+ }], aria: [{
303
+ type: Input
261
304
  }], click$: [{
262
305
  type: Output
263
306
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbGliL2J1dHRvbi9yZHQtYnV0dG9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUduRCxNQUFNLE9BQWdCLGFBQWE7SUFHZCxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBRXpELG1CQUFtQixDQUFtQztJQUUvRCxtQkFBbUIsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELGtCQUFrQixHQUE0QixFQUFFLENBQUM7SUFDakQsY0FBYyxDQUFtQjtJQUUzQyxJQUFjLFFBQVE7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUM7SUFD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QkFXRixXQUFXO3NCQURkLEtBQUs7Z0JBV0YsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVdGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV0csTUFBTTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgbnVtYmVyQXR0cmlidXRlLFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmR0QnV0dG9uQmFzZUludCB9IGZyb20gJy4vcmR0LWJ1dHRvbi1pbnQnO1xyXG5pbXBvcnQgeyBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE51bGxhYmxlLCBXaW5kb3dPcGVuVGFyZ2V0VHlwZSwgUmR0U3RyaW5nVXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgUkRUX0JVVFRPTl9ERUZBVUxUX1RBQl9JTkRFWCxcclxuICBSRFRfQlVUVE9OX0RFRkFVTFRfVEFSR0VULFxyXG4gIFJEVF9CVVRUT05fU0VUVEVSX0tFWSxcclxufSBmcm9tICcuL3JkdC1idXR0b24tY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUmR0QnV0dG9uTm90aWZpY2F0aW9uU2VydmljZUludCB9IGZyb20gJy4vcmR0LWJ1dHRvbi1ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRCdXR0b25CYXNlPFRJY29uID0gc3RyaW5nPlxyXG4gIGltcGxlbWVudHMgUmR0QnV0dG9uQmFzZUludDxUSWNvbj5cclxue1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBlbFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFzZUhyZWYgPSBpbmplY3QoUGxhdGZvcm1Mb2NhdGlvbikuZ2V0QmFzZUhyZWZGcm9tRE9NKCk7XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlPzogUmR0QnV0dG9uTm90aWZpY2F0aW9uU2VydmljZUludDtcclxuXHJcbiAgcHJvdGVjdGVkIGludGVybmFsRGlzYWJsZWRNYXA6IFJlY29yZDxzeW1ib2wsIGJvb2xlYW4+ID0ge307XHJcbiAgcHJvdGVjdGVkIGludGVybmFsTG9hZGluZ01hcDogUmVjb3JkPHN5bWJvbCwgYm9vbGVhbj4gPSB7fTtcclxuICBwcm90ZWN0ZWQgaHJlZldpdGhQYXJhbXM6IE51bGxhYmxlPHN0cmluZz47XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgYnV0dG9uRWwoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmVsUmVmPy5uYXRpdmVFbGVtZW50ID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0RGlzYWJsZWQoUkRUX0JVVFRPTl9TRVRURVJfS0VZLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXHJcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0TG9hZGluZyhSRFRfQlVUVE9OX1NFVFRFUl9LRVksIHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBwcm9wYWdhdGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcclxuICBzZXQgdGFiSW5kZXgodmFsdWU6IE51bGxhYmxlPG51bWJlcj4pIHtcclxuICAgIHRoaXMuX3RhYkluZGV4ID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZVRhYkluZGV4VmFsdWUoKTtcclxuICB9XHJcbiAgZ2V0IHRhYkluZGV4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIF90YWJJbmRleDogTnVsbGFibGU8bnVtYmVyPiA9IFJEVF9CVVRUT05fREVGQVVMVF9UQUJfSU5ERVg7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGhyZWYodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX2hyZWYgPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlSHJlZldpdGhRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuICBnZXQgaHJlZigpIHtcclxuICAgIHJldHVybiB0aGlzLl9ocmVmO1xyXG4gIH1cclxuICBwcml2YXRlIF9ocmVmOiBOdWxsYWJsZTxzdHJpbmc+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBuZ0hyZWYodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX25nSHJlZiA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IG5nSHJlZigpIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0hyZWY7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25nSHJlZjogTnVsbGFibGU8c3RyaW5nPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdGFyZ2V0KHZhbHVlOiBXaW5kb3dPcGVuVGFyZ2V0VHlwZSkge1xyXG4gICAgdGhpcy5fdGFyZ2V0ID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgdGFyZ2V0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFyZ2V0OiBXaW5kb3dPcGVuVGFyZ2V0VHlwZSA9IFJEVF9CVVRUT05fREVGQVVMVF9UQVJHRVQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHN0YXRlUGFyYW1zKHZhbHVlOiBOdWxsYWJsZTxQYXJhbXM+KSB7XHJcbiAgICB0aGlzLl9zdGF0ZVBhcmFtcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IHN0YXRlUGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlUGFyYW1zO1xyXG4gIH1cclxuICBwcml2YXRlIF9zdGF0ZVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IE51bGxhYmxlPFBhcmFtcz4pIHtcclxuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUhyZWZXaXRoUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zO1xyXG4gIH1cclxuICBwcml2YXRlIF9xdWVyeVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZG93bmxvYWQodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX2Rvd25sb2FkID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgZG93bmxvYWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG93bmxvYWQgPz8gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBwcml2YXRlIF9kb3dubG9hZDogTnVsbGFibGU8c3RyaW5nPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaWNvbih2YWx1ZTogTnVsbGFibGU8VEljb24+KSB7XHJcbiAgICB0aGlzLl9pY29uID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgaWNvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pY29uO1xyXG4gIH1cclxuICBwcml2YXRlIF9pY29uOiBOdWxsYWJsZTxUSWNvbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGFUZXN0SWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGF0YVRlc3RJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IGRhdGFUZXN0SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVRlc3RJZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGF0YVRlc3RJZCA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvbmxpbmVFbmFibGVkJCh2YWx1ZTogTnVsbGFibGU8T2JzZXJ2YWJsZTxib29sZWFuPj4pIHtcclxuICAgIHRoaXMuX29ubGluZUVuYWJsZWQkID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgb25saW5lRW5hYmxlZCQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25saW5lRW5hYmxlZCQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29ubGluZUVuYWJsZWQkOiBOdWxsYWJsZTxPYnNlcnZhYmxlPGJvb2xlYW4+PjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgY2xpY2skID0gbmV3IEV2ZW50RW1pdHRlcjxQb2ludGVyRXZlbnQ+KCk7XHJcblxyXG4gIHNldERpc2FibGVkKGtleTogc3ltYm9sLCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcm5hbERpc2FibGVkTWFwW2tleV0gPSBkaXNhYmxlZDtcclxuICAgIHRoaXMudXBkYXRlRGlzYWJsZWRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhrZXk6IHN5bWJvbCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaW50ZXJuYWxMb2FkaW5nTWFwW2tleV0gPSBkaXNhYmxlZDtcclxuICAgIHRoaXMudXBkYXRlTG9hZGluZ1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuYnV0dG9uRWw/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25DbGlja2VkKCRldmVudDogUG9pbnRlckV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5fb25saW5lRW5hYmxlZCQpIHtcclxuICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzYWJsZWQoUmR0QnV0dG9uQmFzZS5PTkxJTkVfRU5BQkxFRF9LRVksIHRydWUpO1xyXG4gICAgICB0aGlzLnNldExvYWRpbmcoUmR0QnV0dG9uQmFzZS5PTkxJTkVfRU5BQkxFRF9LRVksIHRydWUpO1xyXG4gICAgICBjb25zdCBvYnNlcnZlciA9IHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uQ2xpY2tQZXJtaXNzaW9uQWxsb3dlZCgkZXZlbnQpO1xyXG4gICAgICAgICAgdGhpcy5maW5pc2hPbmxpbmVDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmeUFjY2Vzc0RlbmllZChlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmZpbmlzaE9ubGluZUNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5maW5pc2hPbmxpbmVDaGVjaygpLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLl9vbmxpbmVFbmFibGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShvYnNlcnZlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVtaXRBbmRTdG9wUHJvcCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0QW5kU3RvcFByb3AoJGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcclxuICAgIC8vIHN0b3BQcm9wYWdhdGlvbiBwcmV2ZW50cyByb3V0ZXJMaW5rcyBmcm9tIHdvcmtpbmdcclxuICAgIGlmICghdGhpcy5wcm9wYWdhdGUgJiYgIXRoaXMuX25nSHJlZiAmJiAhdGhpcy5faHJlZikge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkICYmICF0aGlzLl9uZ0hyZWYgJiYgIXRoaXMuX2hyZWYpIHtcclxuICAgICAgdGhpcy5jbGljayQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNsaWNrUGVybWlzc2lvbkFsbG93ZWQoJGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5wcm9wYWdhdGUpIHtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRlT3JFbWl0KCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlT3JFbWl0KGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLl9uZ0hyZWYpIHtcclxuICAgICAgaWYgKHRoaXMuX3RhcmdldCAhPT0gJ19zZWxmJykge1xyXG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IFJkdFN0cmluZ1V0aWxzLmNyZWF0ZUFic29sdXRlVXJsKFxyXG4gICAgICAgICAgdGhpcy5fbmdIcmVmLFxyXG4gICAgICAgICAgdGhpcy5iYXNlSHJlZlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgcGF0aFdpdGhQYXJhbXMgPSBSZHRTdHJpbmdVdGlscy5hcHBlbmRRdWVyeVBhcmFtcyhcclxuICAgICAgICAgIGFic29sdXRlUGF0aCxcclxuICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKHBhdGhXaXRoUGFyYW1zLCB0aGlzLl90YXJnZXQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLl9uZ0hyZWZdLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5fcXVlcnlQYXJhbXMsXHJcbiAgICAgICAgICBzdGF0ZTogdGhpcy5fc3RhdGVQYXJhbXMgPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hyZWYpIHtcclxuICAgICAgY29uc3QgcGF0aFdpdGhQYXJhbXMgPSBSZHRTdHJpbmdVdGlscy5hcHBlbmRRdWVyeVBhcmFtcyhcclxuICAgICAgICB0aGlzLl9ocmVmLFxyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXNcclxuICAgICAgKTtcclxuICAgICAgd2luZG93Lm9wZW4ocGF0aFdpdGhQYXJhbXMsIHRoaXMuX3RhcmdldCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsaWNrJC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm90aWZ5QWNjZXNzRGVuaWVkKGVycm9yPzogdW5rbm93bikge1xyXG4gICAgaWYgKHRoaXMubm90aWZpY2F0aW9uU2VydmljZSkge1xyXG4gICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFjY2Vzc0RlbmllZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaE9ubGluZUNoZWNrKCkge1xyXG4gICAgdGhpcy5zZXREaXNhYmxlZChSZHRCdXR0b25CYXNlLk9OTElORV9FTkFCTEVEX0tFWSwgZmFsc2UpO1xyXG4gICAgdGhpcy5zZXRMb2FkaW5nKFJkdEJ1dHRvbkJhc2UuT05MSU5FX0VOQUJMRURfS0VZLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZURpc2FibGVkVmFsdWUoKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IE9iamVjdC52YWx1ZXModGhpcy5pbnRlcm5hbERpc2FibGVkTWFwKS5zb21lKFxyXG4gICAgICAodmFsdWUpID0+IHZhbHVlXHJcbiAgICApO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlTG9hZGluZ1ZhbHVlKCkge1xyXG4gICAgdGhpcy5fbG9hZGluZyA9IE9iamVjdC52YWx1ZXModGhpcy5pbnRlcm5hbExvYWRpbmdNYXApLnNvbWUoXHJcbiAgICAgICh2YWx1ZSkgPT4gdmFsdWVcclxuICAgICk7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVIcmVmV2l0aFF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgaWYgKHRoaXMuX2hyZWYgJiYgdGhpcy5fcXVlcnlQYXJhbXMpIHtcclxuICAgICAgdGhpcy5ocmVmV2l0aFBhcmFtcyA9IFJkdFN0cmluZ1V0aWxzLmFwcGVuZFF1ZXJ5UGFyYW1zKFxyXG4gICAgICAgIHRoaXMuX2hyZWYsXHJcbiAgICAgICAgdGhpcy5fcXVlcnlQYXJhbXNcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaHJlZldpdGhQYXJhbXMgPSB0aGlzLl9ocmVmO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVUYWJJbmRleFZhbHVlKCkge1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgT05MSU5FX0VOQUJMRURfS0VZID0gU3ltYm9sKCk7XHJcbn1cclxuIl19
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbGliL2J1dHRvbi9yZHQtYnV0dG9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUdMLGNBQWMsR0FFZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUduRCxNQUFNLE9BQWdCLGFBQWE7SUFHZCxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pELFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFN0IsbUJBQW1CLENBQW1DO0lBRS9ELG1CQUFtQixHQUE0QixFQUFFLENBQUM7SUFDbEQsa0JBQWtCLEdBQTRCLEVBQUUsQ0FBQztJQUNqRCxjQUFjLENBQW1CO0lBRTNDLElBQUksWUFBWTtRQUNk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QUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVXRDLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJbEMsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFXakMsSUFBSTtzQkFEUCxLQUFLO2dCQVdGLE1BQU07c0JBRFQsS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUs7Z0JBV0YsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFdBQVc7c0JBRGQsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLO2dCQVdGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsY0FBYztzQkFEakIsS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBV0csTUFBTTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBudW1iZXJBdHRyaWJ1dGUsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmR0QnV0dG9uQmFzZUludCB9IGZyb20gJy4vcmR0LWJ1dHRvbi1pbnQnO1xyXG5pbXBvcnQgeyBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7XHJcbiAgTnVsbGFibGUsXHJcbiAgV2luZG93T3BlblRhcmdldFR5cGUsXHJcbiAgUmR0U3RyaW5nVXRpbHMsXHJcbiAgQXJpYUF0dHJpYnV0ZXMsXHJcbn0gZnJvbSAnQG5ncmR0L3V0aWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIFJEVF9CVVRUT05fREVGQVVMVF9UQUJfSU5ERVgsXHJcbiAgUkRUX0JVVFRPTl9ERUZBVUxUX1RBUkdFVCxcclxuICBSRFRfQlVUVE9OX1NFVFRFUl9LRVksXHJcbn0gZnJvbSAnLi9yZHQtYnV0dG9uLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFJkdEJ1dHRvbk5vdGlmaWNhdGlvblNlcnZpY2VJbnQgfSBmcm9tICcuL3JkdC1idXR0b24tbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0QnV0dG9uQmFzZTxUSWNvbiA9IHN0cmluZz5cclxuICBpbXBsZW1lbnRzIFJkdEJ1dHRvbkJhc2VJbnQ8VEljb24+LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJhc2VIcmVmID0gaW5qZWN0KFBsYXRmb3JtTG9jYXRpb24pLmdldEJhc2VIcmVmRnJvbURPTSgpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZT86IFJkdEJ1dHRvbk5vdGlmaWNhdGlvblNlcnZpY2VJbnQ7XHJcblxyXG4gIHByb3RlY3RlZCBpbnRlcm5hbERpc2FibGVkTWFwOiBSZWNvcmQ8c3ltYm9sLCBib29sZWFuPiA9IHt9O1xyXG4gIHByb3RlY3RlZCBpbnRlcm5hbExvYWRpbmdNYXA6IFJlY29yZDxzeW1ib2wsIGJvb2xlYW4+ID0ge307XHJcbiAgcHJvdGVjdGVkIGhyZWZXaXRoUGFyYW1zOiBOdWxsYWJsZTxzdHJpbmc+O1xyXG5cclxuICBnZXQgZm9jdXNFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5lbFJlZj8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFyaWFFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5lbFJlZj8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFuY2hvckVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmVsUmVmPy5uYXRpdmVFbGVtZW50ID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0RGlzYWJsZWQoUkRUX0JVVFRPTl9TRVRURVJfS0VZLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXHJcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0TG9hZGluZyhSRFRfQlVUVE9OX1NFVFRFUl9LRVksIHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBwcm9wYWdhdGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcclxuICBzZXQgdGFiSW5kZXgodmFsdWU6IE51bGxhYmxlPG51bWJlcj4pIHtcclxuICAgIHRoaXMuX3RhYkluZGV4ID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZVRhYkluZGV4VmFsdWUoKTtcclxuICB9XHJcbiAgZ2V0IHRhYkluZGV4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIF90YWJJbmRleDogTnVsbGFibGU8bnVtYmVyPiA9IFJEVF9CVVRUT05fREVGQVVMVF9UQUJfSU5ERVg7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGhyZWYodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX2hyZWYgPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlSHJlZldpdGhRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuICBnZXQgaHJlZigpIHtcclxuICAgIHJldHVybiB0aGlzLl9ocmVmO1xyXG4gIH1cclxuICBwcml2YXRlIF9ocmVmOiBOdWxsYWJsZTxzdHJpbmc+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBuZ0hyZWYodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX25nSHJlZiA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IG5nSHJlZigpIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0hyZWY7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25nSHJlZjogTnVsbGFibGU8c3RyaW5nPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdGFyZ2V0KHZhbHVlOiBXaW5kb3dPcGVuVGFyZ2V0VHlwZSkge1xyXG4gICAgdGhpcy5fdGFyZ2V0ID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgdGFyZ2V0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFyZ2V0OiBXaW5kb3dPcGVuVGFyZ2V0VHlwZSA9IFJEVF9CVVRUT05fREVGQVVMVF9UQVJHRVQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHN0YXRlUGFyYW1zKHZhbHVlOiBOdWxsYWJsZTxQYXJhbXM+KSB7XHJcbiAgICB0aGlzLl9zdGF0ZVBhcmFtcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IHN0YXRlUGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlUGFyYW1zO1xyXG4gIH1cclxuICBwcml2YXRlIF9zdGF0ZVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IE51bGxhYmxlPFBhcmFtcz4pIHtcclxuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUhyZWZXaXRoUXVlcnlQYXJhbXMoKTtcclxuICB9XHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zO1xyXG4gIH1cclxuICBwcml2YXRlIF9xdWVyeVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZG93bmxvYWQodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuX2Rvd25sb2FkID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgZG93bmxvYWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG93bmxvYWQgPz8gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBwcml2YXRlIF9kb3dubG9hZDogTnVsbGFibGU8c3RyaW5nPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaWNvbih2YWx1ZTogTnVsbGFibGU8VEljb24+KSB7XHJcbiAgICB0aGlzLl9pY29uID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgaWNvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pY29uO1xyXG4gIH1cclxuICBwcml2YXRlIF9pY29uOiBOdWxsYWJsZTxUSWNvbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxhYmVsKHZhbHVlOiBOdWxsYWJsZTxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLl9sYWJlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgZ2V0IGxhYmVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xyXG4gIH1cclxuICBwcml2YXRlIF9sYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0YVRlc3RJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9kYXRhVGVzdElkID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBnZXQgZGF0YVRlc3RJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhVGVzdElkO1xyXG4gIH1cclxuICBwcml2YXRlIF9kYXRhVGVzdElkID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG9ubGluZUVuYWJsZWQkKHZhbHVlOiBOdWxsYWJsZTxPYnNlcnZhYmxlPGJvb2xlYW4+Pikge1xyXG4gICAgdGhpcy5fb25saW5lRW5hYmxlZCQgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG4gIGdldCBvbmxpbmVFbmFibGVkJCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9vbmxpbmVFbmFibGVkJDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb25saW5lRW5hYmxlZCQ6IE51bGxhYmxlPE9ic2VydmFibGU8Ym9vbGVhbj4+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhcmlhKHZhbHVlOiBQYXJ0aWFsPEFyaWFBdHRyaWJ1dGVzPikge1xyXG4gICAgdGhpcy5fYXJpYSA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVBcmlhQXR0cmlidXRlcygpO1xyXG4gIH1cclxuICBnZXQgYXJpYSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcmlhO1xyXG4gIH1cclxuICBwcml2YXRlIF9hcmlhOiBQYXJ0aWFsPEFyaWFBdHRyaWJ1dGVzPiA9IHt9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBjbGljayQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQXJpYUF0dHJpYnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKGtleTogc3ltYm9sLCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcm5hbERpc2FibGVkTWFwW2tleV0gPSBkaXNhYmxlZDtcclxuICAgIHRoaXMudXBkYXRlRGlzYWJsZWRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhrZXk6IHN5bWJvbCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaW50ZXJuYWxMb2FkaW5nTWFwW2tleV0gPSBkaXNhYmxlZDtcclxuICAgIHRoaXMudXBkYXRlTG9hZGluZ1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXNFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uQ2xpY2tlZCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLl9vbmxpbmVFbmFibGVkJCkge1xyXG4gICAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5zZXREaXNhYmxlZChSZHRCdXR0b25CYXNlLk9OTElORV9FTkFCTEVEX0tFWSwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuc2V0TG9hZGluZyhSZHRCdXR0b25CYXNlLk9OTElORV9FTkFCTEVEX0tFWSwgdHJ1ZSk7XHJcbiAgICAgIGNvbnN0IG9ic2VydmVyID0ge1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25DbGlja1Blcm1pc3Npb25BbGxvd2VkKCRldmVudCk7XHJcbiAgICAgICAgICB0aGlzLmZpbmlzaE9ubGluZUNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZ5QWNjZXNzRGVuaWVkKGVycm9yKTtcclxuICAgICAgICAgIHRoaXMuZmluaXNoT25saW5lQ2hlY2soKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmZpbmlzaE9ubGluZUNoZWNrKCksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuX29ubGluZUVuYWJsZWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG9ic2VydmVyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1pdEFuZFN0b3BQcm9wKCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRBbmRTdG9wUHJvcCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIC8vIHN0b3BQcm9wYWdhdGlvbiBwcmV2ZW50cyByb3V0ZXJMaW5rcyBmcm9tIHdvcmtpbmdcclxuICAgIGlmICghdGhpcy5wcm9wYWdhdGUgJiYgIXRoaXMuX25nSHJlZiAmJiAhdGhpcy5faHJlZikge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkICYmICF0aGlzLl9uZ0hyZWYgJiYgIXRoaXMuX2hyZWYpIHtcclxuICAgICAgdGhpcy5jbGljayQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNsaWNrUGVybWlzc2lvbkFsbG93ZWQoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMucHJvcGFnYXRlKSB7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0ZU9yRW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZU9yRW1pdChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuX25nSHJlZikge1xyXG4gICAgICBpZiAodGhpcy5fdGFyZ2V0ICE9PSAnX3NlbGYnKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gUmR0U3RyaW5nVXRpbHMuY3JlYXRlQWJzb2x1dGVVcmwoXHJcbiAgICAgICAgICB0aGlzLl9uZ0hyZWYsXHJcbiAgICAgICAgICB0aGlzLmJhc2VIcmVmXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBwYXRoV2l0aFBhcmFtcyA9IFJkdFN0cmluZ1V0aWxzLmFwcGVuZFF1ZXJ5UGFyYW1zKFxyXG4gICAgICAgICAgYWJzb2x1dGVQYXRoLFxyXG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgd2luZG93Lm9wZW4ocGF0aFdpdGhQYXJhbXMsIHRoaXMuX3RhcmdldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuX25nSHJlZl0sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLl9xdWVyeVBhcmFtcyxcclxuICAgICAgICAgIHN0YXRlOiB0aGlzLl9zdGF0ZVBhcmFtcyA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5faHJlZikge1xyXG4gICAgICBjb25zdCBwYXRoV2l0aFBhcmFtcyA9IFJkdFN0cmluZ1V0aWxzLmFwcGVuZFF1ZXJ5UGFyYW1zKFxyXG4gICAgICAgIHRoaXMuX2hyZWYsXHJcbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1xyXG4gICAgICApO1xyXG4gICAgICB3aW5kb3cub3BlbihwYXRoV2l0aFBhcmFtcywgdGhpcy5fdGFyZ2V0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xpY2skLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBub3RpZnlBY2Nlc3NEZW5pZWQoZXJyb3I/OiB1bmtub3duKSB7XHJcbiAgICBpZiAodGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKGVycm9yKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWNjZXNzRGVuaWVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluaXNoT25saW5lQ2hlY2soKSB7XHJcbiAgICB0aGlzLnNldERpc2FibGVkKFJkdEJ1dHRvbkJhc2UuT05MSU5FX0VOQUJMRURfS0VZLCBmYWxzZSk7XHJcbiAgICB0aGlzLnNldExvYWRpbmcoUmR0QnV0dG9uQmFzZS5PTkxJTkVfRU5BQkxFRF9LRVksIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGlzYWJsZWRWYWx1ZSgpIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gT2JqZWN0LnZhbHVlcyh0aGlzLmludGVybmFsRGlzYWJsZWRNYXApLnNvbWUoXHJcbiAgICAgICh2YWx1ZSkgPT4gdmFsdWVcclxuICAgICk7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMb2FkaW5nVmFsdWUoKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmludGVybmFsTG9hZGluZ01hcCkuc29tZShcclxuICAgICAgKHZhbHVlKSA9PiB2YWx1ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUhyZWZXaXRoUXVlcnlQYXJhbXMoKSB7XHJcbiAgICBpZiAodGhpcy5faHJlZiAmJiB0aGlzLl9xdWVyeVBhcmFtcykge1xyXG4gICAgICB0aGlzLmhyZWZXaXRoUGFyYW1zID0gUmR0U3RyaW5nVXRpbHMuYXBwZW5kUXVlcnlQYXJhbXMoXHJcbiAgICAgICAgdGhpcy5faHJlZixcclxuICAgICAgICB0aGlzLl9xdWVyeVBhcmFtc1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ocmVmV2l0aFBhcmFtcyA9IHRoaXMuX2hyZWY7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHVwZGF0ZVRhYkluZGV4VmFsdWUoKSB7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBcmlhQXR0cmlidXRlcygpIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5hcmlhRWxlbWVudDtcclxuICAgIGlmICh0aGlzLmFyaWFFbGVtZW50KSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX2FyaWEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShlbCwga2V5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsIGtleSwgU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgT05MSU5FX0VOQUJMRURfS0VZID0gU3ltYm9sKCk7XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvYnV0dG9uL3NyYy9saWIvYnV0dG9uL3JkdC1idXR0b24taW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE51bGxhYmxlLCBXaW5kb3dPcGVuVGFyZ2V0VHlwZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XHJcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdEJ1dHRvbkJhc2VJbnB1dHNJbnQ8VEljb24gPSBzdHJpbmc+IHtcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHByb3BhZ2F0ZTogYm9vbGVhbjtcclxuICB0YWJJbmRleDogTnVsbGFibGU8bnVtYmVyPjtcclxuICBocmVmOiBOdWxsYWJsZTxzdHJpbmc+O1xyXG4gIG5nSHJlZjogTnVsbGFibGU8c3RyaW5nPjtcclxuICB0YXJnZXQ6IFdpbmRvd09wZW5UYXJnZXRUeXBlO1xyXG4gIHN0YXRlUGFyYW1zOiBOdWxsYWJsZTxQYXJhbXM+O1xyXG4gIHF1ZXJ5UGFyYW1zOiBOdWxsYWJsZTxQYXJhbXM+O1xyXG4gIGRvd25sb2FkOiBOdWxsYWJsZTxzdHJpbmc+O1xyXG4gIGljb246IE51bGxhYmxlPFRJY29uPjtcclxuICBkYXRhVGVzdElkOiBzdHJpbmc7XHJcbiAgb25saW5lRW5hYmxlZCQ6IE51bGxhYmxlPE9ic2VydmFibGU8Ym9vbGVhbj4+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJkdEJ1dHRvbkJhc2VJbnQ8VEljb24gPSBzdHJpbmc+XHJcbiAgZXh0ZW5kcyBSZHRCdXR0b25CYXNlSW5wdXRzSW50PFRJY29uPiB7XHJcbiAgcmVhZG9ubHkgY2xpY2skOiBPYnNlcnZhYmxlPFBvaW50ZXJFdmVudD47XHJcblxyXG4gIHNldERpc2FibGVkKGtleTogc3ltYm9sLCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQ7XHJcbiAgc2V0TG9hZGluZyhrZXk6IHN5bWJvbCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xyXG4gIGZvY3VzKCk6IHZvaWQ7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvYnV0dG9uL3NyYy9saWIvYnV0dG9uL3JkdC1idXR0b24taW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBcmlhQXR0cmlidXRlcywgTnVsbGFibGUsIFdpbmRvd09wZW5UYXJnZXRUeXBlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZHRCdXR0b25CYXNlSW5wdXRzSW50PFRJY29uID0gc3RyaW5nPiB7XHJcbiAgbGFiZWw6IE51bGxhYmxlPHN0cmluZz47XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBwcm9wYWdhdGU6IGJvb2xlYW47XHJcbiAgdGFiSW5kZXg6IE51bGxhYmxlPG51bWJlcj47XHJcbiAgaHJlZjogTnVsbGFibGU8c3RyaW5nPjtcclxuICBuZ0hyZWY6IE51bGxhYmxlPHN0cmluZz47XHJcbiAgdGFyZ2V0OiBXaW5kb3dPcGVuVGFyZ2V0VHlwZTtcclxuICBzdGF0ZVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuICBxdWVyeVBhcmFtczogTnVsbGFibGU8UGFyYW1zPjtcclxuICBkb3dubG9hZDogTnVsbGFibGU8c3RyaW5nPjtcclxuICBpY29uOiBOdWxsYWJsZTxUSWNvbj47XHJcbiAgZGF0YVRlc3RJZDogc3RyaW5nO1xyXG4gIG9ubGluZUVuYWJsZWQkOiBOdWxsYWJsZTxPYnNlcnZhYmxlPGJvb2xlYW4+PjtcclxuICBhcmlhOiBQYXJ0aWFsPEFyaWFBdHRyaWJ1dGVzPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZHRCdXR0b25CYXNlSW50PFRJY29uID0gc3RyaW5nPlxyXG4gIGV4dGVuZHMgUmR0QnV0dG9uQmFzZUlucHV0c0ludDxUSWNvbj4ge1xyXG4gIHJlYWRvbmx5IGNsaWNrJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcclxuXHJcbiAgcmVhZG9ubHkgYW5jaG9yRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gIHJlYWRvbmx5IGZvY3VzRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gIHJlYWRvbmx5IGFyaWFFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcblxyXG4gIHNldERpc2FibGVkKGtleTogc3ltYm9sLCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQ7XHJcbiAgc2V0TG9hZGluZyhrZXk6IHN5bWJvbCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xyXG4gIGZvY3VzKCk6IHZvaWQ7XHJcbn1cclxuIl19
@@ -0,0 +1,69 @@
1
+ import { Directive, EventEmitter, inject, Input, Output, ViewContainerRef, } from '@angular/core';
2
+ import { RDT_BUTTON_BASE_PROVIDER } from '../button/rdt-button-constants';
3
+ import * as i0 from "@angular/core";
4
+ export class RdtButtonOutletDirective {
5
+ buttonClass = inject(RDT_BUTTON_BASE_PROVIDER);
6
+ _viewContainerRef = inject(ViewContainerRef);
7
+ inputs = {};
8
+ click$ = new EventEmitter();
9
+ get instance() {
10
+ return this._componentRef?.instance;
11
+ }
12
+ _componentRef;
13
+ /**
14
+ * A helper data structure that allows us to track inputs that were part of the
15
+ * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones
16
+ * that are no longer referenced.
17
+ */
18
+ _inputsUsed = new Map();
19
+ constructor() {
20
+ const injector = this._viewContainerRef.injector;
21
+ this._componentRef = this._viewContainerRef.createComponent(this.buttonClass, {
22
+ injector,
23
+ });
24
+ this.onInputsChanged();
25
+ this._componentRef.instance.click$.subscribe(this.click$);
26
+ }
27
+ /** @nodoc */
28
+ ngOnChanges() {
29
+ this.onInputsChanged();
30
+ }
31
+ onInputsChanged() {
32
+ for (const inputName of Object.keys(this.inputs)) {
33
+ this._inputsUsed.set(inputName, true);
34
+ }
35
+ if (this._componentRef) {
36
+ this._applyInputStateDiff(this._componentRef);
37
+ }
38
+ }
39
+ /** @nodoc */
40
+ _applyInputStateDiff(componentRef) {
41
+ for (const [inputName, touched] of this._inputsUsed) {
42
+ if (!touched) {
43
+ // The input that was previously active no longer exists and needs to be set to undefined.
44
+ componentRef.setInput(inputName, undefined);
45
+ this._inputsUsed.delete(inputName);
46
+ }
47
+ else {
48
+ // Since touched is true, it can be asserted that the inputs object is not empty.
49
+ componentRef.setInput(inputName, this.inputs[inputName]);
50
+ this._inputsUsed.set(inputName, false);
51
+ }
52
+ }
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
55
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtButtonOutletDirective, isStandalone: true, selector: "[rdtButtonOutlet]", inputs: { inputs: "inputs" }, outputs: { click$: "click$" }, exportAs: ["rdtButtonOutlet"], usesOnChanges: true, ngImport: i0 });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonOutletDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{
60
+ selector: '[rdtButtonOutlet]',
61
+ standalone: true,
62
+ exportAs: 'rdtButtonOutlet',
63
+ }]
64
+ }], ctorParameters: () => [], propDecorators: { inputs: [{
65
+ type: Input
66
+ }], click$: [{
67
+ type: Output
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJ1dHRvbi1vdXRsZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2J1dHRvbi9zcmMvbGliL2J1dHRvbi1vdXRsZXQvcmR0LWJ1dHRvbi1vdXRsZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFXMUUsTUFBTSxPQUFPLHdCQUF3QjtJQUsxQixXQUFXLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFHOUQsTUFBTSxHQUEyQixFQUFFLENBQUM7SUFHcEMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFeEMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBQ08sYUFBYSxDQUF5QjtJQUU5Qzs7OztPQUlHO0lBQ0ssV0FBVyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRWpEO1FBQ0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3pELElBQUksQ0FBQyxXQUFXLEVBQ2hCO1lBQ0UsUUFBUTtTQUNULENBQ3VCLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQUNMLG9CQUFvQixDQUFDLFlBQW1DO1FBQzlELEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLDBGQUEwRjtnQkFDMUYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixpRkFBaUY7Z0JBQ2pGLFlBQVksQ0FBQyxRQUFRLENBQ25CLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQWdDLENBQUMsQ0FDOUMsQ0FBQztnQkFDRixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQXJFVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7d0RBV0MsTUFBTTtzQkFETCxLQUFLO2dCQUlOLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUkRUX0JVVFRPTl9CQVNFX1BST1ZJREVSIH0gZnJvbSAnLi4vYnV0dG9uL3JkdC1idXR0b24tY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuICBSZHRCdXR0b25CYXNlSW5wdXRzSW50LFxyXG4gIFJkdEJ1dHRvbkJhc2VJbnQsXHJcbn0gZnJvbSAnLi4vYnV0dG9uL3JkdC1idXR0b24taW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3JkdEJ1dHRvbk91dGxldF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgZXhwb3J0QXM6ICdyZHRCdXR0b25PdXRsZXQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmR0QnV0dG9uT3V0bGV0RGlyZWN0aXZlPFxyXG4gIFRCdXR0b24gZXh0ZW5kcyBSZHRCdXR0b25CYXNlSW50LFxyXG4gIFRCdXR0b25JbnB1dHMgZXh0ZW5kcyBSZHRCdXR0b25CYXNlSW5wdXRzSW50ID0gUmR0QnV0dG9uQmFzZUlucHV0c0ludFxyXG4+IGltcGxlbWVudHMgT25DaGFuZ2VzXHJcbntcclxuICByZWFkb25seSBidXR0b25DbGFzcyA9IGluamVjdChSRFRfQlVUVE9OX0JBU0VfUFJPVklERVIpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGlucHV0czogUGFydGlhbDxUQnV0dG9uSW5wdXRzPiA9IHt9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbGljayQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIGdldCBpbnN0YW5jZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY/Lmluc3RhbmNlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VEJ1dHRvbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgaGVscGVyIGRhdGEgc3RydWN0dXJlIHRoYXQgYWxsb3dzIHVzIHRvIHRyYWNrIGlucHV0cyB0aGF0IHdlcmUgcGFydCBvZiB0aGVcclxuICAgKiBuZ0NvbXBvbmVudE91dGxldElucHV0cyBleHByZXNzaW9uLiBUcmFja2luZyBpbnB1dHMgaXMgbmVjZXNzYXJ5IGZvciBwcm9wZXIgcmVtb3ZhbCBvZiBvbmVzXHJcbiAgICogdGhhdCBhcmUgbm8gbG9uZ2VyIHJlZmVyZW5jZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5wdXRzVXNlZCA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzLFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5qZWN0b3IsXHJcbiAgICAgIH1cclxuICAgICkgYXMgQ29tcG9uZW50UmVmPFRCdXR0b24+O1xyXG4gICAgdGhpcy5vbklucHV0c0NoYW5nZWQoKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5jbGljayQuc3Vic2NyaWJlKHRoaXMuY2xpY2skKTtcclxuICB9XHJcblxyXG4gIC8qKiBAbm9kb2MgKi9cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMub25JbnB1dHNDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uSW5wdXRzQ2hhbmdlZCgpIHtcclxuICAgIGZvciAoY29uc3QgaW5wdXROYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKSkge1xyXG4gICAgICB0aGlzLl9pbnB1dHNVc2VkLnNldChpbnB1dE5hbWUsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9hcHBseUlucHV0U3RhdGVEaWZmKHRoaXMuX2NvbXBvbmVudFJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQG5vZG9jICovXHJcbiAgcHJpdmF0ZSBfYXBwbHlJbnB1dFN0YXRlRGlmZihjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPikge1xyXG4gICAgZm9yIChjb25zdCBbaW5wdXROYW1lLCB0b3VjaGVkXSBvZiB0aGlzLl9pbnB1dHNVc2VkKSB7XHJcbiAgICAgIGlmICghdG91Y2hlZCkge1xyXG4gICAgICAgIC8vIFRoZSBpbnB1dCB0aGF0IHdhcyBwcmV2aW91c2x5IGFjdGl2ZSBubyBsb25nZXIgZXhpc3RzIGFuZCBuZWVkcyB0byBiZSBzZXQgdG8gdW5kZWZpbmVkLlxyXG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChpbnB1dE5hbWUsIHVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5faW5wdXRzVXNlZC5kZWxldGUoaW5wdXROYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBTaW5jZSB0b3VjaGVkIGlzIHRydWUsIGl0IGNhbiBiZSBhc3NlcnRlZCB0aGF0IHRoZSBpbnB1dHMgb2JqZWN0IGlzIG5vdCBlbXB0eS5cclxuICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXHJcbiAgICAgICAgICBpbnB1dE5hbWUsXHJcbiAgICAgICAgICB0aGlzLmlucHV0c1tpbnB1dE5hbWUgYXMga2V5b2YgVEJ1dHRvbklucHV0c11cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2lucHV0c1VzZWQuc2V0KGlucHV0TmFtZSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, ChangeDetectorRef, EventEmitter, booleanAttribute, numberAttribute, Directive, Input, Output } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, ChangeDetectorRef, Renderer2, EventEmitter, booleanAttribute, numberAttribute, Directive, Input, Output, ViewContainerRef } from '@angular/core';
3
3
  import { Router } from '@angular/router';
4
4
  import { RdtStringUtils } from '@ngrdt/utils';
5
5
  import { take } from 'rxjs';
@@ -16,11 +16,18 @@ class RdtButtonBase {
16
16
  cd = inject(ChangeDetectorRef);
17
17
  router = inject(Router);
18
18
  baseHref = inject(PlatformLocation).getBaseHrefFromDOM();
19
+ renderer = inject(Renderer2);
19
20
  notificationService;
20
21
  internalDisabledMap = {};
21
22
  internalLoadingMap = {};
22
23
  hrefWithParams;
23
- get buttonEl() {
24
+ get focusElement() {
25
+ return this.elRef?.nativeElement ?? null;
26
+ }
27
+ get ariaElement() {
28
+ return this.elRef?.nativeElement ?? null;
29
+ }
30
+ get anchorElement() {
24
31
  return this.elRef?.nativeElement ?? null;
25
32
  }
26
33
  set disabled(value) {
@@ -102,6 +109,14 @@ class RdtButtonBase {
102
109
  return this._icon;
103
110
  }
104
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;
105
120
  set dataTestId(value) {
106
121
  this._dataTestId = value;
107
122
  this.cd.markForCheck();
@@ -118,7 +133,18 @@ class RdtButtonBase {
118
133
  return this._onlineEnabled$;
119
134
  }
120
135
  _onlineEnabled$;
136
+ set aria(value) {
137
+ this._aria = value;
138
+ this.updateAriaAttributes();
139
+ }
140
+ get aria() {
141
+ return this._aria;
142
+ }
143
+ _aria = {};
121
144
  click$ = new EventEmitter();
145
+ ngAfterViewInit() {
146
+ this.updateAriaAttributes();
147
+ }
122
148
  setDisabled(key, disabled) {
123
149
  this.internalDisabledMap[key] = disabled;
124
150
  this.updateDisabledValue();
@@ -128,7 +154,7 @@ class RdtButtonBase {
128
154
  this.updateLoadingValue();
129
155
  }
130
156
  focus() {
131
- this.buttonEl?.focus();
157
+ this.focusElement?.focus();
132
158
  }
133
159
  onClicked($event) {
134
160
  if (this._onlineEnabled$) {
@@ -228,9 +254,22 @@ class RdtButtonBase {
228
254
  updateTabIndexValue() {
229
255
  this.cd.markForCheck();
230
256
  }
257
+ updateAriaAttributes() {
258
+ const el = this.ariaElement;
259
+ if (this.ariaElement) {
260
+ Object.entries(this._aria).forEach(([key, value]) => {
261
+ if (value === null || value === undefined) {
262
+ this.renderer.removeAttribute(el, key);
263
+ }
264
+ else {
265
+ this.renderer.setAttribute(el, key, String(value));
266
+ }
267
+ });
268
+ }
269
+ }
231
270
  static ONLINE_ENABLED_KEY = Symbol();
232
271
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
233
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.7", type: RdtButtonBase, inputs: { disabled: ["disabled", "disabled", booleanAttribute], loading: ["loading", "loading", booleanAttribute], propagate: ["propagate", "propagate", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", numberAttribute], href: "href", ngHref: "ngHref", target: "target", stateParams: "stateParams", queryParams: "queryParams", download: "download", icon: "icon", dataTestId: "dataTestId", onlineEnabled$: "onlineEnabled$" }, outputs: { click$: "click$" }, ngImport: i0 });
272
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.7", type: RdtButtonBase, inputs: { disabled: ["disabled", "disabled", booleanAttribute], loading: ["loading", "loading", booleanAttribute], propagate: ["propagate", "propagate", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", numberAttribute], href: "href", ngHref: "ngHref", target: "target", stateParams: "stateParams", queryParams: "queryParams", download: "download", icon: "icon", label: "label", dataTestId: "dataTestId", onlineEnabled$: "onlineEnabled$", aria: "aria" }, outputs: { click$: "click$" }, ngImport: i0 });
234
273
  }
235
274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonBase, decorators: [{
236
275
  type: Directive
@@ -260,10 +299,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
260
299
  type: Input
261
300
  }], icon: [{
262
301
  type: Input
302
+ }], label: [{
303
+ type: Input
263
304
  }], dataTestId: [{
264
305
  type: Input
265
306
  }], onlineEnabled$: [{
266
307
  type: Input
308
+ }], aria: [{
309
+ type: Input
310
+ }], click$: [{
311
+ type: Output
312
+ }] } });
313
+
314
+ class RdtButtonOutletDirective {
315
+ buttonClass = inject(RDT_BUTTON_BASE_PROVIDER);
316
+ _viewContainerRef = inject(ViewContainerRef);
317
+ inputs = {};
318
+ click$ = new EventEmitter();
319
+ get instance() {
320
+ return this._componentRef?.instance;
321
+ }
322
+ _componentRef;
323
+ /**
324
+ * A helper data structure that allows us to track inputs that were part of the
325
+ * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones
326
+ * that are no longer referenced.
327
+ */
328
+ _inputsUsed = new Map();
329
+ constructor() {
330
+ const injector = this._viewContainerRef.injector;
331
+ this._componentRef = this._viewContainerRef.createComponent(this.buttonClass, {
332
+ injector,
333
+ });
334
+ this.onInputsChanged();
335
+ this._componentRef.instance.click$.subscribe(this.click$);
336
+ }
337
+ /** @nodoc */
338
+ ngOnChanges() {
339
+ this.onInputsChanged();
340
+ }
341
+ onInputsChanged() {
342
+ for (const inputName of Object.keys(this.inputs)) {
343
+ this._inputsUsed.set(inputName, true);
344
+ }
345
+ if (this._componentRef) {
346
+ this._applyInputStateDiff(this._componentRef);
347
+ }
348
+ }
349
+ /** @nodoc */
350
+ _applyInputStateDiff(componentRef) {
351
+ for (const [inputName, touched] of this._inputsUsed) {
352
+ if (!touched) {
353
+ // The input that was previously active no longer exists and needs to be set to undefined.
354
+ componentRef.setInput(inputName, undefined);
355
+ this._inputsUsed.delete(inputName);
356
+ }
357
+ else {
358
+ // Since touched is true, it can be asserted that the inputs object is not empty.
359
+ componentRef.setInput(inputName, this.inputs[inputName]);
360
+ this._inputsUsed.set(inputName, false);
361
+ }
362
+ }
363
+ }
364
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
365
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: RdtButtonOutletDirective, isStandalone: true, selector: "[rdtButtonOutlet]", inputs: { inputs: "inputs" }, outputs: { click$: "click$" }, exportAs: ["rdtButtonOutlet"], usesOnChanges: true, ngImport: i0 });
366
+ }
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtButtonOutletDirective, decorators: [{
368
+ type: Directive,
369
+ args: [{
370
+ selector: '[rdtButtonOutlet]',
371
+ standalone: true,
372
+ exportAs: 'rdtButtonOutlet',
373
+ }]
374
+ }], ctorParameters: () => [], propDecorators: { inputs: [{
375
+ type: Input
267
376
  }], click$: [{
268
377
  type: Output
269
378
  }] } });
@@ -272,5 +381,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
272
381
  * Generated bundle index. Do not edit.
273
382
  */
274
383
 
275
- export { RDT_BUTTON_BASE_PROVIDER, RDT_BUTTON_DEFAULT_PROPAGATE, RDT_BUTTON_DEFAULT_TAB_INDEX, RDT_BUTTON_DEFAULT_TARGET, RDT_BUTTON_SETTER_KEY, RdtButtonBase };
384
+ export { RDT_BUTTON_BASE_PROVIDER, RDT_BUTTON_DEFAULT_PROPAGATE, RDT_BUTTON_DEFAULT_TAB_INDEX, RDT_BUTTON_DEFAULT_TARGET, RDT_BUTTON_SETTER_KEY, RdtButtonBase, RdtButtonOutletDirective };
276
385
  //# sourceMappingURL=ngrdt-button.mjs.map
@@ -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/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 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} from '@angular/core';\r\nimport { RdtButtonBaseInt } from './rdt-button-int';\r\nimport { Params, Router } from '@angular/router';\r\nimport { Nullable, WindowOpenTargetType, RdtStringUtils } 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>\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\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 protected get buttonEl(): 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 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 @Output()\r\n readonly click$ = new EventEmitter<PointerEvent>();\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.buttonEl?.focus();\r\n }\r\n\r\n protected onClicked($event: PointerEvent) {\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: PointerEvent) {\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: PointerEvent) {\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: PointerEvent) {\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 protected static readonly ONLINE_ENABLED_KEY = Symbol();\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":["../../../../@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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"}
package/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './lib/button/rdt-button-base';
2
2
  export * from './lib/button/rdt-button-constants';
3
3
  export * from './lib/button/rdt-button-int';
4
4
  export * from './lib/button/rdt-button-notification.service';
5
+ export * from './lib/button-outlet/rdt-button-outlet.directive';
@@ -1,20 +1,23 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Renderer2 } from '@angular/core';
2
2
  import { RdtButtonBaseInt } from './rdt-button-int';
3
3
  import { Params, Router } from '@angular/router';
4
- import { Nullable, WindowOpenTargetType } from '@ngrdt/utils';
4
+ import { Nullable, WindowOpenTargetType, AriaAttributes } from '@ngrdt/utils';
5
5
  import { Observable } from 'rxjs';
6
6
  import { RdtButtonNotificationServiceInt } from './rdt-button-notification.service';
7
7
  import * as i0 from "@angular/core";
8
- export declare abstract class RdtButtonBase<TIcon = string> implements RdtButtonBaseInt<TIcon> {
8
+ export declare abstract class RdtButtonBase<TIcon = string> implements RdtButtonBaseInt<TIcon>, AfterViewInit {
9
9
  protected readonly elRef: ElementRef<any>;
10
10
  protected readonly cd: ChangeDetectorRef;
11
11
  protected readonly router: Router;
12
12
  protected readonly baseHref: string;
13
+ protected readonly renderer: Renderer2;
13
14
  protected readonly notificationService?: RdtButtonNotificationServiceInt;
14
15
  protected internalDisabledMap: Record<symbol, boolean>;
15
16
  protected internalLoadingMap: Record<symbol, boolean>;
16
17
  protected hrefWithParams: Nullable<string>;
17
- protected get buttonEl(): HTMLElement | null;
18
+ get focusElement(): HTMLElement | null;
19
+ get ariaElement(): HTMLElement | null;
20
+ get anchorElement(): HTMLElement | null;
18
21
  set disabled(value: boolean);
19
22
  get disabled(): boolean;
20
23
  private _disabled;
@@ -46,17 +49,24 @@ export declare abstract class RdtButtonBase<TIcon = string> implements RdtButton
46
49
  set icon(value: Nullable<TIcon>);
47
50
  get icon(): Nullable<TIcon>;
48
51
  private _icon;
52
+ set label(value: Nullable<string>);
53
+ get label(): Nullable<string>;
54
+ private _label;
49
55
  set dataTestId(value: string);
50
56
  get dataTestId(): string;
51
57
  private _dataTestId;
52
58
  set onlineEnabled$(value: Nullable<Observable<boolean>>);
53
59
  get onlineEnabled$(): Nullable<Observable<boolean>>;
54
60
  private _onlineEnabled$;
55
- readonly click$: EventEmitter<PointerEvent>;
61
+ set aria(value: Partial<AriaAttributes>);
62
+ get aria(): Partial<AriaAttributes>;
63
+ private _aria;
64
+ readonly click$: EventEmitter<MouseEvent>;
65
+ ngAfterViewInit(): void;
56
66
  setDisabled(key: symbol, disabled: boolean): void;
57
67
  setLoading(key: symbol, disabled: boolean): void;
58
68
  focus(): void;
59
- protected onClicked($event: PointerEvent): void;
69
+ protected onClicked($event: MouseEvent): void;
60
70
  private emitAndStopProp;
61
71
  private onClickPermissionAllowed;
62
72
  private navigateOrEmit;
@@ -66,9 +76,10 @@ export declare abstract class RdtButtonBase<TIcon = string> implements RdtButton
66
76
  private updateLoadingValue;
67
77
  private updateHrefWithQueryParams;
68
78
  protected updateTabIndexValue(): void;
79
+ private updateAriaAttributes;
69
80
  protected static readonly ONLINE_ENABLED_KEY: unique symbol;
70
81
  static ɵfac: i0.ɵɵFactoryDeclaration<RdtButtonBase<any>, never>;
71
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdtButtonBase<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "propagate": { "alias": "propagate"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "href": { "alias": "href"; "required": false; }; "ngHref": { "alias": "ngHref"; "required": false; }; "target": { "alias": "target"; "required": false; }; "stateParams": { "alias": "stateParams"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "download": { "alias": "download"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "onlineEnabled$": { "alias": "onlineEnabled$"; "required": false; }; }, { "click$": "click$"; }, never, never, false, never>;
82
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtButtonBase<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "propagate": { "alias": "propagate"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "href": { "alias": "href"; "required": false; }; "ngHref": { "alias": "ngHref"; "required": false; }; "target": { "alias": "target"; "required": false; }; "stateParams": { "alias": "stateParams"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "download": { "alias": "download"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "onlineEnabled$": { "alias": "onlineEnabled$"; "required": false; }; "aria": { "alias": "aria"; "required": false; }; }, { "click$": "click$"; }, never, never, false, never>;
72
83
  static ngAcceptInputType_disabled: unknown;
73
84
  static ngAcceptInputType_loading: unknown;
74
85
  static ngAcceptInputType_propagate: unknown;
@@ -1,7 +1,8 @@
1
- import { Observable } from 'rxjs';
2
- import { Nullable, WindowOpenTargetType } from '@ngrdt/utils';
3
1
  import { Params } from '@angular/router';
2
+ import { AriaAttributes, Nullable, WindowOpenTargetType } from '@ngrdt/utils';
3
+ import { Observable } from 'rxjs';
4
4
  export interface RdtButtonBaseInputsInt<TIcon = string> {
5
+ label: Nullable<string>;
5
6
  disabled: boolean;
6
7
  loading: boolean;
7
8
  propagate: boolean;
@@ -15,9 +16,13 @@ export interface RdtButtonBaseInputsInt<TIcon = string> {
15
16
  icon: Nullable<TIcon>;
16
17
  dataTestId: string;
17
18
  onlineEnabled$: Nullable<Observable<boolean>>;
19
+ aria: Partial<AriaAttributes>;
18
20
  }
19
21
  export interface RdtButtonBaseInt<TIcon = string> extends RdtButtonBaseInputsInt<TIcon> {
20
- readonly click$: Observable<PointerEvent>;
22
+ readonly click$: Observable<MouseEvent>;
23
+ readonly anchorElement: HTMLElement | null;
24
+ readonly focusElement: HTMLElement | null;
25
+ readonly ariaElement: HTMLElement | null;
21
26
  setDisabled(key: symbol, disabled: boolean): void;
22
27
  setLoading(key: symbol, disabled: boolean): void;
23
28
  focus(): void;
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, OnChanges } from '@angular/core';
2
+ import { RdtButtonBaseInputsInt, RdtButtonBaseInt } from '../button/rdt-button-int';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RdtButtonOutletDirective<TButton extends RdtButtonBaseInt, TButtonInputs extends RdtButtonBaseInputsInt = RdtButtonBaseInputsInt> implements OnChanges {
5
+ readonly buttonClass: import("@angular/core").Type<RdtButtonBaseInt<string>>;
6
+ private readonly _viewContainerRef;
7
+ inputs: Partial<TButtonInputs>;
8
+ click$: EventEmitter<MouseEvent>;
9
+ get instance(): TButton | undefined;
10
+ private _componentRef?;
11
+ /**
12
+ * A helper data structure that allows us to track inputs that were part of the
13
+ * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones
14
+ * that are no longer referenced.
15
+ */
16
+ private _inputsUsed;
17
+ constructor();
18
+ /** @nodoc */
19
+ ngOnChanges(): void;
20
+ private onInputsChanged;
21
+ /** @nodoc */
22
+ private _applyInputStateDiff;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdtButtonOutletDirective<any, any>, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdtButtonOutletDirective<any, any>, "[rdtButtonOutlet]", ["rdtButtonOutlet"], { "inputs": { "alias": "inputs"; "required": false; }; }, { "click$": "click$"; }, never, never, true, never>;
25
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ngrdt/button",
3
- "version": "0.0.1",
3
+ "version": "v0.0.17",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.2.0",
6
- "@angular/core": "^18.2.0",
7
- "@angular/router": "^18.2.0",
5
+ "@angular/common": ">=18.2.0",
6
+ "@angular/core": ">=18.2.0",
7
+ "@angular/router": ">=18.2.0",
8
8
  "rxjs": ">=7.0.0",
9
- "@ngrdt/utils": "^0.0.5"
9
+ "@ngrdt/utils": ">=0.0.8"
10
10
  },
11
11
  "sideEffects": false,
12
12
  "module": "fesm2022/ngrdt-button.mjs",