@apipass/inputs 0.2.16 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ace-editor/component.d.ts +52 -52
- package/ace-editor/directive.d.ts +39 -39
- package/assets/css/buttons.scss +118 -118
- package/assets/css/colors.scss +34 -34
- package/assets/css/fonts.scss +24 -24
- package/assets/css/inputs.scss +197 -197
- package/assets/css/pt_sans.scss +143 -143
- package/assets/css/spacing.scss +28 -28
- package/assets/css/texts.scss +18 -18
- package/custom-select/custom-select-item.d.ts +5 -5
- package/custom-select/custom-select.component.d.ts +51 -51
- package/debounce-model-directive/debouceInput.directive.d.ts +14 -14
- package/{esm2015/ace-editor/component.js → esm2020/ace-editor/component.mjs} +199 -204
- package/{esm2015/ace-editor/directive.js → esm2020/ace-editor/directive.mjs} +150 -150
- package/{esm2015/apipass-inputs.js → esm2020/apipass-inputs.mjs} +4 -4
- package/{esm2015/custom-select/custom-select-item.js → esm2020/custom-select/custom-select-item.mjs} +7 -7
- package/esm2020/custom-select/custom-select.component.mjs +204 -0
- package/esm2020/debounce-model-directive/debouceInput.directive.mjs +31 -0
- package/esm2020/field/field.component.mjs +51 -0
- package/esm2020/input-avatar/input-avatar.component.mjs +92 -0
- package/esm2020/input-boolean/input-boolean.component.mjs +56 -0
- package/esm2020/input-file/input-file.component.mjs +82 -0
- package/esm2020/input-number/input-number.component.mjs +62 -0
- package/esm2020/input-password/input-password.component.mjs +96 -0
- package/esm2020/input-text/input-text.component.mjs +62 -0
- package/esm2020/inputs.module.mjs +149 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +17 -17
- package/{esm2015/select-box/mat-select-infinite-scroll.directive.js → esm2020/select-box/mat-select-infinite-scroll.directive.mjs} +86 -86
- package/esm2020/select-box/select-box.component.mjs +220 -0
- package/esm2020/select-enum/select-enum.component.mjs +48 -0
- package/esm2020/select-interpolation/select-interpolation.component.mjs +169 -0
- package/{esm2015/value-acessor-base.js → esm2020/value-acessor-base.mjs} +31 -31
- package/fesm2015/apipass-inputs.mjs +1704 -0
- package/fesm2015/apipass-inputs.mjs.map +1 -0
- package/fesm2020/apipass-inputs.mjs +1697 -0
- package/fesm2020/apipass-inputs.mjs.map +1 -0
- package/field/field.component.d.ts +15 -15
- package/{apipass-inputs.d.ts → index.d.ts} +5 -5
- package/input-avatar/input-avatar.component.d.ts +29 -29
- package/input-boolean/input-boolean.component.d.ts +15 -15
- package/input-file/input-file.component.d.ts +31 -31
- package/input-number/input-number.component.d.ts +17 -17
- package/input-password/input-password.component.d.ts +29 -29
- package/input-text/input-text.component.d.ts +17 -17
- package/inputs.module.d.ts +36 -36
- package/package.json +38 -29
- package/public-api.d.ts +16 -16
- package/select-box/mat-select-infinite-scroll.directive.d.ts +26 -26
- package/select-box/select-box.component.d.ts +57 -57
- package/select-enum/select-enum.component.d.ts +12 -12
- package/select-interpolation/select-interpolation.component.d.ts +44 -44
- package/value-acessor-base.d.ts +13 -13
- package/bundles/apipass-inputs.umd.js +0 -3060
- package/bundles/apipass-inputs.umd.js.map +0 -1
- package/bundles/apipass-inputs.umd.min.js +0 -16
- package/bundles/apipass-inputs.umd.min.js.map +0 -1
- package/esm2015/custom-select/custom-select.component.js +0 -310
- package/esm2015/debounce-model-directive/debouceInput.directive.js +0 -31
- package/esm2015/field/field.component.js +0 -92
- package/esm2015/input-avatar/input-avatar.component.js +0 -167
- package/esm2015/input-boolean/input-boolean.component.js +0 -77
- package/esm2015/input-file/input-file.component.js +0 -133
- package/esm2015/input-number/input-number.component.js +0 -118
- package/esm2015/input-password/input-password.component.js +0 -159
- package/esm2015/input-text/input-text.component.js +0 -118
- package/esm2015/inputs.module.js +0 -155
- package/esm2015/select-box/select-box.component.js +0 -367
- package/esm2015/select-enum/select-enum.component.js +0 -95
- package/esm2015/select-interpolation/select-interpolation.component.js +0 -248
- package/fesm2015/apipass-inputs.js +0 -2434
- package/fesm2015/apipass-inputs.js.map +0 -1
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { CustomSelectItem } from './custom-select-item';
|
|
4
|
-
import { ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
-
import * as i2 from "@angular/material/form-field";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "@angular/material/input";
|
|
10
|
-
import * as i5 from "@angular/forms";
|
|
11
|
-
import * as i6 from "ngx-drag-drop";
|
|
12
|
-
import * as i7 from "@apipass/pipes";
|
|
13
|
-
const _c0 = ["trigger"];
|
|
14
|
-
const _c1 = ["input"];
|
|
15
|
-
function CustomSelectComponent_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
17
|
-
i0.ɵɵelementStart(0, "span", 11);
|
|
18
|
-
i0.ɵɵlistener("click", function CustomSelectComponent_span_6_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.removeClick($event); });
|
|
19
|
-
i0.ɵɵelement(1, "i", 12);
|
|
20
|
-
i0.ɵɵelementEnd();
|
|
21
|
-
} }
|
|
22
|
-
function CustomSelectComponent_ng_template_10_li_4_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
const _r11 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "li", 19);
|
|
25
|
-
i0.ɵɵlistener("click", function CustomSelectComponent_ng_template_10_li_4_Template_li_click_0_listener() { i0.ɵɵrestoreView(_r11); const i_r9 = ctx.$implicit; const ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.selectItem(i_r9); })("mousedown", function CustomSelectComponent_ng_template_10_li_4_Template_li_mousedown_0_listener() { i0.ɵɵrestoreView(_r11); const i_r9 = ctx.$implicit; const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.selectItem(i_r9); });
|
|
26
|
-
i0.ɵɵtext(1);
|
|
27
|
-
i0.ɵɵelementEnd();
|
|
28
|
-
} if (rf & 2) {
|
|
29
|
-
const i_r9 = ctx.$implicit;
|
|
30
|
-
i0.ɵɵadvance(1);
|
|
31
|
-
i0.ɵɵtextInterpolate1(" ", i_r9.text, " ");
|
|
32
|
-
} }
|
|
33
|
-
function CustomSelectComponent_ng_template_10_li_6_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
-
const _r14 = i0.ɵɵgetCurrentView();
|
|
35
|
-
i0.ɵɵelementStart(0, "li", 20);
|
|
36
|
-
i0.ɵɵlistener("mousedown", function CustomSelectComponent_ng_template_10_li_6_Template_li_mousedown_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.addItem(); })("click", function CustomSelectComponent_ng_template_10_li_6_Template_li_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.addItem(); });
|
|
37
|
-
i0.ɵɵelement(1, "span", 21);
|
|
38
|
-
i0.ɵɵelementStart(2, "span");
|
|
39
|
-
i0.ɵɵtext(3);
|
|
40
|
-
i0.ɵɵelementEnd();
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
} if (rf & 2) {
|
|
43
|
-
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
44
|
-
i0.ɵɵadvance(3);
|
|
45
|
-
i0.ɵɵtextInterpolate(ctx_r8.addItemLabel);
|
|
46
|
-
} }
|
|
47
|
-
function CustomSelectComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
const _r17 = i0.ɵɵgetCurrentView();
|
|
49
|
-
i0.ɵɵelementStart(0, "ul", 13);
|
|
50
|
-
i0.ɵɵelementStart(1, "li", 14);
|
|
51
|
-
i0.ɵɵelementStart(2, "mat-form-field", 15);
|
|
52
|
-
i0.ɵɵelementStart(3, "input", 16);
|
|
53
|
-
i0.ɵɵlistener("ngModelChange", function CustomSelectComponent_ng_template_10_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.searchText = $event; })("blur", function CustomSelectComponent_ng_template_10_Template_input_blur_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.onBlur($event); });
|
|
54
|
-
i0.ɵɵelementEnd();
|
|
55
|
-
i0.ɵɵelementEnd();
|
|
56
|
-
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵtemplate(4, CustomSelectComponent_ng_template_10_li_4_Template, 2, 1, "li", 17);
|
|
58
|
-
i0.ɵɵpipe(5, "selectFilter");
|
|
59
|
-
i0.ɵɵtemplate(6, CustomSelectComponent_ng_template_10_li_6_Template, 4, 1, "li", 18);
|
|
60
|
-
i0.ɵɵelementEnd();
|
|
61
|
-
} if (rf & 2) {
|
|
62
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
63
|
-
i0.ɵɵadvance(3);
|
|
64
|
-
i0.ɵɵproperty("placeholder", ctx_r4.findPlaceHolder)("ngModel", ctx_r4.searchText);
|
|
65
|
-
i0.ɵɵadvance(1);
|
|
66
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind3(5, 4, ctx_r4.items, ctx_r4.searchText, "text"));
|
|
67
|
-
i0.ɵɵadvance(2);
|
|
68
|
-
i0.ɵɵproperty("ngIf", ctx_r4.allowAddItem);
|
|
69
|
-
} }
|
|
70
|
-
const _c2 = function (a0) { return { "select-open": a0 }; };
|
|
71
|
-
const _c3 = function () { return { standalone: true }; };
|
|
72
|
-
const _c4 = function (a0, a1) { return { "fa-caret-down": a0, "fa-caret-up": a1 }; };
|
|
73
|
-
export class CustomSelectComponent {
|
|
74
|
-
constructor(sso) {
|
|
75
|
-
this.sso = sso;
|
|
76
|
-
this.disabled = false;
|
|
77
|
-
this.items = [];
|
|
78
|
-
this.allowTyping = false;
|
|
79
|
-
this.allowRemove = false;
|
|
80
|
-
this.allowAddItem = true;
|
|
81
|
-
this.addItemLabel = 'Add New Item';
|
|
82
|
-
this.placeHolder = 'Select';
|
|
83
|
-
this.findPlaceHolder = 'Find item';
|
|
84
|
-
this.searchText = '';
|
|
85
|
-
this.onSelect = new EventEmitter();
|
|
86
|
-
this.onUnSelect = new EventEmitter();
|
|
87
|
-
this.onAddItem = new EventEmitter();
|
|
88
|
-
this.opened = false;
|
|
89
|
-
this.edited = false;
|
|
90
|
-
this.tabindex = '0';
|
|
91
|
-
this.onTouchedCallback = () => {
|
|
92
|
-
};
|
|
93
|
-
this.onChangeCallback = () => {
|
|
94
|
-
};
|
|
95
|
-
this.scrollStrategy = this.sso.block();
|
|
96
|
-
}
|
|
97
|
-
onBlur(target) {
|
|
98
|
-
if (this.allowTyping) {
|
|
99
|
-
if (this.value) {
|
|
100
|
-
if (this.edited) {
|
|
101
|
-
this.writeValue(this.value);
|
|
102
|
-
this.selectedItem = new CustomSelectItem(this.value, this.value);
|
|
103
|
-
this.onSelect.next(this.selectedItem);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.writeValue(undefined);
|
|
108
|
-
this.onSelect.next(undefined);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (target && target.relatedTarget && target.relatedTarget.classList.contains('search-input-item')) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
this.setTriggerRect();
|
|
115
|
-
this.opened = false;
|
|
116
|
-
}
|
|
117
|
-
ngAfterViewInit() {
|
|
118
|
-
setTimeout(() => {
|
|
119
|
-
this.setTriggerRect();
|
|
120
|
-
}, 300);
|
|
121
|
-
}
|
|
122
|
-
setTriggerRect() {
|
|
123
|
-
setTimeout(() => {
|
|
124
|
-
var _a;
|
|
125
|
-
this._triggerRect = (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.nativeElement.getBoundingClientRect();
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
selectItem(item) {
|
|
129
|
-
this.opened = false;
|
|
130
|
-
this.selectedItem = item;
|
|
131
|
-
this.edited = false;
|
|
132
|
-
this.selectedModelValue = item.text;
|
|
133
|
-
this.value = item.text;
|
|
134
|
-
this.searchText = '';
|
|
135
|
-
this.onSelect.next(item);
|
|
136
|
-
}
|
|
137
|
-
addItem() {
|
|
138
|
-
this.opened = false;
|
|
139
|
-
this.searchText = '';
|
|
140
|
-
this.onAddItem.next();
|
|
141
|
-
}
|
|
142
|
-
keyPress() {
|
|
143
|
-
this.setTriggerRect();
|
|
144
|
-
if (this.allowTyping) {
|
|
145
|
-
this.opened = false;
|
|
146
|
-
this.edited = true;
|
|
147
|
-
this.selectedModelValue = this.value;
|
|
148
|
-
this.searchText = '';
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
this.edited = false;
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
clicked() {
|
|
156
|
-
this.setTriggerRect();
|
|
157
|
-
this.opened = true;
|
|
158
|
-
this.searchText = '';
|
|
159
|
-
}
|
|
160
|
-
get value() {
|
|
161
|
-
return this.innerValue;
|
|
162
|
-
}
|
|
163
|
-
set value(value) {
|
|
164
|
-
this.innerValue = value;
|
|
165
|
-
this.onChangeCallback(value);
|
|
166
|
-
this.onSelect.next(value);
|
|
167
|
-
}
|
|
168
|
-
writeValue(value) {
|
|
169
|
-
if (value !== this.innerValue) {
|
|
170
|
-
if (!this.selectedItem || !this.selectedItem.text || !value) {
|
|
171
|
-
this.selectedItem = new CustomSelectItem(null, value);
|
|
172
|
-
}
|
|
173
|
-
this.innerValue = value;
|
|
174
|
-
this.selectedModelValue = value;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
registerOnChange(fn) {
|
|
178
|
-
this.onChangeCallback = fn;
|
|
179
|
-
}
|
|
180
|
-
registerOnTouched(fn) {
|
|
181
|
-
this.onTouchedCallback = fn;
|
|
182
|
-
}
|
|
183
|
-
setDisabledState(isDisabled) {
|
|
184
|
-
this.disabled = isDisabled;
|
|
185
|
-
}
|
|
186
|
-
arrowClick(event) {
|
|
187
|
-
var _a;
|
|
188
|
-
event.stopPropagation();
|
|
189
|
-
this.setTriggerRect();
|
|
190
|
-
if (this.opened) {
|
|
191
|
-
this.opened = false;
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
this.opened = true;
|
|
195
|
-
this.searchText = '';
|
|
196
|
-
(_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
removeClick(event) {
|
|
200
|
-
event.stopPropagation();
|
|
201
|
-
this.opened = false;
|
|
202
|
-
this.searchText = '';
|
|
203
|
-
this.innerValue = null;
|
|
204
|
-
this.onUnSelect.next();
|
|
205
|
-
}
|
|
206
|
-
onDrop($event) {
|
|
207
|
-
this.searchText = '';
|
|
208
|
-
if (!this.value) {
|
|
209
|
-
this.value = '';
|
|
210
|
-
}
|
|
211
|
-
this.value += `{{${$event.data}}}`;
|
|
212
|
-
this.edited = true;
|
|
213
|
-
this.onBlur(undefined);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
CustomSelectComponent.ɵfac = function CustomSelectComponent_Factory(t) { return new (t || CustomSelectComponent)(i0.ɵɵdirectiveInject(i1.ScrollStrategyOptions)); };
|
|
217
|
-
CustomSelectComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CustomSelectComponent, selectors: [["custom-select"]], viewQuery: function CustomSelectComponent_Query(rf, ctx) { if (rf & 1) {
|
|
218
|
-
i0.ɵɵviewQuery(_c0, true);
|
|
219
|
-
i0.ɵɵviewQuery(_c1, true, ElementRef);
|
|
220
|
-
} if (rf & 2) {
|
|
221
|
-
var _t;
|
|
222
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);
|
|
223
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
|
|
224
|
-
} }, hostVars: 1, hostBindings: function CustomSelectComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
225
|
-
i0.ɵɵlistener("blur", function CustomSelectComponent_blur_HostBindingHandler($event) { return ctx.onBlur($event.target); });
|
|
226
|
-
} if (rf & 2) {
|
|
227
|
-
i0.ɵɵattribute("tabindex", ctx.tabindex);
|
|
228
|
-
} }, inputs: { disabled: "disabled", items: "items", allowTyping: "allowTyping", allowRemove: "allowRemove", allowAddItem: "allowAddItem", addItemLabel: "addItemLabel", placeHolder: "placeHolder", findPlaceHolder: "findPlaceHolder", searchText: "searchText" }, outputs: { onSelect: "onSelect", onUnSelect: "onUnSelect", onAddItem: "onAddItem" }, features: [i0.ɵɵProvidersFeature([{
|
|
229
|
-
provide: NG_VALUE_ACCESSOR,
|
|
230
|
-
useExisting: forwardRef(() => CustomSelectComponent),
|
|
231
|
-
multi: true
|
|
232
|
-
}])], decls: 11, vars: 18, consts: [[1, "custom-select-input"], ["trigger", ""], ["cdkOverlayOrigin", "", "appearance", "fill", "autocomplete", "off", 1, "custom-select-component", 3, "ngClass"], ["origin", "cdkOverlayOrigin"], ["matInput", "", "dndDropzone", "", "autocomplete", "off", 3, "placeholder", "ngModel", "ngModelOptions", "disabled", "focus", "blur", "ngModelChange", "keyup", "click", "dndDrop"], ["input", ""], ["title", "Remover", "class", "remove-icon", 3, "click", 4, "ngIf"], [1, "open-icon", 3, "click"], [1, "fas", 3, "ngClass"], [1, "custom-select-component"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayMinWidth"], ["title", "Remover", 1, "remove-icon", 3, "click"], [1, "fa", "fa-times"], [1, "ul-ac"], [1, "li-search", "search-input-item"], ["appearance", "fill", 1, "apipass-input-text", "search-input-item"], ["matInput", "", "aria-autocomplete", "none", "autocomplete", "off", 1, "search-input-item", 3, "placeholder", "ngModel", "ngModelChange", "blur"], ["class", "clickable", 3, "click", "mousedown", 4, "ngFor", "ngForOf"], ["class", "li-add", 3, "mousedown", "click", 4, "ngIf"], [1, "clickable", 3, "click", "mousedown"], [1, "li-add", 3, "mousedown", "click"], [1, "fa", "fa-plus-circle"]], template: function CustomSelectComponent_Template(rf, ctx) { if (rf & 1) {
|
|
233
|
-
i0.ɵɵelementStart(0, "div", 0, 1);
|
|
234
|
-
i0.ɵɵelementStart(2, "mat-form-field", 2, 3);
|
|
235
|
-
i0.ɵɵelementStart(4, "input", 4, 5);
|
|
236
|
-
i0.ɵɵlistener("focus", function CustomSelectComponent_Template_input_focus_4_listener() { return ctx.opened = true; })("blur", function CustomSelectComponent_Template_input_blur_4_listener($event) { return ctx.onBlur($event); })("ngModelChange", function CustomSelectComponent_Template_input_ngModelChange_4_listener($event) { return ctx.value = $event; })("keyup", function CustomSelectComponent_Template_input_keyup_4_listener() { return ctx.keyPress(); })("click", function CustomSelectComponent_Template_input_click_4_listener() { return ctx.clicked(); })("dndDrop", function CustomSelectComponent_Template_input_dndDrop_4_listener($event) { return ctx.onDrop($event); });
|
|
237
|
-
i0.ɵɵelementEnd();
|
|
238
|
-
i0.ɵɵtemplate(6, CustomSelectComponent_span_6_Template, 2, 0, "span", 6);
|
|
239
|
-
i0.ɵɵelementStart(7, "span", 7);
|
|
240
|
-
i0.ɵɵlistener("click", function CustomSelectComponent_Template_span_click_7_listener($event) { return ctx.arrowClick($event); });
|
|
241
|
-
i0.ɵɵelement(8, "i", 8);
|
|
242
|
-
i0.ɵɵelementEnd();
|
|
243
|
-
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementEnd();
|
|
245
|
-
i0.ɵɵelementStart(9, "div", 9);
|
|
246
|
-
i0.ɵɵtemplate(10, CustomSelectComponent_ng_template_10_Template, 7, 8, "ng-template", 10);
|
|
247
|
-
i0.ɵɵelementEnd();
|
|
248
|
-
} if (rf & 2) {
|
|
249
|
-
const _r1 = i0.ɵɵreference(3);
|
|
250
|
-
i0.ɵɵadvance(2);
|
|
251
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c2, ctx.opened));
|
|
252
|
-
i0.ɵɵadvance(2);
|
|
253
|
-
i0.ɵɵproperty("placeholder", ctx.placeHolder)("ngModel", ctx.value)("ngModelOptions", i0.ɵɵpureFunction0(14, _c3))("disabled", ctx.disabled);
|
|
254
|
-
i0.ɵɵadvance(2);
|
|
255
|
-
i0.ɵɵproperty("ngIf", ctx.allowRemove);
|
|
256
|
-
i0.ɵɵadvance(2);
|
|
257
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c4, !ctx.opened, ctx.opened));
|
|
258
|
-
i0.ɵɵadvance(2);
|
|
259
|
-
i0.ɵɵproperty("cdkConnectedOverlayPanelClass", "custom-select-overlay-panel")("cdkConnectedOverlayScrollStrategy", ctx.scrollStrategy)("cdkConnectedOverlayOrigin", _r1)("cdkConnectedOverlayOpen", ctx.opened)("cdkConnectedOverlayMinWidth", ctx._triggerRect == null ? null : ctx._triggerRect.width);
|
|
260
|
-
} }, directives: [i2.MatFormField, i1.CdkOverlayOrigin, i3.NgClass, i4.MatInput, i5.DefaultValueAccessor, i6.DndDropzoneDirective, i5.NgControlStatus, i5.NgModel, i3.NgIf, i1.CdkConnectedOverlay, i3.NgForOf], pipes: [i7.SelectFilterPipe], styles: [".custom-select-component[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%], .custom-select-overlay-panel{cursor:pointer}.custom-select-component[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .custom-select-overlay-panel input{background:#fff!important;height:37px}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac{background:#fff;border:1px solid #ccc;box-sizing:border-box;list-style:none;margin-top:-1px;max-height:16rem;overflow:auto;padding:0;position:relative;width:100%}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac li{cursor:pointer;font-size:12px;overflow:hidden;padding:10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover, .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover, .custom-select-overlay-panel .ul-ac li:hover{background:#bbbcbc}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac li .mat-form-field-flex{height:37px!important}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] li[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac li .mat-form-field-flex input{height:auto}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] .li-add[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] .li-add[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac .li-add{border-top:1px solid #d3d3d3}.custom-select-component[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] .li-add[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .ul-ac[_ngcontent-%COMP%] .li-add[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%], .custom-select-overlay-panel .ul-ac .li-add .fa{color:#ff8f17;padding-right:5px}.custom-select-component[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%], .custom-select-overlay-panel .selected{background-color:#898a8a!important}.custom-select-component[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%], .custom-select-overlay-panel .selected .fa{color:#fff!important}.custom-select-component[_ngcontent-%COMP%] .remove-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .remove-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .custom-select-overlay-panel .remove-icon i{color:red;margin-right:10px}.custom-select-component[_ngcontent-%COMP%] .open-icon[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .open-icon[_ngcontent-%COMP%], .custom-select-overlay-panel .open-icon{cursor:pointer}.custom-select-component[_ngcontent-%COMP%] .open-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .open-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .custom-select-overlay-panel .open-icon i{color:rgba(0,0,0,.54)}.custom-select-component[_ngcontent-%COMP%] .li-search[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .li-search[_ngcontent-%COMP%], .custom-select-overlay-panel .li-search{border-bottom:1px solid #ccc!important;cursor:default!important}.custom-select-component[_ngcontent-%COMP%] .li-search[_ngcontent-%COMP%]:hover, .custom-select-input[_ngcontent-%COMP%] .li-search[_ngcontent-%COMP%]:hover, .custom-select-overlay-panel .li-search:hover{background:#fff!important}.custom-select-component[_ngcontent-%COMP%] .select-open[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%], .custom-select-input[_ngcontent-%COMP%] .select-open[_ngcontent-%COMP%] .mat-form-field-flex[_ngcontent-%COMP%], .custom-select-overlay-panel .select-open .mat-form-field-flex{border-radius:6px 6px 0 0!important}"] });
|
|
261
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CustomSelectComponent, [{
|
|
262
|
-
type: Component,
|
|
263
|
-
args: [{
|
|
264
|
-
selector: 'custom-select',
|
|
265
|
-
templateUrl: 'custom-select.component.html',
|
|
266
|
-
styleUrls: ['custom-select.component.scss'],
|
|
267
|
-
providers: [{
|
|
268
|
-
provide: NG_VALUE_ACCESSOR,
|
|
269
|
-
useExisting: forwardRef(() => CustomSelectComponent),
|
|
270
|
-
multi: true
|
|
271
|
-
}]
|
|
272
|
-
}]
|
|
273
|
-
}], function () { return [{ type: i1.ScrollStrategyOptions }]; }, { disabled: [{
|
|
274
|
-
type: Input
|
|
275
|
-
}], items: [{
|
|
276
|
-
type: Input
|
|
277
|
-
}], allowTyping: [{
|
|
278
|
-
type: Input
|
|
279
|
-
}], allowRemove: [{
|
|
280
|
-
type: Input
|
|
281
|
-
}], allowAddItem: [{
|
|
282
|
-
type: Input
|
|
283
|
-
}], addItemLabel: [{
|
|
284
|
-
type: Input
|
|
285
|
-
}], placeHolder: [{
|
|
286
|
-
type: Input
|
|
287
|
-
}], findPlaceHolder: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], searchText: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}], onSelect: [{
|
|
292
|
-
type: Output
|
|
293
|
-
}], onUnSelect: [{
|
|
294
|
-
type: Output
|
|
295
|
-
}], onAddItem: [{
|
|
296
|
-
type: Output
|
|
297
|
-
}], trigger: [{
|
|
298
|
-
type: ViewChild,
|
|
299
|
-
args: ['trigger']
|
|
300
|
-
}], input: [{
|
|
301
|
-
type: ViewChild,
|
|
302
|
-
args: ['input', { read: ElementRef }]
|
|
303
|
-
}], tabindex: [{
|
|
304
|
-
type: HostBinding,
|
|
305
|
-
args: ['attr.tabindex']
|
|
306
|
-
}], onBlur: [{
|
|
307
|
-
type: HostListener,
|
|
308
|
-
args: ['blur', ['$event.target']]
|
|
309
|
-
}] }); })();
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xKLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQWlCLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7SUNZdkUsZ0NBQ0U7SUFENEQscU1BQTZCO0lBQ3pGLHdCQUEyQjtJQUM3QixpQkFBTzs7OztJQTJCTCw4QkFHRTtJQUZFLHVPQUF1QixrT0FBQTtJQUV6QixZQUNGO0lBQUEsaUJBQUs7OztJQURILGVBQ0Y7SUFERSwwQ0FDRjs7OztJQUVBLDhCQUNFO0lBRHNDLDRNQUF1Qix1TEFBQTtJQUM3RCwyQkFBdUM7SUFDdkMsNEJBQU07SUFBQSxZQUFnQjtJQUFBLGlCQUFPO0lBQy9CLGlCQUFLOzs7SUFERyxlQUFnQjtJQUFoQix5Q0FBZ0I7Ozs7SUFyQjFCLDhCQUNFO0lBQUEsOEJBQ0U7SUFBQSwwQ0FDRTtJQUFBLGlDQU9GO0lBTFMsaU9BQXdCLDZMQUFBO0lBRi9CLGlCQU9GO0lBQUEsaUJBQWlCO0lBQ25CLGlCQUFLO0lBRUwsb0ZBR0U7O0lBR0Ysb0ZBQ0U7SUFHSixp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dCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDdXN0b21TZWxlY3RJdGVtfSBmcm9tICcuL2N1c3RvbS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQge1Njcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VzdG9tLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjdXN0b20tc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21TZWxlY3RDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG5cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuXG4gIHNjcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneTtcbiAgX3RyaWdnZXJSZWN0OiBDbGllbnRSZWN0IHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogQ3VzdG9tU2VsZWN0SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGFsbG93VHlwaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsbG93QWRkSXRlbSA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZEl0ZW1MYWJlbCA9ICdBZGQgTmV3IEl0ZW0nO1xuICBASW5wdXQoKSBwbGFjZUhvbGRlciA9ICdTZWxlY3QnO1xuICBASW5wdXQoKSBmaW5kUGxhY2VIb2xkZXIgPSAnRmluZCBpdGVtJztcbiAgQElucHV0KCkgc2VhcmNoVGV4dCA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbVNlbGVjdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25VblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkFkZEl0ZW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInKSB0cmlnZ2VyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgb3BlbmVkID0gZmFsc2U7XG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW06IEN1c3RvbVNlbGVjdEl0ZW0gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55O1xuICBwcml2YXRlIHNlbGVjdGVkTW9kZWxWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZWRpdGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAnMCc7XG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudC50YXJnZXQnXSkgb25CbHVyKHRhcmdldDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsb3dUeXBpbmcpIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRlZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG5ldyBDdXN0b21TZWxlY3RJdGVtKHRoaXMudmFsdWUsIHRoaXMudmFsdWUpO1xuICAgICAgICAgIHRoaXMub25TZWxlY3QubmV4dCh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uU2VsZWN0Lm5leHQodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXQucmVsYXRlZFRhcmdldCAmJiB0YXJnZXQucmVsYXRlZFRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3NlYXJjaC1pbnB1dC1pdGVtJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRUcmlnZ2VyUmVjdCgpO1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNzbzogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc3NvLmJsb2NrKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFRyaWdnZXJSZWN0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VHJpZ2dlclJlY3QoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl90cmlnZ2VyUmVjdCA9IHRoaXMudHJpZ2dlcj8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RJdGVtKGl0ZW06IEN1c3RvbVNlbGVjdEl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICB0aGlzLmVkaXRlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbFZhbHVlID0gaXRlbS50ZXh0O1xuICAgIHRoaXMudmFsdWUgPSBpdGVtLnRleHQ7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5vblNlbGVjdC5uZXh0KGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICB0aGlzLm9uQWRkSXRlbS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMga2V5UHJlc3MoKTogYW55IHtcbiAgICB0aGlzLnNldFRyaWdnZXJSZWN0KCk7XG4gICAgaWYgKHRoaXMuYWxsb3dUeXBpbmcpIHtcbiAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVkaXRlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9kZWxWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0ZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRyaWdnZXJSZWN0KCk7XG4gICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XG4gICAgdGhpcy5vblNlbGVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtIHx8ICF0aGlzLnNlbGVjdGVkSXRlbS50ZXh0IHx8ICF2YWx1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG5ldyBDdXN0b21TZWxlY3RJdGVtKG51bGwsIHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBhcnJvd0NsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNldFRyaWdnZXJSZWN0KCk7XG4gICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcbiAgICB0aGlzLm9uVW5TZWxlY3QubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG9uRHJvcCgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlICs9IGB7eyR7JGV2ZW50LmRhdGF9fX1gO1xuICAgIHRoaXMuZWRpdGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9uQmx1cih1bmRlZmluZWQpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0LWlucHV0XCIgI3RyaWdnZXI+XG4gIDxtYXQtZm9ybS1maWVsZCBjZGtPdmVybGF5T3JpZ2luICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCIgY2xhc3M9XCJjdXN0b20tc2VsZWN0LWNvbXBvbmVudFwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0LW9wZW4nIDogb3BlbmVkfVwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gICAgPGlucHV0IG1hdElucHV0ICNpbnB1dFxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuICAgICAgICAgICAoZm9jdXMpPVwib3BlbmVkID0gdHJ1ZVwiXG4gICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAoa2V5dXApPWtleVByZXNzKClcbiAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrZWQoKVwiXG4gICAgICAgICAgIGRuZERyb3B6b25lXG4gICAgICAgICAgIChkbmREcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAvPlxuICAgIDxzcGFuICpuZ0lmPVwiYWxsb3dSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZXJcIiBjbGFzcz1cInJlbW92ZS1pY29uXCIgKGNsaWNrKT1cInJlbW92ZUNsaWNrKCRldmVudClcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwib3Blbi1pY29uXCIgKGNsaWNrKT1cImFycm93Q2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhc1wiIFtuZ0NsYXNzXT1cInsnZmEtY2FyZXQtZG93bicgOiAhb3BlbmVkLCAnZmEtY2FyZXQtdXAnIDogb3BlbmVkfVwiPjwvaT5cbiAgICA8L3NwYW4+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0LWNvbXBvbmVudFwiPlxuXG4gIDxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBhbmVsQ2xhc3NdPVwiJ2N1c3RvbS1zZWxlY3Qtb3ZlcmxheS1wYW5lbCdcIlxuICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneV09XCJzY3JvbGxTdHJhdGVneVwiXG4gICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5lZFwiXG4gICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU1pbldpZHRoXT1cIl90cmlnZ2VyUmVjdD8ud2lkdGghXCI+XG4gICAgPHVsIGNsYXNzPVwidWwtYWNcIj5cbiAgICAgIDxsaSBjbGFzcz1cImxpLXNlYXJjaCBzZWFyY2gtaW5wdXQtaXRlbVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHQgc2VhcmNoLWlucHV0LWl0ZW1cIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpbmRQbGFjZUhvbGRlclwiXG4gICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9saT5cblxuICAgICAgPGxpIGNsYXNzPVwiY2xpY2thYmxlXCIgKm5nRm9yPVwibGV0IGkgb2YgaXRlbXMgfCBzZWxlY3RGaWx0ZXI6c2VhcmNoVGV4dDondGV4dCdcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGkpXCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cInNlbGVjdEl0ZW0oaSlcIj5cbiAgICAgICAge3tpLnRleHR9fVxuICAgICAgPC9saT5cblxuICAgICAgPGxpICpuZ0lmPVwiYWxsb3dBZGRJdGVtXCIgY2xhc3M9XCJsaS1hZGRcIiAobW91c2Vkb3duKT1cImFkZEl0ZW0oKVwiIChjbGljayk9XCJhZGRJdGVtKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3thZGRJdGVtTGFiZWx9fTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { NgModel } from '@angular/forms';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
export class DebouceInputDirective {
|
|
7
|
-
constructor(ngModel) {
|
|
8
|
-
this.ngModel = ngModel;
|
|
9
|
-
this.debounceTime = 500;
|
|
10
|
-
this.onDebounceTriggered = new EventEmitter();
|
|
11
|
-
this.subscription = this.ngModel.control.valueChanges.pipe(skip(1), distinctUntilChanged(), debounceTime(this.debounceTime)).subscribe((value) => this.onDebounceTriggered.emit(value));
|
|
12
|
-
}
|
|
13
|
-
ngOnDestroy() {
|
|
14
|
-
if (this.subscription) {
|
|
15
|
-
this.subscription.unsubscribe();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
DebouceInputDirective.ɵfac = function DebouceInputDirective_Factory(t) { return new (t || DebouceInputDirective)(i0.ɵɵdirectiveInject(i1.NgModel)); };
|
|
20
|
-
DebouceInputDirective.ɵdir = i0.ɵɵdefineDirective({ type: DebouceInputDirective, selectors: [["", "debounceInput", ""]], inputs: { debounceTime: "debounceTime" }, outputs: { onDebounceTriggered: "onDebounceTriggered" } });
|
|
21
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(DebouceInputDirective, [{
|
|
22
|
-
type: Directive,
|
|
23
|
-
args: [{
|
|
24
|
-
selector: '[debounceInput]',
|
|
25
|
-
}]
|
|
26
|
-
}], function () { return [{ type: i1.NgModel }]; }, { debounceTime: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}], onDebounceTriggered: [{
|
|
29
|
-
type: Output
|
|
30
|
-
}] }); })();
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VjZUlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvZGVib3VuY2UtbW9kZWwtZGlyZWN0aXZlL2RlYm91Y2VJbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3hFLE1BQU0sT0FBTyxxQkFBcUI7SUFVaEMsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVA3QixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUduQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBS25ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLG9CQUFvQixFQUFFLEVBQ3RCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQ2hDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDOzswRkF0QlUscUJBQXFCOzBEQUFyQixxQkFBcUI7a0RBQXJCLHFCQUFxQjtjQUhqQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1QjswREFJUSxZQUFZO2tCQURsQixLQUFLO1lBSUMsbUJBQW1CO2tCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdNb2RlbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBza2lwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZWJvdW5jZUlucHV0XScsXG59KVxuZXhwb3J0IGNsYXNzIERlYm91Y2VJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRlYm91bmNlVGltZSA9IDUwMDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uRGVib3VuY2VUcmlnZ2VyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ01vZGVsOiBOZ01vZGVsKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHNraXAoMSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKVxuICAgICkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkRlYm91bmNlVHJpZ2dlcmVkLmVtaXQodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
function FieldComponent_label_1_Template(rf, ctx) { if (rf & 1) {
|
|
5
|
-
i0.ɵɵelementStart(0, "label", 3);
|
|
6
|
-
i0.ɵɵtext(1);
|
|
7
|
-
i0.ɵɵelementEnd();
|
|
8
|
-
} if (rf & 2) {
|
|
9
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
10
|
-
i0.ɵɵadvance(1);
|
|
11
|
-
i0.ɵɵtextInterpolate(ctx_r0.label);
|
|
12
|
-
} }
|
|
13
|
-
function FieldComponent_span_3_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
i0.ɵɵelementStart(0, "span");
|
|
15
|
-
i0.ɵɵtext(1, "Este campo \u00E9 obrigat\u00F3rio");
|
|
16
|
-
i0.ɵɵelementEnd();
|
|
17
|
-
} }
|
|
18
|
-
function FieldComponent_span_3_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
-
i0.ɵɵelementStart(0, "span");
|
|
20
|
-
i0.ɵɵtext(1, "E-mail inv\u00E1lido");
|
|
21
|
-
i0.ɵɵelementEnd();
|
|
22
|
-
} }
|
|
23
|
-
function FieldComponent_span_3_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
-
i0.ɵɵelementStart(0, "span");
|
|
25
|
-
i0.ɵɵtext(1, "Tamanho m\u00EDnimo inv\u00E1lido");
|
|
26
|
-
i0.ɵɵelementEnd();
|
|
27
|
-
} }
|
|
28
|
-
function FieldComponent_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
-
i0.ɵɵelementStart(0, "span", 4);
|
|
30
|
-
i0.ɵɵtemplate(1, FieldComponent_span_3_span_1_Template, 2, 0, "span", 5);
|
|
31
|
-
i0.ɵɵtemplate(2, FieldComponent_span_3_span_2_Template, 2, 0, "span", 5);
|
|
32
|
-
i0.ɵɵtemplate(3, FieldComponent_span_3_span_3_Template, 2, 0, "span", 5);
|
|
33
|
-
i0.ɵɵelementEnd();
|
|
34
|
-
} if (rf & 2) {
|
|
35
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
36
|
-
i0.ɵɵadvance(1);
|
|
37
|
-
i0.ɵɵproperty("ngIf", ctx_r1.state.hasError("required"));
|
|
38
|
-
i0.ɵɵadvance(1);
|
|
39
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.state.hasError("required") && ctx_r1.state.hasError("validateEmail"));
|
|
40
|
-
i0.ɵɵadvance(1);
|
|
41
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.state.hasError("required") && ctx_r1.state.hasError("minlength"));
|
|
42
|
-
} }
|
|
43
|
-
const _c0 = function (a0) { return { "has-error": a0 }; };
|
|
44
|
-
const _c1 = ["*"];
|
|
45
|
-
export class FieldComponent {
|
|
46
|
-
constructor() {
|
|
47
|
-
/**
|
|
48
|
-
* Texto para label do Input
|
|
49
|
-
*/
|
|
50
|
-
this.label = '';
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
FieldComponent.ɵfac = function FieldComponent_Factory(t) { return new (t || FieldComponent)(); };
|
|
54
|
-
FieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldComponent, selectors: [["app-field"]], inputs: { label: "label", state: "state" }, ngContentSelectors: _c1, decls: 4, vars: 5, consts: [[3, "ngClass"], ["class", "label-text", 4, "ngIf"], ["class", "help-block text-danger", 4, "ngIf"], [1, "label-text"], [1, "help-block", "text-danger"], [4, "ngIf"]], template: function FieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
-
i0.ɵɵprojectionDef();
|
|
56
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
57
|
-
i0.ɵɵtemplate(1, FieldComponent_label_1_Template, 2, 1, "label", 1);
|
|
58
|
-
i0.ɵɵprojection(2);
|
|
59
|
-
i0.ɵɵtemplate(3, FieldComponent_span_3_Template, 4, 3, "span", 2);
|
|
60
|
-
i0.ɵɵelementEnd();
|
|
61
|
-
} if (rf & 2) {
|
|
62
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx.state && !ctx.state.valid && (!ctx.state.pristine || ctx.state.touched) && ctx.state.errors));
|
|
63
|
-
i0.ɵɵadvance(1);
|
|
64
|
-
i0.ɵɵproperty("ngIf", ctx.label);
|
|
65
|
-
i0.ɵɵadvance(2);
|
|
66
|
-
i0.ɵɵproperty("ngIf", ctx.state && !ctx.state.valid && !ctx.state.pristine && ctx.state.touched && ctx.state.errors);
|
|
67
|
-
} }, directives: [i1.NgClass, i1.NgIf], encapsulation: 2 });
|
|
68
|
-
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(FieldComponent, [{
|
|
69
|
-
type: Component,
|
|
70
|
-
args: [{
|
|
71
|
-
selector: 'app-field',
|
|
72
|
-
template: `
|
|
73
|
-
<div [ngClass]="{'has-error':state && !state.valid && (!state.pristine || state.touched) && state.errors}">
|
|
74
|
-
<label class="label-text" *ngIf="label">{{ label }}</label>
|
|
75
|
-
|
|
76
|
-
<!-- Input, textarea or select -->
|
|
77
|
-
<ng-content></ng-content>
|
|
78
|
-
|
|
79
|
-
<span *ngIf="state && !state.valid && !state.pristine && state.touched && state.errors" class="help-block text-danger">
|
|
80
|
-
<span *ngIf="state.hasError('required')">Este campo é obrigatório</span>
|
|
81
|
-
<span *ngIf="!state.hasError('required') && state.hasError('validateEmail')">E-mail inválido</span>
|
|
82
|
-
<span *ngIf="!state.hasError('required') && state.hasError('minlength')">Tamanho mínimo inválido</span>
|
|
83
|
-
</span>
|
|
84
|
-
</div>
|
|
85
|
-
`
|
|
86
|
-
}]
|
|
87
|
-
}], null, { label: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], state: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}] }); })();
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9maWVsZC9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7SUFPekMsZ0NBQXdDO0lBQUEsWUFBVztJQUFBLGlCQUFROzs7SUFBbkIsZUFBVztJQUFYLGtDQUFXOzs7SUFNakQsNEJBQXlDO0lBQUEsa0RBQXdCO0lBQUEsaUJBQU87OztJQUN4RSw0QkFBNkU7SUFBQSxvQ0FBZTtJQUFBLGlCQUFPOzs7SUFDbkcsNEJBQXlFO0lBQUEsaURBQXVCO0lBQUEsaUJBQU87OztJQUh6RywrQkFDRTtJQUFBLHdFQUF5QztJQUN6Qyx3RUFBNkU7SUFDN0Usd0VBQXlFO0lBQzNFLGlCQUFPOzs7SUFIQyxlQUFrQztJQUFsQyx3REFBa0M7SUFDbEMsZUFBc0U7SUFBdEUsbUdBQXNFO0lBQ3RFLGVBQWtFO0lBQWxFLCtGQUFrRTs7OztBQUtoRixNQUFNLE9BQU8sY0FBYztJQWpCM0I7UUFtQkU7O1dBRUc7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO0tBUXJCOzs0RUFiWSxjQUFjO21EQUFkLGNBQWM7O1FBZHRCLDhCQUNDO1FBQUEsbUVBQXdDO1FBR3hDLGtCQUFZO1FBRVosaUVBQ0U7UUFJSixpQkFBTTs7UUFYQSxxSkFBcUc7UUFDL0UsZUFBYTtRQUFiLGdDQUFhO1FBS2pDLGVBQWlGO1FBQWpGLG9IQUFpRjs7a0RBUWhGLGNBQWM7Y0FqQjFCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7YUFDSjtnQkFNVSxLQUFLO2tCQUFiLEtBQUs7WUFNRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1maWVsZCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6c3RhdGUgJiYgIXN0YXRlLnZhbGlkICYmICghc3RhdGUucHJpc3RpbmUgfHwgc3RhdGUudG91Y2hlZCkgJiYgc3RhdGUuZXJyb3JzfVwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtdGV4dFwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG5cbiAgICAgIDwhLS0gSW5wdXQsIHRleHRhcmVhIG9yIHNlbGVjdCAtLT5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0ZSAmJiAhc3RhdGUudmFsaWQgJiYgIXN0YXRlLnByaXN0aW5lICYmIHN0YXRlLnRvdWNoZWQgJiYgc3RhdGUuZXJyb3JzXCIgY2xhc3M9XCJoZWxwLWJsb2NrIHRleHQtZGFuZ2VyXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdGUuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5Fc3RlIGNhbXBvIMOpIG9icmlnYXTDs3Jpbzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhc3RhdGUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgc3RhdGUuaGFzRXJyb3IoJ3ZhbGlkYXRlRW1haWwnKVwiPkUtbWFpbCBpbnbDoWxpZG88L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIHN0YXRlLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlRhbWFuaG8gbcOtbmltbyBpbnbDoWxpZG88L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRleHRvIHBhcmEgbGFiZWwgZG8gSW5wdXRcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIEVzdGFkbyBkbyBpbnB1dCBubyBmb3JtdWzDoXJpbyBwYXJhIHZhbGlkYXIgcXVhbmRvXG4gICAqIMOpIG5lY2Vzc8OhcmlvIGV4aWJpciBhcyBtZW5zYWdlbnMgZGUgZXJyby5cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRlOiBGb3JtQ29udHJvbCB8IHVuZGVmaW5lZDtcblxufVxuIl19
|