@festo-ui/angular 8.2.0-dev.616 → 8.2.0-dev.620
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/css/bundle.css +1 -1
- package/css/popover.css +1 -1
- package/fesm2022/festo-ui-angular.mjs +514 -260
- package/fesm2022/festo-ui-angular.mjs.map +1 -1
- package/lib/components/components.module.d.ts +3 -1
- package/lib/components/overlay/overlay-content/overlay-content.component.d.ts +5 -0
- package/lib/components/overlay/overlay-outlet.directive.d.ts +64 -0
- package/lib/components/popovers/popover.defaults.d.ts +0 -18
- package/lib/components/popovers/popover.models.d.ts +2 -1
- package/lib/components/popovers/tooltip/tooltip.directive.d.ts +7 -0
- package/lib/forms/value-accessor-base.d.ts +1 -1
- package/package.json +9 -11
- package/public-api.d.ts +2 -0
- package/scss/base/icons-svg.scss +1 -1
- package/scss/base/image-gallery.scss +2 -2
- package/scss/base/popover.scss +2 -2
- package/scss/base/styles.scss +4 -4
- package/esm2022/festo-ui-angular.mjs +0 -5
- package/esm2022/lib/components/accordion/accordion-header/accordion-header.component.mjs +0 -11
- package/esm2022/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +0 -15
- package/esm2022/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +0 -28
- package/esm2022/lib/components/accordion/accordion-item/accordion-item.component.mjs +0 -148
- package/esm2022/lib/components/accordion/accordion.component.mjs +0 -59
- package/esm2022/lib/components/accordion/index.mjs +0 -6
- package/esm2022/lib/components/bottom-sheet/bottom-sheet.component.mjs +0 -97
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -26
- package/esm2022/lib/components/buttons/button/button.component.mjs +0 -48
- package/esm2022/lib/components/buttons/link-button/link-button.component.mjs +0 -34
- package/esm2022/lib/components/chips/chip/chip.component.mjs +0 -38
- package/esm2022/lib/components/chips/chip-container/chip-container.component.mjs +0 -17
- package/esm2022/lib/components/components.module.mjs +0 -212
- package/esm2022/lib/components/loading-indicator/loading-indicator.component.mjs +0 -17
- package/esm2022/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +0 -39
- package/esm2022/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +0 -65
- package/esm2022/lib/components/mobile-flyout/mobile-flyout.component.mjs +0 -69
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -57
- package/esm2022/lib/components/popovers/legend/legend.component.mjs +0 -42
- package/esm2022/lib/components/popovers/legend/legend.directive.mjs +0 -31
- package/esm2022/lib/components/popovers/popover/popover.component.mjs +0 -31
- package/esm2022/lib/components/popovers/popover-content/popover-content.component.mjs +0 -80
- package/esm2022/lib/components/popovers/popover-content/popover-content.directive.mjs +0 -39
- package/esm2022/lib/components/popovers/popover-menu/popover-menu.component.mjs +0 -67
- package/esm2022/lib/components/popovers/popover-ref.mjs +0 -25
- package/esm2022/lib/components/popovers/popover.defaults.mjs +0 -59
- package/esm2022/lib/components/popovers/popover.models.mjs +0 -7
- package/esm2022/lib/components/popovers/popover.service.mjs +0 -140
- package/esm2022/lib/components/popovers/tooltip/tooltip.directive.mjs +0 -101
- package/esm2022/lib/components/progress/progress.component.mjs +0 -22
- package/esm2022/lib/components/scroll/index.mjs +0 -2
- package/esm2022/lib/components/scroll/scrollable.directive.mjs +0 -75
- package/esm2022/lib/components/search-input/search-input.component.mjs +0 -182
- package/esm2022/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +0 -59
- package/esm2022/lib/components/snackbar/snackbar-container.component.mjs +0 -21
- package/esm2022/lib/components/snackbar/snackbar-container.directive.mjs +0 -80
- package/esm2022/lib/components/snackbar/snackbar.component.mjs +0 -81
- package/esm2022/lib/components/snackbar/snackbar.models.mjs +0 -2
- package/esm2022/lib/components/snackbar/snackbar.module.mjs +0 -24
- package/esm2022/lib/components/snackbar/snackbar.service.mjs +0 -23
- package/esm2022/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +0 -19
- package/esm2022/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +0 -52
- package/esm2022/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +0 -57
- package/esm2022/lib/components/stepper-vertical/stepper-vertical.component.mjs +0 -54
- package/esm2022/lib/components/table-header-cell/table-header-cell.directive.mjs +0 -60
- package/esm2022/lib/components/tabs/tab-pane/tab-pane.component.mjs +0 -34
- package/esm2022/lib/components/tabs/tabs.component.mjs +0 -459
- package/esm2022/lib/directives/click-outside.directive.mjs +0 -29
- package/esm2022/lib/festo-angular.module.mjs +0 -21
- package/esm2022/lib/forms/checkbox/checkbox.component.mjs +0 -154
- package/esm2022/lib/forms/color-indicator/color-indicator.component.mjs +0 -88
- package/esm2022/lib/forms/color-picker/color-helper.mjs +0 -129
- package/esm2022/lib/forms/color-picker/color-picker.component.mjs +0 -292
- package/esm2022/lib/forms/date-picker/date-picker.component.mjs +0 -205
- package/esm2022/lib/forms/date-range-picker/date-range-picker.component.mjs +0 -231
- package/esm2022/lib/forms/flatpickr/flatpickr.component.mjs +0 -55
- package/esm2022/lib/forms/forms.module.mjs +0 -132
- package/esm2022/lib/forms/radio/radio.component.mjs +0 -349
- package/esm2022/lib/forms/segment/segment-control/segment-control.component.mjs +0 -65
- package/esm2022/lib/forms/segment/segment.component.mjs +0 -139
- package/esm2022/lib/forms/select/chip-text.pipe.mjs +0 -39
- package/esm2022/lib/forms/select/select-option/select-option.component.mjs +0 -23
- package/esm2022/lib/forms/select/select.component.mjs +0 -273
- package/esm2022/lib/forms/slider/slider.component.mjs +0 -117
- package/esm2022/lib/forms/switch/switch.component.mjs +0 -121
- package/esm2022/lib/forms/text-area/text-area.component.mjs +0 -187
- package/esm2022/lib/forms/text-editor/text-editor.component.mjs +0 -307
- package/esm2022/lib/forms/text-input/text-input.component.mjs +0 -208
- package/esm2022/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +0 -107
- package/esm2022/lib/forms/time-picker/time-picker.component.mjs +0 -204
- package/esm2022/lib/forms/unique-selection-dispatcher.mjs +0 -41
- package/esm2022/lib/forms/value-accessor-base.mjs +0 -41
- package/esm2022/lib/modals/alert/alert.component.mjs +0 -55
- package/esm2022/lib/modals/confirm/confirm.component.mjs +0 -56
- package/esm2022/lib/modals/custom-modal/custom-modal.component.mjs +0 -88
- package/esm2022/lib/modals/image-gallery/image-gallery.component.mjs +0 -80
- package/esm2022/lib/modals/index.mjs +0 -2
- package/esm2022/lib/modals/modal.service.mjs +0 -118
- package/esm2022/lib/modals/modals.module.mjs +0 -27
- package/esm2022/lib/modals/prompt/prompt.component.mjs +0 -114
- package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -21
- package/esm2022/public-api.mjs +0 -66
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { CommonModule, DecimalPipe } from '@angular/common';
|
|
3
|
-
import { Component, HostListener, Input, ViewEncapsulation, forwardRef } from '@angular/core';
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import { Subject, Subscription } from 'rxjs';
|
|
6
|
-
import { debounceTime } from 'rxjs/operators';
|
|
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.min = 0;
|
|
32
|
-
this.max = 100;
|
|
33
|
-
this.step = 0;
|
|
34
|
-
this.hideValue = false;
|
|
35
|
-
this.left = 0;
|
|
36
|
-
this.numberoffset = 0;
|
|
37
|
-
this.innerDisabled = false;
|
|
38
|
-
this.innerValue = 0;
|
|
39
|
-
this.resizeSub = new Subscription();
|
|
40
|
-
this.resizeSubject = new Subject();
|
|
41
|
-
}
|
|
42
|
-
onResize() {
|
|
43
|
-
this.resizeSubject.next(true);
|
|
44
|
-
}
|
|
45
|
-
ngAfterViewInit() {
|
|
46
|
-
this.resizeSub.add(this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition()));
|
|
47
|
-
}
|
|
48
|
-
ngOnDestroy() {
|
|
49
|
-
this.resizeSub.unsubscribe();
|
|
50
|
-
}
|
|
51
|
-
writeValue(value) {
|
|
52
|
-
this.innerValue = coerceNumberProperty(value);
|
|
53
|
-
this.updateValuePosition();
|
|
54
|
-
}
|
|
55
|
-
registerOnChange(fn) {
|
|
56
|
-
this.onChange = fn;
|
|
57
|
-
}
|
|
58
|
-
registerOnTouched(fn) {
|
|
59
|
-
this.onTouched = fn;
|
|
60
|
-
}
|
|
61
|
-
setDisabledState(isDisabled) {
|
|
62
|
-
this.disabled = isDisabled;
|
|
63
|
-
}
|
|
64
|
-
onInput(event) {
|
|
65
|
-
this.value = coerceNumberProperty(event.target.value);
|
|
66
|
-
}
|
|
67
|
-
updateValuePosition() {
|
|
68
|
-
if (this.elementRef != null && this.elementRef.nativeElement != null) {
|
|
69
|
-
const bcr = this.elementRef.nativeElement.getBoundingClientRect();
|
|
70
|
-
const diff = this.max - this.min;
|
|
71
|
-
this.left = ((this.value - this.min) / diff) * (bcr.width - 8);
|
|
72
|
-
const decimalPipe = new DecimalPipe(this.locale || 'en-US');
|
|
73
|
-
const stringValue = decimalPipe.transform(this.value, this.digitsInfo);
|
|
74
|
-
this.numberoffset = 8 - (stringValue || '1').length * 6;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngSliderComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngSliderComponent, isStandalone: true, selector: "fng-slider", inputs: { label: "label", min: "min", max: "max", step: "step", digitsInfo: "digitsInfo", locale: "locale", hideValue: "hideValue", disabled: "disabled", value: "value" }, host: { listeners: { "window:resize": "onResize()" } }, providers: [
|
|
79
|
-
{
|
|
80
|
-
provide: NG_VALUE_ACCESSOR,
|
|
81
|
-
useExisting: forwardRef(() => FngSliderComponent),
|
|
82
|
-
multi: true
|
|
83
|
-
}
|
|
84
|
-
], ngImport: i0, template: "<label class=\"fwe-slider\" [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 && !hideValue\" class=\"fng-slider-value\" [style.left]=\"left + numberoffset + 'px'\">{{\n value | number: digitsInfo : locale\n }}</span>\n <div class=\"fng-slider-indicator\" [class.disabled]=\"disabled\" [style.width]=\"left + 'px'\"></div>\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}label.fwe-slider .fng-slider-indicator{height:2px;background:var(--fwe-hero);position:absolute;left:0;bottom:38px}label.fwe-slider .fng-slider-indicator.disabled{background:var(--fwe-border)}\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 }); }
|
|
85
|
-
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngSliderComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{ standalone: true, imports: [CommonModule], selector: 'fng-slider', providers: [
|
|
89
|
-
{
|
|
90
|
-
provide: NG_VALUE_ACCESSOR,
|
|
91
|
-
useExisting: forwardRef(() => FngSliderComponent),
|
|
92
|
-
multi: true
|
|
93
|
-
}
|
|
94
|
-
], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-slider\" [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 && !hideValue\" class=\"fng-slider-value\" [style.left]=\"left + numberoffset + 'px'\">{{\n value | number: digitsInfo : locale\n }}</span>\n <div class=\"fng-slider-indicator\" [class.disabled]=\"disabled\" [style.width]=\"left + 'px'\"></div>\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}label.fwe-slider .fng-slider-indicator{height:2px;background:var(--fwe-hero);position:absolute;left:0;bottom:38px}label.fwe-slider .fng-slider-indicator.disabled{background:var(--fwe-border)}\n"] }]
|
|
95
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { label: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], min: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], max: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], step: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], digitsInfo: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], locale: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], hideValue: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], disabled: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], value: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], onResize: [{
|
|
114
|
-
type: HostListener,
|
|
115
|
-
args: ['window:resize']
|
|
116
|
-
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBaUI5QyxNQUFNLE9BQU8sa0JBQWtCO0lBMEI3QixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFLRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbEQxQyxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBR1IsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUdWLFNBQUksR0FBVyxDQUFDLENBQUM7UUFTakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBRWpCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBRWYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFTdEIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQWlCekIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRUYsQ0FBQztJQU1mLFFBQVE7UUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQW9CLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JFLE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNkIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25GLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQztZQUM1RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7OEdBdEdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDZSQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNuQkgsc3BCQWtCQSx1aEJEVFksWUFBWTs7MkZBYVgsa0JBQWtCO2tCQWY5QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTsrRUFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUdOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUs7Z0JBcUJ5QixRQUFRO3NCQUF0QyxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2ZuZy1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm5nU2xpZGVyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1NsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIG1pbiA9IDA7XG5cbiAgQElucHV0KClcbiAgbWF4ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHN0ZXA6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgZGlnaXRzSW5mbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGhpZGVWYWx1ZSA9IGZhbHNlO1xuXG4gIGxlZnQ6IG51bWJlciA9IDA7XG5cbiAgbnVtYmVyb2Zmc2V0OiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBpbm5lckRpc2FibGVkID0gZmFsc2U7XG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckRpc2FibGVkO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5uZXJWYWx1ZTogbnVtYmVyID0gMDtcbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vblRvdWNoZWQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZVBvc2l0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2l6ZVN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZXNpemVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgb25DaGFuZ2U6ICgodmFsdWU6IG51bWJlcikgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgb25Ub3VjaGVkOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpIG9uUmVzaXplKCkge1xuICAgIHRoaXMucmVzaXplU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMucmVzaXplU3ViLmFkZCh0aGlzLnJlc2l6ZVN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoMjUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVWYWx1ZVBvc2l0aW9uKCkpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVzaXplU3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmlubmVyVmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZVBvc2l0aW9uKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25JbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmICE9IG51bGwgJiYgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgY29uc3QgYmNyID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLm1heCAtIHRoaXMubWluO1xuICAgICAgdGhpcy5sZWZ0ID0gKCh0aGlzLnZhbHVlIC0gdGhpcy5taW4pIC8gZGlmZikgKiAoYmNyLndpZHRoIC0gOCk7XG4gICAgICBjb25zdCBkZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLmxvY2FsZSB8fCAnZW4tVVMnKTtcbiAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gZGVjaW1hbFBpcGUudHJhbnNmb3JtKHRoaXMudmFsdWUsIHRoaXMuZGlnaXRzSW5mbyk7XG4gICAgICB0aGlzLm51bWJlcm9mZnNldCA9IDggLSAoc3RyaW5nVmFsdWUgfHwgJzEnKS5sZW5ndGggKiA2O1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZndlLXNsaWRlclwiIFtjbGFzcy5mbmctc2xpZGVyLWxhYmVsXT1cImxhYmVsICE9IG51bGxcIj5cbiAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICA8aW5wdXRcbiAgICB0eXBlPVwicmFuZ2VcIlxuICAgIGNsYXNzPVwiZndlLXNsaWRlci1pbnB1dFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICBbYXR0ci5zdGVwXT1cInN0ZXBcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgLz5cbiAgPHNwYW4gKm5nSWY9XCJsZWZ0ICE9IG51bGwgJiYgIWhpZGVWYWx1ZVwiIGNsYXNzPVwiZm5nLXNsaWRlci12YWx1ZVwiIFtzdHlsZS5sZWZ0XT1cImxlZnQgKyBudW1iZXJvZmZzZXQgKyAncHgnXCI+e3tcbiAgICB2YWx1ZSB8IG51bWJlcjogZGlnaXRzSW5mbyA6IGxvY2FsZVxuICB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZuZy1zbGlkZXItaW5kaWNhdG9yXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW3N0eWxlLndpZHRoXT1cImxlZnQgKyAncHgnXCI+PC9kaXY+XG48L2xhYmVsPlxuIl19
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, forwardRef } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
let nextUniqueId = 0;
|
|
8
|
-
export class FngSwitchComponent {
|
|
9
|
-
get id() {
|
|
10
|
-
return this.innerId;
|
|
11
|
-
}
|
|
12
|
-
set id(value) {
|
|
13
|
-
this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-switch-${++nextUniqueId}`;
|
|
14
|
-
}
|
|
15
|
-
get inputId() {
|
|
16
|
-
return `${this.innerId}-input`;
|
|
17
|
-
}
|
|
18
|
-
get checked() {
|
|
19
|
-
return this.isChecked;
|
|
20
|
-
}
|
|
21
|
-
set checked(value) {
|
|
22
|
-
if (value !== this.checked) {
|
|
23
|
-
this.isChecked = value;
|
|
24
|
-
this.changeDetector.markForCheck();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
get disabled() {
|
|
28
|
-
return this.isDisabled;
|
|
29
|
-
}
|
|
30
|
-
set disabled(value) {
|
|
31
|
-
const newValue = coerceBooleanProperty(value);
|
|
32
|
-
if (newValue !== this.disabled) {
|
|
33
|
-
this.isDisabled = newValue;
|
|
34
|
-
this.changeDetector.markForCheck();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
get required() {
|
|
38
|
-
return this.isRequired;
|
|
39
|
-
}
|
|
40
|
-
set required(value) {
|
|
41
|
-
this.isRequired = coerceBooleanProperty(value);
|
|
42
|
-
}
|
|
43
|
-
constructor(changeDetector) {
|
|
44
|
-
this.changeDetector = changeDetector;
|
|
45
|
-
this.large = false;
|
|
46
|
-
this.labelPosition = 'before';
|
|
47
|
-
this.innerId = `fng-switch-${++nextUniqueId}`;
|
|
48
|
-
this.isChecked = false;
|
|
49
|
-
this.isDisabled = false;
|
|
50
|
-
this.isRequired = false;
|
|
51
|
-
this.change = new EventEmitter();
|
|
52
|
-
}
|
|
53
|
-
writeValue(value) {
|
|
54
|
-
this.checked = !!value;
|
|
55
|
-
}
|
|
56
|
-
registerOnChange(fn) {
|
|
57
|
-
this.controlValueAccessorChangeFn = fn;
|
|
58
|
-
}
|
|
59
|
-
registerOnTouched(fn) {
|
|
60
|
-
this.onTouched = fn;
|
|
61
|
-
}
|
|
62
|
-
setDisabledState(isDisabled) {
|
|
63
|
-
this.disabled = isDisabled;
|
|
64
|
-
}
|
|
65
|
-
onInteractionEvent(event) {
|
|
66
|
-
event.stopPropagation();
|
|
67
|
-
}
|
|
68
|
-
onInputClick(event) {
|
|
69
|
-
event.stopPropagation();
|
|
70
|
-
if (!this.disabled) {
|
|
71
|
-
if (this.required) {
|
|
72
|
-
this.required = false;
|
|
73
|
-
}
|
|
74
|
-
this.checked = !this.checked;
|
|
75
|
-
if (this.controlValueAccessorChangeFn != null) {
|
|
76
|
-
this.controlValueAccessorChangeFn(this.checked);
|
|
77
|
-
}
|
|
78
|
-
if (this.onTouched != null) {
|
|
79
|
-
this.onTouched();
|
|
80
|
-
}
|
|
81
|
-
this.change.emit(this.checked);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngSwitchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngSwitchComponent, isStandalone: true, selector: "fng-switch", inputs: { name: "name", large: "large", labelPosition: "labelPosition", id: "id", checked: "checked", disabled: "disabled", value: "value", required: "required" }, outputs: { change: "change" }, providers: [
|
|
86
|
-
{
|
|
87
|
-
provide: NG_VALUE_ACCESSOR,
|
|
88
|
-
useExisting: forwardRef(() => FngSwitchComponent),
|
|
89
|
-
multi: true
|
|
90
|
-
}
|
|
91
|
-
], ngImport: i0, template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-hover)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-active)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-hover)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-active)}.fwe-switch-container.fwe-disabled .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-bg);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
92
|
-
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngSwitchComponent, decorators: [{
|
|
94
|
-
type: Component,
|
|
95
|
-
args: [{ standalone: true, imports: [CommonModule], selector: 'fng-switch', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
96
|
-
{
|
|
97
|
-
provide: NG_VALUE_ACCESSOR,
|
|
98
|
-
useExisting: forwardRef(() => FngSwitchComponent),
|
|
99
|
-
multi: true
|
|
100
|
-
}
|
|
101
|
-
], template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-hover)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-active)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-hover)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-active)}.fwe-switch-container.fwe-disabled .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-bg);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"] }]
|
|
102
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { name: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], large: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], labelPosition: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], id: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], checked: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], disabled: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], value: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], required: [{
|
|
117
|
-
type: Input
|
|
118
|
-
}], change: [{
|
|
119
|
-
type: Output
|
|
120
|
-
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQWtCckIsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQ0ksRUFBRSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxL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QkFBa0IsQ0FBQztnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCw2cEJBeUJBLGk4RURQWSxZQUFZOzsyRkFjWCxrQkFBa0I7a0JBaEI5QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0ZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9GLEVBQUU7c0JBREwsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFHLEtBQUs7c0JBQWIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBU2EsTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXN3aXRjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm5nU3dpdGNoQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1N3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBsYXJnZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCAnYmVsb3cnID0gJ2JlZm9yZSc7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lcklkO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbm5lcklkID0gdmFsdWUgPyBgJHt2YWx1ZX0tJHsrK25leHRVbmlxdWVJZH1gIDogYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICB9XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pbm5lcklkfS1pbnB1dGA7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrZWQ7XG4gIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNDaGVja2VkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKCh2YWx1ZTogYW55KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBvblRvdWNoZWQ6ICgoKSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWxcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2Utc3dpdGNoLWNvbnRhaW5lcic6IHRydWUsXG4gICAgJ2Z3ZS1jaGVja2VkJzogY2hlY2tlZCxcbiAgICAnZndlLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVmb3JlJzogbGFiZWxQb3NpdGlvbiA9PSAnYmVmb3JlJyxcbiAgICAnZndlLXN3aXRjaC1sZyc6IGxhcmdlXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICB0aXRsZT1cImNoZWNrYm94XCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIChjaGFuZ2UpPVwib25JbnRlcmFjdGlvbkV2ZW50KCRldmVudClcIlxuICAgIChjbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtdHJhY2tcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtbGFiZWwtY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { Component, Input, forwardRef, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
/**
|
|
8
|
-
* A custom form element for text inputs.
|
|
9
|
-
*/
|
|
10
|
-
export class FngTextAreaComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.innerReadonly = false;
|
|
13
|
-
this.tabindex = 0;
|
|
14
|
-
this.innerDisabled = false;
|
|
15
|
-
this.innerRequired = false;
|
|
16
|
-
this.innerRows = 3;
|
|
17
|
-
this.maxlength = 0;
|
|
18
|
-
/**
|
|
19
|
-
* When true the text input has focus.
|
|
20
|
-
*/
|
|
21
|
-
this.focused = false;
|
|
22
|
-
}
|
|
23
|
-
get readonly() {
|
|
24
|
-
return this.innerReadonly;
|
|
25
|
-
}
|
|
26
|
-
set readonly(value) {
|
|
27
|
-
this.innerReadonly = coerceBooleanProperty(value);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* When true the control's disabled attribute is set
|
|
31
|
-
* and it gets addeed the .disabled css class.
|
|
32
|
-
*/
|
|
33
|
-
get disabled() {
|
|
34
|
-
return this.innerDisabled;
|
|
35
|
-
}
|
|
36
|
-
set disabled(value) {
|
|
37
|
-
this.innerDisabled = coerceBooleanProperty(value);
|
|
38
|
-
if (this.focused) {
|
|
39
|
-
this.focused = false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* The getter for value.
|
|
44
|
-
*/
|
|
45
|
-
get value() {
|
|
46
|
-
return this.innerValue;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* The setter for value.
|
|
50
|
-
*/
|
|
51
|
-
set value(value) {
|
|
52
|
-
if (value != null) {
|
|
53
|
-
value = '' + value;
|
|
54
|
-
}
|
|
55
|
-
this.innerValue = value;
|
|
56
|
-
this.focused = !!value;
|
|
57
|
-
if (this.onChange != null) {
|
|
58
|
-
this.onChange(value);
|
|
59
|
-
}
|
|
60
|
-
if (this.onTouched != null) {
|
|
61
|
-
this.onTouched();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
get required() {
|
|
65
|
-
return this.innerRequired;
|
|
66
|
-
}
|
|
67
|
-
set required(value) {
|
|
68
|
-
this.innerRequired = coerceBooleanProperty(value);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* the height is managed by classes. the last one is "fwe-row-10"
|
|
72
|
-
*/
|
|
73
|
-
get rows() {
|
|
74
|
-
return this.innerRows;
|
|
75
|
-
}
|
|
76
|
-
set rows(value) {
|
|
77
|
-
const v = coerceNumberProperty(value);
|
|
78
|
-
this.innerRows = v > 10 ? 10 : v;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Called on component initialisation.
|
|
82
|
-
*/
|
|
83
|
-
ngOnInit() {
|
|
84
|
-
this.onBlur();
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Writes the value.
|
|
88
|
-
* @param value The value.
|
|
89
|
-
*/
|
|
90
|
-
writeValue(value) {
|
|
91
|
-
if (value != null) {
|
|
92
|
-
value = '' + value;
|
|
93
|
-
}
|
|
94
|
-
this.innerValue = value;
|
|
95
|
-
this.focused = !!value;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Registers a function to onChange.
|
|
99
|
-
* @param fn The registered function.
|
|
100
|
-
*/
|
|
101
|
-
registerOnChange(fn) {
|
|
102
|
-
this.onChange = fn;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Registers a function to onTouched.
|
|
106
|
-
* @param fn The registered function.
|
|
107
|
-
*/
|
|
108
|
-
registerOnTouched(fn) {
|
|
109
|
-
this.onTouched = fn;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Called when the text input is in focus.
|
|
113
|
-
*/
|
|
114
|
-
onFocus() {
|
|
115
|
-
this.focused = true;
|
|
116
|
-
}
|
|
117
|
-
onInput(event) {
|
|
118
|
-
this.value = event.target.value;
|
|
119
|
-
// The height is adjusted to the content on "rows = 0"
|
|
120
|
-
if (this.rows === 0) {
|
|
121
|
-
const textarea = this.inputElement?.nativeElement;
|
|
122
|
-
textarea.style.height = '1px'; // trigger calculation of the textarea.scrollHeight
|
|
123
|
-
textarea.style.height = 25 + textarea.scrollHeight + 'px';
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Called when the text input blurs.
|
|
128
|
-
*/
|
|
129
|
-
onBlur() {
|
|
130
|
-
if (this.focused) {
|
|
131
|
-
this.focused = false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Sets the disabled state.
|
|
136
|
-
* @param isDisabled When true the control is disabled
|
|
137
|
-
*/
|
|
138
|
-
setDisabledState(isDisabled) {
|
|
139
|
-
this.disabled = isDisabled;
|
|
140
|
-
}
|
|
141
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngTextAreaComponent, isStandalone: true, selector: "fng-text-area", inputs: { label: "label", readonly: "readonly", placeholder: "placeholder", tabindex: "tabindex", name: "name", disabled: "disabled", value: "value", required: "required", error: "error", hint: "hint", rows: "rows", maxlength: "maxlength" }, providers: [
|
|
143
|
-
{
|
|
144
|
-
provide: NG_VALUE_ACCESSOR,
|
|
145
|
-
useExisting: forwardRef(() => FngTextAreaComponent),
|
|
146
|
-
multi: true
|
|
147
|
-
}
|
|
148
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<label class=\"fwe-input-text\">\n <textarea\n #inputElement\n [class]=\"'fwe-row-' + rows\"\n [disabled]=\"disabled\"\n [required]=\"required === true || null\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n >{{ value }}</textarea\n >\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n <span *ngIf=\"maxlength > 0 && value != null\" class=\"fwe-input-text-count\">{{ value.length }} / {{ maxlength }}</span>\n</label>\n", styles: ["fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea{border:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled{border:1px solid var(--fwe-control-disabled)!important}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-label,fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-invalid,fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text .fwe-input-text-invalid{display:block!important}label.fwe-input-text .fwe-input-text-count{display:block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
149
|
-
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngTextAreaComponent, decorators: [{
|
|
151
|
-
type: Component,
|
|
152
|
-
args: [{ standalone: true, imports: [CommonModule], selector: 'fng-text-area', providers: [
|
|
153
|
-
{
|
|
154
|
-
provide: NG_VALUE_ACCESSOR,
|
|
155
|
-
useExisting: forwardRef(() => FngTextAreaComponent),
|
|
156
|
-
multi: true
|
|
157
|
-
}
|
|
158
|
-
], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-input-text\">\n <textarea\n #inputElement\n [class]=\"'fwe-row-' + rows\"\n [disabled]=\"disabled\"\n [required]=\"required === true || null\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n >{{ value }}</textarea\n >\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n <span *ngIf=\"maxlength > 0 && value != null\" class=\"fwe-input-text-count\">{{ value.length }} / {{ maxlength }}</span>\n</label>\n", styles: ["fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea{border:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled{border:1px solid var(--fwe-control-disabled)!important}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-label,fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-invalid,fng-text-area.ng-invalid.ng-dirty label.fwe-input-text textarea:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-area.ng-invalid.ng-dirty label.fwe-input-text .fwe-input-text-invalid{display:block!important}label.fwe-input-text .fwe-input-text-count{display:block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}\n"] }]
|
|
159
|
-
}], propDecorators: { label: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], readonly: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], placeholder: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], tabindex: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], name: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], disabled: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], value: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}], required: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], error: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], hint: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], rows: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], maxlength: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], inputElement: [{
|
|
184
|
-
type: ViewChild,
|
|
185
|
-
args: ['inputElement']
|
|
186
|
-
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DOztHQUVHO0FBZ0JILE1BQU0sT0FBTyxvQkFBb0I7SUFmakM7UUE0QlUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHckIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQWtCcEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUF1Q3RCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBdUJ0QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWYsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUkvQjs7V0FFRztRQUNILFlBQU8sR0FBWSxLQUFLLENBQUM7S0FpRjFCO0lBcExDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFPRDs7O09BR0c7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QUFJO3NCQUFaLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQVVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEEgY3VzdG9tIGZvcm0gZWxlbWVudCBmb3IgdGV4dCBpbnB1dHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdmbmctdGV4dC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtYXJlYS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZuZ1RleHRBcmVhQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1RleHRBcmVhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBpbnB1dCBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlubmVyUmVhZG9ubHk7XG4gIH1cbiAgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pbm5lclJlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlubmVyUmVhZG9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIGNvbnRyb2wncyBkaXNhYmxlZCBhdHRyaWJ1dGUgaXMgc2V0XG4gICAqIGFuZCBpdCBnZXRzIGFkZGVlZCB0aGUgLmRpc2FibGVkIGNzcyBjbGFzcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckRpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGlubmVyRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGlubmVyIHZhbHVlLlxuICAgKi9cbiAgaW5uZXJWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2V0dGVyIGZvciB2YWx1ZS5cbiAgICovXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHNldHRlciBmb3IgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgfVxuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZm9jdXNlZCA9ICEhdmFsdWU7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UgIT0gbnVsbCkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclJlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGlubmVyUmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRXJyb3IgZGVzY3JpcHRpb24gd2hlbiBpbnZhbGlkLlxuICAgKi9cbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSGludCBkZXNjcmlwdGlvbiB3aGVuIHZhbGlkLlxuICAgKi9cbiAgQElucHV0KCkgaGludDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiB0aGUgaGVpZ2h0IGlzIG1hbmFnZWQgYnkgY2xhc3Nlcy4gdGhlIGxhc3Qgb25lIGlzIFwiZndlLXJvdy0xMFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgcm93cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlubmVyUm93cztcbiAgfVxuICBzZXQgcm93cyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLmlubmVyUm93cyA9IHYgPiAxMCA/IDEwIDogdjtcbiAgfVxuICBwcm90ZWN0ZWQgaW5uZXJSb3dzID0gMztcblxuICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIHRleHQgaW5wdXQgaGFzIGZvY3VzLlxuICAgKi9cbiAgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gY2hhbmdlLlxuICAgKi9cbiAgb25DaGFuZ2U6ICgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBvbiB0b3VjaC5cbiAgICovXG4gIG9uVG91Y2hlZDogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gY29tcG9uZW50IGluaXRpYWxpc2F0aW9uLlxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vbkJsdXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIHZhbHVlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5mb2N1c2VkID0gISF2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiB0byBvbkNoYW5nZS5cbiAgICogQHBhcmFtIGZuIFRoZSByZWdpc3RlcmVkIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIG9uVG91Y2hlZC5cbiAgICogQHBhcmFtIGZuIFRoZSByZWdpc3RlcmVkIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHRleHQgaW5wdXQgaXMgaW4gZm9jdXMuXG4gICAqL1xuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgLy8gVGhlIGhlaWdodCBpcyBhZGp1c3RlZCB0byB0aGUgY29udGVudCBvbiBcInJvd3MgPSAwXCJcbiAgICBpZiAodGhpcy5yb3dzID09PSAwKSB7XG4gICAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJzFweCc7IC8vIHRyaWdnZXIgY2FsY3VsYXRpb24gb2YgdGhlIHRleHRhcmVhLnNjcm9sbEhlaWdodFxuICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gMjUgKyB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdGV4dCBpbnB1dCBibHVycy5cbiAgICovXG4gIG9uQmx1cigpIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUuXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIFdoZW4gdHJ1ZSB0aGUgY29udHJvbCBpcyBkaXNhYmxlZFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0XCI+XG4gIDx0ZXh0YXJlYVxuICAgICNpbnB1dEVsZW1lbnRcbiAgICBbY2xhc3NdPVwiJ2Z3ZS1yb3ctJyArIHJvd3NcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkID09PSB0cnVlIHx8IG51bGxcIlxuICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5ID09PSB0cnVlIHx8IG51bGxcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8IG51bGxcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSB8fCBudWxsXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2NsYXNzLmZuZy1oYXMtdmFsdWVdPVwidmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJydcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgID57eyB2YWx1ZSB9fTwvdGV4dGFyZWFcbiAgPlxuICA8c3BhbiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiaGludFwiIGNsYXNzPVwiZndlLWlucHV0LXRleHQtaW5mb1wiPnt7IGhpbnQgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWludmFsaWRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJtYXhsZW5ndGggPiAwICYmIHZhbHVlICE9IG51bGxcIiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWNvdW50XCI+e3sgdmFsdWUubGVuZ3RoIH19IC8ge3sgbWF4bGVuZ3RoIH19PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
|