@sd-angular/core 0.0.982 → 0.0.986
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-select.umd.js +176 -133
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/esm2015/select/src/lib/select.component.js +162 -110
- package/fesm2015/sd-angular-core-select.js +161 -109
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-0.0.982.tgz → sd-angular-core-0.0.986.tgz} +0 -0
- package/select/sd-angular-core-select.metadata.json +1 -1
- package/select/src/lib/select.component.d.ts +2 -1
|
@@ -9,7 +9,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
9
9
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
10
10
|
import { __classPrivateFieldGet, __awaiter, __classPrivateFieldSet } from 'tslib';
|
|
11
11
|
import { v4 } from 'uuid';
|
|
12
|
-
import { Subject } from 'rxjs';
|
|
12
|
+
import { Subject, combineLatest } from 'rxjs';
|
|
13
13
|
import { startWith, debounceTime, switchMap, map } from 'rxjs/operators';
|
|
14
14
|
import { SdUtilityService } from '@sd-angular/core/utility';
|
|
15
15
|
import { MatSelectModule } from '@angular/material/select';
|
|
@@ -30,7 +30,7 @@ SdSelectDisplayDefDirective.ctorParameters = () => [
|
|
|
30
30
|
{ type: TemplateRef }
|
|
31
31
|
];
|
|
32
32
|
|
|
33
|
-
var _input, _name, _form, _model, _items, _currentItems, _allItem, _delay, _validator, _updateValidator, _loadItems, _onChange, _customValidator;
|
|
33
|
+
var _input, _name, _form, _model, _selectedItem, _selectedItems, _items, _currentItems, _allItem, _delay, _validator, _updateValidator, _search, _loadItems, _onChange, _customValidator;
|
|
34
34
|
class SdSelect {
|
|
35
35
|
constructor(ref, utilityService) {
|
|
36
36
|
this.ref = ref;
|
|
@@ -43,6 +43,8 @@ class SdSelect {
|
|
|
43
43
|
_form.set(this, void 0);
|
|
44
44
|
_model.set(this, void 0);
|
|
45
45
|
// Items
|
|
46
|
+
_selectedItem.set(this, void 0);
|
|
47
|
+
_selectedItems.set(this, []);
|
|
46
48
|
_items.set(this, []);
|
|
47
49
|
_currentItems.set(this, []);
|
|
48
50
|
_allItem.set(this, {});
|
|
@@ -75,45 +77,52 @@ class SdSelect {
|
|
|
75
77
|
this.formControl.setAsyncValidators(asyncValidators);
|
|
76
78
|
this.formControl.updateValueAndValidity();
|
|
77
79
|
});
|
|
80
|
+
_search.set(this, (value, items) => __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const results = yield items(value).catch(() => []);
|
|
82
|
+
if (Array.isArray(value)) {
|
|
83
|
+
return results.filter(e => !!e && (value.includes(e) || value.includes(e[this.valueField])));
|
|
84
|
+
}
|
|
85
|
+
return results.filter(e => !!e && (e === value || e[this.valueField] === value));
|
|
86
|
+
}));
|
|
78
87
|
_loadItems.set(this, (searchText, items) => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
var _a;
|
|
79
89
|
this.loading = true;
|
|
80
90
|
const results = yield items(searchText).finally(() => this.loading = false);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
results.push(__classPrivateFieldGet(this, _allItem)[val]);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
91
|
+
const objItem = this.valueField ? this.utilityService.arrayToObject(results, this.valueField) : results.forEach(item => objItem[item === null || item === void 0 ? void 0 : item.toString()] = item);
|
|
92
|
+
Object.assign(__classPrivateFieldGet(this, _allItem), objItem);
|
|
93
|
+
if (!((_a = this.formControl.value) === null || _a === void 0 ? void 0 : _a.toString())) {
|
|
94
|
+
return results;
|
|
95
|
+
}
|
|
96
|
+
const values = Array.isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];
|
|
97
|
+
values.forEach(val => {
|
|
98
|
+
if (!objItem[val]) {
|
|
99
|
+
if (__classPrivateFieldGet(this, _allItem)[val]) {
|
|
100
|
+
results.push(__classPrivateFieldGet(this, _allItem)[val]);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
if (this.valueField && this.displayField) {
|
|
97
104
|
results.push({
|
|
98
105
|
[this.valueField]: val,
|
|
99
106
|
[this.displayField]: val
|
|
100
107
|
});
|
|
101
108
|
}
|
|
109
|
+
else {
|
|
110
|
+
results.push(val);
|
|
111
|
+
}
|
|
102
112
|
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
this.ref.detectChanges();
|
|
113
|
+
}
|
|
114
|
+
});
|
|
106
115
|
return results;
|
|
107
116
|
}));
|
|
108
117
|
this.onSelectionChange = (change) => {
|
|
109
118
|
var _a;
|
|
110
119
|
this.allSelected = !this.select.options.some(e => !e.selected);
|
|
111
120
|
const value = (_a = change === null || change === void 0 ? void 0 : change.value) !== null && _a !== void 0 ? _a : '';
|
|
112
|
-
this.searchTerm$.next('');
|
|
113
121
|
if (this.multiple) {
|
|
114
122
|
__classPrivateFieldGet(this, _onChange).call(this, value || []);
|
|
115
123
|
}
|
|
116
124
|
else {
|
|
125
|
+
this.searchTerm$.next('');
|
|
117
126
|
__classPrivateFieldGet(this, _onChange).call(this, value);
|
|
118
127
|
}
|
|
119
128
|
};
|
|
@@ -127,11 +136,12 @@ class SdSelect {
|
|
|
127
136
|
if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {
|
|
128
137
|
vals = value.map(e => +e);
|
|
129
138
|
}
|
|
139
|
+
__classPrivateFieldSet(this, _selectedItems, (_a = __classPrivateFieldGet(this, _currentItems)) === null || _a === void 0 ? void 0 : _a.filter(e => vals.some(e1 => { var _a; return (e1 === null || e1 === void 0 ? void 0 : e1.toString()) === ((_a = e === null || e === void 0 ? void 0 : e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString()); })));
|
|
130
140
|
this.modelChange.emit(vals);
|
|
131
141
|
this.sdChange.emit(vals);
|
|
132
142
|
this.sdSelection.emit({
|
|
133
143
|
value: vals,
|
|
134
|
-
items:
|
|
144
|
+
items: __classPrivateFieldGet(this, _selectedItems)
|
|
135
145
|
});
|
|
136
146
|
}
|
|
137
147
|
else {
|
|
@@ -150,11 +160,12 @@ class SdSelect {
|
|
|
150
160
|
val = !!value;
|
|
151
161
|
}
|
|
152
162
|
}
|
|
163
|
+
__classPrivateFieldSet(this, _selectedItem, (_b = __classPrivateFieldGet(this, _currentItems)) === null || _b === void 0 ? void 0 : _b.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()); }));
|
|
153
164
|
this.modelChange.emit(val);
|
|
154
165
|
this.sdChange.emit(val);
|
|
155
166
|
this.sdSelection.emit({
|
|
156
167
|
value: val,
|
|
157
|
-
item:
|
|
168
|
+
item: __classPrivateFieldGet(this, _selectedItem)
|
|
158
169
|
});
|
|
159
170
|
}
|
|
160
171
|
});
|
|
@@ -275,14 +286,10 @@ class SdSelect {
|
|
|
275
286
|
set model(value) {
|
|
276
287
|
__classPrivateFieldSet(this, _model, value);
|
|
277
288
|
if (Array.isArray(value)) {
|
|
278
|
-
this.formControl.setValue(value.map(val => (val !== null && val !== void 0 ? val : '') + '')
|
|
279
|
-
emitEvent: false
|
|
280
|
-
});
|
|
289
|
+
this.formControl.setValue(value.map(val => (val !== null && val !== void 0 ? val : '') + ''));
|
|
281
290
|
}
|
|
282
291
|
else {
|
|
283
|
-
this.formControl.setValue((value !== null && value !== void 0 ? value : '') + ''
|
|
284
|
-
emitEvent: false
|
|
285
|
-
});
|
|
292
|
+
this.formControl.setValue((value !== null && value !== void 0 ? value : '') + '');
|
|
286
293
|
}
|
|
287
294
|
this.ref.detectChanges();
|
|
288
295
|
}
|
|
@@ -326,96 +333,141 @@ class SdSelect {
|
|
|
326
333
|
this.selectAll = (val === '') || val;
|
|
327
334
|
}
|
|
328
335
|
ngOnInit() {
|
|
329
|
-
this.
|
|
330
|
-
// distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes
|
|
331
|
-
switchMap((val) => __awaiter(this, void 0, void 0, function* () {
|
|
336
|
+
this.allItems = this.searchTerm$.asObservable().pipe(startWith(''), debounceTime(typeof (__classPrivateFieldGet(this, _items)) === 'function' ? __classPrivateFieldGet(this, _delay) : 0), switchMap((val) => __awaiter(this, void 0, void 0, function* () {
|
|
332
337
|
if (typeof (__classPrivateFieldGet(this, _items)) === 'function') {
|
|
333
|
-
|
|
334
|
-
__classPrivateFieldSet(this, _currentItems, items.filter((item, index) => {
|
|
335
|
-
var _a;
|
|
336
|
-
const formValue = this.formControl.value;
|
|
337
|
-
let value = (item === null || item === void 0 ? void 0 : item.toString()) || '';
|
|
338
|
-
if (this.valueField && this.displayField) {
|
|
339
|
-
value = ((_a = item[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString()) || '';
|
|
340
|
-
}
|
|
341
|
-
return (Array.isArray(formValue) ? formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value) : (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value)
|
|
342
|
-
|| index < this.limit;
|
|
343
|
-
}));
|
|
344
|
-
return __classPrivateFieldGet(this, _currentItems).map(e => {
|
|
345
|
-
var _a;
|
|
346
|
-
if (this.valueField && this.displayField) {
|
|
347
|
-
return Object.assign(Object.assign({}, e), { [`${this.valueField}`]: (_a = e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
348
|
-
}
|
|
349
|
-
return e === null || e === void 0 ? void 0 : e.toString();
|
|
350
|
-
});
|
|
338
|
+
return yield __classPrivateFieldGet(this, _loadItems).call(this, val, __classPrivateFieldGet(this, _items));
|
|
351
339
|
}
|
|
352
340
|
const { changeAliasLowerCase } = this.utilityService;
|
|
353
|
-
|
|
341
|
+
const searchText = changeAliasLowerCase(val);
|
|
342
|
+
const formValue = this.formControl.value;
|
|
343
|
+
const isArray = Array.isArray(formValue);
|
|
344
|
+
const hasFields = !!this.valueField && !!this.displayField;
|
|
345
|
+
return __classPrivateFieldGet(this, _items).filter(item => {
|
|
354
346
|
var _a, _b;
|
|
355
|
-
const
|
|
356
|
-
const
|
|
357
|
-
if (
|
|
358
|
-
|
|
359
|
-
const display = ((_b = item[this.displayField]) === null || _b === void 0 ? void 0 : _b.toString()) || '';
|
|
360
|
-
return (Array.isArray(formValue) ? formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value) : (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value)
|
|
361
|
-
|| changeAliasLowerCase(value).indexOf(searchText) !== -1
|
|
362
|
-
|| changeAliasLowerCase(display).indexOf(searchText) !== -1;
|
|
347
|
+
const value = hasFields ? (_a = item[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString() : (item === null || item === void 0 ? void 0 : item.toString()) || '';
|
|
348
|
+
const display = hasFields ? (_b = item[this.displayField]) === null || _b === void 0 ? void 0 : _b.toString() : (item === null || item === void 0 ? void 0 : item.toString()) || '';
|
|
349
|
+
if (changeAliasLowerCase(value).includes(searchText) || changeAliasLowerCase(display).includes(searchText)) {
|
|
350
|
+
return true;
|
|
363
351
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
return (Array.isArray(formValue) ? formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value) : (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value)
|
|
367
|
-
|| changeAliasLowerCase(value).indexOf(searchText) !== -1;
|
|
352
|
+
if (isArray) {
|
|
353
|
+
return formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value);
|
|
368
354
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
return __classPrivateFieldGet(this, _currentItems).map(e => {
|
|
380
|
-
var _a;
|
|
381
|
-
if (this.valueField && this.displayField) {
|
|
382
|
-
return Object.assign(Object.assign({}, e), { [`${this.valueField}`]: (_a = e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString() });
|
|
383
|
-
}
|
|
384
|
-
return e === null || e === void 0 ? void 0 : e.toString();
|
|
385
|
-
});
|
|
386
|
-
})));
|
|
387
|
-
this.display = this.filteredItems.pipe(map((items) => {
|
|
388
|
-
var _a, _b;
|
|
389
|
-
const formValue = this.formControl.value;
|
|
390
|
-
if (Array.isArray(formValue)) {
|
|
391
|
-
if (!formValue.length) {
|
|
392
|
-
return '';
|
|
393
|
-
}
|
|
394
|
-
const results = [];
|
|
395
|
-
for (const value of formValue.map(e => { var _a; return (_a = e === null || e === void 0 ? void 0 : e.toString()) !== null && _a !== void 0 ? _a : ''; }).filter(e => !!e)) {
|
|
396
|
-
if (this.valueField && this.displayField) {
|
|
397
|
-
const selectedItem = items === null || items === void 0 ? void 0 : items.find(e => { var _a; return ((_a = e === null || e === void 0 ? void 0 : e[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString()) === value; });
|
|
398
|
-
results.push((_a = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem[this.displayField]) !== null && _a !== void 0 ? _a : value);
|
|
355
|
+
return (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value;
|
|
356
|
+
}).sort((a, b) => {
|
|
357
|
+
var _a, _b;
|
|
358
|
+
const value1 = hasFields ? (_a = a[this.valueField]) === null || _a === void 0 ? void 0 : _a.toString() : (a === null || a === void 0 ? void 0 : a.toString()) || '';
|
|
359
|
+
const value2 = hasFields ? (_b = b[this.valueField]) === null || _b === void 0 ? void 0 : _b.toString() : (b === null || b === void 0 ? void 0 : b.toString()) || '';
|
|
360
|
+
if (isArray) {
|
|
361
|
+
const t1 = formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value1);
|
|
362
|
+
const t2 = formValue.some(e => (e === null || e === void 0 ? void 0 : e.toString()) === value2);
|
|
363
|
+
if (t1 && !t2) {
|
|
364
|
+
return -1;
|
|
399
365
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
results.push(selectedItem !== null && selectedItem !== void 0 ? selectedItem : value);
|
|
366
|
+
if (!t1 && t2) {
|
|
367
|
+
return 1;
|
|
403
368
|
}
|
|
369
|
+
return 0;
|
|
404
370
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
if (!value) {
|
|
410
|
-
return '';
|
|
371
|
+
const t1 = (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value1;
|
|
372
|
+
const t2 = (formValue === null || formValue === void 0 ? void 0 : formValue.toString()) === value2;
|
|
373
|
+
if (t1 && !t2) {
|
|
374
|
+
return -1;
|
|
411
375
|
}
|
|
412
|
-
if (
|
|
413
|
-
|
|
414
|
-
return (_b = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem[this.displayField]) !== null && _b !== void 0 ? _b : '';
|
|
376
|
+
if (!t1 && t2) {
|
|
377
|
+
return 1;
|
|
415
378
|
}
|
|
416
|
-
|
|
417
|
-
|
|
379
|
+
return 0;
|
|
380
|
+
});
|
|
381
|
+
})));
|
|
382
|
+
this.filteredItems = this.allItems.pipe(map(allItems => {
|
|
383
|
+
return allItems.filter((item, index) => index < this.limit);
|
|
384
|
+
}));
|
|
385
|
+
// this.filteredItems = this.searchTerm$.asObservable().pipe(
|
|
386
|
+
// startWith(''),
|
|
387
|
+
// debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),
|
|
388
|
+
// // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes
|
|
389
|
+
// switchMap(async (val: string) => {
|
|
390
|
+
// if (typeof (this.#items) === 'function') {
|
|
391
|
+
// const items = await this.#loadItems(val, this.#items);
|
|
392
|
+
// this.#currentItems = items.filter((item, index) => {
|
|
393
|
+
// const formValue: any | any[] = this.formControl.value;
|
|
394
|
+
// let value = item?.toString() || '';
|
|
395
|
+
// if (this.valueField && this.displayField) {
|
|
396
|
+
// value = item[this.valueField]?.toString() || '';
|
|
397
|
+
// }
|
|
398
|
+
// return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)
|
|
399
|
+
// || index < this.limit;
|
|
400
|
+
// });
|
|
401
|
+
// return this.#currentItems.map(e => {
|
|
402
|
+
// if (this.valueField && this.displayField) {
|
|
403
|
+
// return {
|
|
404
|
+
// ...e,
|
|
405
|
+
// [`${this.valueField}`]: e[this.valueField]?.toString()
|
|
406
|
+
// };
|
|
407
|
+
// }
|
|
408
|
+
// return e?.toString();
|
|
409
|
+
// });
|
|
410
|
+
// }
|
|
411
|
+
// const { changeAliasLowerCase } = this.utilityService;
|
|
412
|
+
// this.#currentItems = this.#items.filter(item => {
|
|
413
|
+
// const searchText = changeAliasLowerCase(val);
|
|
414
|
+
// const formValue: any | any[] = this.formControl.value;
|
|
415
|
+
// if (this.valueField && this.displayField) {
|
|
416
|
+
// const value = item[this.valueField]?.toString() || '';
|
|
417
|
+
// const display = item[this.displayField]?.toString() || '';
|
|
418
|
+
// return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)
|
|
419
|
+
// || changeAliasLowerCase(value).indexOf(searchText) !== -1
|
|
420
|
+
// || changeAliasLowerCase(display).indexOf(searchText) !== -1;
|
|
421
|
+
// } else {
|
|
422
|
+
// const value = item?.toString() || '';
|
|
423
|
+
// return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)
|
|
424
|
+
// || changeAliasLowerCase(value).indexOf(searchText) !== -1;
|
|
425
|
+
// }
|
|
426
|
+
// }).filter((item, index) => {
|
|
427
|
+
// const formValue: any | any[] = this.formControl.value;
|
|
428
|
+
// let value = item?.toString() || '';
|
|
429
|
+
// if (this.valueField && this.displayField) {
|
|
430
|
+
// value = item[this.valueField]?.toString() || '';
|
|
431
|
+
// }
|
|
432
|
+
// return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)
|
|
433
|
+
// || index < this.limit;
|
|
434
|
+
// });
|
|
435
|
+
// return this.#currentItems.map(e => {
|
|
436
|
+
// if (this.valueField && this.displayField) {
|
|
437
|
+
// return {
|
|
438
|
+
// ...e,
|
|
439
|
+
// [`${this.valueField}`]: e[this.valueField]?.toString()
|
|
440
|
+
// };
|
|
441
|
+
// }
|
|
442
|
+
// return e?.toString();
|
|
443
|
+
// });
|
|
444
|
+
// })
|
|
445
|
+
// );
|
|
446
|
+
// this.display = this.formControl.valueChanges.pipe(map(formValue => {
|
|
447
|
+
// if (!this.displayField) {
|
|
448
|
+
// return Array.isArray(formValue) ? formValue?.join(', ') : formValue;
|
|
449
|
+
// }
|
|
450
|
+
// if (Array.isArray(formValue)) {
|
|
451
|
+
// if (!formValue.length) {
|
|
452
|
+
// return '';
|
|
453
|
+
// }
|
|
454
|
+
// return this.#selectedItems.map(e => e[this.displayField]?.toString()).join(', ');
|
|
455
|
+
// } else {
|
|
456
|
+
// const value = formValue?.toString() || '';
|
|
457
|
+
// if (!value) {
|
|
458
|
+
// return '';
|
|
459
|
+
// }
|
|
460
|
+
// return this.#selectedItem[this.displayField]?.toString();
|
|
461
|
+
// }
|
|
462
|
+
// }));
|
|
463
|
+
this.display = combineLatest([this.allItems, this.formControl.valueChanges]).pipe(map(([items, formValue]) => {
|
|
464
|
+
const isArray = Array.isArray(formValue);
|
|
465
|
+
if (!this.valueField || !this.displayField) {
|
|
466
|
+
return isArray ? formValue === null || formValue === void 0 ? void 0 : formValue.join(', ') : formValue;
|
|
418
467
|
}
|
|
468
|
+
return items.filter(e => isArray ? formValue.includes(e[this.valueField]) : formValue === e[this.valueField])
|
|
469
|
+
.map(e => { var _a; return (_a = e[this.displayField]) === null || _a === void 0 ? void 0 : _a.toString(); })
|
|
470
|
+
.join(', ');
|
|
419
471
|
}));
|
|
420
472
|
}
|
|
421
473
|
ngAfterViewInit() {
|
|
@@ -436,7 +488,7 @@ class SdSelect {
|
|
|
436
488
|
__classPrivateFieldGet(this, _onChange).call(this, this.formControl.value);
|
|
437
489
|
}
|
|
438
490
|
}
|
|
439
|
-
_input = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _model = new WeakMap(), _items = new WeakMap(), _currentItems = new WeakMap(), _allItem = new WeakMap(), _delay = new WeakMap(), _validator = new WeakMap(), _updateValidator = new WeakMap(), _loadItems = new WeakMap(), _onChange = new WeakMap(), _customValidator = new WeakMap();
|
|
491
|
+
_input = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _model = new WeakMap(), _selectedItem = new WeakMap(), _selectedItems = new WeakMap(), _items = new WeakMap(), _currentItems = new WeakMap(), _allItem = new WeakMap(), _delay = new WeakMap(), _validator = new WeakMap(), _updateValidator = new WeakMap(), _search = new WeakMap(), _loadItems = new WeakMap(), _onChange = new WeakMap(), _customValidator = new WeakMap();
|
|
440
492
|
SdSelect.decorators = [
|
|
441
493
|
{ type: Component, args: [{
|
|
442
494
|
selector: 'sd-select',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-select.js","sources":["../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts","../../../../projects/sd-core/select/src/public-api.ts","../../../../projects/sd-core/select/sd-angular-core-select.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { merge, Observable, Subject } from 'rxjs';\r\nimport { debounceTime, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n display: Observable<string>;\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.formControl.setValue((value ?? '') + '', {\r\n emitEvent: false\r\n });\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n const items = await this.#loadItems(val, this.#items);\r\n this.#currentItems = items.filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n this.#currentItems = this.#items.filter(item => {\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue: any | any[] = this.formControl.value;\r\n if (this.valueField && this.displayField) {\r\n const value = item[this.valueField]?.toString() || '';\r\n const display = item[this.displayField]?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n } else {\r\n const value = item?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n }\r\n }).filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n })\r\n );\r\n\r\n this.display = this.filteredItems.pipe(map((items) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n if (Array.isArray(formValue)) {\r\n if (!formValue.length) {\r\n return '';\r\n }\r\n const results: string[] = [];\r\n for (const value of formValue.map(e => e?.toString() ?? '').filter(e => !!e)) {\r\n if (this.valueField && this.displayField) {\r\n const selectedItem = items?.find(e => e?.[this.valueField]?.toString() === value);\r\n results.push(selectedItem?.[this.displayField] ?? value);\r\n } else {\r\n const selectedItem = items?.find(e => e?.toString() === value);\r\n results.push(selectedItem ?? value);\r\n }\r\n }\r\n return results.join(', ');\r\n } else {\r\n const value = formValue?.toString() || '';\r\n if (!value) {\r\n return '';\r\n }\r\n if (this.valueField && this.displayField) {\r\n const selectedItem = items?.find(e => e?.[this.valueField]?.toString() === value);\r\n return selectedItem?.[this.displayField] ?? '';\r\n }\r\n const selectedItem = items?.find(e => e?.toString() === value);\r\n return selectedItem ?? value;\r\n }\r\n }));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n if (this.multiple) {\r\n let objItem = {};\r\n if (this.valueField) {\r\n objItem = this.utilityService.arrayToObject(results, this.valueField);\r\n } else {\r\n results.forEach(item => objItem[item?.toString()] = item);\r\n }\r\n Object.assign(this.#allItem, objItem);\r\n const values: (number | string)[] = this.formControl.value || [];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.ref.detectChanges();\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n this.searchTerm$.next('');\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString())\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if (isOpened) {\r\n if (this.#input) {\r\n this.#input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/select.module';\r\nexport * from './lib/select.component';\r\nexport * from './lib/select-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-select.js","sources":["../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts","../../../../projects/sd-core/select/src/public-api.ts","../../../../projects/sd-core/select/sd-angular-core-select.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { combineLatest, Observable, Subject } from 'rxjs';\r\nimport { debounceTime, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n display: Observable<string>;\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''));\r\n } else {\r\n this.formControl.setValue((value ?? '') + '');\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #selectedItem: any;\r\n #selectedItems: any[] = [];\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string | string[]) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n allItems: Observable<any[]>;\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.allItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n return await this.#loadItems(val, this.#items);\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue = this.formControl.value;\r\n const isArray = Array.isArray(formValue);\r\n const hasFields = !!this.valueField && !!this.displayField;\r\n return this.#items.filter(item => {\r\n const value = hasFields ? item[this.valueField]?.toString() : item?.toString() || '';\r\n const display = hasFields ? item[this.displayField]?.toString() : item?.toString() || '';\r\n if (changeAliasLowerCase(value).includes(searchText) || changeAliasLowerCase(display).includes(searchText)) {\r\n return true;\r\n }\r\n if (isArray) {\r\n return formValue.some(e => e?.toString() === value)\r\n }\r\n return formValue?.toString() === value;\r\n }).sort((a, b) => {\r\n const value1 = hasFields ? a[this.valueField]?.toString() : a?.toString() || '';\r\n const value2 = hasFields ? b[this.valueField]?.toString() : b?.toString() || '';\r\n if (isArray) {\r\n const t1 = formValue.some(e => e?.toString() === value1);\r\n const t2 = formValue.some(e => e?.toString() === value2);\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n const t1 = formValue?.toString() === value1;\r\n const t2 = formValue?.toString() === value2;\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n })\r\n );\r\n this.filteredItems = this.allItems.pipe(map(allItems => {\r\n return allItems.filter((item, index) => index < this.limit);\r\n }));\r\n\r\n // this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n // startWith(''),\r\n // debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n // switchMap(async (val: string) => {\r\n // if (typeof (this.#items) === 'function') {\r\n // const items = await this.#loadItems(val, this.#items);\r\n // this.#currentItems = items.filter((item, index) => {\r\n // const formValue: any | any[] = this.formControl.value;\r\n // let value = item?.toString() || '';\r\n // if (this.valueField && this.displayField) {\r\n // value = item[this.valueField]?.toString() || '';\r\n // }\r\n // return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n // || index < this.limit;\r\n // });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n // }\r\n // const { changeAliasLowerCase } = this.utilityService;\r\n // this.#currentItems = this.#items.filter(item => {\r\n // const searchText = changeAliasLowerCase(val);\r\n // const formValue: any | any[] = this.formControl.value;\r\n // if (this.valueField && this.displayField) {\r\n // const value = item[this.valueField]?.toString() || '';\r\n // const display = item[this.displayField]?.toString() || '';\r\n // return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n // || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n // || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n // } else {\r\n // const value = item?.toString() || '';\r\n // return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n // || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n // }\r\n // }).filter((item, index) => {\r\n // const formValue: any | any[] = this.formControl.value;\r\n // let value = item?.toString() || '';\r\n // if (this.valueField && this.displayField) {\r\n // value = item[this.valueField]?.toString() || '';\r\n // }\r\n // return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n // || index < this.limit;\r\n // });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n // })\r\n // );\r\n\r\n // this.display = this.formControl.valueChanges.pipe(map(formValue => {\r\n // if (!this.displayField) {\r\n // return Array.isArray(formValue) ? formValue?.join(', ') : formValue;\r\n // }\r\n // if (Array.isArray(formValue)) {\r\n // if (!formValue.length) {\r\n // return '';\r\n // }\r\n // return this.#selectedItems.map(e => e[this.displayField]?.toString()).join(', ');\r\n // } else {\r\n // const value = formValue?.toString() || '';\r\n // if (!value) {\r\n // return '';\r\n // }\r\n // return this.#selectedItem[this.displayField]?.toString();\r\n // }\r\n // }));\r\n\r\n this.display = combineLatest([this.allItems, this.formControl.valueChanges]).pipe(\r\n map(([items, formValue]) => {\r\n const isArray = Array.isArray(formValue);\r\n if (!this.valueField || !this.displayField) {\r\n return isArray ? formValue?.join(', ') : formValue;\r\n }\r\n return items.filter(e => isArray ? formValue.includes(e[this.valueField]) : formValue === e[this.valueField])\r\n .map(e => e[this.displayField]?.toString())\r\n .join(', ');\r\n }),\r\n )\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #search = async (value: any | any[], items: (searchText?: string | string[]) => Promise<any[]>) => {\r\n const results = await items(value).catch(() => []);\r\n if (Array.isArray(value)) {\r\n return results.filter(e => !!e && (value.includes(e) || value.includes(e[this.valueField])));\r\n }\r\n return results.filter(e => !!e && (e === value || e[this.valueField] === value));\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n const objItem = this.valueField ? this.utilityService.arrayToObject(results, this.valueField) : results.forEach(item => objItem[item?.toString()] = item);\r\n Object.assign(this.#allItem, objItem);\r\n if (!this.formControl.value?.toString()) {\r\n return results;\r\n }\r\n const values = Array.isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n if (this.valueField && this.displayField) {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n } else {\r\n results.push(val);\r\n }\r\n }\r\n }\r\n });\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.searchTerm$.next('');\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.#selectedItems = this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#selectedItems\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.#selectedItem = this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString());\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#selectedItem\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if (isOpened) {\r\n if (this.#input) {\r\n this.#input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/select.module';\r\nexport * from './lib/select.component';\r\nexport * from './lib/select-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|