@sd-angular/core 1.1.58 → 1.1.61
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/bundles/sd-angular-core-db.umd.js +12 -4
- package/bundles/sd-angular-core-db.umd.js.map +1 -1
- package/bundles/sd-angular-core-db.umd.min.js +1 -1
- package/bundles/sd-angular-core-db.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js +30 -260
- package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.min.js +2 -2
- package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
- package/db/src/lib/db.service.d.ts +6 -1
- package/esm2015/db/src/lib/db.service.js +11 -4
- package/esm2015/select-editor/src/lib/select-editor.component.js +15 -216
- package/esm2015/select-editor/src/lib/select-editor.module.js +10 -2
- package/fesm2015/sd-angular-core-db.js +10 -3
- package/fesm2015/sd-angular-core-db.js.map +1 -1
- package/fesm2015/sd-angular-core-select-editor.js +21 -215
- package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.1.58.tgz → sd-angular-core-1.1.61.tgz} +0 -0
- package/select-editor/sd-angular-core-select-editor.metadata.json +1 -1
- package/select-editor/src/lib/select-editor.component.d.ts +8 -39
|
@@ -1,103 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class SdSelectEditor {
|
|
11
|
-
constructor(ref) {
|
|
12
|
-
this.ref = ref;
|
|
13
|
-
_name.set(this, uuid.v4());
|
|
14
|
-
this.formControl = new SdFormControl();
|
|
15
|
-
_form.set(this, void 0);
|
|
16
|
-
// Model
|
|
17
|
-
_model.set(this, void 0);
|
|
18
|
-
// Items
|
|
19
|
-
_items.set(this, []);
|
|
20
|
-
// Validator
|
|
21
|
-
this.isRequired = false;
|
|
22
|
-
_validator.set(this, void 0);
|
|
23
|
-
_modelChanges.set(this, new Subject());
|
|
24
|
-
_itemsChanges.set(this, new Subject());
|
|
25
|
-
this.modelChange = new EventEmitter();
|
|
26
|
-
this.sdChange = new EventEmitter();
|
|
27
|
-
this.sdSelection = new EventEmitter();
|
|
1
|
+
import { Component, Output, EventEmitter, ChangeDetectorRef, ViewChild, Optional, Inject, } from "@angular/core";
|
|
2
|
+
import { MatSelect } from "@angular/material/select";
|
|
3
|
+
import { FORM_CONFIG } from "@sd-angular/core/common";
|
|
4
|
+
import { SdSelect } from "@sd-angular/core/select";
|
|
5
|
+
export class SdSelectEditor extends SdSelect {
|
|
6
|
+
constructor(cdRef, formConfiguration) {
|
|
7
|
+
super(cdRef, formConfiguration);
|
|
8
|
+
this.cdRef = cdRef;
|
|
9
|
+
this.formConfiguration = formConfiguration;
|
|
28
10
|
this.sdAdd = new EventEmitter();
|
|
29
11
|
this.sdEdit = new EventEmitter();
|
|
30
12
|
this.sdDelete = new EventEmitter();
|
|
31
|
-
_subscription.set(this, new Subscription());
|
|
32
|
-
_updateValidator.set(this, () => {
|
|
33
|
-
this.formControl.clearValidators();
|
|
34
|
-
this.formControl.clearAsyncValidators();
|
|
35
|
-
const validators = [];
|
|
36
|
-
const asyncValidators = [];
|
|
37
|
-
if (this.isRequired) {
|
|
38
|
-
validators.push(Validators.required);
|
|
39
|
-
}
|
|
40
|
-
if (__classPrivateFieldGet(this, _validator)) {
|
|
41
|
-
asyncValidators.push(__classPrivateFieldGet(this, _customValidator).call(this, __classPrivateFieldGet(this, _validator)));
|
|
42
|
-
}
|
|
43
|
-
this.formControl.setValidators(validators);
|
|
44
|
-
this.formControl.setAsyncValidators(asyncValidators);
|
|
45
|
-
this.formControl.updateValueAndValidity();
|
|
46
|
-
});
|
|
47
|
-
this.onSelectionChange = (change) => {
|
|
48
|
-
const value = (change === null || change === void 0 ? void 0 : change.value) || '';
|
|
49
|
-
__classPrivateFieldGet(this, _onChange).call(this, value);
|
|
50
|
-
};
|
|
51
|
-
this.reValidate = () => {
|
|
52
|
-
this.formControl.updateValueAndValidity({ emitEvent: true });
|
|
53
|
-
};
|
|
54
|
-
_onChange.set(this, (value) => {
|
|
55
|
-
var _a;
|
|
56
|
-
let val = value;
|
|
57
|
-
if (this.isNumber && Number.isNumber(value)) {
|
|
58
|
-
val = +value;
|
|
59
|
-
}
|
|
60
|
-
this.modelChange.emit(val);
|
|
61
|
-
this.sdChange.emit(val);
|
|
62
|
-
this.sdSelection.emit({
|
|
63
|
-
value: val,
|
|
64
|
-
item: (_a = __classPrivateFieldGet(this, _items)) === null || _a === void 0 ? void 0 : _a.find(e => { var _a; return (val === null || val === void 0 ? void 0 : val.toString()) === ((_a = e === null || e === void 0 ? void 0 : e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString()); })
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
this.clear = ($event) => {
|
|
68
|
-
$event === null || $event === void 0 ? void 0 : $event.stopPropagation();
|
|
69
|
-
this.formControl.setValue(null);
|
|
70
|
-
this.modelChange.emit(null);
|
|
71
|
-
this.sdChange.emit(null);
|
|
72
|
-
this.sdSelection.emit({
|
|
73
|
-
value: null,
|
|
74
|
-
item: null
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
_customValidator.set(this, (func) => {
|
|
78
|
-
return (c) => __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const value = c.value || null;
|
|
80
|
-
if (func && typeof (func) === 'function') {
|
|
81
|
-
const result = func(value);
|
|
82
|
-
if (result instanceof Promise) {
|
|
83
|
-
const message = yield result;
|
|
84
|
-
if (message) {
|
|
85
|
-
return {
|
|
86
|
-
customValidator: message
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
if (result) {
|
|
92
|
-
return {
|
|
93
|
-
customValidator: result
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
return null;
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
13
|
this.onAdd = ($event) => {
|
|
102
14
|
var _a;
|
|
103
15
|
$event.stopPropagation();
|
|
@@ -120,135 +32,22 @@ export class SdSelectEditor {
|
|
|
120
32
|
this.sdDelete.emit(item);
|
|
121
33
|
};
|
|
122
34
|
}
|
|
123
|
-
get isNumber() {
|
|
124
|
-
var _a;
|
|
125
|
-
if (Array.isArray(__classPrivateFieldGet(this, _model))) {
|
|
126
|
-
if (__classPrivateFieldGet(this, _model).length) {
|
|
127
|
-
return typeof (__classPrivateFieldGet(this, _model)[0]) === 'number';
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
if (__classPrivateFieldGet(this, _model) || __classPrivateFieldGet(this, _model) === 0) {
|
|
132
|
-
return typeof (__classPrivateFieldGet(this, _model)) === 'number';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if ((_a = __classPrivateFieldGet(this, _items)) === null || _a === void 0 ? void 0 : _a.length) {
|
|
136
|
-
if (this.valueField) {
|
|
137
|
-
return typeof (__classPrivateFieldGet(this, _items)[0][this.valueField]) === 'number';
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
return typeof (__classPrivateFieldGet(this, _items)[0]) === 'number';
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
set form(val) {
|
|
146
|
-
if (val) {
|
|
147
|
-
if (val instanceof NgForm) {
|
|
148
|
-
__classPrivateFieldSet(this, _form, val.form);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
__classPrivateFieldSet(this, _form, val);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
set model(value) {
|
|
156
|
-
__classPrivateFieldSet(this, _model, value);
|
|
157
|
-
value = (value !== null && value !== void 0 ? value : '') + '';
|
|
158
|
-
if (value !== this.formControl.value) {
|
|
159
|
-
this.formControl.setValue(value);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
set items(items) {
|
|
163
|
-
__classPrivateFieldSet(this, _items, (items === null || items === void 0 ? void 0 : items.filter(e => e !== null && e !== undefined)) || []);
|
|
164
|
-
__classPrivateFieldGet(this, _itemsChanges).next(__classPrivateFieldGet(this, _items));
|
|
165
|
-
}
|
|
166
|
-
set required(val) {
|
|
167
|
-
this.isRequired = (val === '') || val;
|
|
168
|
-
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
169
|
-
}
|
|
170
|
-
set validator(validator) {
|
|
171
|
-
__classPrivateFieldSet(this, _validator, validator);
|
|
172
|
-
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
173
|
-
}
|
|
174
|
-
// Optional
|
|
175
|
-
set disabled(val) {
|
|
176
|
-
val = (val === '') || val;
|
|
177
|
-
if (val) {
|
|
178
|
-
this.formControl.disable();
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
this.formControl.enable();
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
ngOnInit() {
|
|
185
|
-
this.formControl.statusChanges;
|
|
186
|
-
__classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
|
|
187
|
-
// this.formControl.updateValueAndValidity();
|
|
188
|
-
this.ref.markForCheck();
|
|
189
|
-
}));
|
|
190
|
-
}
|
|
191
|
-
ngAfterViewInit() {
|
|
192
|
-
var _a;
|
|
193
|
-
this.filteredItems = __classPrivateFieldGet(this, _itemsChanges).pipe(startWith(__classPrivateFieldGet(this, _items)), map((items) => items.map(e => {
|
|
194
|
-
var _a;
|
|
195
|
-
if (this.valueField && this.displayField) {
|
|
196
|
-
return Object.assign(Object.assign({}, e), { [`${this.valueField}`]: (_a = e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
197
|
-
}
|
|
198
|
-
return e === null || e === void 0 ? void 0 : e.toString();
|
|
199
|
-
})));
|
|
200
|
-
this.display = merge(this.formControl.valueChanges, __classPrivateFieldGet(this, _itemsChanges)).pipe(startWith([]), map(() => {
|
|
201
|
-
var _a, _b, _c;
|
|
202
|
-
if (!this.formControl.value) {
|
|
203
|
-
return '';
|
|
204
|
-
}
|
|
205
|
-
if (this.valueField && this.displayField) {
|
|
206
|
-
const selectedItem = (_a = __classPrivateFieldGet(this, _items)) === null || _a === void 0 ? void 0 : _a.find(e => { var _a, _b; return ((_a = e === null || e === void 0 ? void 0 : e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = this.formControl.value) === null || _b === void 0 ? void 0 : _b.toString()); });
|
|
207
|
-
return (_b = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem[this.displayField]) !== null && _b !== void 0 ? _b : '';
|
|
208
|
-
}
|
|
209
|
-
const selectedItem = (_c = __classPrivateFieldGet(this, _items)) === null || _c === void 0 ? void 0 : _c.find(e => { var _a; return (e === null || e === void 0 ? void 0 : e.toString()) === ((_a = this.formControl.value) === null || _a === void 0 ? void 0 : _a.toString()); });
|
|
210
|
-
return selectedItem !== null && selectedItem !== void 0 ? selectedItem : '';
|
|
211
|
-
}));
|
|
212
|
-
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
|
|
213
|
-
}
|
|
214
|
-
ngOnDestroy() {
|
|
215
|
-
var _a;
|
|
216
|
-
__classPrivateFieldGet(this, _itemsChanges).unsubscribe();
|
|
217
|
-
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
|
|
218
|
-
__classPrivateFieldGet(this, _subscription).unsubscribe();
|
|
219
|
-
}
|
|
220
35
|
}
|
|
221
|
-
_name = new WeakMap(), _form = new WeakMap(), _model = new WeakMap(), _items = new WeakMap(), _validator = new WeakMap(), _modelChanges = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _updateValidator = new WeakMap(), _onChange = new WeakMap(), _customValidator = new WeakMap();
|
|
222
36
|
SdSelectEditor.decorators = [
|
|
223
37
|
{ type: Component, args: [{
|
|
224
|
-
selector:
|
|
225
|
-
template: "<
|
|
226
|
-
styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:none}:host ::ng-deep .sd-selected .mat-select-arrow{border:none}
|
|
38
|
+
selector: "sd-select-editor",
|
|
39
|
+
template: "<label *ngIf=\"!appearance && label\" class=\"d-block mb-0 T14M\">{{label}} <span class=\"text-danger mb-2\"\r\n *ngIf=\"isRequired\">*</span></label>\r\n<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n[class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n<ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItems: selectedItems | async }\">\r\n </ng-container>\r\n</ng-container>\r\n<ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{label}}</mat-label>\r\n <mat-select #select [formControl]=\"formControl\" [placeholder]=\"placeholder || (!appearance ? label : '')\" multiple\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && (multiple ? formControl?.value?.length : formControl?.value)}\"\r\n [required]=\"isRequired\" (openedChange)=\"onOpenChange($event)\" [attr.data-qclabel]=\"label\"\r\n [attr.data-qcid]=\"qcId\" *ngIf=\"multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"multiple && selectAll\">\r\n <mat-checkbox class=\"mat-option\" [(ngModel)]=\"allSelected\" [ngModelOptions]=\"{standalone: true}\"\r\n (change)=\"onSelectAll()\">\r\n T\u1EA5t c\u1EA3</mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async; trackBy: trackByKey\" [value]=\"item[valueField]\">\r\n <div matTooltipPosition=\"above\" [matTooltip]=\"item[displayField]\" class=\"d-flex justify-content-between\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n <div>\r\n <mat-icon *ngIf=\"sdEdit?.observers?.length\" class=\"mr-1 c-fa-icon\" (click)=\"onEdit($event, item)\">\r\n edit</mat-icon>\r\n <mat-icon *ngIf=\"sdDelete?.observers?.length\" class=\"mr-0 c-fa-icon\" (click)=\"onDelete($event, item)\">\r\n delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async; trackBy: trackByKey\" [value]=\"item\">\r\n <div matTooltipPosition=\"above\" [matTooltip]=\"item\" class=\"d-flex justify-content-between\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n <div>\r\n <mat-icon *ngIf=\"sdEdit?.observers?.length\" class=\"mr-1 c-fa-icon\" (click)=\"onEdit($event, item)\">\r\n edit</mat-icon>\r\n <mat-icon *ngIf=\"sdDelete?.observers?.length\" class=\"mr-0 c-fa-icon\" (click)=\"onDelete($event, item)\">\r\n delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <mat-option class=\"sd__option--add\" *ngIf=\"sdAdd?.observers?.length\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <div (click)=\"onAdd($event)\">\r\n <mat-icon class=\"mr-1\">add</mat-icon>\r\n {{'New item' | sdTranslate}}\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n <mat-select #select [formControl]=\"formControl\" [placeholder]=\"placeholder || (!appearance ? label : '')\"\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && formControl?.value}\" [required]=\"isRequired\"\r\n (openedChange)=\"onOpenChange($event)\" [attr.data-qclabel]=\"label\" [attr.data-qcid]=\"qcId\" *ngIf=\"!multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async; trackBy: trackByKey\" [value]=\"item[valueField]\">\r\n <div matTooltipPosition=\"above\" [matTooltip]=\"item[displayField]\" class=\"d-flex justify-content-between\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n <div>\r\n <mat-icon *ngIf=\"sdEdit?.observers?.length\" class=\"mr-1 c-fa-icon\" (click)=\"onEdit($event, item)\">\r\n edit</mat-icon>\r\n <mat-icon *ngIf=\"sdDelete?.observers?.length\" class=\"mr-0 c-fa-icon\" (click)=\"onDelete($event, item)\">\r\n delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async; trackBy: trackByKey\" [value]=\"item\">\r\n <div matTooltipPosition=\"above\" [matTooltip]=\"item\" class=\"d-flex justify-content-between\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n <div>\r\n <mat-icon *ngIf=\"sdEdit?.observers?.length\" class=\"mr-1 c-fa-icon\" (click)=\"onEdit($event, item)\">\r\n edit</mat-icon>\r\n <mat-icon *ngIf=\"sdDelete?.observers?.length\" class=\"mr-0 c-fa-icon\" (click)=\"onDelete($event, item)\">\r\n delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <mat-option class=\"sd__option--add\" *ngIf=\"sdAdd?.observers?.length\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <div (click)=\"onAdd($event)\">\r\n <mat-icon class=\"mr-1\">add</mat-icon>\r\n {{'New item' | sdTranslate}}\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n <mat-icon\r\n *ngIf=\"(multiple ? formControl?.value?.length : formControl?.value) && !isRequired && !formControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required && !disableErrorMessage\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.customValidator && !disableErrorMessage\">\r\n {{formControl?.errors?.customValidator}}\r\n </mat-error>\r\n </mat-form-field>\r\n</ng-template>\r\n</div>",
|
|
40
|
+
styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:none}:host ::ng-deep .sd-selected .mat-select-arrow{border:none}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field mat-select.mat-select-disabled .mat-select-value{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input{background-color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline{width:100%}::ng-deep .sd-select-panel .mat-option.sd-filtered-input mat-pseudo-checkbox{display:none}::ng-deep .mat-select-panel .mat-option.sd-filtered-input{height:auto}::ng-deep .sd-select-panel .mat-option.sd-filtered-input input{color:#000}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field-prefix .mat-icon{margin-right:0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper{padding:10px 0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper .mat-form-field-outline{background-color:rgba(0,0,0,.04)}.sd__option--add{background-color:#fff;bottom:0;color:rgba(0,0,0,.87);cursor:pointer;position:-webkit-sticky;position:sticky;z-index:10}"]
|
|
227
41
|
},] }
|
|
228
42
|
];
|
|
229
43
|
SdSelectEditor.ctorParameters = () => [
|
|
230
|
-
{ type: ChangeDetectorRef }
|
|
44
|
+
{ type: ChangeDetectorRef },
|
|
45
|
+
{ type: undefined, decorators: [{ type: Inject, args: [FORM_CONFIG,] }, { type: Optional }] }
|
|
231
46
|
];
|
|
232
47
|
SdSelectEditor.propDecorators = {
|
|
233
48
|
matSelect: [{ type: ViewChild, args: [MatSelect,] }],
|
|
234
|
-
size: [{ type: Input }],
|
|
235
|
-
form: [{ type: Input }],
|
|
236
|
-
label: [{ type: Input }],
|
|
237
|
-
placeholder: [{ type: Input }],
|
|
238
|
-
leftLabel: [{ type: Input }],
|
|
239
|
-
labelMinWidth: [{ type: Input }],
|
|
240
|
-
model: [{ type: Input }],
|
|
241
|
-
items: [{ type: Input }],
|
|
242
|
-
valueField: [{ type: Input }],
|
|
243
|
-
displayField: [{ type: Input }],
|
|
244
|
-
required: [{ type: Input }],
|
|
245
|
-
validator: [{ type: Input }],
|
|
246
|
-
disabled: [{ type: Input }],
|
|
247
|
-
modelChange: [{ type: Output }],
|
|
248
|
-
sdChange: [{ type: Output }],
|
|
249
|
-
sdSelection: [{ type: Output }],
|
|
250
49
|
sdAdd: [{ type: Output }],
|
|
251
50
|
sdEdit: [{ type: Output }],
|
|
252
51
|
sdDelete: [{ type: Output }]
|
|
253
52
|
};
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC1lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxNQUFNLEVBQWUsVUFBVSxFQUE2RCxNQUFNLGdCQUFnQixDQUFDO0FBQzVILE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3hELE1BQU0sT0FBTyxjQUFjO0lBMEZ6QixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUZoQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBc0JsQyx3QkFBaUI7UUFlakIsUUFBUTtRQUNSLHlCQUF3QjtRQVF4QixRQUFRO1FBQ1IsaUJBQWdCLEVBQUUsRUFBQztRQVFuQixZQUFZO1FBQ1osZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQiw2QkFBcUQ7UUFxQnJELHdCQUFnQixJQUFJLE9BQU8sRUFBTyxFQUFDO1FB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NUIsMnNHQUE2Qzs7YUFFOUM7OztZQVpnRCxpQkFBaUI7Ozt3QkFnQi9ELFNBQVMsU0FBQyxTQUFTO21CQW9CbkIsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7b0JBSUwsS0FBSztvQkFTTCxLQUFLO3lCQUlMLEtBQUs7MkJBQ0wsS0FBSzt1QkFLTCxLQUFLO3dCQUlMLEtBQUs7dUJBS0wsS0FBSzswQkFjTCxNQUFNO3VCQUNOLE1BQU07MEJBQ04sTUFBTTtvQkFDTixNQUFNO3FCQUNOLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0sIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2Qtc2VsZWN0LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RTZWxlY3RFZGl0b3IgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2VsZWN0KSBtYXRTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBnZXQgaXNOdW1iZXIoKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLiNtb2RlbCkpIHtcclxuICAgICAgaWYgKHRoaXMuI21vZGVsLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsWzBdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLiNtb2RlbCB8fCB0aGlzLiNtb2RlbCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNpdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNpdGVtc1swXVt0aGlzLnZhbHVlRmllbGRdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jaXRlbXNbMF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGVmdExhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWxNaW5XaWR0aDogc3RyaW5nO1xyXG5cclxuICAvLyBNb2RlbFxyXG4gICNtb2RlbDogbnVtYmVyIHwgc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogdW5kZWZpbmVkIHwgbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgdmFsdWUgPSAodmFsdWUgPz8gJycpICsgJyc7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcbiAgI2l0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10pIHtcclxuICAgIHRoaXMuI2l0ZW1zID0gaXRlbXM/LmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKSB8fCBbXTtcclxuICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KHRoaXMuI2l0ZW1zKTtcclxuICB9XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG5cclxuICAvLyBWYWxpZGF0b3JcclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHZhbGlkYXRvcih2YWxpZGF0b3I6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuI3ZhbGlkYXRvciA9IHZhbGlkYXRvcjtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyZWRJdGVtczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICNtb2RlbENoYW5nZXMgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgI2l0ZW1zQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGFueVtdPigpO1xyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IGFueSwgaXRlbT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBzZEFkZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNkRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzXHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuI2l0ZW1zQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLiNpdGVtcyksIG1hcCgoaXRlbXM6IGFueVtdKSA9PiBpdGVtcy5tYXAoZSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZSxcclxuICAgICAgICAgIFtgJHt0aGlzLnZhbHVlRmllbGR9YF06IGVbdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGU/LnRvU3RyaW5nKCk7XHJcbiAgICB9KSkpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbWVyZ2UodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMuI2l0ZW1zQ2hhbmdlcykucGlwZShzdGFydFdpdGgoW10pLCBtYXAoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gZT8uW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgPT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU/LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy4jaXRlbXM/LmZpbmQoZSA9PiBlPy50b1N0cmluZygpID09PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbSA/PyAnJztcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGNoYW5nZTogTWF0U2VsZWN0Q2hhbmdlKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNoYW5nZT8udmFsdWUgfHwgJyc7XHJcbiAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGxldCB2YWwgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyICYmIE51bWJlci5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdmFsID0gK3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgIHZhbHVlOiB2YWwsXHJcbiAgICAgIGl0ZW06IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgaXRlbTogbnVsbFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjY3VzdG9tVmFsaWRhdG9yID0gKGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pOiBBc3luY1ZhbGlkYXRvckZuID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoYzogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbD4gPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGMudmFsdWUgfHwgbnVsbDtcclxuICAgICAgaWYgKGZ1bmMgJiYgdHlwZW9mIChmdW5jKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmModmFsdWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IG1lc3NhZ2VcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IHJlc3VsdFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkQWRkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRWRpdCA9ICgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpID0+IHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgdGhpcy5zZEVkaXQuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCRldmVudDogRXZlbnQsIGl0ZW06IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkRGVsZXRlLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC1lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFHakIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBRVosTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPbkQsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBTzFDLFlBQ1UsS0FBd0IsRUFHeEIsaUJBQXFDO1FBRTdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUx4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUd4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBUnJDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBVzdDLFVBQUssR0FBRyxDQUFDLE1BQWEsRUFBRSxFQUFFOztZQUN4QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGNBQWMsR0FBRztZQUN6QixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLEtBQUssR0FBRztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxDQUFDLE1BQWEsRUFBRSxJQUFTLEVBQUUsRUFBRTs7WUFDcEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxjQUFjLEdBQUc7WUFDekIsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxLQUFLLEdBQUc7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBRUYsYUFBUSxHQUFHLENBQUMsTUFBYSxFQUFFLElBQVMsRUFBRSxFQUFFOztZQUN0QyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGNBQWMsR0FBRztZQUN6QixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLEtBQUssR0FBRztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUM7SUFyQkYsQ0FBQzs7O1lBbkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1Qix5MFJBQTZDOzthQUU5Qzs7O1lBbEJDLGlCQUFpQjs0Q0E0QmQsTUFBTSxTQUFDLFdBQVcsY0FDbEIsUUFBUTs7O3dCQVRWLFNBQVMsU0FBQyxTQUFTO29CQUVuQixNQUFNO3FCQUNOLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgSW5qZWN0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHtcclxuICBGT1JNX0NPTkZJRyxcclxuICBJRm9ybUNvbmZpZ3VyYXRpb25cclxufSBmcm9tIFwiQHNkLWFuZ3VsYXIvY29yZS9jb21tb25cIjtcclxuaW1wb3J0IHsgU2RTZWxlY3QgfSBmcm9tIFwiQHNkLWFuZ3VsYXIvY29yZS9zZWxlY3RcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInNkLXNlbGVjdC1lZGl0b3JcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2VsZWN0LWVkaXRvci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkU2VsZWN0RWRpdG9yIGV4dGVuZHMgU2RTZWxlY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChNYXRTZWxlY3QpIG1hdFNlbGVjdDogTWF0U2VsZWN0O1xyXG5cclxuICBAT3V0cHV0KCkgc2RBZGQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZERlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChGT1JNX0NPTkZJRylcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBwcml2YXRlIGZvcm1Db25maWd1cmF0aW9uOiBJRm9ybUNvbmZpZ3VyYXRpb25cclxuICApIHtcclxuICAgIHN1cGVyKGNkUmVmLCBmb3JtQ29uZmlndXJhdGlvbik7XHJcbiAgfVxyXG5cclxuICBvbkFkZCA9ICgkZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAkZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLm1hdFNlbGVjdD8uY2xvc2UoKTtcclxuICAgIHRoaXMuc2RBZGQuZW1pdCgpO1xyXG4gIH07XHJcblxyXG4gIG9uRWRpdCA9ICgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpID0+IHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgdGhpcy5zZEVkaXQuZW1pdChpdGVtKTtcclxuICB9O1xyXG5cclxuICBvbkRlbGV0ZSA9ICgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpID0+IHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgdGhpcy5zZERlbGV0ZS5lbWl0KGl0ZW0pO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -8,6 +8,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
8
8
|
import { SdSelectEditor } from './select-editor.component';
|
|
9
9
|
import { MatSelectModule } from '@angular/material/select';
|
|
10
10
|
import { SdTranslateModule } from '@sd-angular/core/translate';
|
|
11
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
12
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
13
|
+
import { SdCommonModule } from '@sd-angular/core/common';
|
|
14
|
+
import { SdSelectModule } from '@sd-angular/core/select';
|
|
11
15
|
export class SdSelectEditorModule {
|
|
12
16
|
}
|
|
13
17
|
SdSelectEditorModule.decorators = [
|
|
@@ -21,7 +25,11 @@ SdSelectEditorModule.decorators = [
|
|
|
21
25
|
MatFormFieldModule,
|
|
22
26
|
MatIconModule,
|
|
23
27
|
MatSelectModule,
|
|
24
|
-
SdTranslateModule
|
|
28
|
+
SdTranslateModule,
|
|
29
|
+
MatCheckboxModule,
|
|
30
|
+
MatProgressSpinnerModule,
|
|
31
|
+
SdCommonModule,
|
|
32
|
+
SdSelectModule
|
|
25
33
|
],
|
|
26
34
|
declarations: [
|
|
27
35
|
SdSelectEditor
|
|
@@ -32,4 +40,4 @@ SdSelectEditorModule.decorators = [
|
|
|
32
40
|
providers: []
|
|
33
41
|
},] }
|
|
34
42
|
];
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC1lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL3NlbGVjdC1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQTJCekQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBekJoQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGNBQWM7b0JBQ2QsZ0JBQWdCO29CQUNoQixrQkFBa0I7b0JBQ2xCLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsd0JBQXdCO29CQUN4QixjQUFjO29CQUNkLGNBQWM7aUJBQ2Y7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGNBQWM7aUJBQ2Y7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBTZFNlbGVjdEVkaXRvciB9IGZyb20gJy4vc2VsZWN0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBTZENvbW1vbk1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RTZWxlY3RNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NlbGVjdCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBTZFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgU2RDb21tb25Nb2R1bGUsXHJcbiAgICBTZFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZFNlbGVjdEVkaXRvclxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RTZWxlY3RFZGl0b3JcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkU2VsZWN0RWRpdG9yTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
|
|
@@ -35,8 +35,15 @@ class SdDbService {
|
|
|
35
35
|
if (!this.hasConfiguration) {
|
|
36
36
|
throw new Error('No firebase function configuration');
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
let { functionUrl, project, env } = this.firebaseConfiguration;
|
|
39
|
+
if (typeof (collection) === 'string') {
|
|
40
|
+
const url = `${functionUrl}/db/find/${project}/${env}/${collection}`;
|
|
41
|
+
return yield this.apiService.post(url, query);
|
|
42
|
+
}
|
|
43
|
+
functionUrl = (collection === null || collection === void 0 ? void 0 : collection.functionUrl) || functionUrl;
|
|
44
|
+
project = (collection === null || collection === void 0 ? void 0 : collection.project) || project;
|
|
45
|
+
env = (collection === null || collection === void 0 ? void 0 : collection.env) || env;
|
|
46
|
+
const url = `${functionUrl}/db/find/${project}/${env}/${collection.collection}`;
|
|
40
47
|
return yield this.apiService.post(url, query);
|
|
41
48
|
});
|
|
42
49
|
this.clone = (args, from) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,7 +58,7 @@ class SdDbService {
|
|
|
51
58
|
const fromDocumentId = from === null || from === void 0 ? void 0 : from.documentId;
|
|
52
59
|
const toCollection = (args === null || args === void 0 ? void 0 : args.collection) || (from === null || from === void 0 ? void 0 : from.collection);
|
|
53
60
|
const toDocumentId = (args === null || args === void 0 ? void 0 : args.documentId) || (from === null || from === void 0 ? void 0 : from.documentId);
|
|
54
|
-
const fromUrl = `${fromFunctionUrl}/db/
|
|
61
|
+
const fromUrl = `${fromFunctionUrl}/db/get/${fromProject}/${fromEnv}/${fromCollection}/${fromDocumentId}`;
|
|
55
62
|
const document = yield this.apiService.get(fromUrl);
|
|
56
63
|
yield this.set(toCollection, toDocumentId, document.data);
|
|
57
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-db.js","sources":["../../../../projects/sd-core/db/src/lib/db.service.ts","../../../../projects/sd-core/db/src/public-api.ts","../../../../projects/sd-core/db/sd-angular-core-db.ts"],"sourcesContent":["import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\nimport { DbQuery, DbRes } from './db.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdDbService {\r\n private get hasConfiguration() {\r\n return !!this.firebaseConfiguration?.functionUrl && !!this.firebaseConfiguration?.project && !!this.firebaseConfiguration?.env;\r\n }\r\n constructor(\r\n private apiService: SdApiService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n\r\n get = async <T = any>(collection: string, id: string): Promise<DbRes<T>> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/get/${project}/${env}/${collection}/${id}`;\r\n return await this.apiService.get(url);\r\n }\r\n\r\n set = async <T = any>(collection: string, id: string, data: T): Promise<void> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/set/${project}/${env}/${collection}/${id}`;\r\n await this.apiService.post(url, data);\r\n }\r\n\r\n remove = async (collection: string, id: string): Promise<void> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/remove/${project}/${env}/${collection}/${id}`;\r\n await this.apiService.delete(url);\r\n }\r\n\r\n find = async <T = any>(collection: string, query?: DbQuery): Promise<DbRes<(T & { documentId: string })[]>> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n
|
|
1
|
+
{"version":3,"file":"sd-angular-core-db.js","sources":["../../../../projects/sd-core/db/src/lib/db.service.ts","../../../../projects/sd-core/db/src/public-api.ts","../../../../projects/sd-core/db/sd-angular-core-db.ts"],"sourcesContent":["import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\nimport { DbQuery, DbRes } from './db.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdDbService {\r\n private get hasConfiguration() {\r\n return !!this.firebaseConfiguration?.functionUrl && !!this.firebaseConfiguration?.project && !!this.firebaseConfiguration?.env;\r\n }\r\n constructor(\r\n private apiService: SdApiService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n\r\n get = async <T = any>(collection: string, id: string): Promise<DbRes<T>> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/get/${project}/${env}/${collection}/${id}`;\r\n return await this.apiService.get(url);\r\n }\r\n\r\n set = async <T = any>(collection: string, id: string, data: T): Promise<void> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/set/${project}/${env}/${collection}/${id}`;\r\n await this.apiService.post(url, data);\r\n }\r\n\r\n remove = async (collection: string, id: string): Promise<void> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const url = `${functionUrl}/db/remove/${project}/${env}/${collection}/${id}`;\r\n await this.apiService.delete(url);\r\n }\r\n\r\n find = async <T = any>(collection: string | {\r\n functionUrl?: string;\r\n project?: string;\r\n env?: string;\r\n collection: string;\r\n }, query?: DbQuery): Promise<DbRes<(T & { documentId: string })[]>> => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n let { functionUrl, project, env } = this.firebaseConfiguration;\r\n if (typeof (collection) === 'string') {\r\n const url = `${functionUrl}/db/find/${project}/${env}/${collection}`;\r\n return await this.apiService.post(url, query);\r\n }\r\n functionUrl = collection?.functionUrl || functionUrl;\r\n project = collection?.project || project;\r\n env = collection?.env || env;\r\n const url = `${functionUrl}/db/find/${project}/${env}/${collection.collection}`;\r\n return await this.apiService.post(url, query);\r\n }\r\n\r\n clone = async<T = any>(args: {\r\n collection?: string,\r\n documentId?: string\r\n }, from: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n collection: string,\r\n documentId: string\r\n }) => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const fromFunctionUrl = from?.functionUrl || functionUrl;\r\n const fromProject = from?.project || project;\r\n const fromEnv = from?.env;\r\n const fromCollection = from?.collection;\r\n const fromDocumentId = from?.documentId;\r\n const toCollection = args?.collection || from?.collection;\r\n const toDocumentId = args?.documentId || from?.documentId;\r\n const fromUrl = `${fromFunctionUrl}/db/get/${fromProject}/${fromEnv}/${fromCollection}/${fromDocumentId}`;\r\n const document = await this.apiService.get<DbRes<T>>(fromUrl);\r\n await this.set(toCollection, toDocumentId, document.data);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/db.model';\r\nexport * from './lib/db.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|