@festo-ui/angular 5.1.0 → 6.0.0-dev.198
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 → esm2022}/lib/components/accordion/accordion-header/accordion-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +4 -4
- package/esm2022/lib/components/accordion/accordion-item/accordion-item.component.mjs +148 -0
- package/esm2022/lib/components/accordion/accordion.component.mjs +59 -0
- package/{esm2020 → esm2022}/lib/components/breadcrumb/breadcrumb.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/buttons/button/button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/buttons/link-button/link-button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/chips/chip/chip.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/chips/chip-container/chip-container.component.mjs +4 -4
- package/esm2022/lib/components/components.module.mjs +207 -0
- package/{esm2020 → esm2022}/lib/components/loading-indicator/loading-indicator.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/pagination/pagination.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/popovers/legend/legend.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/legend/legend.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/popover/popover.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/popover-content/popover-content.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/popover-content/popover-content.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/popover-menu/popover-menu.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/popover.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/popovers/tooltip/tooltip.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/progress/progress.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/scroll/scrollable.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/search-input/search-input.component.mjs +4 -4
- package/esm2022/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +59 -0
- package/{esm2020 → esm2022}/lib/components/snackbar/snackbar-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/snackbar/snackbar-container.directive.mjs +5 -5
- package/esm2022/lib/components/snackbar/snackbar.component.mjs +81 -0
- package/esm2022/lib/components/snackbar/snackbar.module.mjs +24 -0
- package/{esm2020 → esm2022}/lib/components/snackbar/snackbar.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/stepper-vertical/stepper-vertical.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/table-header-cell/table-header-cell.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/tab-pane/tab-pane.component.mjs +34 -0
- package/esm2022/lib/components/tabs/tabs.component.mjs +459 -0
- package/{esm2020 → esm2022}/lib/directives/click-outside.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/festo-angular.module.mjs +5 -5
- package/esm2022/lib/forms/checkbox/checkbox.component.mjs +154 -0
- package/{esm2020 → esm2022}/lib/forms/color-indicator/color-indicator.component.mjs +4 -4
- package/esm2022/lib/forms/color-picker/color-picker.component.mjs +292 -0
- package/{esm2020 → esm2022}/lib/forms/date-picker/date-picker.component.mjs +12 -12
- package/{esm2020 → esm2022}/lib/forms/date-range-picker/date-range-picker.component.mjs +12 -12
- package/{esm2020 → esm2022}/lib/forms/flatpickr/flatpickr.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/forms/forms.module.mjs +62 -62
- package/esm2022/lib/forms/radio/radio.component.mjs +350 -0
- package/{esm2020 → esm2022}/lib/forms/segment/segment-control/segment-control.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/forms/segment/segment.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/forms/select/chip-text.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/forms/select/select-option/select-option.component.mjs +4 -4
- package/esm2022/lib/forms/select/select.component.mjs +275 -0
- package/esm2022/lib/forms/slider/slider.component.mjs +113 -0
- package/esm2022/lib/forms/switch/switch.component.mjs +121 -0
- package/esm2022/lib/forms/text-area/text-area.component.mjs +187 -0
- package/esm2022/lib/forms/text-editor/text-editor.component.mjs +308 -0
- package/esm2022/lib/forms/text-input/text-input.component.mjs +208 -0
- package/{esm2020 → esm2022}/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/forms/time-picker/time-picker.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/forms/unique-selection-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/lib/forms/value-accessor-base.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modals/alert/alert.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modals/confirm/confirm.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modals/custom-modal/custom-modal.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modals/image-gallery/image-gallery.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modals/modal.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modals/modals.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modals/prompt/prompt.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/pipes/safe-html.pipe.mjs +5 -5
- package/{fesm2020 → fesm2022}/festo-ui-angular.mjs +512 -520
- package/{fesm2020 → fesm2022}/festo-ui-angular.mjs.map +1 -1
- package/lib/components/accordion/accordion.component.d.ts +1 -1
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/components/buttons/button/button.component.d.ts +1 -1
- package/lib/components/buttons/link-button/link-button.component.d.ts +1 -1
- package/lib/components/chips/chip/chip.component.d.ts +1 -1
- package/lib/components/chips/chip-container/chip-container.component.d.ts +1 -1
- package/lib/components/loading-indicator/loading-indicator.component.d.ts +1 -1
- package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +1 -1
- package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +1 -1
- package/lib/components/pagination/pagination.component.d.ts +1 -1
- package/lib/components/popovers/legend/legend.component.d.ts +1 -1
- package/lib/components/popovers/popover-content/popover-content.component.d.ts +1 -1
- package/lib/components/popovers/popover-menu/popover-menu.component.d.ts +1 -1
- package/lib/components/popovers/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/components/progress/progress.component.d.ts +1 -1
- package/lib/components/scroll/scrollable.directive.d.ts +1 -1
- package/lib/components/search-input/search-input.component.d.ts +1 -1
- package/lib/components/sidebar-overlay/sidebar-overlay.component.d.ts +1 -1
- package/lib/components/snackbar/snackbar-container.component.d.ts +1 -1
- package/lib/components/snackbar/snackbar-container.directive.d.ts +1 -1
- package/lib/components/snackbar/snackbar.component.d.ts +1 -1
- package/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.d.ts +1 -1
- package/lib/components/stepper-horizontal/stepper-horizontal.component.d.ts +1 -1
- package/lib/components/stepper-vertical/step-vertical/step-vertical.component.d.ts +1 -1
- package/lib/components/stepper-vertical/stepper-vertical.component.d.ts +1 -1
- package/lib/components/table-header-cell/table-header-cell.directive.d.ts +1 -1
- package/lib/components/tabs/tab-pane/tab-pane.component.d.ts +1 -1
- package/lib/components/tabs/tabs.component.d.ts +1 -1
- package/lib/forms/checkbox/checkbox.component.d.ts +1 -1
- package/lib/forms/color-indicator/color-indicator.component.d.ts +1 -1
- package/lib/forms/color-picker/color-picker.component.d.ts +1 -1
- package/lib/forms/date-picker/date-picker.component.d.ts +1 -1
- package/lib/forms/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/lib/forms/flatpickr/flatpickr.component.d.ts +1 -1
- package/lib/forms/radio/radio.component.d.ts +6 -6
- package/lib/forms/segment/segment-control/segment-control.component.d.ts +1 -1
- package/lib/forms/segment/segment.component.d.ts +1 -1
- package/lib/forms/select/select-option/select-option.component.d.ts +1 -1
- package/lib/forms/select/select.component.d.ts +6 -5
- package/lib/forms/slider/slider.component.d.ts +1 -1
- package/lib/forms/switch/switch.component.d.ts +1 -1
- package/lib/forms/text-area/text-area.component.d.ts +1 -1
- package/lib/forms/text-editor/text-editor.component.d.ts +1 -1
- package/lib/forms/text-input/text-input.component.d.ts +1 -1
- package/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.d.ts +1 -1
- package/lib/forms/time-picker/time-picker.component.d.ts +1 -1
- package/lib/forms/value-accessor-base.d.ts +1 -1
- package/lib/modals/alert/alert.component.d.ts +1 -1
- package/lib/modals/confirm/confirm.component.d.ts +1 -1
- package/lib/modals/custom-modal/custom-modal.component.d.ts +1 -1
- package/lib/modals/image-gallery/image-gallery.component.d.ts +1 -1
- package/lib/modals/prompt/prompt.component.d.ts +1 -1
- package/package.json +17 -23
- package/esm2020/lib/components/accordion/accordion-item/accordion-item.component.mjs +0 -148
- package/esm2020/lib/components/accordion/accordion.component.mjs +0 -59
- package/esm2020/lib/components/components.module.mjs +0 -218
- package/esm2020/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +0 -59
- package/esm2020/lib/components/snackbar/snackbar.component.mjs +0 -81
- package/esm2020/lib/components/snackbar/snackbar.module.mjs +0 -24
- package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +0 -34
- package/esm2020/lib/components/tabs/tabs.component.mjs +0 -459
- package/esm2020/lib/forms/checkbox/checkbox.component.mjs +0 -154
- package/esm2020/lib/forms/color-picker/color-picker.component.mjs +0 -292
- package/esm2020/lib/forms/radio/radio.component.mjs +0 -350
- package/esm2020/lib/forms/select/select.component.mjs +0 -273
- package/esm2020/lib/forms/slider/slider.component.mjs +0 -113
- package/esm2020/lib/forms/switch/switch.component.mjs +0 -121
- package/esm2020/lib/forms/text-area/text-area.component.mjs +0 -187
- package/esm2020/lib/forms/text-editor/text-editor.component.mjs +0 -308
- package/esm2020/lib/forms/text-input/text-input.component.mjs +0 -208
- package/fesm2015/festo-ui-angular.mjs +0 -6504
- package/fesm2015/festo-ui-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/festo-ui-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/accordion/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/popovers/popover-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/popovers/popover.defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/popovers/popover.models.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/scroll/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/snackbar/snackbar.models.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/forms/color-picker/color-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modals/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import { takeUntil } from 'rxjs/operators';
|
|
2
|
-
import { Component, Input, HostBinding, ViewEncapsulation, Inject, forwardRef, ViewChild, ContentChildren, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
|
-
import { FngSelectOptionComponent } from './select-option/select-option.component';
|
|
7
|
-
import { FngChipTextPipe } from './chip-text.pipe';
|
|
8
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
9
|
-
import { Subject } from 'rxjs';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "@angular/cdk/overlay";
|
|
13
|
-
export class FngSelectComponent {
|
|
14
|
-
get disabled() {
|
|
15
|
-
return this._disabled;
|
|
16
|
-
}
|
|
17
|
-
set disabled(value) {
|
|
18
|
-
this._disabled = coerceBooleanProperty(value);
|
|
19
|
-
}
|
|
20
|
-
get required() {
|
|
21
|
-
return this._required;
|
|
22
|
-
}
|
|
23
|
-
set required(value) {
|
|
24
|
-
this._required = coerceBooleanProperty(value);
|
|
25
|
-
}
|
|
26
|
-
get value() {
|
|
27
|
-
return this._value;
|
|
28
|
-
}
|
|
29
|
-
set value(value) {
|
|
30
|
-
if (this.multiple === true) {
|
|
31
|
-
const index = this._value.indexOf(value);
|
|
32
|
-
if (index === -1) {
|
|
33
|
-
this._value.push(value);
|
|
34
|
-
this.checked.set(value, 'checked');
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this._value.splice(index, 1);
|
|
38
|
-
this.checked.set(value, null);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
this._value = value;
|
|
43
|
-
}
|
|
44
|
-
if (this.onChange != null) {
|
|
45
|
-
this.onChange(this.value);
|
|
46
|
-
}
|
|
47
|
-
this.fngChange.emit(this.value);
|
|
48
|
-
}
|
|
49
|
-
constructor(document, renderer, cd) {
|
|
50
|
-
this.document = document;
|
|
51
|
-
this.renderer = renderer;
|
|
52
|
-
this.cd = cd;
|
|
53
|
-
this._disabled = false;
|
|
54
|
-
this._required = false;
|
|
55
|
-
this.touched = false;
|
|
56
|
-
this.id = `input-control-${++FngSelectComponent.nextId}`;
|
|
57
|
-
this.multiple = false;
|
|
58
|
-
this.size = 0;
|
|
59
|
-
this.options = [];
|
|
60
|
-
this.label = '';
|
|
61
|
-
this.hideLabel = false;
|
|
62
|
-
this.hint = '';
|
|
63
|
-
this.fngChange = new EventEmitter();
|
|
64
|
-
this.selectPanelClasses = ['fng-select-panel'];
|
|
65
|
-
this.showOptions = false;
|
|
66
|
-
this.empty = false;
|
|
67
|
-
this.checked = new Map();
|
|
68
|
-
this.hasProjectedOptions = false;
|
|
69
|
-
this.projectedHtml = [];
|
|
70
|
-
this.complete = new Subject();
|
|
71
|
-
this.body = this.document.body;
|
|
72
|
-
}
|
|
73
|
-
ngAfterContentInit() {
|
|
74
|
-
// observe if any of the projected content (fng-select-option) changes
|
|
75
|
-
this.fngSelectOptions?.changes.pipe(takeUntil(this.complete)).subscribe(_ => {
|
|
76
|
-
// if content changes init again
|
|
77
|
-
this.options = [];
|
|
78
|
-
this.projectedHtml = [];
|
|
79
|
-
this.initProjectedOptions();
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
ngOnInit() {
|
|
83
|
-
if (this.size != null) {
|
|
84
|
-
this.selectPanelClasses.push('fng-select-panel-options-' + this.size);
|
|
85
|
-
}
|
|
86
|
-
if (this.multiple === true) {
|
|
87
|
-
this._value = [];
|
|
88
|
-
this.selectPanelClasses.push('fng-select-panel-multiple');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
ngAfterViewInit() {
|
|
92
|
-
this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;
|
|
93
|
-
this.initProjectedOptions();
|
|
94
|
-
}
|
|
95
|
-
ngOnDestroy() {
|
|
96
|
-
this.complete.next(true);
|
|
97
|
-
this.complete.unsubscribe();
|
|
98
|
-
}
|
|
99
|
-
registerOnChange(fn) {
|
|
100
|
-
this.onChange = fn;
|
|
101
|
-
}
|
|
102
|
-
registerOnTouched(fn) {
|
|
103
|
-
this.onTouched = fn;
|
|
104
|
-
}
|
|
105
|
-
setDisabledState(shouldDisable) {
|
|
106
|
-
this.disabled = shouldDisable;
|
|
107
|
-
}
|
|
108
|
-
writeValue(value) {
|
|
109
|
-
if (value === undefined) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (this.multiple === true) {
|
|
113
|
-
this._value = value;
|
|
114
|
-
// set checkmarks in overlay panel, so that it is displayed correctly when user opens it
|
|
115
|
-
value?.forEach((v) => {
|
|
116
|
-
this.checked.set(v, 'checked');
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
this._value = value;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
getOptionText(index) {
|
|
124
|
-
if (this.options[index] && this.optionsTextKey && this.options[index][this.optionsTextKey] != null) {
|
|
125
|
-
return this.options[index][this.optionsTextKey];
|
|
126
|
-
}
|
|
127
|
-
return undefined;
|
|
128
|
-
}
|
|
129
|
-
getOptionValue(index) {
|
|
130
|
-
// if set to true the complete option object is returned as value
|
|
131
|
-
if (this.optionObjectAsValue === true) {
|
|
132
|
-
return this.options[index];
|
|
133
|
-
}
|
|
134
|
-
// try to access standard property 'value'
|
|
135
|
-
const v = this.options[index]['value'];
|
|
136
|
-
if (v !== undefined) {
|
|
137
|
-
return v;
|
|
138
|
-
}
|
|
139
|
-
// try to map the value to a property of the option by given key
|
|
140
|
-
if (this.options[index] && this.optionsValueKey && this.options[index][this.optionsValueKey] != null) {
|
|
141
|
-
return this.options[index][this.optionsValueKey];
|
|
142
|
-
}
|
|
143
|
-
return undefined;
|
|
144
|
-
}
|
|
145
|
-
removeChip(event, chip) {
|
|
146
|
-
event.stopPropagation();
|
|
147
|
-
if (!this._disabled) {
|
|
148
|
-
this.markAsTouched();
|
|
149
|
-
this.value = chip;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
onOpenedChange(isOpen) {
|
|
153
|
-
if (isOpen) {
|
|
154
|
-
this.renderer.addClass(this.body, 'fng-select-panel-open');
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
this.renderer.removeClass(this.body, 'fng-select-panel-open');
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
close() {
|
|
161
|
-
this.showOptions = false;
|
|
162
|
-
this.isEmpty();
|
|
163
|
-
}
|
|
164
|
-
toggle() {
|
|
165
|
-
if (false === this.disabled) {
|
|
166
|
-
this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;
|
|
167
|
-
this.showOptions = !this.showOptions;
|
|
168
|
-
this.onOpenedChange(this.showOptions);
|
|
169
|
-
this.isEmpty();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
select(value, event) {
|
|
173
|
-
if (!this._disabled) {
|
|
174
|
-
this.markAsTouched();
|
|
175
|
-
event.stopPropagation();
|
|
176
|
-
this.value = value;
|
|
177
|
-
if (this.multiple !== true) {
|
|
178
|
-
// closes overlay panel
|
|
179
|
-
this.toggle();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
markAsTouched() {
|
|
184
|
-
if (!this.touched) {
|
|
185
|
-
if (this.onTouched != null) {
|
|
186
|
-
this.onTouched();
|
|
187
|
-
}
|
|
188
|
-
this.touched = true;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
initProjectedOptions() {
|
|
192
|
-
if (this.fngSelectOptions?.length) {
|
|
193
|
-
this.hasProjectedOptions = true;
|
|
194
|
-
this.fngSelectOptions.forEach(component => {
|
|
195
|
-
component.update().then(el => {
|
|
196
|
-
if (el) {
|
|
197
|
-
this.options.push({ value: component.value, text: el.textContent?.trim() });
|
|
198
|
-
this.projectedHtml.push(el.innerHTML);
|
|
199
|
-
this.cd.detectChanges();
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
this.cd.detectChanges();
|
|
205
|
-
}
|
|
206
|
-
isEmpty() {
|
|
207
|
-
if (!this.showOptions && (!this._value || '' === this._value)) {
|
|
208
|
-
this.empty = true;
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
this.empty = false;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
FngSelectComponent.nextId = 0;
|
|
216
|
-
FngSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngSelectComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
FngSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: FngSelectComponent, isStandalone: true, selector: "fng-select", inputs: { disabled: "disabled", required: "required", multiple: "multiple", size: "size", options: "options", optionsValueKey: "optionsValueKey", optionsTextKey: "optionsTextKey", optionObjectAsValue: "optionObjectAsValue", error: "error", label: "label", hideLabel: "hideLabel", hint: "hint", resetOption: "resetOption" }, outputs: { fngChange: "fngChange" }, host: { properties: { "id": "this.id" } }, providers: [
|
|
218
|
-
{
|
|
219
|
-
provide: NG_VALUE_ACCESSOR,
|
|
220
|
-
useExisting: forwardRef(() => FngSelectComponent),
|
|
221
|
-
multi: true
|
|
222
|
-
}
|
|
223
|
-
], queries: [{ propertyName: "fngSelectOptions", predicate: FngSelectOptionComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["div"], descendants: true }], ngImport: i0, template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n <ng-container *ngIf=\"!multiple; else chips\">\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n </ng-container>\n <ng-template #chips>\n <div class=\"fwe-chip-container\">\n <div\n *ngFor=\"let v of value\"\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n </div>\n </ng-template>\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n <li class=\"fwe-select-option\" *ngIf=\"resetOption != null && !multiple\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n <li\n class=\"fwe-select-option\"\n *ngFor=\"let option of options; let i = index\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n <span\n *ngIf=\"multiple\"\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n <span *ngIf=\"hasProjectedOptions; else defaultTemplate\" [innerHTML]=\"projectedHtml[i]\"></span>\n <ng-template #defaultTemplate>{{ getOptionText(i) || option?.text }}</ng-template>\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n <div class=\"fwe-select-description\" *ngIf=\"hint\">\n {{ hint }}\n </div>\n <div class=\"fwe-select-invalid\" *ngIf=\"error\">\n {{ error }}\n </div>\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100)}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable:after{position:absolute;right:5px;top:4px;color:var(--fwe-text);font-family:var(--fwe-font-family-icons-16);font-size:var(--fwe-font-size-base);content:\"\\ea1c\";line-height:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: FngChipTextPipe, name: "fngChipText" }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngSelectComponent, decorators: [{
|
|
225
|
-
type: Component,
|
|
226
|
-
args: [{ standalone: true, imports: [CommonModule, FngChipTextPipe, FngSelectOptionComponent, OverlayModule], selector: 'fng-select', encapsulation: ViewEncapsulation.None, providers: [
|
|
227
|
-
{
|
|
228
|
-
provide: NG_VALUE_ACCESSOR,
|
|
229
|
-
useExisting: forwardRef(() => FngSelectComponent),
|
|
230
|
-
multi: true
|
|
231
|
-
}
|
|
232
|
-
], template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n <ng-container *ngIf=\"!multiple; else chips\">\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n </ng-container>\n <ng-template #chips>\n <div class=\"fwe-chip-container\">\n <div\n *ngFor=\"let v of value\"\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n </div>\n </ng-template>\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n <li class=\"fwe-select-option\" *ngIf=\"resetOption != null && !multiple\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n <li\n class=\"fwe-select-option\"\n *ngFor=\"let option of options; let i = index\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n <span\n *ngIf=\"multiple\"\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n <span *ngIf=\"hasProjectedOptions; else defaultTemplate\" [innerHTML]=\"projectedHtml[i]\"></span>\n <ng-template #defaultTemplate>{{ getOptionText(i) || option?.text }}</ng-template>\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n <div class=\"fwe-select-description\" *ngIf=\"hint\">\n {{ hint }}\n </div>\n <div class=\"fwe-select-invalid\" *ngIf=\"error\">\n {{ error }}\n </div>\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100)}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable:after{position:absolute;right:5px;top:4px;color:var(--fwe-text);font-family:var(--fwe-font-family-icons-16);font-size:var(--fwe-font-size-base);content:\"\\ea1c\";line-height:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"] }]
|
|
233
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
234
|
-
type: Inject,
|
|
235
|
-
args: [DOCUMENT]
|
|
236
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
237
|
-
type: Input
|
|
238
|
-
}], required: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], id: [{
|
|
241
|
-
type: HostBinding
|
|
242
|
-
}], multiple: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], size: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], options: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], optionsValueKey: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], optionsTextKey: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], optionObjectAsValue: [{
|
|
253
|
-
type: Input
|
|
254
|
-
}], error: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], label: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], hideLabel: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], hint: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], resetOption: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], fngSelectOptions: [{
|
|
265
|
-
type: ContentChildren,
|
|
266
|
-
args: [FngSelectOptionComponent]
|
|
267
|
-
}], elementRef: [{
|
|
268
|
-
type: ViewChild,
|
|
269
|
-
args: ['div']
|
|
270
|
-
}], fngChange: [{
|
|
271
|
-
type: Output
|
|
272
|
-
}] } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBRVgsaUJBQWlCLEVBRWpCLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUlULGVBQWUsRUFDZixNQUFNLEVBQ04sWUFBWSxFQUdiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQXNCL0IsTUFBTSxPQUFPLGtCQUFrQjtJQVE3QixJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMs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LFdBQVc7Z0JBR0gsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNxQyxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUN2QixVQUFVO3NCQUEzQixTQUFTO3VCQUFDLEtBQUs7Z0JBQ04sU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBSZW5kZXJlcjIsXG4gIEluamVjdCxcbiAgZm9yd2FyZFJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBRdWVyeUxpc3QsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlckNvbnRlbnRJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm5nU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uL3NlbGVjdC1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ0NoaXBUZXh0UGlwZSB9IGZyb20gJy4vY2hpcC10ZXh0LnBpcGUnO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBGbmdTZWxlY3RPcHRpb24ge1xuICB2YWx1ZTogYW55O1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbmdDaGlwVGV4dFBpcGUsIEZuZ1NlbGVjdE9wdGlvbkNvbXBvbmVudCwgT3ZlcmxheU1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRm5nU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9yZXF1aXJlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XG4gIHByb3RlY3RlZCBib2R5OiBIVE1MRWxlbWVudDtcblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl92YWx1ZS5pbmRleE9mKHZhbHVlKTtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tlZC5zZXQodmFsdWUsICdjaGVja2VkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KHZhbHVlLCBudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmZuZ0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25DaGFuZ2U6ICgoXzogYW55KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgdG91Y2hlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygpXG4gIGlkID0gYGlucHV0LWNvbnRyb2wtJHsrK0ZuZ1NlbGVjdENvbXBvbmVudC5uZXh0SWR9YDtcblxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBvcHRpb25zVmFsdWVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgb3B0aW9uc1RleHRLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgb3B0aW9uT2JqZWN0QXNWYWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgaGlkZUxhYmVsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcbiAgQElucHV0KCkgcmVzZXRPcHRpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQENvbnRlbnRDaGlsZHJlbihGbmdTZWxlY3RPcHRpb25Db21wb25lbnQpIGZuZ1NlbGVjdE9wdGlvbnM6IFF1ZXJ5TGlzdDxGbmdTZWxlY3RPcHRpb25Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdkaXYnKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgZm5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgc2VsZWN0UGFuZWxDbGFzc2VzOiBzdHJpbmdbXSA9IFsnZm5nLXNlbGVjdC1wYW5lbCddO1xuICBzaG93T3B0aW9ucyA9IGZhbHNlO1xuICBlbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICB0cmlnZ2VyV2lkdGg6IGFueTtcbiAgY2hlY2tlZCA9IG5ldyBNYXAoKTtcbiAgaGFzUHJvamVjdGVkT3B0aW9ucyA9IGZhbHNlO1xuICBwcm9qZWN0ZWRIdG1sOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGNvbXBsZXRlOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcm90ZWN0ZWQgZG9jdW1lbnQ6IGFueSwgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmJvZHkgPSAodGhpcy5kb2N1bWVudCBhcyBEb2N1bWVudCkuYm9keTtcbiAgfVxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gb2JzZXJ2ZSBpZiBhbnkgb2YgdGhlIHByb2plY3RlZCBjb250ZW50IChmbmctc2VsZWN0LW9wdGlvbikgY2hhbmdlc1xuICAgIHRoaXMuZm5nU2VsZWN0T3B0aW9ucz8uY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSkuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgLy8gaWYgY29udGVudCBjaGFuZ2VzIGluaXQgYWdhaW5cbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5wcm9qZWN0ZWRIdG1sID0gW107XG4gICAgICB0aGlzLmluaXRQcm9qZWN0ZWRPcHRpb25zKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaXplICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0UGFuZWxDbGFzc2VzLnB1c2goJ2ZuZy1zZWxlY3QtcGFuZWwtb3B0aW9ucy0nICsgdGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0UGFuZWxDbGFzc2VzLnB1c2goJ2ZuZy1zZWxlY3QtcGFuZWwtbXVsdGlwbGUnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyV2lkdGggPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpPy53aWR0aDtcbiAgICB0aGlzLmluaXRQcm9qZWN0ZWRPcHRpb25zKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBsZXRlLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5jb21wbGV0ZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKHNob3VsZERpc2FibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gc2hvdWxkRGlzYWJsZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgLy8gc2V0IGNoZWNrbWFya3MgaW4gb3ZlcmxheSBwYW5lbCwgc28gdGhhdCBpdCBpcyBkaXNwbGF5ZWQgY29ycmVjdGx5IHdoZW4gdXNlciBvcGVucyBpdFxuICAgICAgdmFsdWU/LmZvckVhY2goKHY6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KHYsICdjaGVja2VkJyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRPcHRpb25UZXh0KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zW2luZGV4XSAmJiB0aGlzLm9wdGlvbnNUZXh0S2V5ICYmIHRoaXMub3B0aW9uc1tpbmRleF1bdGhpcy5vcHRpb25zVGV4dEtleV0gIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1tpbmRleF1bdGhpcy5vcHRpb25zVGV4dEtleV07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRPcHRpb25WYWx1ZShpbmRleDogbnVtYmVyKSB7XG4gICAgLy8gaWYgc2V0IHRvIHRydWUgdGhlIGNvbXBsZXRlIG9wdGlvbiBvYmplY3QgaXMgcmV0dXJuZWQgYXMgdmFsdWVcbiAgICBpZiAodGhpcy5vcHRpb25PYmplY3RBc1ZhbHVlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zW2luZGV4XTtcbiAgICB9XG5cbiAgICAvLyB0cnkgdG8gYWNjZXNzIHN0YW5kYXJkIHByb3BlcnR5ICd2YWx1ZSdcbiAgICBjb25zdCB2ID0gdGhpcy5vcHRpb25zW2luZGV4XVsndmFsdWUnXTtcblxuICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIC8vIHRyeSB0byBtYXAgdGhlIHZhbHVlIHRvIGEgcHJvcGVydHkgb2YgdGhlIG9wdGlvbiBieSBnaXZlbiBrZXlcbiAgICBpZiAodGhpcy5vcHRpb25zW2luZGV4XSAmJiB0aGlzLm9wdGlvbnNWYWx1ZUtleSAmJiB0aGlzLm9wdGlvbnNbaW5kZXhdW3RoaXMub3B0aW9uc1ZhbHVlS2V5XSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zW2luZGV4XVt0aGlzLm9wdGlvbnNWYWx1ZUtleV07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZW1vdmVDaGlwKGV2ZW50OiBhbnksIGNoaXA6IHN0cmluZykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy52YWx1ZSA9IGNoaXA7XG4gICAgfVxuICB9XG5cbiAgb25PcGVuZWRDaGFuZ2UoaXNPcGVuOiBib29sZWFuKSB7XG4gICAgaWYgKGlzT3Blbikge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmJvZHksICdmbmctc2VsZWN0LXBhbmVsLW9wZW4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmJvZHksICdmbmctc2VsZWN0LXBhbmVsLW9wZW4nKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XG4gICAgdGhpcy5pc0VtcHR5KCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKGZhbHNlID09PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnRyaWdnZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LndpZHRoO1xuICAgICAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xuICAgICAgdGhpcy5vbk9wZW5lZENoYW5nZSh0aGlzLnNob3dPcHRpb25zKTtcbiAgICAgIHRoaXMuaXNFbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCh2YWx1ZTogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSAhPT0gdHJ1ZSkge1xuICAgICAgICAvLyBjbG9zZXMgb3ZlcmxheSBwYW5lbFxuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0UHJvamVjdGVkT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5mbmdTZWxlY3RPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaGFzUHJvamVjdGVkT3B0aW9ucyA9IHRydWU7XG4gICAgICB0aGlzLmZuZ1NlbGVjdE9wdGlvbnMuZm9yRWFjaChjb21wb25lbnQgPT4ge1xuICAgICAgICBjb21wb25lbnQudXBkYXRlKCkudGhlbihlbCA9PiB7XG4gICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMucHVzaCh7IHZhbHVlOiBjb21wb25lbnQudmFsdWUsIHRleHQ6IGVsLnRleHRDb250ZW50Py50cmltKCkgfSk7XG4gICAgICAgICAgICB0aGlzLnByb2plY3RlZEh0bWwucHVzaChlbC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VtcHR5KCkge1xuICAgIGlmICghdGhpcy5zaG93T3B0aW9ucyAmJiAoIXRoaXMuX3ZhbHVlIHx8ICcnID09PSB0aGlzLl92YWx1ZSkpIHtcbiAgICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtcHR5ID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNkaXYgY2xhc3M9XCJmd2Utc2VsZWN0LXdyYXBwZXJcIiBbY2xhc3MuZndlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLmZuZy1oaWRlLWxhYmVsXT1cImhpZGVMYWJlbFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmd2Utc2VsZWN0XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgIFtjbGFzcy5md2UtZm9jdXNdPVwic2hvd09wdGlvbnNcIlxuICAgIFtjbGFzcy5md2UtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtjbGFzcy5md2UtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5md2UtcHR5XT1cImVtcHR5XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmd2Utc2VsZWN0LWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgY2hpcHNcIj5cbiAgICAgICAge3sgdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSB8IGZuZ0NoaXBUZXh0OiBvcHRpb25zOm9wdGlvbnNWYWx1ZUtleTpvcHRpb25zVGV4dEtleSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2NoaXBzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZndlLWNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHYgb2YgdmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmd2UtY2hpcCBjaGlwLXRleHQtdHJ1bmNhdGUgZndlLXByLTRcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJ0cmlnZ2VyV2lkdGhcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInYgfCBmbmdDaGlwVGV4dDogb3B0aW9uczpvcHRpb25zVmFsdWVLZXk6b3B0aW9uc1RleHRLZXlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHYgfCBmbmdDaGlwVGV4dDogb3B0aW9uczpvcHRpb25zVmFsdWVLZXk6b3B0aW9uc1RleHRLZXkgfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcC1yZW1vdmFibGVcIiAoY2xpY2spPVwicmVtb3ZlQ2hpcCgkZXZlbnQsIHYpXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGVcbiAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aF09XCJ0cmlnZ2VyV2lkdGhcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJzaG93T3B0aW9uc1wiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT1cInNlbGVjdFBhbmVsQ2xhc3Nlc1wiXG4gICAgKGJhY2tkcm9wQ2xpY2spPVwiY2xvc2UoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZm5nLXNlbGVjdC1wYW5lbC13cmFwXCI+XG4gICAgICA8dWwgY2xhc3M9XCJmd2Utc2VsZWN0LW9wdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImZ3ZS1zZWxlY3Qtb3B0aW9uXCIgKm5nSWY9XCJyZXNldE9wdGlvbiAhPSBudWxsICYmICFtdWx0aXBsZVwiIChjbGljayk9XCJzZWxlY3QobnVsbCwgJGV2ZW50KVwiPnt7IHJlc2V0T3B0aW9uIH19PC9saT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgY2xhc3M9XCJmd2Utc2VsZWN0LW9wdGlvblwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGdldE9wdGlvblZhbHVlKGkpLCAkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiZ2V0T3B0aW9uVGV4dChpKSB8fCBvcHRpb24/LnRleHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmd2Utc2VsZWN0LW9wdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAqbmdJZj1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbmctc2VsZWN0LXBzZXVkby1jaGVja2JveFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZuZy1zZWxlY3QtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQnOiBjaGVja2VkLmdldChnZXRPcHRpb25WYWx1ZShpKSkgPT09ICdjaGVja2VkJyB9XCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImhhc1Byb2plY3RlZE9wdGlvbnM7IGVsc2UgZGVmYXVsdFRlbXBsYXRlXCIgW2lubmVySFRNTF09XCJwcm9qZWN0ZWRIdG1sW2ldXCI+PC9zcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+e3sgZ2V0T3B0aW9uVGV4dChpKSB8fCBvcHRpb24/LnRleHQgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxsYWJlbCBjbGFzcz1cImZ3ZS1zZWxlY3QtbGFiZWxcIiBbZm9yXT1cImlkXCIgW2NsYXNzLmZ3ZS1zci1vbmx5XT1cImhpZGVMYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zZWxlY3QtZGVzY3JpcHRpb25cIiAqbmdJZj1cImhpbnRcIj5cbiAgICB7eyBoaW50IH19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZndlLXNlbGVjdC1pbnZhbGlkXCIgKm5nSWY9XCJlcnJvclwiPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZndlLWQtbm9uZVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Component, forwardRef, ViewEncapsulation, Input, HostListener } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { Subscription, Subject } from 'rxjs';
|
|
5
|
-
import { debounceTime } from 'rxjs/operators';
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
export class FngSliderComponent {
|
|
10
|
-
get disabled() {
|
|
11
|
-
return this.innerDisabled;
|
|
12
|
-
}
|
|
13
|
-
set disabled(value) {
|
|
14
|
-
this.innerDisabled = coerceBooleanProperty(value);
|
|
15
|
-
}
|
|
16
|
-
get value() {
|
|
17
|
-
return this.innerValue;
|
|
18
|
-
}
|
|
19
|
-
set value(value) {
|
|
20
|
-
this.innerValue = coerceNumberProperty(value);
|
|
21
|
-
if (this.onChange != null) {
|
|
22
|
-
this.onChange(value);
|
|
23
|
-
}
|
|
24
|
-
if (this.onTouched != null) {
|
|
25
|
-
this.onTouched();
|
|
26
|
-
}
|
|
27
|
-
this.updateValuePosition();
|
|
28
|
-
}
|
|
29
|
-
constructor(elementRef) {
|
|
30
|
-
this.elementRef = elementRef;
|
|
31
|
-
this.large = false;
|
|
32
|
-
this.min = 0;
|
|
33
|
-
this.max = 100;
|
|
34
|
-
this.step = 0;
|
|
35
|
-
this.left = 0;
|
|
36
|
-
this.innerDisabled = false;
|
|
37
|
-
this.innerValue = 0;
|
|
38
|
-
this.resizeSub = new Subscription();
|
|
39
|
-
this.resizeSubject = new Subject();
|
|
40
|
-
}
|
|
41
|
-
onResize() {
|
|
42
|
-
this.resizeSubject.next(true);
|
|
43
|
-
}
|
|
44
|
-
ngAfterViewInit() {
|
|
45
|
-
this.resizeSub.add(this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition()));
|
|
46
|
-
}
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this.resizeSub.unsubscribe();
|
|
49
|
-
}
|
|
50
|
-
writeValue(value) {
|
|
51
|
-
this.innerValue = coerceNumberProperty(value);
|
|
52
|
-
this.updateValuePosition();
|
|
53
|
-
}
|
|
54
|
-
registerOnChange(fn) {
|
|
55
|
-
this.onChange = fn;
|
|
56
|
-
}
|
|
57
|
-
registerOnTouched(fn) {
|
|
58
|
-
this.onTouched = fn;
|
|
59
|
-
}
|
|
60
|
-
setDisabledState(isDisabled) {
|
|
61
|
-
this.disabled = isDisabled;
|
|
62
|
-
}
|
|
63
|
-
onInput(event) {
|
|
64
|
-
this.value = coerceNumberProperty(event.target.value);
|
|
65
|
-
}
|
|
66
|
-
updateValuePosition() {
|
|
67
|
-
if (this.elementRef != null && this.elementRef.nativeElement != null) {
|
|
68
|
-
const bcr = this.elementRef.nativeElement.getBoundingClientRect();
|
|
69
|
-
const diff = this.max - this.min;
|
|
70
|
-
this.left = ((this.value - this.min) / diff) * (bcr.width - 16);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
FngSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngSliderComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
-
FngSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: FngSliderComponent, isStandalone: true, selector: "fng-slider", inputs: { label: "label", large: "large", min: "min", max: "max", step: "step", digitsInfo: "digitsInfo", locale: "locale", disabled: "disabled", value: "value" }, host: { listeners: { "window:resize": "onResize()" } }, providers: [
|
|
76
|
-
{
|
|
77
|
-
provide: NG_VALUE_ACCESSOR,
|
|
78
|
-
useExisting: forwardRef(() => FngSliderComponent),
|
|
79
|
-
multi: true
|
|
80
|
-
}
|
|
81
|
-
], ngImport: i0, template: "<label class=\"fwe-slider\" [class.fwe-slider-lg]=\"large\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{ label }}</span>\n <input\n type=\"range\"\n class=\"fwe-slider-input\"\n [disabled]=\"disabled\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n />\n <span *ngIf=\"left != null\" class=\"fng-slider-value\" [style.left]=\"left + 'px'\">{{ value | number: digitsInfo:locale }}</span>\n</label>\n", styles: ["label.fwe-slider{display:block;height:56px;position:relative}label.fwe-slider.fng-slider-label{height:83px}label.fwe-slider .fng-slider-value{color:var(--fwe-text);font-size:var(--fwe-font-size-base);margin-bottom:0;position:absolute;bottom:0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], encapsulation: i0.ViewEncapsulation.None });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngSliderComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{ standalone: true, imports: [CommonModule], selector: 'fng-slider', providers: [
|
|
85
|
-
{
|
|
86
|
-
provide: NG_VALUE_ACCESSOR,
|
|
87
|
-
useExisting: forwardRef(() => FngSliderComponent),
|
|
88
|
-
multi: true
|
|
89
|
-
}
|
|
90
|
-
], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-slider\" [class.fwe-slider-lg]=\"large\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{ label }}</span>\n <input\n type=\"range\"\n class=\"fwe-slider-input\"\n [disabled]=\"disabled\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n />\n <span *ngIf=\"left != null\" class=\"fng-slider-value\" [style.left]=\"left + 'px'\">{{ value | number: digitsInfo:locale }}</span>\n</label>\n", styles: ["label.fwe-slider{display:block;height:56px;position:relative}label.fwe-slider.fng-slider-label{height:83px}label.fwe-slider .fng-slider-value{color:var(--fwe-text);font-size:var(--fwe-font-size-base);margin-bottom:0;position:absolute;bottom:0;-webkit-user-select:none;user-select:none}\n"] }]
|
|
91
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { label: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], large: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], min: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], max: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], step: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], digitsInfo: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], locale: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], disabled: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], value: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], onResize: [{
|
|
110
|
-
type: HostListener,
|
|
111
|
-
args: ['window:resize']
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBNkIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFpQi9DLE1BQU0sT0FBTyxrQkFBa0I7SUFzQjdCLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFHRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FB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QWY5QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTtpR0FHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUs7Z0JBcUJ5QixRQUFRO3NCQUF0QyxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdTbGlkZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGxhcmdlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbWluID0gMDtcblxuICBASW5wdXQoKVxuICBtYXggPSAxMDA7XG5cbiAgQElucHV0KClcbiAgc3RlcDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBkaWdpdHNJbmZvOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgbGVmdDogbnVtYmVyID0gMDtcblxuICBwcm90ZWN0ZWQgaW5uZXJEaXNhYmxlZCA9IGZhbHNlO1xuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJEaXNhYmxlZDtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlubmVyRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlubmVyVmFsdWU6IG51bWJlciA9IDA7XG4gIGdldCB2YWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWVQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNpemVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVzaXplU3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG9uQ2hhbmdlOiAoKHZhbHVlOiBudW1iZXIpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIG9uVG91Y2hlZDogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKSBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnJlc2l6ZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnJlc2l6ZVN1Yi5hZGQodGhpcy5yZXNpemVTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDI1KSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVmFsdWVQb3NpdGlvbigpKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2l6ZVN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWVQb3NpdGlvbigpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZiAhPSBudWxsICYmIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGJjciA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBkaWZmID0gdGhpcy5tYXggLSB0aGlzLm1pbjtcbiAgICAgIHRoaXMubGVmdCA9ICgodGhpcy52YWx1ZSAtIHRoaXMubWluKSAvIGRpZmYpICogKGJjci53aWR0aCAtIDE2KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZ3ZS1zbGlkZXJcIiBbY2xhc3MuZndlLXNsaWRlci1sZ109XCJsYXJnZVwiIFtjbGFzcy5mbmctc2xpZGVyLWxhYmVsXT1cImxhYmVsICE9IG51bGxcIj5cbiAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICA8aW5wdXRcbiAgICB0eXBlPVwicmFuZ2VcIlxuICAgIGNsYXNzPVwiZndlLXNsaWRlci1pbnB1dFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICBbYXR0ci5zdGVwXT1cInN0ZXBcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgLz5cbiAgPHNwYW4gKm5nSWY9XCJsZWZ0ICE9IG51bGxcIiBjbGFzcz1cImZuZy1zbGlkZXItdmFsdWVcIiBbc3R5bGUubGVmdF09XCJsZWZ0ICsgJ3B4J1wiPnt7IHZhbHVlIHwgbnVtYmVyOiBkaWdpdHNJbmZvOmxvY2FsZSB9fTwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=
|