@danske/sapphire-angular 2.2.0 → 2.3.0
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/esm2020/lib/radio/public_api.mjs +3 -1
- package/esm2020/lib/radio/src/radio-group.component.mjs +22 -159
- package/esm2020/lib/radio/src/radio.component.mjs +8 -267
- package/esm2020/lib/radio/src/radio.module.mjs +40 -6
- package/esm2020/lib/radio/src/segmented/segmented-radio-group.component.mjs +130 -0
- package/esm2020/lib/radio/src/segmented/segmented-radio.component.mjs +25 -0
- package/esm2020/lib/radio/src/shared/radio-base.mjs +276 -0
- package/esm2020/lib/radio/src/shared/radio-group-base.mjs +166 -0
- package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +19 -12
- package/esm2020/lib/table/public_api.mjs +2 -1
- package/esm2020/lib/table/src/cdk-virtual-scroll-viewport-fix.directive.mjs +61 -0
- package/esm2020/lib/table/src/table.module.mjs +7 -2
- package/fesm2015/danske-sapphire-angular.mjs +358 -77
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +354 -76
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/radio/public_api.d.ts +2 -0
- package/lib/radio/src/radio-group.component.d.ts +5 -60
- package/lib/radio/src/radio.component.d.ts +4 -96
- package/lib/radio/src/radio.module.d.ts +8 -5
- package/lib/radio/src/segmented/segmented-radio-group.component.d.ts +40 -0
- package/lib/radio/src/segmented/segmented-radio.component.d.ts +8 -0
- package/lib/radio/src/shared/radio-base.d.ts +103 -0
- package/lib/radio/src/shared/radio-group-base.d.ts +63 -0
- package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +3 -2
- package/lib/table/public_api.d.ts +1 -0
- package/lib/table/src/cdk-virtual-scroll-viewport-fix.directive.d.ts +25 -0
- package/lib/table/src/table.module.d.ts +3 -2
- package/package.json +2 -2
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ContentChildren, Directive, EventEmitter, forwardRef, Input, Optional, Output, QueryList, } from '@angular/core';
|
|
3
|
+
import { RadioComponent } from '../radio.component';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { AutoId } from '../../../common/auto-id.decorator';
|
|
6
|
+
import { SapphireRadioChange } from './radio-base';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../field/src/field.component";
|
|
9
|
+
export class RadioGroupBase {
|
|
10
|
+
/** Name of the radio button group. All radio buttons inside this group will use this name. */
|
|
11
|
+
get name() {
|
|
12
|
+
return this._name;
|
|
13
|
+
}
|
|
14
|
+
set name(value) {
|
|
15
|
+
this._name = value;
|
|
16
|
+
this.updateRadioButtonNames();
|
|
17
|
+
}
|
|
18
|
+
get value() {
|
|
19
|
+
return this._value;
|
|
20
|
+
}
|
|
21
|
+
set value(newValue) {
|
|
22
|
+
if (this._value !== newValue) {
|
|
23
|
+
this._value = newValue;
|
|
24
|
+
this.updateSelectedRadioFromValue();
|
|
25
|
+
this._checkSelectedRadioButton();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The currently selected radio button. If set to a new radio button, the radio group value
|
|
30
|
+
* will be updated to match the new selected button. */
|
|
31
|
+
get selected() {
|
|
32
|
+
return this._selected;
|
|
33
|
+
}
|
|
34
|
+
set selected(selected) {
|
|
35
|
+
this._selected = selected;
|
|
36
|
+
this.value = selected ? selected.value : null;
|
|
37
|
+
this._checkSelectedRadioButton();
|
|
38
|
+
}
|
|
39
|
+
/** Whether the radio group is disabled */
|
|
40
|
+
get disabled() {
|
|
41
|
+
return this._disabled;
|
|
42
|
+
}
|
|
43
|
+
set disabled(value) {
|
|
44
|
+
this._disabled = coerceBooleanProperty(value);
|
|
45
|
+
}
|
|
46
|
+
/** Whether the radio group is readonly */
|
|
47
|
+
get readonly() {
|
|
48
|
+
return this._readonly;
|
|
49
|
+
}
|
|
50
|
+
set readonly(value) {
|
|
51
|
+
this._readonly = coerceBooleanProperty(value);
|
|
52
|
+
}
|
|
53
|
+
/** Whether the radio group is required */
|
|
54
|
+
get required() {
|
|
55
|
+
return this._required;
|
|
56
|
+
}
|
|
57
|
+
set required(value) {
|
|
58
|
+
this._required = coerceBooleanProperty(value);
|
|
59
|
+
}
|
|
60
|
+
constructor(changeDetectorRef, _field) {
|
|
61
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
62
|
+
this._field = _field;
|
|
63
|
+
this.uniqueId = '';
|
|
64
|
+
this.orientation = 'vertical';
|
|
65
|
+
this._name = `sapphire-radio-group-${this.uniqueId}`;
|
|
66
|
+
/**
|
|
67
|
+
* Event emitted when the group value changes.
|
|
68
|
+
* Change events are only emitted when the value changes due to user interaction with
|
|
69
|
+
* the radio button (the same behavior as `<input type-"radio">`).
|
|
70
|
+
*/
|
|
71
|
+
this.change = new EventEmitter();
|
|
72
|
+
this._value = '';
|
|
73
|
+
this._selected = null;
|
|
74
|
+
this._disabled = false;
|
|
75
|
+
this._readonly = false;
|
|
76
|
+
this._required = false;
|
|
77
|
+
/** Child radio buttons. */
|
|
78
|
+
this.radios = new QueryList();
|
|
79
|
+
this.onTouched = () => { };
|
|
80
|
+
this._controlValueAccessorChangeFn = () => { };
|
|
81
|
+
}
|
|
82
|
+
_checkSelectedRadioButton() {
|
|
83
|
+
if (this._selected && !this._selected.checked) {
|
|
84
|
+
this._selected.checked = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** Dispatch change event with current selection and group value. */
|
|
88
|
+
_emitChangeEvent() {
|
|
89
|
+
this.change.emit(new SapphireRadioChange(this._selected, this._value));
|
|
90
|
+
}
|
|
91
|
+
// Implemented as part of ControlValueAccessor.
|
|
92
|
+
writeValue(value) {
|
|
93
|
+
this.value = value;
|
|
94
|
+
}
|
|
95
|
+
// Implemented as part of ControlValueAccessor.
|
|
96
|
+
registerOnChange(fn) {
|
|
97
|
+
this._controlValueAccessorChangeFn = fn;
|
|
98
|
+
}
|
|
99
|
+
// Implemented as part of ControlValueAccessor.
|
|
100
|
+
registerOnTouched(fn) {
|
|
101
|
+
this.onTouched = fn;
|
|
102
|
+
}
|
|
103
|
+
// Implemented as part of ControlValueAccessor.
|
|
104
|
+
setDisabledState(disabled) {
|
|
105
|
+
this.disabled = disabled;
|
|
106
|
+
this.changeDetectorRef.markForCheck();
|
|
107
|
+
}
|
|
108
|
+
// Implementing FieldControl interface
|
|
109
|
+
isDisabled() {
|
|
110
|
+
return this.disabled;
|
|
111
|
+
}
|
|
112
|
+
/** Updates the `selected` radio button from the internal _value state. */
|
|
113
|
+
updateSelectedRadioFromValue() {
|
|
114
|
+
// If the value already matches the selected radio, do nothing.
|
|
115
|
+
const alreadySelected = this._selected !== null && this._selected.value === this._value;
|
|
116
|
+
if (this.radios && !alreadySelected) {
|
|
117
|
+
this._selected = null;
|
|
118
|
+
this.radios.forEach((radio) => {
|
|
119
|
+
radio.checked = this.value === radio.value;
|
|
120
|
+
if (radio.checked) {
|
|
121
|
+
this._selected = radio;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
updateRadioButtonNames() {
|
|
127
|
+
if (this.radios) {
|
|
128
|
+
this.radios.forEach((radio) => {
|
|
129
|
+
radio.name = this.name;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
RadioGroupBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: RadioGroupBase, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
135
|
+
RadioGroupBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: RadioGroupBase, isStandalone: true, inputs: { orientation: "orientation", name: "name", value: "value", selected: "selected", disabled: "disabled", readonly: "readonly", required: "required" }, outputs: { change: "change" }, queries: [{ propertyName: "radios", predicate: i0.forwardRef(function () { return RadioComponent; }), descendants: true }], ngImport: i0 });
|
|
136
|
+
__decorate([
|
|
137
|
+
AutoId()
|
|
138
|
+
], RadioGroupBase.prototype, "uniqueId", void 0);
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: RadioGroupBase, decorators: [{
|
|
140
|
+
type: Directive,
|
|
141
|
+
args: [{
|
|
142
|
+
standalone: true,
|
|
143
|
+
}]
|
|
144
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FieldComponent, decorators: [{
|
|
145
|
+
type: Optional
|
|
146
|
+
}] }]; }, propDecorators: { uniqueId: [], orientation: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], name: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], change: [{
|
|
151
|
+
type: Output
|
|
152
|
+
}], value: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], selected: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], disabled: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], readonly: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], required: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], radios: [{
|
|
163
|
+
type: ContentChildren,
|
|
164
|
+
args: [forwardRef(() => RadioComponent), { descendants: true }]
|
|
165
|
+
}] } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmFkaW8vc3JjL3NoYXJlZC9yYWRpby1ncm91cC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQU1uRCxNQUFNLE9BQWdCLGNBQWM7SUFRbEMsOEZBQThGO0lBQzlGLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBV0QsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFFdkIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBR0Q7OzJEQUV1RDtJQUN2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QUFFLElBQUk7aUJBQ2pCOzswQkFrR0ksUUFBUTs0Q0E3RkosUUFBUSxNQUVOLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUYsSUFBSTtzQkFEUCxLQUFLO2dCQWVhLE1BQU07c0JBQXhCLE1BQU07Z0JBSUgsS0FBSztzQkFEUixLQUFLO2dCQWtCRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixRQUFRO3NCQURYLEtBQUs7Z0JBWUUsTUFBTTtzQkFEYixlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEF1dG9JZCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9hdXRvLWlkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9maWVsZC9zcmMvZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBTYXBwaGlyZVJhZGlvQ2hhbmdlIH0gZnJvbSAnLi9yYWRpby1iYXNlJztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZmllbGQvc3JjL2ZpZWxkLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSYWRpb0dyb3VwQmFzZVxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGaWVsZENvbnRyb2xcbntcbiAgQEF1dG9JZCgpXG4gIHB1YmxpYyB1bmlxdWVJZCA9ICcnO1xuXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ3ZlcnRpY2FsJztcblxuICAvKiogTmFtZSBvZiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBBbGwgcmFkaW8gYnV0dG9ucyBpbnNpZGUgdGhpcyBncm91cCB3aWxsIHVzZSB0aGlzIG5hbWUuICovXG4gIEBJbnB1dCgpXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTtcbiAgfVxuICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSBgc2FwcGhpcmUtcmFkaW8tZ3JvdXAtJHt0aGlzLnVuaXF1ZUlkfWA7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZ3JvdXAgdmFsdWUgY2hhbmdlcy5cbiAgICogQ2hhbmdlIGV2ZW50cyBhcmUgb25seSBlbWl0dGVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMgZHVlIHRvIHVzZXIgaW50ZXJhY3Rpb24gd2l0aFxuICAgKiB0aGUgcmFkaW8gYnV0dG9uICh0aGUgc2FtZSBiZWhhdmlvciBhcyBgPGlucHV0IHR5cGUtXCJyYWRpb1wiPmApLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPFNhcHBoaXJlUmFkaW9DaGFuZ2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFNhcHBoaXJlUmFkaW9DaGFuZ2U+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgICB0aGlzLl9jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJhZGlvIGJ1dHRvbi4gSWYgc2V0IHRvIGEgbmV3IHJhZGlvIGJ1dHRvbiwgdGhlIHJhZGlvIGdyb3VwIHZhbHVlXG4gICAqIHdpbGwgYmUgdXBkYXRlZCB0byBtYXRjaCB0aGUgbmV3IHNlbGVjdGVkIGJ1dHRvbi4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgfVxuICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IFJhZGlvQ29tcG9uZW50IHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkID8gc2VsZWN0ZWQudmFsdWUgOiBudWxsO1xuICAgIHRoaXMuX2NoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkOiBSYWRpb0NvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSByYWRpbyBncm91cCBpcyBkaXNhYmxlZCAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgcmVhZG9ubHkgKi9cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuICBzZXQgcmVhZG9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIHJlcXVpcmVkICovXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBDaGlsZCByYWRpbyBidXR0b25zLiAqL1xuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gUmFkaW9Db21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmFkaW9zOiBRdWVyeUxpc3Q8UmFkaW9Db21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxSYWRpb0NvbXBvbmVudD4oKTtcblxuICBvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHt9O1xuICBfY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgX2ZpZWxkOiBGaWVsZENvbXBvbmVudFxuICApIHt9XG5cbiAgX2NoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgIXRoaXMuX3NlbGVjdGVkLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBEaXNwYXRjaCBjaGFuZ2UgZXZlbnQgd2l0aCBjdXJyZW50IHNlbGVjdGlvbiBhbmQgZ3JvdXAgdmFsdWUuICovXG4gIF9lbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChuZXcgU2FwcGhpcmVSYWRpb0NoYW5nZSh0aGlzLl9zZWxlY3RlZCEsIHRoaXMuX3ZhbHVlKSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gSW1wbGVtZW50aW5nIEZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKiBVcGRhdGVzIHRoZSBgc2VsZWN0ZWRgIHJhZGlvIGJ1dHRvbiBmcm9tIHRoZSBpbnRlcm5hbCBfdmFsdWUgc3RhdGUuICovXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRSYWRpb0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgdmFsdWUgYWxyZWFkeSBtYXRjaGVzIHRoZSBzZWxlY3RlZCByYWRpbywgZG8gbm90aGluZy5cbiAgICBjb25zdCBhbHJlYWR5U2VsZWN0ZWQgPVxuICAgICAgdGhpcy5fc2VsZWN0ZWQgIT09IG51bGwgJiYgdGhpcy5fc2VsZWN0ZWQudmFsdWUgPT09IHRoaXMuX3ZhbHVlO1xuXG4gICAgaWYgKHRoaXMucmFkaW9zICYmICFhbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gbnVsbDtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLmNoZWNrZWQgPSB0aGlzLnZhbHVlID09PSByYWRpby52YWx1ZTtcbiAgICAgICAgaWYgKHJhZGlvLmNoZWNrZWQpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHJhZGlvO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICByYWRpby5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -32,7 +32,7 @@ export class SegmentedTabsComponent {
|
|
|
32
32
|
this.selectedIndexChange = new EventEmitter();
|
|
33
33
|
this.tabs = new QueryList();
|
|
34
34
|
this._tabIds = [];
|
|
35
|
-
this.
|
|
35
|
+
this._gliderStyles = { left: '0px', width: '0px' };
|
|
36
36
|
this._animationEnabled = false;
|
|
37
37
|
this._focusVisible = false;
|
|
38
38
|
this.skipAnimationFrame();
|
|
@@ -54,17 +54,17 @@ export class SegmentedTabsComponent {
|
|
|
54
54
|
// changed after it was checked" angular error.
|
|
55
55
|
//
|
|
56
56
|
// https://angular.io/errors/NG0100
|
|
57
|
-
this.
|
|
57
|
+
this.setGliderStyles();
|
|
58
58
|
this.changeDetector.detectChanges();
|
|
59
59
|
this.resizeObserver = new ResizeObserver(() => {
|
|
60
60
|
// zonejs doesn't monkey-patch resize observer (yet)
|
|
61
61
|
this.zone.run(() => {
|
|
62
|
-
this.
|
|
62
|
+
this.setGliderStyles();
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
this.resizeObserver.observe(this.segmentedControl.nativeElement);
|
|
66
66
|
this.selectedIndexChange.subscribe(() => {
|
|
67
|
-
this.
|
|
67
|
+
this.setGliderStyles();
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
ngOnDestroy() {
|
|
@@ -72,7 +72,7 @@ export class SegmentedTabsComponent {
|
|
|
72
72
|
this.selectedIndexChange.unsubscribe();
|
|
73
73
|
}
|
|
74
74
|
ngAfterViewChecked() {
|
|
75
|
-
this.
|
|
75
|
+
this.setGliderStyles();
|
|
76
76
|
this.changeDetector.detectChanges();
|
|
77
77
|
}
|
|
78
78
|
getFocusedTab() {
|
|
@@ -142,11 +142,18 @@ export class SegmentedTabsComponent {
|
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
setGliderStyles() {
|
|
146
|
+
const { offsetLeft, clientWidth } = this.getSelectedTabPosition();
|
|
147
|
+
this._gliderStyles = {
|
|
148
|
+
left: `${offsetLeft}px`,
|
|
149
|
+
width: `${clientWidth}px`,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
getSelectedTabPosition() {
|
|
146
153
|
const tab = this.tabs.toArray()[this.selectedIndex]?._button?.nativeElement;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
154
|
+
return {
|
|
155
|
+
offsetLeft: tab?.offsetLeft || 0,
|
|
156
|
+
clientWidth: tab?.clientWidth || 0,
|
|
150
157
|
};
|
|
151
158
|
}
|
|
152
159
|
onTabsChange() {
|
|
@@ -197,7 +204,7 @@ export class SegmentedTabsComponent {
|
|
|
197
204
|
}
|
|
198
205
|
}
|
|
199
206
|
SegmentedTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SegmentedTabsComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
200
|
-
SegmentedTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SegmentedTabsComponent, selector: "sp-segmented-tabs", inputs: { size: "size", align: "align", keyboardActivation: "keyboardActivation", disabled: "disabled", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, host: { properties: { "attr.align": "null" } }, providers: [ViewEncapsulationProvider], queries: [{ propertyName: "tabs", predicate: i0.forwardRef(function () { return SegmentedTabComponent; }) }], viewQueries: [{ propertyName: "segmentedControl", first: true, predicate: ["segmentedControl"], descendants: true }], exportAs: ["spSegmentedTabs"], ngImport: i0, template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"
|
|
207
|
+
SegmentedTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SegmentedTabsComponent, selector: "sp-segmented-tabs", inputs: { size: "size", align: "align", keyboardActivation: "keyboardActivation", disabled: "disabled", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, host: { properties: { "attr.align": "null" } }, providers: [ViewEncapsulationProvider], queries: [{ propertyName: "tabs", predicate: i0.forwardRef(function () { return SegmentedTabComponent; }) }], viewQueries: [{ propertyName: "segmentedControl", first: true, predicate: ["segmentedControl"], descendants: true }], exportAs: ["spSegmentedTabs"], ngImport: i0, template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{display:flex;height:var(--sapphire-semantic-size-height-control-md)}.sapphire-segmented-control--stretch .sapphire-segmented-control__button-container{width:100%}.sapphire-segmented-control--align-center{justify-content:center}.sapphire-segmented-control--align-right{justify-content:flex-end}.sapphire-segmented-control--align-left{justify-content:flex-start}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;background-color:var(--sapphire-semantic-color-background-control-special-secondary-default);border-radius:var(--sapphire-semantic-size-height-control-lg);padding:var(--sapphire-global-size-static-5);box-sizing:border-box}.sapphire-segmented-control__glider{position:absolute;top:var(--sapphire-global-size-static-5);left:0;height:calc(100% - var(--sapphire-global-size-static-5) * 2);display:block;background-color:var(--sapphire-semantic-color-background-control-special-primary-default);box-shadow:var(--sapphire-global-shadow-sm);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-semantic-time-motion-quick) ease-in-out,left var(--sapphire-semantic-time-motion-quick) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-semantic-font-name-default);font-weight:var(--sapphire-semantic-font-weight-default-semibold);font-size:var(--sapphire-semantic-size-font-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-global-size-generic-120);padding:0 var(--sapphire-semantic-size-spacing-50);background-color:transparent;color:var(--sapphire-semantic-color-content-default-primary);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-semantic-time-motion-quick) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-semantic-color-content-link-primary-default)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-semantic-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-semantic-size-focus-ring) solid var(--sapphire-semantic-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-semantic-size-focus-ring) solid var(--sapphire-semantic-color-focus-ring);border-radius:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--lg{height:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control--lg .sapphire-segmented-control__button{font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-segmented-control--sm{height:var(--sapphire-semantic-size-height-control-sm)}.sapphire-segmented-control--sm .sapphire-segmented-control__button{font-size:var(--sapphire-semantic-size-font-control-sm)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] });
|
|
201
208
|
__decorate([
|
|
202
209
|
CoerceBoolean
|
|
203
210
|
], SegmentedTabsComponent.prototype, "disabled", void 0);
|
|
@@ -205,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
205
212
|
type: Component,
|
|
206
213
|
args: [{ selector: 'sp-segmented-tabs', providers: [ViewEncapsulationProvider], exportAs: 'spSegmentedTabs', host: {
|
|
207
214
|
'[attr.align]': 'null',
|
|
208
|
-
}, template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"
|
|
215
|
+
}, template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{display:flex;height:var(--sapphire-semantic-size-height-control-md)}.sapphire-segmented-control--stretch .sapphire-segmented-control__button-container{width:100%}.sapphire-segmented-control--align-center{justify-content:center}.sapphire-segmented-control--align-right{justify-content:flex-end}.sapphire-segmented-control--align-left{justify-content:flex-start}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;background-color:var(--sapphire-semantic-color-background-control-special-secondary-default);border-radius:var(--sapphire-semantic-size-height-control-lg);padding:var(--sapphire-global-size-static-5);box-sizing:border-box}.sapphire-segmented-control__glider{position:absolute;top:var(--sapphire-global-size-static-5);left:0;height:calc(100% - var(--sapphire-global-size-static-5) * 2);display:block;background-color:var(--sapphire-semantic-color-background-control-special-primary-default);box-shadow:var(--sapphire-global-shadow-sm);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-semantic-time-motion-quick) ease-in-out,left var(--sapphire-semantic-time-motion-quick) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-semantic-font-name-default);font-weight:var(--sapphire-semantic-font-weight-default-semibold);font-size:var(--sapphire-semantic-size-font-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-global-size-generic-120);padding:0 var(--sapphire-semantic-size-spacing-50);background-color:transparent;color:var(--sapphire-semantic-color-content-default-primary);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-semantic-time-motion-quick) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-semantic-color-content-link-primary-default)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-semantic-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-semantic-size-focus-ring) solid var(--sapphire-semantic-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-semantic-size-focus-ring) solid var(--sapphire-semantic-color-focus-ring);border-radius:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--lg{height:var(--sapphire-semantic-size-height-control-lg)}.sapphire-segmented-control--lg .sapphire-segmented-control__button{font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-segmented-control--sm{height:var(--sapphire-semantic-size-height-control-sm)}.sapphire-segmented-control--sm .sapphire-segmented-control__button{font-size:var(--sapphire-semantic-size-font-control-sm)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}\n"] }]
|
|
209
216
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { segmentedControl: [{
|
|
210
217
|
type: ViewChild,
|
|
211
218
|
args: ['segmentedControl']
|
|
@@ -225,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
225
232
|
type: ContentChildren,
|
|
226
233
|
args: [forwardRef(() => SegmentedTabComponent)]
|
|
227
234
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxvQkFBb0IsR0FFckIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUFZckYsTUFBTSxPQUFPLHNCQUFzQjtJQXlCakMsZ0NBQWdDO0lBQ2hDLElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLEtBQWtCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFnQkQsWUFBb0IsSUFBWSxFQUFVLGNBQWlDO1FBQXZELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUE1QzNFLG1CQUFtQjtRQUVuQixTQUFJLEdBQXVCLElBQUksQ0FB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LCtSQU50QixDQUFDLHlCQUF5QixDQUFDLGtGQThDSixxQkFBcUIsc0xDOUV6RCxnckNBb0NBO0FEeUJFO0lBREMsYUFBYTt3REFDUzsyRkF2Qlosc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNFLG1CQUFtQixhQUdsQixDQUFDLHlCQUF5QixDQUFDLFlBQzVCLGlCQUFpQixRQUNyQjt3QkFDSixjQUFjLEVBQUUsTUFBTTtxQkFDdkI7NkhBSzhCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSTdCLElBQUk7c0JBREgsS0FBSztnQkFRTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQU1OLFFBQVE7c0JBRlAsS0FBSztnQkFNRixhQUFhO3NCQURoQixLQUFLO2dCQVdhLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFJRSxJQUFJO3NCQURaLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxuICBOdW1iZXJJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBTZWdtZW50ZWRUYWJDb21wb25lbnQgfSBmcm9tICcuL3NlZ21lbnRlZC10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Atc2VnbWVudGVkLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWdtZW50ZWQtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtWaWV3RW5jYXBzdWxhdGlvblByb3ZpZGVyXSxcbiAgZXhwb3J0QXM6ICdzcFNlZ21lbnRlZFRhYnMnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFsaWduXSc6ICdudWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VnbWVudGVkVGFic0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICBAVmlld0NoaWxkKCdzZWdtZW50ZWRDb250cm9sJykgc2VnbWVudGVkQ29udHJvbCE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqIFNpemUgb2YgdGFicyAqL1xuICBASW5wdXQoKVxuICBzaXplOiAnc20nIHwgJ21kJyB8ICdsZycgPSAnbWQnO1xuXG4gIC8qKlxuICAgKiBBbGlnbm1lbnQgb2YgdGFicycgYnV0dG9ucyBncm91cC5cbiAgICogQGRlZmF1bHQgJ2xlZnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICdzdHJldGNoJyA9ICdsZWZ0JztcblxuICAvKiogV2hldGhlciB0YWJzIGFyZSBhY3RpdmF0ZWQgYXV0b21hdGljYWxseSBvbiBmb2N1cyBvciBtYW51YWxseS4gKi9cbiAgQElucHV0KClcbiAga2V5Ym9hcmRBY3RpdmF0aW9uPzogJ21hbnVhbCcgfCAnYXV0b21hdGljJyA9ICdhdXRvbWF0aWMnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbnRpcmUgY29tcG9uZW50IHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBASW5wdXQoKVxuICBAQ29lcmNlQm9vbGVhblxuICBkaXNhYmxlZDogQm9vbGVhbklucHV0O1xuXG4gIC8qKiBJbmRleCBvZiB0aGUgc2VsZWN0ZWQgdGFiICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXggfHwgMDtcbiAgfVxuICBzZXQgc2VsZWN0ZWRJbmRleCh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJbmRleD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfZm9jdXNlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFNlZ21lbnRlZFRhYkNvbXBvbmVudCkpXG4gIHJlYWRvbmx5IHRhYnM6IFF1ZXJ5TGlzdDxTZWdtZW50ZWRUYWJDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdCgpO1xuICBwcml2YXRlIF90YWJJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIgfCB1bmRlZmluZWQ7XG4gIF9hY3RpdmVUYWJQb3NpdGlvbiA9IHsgbGVmdDogJzBweCcsIHdpZHRoOiAnMHB4JyB9O1xuICBfYW5pbWF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICBfZm9jdXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5za2lwQW5pbWF0aW9uRnJhbWUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJJZHMgPSB0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi5pZCk7XG4gICAgdGhpcy50YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25UYWJzQ2hhbmdlKCk7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5maW5kRm9jdXNhYmxlSW5kZXgoMCwgJ3JpZ2h0JykgfHwgMDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoZSB2YWx1ZSBvZiBcIl9nZXRUYWJDb250ZW50VGVtcGxhdGVcIiwgd2hpY2ggaXMgYm91bmQgaW4gdGhlXG4gICAgLy8gdGVtcGxhdGUsIGNoYW5nZXMgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gY2hlY2tlZC4gVGhpc1xuICAgIC8vIFwiZGV0ZWN0Q2hhbmdlcygpXCIgYXZvaWRzIHRoZSBcIk5HMDEwMDogRXhwcmVzc2lvbiBoYXNcbiAgICAvLyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCIgYW5ndWxhciBlcnJvci5cbiAgICAvL1xuICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMvTkcwMTAwXG4gICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgLy8gem9uZWpzIGRvZXNuJ3QgbW9ua2V5LXBhdGNoIHJlc2l6ZSBvYnNlcnZlciAoeWV0KVxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlVGFiUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuc2VnbWVudGVkQ29udHJvbC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLnNlZ21lbnRlZENvbnRyb2wubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0Rm9jdXNlZFRhYigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnRvQXJyYXkoKVt0aGlzLl9mb2N1c2VkSW5kZXhdO1xuICB9XG5cbiAgc2VsZWN0VGFiKHNlbGVjdGVkVGFiOiBTZWdtZW50ZWRUYWJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLnRhYnNcbiAgICAgIC50b0FycmF5KClcbiAgICAgIC5maW5kSW5kZXgoKHRhYikgPT4gdGFiID09PSBzZWxlY3RlZFRhYik7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQodGFiOiBTZWdtZW50ZWRUYWJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzPy50b0FycmF5KCkuaW5kZXhPZih0YWIpID09PSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBfZ2V0VGFiQ29udGVudFRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0/Ll9jb250ZW50VGVtcGxhdGUgfHwgbnVsbDtcbiAgfVxuXG4gIF9vbkZvY3VzQ2hhbmdlKG9yaWdpbjogRm9jdXNPcmlnaW4pIHtcbiAgICB0aGlzLl9mb2N1c1Zpc2libGUgPSBvcmlnaW4gPT09ICdrZXlib2FyZCc7XG4gICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICBfb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgZm9jdXNOZXh0VmFsaWRUYWIgPSAoXG4gICAgICB0YXJnZXRJbmRleDogbnVtYmVyLFxuICAgICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnXG4gICAgKSA9PiB7XG4gICAgICBpZiAodGhpcy50YWJzLnRvQXJyYXkoKS5ldmVyeSgodGFiKSA9PiB0YWIuZGlzYWJsZWQpKSByZXR1cm47XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEZvY3VzYWJsZUluZGV4KHRhcmdldEluZGV4LCBkaXJlY3Rpb24pO1xuICAgICAgaWYgKGluZGV4ID09PSBudWxsKSByZXR1cm47XG4gICAgICBjb25zdCBidXR0b24gPSB0aGlzLnRhYnMudG9BcnJheSgpW2luZGV4XS5fYnV0dG9uPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKCFidXR0b24pIHJldHVybjtcbiAgICAgIGJ1dHRvbi5mb2N1cygpO1xuICAgICAgaWYgKHRoaXMua2V5Ym9hcmRBY3RpdmF0aW9uID09PSAnYXV0b21hdGljJykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgfVxuICAgIH07XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZvY3VzTmV4dFZhbGlkVGFiKHRoaXMuX2ZvY3VzZWRJbmRleCAtIDEsICdsZWZ0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZvY3VzTmV4dFZhbGlkVGFiKHRoaXMuX2ZvY3VzZWRJbmRleCArIDEsICdyaWdodCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0hvbWUnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYigwLCAncmlnaHQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbmQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLnRhYnMubGVuZ3RoIC0gMSwgJ2xlZnQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVUYWJQb3NpdGlvbigpIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0/Ll9idXR0b24/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fYWN0aXZlVGFiUG9zaXRpb24gPSB7XG4gICAgICBsZWZ0OiBgJHt0YWI/Lm9mZnNldExlZnQgfHwgMH1weGAsXG4gICAgICB3aWR0aDogYCR7dGFiPy5jbGllbnRXaWR0aCB8fCAwfXB4YCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvblRhYnNDaGFuZ2UoKSB7XG4gICAgLy8gRW5zdXJlIHRoZSBjdXJyZW50IHRhYiBkb2Vzbid0IGNoYW5nZSBpZiB0YWJzIGNoYW5nZVxuICAgIC8vIGFuZCB0YWIgd2l0aCBjdXJyZW50bHkgc2VsZWN0ZWQgaWQgc3RpbGwgZXhpc3RzXG4gICAgY29uc3QgcHJldmlvdXNUYWJJZCA9IHRoaXMuX3RhYklkc1t0aGlzLnNlbGVjdGVkSW5kZXhdO1xuICAgIHRoaXMuX3RhYklkcyA9IHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmlkKTtcbiAgICBpZiAodGhpcy5fdGFiSWRzLmluY2x1ZGVzKHByZXZpb3VzVGFiSWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLl90YWJJZHMuZmluZEluZGV4KFxuICAgICAgICAodGFiSWQpID0+IHRhYklkID09PSBwcmV2aW91c1RhYklkXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXhJbmRleCA9IHRoaXMudGFicy5sZW5ndGggLSAxO1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+IG1heEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG1heEluZGV4O1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNraXBBbmltYXRpb25GcmFtZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBza2lwQW5pbWF0aW9uRnJhbWUoKSB7XG4gICAgLy8gV2Ugd2FudCB0byBhdm9pZCBhbmltYXRpb24gb24gZmlyc3QgcmVuZGVyIGFuZCB3aGVuZXZlciB0YWIgY29udGVudCBjaGFuZ2VzXG4gICAgdGhpcy5fYW5pbWF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9hbmltYXRpb25FbmFibGVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZvY3VzYWJsZUluZGV4KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLnRhYnMudG9BcnJheSgpLmV2ZXJ5KCh0YWIpID0+IHRhYi5kaXNhYmxlZCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNvbnN0cmFpbkluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpbmRleCA+PSB0aGlzLnRhYnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSBlbHNlIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgY29uc3RyYWluZWRJbmRleCA9IGNvbnN0cmFpbkluZGV4KGluZGV4KTtcbiAgICBpZiAodGhpcy50YWJzLnRvQXJyYXkoKVtjb25zdHJhaW5lZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEZvY3VzYWJsZUluZGV4KFxuICAgICAgICBjb25zdHJhaW5lZEluZGV4ICsgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gLTEgOiAxKSxcbiAgICAgICAgZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29uc3RyYWluZWRJbmRleDtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgI3NlZ21lbnRlZENvbnRyb2xcbiAgY2xhc3M9XCJzYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbFwiXG4gIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tbGddPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tc21dPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gIFtjbGFzcy5mb2N1cy12aXNpYmxlXT1cIl9mb2N1c1Zpc2libGVcIlxuICBbY2xhc3Muc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2wtLW1hbnVhbC1rZXlib2FyZC1hY3RpdmF0aW9uXT1cIlxuICAgIGtleWJvYXJkQWN0aXZhdGlvbiA9PT0gJ21hbnVhbCdcbiAgXCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgYWxpZ24gPT09ICdzdHJldGNoJ1xuICAgICAgPyAnc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2wtLXN0cmV0Y2gnXG4gICAgICA6ICdzYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tYWxpZ24tJyArIGFsaWduXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19idXR0b24tY29udGFpbmVyXCJcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgICAoY2RrRm9jdXNDaGFuZ2UpPVwiX29uRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLXNlZ21lbnRlZC10YWJcIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW5cbiAgICAgIFtzdHlsZS5sZWZ0XT1cIl9hY3RpdmVUYWJQb3NpdGlvbi5sZWZ0XCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJfYWN0aXZlVGFiUG9zaXRpb24ud2lkdGhcIlxuICAgICAgW2NsYXNzLnNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19nbGlkZXItLXdpdGgtdHJhbnNpdGlvbl09XCJcbiAgICAgICAgX2FuaW1hdGlvbkVuYWJsZWRcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cInNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19nbGlkZXJcIlxuICAgICAgcm9sZT1cIm5vbmVcIlxuICAgID48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2dldFRhYkNvbnRlbnRUZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxvQkFBb0IsR0FFckIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUFZckYsTUFBTSxPQUFPLHNCQUFzQjtJQXlCakMsZ0NBQWdDO0lBQ2hDLElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLEtBQWtCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFnQkQsWUFBb0IsSUFBWSxFQUFVLGNBQWlDO1FBQXZELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUE1QzNFLG1CQUFtQjtRQUVuQixTQUFJLEdBQXVCLElBQUksQ0FBQztRQUVoQzs7O1dBR0c7UUFFSCxVQUFLLEdBQTZDLE1BQU0sQ0FBQztRQUV6RCxxRUFBcUU7UUFFckUsdUJBQWtCLEdBQTRCLFdBQVcsQ0FBQztRQWlCbEQsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFZix3QkFBbUIsR0FDcEMsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdwQixTQUFJLEdBQXFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDMUQsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUcvQixrQkFBYSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3BCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYiwrREFBK0Q7UUFDL0QsMERBQTBEO1FBQzFELHVEQUF1RDtRQUN2RCwrQ0FBK0M7UUFDL0MsRUFBRTtRQUNGLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUM1QyxvREFBb0Q7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVMsQ0FBQyxXQUFrQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQzNCLE9BQU8sRUFBRTthQUNULFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBMEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7SUFDM0UsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sS0FBSyxVQUFVLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixXQUFtQixFQUNuQixTQUEyQixFQUMzQixFQUFFO1lBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFBRSxPQUFPO1lBQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDOUQsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxPQUFPO1lBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQztZQUNqRSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLFdBQVcsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25EO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2pCLEtBQUssV0FBVyxDQUFDLENBQUM7Z0JBQ2hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2xELE1BQU07YUFDUDtZQUNELEtBQUssWUFBWSxDQUFDLENBQUM7Z0JBQ2pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ25ELE1BQU07YUFDUDtZQUNELEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDOUIsTUFBTTthQUNQO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDVixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRCxNQUFNO2FBQ1A7WUFDRDtnQkFDRSxPQUFPO1NBQ1Y7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsSUFBSSxFQUFFLEdBQUcsVUFBVSxJQUFJO1lBQ3ZCLEtBQUssRUFBRSxHQUFHLFdBQVcsSUFBSTtTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQzVFLE9BQU87WUFDTCxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxHQUFHLEVBQUUsV0FBVyxJQUFJLENBQUM7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZO1FBQ2xCLHVEQUF1RDtRQUN2RCxrREFBa0Q7UUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDekMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxhQUFhLENBQ25DLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO2dCQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuRDtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4Qiw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsS0FBYSxFQUNiLFNBQTJCO1FBRTNCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsRSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3ZDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUM3QixPQUFPLENBQUMsQ0FBQzthQUNWO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUIsZ0JBQWdCLEdBQUcsQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xELFNBQVMsQ0FDVixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDOzttSEExT1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsK1JBTnRCLENBQUMseUJBQXlCLENBQUMsa0ZBOENKLHFCQUFxQixzTEM5RXpELHNxQ0FvQ0E7QUR5QkU7SUFEQyxhQUFhO3dEQUNTOzJGQXZCWixzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMseUJBQXlCLENBQUMsWUFDNUIsaUJBQWlCLFFBQ3JCO3dCQUNKLGNBQWMsRUFBRSxNQUFNO3FCQUN2Qjs2SEFLOEIsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFJN0IsSUFBSTtzQkFESCxLQUFLO2dCQVFOLEtBQUs7c0JBREosS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBTU4sUUFBUTtzQkFGUCxLQUFLO2dCQU1GLGFBQWE7c0JBRGhCLEtBQUs7Z0JBV2EsbUJBQW1CO3NCQUFyQyxNQUFNO2dCQUlFLElBQUk7c0JBRFosZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlTnVtYmVyUHJvcGVydHksXG4gIE51bWJlcklucHV0LFxufSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENvZXJjZUJvb2xlYW4gfSBmcm9tICcuLi8uLi9jb21tb24vY29lcmNlLWJvb2xlYW4uZGVjb3JhdG9yJztcbmltcG9ydCB7IFNlZ21lbnRlZFRhYkNvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudGVkLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld0VuY2Fwc3VsYXRpb25Qcm92aWRlciB9IGZyb20gJy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1zZWdtZW50ZWQtdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50ZWQtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlZ21lbnRlZC10YWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1ZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXJdLFxuICBleHBvcnRBczogJ3NwU2VnbWVudGVkVGFicycsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYWxpZ25dJzogJ251bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZWdtZW50ZWRUYWJzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gIEBWaWV3Q2hpbGQoJ3NlZ21lbnRlZENvbnRyb2wnKSBzZWdtZW50ZWRDb250cm9sITogRWxlbWVudFJlZjtcblxuICAvKiogU2l6ZSBvZiB0YWJzICovXG4gIEBJbnB1dCgpXG4gIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyA9ICdtZCc7XG5cbiAgLyoqXG4gICAqIEFsaWdubWVudCBvZiB0YWJzJyBidXR0b25zIGdyb3VwLlxuICAgKiBAZGVmYXVsdCAnbGVmdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnIHwgJ3N0cmV0Y2gnID0gJ2xlZnQnO1xuXG4gIC8qKiBXaGV0aGVyIHRhYnMgYXJlIGFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IG9uIGZvY3VzIG9yIG1hbnVhbGx5LiAqL1xuICBASW5wdXQoKVxuICBrZXlib2FyZEFjdGl2YXRpb24/OiAnbWFudWFsJyB8ICdhdXRvbWF0aWMnID0gJ2F1dG9tYXRpYyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGVudGlyZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpXG4gIEBDb2VyY2VCb29sZWFuXG4gIGRpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqIEluZGV4IG9mIHRoZSBzZWxlY3RlZCB0YWIgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleCB8fCAwO1xuICB9XG4gIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fZm9jdXNlZEluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4PzogbnVtYmVyO1xuICBwcml2YXRlIF9mb2N1c2VkSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkSW5kZXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gU2VnbWVudGVkVGFiQ29tcG9uZW50KSlcbiAgcmVhZG9ubHkgdGFiczogUXVlcnlMaXN0PFNlZ21lbnRlZFRhYkNvbXBvbmVudD4gPSBuZXcgUXVlcnlMaXN0KCk7XG4gIHByaXZhdGUgX3RhYklkczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IHVuZGVmaW5lZDtcbiAgX2dsaWRlclN0eWxlcyA9IHsgbGVmdDogJzBweCcsIHdpZHRoOiAnMHB4JyB9O1xuICBfYW5pbWF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICBfZm9jdXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5za2lwQW5pbWF0aW9uRnJhbWUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJJZHMgPSB0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi5pZCk7XG4gICAgdGhpcy50YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25UYWJzQ2hhbmdlKCk7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5maW5kRm9jdXNhYmxlSW5kZXgoMCwgJ3JpZ2h0JykgfHwgMDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoZSB2YWx1ZSBvZiBcIl9nZXRUYWJDb250ZW50VGVtcGxhdGVcIiwgd2hpY2ggaXMgYm91bmQgaW4gdGhlXG4gICAgLy8gdGVtcGxhdGUsIGNoYW5nZXMgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gY2hlY2tlZC4gVGhpc1xuICAgIC8vIFwiZGV0ZWN0Q2hhbmdlcygpXCIgYXZvaWRzIHRoZSBcIk5HMDEwMDogRXhwcmVzc2lvbiBoYXNcbiAgICAvLyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCIgYW5ndWxhciBlcnJvci5cbiAgICAvL1xuICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMvTkcwMTAwXG4gICAgdGhpcy5zZXRHbGlkZXJTdHlsZXMoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIC8vIHpvbmVqcyBkb2Vzbid0IG1vbmtleS1wYXRjaCByZXNpemUgb2JzZXJ2ZXIgKHlldClcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEdsaWRlclN0eWxlcygpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5zZWdtZW50ZWRDb250cm9sLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRHbGlkZXJTdHlsZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLnNlZ21lbnRlZENvbnRyb2wubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRHbGlkZXJTdHlsZXMoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldEZvY3VzZWRUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFicy50b0FycmF5KClbdGhpcy5fZm9jdXNlZEluZGV4XTtcbiAgfVxuXG4gIHNlbGVjdFRhYihzZWxlY3RlZFRhYjogU2VnbWVudGVkVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy50YWJzXG4gICAgICAudG9BcnJheSgpXG4gICAgICAuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gc2VsZWN0ZWRUYWIpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gIH1cblxuICBpc1NlbGVjdGVkKHRhYjogU2VnbWVudGVkVGFiQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicz8udG9BcnJheSgpLmluZGV4T2YodGFiKSA9PT0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgX2dldFRhYkNvbnRlbnRUZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnRvQXJyYXkoKVt0aGlzLnNlbGVjdGVkSW5kZXhdPy5fY29udGVudFRlbXBsYXRlIHx8IG51bGw7XG4gIH1cblxuICBfb25Gb2N1c0NoYW5nZShvcmlnaW46IEZvY3VzT3JpZ2luKSB7XG4gICAgdGhpcy5fZm9jdXNWaXNpYmxlID0gb3JpZ2luID09PSAna2V5Ym9hcmQnO1xuICAgIGlmICghb3JpZ2luKSB7XG4gICAgICB0aGlzLl9mb2N1c2VkSW5kZXggPSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGZvY3VzTmV4dFZhbGlkVGFiID0gKFxuICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcixcbiAgICAgIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICkgPT4ge1xuICAgICAgaWYgKHRoaXMudGFicy50b0FycmF5KCkuZXZlcnkoKHRhYikgPT4gdGFiLmRpc2FibGVkKSkgcmV0dXJuO1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRGb2N1c2FibGVJbmRleCh0YXJnZXRJbmRleCwgZGlyZWN0aW9uKTtcbiAgICAgIGlmIChpbmRleCA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgY29uc3QgYnV0dG9uID0gdGhpcy50YWJzLnRvQXJyYXkoKVtpbmRleF0uX2J1dHRvbj8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmICghYnV0dG9uKSByZXR1cm47XG4gICAgICBidXR0b24uZm9jdXMoKTtcbiAgICAgIGlmICh0aGlzLmtleWJvYXJkQWN0aXZhdGlvbiA9PT0gJ2F1dG9tYXRpYycpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9mb2N1c2VkSW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLl9mb2N1c2VkSW5kZXggLSAxLCAnbGVmdCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLl9mb2N1c2VkSW5kZXggKyAxLCAncmlnaHQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdIb21lJzoge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZm9jdXNOZXh0VmFsaWRUYWIoMCwgJ3JpZ2h0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZm9jdXNOZXh0VmFsaWRUYWIodGhpcy50YWJzLmxlbmd0aCAtIDEsICdsZWZ0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0R2xpZGVyU3R5bGVzKCkge1xuICAgIGNvbnN0IHsgb2Zmc2V0TGVmdCwgY2xpZW50V2lkdGggfSA9IHRoaXMuZ2V0U2VsZWN0ZWRUYWJQb3NpdGlvbigpO1xuICAgIHRoaXMuX2dsaWRlclN0eWxlcyA9IHtcbiAgICAgIGxlZnQ6IGAke29mZnNldExlZnR9cHhgLFxuICAgICAgd2lkdGg6IGAke2NsaWVudFdpZHRofXB4YCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZFRhYlBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFicy50b0FycmF5KClbdGhpcy5zZWxlY3RlZEluZGV4XT8uX2J1dHRvbj8ubmF0aXZlRWxlbWVudDtcbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0TGVmdDogdGFiPy5vZmZzZXRMZWZ0IHx8IDAsXG4gICAgICBjbGllbnRXaWR0aDogdGFiPy5jbGllbnRXaWR0aCB8fCAwLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG9uVGFic0NoYW5nZSgpIHtcbiAgICAvLyBFbnN1cmUgdGhlIGN1cnJlbnQgdGFiIGRvZXNuJ3QgY2hhbmdlIGlmIHRhYnMgY2hhbmdlXG4gICAgLy8gYW5kIHRhYiB3aXRoIGN1cnJlbnRseSBzZWxlY3RlZCBpZCBzdGlsbCBleGlzdHNcbiAgICBjb25zdCBwcmV2aW91c1RhYklkID0gdGhpcy5fdGFiSWRzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgdGhpcy5fdGFiSWRzID0gdGhpcy50YWJzLm1hcCgodGFiKSA9PiB0YWIuaWQpO1xuICAgIGlmICh0aGlzLl90YWJJZHMuaW5jbHVkZXMocHJldmlvdXNUYWJJZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuX3RhYklkcy5maW5kSW5kZXgoXG4gICAgICAgICh0YWJJZCkgPT4gdGFiSWQgPT09IHByZXZpb3VzVGFiSWRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1heEluZGV4ID0gdGhpcy50YWJzLmxlbmd0aCAtIDE7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gbWF4SW5kZXgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gbWF4SW5kZXg7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2tpcEFuaW1hdGlvbkZyYW1lKCk7XG4gIH1cblxuICBwcml2YXRlIHNraXBBbmltYXRpb25GcmFtZSgpIHtcbiAgICAvLyBXZSB3YW50IHRvIGF2b2lkIGFuaW1hdGlvbiBvbiBmaXJzdCByZW5kZXIgYW5kIHdoZW5ldmVyIHRhYiBjb250ZW50IGNoYW5nZXNcbiAgICB0aGlzLl9hbmltYXRpb25FbmFibGVkID0gZmFsc2U7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkVuYWJsZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRm9jdXNhYmxlSW5kZXgoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCdcbiAgKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudGFicy50b0FycmF5KCkuZXZlcnkoKHRhYikgPT4gdGFiLmRpc2FibGVkKSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY29uc3RyYWluSW5kZXggPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKGluZGV4ID49IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9IGVsc2UgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJzLmxlbmd0aCAtIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBjb25zdHJhaW5lZEluZGV4ID0gY29uc3RyYWluSW5kZXgoaW5kZXgpO1xuICAgIGlmICh0aGlzLnRhYnMudG9BcnJheSgpW2NvbnN0cmFpbmVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kRm9jdXNhYmxlSW5kZXgoXG4gICAgICAgIGNvbnN0cmFpbmVkSW5kZXggKyAoZGlyZWN0aW9uID09PSAnbGVmdCcgPyAtMSA6IDEpLFxuICAgICAgICBkaXJlY3Rpb25cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb25zdHJhaW5lZEluZGV4O1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAjc2VnbWVudGVkQ29udHJvbFxuICBjbGFzcz1cInNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sXCJcbiAgW2NsYXNzLnNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sLS1sZ109XCJzaXplID09PSAnbGcnXCJcbiAgW2NsYXNzLnNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sLS1zbV09XCJzaXplID09PSAnc20nXCJcbiAgW2NsYXNzLmZvY3VzLXZpc2libGVdPVwiX2ZvY3VzVmlzaWJsZVwiXG4gIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tbWFudWFsLWtleWJvYXJkLWFjdGl2YXRpb25dPVwiXG4gICAga2V5Ym9hcmRBY3RpdmF0aW9uID09PSAnbWFudWFsJ1xuICBcIlxuICBbbmdDbGFzc109XCJcbiAgICBhbGlnbiA9PT0gJ3N0cmV0Y2gnXG4gICAgICA/ICdzYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tc3RyZXRjaCdcbiAgICAgIDogJ3NhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sLS1hbGlnbi0nICsgYWxpZ25cbiAgXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2xfX2J1dHRvbi1jb250YWluZXJcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCJcbiAgICBhcmlhLW9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xuICAgIChjZGtGb2N1c0NoYW5nZSk9XCJfb25Gb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJfb25LZXlEb3duKCRldmVudClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3Atc2VnbWVudGVkLXRhYlwiPjwvbmctY29udGVudD5cbiAgICA8c3BhblxuICAgICAgW3N0eWxlLmxlZnRdPVwiX2dsaWRlclN0eWxlcy5sZWZ0XCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJfZ2xpZGVyU3R5bGVzLndpZHRoXCJcbiAgICAgIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbF9fZ2xpZGVyLS13aXRoLXRyYW5zaXRpb25dPVwiXG4gICAgICAgIF9hbmltYXRpb25FbmFibGVkXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJzYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbF9fZ2xpZGVyXCJcbiAgICAgIHJvbGU9XCJub25lXCJcbiAgICA+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIl9nZXRUYWJDb250ZW50VGVtcGxhdGUoKVwiPjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -13,4 +13,5 @@ export * from './src/table-head.directive';
|
|
|
13
13
|
export * from './src/table-sort.directive';
|
|
14
14
|
export * from './src/table-sort-header.directive';
|
|
15
15
|
export * from './src/table.module';
|
|
16
|
-
|
|
16
|
+
export { CdkVirtualScrollViewportFixDirective } from './src/cdk-virtual-scroll-viewport-fix.directive';
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdGFibGUvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBNEU7QUFDNUUsNkVBQTZFO0FBQzdFLHNEQUFzRDtBQUN0RCxXQUFXO0FBQ1gsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gV2UgaGF2ZSBzZXBhcmF0ZSBwdWJsaWNfYXBpLnRzIGZpbGUgZm9yIGVhY2ggYW5ndWxhciBtb2R1bGUsIHRvIGhhdmUgdGhlbVxuLy8gZXhwb3NlZCBhcyBzZXBhcmF0ZSBlbnRyeSBwb2ludHMuIFRoZSBidWlsZCBpcyBzdGlsbCBub3QgZW1pdHRpbmcgc2VwYXJhdGVcbi8vIGVudHJ5IHBvaW50cywgd2hpY2ggd2lsbCBiZSBhZGRyZXNzZWQgaW4gdGhpcyB0YXNrOlxuLy8gV0NDSi04MzhcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90YWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90YWJsZS1jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90YWJsZS1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLWJvZHkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLWhlYWQtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFibGUtaGVhZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFibGUtc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFibGUtc29ydC1oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLm1vZHVsZSc7XG5leHBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnRGaXhEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQtZml4LmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/cdk/scrolling";
|
|
4
|
+
/**
|
|
5
|
+
* A patch to fix the issue of sticky header position getting affected
|
|
6
|
+
* by transform, which is due to transform making the element
|
|
7
|
+
* a [containing block](https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block).
|
|
8
|
+
*
|
|
9
|
+
* It intercepts style assignments on the content wrapper, and converts
|
|
10
|
+
* transform: translateY(value) to top: value, to avoid making the content
|
|
11
|
+
* wrapper a containing block for sticky positioned children.
|
|
12
|
+
*
|
|
13
|
+
* @see
|
|
14
|
+
* https://github.com/angular/components/issues/14833
|
|
15
|
+
* https://github.com/angular/components/issues/18240
|
|
16
|
+
* https://github.com/angular/components/issues/21576
|
|
17
|
+
* https://github.com/angular/components/issues/28584
|
|
18
|
+
*/
|
|
19
|
+
export class CdkVirtualScrollViewportFixDirective {
|
|
20
|
+
constructor(cdkViewport) {
|
|
21
|
+
this.cdkViewport = cdkViewport;
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
const contentWrapper = this.cdkViewport._contentWrapper.nativeElement;
|
|
25
|
+
/**
|
|
26
|
+
* Proxy to set `top: {value}px` instead of `transform: translateY({value}px)`
|
|
27
|
+
* whenever `style.transform` is set.
|
|
28
|
+
*/
|
|
29
|
+
const styleProxy = new Proxy(contentWrapper.style, {
|
|
30
|
+
set: (target, prop, value) => {
|
|
31
|
+
const top = prop === 'transform'
|
|
32
|
+
? value?.match(/translateY\((\d+)px\)/)?.[1]
|
|
33
|
+
: undefined;
|
|
34
|
+
if (top) {
|
|
35
|
+
target['top'] = `${top}px`;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
target[prop] = value;
|
|
39
|
+
return true;
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
// Not directly setting style proxy to contentWrapper.style, to limit
|
|
43
|
+
// it to the styles set by CdkVirtualScrollViewport.
|
|
44
|
+
// i.e. only setting `top` instead of `transform`, when set by cdk viewport.
|
|
45
|
+
this.cdkViewport._contentWrapper.nativeElement = new Proxy(contentWrapper, {
|
|
46
|
+
get: (target, prop) => {
|
|
47
|
+
return prop === 'style' ? styleProxy : target[prop];
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
CdkVirtualScrollViewportFixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CdkVirtualScrollViewportFixDirective, deps: [{ token: i1.CdkVirtualScrollViewport }], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
CdkVirtualScrollViewportFixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: CdkVirtualScrollViewportFixDirective, isStandalone: true, selector: "cdk-virtual-scroll-viewport", ngImport: i0 });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CdkVirtualScrollViewportFixDirective, decorators: [{
|
|
55
|
+
type: Directive,
|
|
56
|
+
args: [{
|
|
57
|
+
selector: 'cdk-virtual-scroll-viewport',
|
|
58
|
+
standalone: true,
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i1.CdkVirtualScrollViewport }]; } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0LWZpeC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlL3NyYy9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQtZml4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFHbEQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFLSCxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQW9CLFdBQXFDO1FBQXJDLGdCQUFXLEdBQVgsV0FBVyxDQUEwQjtJQUFHLENBQUM7SUFFN0QsUUFBUTtRQUNOLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUN0RTs7O1dBR0c7UUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1lBQ2pELEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzNCLE1BQU0sR0FBRyxHQUNQLElBQUksS0FBSyxXQUFXO29CQUNsQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNoQixJQUFJLEdBQUcsRUFBRTtvQkFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztvQkFDM0IsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBQ0EsTUFBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDOUIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgscUVBQXFFO1FBQ3JFLG9EQUFvRDtRQUNwRCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsYUFBYSxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUN6RSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0QsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2lJQWhDVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQzsyRkFBcEMsb0NBQW9DO2tCQUpoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuLyoqXG4gKiBBIHBhdGNoIHRvIGZpeCB0aGUgaXNzdWUgb2Ygc3RpY2t5IGhlYWRlciBwb3NpdGlvbiBnZXR0aW5nIGFmZmVjdGVkXG4gKiBieSB0cmFuc2Zvcm0sIHdoaWNoIGlzIGR1ZSB0byB0cmFuc2Zvcm0gbWFraW5nIHRoZSBlbGVtZW50XG4gKiBhIFtjb250YWluaW5nIGJsb2NrXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jaykuXG4gKlxuICogSXQgaW50ZXJjZXB0cyBzdHlsZSBhc3NpZ25tZW50cyBvbiB0aGUgY29udGVudCB3cmFwcGVyLCBhbmQgY29udmVydHNcbiAqIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YWx1ZSkgdG8gdG9wOiB2YWx1ZSwgdG8gYXZvaWQgbWFraW5nIHRoZSBjb250ZW50XG4gKiB3cmFwcGVyIGEgY29udGFpbmluZyBibG9jayBmb3Igc3RpY2t5IHBvc2l0aW9uZWQgY2hpbGRyZW4uXG4gKlxuICogQHNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMTQ4MzNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzE4MjQwXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMTU3NlxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjg1ODRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0Rml4RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZGtWaWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gdGhpcy5jZGtWaWV3cG9ydC5fY29udGVudFdyYXBwZXIubmF0aXZlRWxlbWVudDtcbiAgICAvKipcbiAgICAgKiBQcm94eSB0byBzZXQgYHRvcDoge3ZhbHVlfXB4YCBpbnN0ZWFkIG9mIGB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoe3ZhbHVlfXB4KWBcbiAgICAgKiB3aGVuZXZlciBgc3R5bGUudHJhbnNmb3JtYCBpcyBzZXQuXG4gICAgICovXG4gICAgY29uc3Qgc3R5bGVQcm94eSA9IG5ldyBQcm94eShjb250ZW50V3JhcHBlci5zdHlsZSwge1xuICAgICAgc2V0OiAodGFyZ2V0LCBwcm9wLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3A6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgcHJvcCA9PT0gJ3RyYW5zZm9ybSdcbiAgICAgICAgICAgID8gdmFsdWU/Lm1hdGNoKC90cmFuc2xhdGVZXFwoKFxcZCspcHhcXCkvKT8uWzFdXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRvcCkge1xuICAgICAgICAgIHRhcmdldFsndG9wJ10gPSBgJHt0b3B9cHhgO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgICh0YXJnZXQgYXMgYW55KVtwcm9wXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBOb3QgZGlyZWN0bHkgc2V0dGluZyBzdHlsZSBwcm94eSB0byBjb250ZW50V3JhcHBlci5zdHlsZSwgdG8gbGltaXRcbiAgICAvLyBpdCB0byB0aGUgc3R5bGVzIHNldCBieSBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQuXG4gICAgLy8gaS5lLiBvbmx5IHNldHRpbmcgYHRvcGAgaW5zdGVhZCBvZiBgdHJhbnNmb3JtYCwgd2hlbiBzZXQgYnkgY2RrIHZpZXdwb3J0LlxuICAgIHRoaXMuY2RrVmlld3BvcnQuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQgPSBuZXcgUHJveHkoY29udGVudFdyYXBwZXIsIHtcbiAgICAgIGdldDogKHRhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICByZXR1cm4gcHJvcCA9PT0gJ3N0eWxlJyA/IHN0eWxlUHJveHkgOiAodGFyZ2V0IGFzIGFueSlbcHJvcF07XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -13,6 +13,7 @@ import { TruncatedWithTooltipDirective } from '../../tooltip/public_api';
|
|
|
13
13
|
import { UseComponentStyles } from '../../common/sapphire-view-encapsulation';
|
|
14
14
|
import { TableDirective } from './table.directive';
|
|
15
15
|
import { TableFooterDirective } from './table-footer.directive';
|
|
16
|
+
import { CdkVirtualScrollViewportFixDirective } from './cdk-virtual-scroll-viewport-fix.directive';
|
|
16
17
|
import * as i0 from "@angular/core";
|
|
17
18
|
export class SapphireTableModule {
|
|
18
19
|
}
|
|
@@ -29,6 +30,7 @@ SapphireTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
29
30
|
TableSortHeaderDirective], imports: [CommonModule,
|
|
30
31
|
SapphireIconModule,
|
|
31
32
|
TruncatedWithTooltipDirective,
|
|
33
|
+
CdkVirtualScrollViewportFixDirective,
|
|
32
34
|
UseComponentStyles], exports: [TableComponent,
|
|
33
35
|
TableDirective,
|
|
34
36
|
TableBodyDirective,
|
|
@@ -38,7 +40,8 @@ SapphireTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
38
40
|
TableHeadCellComponent,
|
|
39
41
|
TableCellDirective,
|
|
40
42
|
TableSortDirective,
|
|
41
|
-
TableSortHeaderDirective
|
|
43
|
+
TableSortHeaderDirective,
|
|
44
|
+
CdkVirtualScrollViewportFixDirective] });
|
|
42
45
|
SapphireTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireTableModule, imports: [CommonModule,
|
|
43
46
|
SapphireIconModule] });
|
|
44
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireTableModule, decorators: [{
|
|
@@ -60,6 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
60
63
|
CommonModule,
|
|
61
64
|
SapphireIconModule,
|
|
62
65
|
TruncatedWithTooltipDirective,
|
|
66
|
+
CdkVirtualScrollViewportFixDirective,
|
|
63
67
|
UseComponentStyles,
|
|
64
68
|
],
|
|
65
69
|
exports: [
|
|
@@ -73,7 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
73
77
|
TableCellDirective,
|
|
74
78
|
TableSortDirective,
|
|
75
79
|
TableSortHeaderDirective,
|
|
80
|
+
CdkVirtualScrollViewportFixDirective,
|
|
76
81
|
],
|
|
77
82
|
}]
|
|
78
83
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90YWJsZS9zcmMvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBb0NuRyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBaEM1QixjQUFjO1FBQ2QsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQix3QkFBd0IsYUFHeEIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQiw2QkFBNkI7UUFDN0Isb0NBQW9DO1FBQ3BDLGtCQUFrQixhQUdsQixjQUFjO1FBQ2QsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsb0NBQW9DO2lIQUczQixtQkFBbUIsWUFwQjVCLFlBQVk7UUFDWixrQkFBa0I7MkZBbUJULG1CQUFtQjtrQkFsQy9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQiw2QkFBNkI7d0JBQzdCLG9DQUFvQzt3QkFDcEMsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixvQ0FBb0M7cUJBQ3JDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQm9keURpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtYm9keS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFibGVIZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1oZWFkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZVJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZUhlYWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1oZWFkLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFibGVTb3J0SGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1zb3J0LWhlYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFibGVTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1zb3J0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTYXBwaGlyZUljb25Nb2R1bGUgfSBmcm9tICcuLi8uLi9pY29uL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgVHJ1bmNhdGVkV2l0aFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5pbXBvcnQgeyBUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYmxlRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1mb290ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydEZpeERpcmVjdGl2ZSB9IGZyb20gJy4vY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0LWZpeC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURpcmVjdGl2ZSxcbiAgICBUYWJsZUJvZHlEaXJlY3RpdmUsXG4gICAgVGFibGVGb290ZXJEaXJlY3RpdmUsXG4gICAgVGFibGVIZWFkRGlyZWN0aXZlLFxuICAgIFRhYmxlUm93RGlyZWN0aXZlLFxuICAgIFRhYmxlSGVhZENlbGxDb21wb25lbnQsXG4gICAgVGFibGVDZWxsRGlyZWN0aXZlLFxuICAgIFRhYmxlU29ydERpcmVjdGl2ZSxcbiAgICBUYWJsZVNvcnRIZWFkZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2FwcGhpcmVJY29uTW9kdWxlLFxuICAgIFRydW5jYXRlZFdpdGhUb29sdGlwRGlyZWN0aXZlLFxuICAgIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydEZpeERpcmVjdGl2ZSxcbiAgICBVc2VDb21wb25lbnRTdHlsZXMsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURpcmVjdGl2ZSxcbiAgICBUYWJsZUJvZHlEaXJlY3RpdmUsXG4gICAgVGFibGVGb290ZXJEaXJlY3RpdmUsXG4gICAgVGFibGVIZWFkRGlyZWN0aXZlLFxuICAgIFRhYmxlUm93RGlyZWN0aXZlLFxuICAgIFRhYmxlSGVhZENlbGxDb21wb25lbnQsXG4gICAgVGFibGVDZWxsRGlyZWN0aXZlLFxuICAgIFRhYmxlU29ydERpcmVjdGl2ZSxcbiAgICBUYWJsZVNvcnRIZWFkZXJEaXJlY3RpdmUsXG4gICAgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0Rml4RGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYXBwaGlyZVRhYmxlTW9kdWxlIHt9XG4iXX0=
|