@energycap/components 0.44.8 → 0.44.9-Angular19Upgrade.20260217-1620
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/fesm2022/energycap-components.mjs +379 -354
- package/fesm2022/energycap-components.mjs.map +1 -1
- package/lib/controls/button/copy-button-base.directive.d.ts +1 -1
- package/lib/controls/date-input/date-input.component.d.ts +1 -1
- package/lib/controls/form-control-base.d.ts +1 -1
- package/lib/core/date-time-helper.d.ts +2 -2
- package/lib/display/hierarchy/hierarchy-base.d.ts +1 -1
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +1 -1
- package/lib/display/resizable/resizable-base.d.ts +1 -1
- package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
- package/lib/shared/page/page-base/page-base.component.d.ts +1 -1
- package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +1 -1
- package/package.json +1 -3
- package/schematics/utilities/typescript.js +3 -4
- package/schematics/utilities/typescript.js.map +1 -1
- package/schematics/utilities/workspace.d.ts +0 -8
- package/schematics/utilities/workspace.js +48 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/esm2022/energycap-components.mjs +0 -5
- package/esm2022/lib/components.module.mjs +0 -425
- package/esm2022/lib/controls/banner/banner.component.mjs +0 -112
- package/esm2022/lib/controls/button/button.component.mjs +0 -114
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -251
- package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -466
- package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -110
- package/esm2022/lib/controls/form-control-base.mjs +0 -151
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
- package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/controls/select/select.component.mjs +0 -88
- package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2022/lib/core/cache.service.mjs +0 -105
- package/esm2022/lib/core/custom-validators.mjs +0 -29
- package/esm2022/lib/core/date-time-helper.mjs +0 -228
- package/esm2022/lib/core/error.service.mjs +0 -61
- package/esm2022/lib/core/router-helper.service.mjs +0 -111
- package/esm2022/lib/core/scroll.service.mjs +0 -89
- package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
- package/esm2022/lib/core/telemetry.service.mjs +0 -38
- package/esm2022/lib/core/validation-message.service.mjs +0 -185
- package/esm2022/lib/core/validation-patterns.mjs +0 -31
- package/esm2022/lib/core/window.service.mjs +0 -186
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -49
- package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
- package/esm2022/lib/display/dialog/dialog.component.mjs +0 -287
- package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
- package/esm2022/lib/display/help/help-types.mjs +0 -2
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -65
- package/esm2022/lib/display/item-display/item-display.component.mjs +0 -83
- package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
- package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
- package/esm2022/lib/display/splash/splash.component.mjs +0 -61
- package/esm2022/lib/display/splash/splash.service.mjs +0 -35
- package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2022/lib/display/table/searchable-table.component.mjs +0 -344
- package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
- package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2022/lib/display/table/table.component.mjs +0 -257
- package/esm2022/lib/display/tags/tag.mjs +0 -18
- package/esm2022/lib/display/tags/tags.component.mjs +0 -82
- package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast-types.mjs +0 -8
- package/esm2022/lib/display/toast/toast.service.mjs +0 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
- package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2022/lib/display/tree/tree.component.mjs +0 -139
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -103
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
- package/esm2022/lib/shared/display/pipes/date-display-2.pipe.mjs +0 -39
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -51
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2022/lib/shared/display.mjs +0 -6
- package/esm2022/lib/shared/form-group.helper.mjs +0 -67
- package/esm2022/lib/shared/json-helper.mjs +0 -19
- package/esm2022/lib/shared/lodash-helper.mjs +0 -52
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
- package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
- package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
- package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
- package/esm2022/lib/shared/user-preference.service.mjs +0 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
- package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
- package/esm2022/public-api.mjs +0 -115
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from "@angular/core";
|
|
2
|
-
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from "@angular/forms";
|
|
3
|
-
import { cloneDeep } from "lodash";
|
|
4
|
-
import { Subject } from "rxjs";
|
|
5
|
-
import { takeUntil } from "rxjs/operators";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../core/validation-message.service";
|
|
8
|
-
import * as i2 from "@ngx-translate/core";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "../help-popover/help-popover.component";
|
|
11
|
-
/** Function to iterate over form controls and
|
|
12
|
-
* ensure they contain unique values. If any are duplicated all offending
|
|
13
|
-
* form controls will be marked as invalid
|
|
14
|
-
*
|
|
15
|
-
* @param valueProperty - the sub-property of the object represented by each form control
|
|
16
|
-
* it is dereferenced as formGroup.control.value[valueProperty].
|
|
17
|
-
* defaults to "value", which matches the form controls used to back comboboxes
|
|
18
|
-
* if explicitly null, this function assumes value is not a complex object and just extracts
|
|
19
|
-
* formGroup.control.value
|
|
20
|
-
*/
|
|
21
|
-
export const validateFormGroupValuesAreUnique = (fg, valueProperty = "value", subProperty) => {
|
|
22
|
-
let formControlValues = {};
|
|
23
|
-
// First get all of the values and if they have been found already,
|
|
24
|
-
// increment the number of times found
|
|
25
|
-
forEachFormControl(fg, (control) => {
|
|
26
|
-
let controlValue = getControlValue(control, valueProperty, subProperty);
|
|
27
|
-
if (controlValue !== null && controlValue !== '') {
|
|
28
|
-
if (typeof controlValue === 'string') {
|
|
29
|
-
controlValue = controlValue.toLowerCase();
|
|
30
|
-
}
|
|
31
|
-
if (formControlValues.hasOwnProperty(controlValue)) {
|
|
32
|
-
formControlValues[controlValue] = formControlValues[controlValue] + 1;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
formControlValues[controlValue] = 1;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
// Now go back over the controls and if their value was found more than once flag them as invalid
|
|
40
|
-
forEachFormControl(fg, (control) => {
|
|
41
|
-
let controlValue = getControlValue(control, valueProperty, subProperty);
|
|
42
|
-
// If the control value is null we will let any required validators handle them
|
|
43
|
-
if (controlValue !== null && controlValue !== '') {
|
|
44
|
-
if (typeof controlValue === 'string') {
|
|
45
|
-
controlValue = controlValue.toLowerCase();
|
|
46
|
-
}
|
|
47
|
-
if (formControlValues[controlValue] > 1) {
|
|
48
|
-
control.setErrors(Object.assign({ notUnique: true }, control.errors));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
// Get a copy of the existing form control errors, if any
|
|
52
|
-
let errors = cloneDeep(control.errors);
|
|
53
|
-
// If there are errors and previously had the notUnique error we want to remove
|
|
54
|
-
// that property
|
|
55
|
-
if (errors && errors.hasOwnProperty("notUnique")) {
|
|
56
|
-
delete errors.notUnique;
|
|
57
|
-
}
|
|
58
|
-
// If that was the only error in the object, set to null so validation passes
|
|
59
|
-
if (errors && Object.keys(errors).length === 0) {
|
|
60
|
-
errors = null;
|
|
61
|
-
}
|
|
62
|
-
control.setErrors(errors);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Function to iterate over for controls and invoke the callback function when they are found.
|
|
69
|
-
* Recursively calls itself when it encounters sub form groups and iterates over form arrays.
|
|
70
|
-
* @param c
|
|
71
|
-
* @param callback
|
|
72
|
-
*/
|
|
73
|
-
export const forEachFormControl = (c, callback) => {
|
|
74
|
-
let controls = [];
|
|
75
|
-
// Normalize to an array for ease of processing
|
|
76
|
-
if (c instanceof UntypedFormControl) {
|
|
77
|
-
controls.push(c);
|
|
78
|
-
}
|
|
79
|
-
else if (c instanceof UntypedFormGroup) {
|
|
80
|
-
for (var key in c.controls) {
|
|
81
|
-
controls.push(c.controls[key]);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else if (c instanceof UntypedFormArray) {
|
|
85
|
-
controls = c.controls;
|
|
86
|
-
}
|
|
87
|
-
controls.forEach(control => {
|
|
88
|
-
if (control instanceof UntypedFormArray) {
|
|
89
|
-
control.controls.forEach(ctrl => {
|
|
90
|
-
if (ctrl instanceof UntypedFormGroup || ctrl instanceof UntypedFormArray) {
|
|
91
|
-
forEachFormControl(ctrl, callback);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
callback(ctrl);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
else if (control instanceof UntypedFormGroup) {
|
|
99
|
-
forEachFormControl(control, callback);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
callback(control);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Function to return the value if it is enabled and set
|
|
108
|
-
* @param control
|
|
109
|
-
*/
|
|
110
|
-
export const getControlValue = (control, valueProperty = "value", subProperty) => {
|
|
111
|
-
if (control.enabled && (control.value !== null && control.value !== undefined)) {
|
|
112
|
-
if (valueProperty === null) {
|
|
113
|
-
return control.value;
|
|
114
|
-
}
|
|
115
|
-
else if (subProperty) {
|
|
116
|
-
return control.value[valueProperty][subProperty];
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
return control.value[valueProperty];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
export class FormGroupComponent {
|
|
127
|
-
constructor(validationMessageService, translateService) {
|
|
128
|
-
this.validationMessageService = validationMessageService;
|
|
129
|
-
this.translateService = translateService;
|
|
130
|
-
/**
|
|
131
|
-
* The form control label
|
|
132
|
-
*/
|
|
133
|
-
this.label = '';
|
|
134
|
-
/**
|
|
135
|
-
* The position of the form control label (top|bottom|left)
|
|
136
|
-
*/
|
|
137
|
-
this.labelPosition = "top";
|
|
138
|
-
/**An optional string to show if any of the underlying controls has an error. If falsy, one of the
|
|
139
|
-
* errors from the underlying controls will be used.
|
|
140
|
-
*/
|
|
141
|
-
this.overrideValidationError = "";
|
|
142
|
-
/**An optional flag to hide the validation messages.
|
|
143
|
-
*/
|
|
144
|
-
this.hideValidationMessage = false;
|
|
145
|
-
/**
|
|
146
|
-
* When a help popover is present, allows the popover to be positioned in different locations.
|
|
147
|
-
*/
|
|
148
|
-
this.helpPopoverPosition = 'top-left';
|
|
149
|
-
/**
|
|
150
|
-
* All current validation errors
|
|
151
|
-
*
|
|
152
|
-
* @type {string}
|
|
153
|
-
* @memberof FormControlBase
|
|
154
|
-
*/
|
|
155
|
-
this.validationErrors = "";
|
|
156
|
-
this.allControlsTouched = false;
|
|
157
|
-
this.componentDestroyed = new Subject();
|
|
158
|
-
}
|
|
159
|
-
async ngOnInit() {
|
|
160
|
-
// subscribe to statusChanges Observable to take any errors and translate them
|
|
161
|
-
if (this.formGroup) {
|
|
162
|
-
this.formGroup.statusChanges
|
|
163
|
-
.pipe(takeUntil(this.componentDestroyed))
|
|
164
|
-
.subscribe(() => {
|
|
165
|
-
this.translateValidationMessages(this.getErrors(this.formGroup));
|
|
166
|
-
});
|
|
167
|
-
// (re)set validation messages
|
|
168
|
-
this.translateValidationMessages(this.getErrors(this.formGroup));
|
|
169
|
-
}
|
|
170
|
-
if (this.id) {
|
|
171
|
-
this.attrId = this.id;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Angular onDestroy lifecyle hook.
|
|
176
|
-
* Unsubscribe from any observables
|
|
177
|
-
*
|
|
178
|
-
* @see https://angular.io/guide/lifecycle-hooks
|
|
179
|
-
* @memberof FormControlBase
|
|
180
|
-
*/
|
|
181
|
-
ngOnDestroy() {
|
|
182
|
-
this.componentDestroyed.next();
|
|
183
|
-
this.componentDestroyed.unsubscribe();
|
|
184
|
-
}
|
|
185
|
-
getErrors(formGroup) {
|
|
186
|
-
formGroup.markAsUntouched();
|
|
187
|
-
let errors = null;
|
|
188
|
-
let allTouched = true;
|
|
189
|
-
let controlFound = false;
|
|
190
|
-
forEachFormControl(formGroup, (control) => {
|
|
191
|
-
errors = this.assignErrors(control, errors);
|
|
192
|
-
if (control.untouched) {
|
|
193
|
-
allTouched = false;
|
|
194
|
-
}
|
|
195
|
-
controlFound = true;
|
|
196
|
-
});
|
|
197
|
-
if (formGroup.errors) {
|
|
198
|
-
errors = Object.assign(errors || {}, formGroup.errors);
|
|
199
|
-
}
|
|
200
|
-
if (allTouched && controlFound) {
|
|
201
|
-
formGroup.markAsTouched();
|
|
202
|
-
}
|
|
203
|
-
return errors;
|
|
204
|
-
}
|
|
205
|
-
assignErrors(control, errors) {
|
|
206
|
-
if (control.errors) {
|
|
207
|
-
errors = Object.assign(errors || {}, control.errors);
|
|
208
|
-
}
|
|
209
|
-
return errors;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Function that subscribes to the formGroup's valueChanges Observable
|
|
213
|
-
* to take any erros and translate them
|
|
214
|
-
*
|
|
215
|
-
* @param {*} [data]
|
|
216
|
-
* @returns
|
|
217
|
-
* @memberof FormControlBase
|
|
218
|
-
*/
|
|
219
|
-
async translateValidationMessages(errors) {
|
|
220
|
-
if (errors) {
|
|
221
|
-
if (this.overrideValidationError) {
|
|
222
|
-
this.validationErrors = this.translateService.instant(this.overrideValidationError);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
let messages = await this.validationMessageService.getErrorMessages(errors);
|
|
226
|
-
if (messages) {
|
|
227
|
-
this.validationErrors = messages.join('; ');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
this.validationErrors = '';
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormGroupComponent, selector: "ec-form-group", inputs: { id: "id", label: "label", formGroup: "formGroup", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage", helpPopover: "helpPopover", helpPopoverPosition: "helpPopoverPosition" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\"\n [class.ec-untouched]=\"formGroup?.untouched\">\n\n <label *ngIf=\"label\">\n <span id=\"{{id}}_label\">{{label | translate}}</span>\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\"> {{validationErrors | translate}}</span>\n <ec-help-popover id=\"{{id}}_helpPopover\"\n *ngIf=\"helpPopover\"\n class=\"d-inline-block my-n3 mx-n1\"\n text=\"{{helpPopover | translate}}\"\n contentPosition=\"{{helpPopoverPosition}}\">\n </ec-help-popover>\n </label>\n\n <ng-content></ng-content>\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:hover:not(:disabled):not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:hover:not(:disabled):not(:focus){border-color:var(--ec-form-control-border-color-hover)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:hover:not(:disabled):not(:focus){border-color:var(--ec-form-control-border-color-hover)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
237
|
-
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
239
|
-
type: Component,
|
|
240
|
-
args: [{ selector: 'ec-form-group', template: "<div class=\"control control-label-{{labelPosition}}\"\n [class.ec-untouched]=\"formGroup?.untouched\">\n\n <label *ngIf=\"label\">\n <span id=\"{{id}}_label\">{{label | translate}}</span>\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\"> {{validationErrors | translate}}</span>\n <ec-help-popover id=\"{{id}}_helpPopover\"\n *ngIf=\"helpPopover\"\n class=\"d-inline-block my-n3 mx-n1\"\n text=\"{{helpPopover | translate}}\"\n contentPosition=\"{{helpPopoverPosition}}\">\n </ec-help-popover>\n </label>\n\n <ng-content></ng-content>\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:hover:not(:disabled):not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:hover:not(:disabled):not(:focus){border-color:var(--ec-form-control-border-color-hover)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:hover:not(:disabled):not(:focus){border-color:var(--ec-form-control-border-color-hover)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
|
|
241
|
-
}], ctorParameters: () => [{ type: i1.ValidationMessageService }, { type: i2.TranslateService }], propDecorators: { id: [{
|
|
242
|
-
type: Input
|
|
243
|
-
}], attrId: [{
|
|
244
|
-
type: HostBinding,
|
|
245
|
-
args: ['attr.id']
|
|
246
|
-
}], label: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], formGroup: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], labelPosition: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], overrideValidationError: [{
|
|
253
|
-
type: Input
|
|
254
|
-
}], hideValidationMessage: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], helpPopover: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], helpPopoverPosition: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}] } });
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTTNDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsRUFBdUMsRUFBRSxnQkFBK0IsT0FBTyxFQUFFLFdBQW9CLEVBQVEsRUFBRTtJQUM5SixJQUFJLGlCQUFpQixHQUE0QixFQUFFLENBQUM7SUFFcEQsbUVBQW1FO0lBQ25FLHNDQUFzQztJQUN0QyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEQsSUFBSSxZQUFZLEdBQVEsZUFBZSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLE9BQU8sWUFBWSxLQUFL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QU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxLQUFLLENBQUMsMkJBQTJCLENBQUMsTUFBK0I7UUFDdkUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7K0dBekpVLGtCQUFrQjttR0FBbEIsa0JBQWtCLG1YQ3JJL0IsZ3NCQWVNOzs0RkRzSE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7NEhBU1QsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgQ29udHJvbExhYmVsUG9zaXRpb24gfSBmcm9tIFwiLi4vZm9ybS1jb250cm9sLWJhc2VcIjtcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50UG9zaXRpb24gfSBmcm9tIFwiLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudFwiO1xuXG5cbi8qKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9ybSBjb250cm9scyBhbmRcbiAqICBlbnN1cmUgdGhleSBjb250YWluIHVuaXF1ZSB2YWx1ZXMuICBJZiBhbnkgYXJlIGR1cGxpY2F0ZWQgYWxsIG9mZmVuZGluZ1xuICogIGZvcm0gY29udHJvbHMgd2lsbCBiZSBtYXJrZWQgYXMgaW52YWxpZFxuICpcbiAqIEBwYXJhbSB2YWx1ZVByb3BlcnR5IC0gdGhlIHN1Yi1wcm9wZXJ0eSBvZiB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IGVhY2ggZm9ybSBjb250cm9sXG4gKiAgICAgICAgaXQgaXMgZGVyZWZlcmVuY2VkIGFzIGZvcm1Hcm91cC5jb250cm9sLnZhbHVlW3ZhbHVlUHJvcGVydHldLlxuICogICAgICAgIGRlZmF1bHRzIHRvIFwidmFsdWVcIiwgd2hpY2ggbWF0Y2hlcyB0aGUgZm9ybSBjb250cm9scyB1c2VkIHRvIGJhY2sgY29tYm9ib3hlc1xuICogICAgICAgIGlmIGV4cGxpY2l0bHkgbnVsbCwgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHZhbHVlIGlzIG5vdCBhIGNvbXBsZXggb2JqZWN0IGFuZCBqdXN0IGV4dHJhY3RzXG4gKiAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2wudmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRm9ybUdyb3VwVmFsdWVzQXJlVW5pcXVlID0gKGZnOiBVbnR5cGVkRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1BcnJheSwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgbGV0IGZvcm1Db250cm9sVmFsdWVzOiB7W2tleTogc3RyaW5nXTogbnVtYmVyfSA9IHt9O1xuXG4gIC8vIEZpcnN0IGdldCBhbGwgb2YgdGhlIHZhbHVlcyBhbmQgaWYgdGhleSBoYXZlIGJlZW4gZm91bmQgYWxyZWFkeSxcbiAgLy8gaW5jcmVtZW50IHRoZSBudW1iZXIgb2YgdGltZXMgZm91bmRcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgbGV0IGNvbnRyb2xWYWx1ZTogYW55ID0gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wsIHZhbHVlUHJvcGVydHksIHN1YlByb3BlcnR5KTtcblxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnRyb2xWYWx1ZSA9IGNvbnRyb2xWYWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgaWYgKGZvcm1Db250cm9sVmFsdWVzLmhhc093blByb3BlcnR5KGNvbnRyb2xWYWx1ZSkpIHtcbiAgICAgICAgZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA9IGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gKyAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA9IDE7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvLyBOb3cgZ28gYmFjayBvdmVyIHRoZSBjb250cm9scyBhbmQgaWYgdGhlaXIgdmFsdWUgd2FzIGZvdW5kIG1vcmUgdGhhbiBvbmNlIGZsYWcgdGhlbSBhcyBpbnZhbGlkXG4gIGZvckVhY2hGb3JtQ29udHJvbChmZywgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgIGxldCBjb250cm9sVmFsdWU6IGFueSA9IGdldENvbnRyb2xWYWx1ZShjb250cm9sLCB2YWx1ZVByb3BlcnR5LCBzdWJQcm9wZXJ0eSk7XG5cbiAgICAvLyBJZiB0aGUgY29udHJvbCB2YWx1ZSBpcyBudWxsIHdlIHdpbGwgbGV0IGFueSByZXF1aXJlZCB2YWxpZGF0b3JzIGhhbmRsZSB0aGVtXG4gICAgaWYgKGNvbnRyb2xWYWx1ZSAhPT0gbnVsbCAmJiBjb250cm9sVmFsdWUgIT09ICcnKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29udHJvbFZhbHVlID0gY29udHJvbFZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA+IDEpIHtcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoT2JqZWN0LmFzc2lnbih7IG5vdFVuaXF1ZTogdHJ1ZSB9LCBjb250cm9sLmVycm9ycykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gR2V0IGEgY29weSBvZiB0aGUgZXhpc3RpbmcgZm9ybSBjb250cm9sIGVycm9ycywgaWYgYW55XG4gICAgICAgIGxldCBlcnJvcnMgPSBjbG9uZURlZXAoY29udHJvbC5lcnJvcnMpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMgYW5kIHByZXZpb3VzbHkgaGFkIHRoZSBub3RVbmlxdWUgZXJyb3Igd2Ugd2FudCB0byByZW1vdmVcbiAgICAgICAgLy8gdGhhdCBwcm9wZXJ0eVxuICAgICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5oYXNPd25Qcm9wZXJ0eShcIm5vdFVuaXF1ZVwiKSkge1xuICAgICAgICAgIGRlbGV0ZSBlcnJvcnMubm90VW5pcXVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhhdCB3YXMgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIG9iamVjdCwgc2V0IHRvIG51bGwgc28gdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgICAgaWYgKGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGVycm9ycyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBmb3IgY29udHJvbHMgYW5kIGludm9rZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGV5IGFyZSBmb3VuZC5cbiAqIFJlY3Vyc2l2ZWx5IGNhbGxzIGl0c2VsZiB3aGVuIGl0IGVuY291bnRlcnMgc3ViIGZvcm0gZ3JvdXBzIGFuZCBpdGVyYXRlcyBvdmVyIGZvcm0gYXJyYXlzLlxuICogQHBhcmFtIGNcbiAqIEBwYXJhbSBjYWxsYmFja1xuICovXG5leHBvcnQgY29uc3QgZm9yRWFjaEZvcm1Db250cm9sID0gKGM6IEFic3RyYWN0Q29udHJvbCwgY2FsbGJhY2s6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHZvaWQpOiB2b2lkID0+IHtcbiAgbGV0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xuXG4gIC8vIE5vcm1hbGl6ZSB0byBhbiBhcnJheSBmb3IgZWFzZSBvZiBwcm9jZXNzaW5nXG4gIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgY29udHJvbHMucHVzaChjKTtcbiAgfSBlbHNlIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvciAodmFyIGtleSBpbiBjLmNvbnRyb2xzKSB7XG4gICAgICBjb250cm9scy5wdXNoKGMuY29udHJvbHNba2V5XSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG4gICAgY29udHJvbHMgPSBjLmNvbnRyb2xzO1xuICB9XG5cbiAgY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjdHJsID0+IHtcbiAgICAgICAgaWYgKGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwIHx8IGN0cmwgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG4gICAgICAgICAgZm9yRWFjaEZvcm1Db250cm9sKGN0cmwsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYWxsYmFjayhjdHJsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgZm9yRWFjaEZvcm1Db250cm9sKGNvbnRyb2wsY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhjb250cm9sKTtcbiAgICB9XG4gIH0pO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZXR1cm4gdGhlIHZhbHVlIGlmIGl0IGlzIGVuYWJsZWQgYW5kIHNldFxuICogQHBhcmFtIGNvbnRyb2xcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvbnRyb2xWYWx1ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHZhbHVlUHJvcGVydHk6IHN0cmluZyB8IG51bGwgPSBcInZhbHVlXCIsIHN1YlByb3BlcnR5Pzogc3RyaW5nKTogYW55IHwgbnVsbCA9PiB7XG4gIGlmIChjb250cm9sLmVuYWJsZWQgJiYgKGNvbnRyb2wudmFsdWUgIT09IG51bGwgJiYgY29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKSkge1xuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKHN1YlByb3BlcnR5KSB7XG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XVtzdWJQcm9wZXJ0eV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlW3ZhbHVlUHJvcGVydHldO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlYy1mb3JtLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogSWRcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogQmluZCBpZCB0byBob3N0IGVsZW1lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFVJLW9yaWVudGVkIGZvcm0gbW9kZWwgdGhhdCByZXRhaW5zIHRoZSBzdGF0ZXMgYW5kIHZhbHVlcyBvZiB0aGUgSFRNTCBjb250cm9scyBvbiBzY3JlZW4uXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0gb3IgYSB7QGxpbmsgRm9ybUdyb3VwfVxuICAgKlxuICAgKiBAdHlwZSB7Rm9ybUdyb3VwfVxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwPzogVW50eXBlZEZvcm1Hcm91cDtcblxuICAvKipcbiAgICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGZvcm0gY29udHJvbCBsYWJlbCAodG9wfGJvdHRvbXxsZWZ0KVxuICAgICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxQb3NpdGlvbj86IENvbnRyb2xMYWJlbFBvc2l0aW9uID0gXCJ0b3BcIjtcblxuXG4gIC8qKkFuIG9wdGlvbmFsIHN0cmluZyB0byBzaG93IGlmIGFueSBvZiB0aGUgdW5kZXJseWluZyBjb250cm9scyBoYXMgYW4gZXJyb3IuIElmIGZhbHN5LCBvbmUgb2YgdGhlXG4gICAqIGVycm9ycyBmcm9tIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBvdmVycmlkZVZhbGlkYXRpb25FcnJvcj86IHN0cmluZyA9IFwiXCI7XG5cbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGhpZGVWYWxpZGF0aW9uTWVzc2FnZT86Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb25kaXRpb25hbGx5IHNob3cgYSBoZWxwIHBvcG92ZXIgbmV4dCB0byB0aGUgY29udHJvbHMgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaGVscFBvcG92ZXI/OiBzdHJpbmc7XG5cbiAgIC8qKlxuICAgKiBXaGVuIGEgaGVscCBwb3BvdmVyIGlzIHByZXNlbnQsIGFsbG93cyB0aGUgcG9wb3ZlciB0byBiZSBwb3NpdGlvbmVkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMuXG4gICAqL1xuICAgQElucHV0KCkgcHVibGljIGhlbHBQb3BvdmVyUG9zaXRpb24/OiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcbiAgIFxuICAvKipcbiAgICogQWxsIGN1cnJlbnQgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XG5cbiAgcHVibGljIGFsbENvbnRyb2xzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIC8vIHN1YnNjcmliZSB0byBzdGF0dXNDaGFuZ2VzIE9ic2VydmFibGUgdG8gdGFrZSBhbnkgZXJyb3JzIGFuZCB0cmFuc2xhdGUgdGhlbVxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cCEpKVxuICAgICAgICB9KTtcblxuICAgICAgLy8gKHJlKXNldCB2YWxpZGF0aW9uIG1lc3NhZ2VzXG4gICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgb25EZXN0cm95IGxpZmVjeWxlIGhvb2suXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9ycyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgZm9ybUdyb3VwLm1hcmtBc1VudG91Y2hlZCgpO1xuXG4gICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBhbGxUb3VjaGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgICBsZXQgY29udHJvbEZvdW5kOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBmb3JFYWNoRm9ybUNvbnRyb2woZm9ybUdyb3VwLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xuICAgICAgaWYgKGNvbnRyb2wudW50b3VjaGVkKSB7XG4gICAgICAgIGFsbFRvdWNoZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnRyb2xGb3VuZCA9IHRydWU7XG4gICAgfSk7XG5cbiAgICBpZiAoZm9ybUdyb3VwLmVycm9ycykge1xuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGZvcm1Hcm91cC5lcnJvcnMpO1xuICAgIH1cblxuICAgIGlmIChhbGxUb3VjaGVkICYmIGNvbnRyb2xGb3VuZCkge1xuICAgICAgZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sLmVycm9ycykge1xuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGNvbnRyb2wuZXJyb3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzXG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBmb3JtR3JvdXAncyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxuICAgKiB0byB0YWtlIGFueSBlcnJvcyBhbmQgdHJhbnNsYXRlIHRoZW1cbiAgICpcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCkge1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm92ZXJyaWRlVmFsaWRhdGlvbkVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcbiAgICAgICAgaWYgKG1lc3NhZ2VzKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gbWVzc2FnZXMuam9pbignOyAnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtbGFiZWwte3tsYWJlbFBvc2l0aW9ufX1cIlxuICAgICBbY2xhc3MuZWMtdW50b3VjaGVkXT1cImZvcm1Hcm91cD8udW50b3VjaGVkXCI+XG5cbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIj5cbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBmb3JtR3JvdXA/LnRvdWNoZWQgJiYgZm9ybUdyb3VwPy5pbnZhbGlkXCI+Jm5ic3A7e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPGVjLWhlbHAtcG9wb3ZlciBpZD1cInt7aWR9fV9oZWxwUG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlbHBQb3BvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgbXktbjMgbXgtbjFcIlxuICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7aGVscFBvcG92ZXIgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAgICAgICAgICBjb250ZW50UG9zaXRpb249XCJ7e2hlbHBQb3BvdmVyUG9zaXRpb259fVwiPlxuICAgIDwvZWMtaGVscC1wb3BvdmVyPlxuICA8L2xhYmVsPlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../popover/popover.component";
|
|
5
|
-
import * as i3 from "@ngx-translate/core";
|
|
6
|
-
export class HelpPopoverComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.id = '';
|
|
9
|
-
this.text = '';
|
|
10
|
-
this.contentPosition = 'top-left';
|
|
11
|
-
this.maxWidth = '15rem';
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HelpPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HelpPopoverComponent, selector: "ec-help-popover", inputs: { id: "id", text: "text", contentPosition: "contentPosition", maxWidth: "maxWidth" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<ec-popover id=\"{{id}}_popover\"\n icon=\"icon-help-circle\"\n [contentPosition]=\"contentPosition\"\n iconHoverClass=\"font-color-primary-light\">\n <div id=\"{{id}}_popoverContent\"\n class=\"popover-content-dark\"\n [class.is-right-positioned]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\n [style.max-width]=\"maxWidth\">\n <div *ngIf=\"text\"\n [innerHTML]=\"text | translate\"></div>\n <ng-content></ng-content>\n </div>\n</ec-popover>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "ec-popover", inputs: ["icon", "tag", "tagHoverType", "contentPosition", "iconHoverClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HelpPopoverComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'ec-help-popover', template: "<ec-popover id=\"{{id}}_popover\"\n icon=\"icon-help-circle\"\n [contentPosition]=\"contentPosition\"\n iconHoverClass=\"font-color-primary-light\">\n <div id=\"{{id}}_popoverContent\"\n class=\"popover-content-dark\"\n [class.is-right-positioned]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\n [style.max-width]=\"maxWidth\">\n <div *ngIf=\"text\"\n [innerHTML]=\"text | translate\"></div>\n <ng-content></ng-content>\n </div>\n</ec-popover>" }]
|
|
19
|
-
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}, {
|
|
22
|
-
type: HostBinding,
|
|
23
|
-
args: ['attr.id']
|
|
24
|
-
}], text: [{
|
|
25
|
-
type: Input
|
|
26
|
-
}], contentPosition: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}], maxWidth: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPOUQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQjtRQUxpQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsb0JBQWUsR0FBMkIsVUFBVSxDQUFDO1FBQ3JELGFBQVEsR0FBVyxPQUFPLENBQUM7SUFFcEIsQ0FBQzsrR0FQTixvQkFBb0I7bUdBQXBCLG9CQUFvQixxTUNQakMsMGhCQVlhOzs0RkRMQSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0UsaUJBQWlCO3dEQUtNLEVBQUU7c0JBQWxDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsU0FBUztnQkFDdEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudFBvc2l0aW9uIH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjLWhlbHAtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEhlbHBQb3BvdmVyQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBpZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjb250ZW50UG9zaXRpb246IFBvcG92ZXJDb250ZW50UG9zaXRpb24gPSAndG9wLWxlZnQnO1xuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJzE1cmVtJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iLCI8ZWMtcG9wb3ZlciBpZD1cInt7aWR9fV9wb3BvdmVyXCJcbiAgICAgICAgICAgIGljb249XCJpY29uLWhlbHAtY2lyY2xlXCJcbiAgICAgICAgICAgIFtjb250ZW50UG9zaXRpb25dPVwiY29udGVudFBvc2l0aW9uXCJcbiAgICAgICAgICAgIGljb25Ib3ZlckNsYXNzPVwiZm9udC1jb2xvci1wcmltYXJ5LWxpZ2h0XCI+XG4gIDxkaXYgaWQ9XCJ7e2lkfX1fcG9wb3ZlckNvbnRlbnRcIlxuICAgICAgIGNsYXNzPVwicG9wb3Zlci1jb250ZW50LWRhcmtcIlxuICAgICAgIFtjbGFzcy5pcy1yaWdodC1wb3NpdGlvbmVkXT1cImNvbnRlbnRQb3NpdGlvbiA9PSAndG9wLXJpZ2h0JyB8fCBjb250ZW50UG9zaXRpb24gPT0gJ2JvdHRvbS1yaWdodCdcIlxuICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwibWF4V2lkdGhcIj5cbiAgICA8ZGl2ICpuZ0lmPVwidGV4dFwiXG4gICAgICAgICBbaW5uZXJIVE1MXT1cInRleHQgfCB0cmFuc2xhdGVcIj48L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9lYy1wb3BvdmVyPiJdfQ==
|