@sd-angular/core 0.0.976 → 0.0.977

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.
@@ -205,6 +205,7 @@ class SdSelect {
205
205
  });
206
206
  this.onOpenChange = (isOpened) => {
207
207
  if (isOpened) {
208
+ this.ref.markForCheck();
208
209
  if (this.input) {
209
210
  this.input.value = null;
210
211
  }
@@ -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 { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, 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 @ViewChild('input') input: MatInput;\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 #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 // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? 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\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 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.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 { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, 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 @ViewChild('input') input: MatInput;\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 #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 // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? 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\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 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.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 this.ref.markForCheck();\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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"}
@@ -31,8 +31,9 @@ interface SdGridMaterialColumnText<T = any> extends SdGridMaterialBaseColumn<T>
31
31
  hidden?: boolean | ((rowData: T) => boolean);
32
32
  disabled?: boolean | ((rowData: T) => boolean);
33
33
  required?: boolean | ((rowData: T) => boolean);
34
- defaultValue?: string;
35
- relatedColumns?: string[];
34
+ minLength?: number;
35
+ maxLength?: number;
36
+ validator?: (rowData: T) => string;
36
37
  };
37
38
  }
38
39
  interface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T> {
@@ -44,8 +45,9 @@ interface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T
44
45
  hidden?: boolean | ((rowData: T) => boolean);
45
46
  disabled?: boolean | ((rowData: T) => boolean);
46
47
  required?: boolean | ((rowData: T) => boolean);
47
- defaultValue?: string;
48
- relatedColumns?: string[];
48
+ minValue?: number;
49
+ maxValue?: number;
50
+ validator?: (rowData: T) => string;
49
51
  };
50
52
  }
51
53
  interface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {
@@ -60,8 +62,6 @@ interface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {
60
62
  hidden?: boolean | ((rowData: T) => boolean);
61
63
  disabled?: boolean | ((rowData: T) => boolean);
62
64
  required?: boolean | ((rowData: T) => boolean);
63
- defaultValue?: boolean;
64
- relatedColumns?: string[];
65
65
  };
66
66
  }
67
67
  interface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T> {
@@ -74,8 +74,6 @@ interface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T>
74
74
  hidden?: boolean | ((rowData: T) => boolean);
75
75
  disabled?: boolean | ((rowData: T) => boolean);
76
76
  required?: boolean | ((rowData: T) => boolean);
77
- defaultValue?: string;
78
- relatedColumns?: string[];
79
77
  };
80
78
  }
81
79
  interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T> {
@@ -93,8 +91,6 @@ interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T
93
91
  hidden?: boolean | ((rowData: T) => boolean);
94
92
  disabled?: boolean | ((rowData: T) => boolean);
95
93
  required?: boolean | ((rowData: T) => boolean);
96
- defaultValue?: string | number | boolean;
97
- relatedColumns?: string[];
98
94
  };
99
95
  }
100
96
  interface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T> {
@@ -108,7 +104,6 @@ interface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T>
108
104
  hidden?: boolean | ((rowData: T) => boolean);
109
105
  disabled?: boolean | ((rowData: T) => boolean);
110
106
  required?: boolean | ((rowData: T) => boolean);
111
- relatedColumns?: string[];
112
107
  };
113
108
  }
114
109
  declare type SdGridMaterialNormalColumn<T> = Exclude<Exclude<SdGridMaterialColumn<T>, SdGridMaterialColumnChildren<T>>, SdGridMaterialColumnChildrenCol<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sd-angular/core",
3
- "version": "0.0.976",
3
+ "version": "0.0.977",
4
4
  "homepage": "https://www.facebook.com/DarkP3ter",
5
5
  "author": {
6
6
  "name": "darkpeter",
index d549dc5..5c442a3 100644
Binary file