@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.
Files changed (156) hide show
  1. package/{esm2020 → esm2022}/lib/components/accordion/accordion-header/accordion-header.component.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +4 -4
  4. package/esm2022/lib/components/accordion/accordion-item/accordion-item.component.mjs +148 -0
  5. package/esm2022/lib/components/accordion/accordion.component.mjs +59 -0
  6. package/{esm2020 → esm2022}/lib/components/breadcrumb/breadcrumb.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/components/buttons/button/button.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/components/buttons/link-button/link-button.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/components/chips/chip/chip.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/components/chips/chip-container/chip-container.component.mjs +4 -4
  11. package/esm2022/lib/components/components.module.mjs +207 -0
  12. package/{esm2020 → esm2022}/lib/components/loading-indicator/loading-indicator.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +6 -6
  14. package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/components/mobile-flyout/mobile-flyout.component.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/components/pagination/pagination.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/components/popovers/legend/legend.component.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/components/popovers/legend/legend.directive.mjs +5 -5
  19. package/{esm2020 → esm2022}/lib/components/popovers/popover/popover.component.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/components/popovers/popover-content/popover-content.component.mjs +5 -5
  21. package/{esm2020 → esm2022}/lib/components/popovers/popover-content/popover-content.directive.mjs +5 -5
  22. package/{esm2020 → esm2022}/lib/components/popovers/popover-menu/popover-menu.component.mjs +5 -5
  23. package/{esm2020 → esm2022}/lib/components/popovers/popover.service.mjs +5 -5
  24. package/{esm2020 → esm2022}/lib/components/popovers/tooltip/tooltip.directive.mjs +5 -5
  25. package/{esm2020 → esm2022}/lib/components/progress/progress.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/components/scroll/scrollable.directive.mjs +5 -5
  27. package/{esm2020 → esm2022}/lib/components/search-input/search-input.component.mjs +4 -4
  28. package/esm2022/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +59 -0
  29. package/{esm2020 → esm2022}/lib/components/snackbar/snackbar-container.component.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/components/snackbar/snackbar-container.directive.mjs +5 -5
  31. package/esm2022/lib/components/snackbar/snackbar.component.mjs +81 -0
  32. package/esm2022/lib/components/snackbar/snackbar.module.mjs +24 -0
  33. package/{esm2020 → esm2022}/lib/components/snackbar/snackbar.service.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +4 -4
  36. package/{esm2020 → esm2022}/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/components/stepper-vertical/stepper-vertical.component.mjs +4 -4
  38. package/{esm2020 → esm2022}/lib/components/table-header-cell/table-header-cell.directive.mjs +4 -4
  39. package/esm2022/lib/components/tabs/tab-pane/tab-pane.component.mjs +34 -0
  40. package/esm2022/lib/components/tabs/tabs.component.mjs +459 -0
  41. package/{esm2020 → esm2022}/lib/directives/click-outside.directive.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/festo-angular.module.mjs +5 -5
  43. package/esm2022/lib/forms/checkbox/checkbox.component.mjs +154 -0
  44. package/{esm2020 → esm2022}/lib/forms/color-indicator/color-indicator.component.mjs +4 -4
  45. package/esm2022/lib/forms/color-picker/color-picker.component.mjs +292 -0
  46. package/{esm2020 → esm2022}/lib/forms/date-picker/date-picker.component.mjs +12 -12
  47. package/{esm2020 → esm2022}/lib/forms/date-range-picker/date-range-picker.component.mjs +12 -12
  48. package/{esm2020 → esm2022}/lib/forms/flatpickr/flatpickr.component.mjs +4 -4
  49. package/{esm2020 → esm2022}/lib/forms/forms.module.mjs +62 -62
  50. package/esm2022/lib/forms/radio/radio.component.mjs +350 -0
  51. package/{esm2020 → esm2022}/lib/forms/segment/segment-control/segment-control.component.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/forms/segment/segment.component.mjs +11 -11
  53. package/{esm2020 → esm2022}/lib/forms/select/chip-text.pipe.mjs +4 -4
  54. package/{esm2020 → esm2022}/lib/forms/select/select-option/select-option.component.mjs +4 -4
  55. package/esm2022/lib/forms/select/select.component.mjs +275 -0
  56. package/esm2022/lib/forms/slider/slider.component.mjs +113 -0
  57. package/esm2022/lib/forms/switch/switch.component.mjs +121 -0
  58. package/esm2022/lib/forms/text-area/text-area.component.mjs +187 -0
  59. package/esm2022/lib/forms/text-editor/text-editor.component.mjs +308 -0
  60. package/esm2022/lib/forms/text-input/text-input.component.mjs +208 -0
  61. package/{esm2020 → esm2022}/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/forms/time-picker/time-picker.component.mjs +11 -11
  63. package/{esm2020 → esm2022}/lib/forms/unique-selection-dispatcher.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/forms/value-accessor-base.mjs +4 -4
  65. package/{esm2020 → esm2022}/lib/modals/alert/alert.component.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/modals/confirm/confirm.component.mjs +5 -5
  67. package/{esm2020 → esm2022}/lib/modals/custom-modal/custom-modal.component.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/modals/image-gallery/image-gallery.component.mjs +5 -5
  69. package/{esm2020 → esm2022}/lib/modals/modal.service.mjs +5 -5
  70. package/{esm2020 → esm2022}/lib/modals/modals.module.mjs +5 -5
  71. package/{esm2020 → esm2022}/lib/modals/prompt/prompt.component.mjs +5 -5
  72. package/{esm2020 → esm2022}/lib/pipes/safe-html.pipe.mjs +5 -5
  73. package/{fesm2020 → fesm2022}/festo-ui-angular.mjs +512 -520
  74. package/{fesm2020 → fesm2022}/festo-ui-angular.mjs.map +1 -1
  75. package/lib/components/accordion/accordion.component.d.ts +1 -1
  76. package/lib/components/breadcrumb/breadcrumb.component.d.ts +1 -1
  77. package/lib/components/buttons/button/button.component.d.ts +1 -1
  78. package/lib/components/buttons/link-button/link-button.component.d.ts +1 -1
  79. package/lib/components/chips/chip/chip.component.d.ts +1 -1
  80. package/lib/components/chips/chip-container/chip-container.component.d.ts +1 -1
  81. package/lib/components/loading-indicator/loading-indicator.component.d.ts +1 -1
  82. package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +1 -1
  83. package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +1 -1
  84. package/lib/components/pagination/pagination.component.d.ts +1 -1
  85. package/lib/components/popovers/legend/legend.component.d.ts +1 -1
  86. package/lib/components/popovers/popover-content/popover-content.component.d.ts +1 -1
  87. package/lib/components/popovers/popover-menu/popover-menu.component.d.ts +1 -1
  88. package/lib/components/popovers/tooltip/tooltip.directive.d.ts +1 -1
  89. package/lib/components/progress/progress.component.d.ts +1 -1
  90. package/lib/components/scroll/scrollable.directive.d.ts +1 -1
  91. package/lib/components/search-input/search-input.component.d.ts +1 -1
  92. package/lib/components/sidebar-overlay/sidebar-overlay.component.d.ts +1 -1
  93. package/lib/components/snackbar/snackbar-container.component.d.ts +1 -1
  94. package/lib/components/snackbar/snackbar-container.directive.d.ts +1 -1
  95. package/lib/components/snackbar/snackbar.component.d.ts +1 -1
  96. package/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.d.ts +1 -1
  97. package/lib/components/stepper-horizontal/stepper-horizontal.component.d.ts +1 -1
  98. package/lib/components/stepper-vertical/step-vertical/step-vertical.component.d.ts +1 -1
  99. package/lib/components/stepper-vertical/stepper-vertical.component.d.ts +1 -1
  100. package/lib/components/table-header-cell/table-header-cell.directive.d.ts +1 -1
  101. package/lib/components/tabs/tab-pane/tab-pane.component.d.ts +1 -1
  102. package/lib/components/tabs/tabs.component.d.ts +1 -1
  103. package/lib/forms/checkbox/checkbox.component.d.ts +1 -1
  104. package/lib/forms/color-indicator/color-indicator.component.d.ts +1 -1
  105. package/lib/forms/color-picker/color-picker.component.d.ts +1 -1
  106. package/lib/forms/date-picker/date-picker.component.d.ts +1 -1
  107. package/lib/forms/date-range-picker/date-range-picker.component.d.ts +1 -1
  108. package/lib/forms/flatpickr/flatpickr.component.d.ts +1 -1
  109. package/lib/forms/radio/radio.component.d.ts +6 -6
  110. package/lib/forms/segment/segment-control/segment-control.component.d.ts +1 -1
  111. package/lib/forms/segment/segment.component.d.ts +1 -1
  112. package/lib/forms/select/select-option/select-option.component.d.ts +1 -1
  113. package/lib/forms/select/select.component.d.ts +6 -5
  114. package/lib/forms/slider/slider.component.d.ts +1 -1
  115. package/lib/forms/switch/switch.component.d.ts +1 -1
  116. package/lib/forms/text-area/text-area.component.d.ts +1 -1
  117. package/lib/forms/text-editor/text-editor.component.d.ts +1 -1
  118. package/lib/forms/text-input/text-input.component.d.ts +1 -1
  119. package/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.d.ts +1 -1
  120. package/lib/forms/time-picker/time-picker.component.d.ts +1 -1
  121. package/lib/forms/value-accessor-base.d.ts +1 -1
  122. package/lib/modals/alert/alert.component.d.ts +1 -1
  123. package/lib/modals/confirm/confirm.component.d.ts +1 -1
  124. package/lib/modals/custom-modal/custom-modal.component.d.ts +1 -1
  125. package/lib/modals/image-gallery/image-gallery.component.d.ts +1 -1
  126. package/lib/modals/prompt/prompt.component.d.ts +1 -1
  127. package/package.json +17 -23
  128. package/esm2020/lib/components/accordion/accordion-item/accordion-item.component.mjs +0 -148
  129. package/esm2020/lib/components/accordion/accordion.component.mjs +0 -59
  130. package/esm2020/lib/components/components.module.mjs +0 -218
  131. package/esm2020/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +0 -59
  132. package/esm2020/lib/components/snackbar/snackbar.component.mjs +0 -81
  133. package/esm2020/lib/components/snackbar/snackbar.module.mjs +0 -24
  134. package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +0 -34
  135. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -459
  136. package/esm2020/lib/forms/checkbox/checkbox.component.mjs +0 -154
  137. package/esm2020/lib/forms/color-picker/color-picker.component.mjs +0 -292
  138. package/esm2020/lib/forms/radio/radio.component.mjs +0 -350
  139. package/esm2020/lib/forms/select/select.component.mjs +0 -273
  140. package/esm2020/lib/forms/slider/slider.component.mjs +0 -113
  141. package/esm2020/lib/forms/switch/switch.component.mjs +0 -121
  142. package/esm2020/lib/forms/text-area/text-area.component.mjs +0 -187
  143. package/esm2020/lib/forms/text-editor/text-editor.component.mjs +0 -308
  144. package/esm2020/lib/forms/text-input/text-input.component.mjs +0 -208
  145. package/fesm2015/festo-ui-angular.mjs +0 -6504
  146. package/fesm2015/festo-ui-angular.mjs.map +0 -1
  147. /package/{esm2020 → esm2022}/festo-ui-angular.mjs +0 -0
  148. /package/{esm2020 → esm2022}/lib/components/accordion/index.mjs +0 -0
  149. /package/{esm2020 → esm2022}/lib/components/popovers/popover-ref.mjs +0 -0
  150. /package/{esm2020 → esm2022}/lib/components/popovers/popover.defaults.mjs +0 -0
  151. /package/{esm2020 → esm2022}/lib/components/popovers/popover.models.mjs +0 -0
  152. /package/{esm2020 → esm2022}/lib/components/scroll/index.mjs +0 -0
  153. /package/{esm2020 → esm2022}/lib/components/snackbar/snackbar.models.mjs +0 -0
  154. /package/{esm2020 → esm2022}/lib/forms/color-picker/color-helper.mjs +0 -0
  155. /package/{esm2020 → esm2022}/lib/modals/index.mjs +0 -0
  156. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,208 +0,0 @@
