@saipos/angular-shared 1.29.0 → 1.30.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/components/select/select.component.d.ts +15 -1
- package/esm2020/components/select/select.component.mjs +104 -4
- package/fesm2015/saipos-angular-shared.mjs +104 -3
- package/fesm2015/saipos-angular-shared.mjs.map +1 -1
- package/fesm2020/saipos-angular-shared.mjs +103 -3
- package/fesm2020/saipos-angular-shared.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -18,16 +18,30 @@ export declare class SelectComponent implements ControlValueAccessor, AfterViewI
|
|
|
18
18
|
loading: boolean;
|
|
19
19
|
typeahead: Subject<string>;
|
|
20
20
|
typeToSearchText: string;
|
|
21
|
+
showSelectedQuantity: boolean;
|
|
22
|
+
singularLabel?: string;
|
|
23
|
+
pluralLabel?: string;
|
|
21
24
|
private ngSelect;
|
|
22
25
|
headerTemplate: TemplateRef<unknown>;
|
|
23
26
|
optionTemplate: TemplateRef<unknown>;
|
|
24
27
|
control: FormControl;
|
|
25
28
|
private _items;
|
|
29
|
+
private previousValues;
|
|
30
|
+
private lastUpdate;
|
|
26
31
|
get hostClass(): boolean;
|
|
27
32
|
set items(value: unknown[] | null);
|
|
28
33
|
get items(): unknown[];
|
|
29
34
|
constructor(autoFocus?: string | null | undefined);
|
|
30
35
|
ngAfterViewInit(): void;
|
|
36
|
+
selectAll(emit?: boolean): void;
|
|
37
|
+
unselectAll(emit?: boolean): void;
|
|
38
|
+
verifyStateItens(): void;
|
|
39
|
+
updateSelectedQuantityText(): void;
|
|
40
|
+
isSearching: boolean;
|
|
41
|
+
onSearch(event: {
|
|
42
|
+
term: string;
|
|
43
|
+
}): void;
|
|
44
|
+
onClear(): void;
|
|
31
45
|
onBlur(): void;
|
|
32
46
|
private _onTouched;
|
|
33
47
|
writeValue(value: unknown): void;
|
|
@@ -40,5 +54,5 @@ export declare class SelectComponent implements ControlValueAccessor, AfterViewI
|
|
|
40
54
|
close(): void;
|
|
41
55
|
toggle(): void;
|
|
42
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, [{ attribute: "autofocus"; }]>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "saipos-select", never, { "bindLabel": "bindLabel"; "bindValue": "bindValue"; "placeholder": "placeholder"; "dropdownPosition": "dropdownPosition"; "clearable": "clearable"; "selectOnTab": "selectOnTab"; "searchable": "searchable"; "notFoundText": "notFoundText"; "appendTo": "appendTo"; "multiple": "multiple"; "showCheckbox": "showCheckbox"; "loading": "loading"; "typeahead": "typeahead"; "typeToSearchText": "typeToSearchText"; "items": "items"; }, {}, ["headerTemplate", "optionTemplate"], never>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "saipos-select", never, { "bindLabel": "bindLabel"; "bindValue": "bindValue"; "placeholder": "placeholder"; "dropdownPosition": "dropdownPosition"; "clearable": "clearable"; "selectOnTab": "selectOnTab"; "searchable": "searchable"; "notFoundText": "notFoundText"; "appendTo": "appendTo"; "multiple": "multiple"; "showCheckbox": "showCheckbox"; "loading": "loading"; "typeahead": "typeahead"; "typeToSearchText": "typeToSearchText"; "showSelectedQuantity": "showSelectedQuantity"; "singularLabel": "singularLabel"; "pluralLabel": "pluralLabel"; "items": "items"; }, {}, ["headerTemplate", "optionTemplate"], never>;
|
|
44
58
|
}
|
|
@@ -23,8 +23,12 @@ export class SelectComponent {
|
|
|
23
23
|
this.loading = false;
|
|
24
24
|
this.typeahead = new Subject();
|
|
25
25
|
this.typeToSearchText = 'Digite algo para buscar';
|
|
26
|
+
this.showSelectedQuantity = false;
|
|
26
27
|
this.control = new FormControl();
|
|
27
28
|
this._items = [];
|
|
29
|
+
this.previousValues = [];
|
|
30
|
+
this.lastUpdate = {};
|
|
31
|
+
this.isSearching = false;
|
|
28
32
|
}
|
|
29
33
|
get hostClass() {
|
|
30
34
|
return true;
|
|
@@ -39,10 +43,100 @@ export class SelectComponent {
|
|
|
39
43
|
return this._items;
|
|
40
44
|
}
|
|
41
45
|
ngAfterViewInit() {
|
|
46
|
+
if (this.showSelectedQuantity) {
|
|
47
|
+
this.verifyStateItens();
|
|
48
|
+
}
|
|
49
|
+
if (this.multiple && this.showSelectedQuantity) {
|
|
50
|
+
void Promise.resolve().then(() => {
|
|
51
|
+
const allItem = {
|
|
52
|
+
value: -1,
|
|
53
|
+
label: `Todos ${this.pluralLabel || 'itens'}`,
|
|
54
|
+
};
|
|
55
|
+
this._items = [allItem, ...this._items];
|
|
56
|
+
this.selectAll();
|
|
57
|
+
this.previousValues = [...this.control.value];
|
|
58
|
+
});
|
|
59
|
+
}
|
|
42
60
|
if (this.autoFocus !== null && this.autoFocus !== undefined) {
|
|
43
61
|
this.focus();
|
|
44
62
|
}
|
|
45
63
|
}
|
|
64
|
+
selectAll(emit = true) {
|
|
65
|
+
const allValues = [];
|
|
66
|
+
for (const item of this._items) {
|
|
67
|
+
allValues.push(item?.value);
|
|
68
|
+
}
|
|
69
|
+
this.control.setValue(allValues, { emitEvent: emit });
|
|
70
|
+
}
|
|
71
|
+
unselectAll(emit = true) {
|
|
72
|
+
this.control.setValue([], { emitEvent: emit });
|
|
73
|
+
}
|
|
74
|
+
verifyStateItens() {
|
|
75
|
+
this.control.valueChanges.subscribe((current) => {
|
|
76
|
+
const prev = this.previousValues;
|
|
77
|
+
const hasAllNow = current.includes(-1);
|
|
78
|
+
const hadAllBefore = prev.includes(-1);
|
|
79
|
+
const currentWithoutAll = current.filter(v => v !== -1);
|
|
80
|
+
const selectableValues = this._items
|
|
81
|
+
.filter((i) => typeof i === 'object' &&
|
|
82
|
+
i !== null &&
|
|
83
|
+
'value' in i &&
|
|
84
|
+
typeof i.value === 'number' &&
|
|
85
|
+
i.value !== -1)
|
|
86
|
+
.map(i => i.value);
|
|
87
|
+
const allSelected = currentWithoutAll.length === selectableValues.length;
|
|
88
|
+
if (!hadAllBefore && hasAllNow) {
|
|
89
|
+
const newValue = [-1, ...selectableValues];
|
|
90
|
+
this.previousValues = [...newValue];
|
|
91
|
+
this.control.setValue(newValue, { emitEvent: false });
|
|
92
|
+
this.updateSelectedQuantityText();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (hadAllBefore && !hasAllNow) {
|
|
96
|
+
this.previousValues = [];
|
|
97
|
+
this.control.setValue([], { emitEvent: false });
|
|
98
|
+
this.updateSelectedQuantityText();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (allSelected && !hasAllNow) {
|
|
102
|
+
const newValue = [-1, ...currentWithoutAll];
|
|
103
|
+
this.previousValues = [...newValue];
|
|
104
|
+
this.control.setValue(newValue, { emitEvent: false });
|
|
105
|
+
this.updateSelectedQuantityText();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (hadAllBefore && hasAllNow && !allSelected) {
|
|
109
|
+
this.previousValues = [...currentWithoutAll];
|
|
110
|
+
this.control.setValue(currentWithoutAll, { emitEvent: false });
|
|
111
|
+
this.updateSelectedQuantityText();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.previousValues = [...current];
|
|
115
|
+
this.updateSelectedQuantityText();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
updateSelectedQuantityText() {
|
|
119
|
+
const value = this.control?.value || [];
|
|
120
|
+
const selectedItems = value.filter(v => v !== -1);
|
|
121
|
+
const count = selectedItems.length;
|
|
122
|
+
const total = this._items.length - 1;
|
|
123
|
+
if (value.includes(-1) || count === total || count === 0) {
|
|
124
|
+
this.placeholder = `Todos ${this.pluralLabel || 'itens'} selecionados`;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (count === 1) {
|
|
128
|
+
this.placeholder = `1 ${this.singularLabel || 'item'} selecionado`;
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this.placeholder = `${count} ${this.pluralLabel || 'itens'} selecionados`;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
onSearch(event) {
|
|
135
|
+
this.isSearching = event.term.length > 0;
|
|
136
|
+
}
|
|
137
|
+
onClear() {
|
|
138
|
+
this.isSearching = false;
|
|
139
|
+
}
|
|
46
140
|
onBlur() {
|
|
47
141
|
this._onTouched();
|
|
48
142
|
}
|
|
@@ -78,13 +172,13 @@ export class SelectComponent {
|
|
|
78
172
|
}
|
|
79
173
|
}
|
|
80
174
|
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectComponent, deps: [{ token: 'autofocus', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SelectComponent, selector: "saipos-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", dropdownPosition: "dropdownPosition", clearable: "clearable", selectOnTab: "selectOnTab", searchable: "searchable", notFoundText: "notFoundText", appendTo: "appendTo", multiple: "multiple", showCheckbox: "showCheckbox", loading: "loading", typeahead: "typeahead", typeToSearchText: "typeToSearchText", items: "items" }, host: { properties: { "class.saipos-select": "this.hostClass" } }, providers: [
|
|
175
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SelectComponent, selector: "saipos-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", dropdownPosition: "dropdownPosition", clearable: "clearable", selectOnTab: "selectOnTab", searchable: "searchable", notFoundText: "notFoundText", appendTo: "appendTo", multiple: "multiple", showCheckbox: "showCheckbox", loading: "loading", typeahead: "typeahead", typeToSearchText: "typeToSearchText", showSelectedQuantity: "showSelectedQuantity", singularLabel: "singularLabel", pluralLabel: "pluralLabel", items: "items" }, host: { properties: { "class.saipos-select": "this.hostClass" } }, providers: [
|
|
82
176
|
{
|
|
83
177
|
provide: NG_VALUE_ACCESSOR,
|
|
84
178
|
useExisting: forwardRef(() => SelectComponent),
|
|
85
179
|
multi: true,
|
|
86
180
|
},
|
|
87
|
-
], queries: [{ propertyName: "headerTemplate", first: true, predicate: SaiposSelectHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SaiposSelectOptionDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""], components: [{ type: i1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { type: i1.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { type: i1.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }] });
|
|
181
|
+
], queries: [{ propertyName: "headerTemplate", first: true, predicate: SaiposSelectHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SaiposSelectOptionDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (search)=\"onSearch($event)\"\n (clear)=\"onClear()\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"showSelectedQuantity && showCheckbox\">\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <span class=\"label-text\" *ngIf=\"!isSearching\"> {{ placeholder }} </span>\n </ng-template>\n </div>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""], components: [{ type: i1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { type: i1.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { type: i1.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { type: i1.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }] });
|
|
88
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectComponent, decorators: [{
|
|
89
183
|
type: Component,
|
|
90
184
|
args: [{ selector: 'saipos-select', providers: [
|
|
@@ -93,7 +187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
93
187
|
useExisting: forwardRef(() => SelectComponent),
|
|
94
188
|
multi: true,
|
|
95
189
|
},
|
|
96
|
-
], template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""] }]
|
|
190
|
+
], template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (search)=\"onSearch($event)\"\n (clear)=\"onClear()\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"showSelectedQuantity && showCheckbox\">\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <span class=\"label-text\" *ngIf=\"!isSearching\"> {{ placeholder }} </span>\n </ng-template>\n </div>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""] }]
|
|
97
191
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
98
192
|
type: Attribute,
|
|
99
193
|
args: ['autofocus']
|
|
@@ -125,6 +219,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
125
219
|
type: Input
|
|
126
220
|
}], typeToSearchText: [{
|
|
127
221
|
type: Input
|
|
222
|
+
}], showSelectedQuantity: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}], singularLabel: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], pluralLabel: [{
|
|
227
|
+
type: Input
|
|
128
228
|
}], ngSelect: [{
|
|
129
229
|
type: ViewChild,
|
|
130
230
|
args: ['select']
|
|
@@ -140,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
140
240
|
}], items: [{
|
|
141
241
|
type: Input
|
|
142
242
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJyYXJ5L3NyYy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMkJBQTJCLEdBQzVCLE1BQU0sOEJBQThCLENBQUE7Ozs7O0FBY3JDLE1BQU0sT0FBTyxlQUFlO0lBNEMxQixZQUE0QyxTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQTNDNUQsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNkLGNBQVMsR0FBRyxFQUFFLENBQUE7UUFDZCxnQkFBVyxHQUFHLFdBQVcsQ0FBQTtRQUN6QixxQkFBZ0IsR0FBOEIsTUFBTSxDQUFBO1FBQ3BELGNBQVMsR0FBRyxLQUFLLENBQUE7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUE7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQTtRQUNqQixpQkFBWSxHQUFHLDBCQUEwQixDQUFBO1FBQ3pDLGFBQVEsR0FBRyxFQUFFLENBQUE7UUFDYixhQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLGlCQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixjQUFTLEdBQUcsSUFBSSxP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QUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUV1QixRQUFRO3NCQUFwQyxTQUFTO3VCQUFDLFFBQVE7Z0JBR25CLGNBQWM7c0JBRGIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSWhFLGNBQWM7c0JBRGIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBTXhCLFNBQVM7c0JBQWhELFdBQVc7dUJBQUMscUJBQXFCO2dCQUs5QixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIFNhaXBvc1NlbGVjdEhlYWRlckRpcmVjdGl2ZSxcbiAgU2FpcG9zU2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxufSBmcm9tICcuL3NlbGVjdC10ZW1wbGF0ZXMuZGlyZWN0aXZlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYWlwb3Mtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGJpbmRMYWJlbCA9ICcnXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZSA9ICcnXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjaW9uZSdcbiAgQElucHV0KCkgZHJvcGRvd25Qb3NpdGlvbjogJ2F1dG8nIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdhdXRvJ1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZVxuICBASW5wdXQoKSBzZWxlY3RPblRhYiA9IGZhbHNlXG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlXG4gIEBJbnB1dCgpIG5vdEZvdW5kVGV4dCA9ICdOZW5odW1hIG9ww6fDo28gZW5jb250cmFkYSdcbiAgQElucHV0KCkgYXBwZW5kVG8gPSAnJ1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlXG4gIEBJbnB1dCgpIHNob3dDaGVja2JveCA9IHRydWVcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlXG4gIEBJbnB1dCgpIHR5cGVhaGVhZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuICBASW5wdXQoKSB0eXBlVG9TZWFyY2hUZXh0ID0gJ0RpZ2l0ZSBhbGdvIHBhcmEgYnVzY2FyJ1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcpIHByaXZhdGUgbmdTZWxlY3QhOiBOZ1NlbGVjdENvbXBvbmVudFxuXG4gIEBDb250ZW50Q2hpbGQoU2FpcG9zU2VsZWN0SGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8dW5rbm93bj5cblxuICBAQ29udGVudENoaWxkKFNhaXBvc1NlbGVjdE9wdGlvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBvcHRpb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHVua25vd24+XG5cbiAgY29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKVxuICBwcml2YXRlIF9pdGVtczogdW5rbm93bltdID0gW11cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNhaXBvcy1zZWxlY3QnKSBnZXQgaG9zdENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXModmFsdWU6IHVua25vd25bXSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gW11cbiAgICB9XG5cbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlXG4gIH1cblxuICBnZXQgaXRlbXMoKTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBBdHRyaWJ1dGUoJ2F1dG9mb2N1cycpIHByaXZhdGUgYXV0b0ZvY3VzPzogbnVsbCB8IHN0cmluZykge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzICE9PSBudWxsICYmIHRoaXMuYXV0b0ZvY3VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkKCkge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShmbilcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpc0Rpc2FibGVkID8gdGhpcy5jb250cm9sLmRpc2FibGUoKSA6IHRoaXMuY29udHJvbC5lbmFibGUoKVxuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5uZ1NlbGVjdC5mb2N1cygpXG4gIH1cblxuICBibHVyKCkge1xuICAgIHRoaXMubmdTZWxlY3QuYmx1cigpXG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMubmdTZWxlY3Qub3BlbigpXG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLm5nU2VsZWN0LmNsb3NlKClcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm5nU2VsZWN0LnRvZ2dsZSgpXG4gIH1cbn1cbiIsIjxuZy1zZWxlY3RcbiAgI3NlbGVjdFxuICBbaXRlbXNdPVwiaXRlbXNcIlxuICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcbiAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxuICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkcm9wZG93blBvc2l0aW9uXT1cImRyb3Bkb3duUG9zaXRpb25cIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgW3NlbGVjdE9uVGFiXT1cInNlbGVjdE9uVGFiXCJcbiAgW25vdEZvdW5kVGV4dF09XCJub3RGb3VuZFRleHRcIlxuICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbY2xvc2VPblNlbGVjdF09XCIhbXVsdGlwbGVcIlxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgW3R5cGVhaGVhZF09XCJ0eXBlYWhlYWRcIlxuICBbdHlwZVRvU2VhcmNoVGV4dF09XCJ0eXBlVG9TZWFyY2hUZXh0XCJcbiAgKGJsdXIpPVwib25CbHVyKClcIlxuPlxuICA8ZGl2ICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICA8bmctdGVtcGxhdGUgbmctaGVhZGVyLXRtcD5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdJZj1cIm9wdGlvblRlbXBsYXRlXCJcbiAgICBuZy1vcHRpb24tdG1wXG4gICAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgICBsZXQtaXRlbSQ9XCJpdGVtJFwiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1zZWFyY2hUZXJtPVwic2VhcmNoVGVybVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGl0ZW0kOiBpdGVtJCwgaW5kZXg6IGluZGV4LCBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXYgKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGUgJiYgbXVsdGlwbGUgJiYgc2hvd0NoZWNrYm94XCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBuZy1vcHRpb24tdG1wXG4gICAgICBsZXQtaXRlbT1cIml0ZW1cIlxuICAgICAgbGV0LWl0ZW0kPVwiaXRlbSRcIlxuICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJpdGVtJC5zZWxlY3RlZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0kLmRpc2FibGVkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBuZy1vcHRpb24tbGFiZWxcIlxuICAgICAgICAgID57eyBpdGVtJC5sYWJlbCB9fTwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5nc3Bpbm5lci10bXA+XG4gICAgPGRpdiBjbGFzcz1cImxkcy1lbGxpcHNpc1wiPlxuICAgICAgPGRpdj48L2Rpdj5cbiAgICAgIDxkaXY+PC9kaXY+XG4gICAgICA8ZGl2PjwvZGl2PlxuICAgICAgPGRpdj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIG5nLW5vdGZvdW5kLXRtcCBsZXQtc2VhcmNoVGVybT1cInNlYXJjaFRlcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibmctb3B0aW9uIGRpc2FibGVkXCI+TmFkYSBlbmNvbnRyYWRvIHBhcmEgXCJ7e3NlYXJjaFRlcm19fVwiPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBuZy1sb2FkaW5ndGV4dC10bXAgbGV0LXNlYXJjaFRlcm09XCJzZWFyY2hUZXJtXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5nLW9wdGlvbiBkaXNhYmxlZFwiPkJ1c2NhbmRvIGRhZG9zIHBhcmEgXCJ7e3NlYXJjaFRlcm19fVwiPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXNlbGVjdD5cbiJdfQ==
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJyYXJ5L3NyYy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMkJBQTJCLEdBQzVCLE1BQU0sOEJBQThCLENBQUE7Ozs7O0FBY3JDLE1BQU0sT0FBTyxlQUFlO0lBaUQxQixZQUE0QyxTQUF5QjtRQUF6QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQWhENUQsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNkLGNBQVMsR0FBRyxFQUFFLENBQUE7UUFDZCxnQkFBVyxHQUFHLFdBQVcsQ0FBQTtRQUN6QixxQkFBZ0IsR0FBOEIsTUFBTSxDQUFBO1FBQ3BELGNBQVMsR0FBRyxLQUFLLENBQUE7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUE7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQTtRQUNqQixpQkFBWSxHQUFHLDBCQUEwQixDQUFBO1FBQ3pDLGFBQVEsR0FBRyxFQUFFLENBQUE7UUFDYixhQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLGlCQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixjQUFTLEdBQUcsSUFBSSxP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QVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUV1QixRQUFRO3NCQUFwQyxTQUFTO3VCQUFDLFFBQVE7Z0JBR25CLGNBQWM7c0JBRGIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSWhFLGNBQWM7c0JBRGIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBUXhCLFNBQVM7c0JBQWhELFdBQVc7dUJBQUMscUJBQXFCO2dCQUs5QixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIFNhaXBvc1NlbGVjdEhlYWRlckRpcmVjdGl2ZSxcbiAgU2FpcG9zU2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxufSBmcm9tICcuL3NlbGVjdC10ZW1wbGF0ZXMuZGlyZWN0aXZlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYWlwb3Mtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGJpbmRMYWJlbCA9ICcnXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZSA9ICcnXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjaW9uZSdcbiAgQElucHV0KCkgZHJvcGRvd25Qb3NpdGlvbjogJ2F1dG8nIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdhdXRvJ1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZVxuICBASW5wdXQoKSBzZWxlY3RPblRhYiA9IGZhbHNlXG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlXG4gIEBJbnB1dCgpIG5vdEZvdW5kVGV4dCA9ICdOZW5odW1hIG9ww6fDo28gZW5jb250cmFkYSdcbiAgQElucHV0KCkgYXBwZW5kVG8gPSAnJ1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlXG4gIEBJbnB1dCgpIHNob3dDaGVja2JveCA9IHRydWVcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlXG4gIEBJbnB1dCgpIHR5cGVhaGVhZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuICBASW5wdXQoKSB0eXBlVG9TZWFyY2hUZXh0ID0gJ0RpZ2l0ZSBhbGdvIHBhcmEgYnVzY2FyJ1xuICBASW5wdXQoKSBzaG93U2VsZWN0ZWRRdWFudGl0eSA9IGZhbHNlXG4gIEBJbnB1dCgpIHNpbmd1bGFyTGFiZWw/OiBzdHJpbmdcbiAgQElucHV0KCkgcGx1cmFsTGFiZWw/OiBzdHJpbmdcblxuICBAVmlld0NoaWxkKCdzZWxlY3QnKSBwcml2YXRlIG5nU2VsZWN0ITogTmdTZWxlY3RDb21wb25lbnRcblxuICBAQ29udGVudENoaWxkKFNhaXBvc1NlbGVjdEhlYWRlckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBoZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHVua25vd24+XG5cbiAgQENvbnRlbnRDaGlsZChTYWlwb3NTZWxlY3RPcHRpb25EaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb3B0aW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjx1bmtub3duPlxuXG4gIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKClcbiAgcHJpdmF0ZSBfaXRlbXM6IHVua25vd25bXSA9IFtdXG4gIHByaXZhdGUgcHJldmlvdXNWYWx1ZXM6IG51bWJlcltdID0gW11cbiAgcHJpdmF0ZSBsYXN0VXBkYXRlOiB7IGFkZGVkPzogbnVtYmVyW107IHJlbW92ZWQ/OiBudW1iZXJbXSB9ID0ge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNhaXBvcy1zZWxlY3QnKSBnZXQgaG9zdENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXModmFsdWU6IHVua25vd25bXSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gW11cbiAgICB9XG5cbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlXG4gIH1cblxuICBnZXQgaXRlbXMoKTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBBdHRyaWJ1dGUoJ2F1dG9mb2N1cycpIHByaXZhdGUgYXV0b0ZvY3VzPzogbnVsbCB8IHN0cmluZykge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdGVkUXVhbnRpdHkpIHtcbiAgICAgIHRoaXMudmVyaWZ5U3RhdGVJdGVucygpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgdGhpcy5zaG93U2VsZWN0ZWRRdWFudGl0eSkge1xuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWxsSXRlbSA9IHtcbiAgICAgICAgICB2YWx1ZTogLTEsXG4gICAgICAgICAgbGFiZWw6IGBUb2RvcyAke3RoaXMucGx1cmFsTGFiZWwgfHwgJ2l0ZW5zJ31gLFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXRlbXMgPSBbYWxsSXRlbSwgLi4udGhpcy5faXRlbXNdXG4gICAgICAgIHRoaXMuc2VsZWN0QWxsKClcbiAgICAgICAgdGhpcy5wcmV2aW91c1ZhbHVlcyA9IFsuLi4odGhpcy5jb250cm9sLnZhbHVlIGFzIG51bWJlcltdKV1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzICE9PSBudWxsICYmIHRoaXMuYXV0b0ZvY3VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbChlbWl0ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFsbFZhbHVlczogdW5rbm93bltdID0gW11cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5faXRlbXMgYXMgeyB2YWx1ZTogdW5rbm93biB9W10pIHtcbiAgICAgIGFsbFZhbHVlcy5wdXNoKGl0ZW0/LnZhbHVlKVxuICAgIH1cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoYWxsVmFsdWVzLCB7IGVtaXRFdmVudDogZW1pdCB9KVxuICB9XG5cbiAgdW5zZWxlY3RBbGwoZW1pdCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoW10sIHsgZW1pdEV2ZW50OiBlbWl0IH0pXG4gIH1cblxuICB2ZXJpZnlTdGF0ZUl0ZW5zKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjdXJyZW50OiBudW1iZXJbXSkgPT4ge1xuICAgICAgY29uc3QgcHJldiA9IHRoaXMucHJldmlvdXNWYWx1ZXNcbiAgICAgIGNvbnN0IGhhc0FsbE5vdyA9IGN1cnJlbnQuaW5jbHVkZXMoLTEpXG4gICAgICBjb25zdCBoYWRBbGxCZWZvcmUgPSBwcmV2LmluY2x1ZGVzKC0xKVxuICAgICAgY29uc3QgY3VycmVudFdpdGhvdXRBbGwgPSBjdXJyZW50LmZpbHRlcih2ID0+IHYgIT09IC0xKVxuICAgICAgY29uc3Qgc2VsZWN0YWJsZVZhbHVlcyA9IHRoaXMuX2l0ZW1zXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGkpOiBpIGlzIHsgdmFsdWU6IG51bWJlciB9ID0+XG4gICAgICAgICAgICB0eXBlb2YgaSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgIGkgIT09IG51bGwgJiZcbiAgICAgICAgICAgICd2YWx1ZScgaW4gaSAmJlxuICAgICAgICAgICAgdHlwZW9mIChpIGFzIHsgdmFsdWU/OiB1bmtub3duIH0pLnZhbHVlID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgKGkgYXMgeyB2YWx1ZTogbnVtYmVyIH0pLnZhbHVlICE9PSAtMVxuICAgICAgICApXG4gICAgICAgIC5tYXAoaSA9PiBpLnZhbHVlKVxuICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBjdXJyZW50V2l0aG91dEFsbC5sZW5ndGggPT09IHNlbGVjdGFibGVWYWx1ZXMubGVuZ3RoXG5cbiAgICAgIGlmICghaGFkQWxsQmVmb3JlICYmIGhhc0FsbE5vdykge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IFstMSwgLi4uc2VsZWN0YWJsZVZhbHVlc11cbiAgICAgICAgdGhpcy5wcmV2aW91c1ZhbHVlcyA9IFsuLi5uZXdWYWx1ZV1cbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFF1YW50aXR5VGV4dCgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoaGFkQWxsQmVmb3JlICYmICFoYXNBbGxOb3cpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1ZhbHVlcyA9IFtdXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShbXSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRRdWFudGl0eVRleHQoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGFsbFNlbGVjdGVkICYmICFoYXNBbGxOb3cpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLTEsIC4uLmN1cnJlbnRXaXRob3V0QWxsXVxuICAgICAgICB0aGlzLnByZXZpb3VzVmFsdWVzID0gWy4uLm5ld1ZhbHVlXVxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkUXVhbnRpdHlUZXh0KClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChoYWRBbGxCZWZvcmUgJiYgaGFzQWxsTm93ICYmICFhbGxTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnByZXZpb3VzVmFsdWVzID0gWy4uLmN1cnJlbnRXaXRob3V0QWxsXVxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY3VycmVudFdpdGhvdXRBbGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkUXVhbnRpdHlUZXh0KClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJldmlvdXNWYWx1ZXMgPSBbLi4uY3VycmVudF1cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRRdWFudGl0eVRleHQoKVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVTZWxlY3RlZFF1YW50aXR5VGV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLmNvbnRyb2w/LnZhbHVlIGFzIG51bWJlcltdKSB8fCBbXVxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB2YWx1ZS5maWx0ZXIodiA9PiB2ICE9PSAtMSlcbiAgICBjb25zdCBjb3VudCA9IHNlbGVjdGVkSXRlbXMubGVuZ3RoXG4gICAgY29uc3QgdG90YWwgPSB0aGlzLl9pdGVtcy5sZW5ndGggLSAxXG5cbiAgICBpZiAodmFsdWUuaW5jbHVkZXMoLTEpIHx8IGNvdW50ID09PSB0b3RhbCB8fCBjb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGBUb2RvcyAke3RoaXMucGx1cmFsTGFiZWwgfHwgJ2l0ZW5zJ30gc2VsZWNpb25hZG9zYFxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gYDEgJHt0aGlzLnNpbmd1bGFyTGFiZWwgfHwgJ2l0ZW0nfSBzZWxlY2lvbmFkb2BcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBgJHtjb3VudH0gJHt0aGlzLnBsdXJhbExhYmVsIHx8ICdpdGVucyd9IHNlbGVjaW9uYWRvc2BcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlzU2VhcmNoaW5nID0gZmFsc2VcblxuICBvblNlYXJjaChldmVudDogeyB0ZXJtOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBldmVudC50ZXJtLmxlbmd0aCA+IDBcbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc1NlYXJjaGluZyA9IGZhbHNlXG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKClcbiAgfVxuXG4gIHByaXZhdGUgX29uVG91Y2hlZCgpIHtcbiAgICAvKiBlbXB0eSAqL1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pXG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaXNEaXNhYmxlZCA/IHRoaXMuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmNvbnRyb2wuZW5hYmxlKClcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMubmdTZWxlY3QuZm9jdXMoKVxuICB9XG5cbiAgYmx1cigpIHtcbiAgICB0aGlzLm5nU2VsZWN0LmJsdXIoKVxuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLm5nU2VsZWN0Lm9wZW4oKVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5uZ1NlbGVjdC5jbG9zZSgpXG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5uZ1NlbGVjdC50b2dnbGUoKVxuICB9XG59XG4iLCI8bmctc2VsZWN0XG4gICNzZWxlY3RcbiAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXG4gIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcbiAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbZHJvcGRvd25Qb3NpdGlvbl09XCJkcm9wZG93blBvc2l0aW9uXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXG4gIFtzZWxlY3RPblRhYl09XCJzZWxlY3RPblRhYlwiXG4gIFtub3RGb3VuZFRleHRdPVwibm90Rm91bmRUZXh0XCJcbiAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgW2Nsb3NlT25TZWxlY3RdPVwiIW11bHRpcGxlXCJcbiAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gIFt0eXBlYWhlYWRdPVwidHlwZWFoZWFkXCJcbiAgW3R5cGVUb1NlYXJjaFRleHRdPVwidHlwZVRvU2VhcmNoVGV4dFwiXG4gIChzZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gIChjbGVhcik9XCJvbkNsZWFyKClcIlxuICAoYmx1cik9XCJvbkJsdXIoKVwiXG4+XG4gIDxkaXYgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1oZWFkZXItdG1wPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZVxuICAgICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVcIlxuICAgIG5nLW9wdGlvbi10bXBcbiAgICBsZXQtaXRlbT1cIml0ZW1cIlxuICAgIGxldC1pdGVtJD1cIml0ZW0kXCJcbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LXNlYXJjaFRlcm09XCJzZWFyY2hUZXJtXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgaXRlbSQ6IGl0ZW0kLCBpbmRleDogaW5kZXgsIHNlYXJjaFRlcm06IHNlYXJjaFRlcm19XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiAqbmdJZj1cInNob3dTZWxlY3RlZFF1YW50aXR5ICYmIHNob3dDaGVja2JveFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1tdWx0aS1sYWJlbC10bXAgbGV0LWl0ZW1zPVwiaXRlbXNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtdGV4dFwiICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+IHt7IHBsYWNlaG9sZGVyIH19IDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlICYmIG11bHRpcGxlICYmIHNob3dDaGVja2JveFwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgbmctb3B0aW9uLXRtcFxuICAgICAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgICAgIGxldC1pdGVtJD1cIml0ZW0kXCJcbiAgICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXRlbSQuc2VsZWN0ZWRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtJC5kaXNhYmxlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgbmctb3B0aW9uLWxhYmVsXCJcbiAgICAgICAgICA+e3sgaXRlbSQubGFiZWwgfX08L2xhYmVsXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgbmctbG9hZGluZ3NwaW5uZXItdG1wPlxuICAgIDxkaXYgY2xhc3M9XCJsZHMtZWxsaXBzaXNcIj5cbiAgICAgIDxkaXY+PC9kaXY+XG4gICAgICA8ZGl2PjwvZGl2PlxuICAgICAgPGRpdj48L2Rpdj5cbiAgICAgIDxkaXY+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBuZy1ub3Rmb3VuZC10bXAgbGV0LXNlYXJjaFRlcm09XCJzZWFyY2hUZXJtXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5nLW9wdGlvbiBkaXNhYmxlZFwiPk5hZGEgZW5jb250cmFkbyBwYXJhIFwie3tzZWFyY2hUZXJtfX1cIjwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgbmctbG9hZGluZ3RleHQtdG1wIGxldC1zZWFyY2hUZXJtPVwic2VhcmNoVGVybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJuZy1vcHRpb24gZGlzYWJsZWRcIj5CdXNjYW5kbyBkYWRvcyBwYXJhIFwie3tzZWFyY2hUZXJtfX1cIjwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1zZWxlY3Q+XG4iXX0=
|
|
@@ -682,8 +682,12 @@ class SelectComponent {
|
|
|
682
682
|
this.loading = false;
|
|
683
683
|
this.typeahead = new Subject();
|
|
684
684
|
this.typeToSearchText = 'Digite algo para buscar';
|
|
685
|
+
this.showSelectedQuantity = false;
|
|
685
686
|
this.control = new FormControl();
|
|
686
687
|
this._items = [];
|
|
688
|
+
this.previousValues = [];
|
|
689
|
+
this.lastUpdate = {};
|
|
690
|
+
this.isSearching = false;
|
|
687
691
|
}
|
|
688
692
|
get hostClass() {
|
|
689
693
|
return true;
|
|
@@ -698,10 +702,101 @@ class SelectComponent {
|
|
|
698
702
|
return this._items;
|
|
699
703
|
}
|
|
700
704
|
ngAfterViewInit() {
|
|
705
|
+
if (this.showSelectedQuantity) {
|
|
706
|
+
this.verifyStateItens();
|
|
707
|
+
}
|
|
708
|
+
if (this.multiple && this.showSelectedQuantity) {
|
|
709
|
+
void Promise.resolve().then(() => {
|
|
710
|
+
const allItem = {
|
|
711
|
+
value: -1,
|
|
712
|
+
label: `Todos ${this.pluralLabel || 'itens'}`,
|
|
713
|
+
};
|
|
714
|
+
this._items = [allItem, ...this._items];
|
|
715
|
+
this.selectAll();
|
|
716
|
+
this.previousValues = [...this.control.value];
|
|
717
|
+
});
|
|
718
|
+
}
|
|
701
719
|
if (this.autoFocus !== null && this.autoFocus !== undefined) {
|
|
702
720
|
this.focus();
|
|
703
721
|
}
|
|
704
722
|
}
|
|
723
|
+
selectAll(emit = true) {
|
|
724
|
+
const allValues = [];
|
|
725
|
+
for (const item of this._items) {
|
|
726
|
+
allValues.push(item === null || item === void 0 ? void 0 : item.value);
|
|
727
|
+
}
|
|
728
|
+
this.control.setValue(allValues, { emitEvent: emit });
|
|
729
|
+
}
|
|
730
|
+
unselectAll(emit = true) {
|
|
731
|
+
this.control.setValue([], { emitEvent: emit });
|
|
732
|
+
}
|
|
733
|
+
verifyStateItens() {
|
|
734
|
+
this.control.valueChanges.subscribe((current) => {
|
|
735
|
+
const prev = this.previousValues;
|
|
736
|
+
const hasAllNow = current.includes(-1);
|
|
737
|
+
const hadAllBefore = prev.includes(-1);
|
|
738
|
+
const currentWithoutAll = current.filter(v => v !== -1);
|
|
739
|
+
const selectableValues = this._items
|
|
740
|
+
.filter((i) => typeof i === 'object' &&
|
|
741
|
+
i !== null &&
|
|
742
|
+
'value' in i &&
|
|
743
|
+
typeof i.value === 'number' &&
|
|
744
|
+
i.value !== -1)
|
|
745
|
+
.map(i => i.value);
|
|
746
|
+
const allSelected = currentWithoutAll.length === selectableValues.length;
|
|
747
|
+
if (!hadAllBefore && hasAllNow) {
|
|
748
|
+
const newValue = [-1, ...selectableValues];
|
|
749
|
+
this.previousValues = [...newValue];
|
|
750
|
+
this.control.setValue(newValue, { emitEvent: false });
|
|
751
|
+
this.updateSelectedQuantityText();
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
if (hadAllBefore && !hasAllNow) {
|
|
755
|
+
this.previousValues = [];
|
|
756
|
+
this.control.setValue([], { emitEvent: false });
|
|
757
|
+
this.updateSelectedQuantityText();
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
if (allSelected && !hasAllNow) {
|
|
761
|
+
const newValue = [-1, ...currentWithoutAll];
|
|
762
|
+
this.previousValues = [...newValue];
|
|
763
|
+
this.control.setValue(newValue, { emitEvent: false });
|
|
764
|
+
this.updateSelectedQuantityText();
|
|
765
|
+
return;
|
|
766
|
+
}
|
|
767
|
+
if (hadAllBefore && hasAllNow && !allSelected) {
|
|
768
|
+
this.previousValues = [...currentWithoutAll];
|
|
769
|
+
this.control.setValue(currentWithoutAll, { emitEvent: false });
|
|
770
|
+
this.updateSelectedQuantityText();
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
this.previousValues = [...current];
|
|
774
|
+
this.updateSelectedQuantityText();
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
updateSelectedQuantityText() {
|
|
778
|
+
var _a;
|
|
779
|
+
const value = ((_a = this.control) === null || _a === void 0 ? void 0 : _a.value) || [];
|
|
780
|
+
const selectedItems = value.filter(v => v !== -1);
|
|
781
|
+
const count = selectedItems.length;
|
|
782
|
+
const total = this._items.length - 1;
|
|
783
|
+
if (value.includes(-1) || count === total || count === 0) {
|
|
784
|
+
this.placeholder = `Todos ${this.pluralLabel || 'itens'} selecionados`;
|
|
785
|
+
return;
|
|
786
|
+
}
|
|
787
|
+
if (count === 1) {
|
|
788
|
+
this.placeholder = `1 ${this.singularLabel || 'item'} selecionado`;
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
791
|
+
this.placeholder = `${count} ${this.pluralLabel || 'itens'} selecionados`;
|
|
792
|
+
return;
|
|
793
|
+
}
|
|
794
|
+
onSearch(event) {
|
|
795
|
+
this.isSearching = event.term.length > 0;
|
|
796
|
+
}
|
|
797
|
+
onClear() {
|
|
798
|
+
this.isSearching = false;
|
|
799
|
+
}
|
|
705
800
|
onBlur() {
|
|
706
801
|
this._onTouched();
|
|
707
802
|
}
|
|
@@ -737,13 +832,13 @@ class SelectComponent {
|
|
|
737
832
|
}
|
|
738
833
|
}
|
|
739
834
|
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectComponent, deps: [{ token: 'autofocus', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
740
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SelectComponent, selector: "saipos-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", dropdownPosition: "dropdownPosition", clearable: "clearable", selectOnTab: "selectOnTab", searchable: "searchable", notFoundText: "notFoundText", appendTo: "appendTo", multiple: "multiple", showCheckbox: "showCheckbox", loading: "loading", typeahead: "typeahead", typeToSearchText: "typeToSearchText", items: "items" }, host: { properties: { "class.saipos-select": "this.hostClass" } }, providers: [
|
|
835
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SelectComponent, selector: "saipos-select", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", dropdownPosition: "dropdownPosition", clearable: "clearable", selectOnTab: "selectOnTab", searchable: "searchable", notFoundText: "notFoundText", appendTo: "appendTo", multiple: "multiple", showCheckbox: "showCheckbox", loading: "loading", typeahead: "typeahead", typeToSearchText: "typeToSearchText", showSelectedQuantity: "showSelectedQuantity", singularLabel: "singularLabel", pluralLabel: "pluralLabel", items: "items" }, host: { properties: { "class.saipos-select": "this.hostClass" } }, providers: [
|
|
741
836
|
{
|
|
742
837
|
provide: NG_VALUE_ACCESSOR,
|
|
743
838
|
useExisting: forwardRef(() => SelectComponent),
|
|
744
839
|
multi: true,
|
|
745
840
|
},
|
|
746
|
-
], queries: [{ propertyName: "headerTemplate", first: true, predicate: SaiposSelectHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SaiposSelectOptionDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""], components: [{ type: i1$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1$1.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { type: i1$1.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { type: i1$1.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }] });
|
|
841
|
+
], queries: [{ propertyName: "headerTemplate", first: true, predicate: SaiposSelectHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SaiposSelectOptionDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelect", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (search)=\"onSearch($event)\"\n (clear)=\"onClear()\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"showSelectedQuantity && showCheckbox\">\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <span class=\"label-text\" *ngIf=\"!isSearching\"> {{ placeholder }} </span>\n </ng-template>\n </div>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""], components: [{ type: i1$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i1$1.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { type: i1$1.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { type: i1$1.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { type: i1$1.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }] });
|
|
747
842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectComponent, decorators: [{
|
|
748
843
|
type: Component,
|
|
749
844
|
args: [{ selector: 'saipos-select', providers: [
|
|
@@ -752,7 +847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
752
847
|
useExisting: forwardRef(() => SelectComponent),
|
|
753
848
|
multi: true,
|
|
754
849
|
},
|
|
755
|
-
], template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""] }]
|
|
850
|
+
], template: "<ng-select\n #select\n [items]=\"items\"\n [searchable]=\"searchable\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [placeholder]=\"placeholder\"\n [dropdownPosition]=\"dropdownPosition\"\n [formControl]=\"control\"\n [clearable]=\"clearable\"\n [selectOnTab]=\"selectOnTab\"\n [notFoundText]=\"notFoundText\"\n [appendTo]=\"appendTo\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [loading]=\"loading\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n (search)=\"onSearch($event)\"\n (clear)=\"onClear()\"\n (blur)=\"onBlur()\"\n>\n <div *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </ng-template>\n </div>\n\n <ng-template\n *ngIf=\"optionTemplate\"\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n let-searchTerm=\"searchTerm\"\n >\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{item: item, item$: item$, index: index, searchTerm: searchTerm}\"\n ></ng-container>\n </ng-template>\n\n <div *ngIf=\"showSelectedQuantity && showCheckbox\">\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <span class=\"label-text\" *ngIf=\"!isSearching\"> {{ placeholder }} </span>\n </ng-template>\n </div>\n\n <div *ngIf=\"!optionTemplate && multiple && showCheckbox\">\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\"\n >\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [checked]=\"item$.selected\"\n [disabled]=\"item$.disabled\"\n />\n <label class=\"form-check-label ng-option-label\"\n >{{ item$.label }}</label\n >\n </div>\n </ng-template>\n </div>\n <ng-template ng-loadingspinner-tmp>\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </ng-template>\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Nada encontrado para \"{{searchTerm}}\"</div>\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">Buscando dados para \"{{searchTerm}}\"</div>\n </ng-template>\n</ng-select>\n", styles: [""] }]
|
|
756
851
|
}], ctorParameters: function () {
|
|
757
852
|
return [{ type: undefined, decorators: [{
|
|
758
853
|
type: Attribute,
|
|
@@ -786,6 +881,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
786
881
|
type: Input
|
|
787
882
|
}], typeToSearchText: [{
|
|
788
883
|
type: Input
|
|
884
|
+
}], showSelectedQuantity: [{
|
|
885
|
+
type: Input
|
|
886
|
+
}], singularLabel: [{
|
|
887
|
+
type: Input
|
|
888
|
+
}], pluralLabel: [{
|
|
889
|
+
type: Input
|
|
789
890
|
}], ngSelect: [{
|
|
790
891
|
type: ViewChild,
|
|
791
892
|
args: ['select']
|