1
- import { Component, Input, forwardRef, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { FormsModule, 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
- import * as i2 from "@angular/forms";
8
- /**
9
- * A custom form element for text inputs.
10
- */
11
- export class FngTextInputComponent {
12
- constructor() {
13
- /**
14
- * The text input label.
15
- */
16
- this.label = '';
17
- this.innerType = 'text';
18
- this.innerReadonly = false;
19
- this.step = undefined;
20
- this.min = undefined;
21
- this.max = undefined;
22
- this.tabindex = undefined;
23
- this.placeholder = undefined;
24
- this.name = '';
25
- this.innerDisabled = false;
26
- /**
27
- * The inner value.
28
- */
29
- this.innerValue = '';
30
- this.innerRequired = false;
31
- /**
32
- * Error description when invalid.
33
- */
34
- this.error = '';
35
- /**
36
- * Hint description when valid.
37
- */
38
- this.hint = undefined;
39
- /**
40
- * When true the text input has focus.
41
- */
42
- this.focused = false;
43
- }
44
- /**
45
- * A string specifying the type of control to render.
46
- */
47
- get type() {
48
- return this.innerType;
49
- }
50
- set type(value) {
51
- const supported = ['text', 'number', 'password', 'date', 'time', 'datetime-local'];
52
- if (value != null && supported.indexOf(value) !== -1) {
53
- this.innerType = value;
54
- }
55
- else {
56
- this.innerType = 'text';
57
- }
58
- }
59
- get readonly() {
60
- return this.innerReadonly;
61
- }
62
- set readonly(value) {
63
- this.innerReadonly = coerceBooleanProperty(value);
64
- }
65
- /**
66
- * When true the control's disabled attribute is set
67
- * and it gets addeed the .disabled css class.
68
- */
69
- get disabled() {
70
- return this.innerDisabled;
71
- }
72
- set disabled(value) {
73
- this.innerDisabled = coerceBooleanProperty(value);
74
- if (this.focused) {
75
- this.focused = false;
76
- }
77
- }
78
- /**
79
- * The getter for value.
80
- */
81
- get value() {
82
- return this.innerValue;
83
- }
84
- /**
85
- * The setter for value.
86
- */
87
- set value(value) {
88
- if (value != null) {
89
- value = '' + value;
90
- }
91
- this.innerValue = value;
92
- this.focused = !!value;
93
- if (this.onChange != null) {
94
- this.onChange(value);
95
- }
96
- if (this.onTouched != null) {
97
- this.onTouched();
98
- }
99
- }
100
- get required() {
101
- return this.innerRequired;
102
- }
103
- set required(value) {
104
- this.innerRequired = coerceBooleanProperty(value);
105
- }
106
- /**
107
- * Called on component initialisation.
108
- */
109
- ngOnInit() {
110
- this.onBlur();
111
- }
112
- /**
113
- * Writes the value.
114
- * @param value The value.
115
- */
116
- writeValue(value) {
117
- if (value != null) {
118
- value = '' + value;
119
- }
120
- this.innerValue = value;
121
- this.focused = !!value;
122
- }
123
- /**
124
- * Registers a function to onChange.
125
- * @param fn The registered function.
126
- */
127
- registerOnChange(fn) {
128
- this.onChange = fn;
129
- }
130
- /**
131
- * Registers a function to onTouched.
132
- * @param fn The registered function.
133
- */
134
- registerOnTouched(fn) {
135
- this.onTouched = fn;
136
- }
137
- /**
138
- * Called when the text input is in focus.
139
- */
140
- onFocus() {
141
- this.focused = true;
142
- }
143
- /**
144
- * Called when the text input blurs.
145
- */
146
- onBlur() {
147
- if (this.focused) {
148
- this.focused = false;
149
- }
150
- }
151
- /**
152
- * Sets the disabled state.
153
- * @param isDisabled When true the control is disabled
154
- */
155
- setDisabledState(isDisabled) {
156
- this.disabled = isDisabled;
157
- }
158
- }
159
- FngTextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngTextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
- FngTextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: FngTextInputComponent, isStandalone: true, selector: "fng-text-input", inputs: { label: "label", type: "type", readonly: "readonly", step: "step", min: "min", max: "max", tabindex: "tabindex", placeholder: "placeholder", name: "name", disabled: "disabled", value: "value", required: "required", error: "error", hint: "hint" }, providers: [
161
- {
162
- provide: NG_VALUE_ACCESSOR,
163
- useExisting: forwardRef(() => FngTextInputComponent),
164
- multi: true
165
- }
166
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n <span *ngIf=\"hint; else projectedHint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error; else projectedError\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n\n <ng-template #projectedHint>\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n </ng-template>\n\n <ng-template #projectedError>\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n </ng-template>\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngTextInputComponent, decorators: [{
168
- type: Component,
169
- args: [{ standalone: true, imports: [CommonModule, FormsModule], selector: 'fng-text-input', providers: [
170
- {
171
- provide: NG_VALUE_ACCESSOR,
172
- useExisting: forwardRef(() => FngTextInputComponent),
173
- multi: true
174
- }
175
- ], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n <span *ngIf=\"hint; else projectedHint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error; else projectedError\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n\n <ng-template #projectedHint>\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n </ng-template>\n\n <ng-template #projectedError>\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n </ng-template>\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n"] }]
176
- }], propDecorators: { label: [{
177
- type: Input
178
- }], type: [{
179
- type: Input
180
- }], readonly: [{
181
- type: Input
182
- }], step: [{
183
- type: Input
184
- }], min: [{
185
- type: Input
186
- }], max: [{
187
- type: Input
188
- }], tabindex: [{
189
- type: Input
190
- }], placeholder: [{
191
- type: Input
192
- }], name: [{
193
- type: Input
194
- }], disabled: [{
195
- type: Input
196
- }], value: [{
197
- type: Input
198
- }], required: [{
199
- type: Input
200
- }], error: [{
201
- type: Input
202
- }], hint: [{
203
- type: Input
204
- }], inputElement: [{
205
- type: ViewChild,
206
- args: ['inputElement']
207
- }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBYyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUvQzs7R0FFRztBQWdCSCxNQUFNLE9BQU8scUJBQXFCO0lBZmxDO1FBZ0JFOztXQUVHO1FBQ00sVUFBSyxHQUFXLEVBQUUsQ0FBQztRQWlCbEIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQVNyQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVyQixTQUFJLEdBQXVCLFNBQVMsQ0FBQztRQUNyQyxRQUFHLEdBQXVCLFNBQVMsQ0FBQztRQUNwQyxRQUFHLEdBQXVCLFNBQVMsQ0FBQztRQUNwQyxhQUFRLEdBQXVCLFNBQVMsQ0FBQztRQUN6QyxnQkFBVyxHQUF1QixTQUFTLENBQUM7UUFDNUMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQWlCakIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBa0NkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRWhDOztXQUVHO1FB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SztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBNkJGLEtBQUs7c0JBRFIsS0FBSztnQkFnQkYsUUFBUTtzQkFEWCxLQUFLO2dCQVlHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEEgY3VzdG9tIGZvcm0gZWxlbWVudCBmb3IgdGV4dCBpbnB1dHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXRleHQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdUZXh0SW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nVGV4dElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBpbnB1dCBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBjb250cm9sIHRvIHJlbmRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJUeXBlO1xuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdXBwb3J0ZWQgPSBbJ3RleHQnLCAnbnVtYmVyJywgJ3Bhc3N3b3JkJywgJ2RhdGUnLCAndGltZScsICdkYXRldGltZS1sb2NhbCddO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHN1cHBvcnRlZC5pbmRleE9mKHZhbHVlKSAhPT0gLTEpIHtcbiAgICAgIHRoaXMuaW5uZXJUeXBlID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5uZXJUeXBlID0gJ3RleHQnO1xuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgaW5uZXJUeXBlID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclJlYWRvbmx5O1xuICB9XG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJSZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBpbm5lclJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc3RlcDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtaW46IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIGNvbnRyb2wncyBkaXNhYmxlZCBhdHRyaWJ1dGUgaXMgc2V0XG4gICAqIGFuZCBpdCBnZXRzIGFkZGVlZCB0aGUgLmRpc2FibGVkIGNzcyBjbGFzcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckRpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGlubmVyRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGlubmVyIHZhbHVlLlxuICAgKi9cbiAgaW5uZXJWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBnZXR0ZXIgZm9yIHZhbHVlLlxuICAgKi9cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGVyIGZvciB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5mb2N1c2VkID0gISF2YWx1ZTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlubmVyUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pbm5lclJlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgaW5uZXJSZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFcnJvciBkZXNjcmlwdGlvbiB3aGVuIGludmFsaWQuXG4gICAqL1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIEhpbnQgZGVzY3JpcHRpb24gd2hlbiB2YWxpZC5cbiAgICovXG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZD0gdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpIGlucHV0RWxlbWVudDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hlbiB0cnVlIHRoZSB0ZXh0IGlucHV0IGhhcyBmb2N1cy5cbiAgICovXG4gIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGNoYW5nZS5cbiAgICovXG4gIG9uQ2hhbmdlOiAoKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gdG91Y2guXG4gICAqL1xuICBvblRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ2FsbGVkIG9uIGNvbXBvbmVudCBpbml0aWFsaXNhdGlvbi5cbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25CbHVyKCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSB2YWx1ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgfVxuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZm9jdXNlZCA9ICEhdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gb25DaGFuZ2UuXG4gICAqIEBwYXJhbSBmbiBUaGUgcmVnaXN0ZXJlZCBmdW5jdGlvbi5cbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiB0byBvblRvdWNoZWQuXG4gICAqIEBwYXJhbSBmbiBUaGUgcmVnaXN0ZXJlZCBmdW5jdGlvbi5cbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0ZXh0IGlucHV0IGlzIGluIGZvY3VzLlxuICAgKi9cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0ZXh0IGlucHV0IGJsdXJzLlxuICAgKi9cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgV2hlbiB0cnVlIHRoZSBjb250cm9sIGlzIGRpc2FibGVkXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZndlLWlucHV0LXRleHRcIiBbY2xhc3MuZndlLW5vLXBvaW50ZXItZXZlbnRzXT1cInJlYWRvbmx5ID09PSB0cnVlXCI+XG4gIDxpbnB1dFxuICAgICNpbnB1dEVsZW1lbnRcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZCA9PT0gdHJ1ZSB8fCBmYWxzZVwiXG4gICAgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHkgPT09IHRydWUgfHwgbnVsbFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgbnVsbFwiXG4gICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICBbYXR0ci5zdGVwXT1cInN0ZXBcIlxuICAgIFthdHRyLm1pbl09XCJtaW5cIlxuICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSB8fCBudWxsXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2NsYXNzLmZuZy1oYXMtdmFsdWVdPVwidmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJydcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiaGludDsgZWxzZSBwcm9qZWN0ZWRIaW50XCIgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dC1pbmZvXCI+e3sgaGludCB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJlcnJvcjsgZWxzZSBwcm9qZWN0ZWRFcnJvclwiIGNsYXNzPVwiZndlLWlucHV0LXRleHQtaW52YWxpZFwiPnt7IGVycm9yIH19PC9zcGFuPlxuXG4gIDxuZy10ZW1wbGF0ZSAjcHJvamVjdGVkSGludD5cbiAgICA8c3BhbiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWluZm8gZm5nLXByb2plY3RlZFwiPjxuZy1jb250ZW50IHNlbGVjdD1cIi5mbmctaGludFwiPjwvbmctY29udGVudD48L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRFcnJvcj5cbiAgICA8c3BhbiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWludmFsaWQgZm5nLXByb2plY3RlZFwiPjxuZy1jb250ZW50IHNlbGVjdD1cIi5mbmctZXJyb3JcIj48L25nLWNvbnRlbnQ+PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuPC9sYWJlbD5cbiJdfQ==