@c10t/nice-component-library 0.0.12 → 0.0.15

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.
@@ -18,7 +18,7 @@ import * as i4 from '@angular/material/input';
18
18
  import { MAT_INPUT_VALUE_ACCESSOR, MatInputModule } from '@angular/material/input';
19
19
  import * as i8 from '@angular/flex-layout/flex';
20
20
  import * as i3$1 from 'ngx-toastr';
21
- import { BehaviorSubject, Subject, of, forkJoin, throwError } from 'rxjs';
21
+ import { BehaviorSubject, Subject, of, forkJoin, debounceTime, distinctUntilChanged, filter, tap, switchMap, throwError } from 'rxjs';
22
22
  import * as i5 from '@angular/material/table';
23
23
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
24
24
  import * as i1$4 from '@angular/router';
@@ -46,19 +46,21 @@ import * as i10 from '@angular/cdk/scrolling';
46
46
  import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
47
47
  import * as i9$1 from '@angular/material/select';
48
48
  import { MatSelectModule } from '@angular/material/select';
49
- import * as i3$2 from '@angular/material/card';
49
+ import * as i3$2 from '@angular/material/autocomplete';
50
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
51
+ import * as i7$1 from '@angular/material/progress-spinner';
52
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
53
+ import * as i3$3 from '@angular/material/card';
50
54
  import { MatCardModule } from '@angular/material/card';
51
- import * as i3$3 from '@angular/material/progress-bar';
55
+ import * as i3$4 from '@angular/material/progress-bar';
52
56
  import { MatProgressBarModule } from '@angular/material/progress-bar';
53
- import * as i4$3 from '@angular/material/progress-spinner';
54
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
55
57
  import { NestedTreeControl, FlatTreeControl, CdkTreeModule, CdkTree, CdkTreeNode } from '@angular/cdk/tree';
56
58
  import * as i6$1 from '@angular/material/tree';
57
59
  import { MatTreeNestedDataSource, MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
58
- import * as i4$4 from '@angular/material/radio';
60
+ import * as i4$3 from '@angular/material/radio';
59
61
  import { MatRadioModule } from '@angular/material/radio';
60
62
  import * as i6$2 from '@angular/material/divider';
61
- import * as i4$5 from 'ngx-quill';
63
+ import * as i4$4 from 'ngx-quill';
62
64
  import { QuillModule } from 'ngx-quill';
63
65
  import * as i1$6 from 'jsog-typescript';
64
66
  import { OverlayModule } from '@angular/cdk/overlay';
@@ -76,7 +78,6 @@ import { MatChipsModule } from '@angular/material/chips';
76
78
  import { MatSnackBarModule } from '@angular/material/snack-bar';
77
79
  import { MatTabsModule } from '@angular/material/tabs';
78
80
  import { MatToolbarModule } from '@angular/material/toolbar';
79
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
80
81
  import { MatSortModule } from '@angular/material/sort';
81
82
  import { MatStepperModule } from '@angular/material/stepper';
82
83
  import { ScrollingModule as ScrollingModule$1 } from '@angular/cdk-experimental/scrolling';
@@ -154,6 +155,7 @@ var ColumnTypeEnum;
154
155
  ColumnTypeEnum["INPUT"] = "INPUT";
155
156
  ColumnTypeEnum["LINK"] = "LINK";
156
157
  ColumnTypeEnum["STYLE_CSS"] = "STYLE_CSS";
158
+ ColumnTypeEnum["LIVE_SEARCHING"] = "LIVE_SEARCHING";
157
159
  })(ColumnTypeEnum || (ColumnTypeEnum = {}));
158
160
 
159
161
  var AlignEnum;
@@ -196,6 +198,10 @@ class ColumnModel {
196
198
  footer;
197
199
  footers = [];
198
200
  button;
201
+ // Dùng cho cva-live-searching
202
+ displayKey;
203
+ mappingConfig = {};
204
+ searchFn;
199
205
  title = (e) => `${e}`;
200
206
  cell = (e) => `${e}`;
201
207
  }
@@ -238,6 +244,15 @@ class OAuth2AuthenticationDto {
238
244
  userAuthentication = null;
239
245
  authorities = null;
240
246
  name = null;
247
+ orgId = null;
248
+ orgCode = null;
249
+ orgName = null;
250
+ orgType = null;
251
+ orgForm = null;
252
+ orgPath = null;
253
+ orgIsApproveVo = null;
254
+ sapId = null;
255
+ voAuthentication = null;
241
256
  }
242
257
 
243
258
  class Authority {
@@ -1611,6 +1626,13 @@ class ValidatorService {
1611
1626
  }
1612
1627
  return validationFns;
1613
1628
  }
1629
+ static generateNsAutocompleteValidators(conditions) {
1630
+ const validationFns = [];
1631
+ if (conditions.required) {
1632
+ validationFns.push(Validators.required);
1633
+ }
1634
+ return validationFns;
1635
+ }
1614
1636
  static getMinMaxDynamic(minOrMax) {
1615
1637
  return minOrMax !== null ? typeof (minOrMax) === 'function' ? minOrMax() : minOrMax : null;
1616
1638
  }
@@ -3939,19 +3961,13 @@ class CvaMultiSelectAutocomplete {
3939
3961
  valueOptionRef = [];
3940
3962
  // Chỉ bằng false khi trong NsSmartTable thôi nhé @@
3941
3963
  isFormControl = true;
3964
+ searchInputRef;
3942
3965
  // Cái này là để gắn khi nó là FormControl trong 1 FormGroup
3943
3966
  formControl;
3944
3967
  filteredOptions = [];
3945
3968
  selectAllChecked = false;
3946
- _displayString = '';
3947
- get displayString() {
3948
- return this._displayString;
3949
- }
3950
3969
  labelCount = 1;
3951
3970
  cdkVirtualScrollViewPort;
3952
- get NsValidator() {
3953
- return ValidatorService;
3954
- }
3955
3971
  constructor(translateService, injector, ngControl) {
3956
3972
  this.translateService = translateService;
3957
3973
  this.injector = injector;
@@ -3959,6 +3975,19 @@ class CvaMultiSelectAutocomplete {
3959
3975
  ngControl.valueAccessor = this;
3960
3976
  }
3961
3977
  }
3978
+ _displayString = '';
3979
+ get displayString() {
3980
+ return this._displayString;
3981
+ }
3982
+ get NsValidator() {
3983
+ return ValidatorService;
3984
+ }
3985
+ get selectedValue() {
3986
+ return this.value;
3987
+ }
3988
+ set selectedValue(val) {
3989
+ // this.writeValue(val); // Đọc comment bên dưới matSelectionChange
3990
+ }
3962
3991
  ngOnInit() {
3963
3992
  this.callValidator();
3964
3993
  }
@@ -3988,27 +4017,8 @@ class CvaMultiSelectAutocomplete {
3988
4017
  this.formControl.setValue(this.value);
3989
4018
  }
3990
4019
  this.formControl.updateValueAndValidity();
3991
- // const ngControl = this.injector.get(NgControl);
3992
- // if (ngControl && ngControl.control && this.formControl.errors) {
3993
- // ngControl.control.setErrors(this.formControl.errors);
3994
- // }
3995
- // if (this.formControl.valid) {
3996
- // if (this.getRequired()) {
3997
- // if (this.value === undefined || this.value === null || this.value === '' || (this.multiple && this.value.length === 0)){
3998
- // this.formControl.setErrors({required: true});
3999
- // }
4000
- // }
4001
- //
4002
- // this.formControl.markAllAsTouched();
4003
- // }
4004
4020
  }
4005
4021
  }
4006
- get selectedValue() {
4007
- return this.value;
4008
- }
4009
- set selectedValue(val) {
4010
- // this.writeValue(val); // Đọc comment bên dưới matSelectionChange
4011
- }
4012
4022
  propagateChange = (_) => {
4013
4023
  /*NON-EMPTY FOR COMPILE*/
4014
4024
  };
@@ -4034,16 +4044,7 @@ class CvaMultiSelectAutocomplete {
4034
4044
  this.selectedOptionDataChange.emit(this.valueOptionRef);
4035
4045
  }
4036
4046
  this._displayString = this.onDisplayString();
4037
- // console.log(this._displayString);
4038
- }
4039
- // private emitSelectedData(val: MatSelectChange) {
4040
- // if (val.value != null && val.value != undefined) {
4041
- // const dataArr: SelectModel[] = val.source._selectionModel.selected.map(matOption => {
4042
- // return this.options[Number(matOption._getHostElement().getAttribute('data-optionIndex'))];
4043
- // });
4044
- // this.selectedOptionDataChange.emit(dataArr);
4045
- // }
4046
- // }
4047
+ }
4047
4048
  registerOnChange(fn) {
4048
4049
  this.propagateChange = fn;
4049
4050
  }
@@ -4055,13 +4056,9 @@ class CvaMultiSelectAutocomplete {
4055
4056
  this.options = simpleChanges.options.currentValue;
4056
4057
  this.filteredOptions = this.options;
4057
4058
  }
4058
- // console.log('CvaMultiSelectAutocomplete - ngOnChanges: ', this.value, this.options);
4059
- if (this.value != null && this.value != undefined) {
4059
+ if (this.value != null) {
4060
4060
  this.writeValue(this.value);
4061
4061
  }
4062
- // else if (this.formControl.value) {
4063
- // this.writeValue(this.formControl.value);
4064
- // }
4065
4062
  }
4066
4063
  toggleSelectAll(val) {
4067
4064
  if (val.checked) {
@@ -4204,9 +4201,16 @@ class CvaMultiSelectAutocomplete {
4204
4201
  }
4205
4202
  }
4206
4203
  openChange($event) {
4207
- if ($event && this.cdkVirtualScrollViewPort) {
4208
- this.cdkVirtualScrollViewPort.scrollToIndex(0);
4209
- this.cdkVirtualScrollViewPort.checkViewportSize();
4204
+ if ($event) {
4205
+ if (this.cdkVirtualScrollViewPort) {
4206
+ this.cdkVirtualScrollViewPort.scrollToIndex(0);
4207
+ this.cdkVirtualScrollViewPort.checkViewportSize();
4208
+ }
4209
+ setTimeout(() => {
4210
+ if (this.searchInputRef?.nativeElement) {
4211
+ this.searchInputRef.nativeElement.focus();
4212
+ }
4213
+ }, 300);
4210
4214
  }
4211
4215
  }
4212
4216
  getItemSize() {
@@ -4218,7 +4222,7 @@ class CvaMultiSelectAutocomplete {
4218
4222
  return height > 200 ? 200 : height;
4219
4223
  }
4220
4224
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaMultiSelectAutocomplete, deps: [{ token: i1.TranslateService }, { token: i0.Injector }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4221
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: CvaMultiSelectAutocomplete, isStandalone: false, selector: "cva-multi-select-autocomplete", inputs: { placeholder: "placeholder", label: "label", hint: "hint", value: "value", options: "options", disabled: "disabled", errorMessages: "errorMessages", multiple: "multiple", required: "required", isTree: "isTree", treeSymbol: "treeSymbol", sizeOfItemsInListByPixels: "sizeOfItemsInListByPixels", isLabelOutside: "isLabelOutside", isFloatLabel: "isFloatLabel", percentOfLabelOutside: "percentOfLabelOutside", isFormControl: "isFormControl" }, outputs: { selectionChange: "selectionChange", selectedOptionDataChange: "selectedOptionDataChange" }, viewQueries: [{ propertyName: "cdkVirtualScrollViewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
4225
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: CvaMultiSelectAutocomplete, isStandalone: false, selector: "cva-multi-select-autocomplete", inputs: { placeholder: "placeholder", label: "label", hint: "hint", value: "value", options: "options", disabled: "disabled", errorMessages: "errorMessages", multiple: "multiple", required: "required", isTree: "isTree", treeSymbol: "treeSymbol", sizeOfItemsInListByPixels: "sizeOfItemsInListByPixels", isLabelOutside: "isLabelOutside", isFloatLabel: "isFloatLabel", percentOfLabelOutside: "percentOfLabelOutside", isFormControl: "isFormControl" }, outputs: { selectionChange: "selectionChange", selectedOptionDataChange: "selectedOptionDataChange" }, viewQueries: [{ propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "cdkVirtualScrollViewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
4222
4226
  <!-- css labelOutside trong base.theme-->
4223
4227
  <div class="cva-multi-select-autocomplete"
4224
4228
  [ngClass]="{'labelOutside': !!isLabelOutside, 'float_label': !!isFloatLabel && !isLabelOutside}"
@@ -4425,11 +4429,319 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
4425
4429
  type: Output
4426
4430
  }], isFormControl: [{
4427
4431
  type: Input
4432
+ }], searchInputRef: [{
4433
+ type: ViewChild,
4434
+ args: ['searchInput']
4428
4435
  }], cdkVirtualScrollViewPort: [{
4429
4436
  type: ViewChild,
4430
4437
  args: [CdkVirtualScrollViewport, { static: false }]
4431
4438
  }] } });
4432
4439
 
4440
+ class CvaLiveSearchingComponent {
4441
+ injector;
4442
+ label = '';
4443
+ placeholder = '';
4444
+ hint = '';
4445
+ required = false;
4446
+ disabled = false;
4447
+ readonly = false;
4448
+ errorMessages = new Map();
4449
+ isLabelOutside = false;
4450
+ isFloatLabel = true;
4451
+ percentOfLabelOutside = 25;
4452
+ suffixFontAwesomeClass = '';
4453
+ displayKey = '';
4454
+ mappingConfig = {};
4455
+ searchFn;
4456
+ onChange = new EventEmitter();
4457
+ // Chỉ bằng false khi trong NsSmartTable thôi nhé @@
4458
+ isFormControl = true;
4459
+ row;
4460
+ columnDef;
4461
+ control = undefined;
4462
+ textControl = new FormControl('');
4463
+ filteredOptions = [];
4464
+ selected;
4465
+ loading = false;
4466
+ searchSub;
4467
+ constructor(injector, ngControl) {
4468
+ this.injector = injector;
4469
+ if (ngControl) {
4470
+ // Hành động này thay cho provide: NG_VALUE_ACCESSOR và gắn ControlValueAccessor này vào parent FormControl
4471
+ ngControl.valueAccessor = this;
4472
+ }
4473
+ }
4474
+ get NsValidator() {
4475
+ return ValidatorService;
4476
+ }
4477
+ ngOnInit() {
4478
+ this.callValidator();
4479
+ this.textValueChangeSubscribe();
4480
+ if (!this.isFormControl && !!this.searchFn && this.row && this.columnDef) {
4481
+ this.writeValue(this.row[this.columnDef]);
4482
+ }
4483
+ }
4484
+ callValidator() {
4485
+ const ngControl = this.injector.get(NgControl);
4486
+ // Nếu parent FormControl khởi tạo xong và formControl chưa có giá trị lưu
4487
+ if (ngControl && !this.control) {
4488
+ // Nếu là NsSmartTable thì phải tự new FormControl còn không thì cứ hóng parent FormControl về ^^
4489
+ if (this.isFormControl) {
4490
+ this.control = ngControl.control ? ngControl.control : undefined;
4491
+ }
4492
+ else {
4493
+ this.control = new FormControl();
4494
+ }
4495
+ // Hành động này gắn validator vào this.formControl
4496
+ // - Nếu this.formControl là parent FormControl thì sẽ show error lên FormGroup
4497
+ // - Nếu this.formControl là new FormControl thì sẽ quét QueryList để check {errors}
4498
+ if (this.control) {
4499
+ if (this.control.validator) {
4500
+ this.control.setValidators([...ValidatorService.generateNsAutocompleteValidators({
4501
+ required: this.required,
4502
+ }), this.control.validator]);
4503
+ }
4504
+ else {
4505
+ this.control.setValidators([...ValidatorService.generateNsAutocompleteValidators({
4506
+ required: this.required,
4507
+ })]);
4508
+ }
4509
+ }
4510
+ }
4511
+ if (this.control) {
4512
+ // Nếu this.formControl thuộc NsSmartTable thì setValue lại
4513
+ if (!this.isFormControl) {
4514
+ this.control.setValue(this.selected);
4515
+ }
4516
+ // Nếu là parent FormControl rồi thì kệ
4517
+ this.control.updateValueAndValidity();
4518
+ }
4519
+ }
4520
+ propagateChange = (_) => {
4521
+ /*NON-EMPTY FOR COMPILE*/
4522
+ };
4523
+ /**
4524
+ * Set the function to be called
4525
+ * when the formControl receives a change event.
4526
+ */
4527
+ registerOnChange(fn) {
4528
+ this.propagateChange = fn;
4529
+ }
4530
+ /**
4531
+ * Set the function to be called
4532
+ * when the formControl receives a touch event.
4533
+ */
4534
+ registerOnTouched() {
4535
+ /*NON-EMPTY FOR COMPILE*/
4536
+ }
4537
+ /**
4538
+ * Write a new value to the element.
4539
+ */
4540
+ writeValue(obj) {
4541
+ if (!obj || typeof obj !== 'string') {
4542
+ this.selected = {};
4543
+ this.textControl.setValue('', { emitEvent: false });
4544
+ this.updateRowOrFormGroup();
4545
+ return;
4546
+ }
4547
+ const matched = this.filteredOptions.find(opt => {
4548
+ return JSON.stringify(opt[this.displayKey] ?? '') === JSON.stringify(obj ?? '');
4549
+ });
4550
+ if (!matched) {
4551
+ if (!this.searchFn) {
4552
+ return;
4553
+ }
4554
+ // Khi textValueChange chưa chạy không tìm thấy
4555
+ this.searchFn(obj).subscribe(values => {
4556
+ if (values && values.length > 0) {
4557
+ const emptyObj = {};
4558
+ emptyObj[this.displayKey] = '';
4559
+ this.filteredOptions = [emptyObj, ...values];
4560
+ this.onOptionSelect(obj);
4561
+ }
4562
+ });
4563
+ return;
4564
+ }
4565
+ this.selected = matched;
4566
+ this.textControl.setValue(matched[this.displayKey], { emitEvent: false });
4567
+ this.updateRowOrFormGroup();
4568
+ }
4569
+ onOptionSelect(displayValue) {
4570
+ this.searchSub?.unsubscribe();
4571
+ this.writeValue(displayValue);
4572
+ setTimeout(() => this.textValueChangeSubscribe(), 100);
4573
+ }
4574
+ textValueChangeSubscribe() {
4575
+ this.searchSub = this.textControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged(), filter(text => typeof text === 'string' && text.trim().length > 0), tap(() => this.loading = true), switchMap((text) => {
4576
+ if (typeof text !== 'string' || !text || !text.trim())
4577
+ return of([]);
4578
+ return this.searchFn ? this.searchFn(text) : of([]);
4579
+ }), tap(() => this.loading = false)).subscribe((data) => {
4580
+ const emptyObj = {};
4581
+ emptyObj[this.displayKey] = '';
4582
+ this.filteredOptions = this.selected
4583
+ ? [this.selected, emptyObj, ...data.filter((x) => x[this.displayKey] !== this.selected[this.displayKey])]
4584
+ : data;
4585
+ });
4586
+ }
4587
+ updateRowOrFormGroup() {
4588
+ if (!this.isFormControl && this.row) {
4589
+ for (const targetKey in this.mappingConfig) {
4590
+ const sourceKey = this.mappingConfig[targetKey];
4591
+ this.row[targetKey] = this.selected[sourceKey];
4592
+ }
4593
+ }
4594
+ if (this.isFormControl && this.control?.parent) {
4595
+ for (const targetKey in this.mappingConfig) {
4596
+ const sourceKey = this.mappingConfig[targetKey];
4597
+ const formControl = this.control.parent.get(targetKey);
4598
+ if (formControl)
4599
+ formControl.setValue(this.selected[sourceKey]);
4600
+ }
4601
+ }
4602
+ this.propagateChange(this.selected[this.displayKey]);
4603
+ this.onChange.emit(this.selected[this.displayKey]);
4604
+ }
4605
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaLiveSearchingComponent, deps: [{ token: i0.Injector }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4606
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: CvaLiveSearchingComponent, isStandalone: false, selector: "cva-live-searching", inputs: { label: "label", placeholder: "placeholder", hint: "hint", required: "required", disabled: "disabled", readonly: "readonly", errorMessages: "errorMessages", isLabelOutside: "isLabelOutside", isFloatLabel: "isFloatLabel", percentOfLabelOutside: "percentOfLabelOutside", suffixFontAwesomeClass: "suffixFontAwesomeClass", displayKey: "displayKey", mappingConfig: "mappingConfig", searchFn: "searchFn", isFormControl: "isFormControl", row: "row", columnDef: "columnDef" }, outputs: { onChange: "onChange" }, ngImport: i0, template: `
4607
+ <div class="cva-live-searching"
4608
+ [ngClass]="{'labelOutside': !!isLabelOutside,
4609
+ 'float_label': !!isFloatLabel && !isLabelOutside}"
4610
+ fxLayout="row" fxLayout.lt-sm="row wrap">
4611
+ <mat-label *ngIf="isLabelOutside" class="label_width"
4612
+ fxLayout="column" fxFlex="auto" fxFlex.lt-md="100%">
4613
+ <div class="label">
4614
+ <div>
4615
+ {{ (label ? label : placeholder) | translate }}<span
4616
+ class="required-label-outside">{{ !!required ? '*' : '' }}</span>
4617
+ </div>
4618
+ </div>
4619
+ </mat-label>
4620
+ <mat-form-field appearance="outline" [floatLabel]="!!isFloatLabel ? 'always' : 'auto'"
4621
+ [hideRequiredMarker]="!isFloatLabel"
4622
+ fxLayout="column" fxFlex="auto" fxFlex.lt-md="100%">
4623
+ <mat-label *ngIf="!isLabelOutside && !!isFloatLabel">
4624
+ {{ (label ? label : placeholder) | translate }}
4625
+ </mat-label>
4626
+ <input type="text"
4627
+ matInput
4628
+ [required]="required"
4629
+ [disabled]="disabled"
4630
+ [placeholder]="placeholder"
4631
+ [formControl]="textControl"
4632
+ [matAutocomplete]="auto"
4633
+ readonly="{{readonly}}" />
4634
+ <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption
4635
+ (optionSelected)="onOptionSelect($event.option.value)">
4636
+ <mat-option *ngIf="loading" class="loading-option">
4637
+ <mat-spinner diameter="20"></mat-spinner>
4638
+ </mat-option>
4639
+ <mat-option *ngFor="let option of filteredOptions" [value]="option[displayKey]">
4640
+ {{ option[displayKey] }}
4641
+ </mat-option>
4642
+ </mat-autocomplete>
4643
+ <i *ngIf="!!suffixFontAwesomeClass" class="input-suffix {{suffixFontAwesomeClass}}" matSuffix></i>
4644
+ <mat-hint align="start" *ngIf="!NsValidator.invalid(control)">{{ hint | translate }}</mat-hint>
4645
+ <mat-hint style="color: red" align="start" *ngIf="NsValidator.invalid(control)">
4646
+ {{ NsValidator.getErrorMessageV1(control, errorMessages).msg | translate: NsValidator.getErrorMessageV1(control, errorMessages).params }}
4647
+ </mat-hint>
4648
+ </mat-form-field>
4649
+ </div>
4650
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
4651
+ }
4652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaLiveSearchingComponent, decorators: [{
4653
+ type: Component,
4654
+ args: [{
4655
+ selector: 'cva-live-searching',
4656
+ standalone: false,
4657
+ template: `
4658
+ <div class="cva-live-searching"
4659
+ [ngClass]="{'labelOutside': !!isLabelOutside,
4660
+ 'float_label': !!isFloatLabel && !isLabelOutside}"
4661
+ fxLayout="row" fxLayout.lt-sm="row wrap">
4662
+ <mat-label *ngIf="isLabelOutside" class="label_width"
4663
+ fxLayout="column" fxFlex="auto" fxFlex.lt-md="100%">
4664
+ <div class="label">
4665
+ <div>
4666
+ {{ (label ? label : placeholder) | translate }}<span
4667
+ class="required-label-outside">{{ !!required ? '*' : '' }}</span>
4668
+ </div>
4669
+ </div>
4670
+ </mat-label>
4671
+ <mat-form-field appearance="outline" [floatLabel]="!!isFloatLabel ? 'always' : 'auto'"
4672
+ [hideRequiredMarker]="!isFloatLabel"
4673
+ fxLayout="column" fxFlex="auto" fxFlex.lt-md="100%">
4674
+ <mat-label *ngIf="!isLabelOutside && !!isFloatLabel">
4675
+ {{ (label ? label : placeholder) | translate }}
4676
+ </mat-label>
4677
+ <input type="text"
4678
+ matInput
4679
+ [required]="required"
4680
+ [disabled]="disabled"
4681
+ [placeholder]="placeholder"
4682
+ [formControl]="textControl"
4683
+ [matAutocomplete]="auto"
4684
+ readonly="{{readonly}}" />
4685
+ <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption
4686
+ (optionSelected)="onOptionSelect($event.option.value)">
4687
+ <mat-option *ngIf="loading" class="loading-option">
4688
+ <mat-spinner diameter="20"></mat-spinner>
4689
+ </mat-option>
4690
+ <mat-option *ngFor="let option of filteredOptions" [value]="option[displayKey]">
4691
+ {{ option[displayKey] }}
4692
+ </mat-option>
4693
+ </mat-autocomplete>
4694
+ <i *ngIf="!!suffixFontAwesomeClass" class="input-suffix {{suffixFontAwesomeClass}}" matSuffix></i>
4695
+ <mat-hint align="start" *ngIf="!NsValidator.invalid(control)">{{ hint | translate }}</mat-hint>
4696
+ <mat-hint style="color: red" align="start" *ngIf="NsValidator.invalid(control)">
4697
+ {{ NsValidator.getErrorMessageV1(control, errorMessages).msg | translate: NsValidator.getErrorMessageV1(control, errorMessages).params }}
4698
+ </mat-hint>
4699
+ </mat-form-field>
4700
+ </div>
4701
+ `,
4702
+ }]
4703
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1$2.NgControl, decorators: [{
4704
+ type: Self
4705
+ }, {
4706
+ type: Optional
4707
+ }] }], propDecorators: { label: [{
4708
+ type: Input
4709
+ }], placeholder: [{
4710
+ type: Input
4711
+ }], hint: [{
4712
+ type: Input
4713
+ }], required: [{
4714
+ type: Input
4715
+ }], disabled: [{
4716
+ type: Input
4717
+ }], readonly: [{
4718
+ type: Input
4719
+ }], errorMessages: [{
4720
+ type: Input
4721
+ }], isLabelOutside: [{
4722
+ type: Input
4723
+ }], isFloatLabel: [{
4724
+ type: Input
4725
+ }], percentOfLabelOutside: [{
4726
+ type: Input
4727
+ }], suffixFontAwesomeClass: [{
4728
+ type: Input
4729
+ }], displayKey: [{
4730
+ type: Input
4731
+ }], mappingConfig: [{
4732
+ type: Input
4733
+ }], searchFn: [{
4734
+ type: Input
4735
+ }], onChange: [{
4736
+ type: Output
4737
+ }], isFormControl: [{
4738
+ type: Input
4739
+ }], row: [{
4740
+ type: Input
4741
+ }], columnDef: [{
4742
+ type: Input
4743
+ }] } });
4744
+
4433
4745
  class CvaSmartTableComponent {
4434
4746
  ref;
4435
4747
  config;
@@ -4840,6 +5152,15 @@ class CvaSmartTableComponent {
4840
5152
  (change)="toggleSelect($event,result, column)">
4841
5153
  </mat-checkbox>
4842
5154
  </div>
5155
+ <cva-live-searching *ngSwitchCase="ColumnTypes.LIVE_SEARCHING"
5156
+ [isFormControl]="false" [required]="getRequired(column)"
5157
+ [row]="result" [columnDef]="column.columnDef"
5158
+ [searchFn]="column.searchFn"
5159
+ [mappingConfig]="column.mappingConfig"
5160
+ [displayKey]="column.displayKey"
5161
+ [errorMessages]="getErrorMessageMap(column)"
5162
+ (onChange)="onCellValueChange(result, column, $event)">
5163
+ </cva-live-searching>
4843
5164
  </td>
4844
5165
  </ng-container>
4845
5166
  </ng-container>
@@ -4920,7 +5241,7 @@ class CvaSmartTableComponent {
4920
5241
  </ng-container>
4921
5242
  </table>
4922
5243
  </div>
4923
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i5.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i5.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1$4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: CvaInputComponent, selector: "cva-input", inputs: ["label", "name", "placeholder", "hint", "required", "disabled", "text", "type", "pattern", "readonly", "errorMessages", "multiline", "isLabelOutside", "isFloatLabel", "minLength", "maxLength", "maxLengthDisplay", "percentOfLabelOutside", "suffixFontAwesomeClass", "patternFilter", "isFormControl", "formatFunc"], outputs: ["onChange"] }, { kind: "component", type: CvaCounterInputComponent, selector: "cva-counter-input", inputs: ["label", "placeholder", "suffixText", "hint", "value", "disabled", "required", "errorMessages", "min", "max", "error", "isDecimal", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "alignNumber", "isFormControl"], outputs: ["onChange", "onEnter"] }, { kind: "component", type: CvaDatePickerComponent, selector: "cva-date-picker", inputs: ["label", "placeholder", "value", "disabled", "required", "minDate", "maxDate", "errorMessages", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "isFormControl"], outputs: ["onChange"] }, { kind: "component", type: CvaMultiSelectAutocomplete, selector: "cva-multi-select-autocomplete", inputs: ["placeholder", "label", "hint", "value", "options", "disabled", "errorMessages", "multiple", "required", "isTree", "treeSymbol", "sizeOfItemsInListByPixels", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "isFormControl"], outputs: ["selectionChange", "selectedOptionDataChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SecureImgPipe, name: "secure" }] });
5244
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i5.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i5.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1$4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: CvaInputComponent, selector: "cva-input", inputs: ["label", "name", "placeholder", "hint", "required", "disabled", "text", "type", "pattern", "readonly", "errorMessages", "multiline", "isLabelOutside", "isFloatLabel", "minLength", "maxLength", "maxLengthDisplay", "percentOfLabelOutside", "suffixFontAwesomeClass", "patternFilter", "isFormControl", "formatFunc"], outputs: ["onChange"] }, { kind: "component", type: CvaCounterInputComponent, selector: "cva-counter-input", inputs: ["label", "placeholder", "suffixText", "hint", "value", "disabled", "required", "errorMessages", "min", "max", "error", "isDecimal", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "alignNumber", "isFormControl"], outputs: ["onChange", "onEnter"] }, { kind: "component", type: CvaDatePickerComponent, selector: "cva-date-picker", inputs: ["label", "placeholder", "value", "disabled", "required", "minDate", "maxDate", "errorMessages", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "isFormControl"], outputs: ["onChange"] }, { kind: "component", type: CvaMultiSelectAutocomplete, selector: "cva-multi-select-autocomplete", inputs: ["placeholder", "label", "hint", "value", "options", "disabled", "errorMessages", "multiple", "required", "isTree", "treeSymbol", "sizeOfItemsInListByPixels", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "isFormControl"], outputs: ["selectionChange", "selectedOptionDataChange"] }, { kind: "component", type: CvaLiveSearchingComponent, selector: "cva-live-searching", inputs: ["label", "placeholder", "hint", "required", "disabled", "readonly", "errorMessages", "isLabelOutside", "isFloatLabel", "percentOfLabelOutside", "suffixFontAwesomeClass", "displayKey", "mappingConfig", "searchFn", "isFormControl", "row", "columnDef"], outputs: ["onChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SecureImgPipe, name: "secure" }] });
4924
5245
  }
4925
5246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaSmartTableComponent, decorators: [{
4926
5247
  type: Component,
@@ -5062,6 +5383,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
5062
5383
  (change)="toggleSelect($event,result, column)">
5063
5384
  </mat-checkbox>
5064
5385
  </div>
5386
+ <cva-live-searching *ngSwitchCase="ColumnTypes.LIVE_SEARCHING"
5387
+ [isFormControl]="false" [required]="getRequired(column)"
5388
+ [row]="result" [columnDef]="column.columnDef"
5389
+ [searchFn]="column.searchFn"
5390
+ [mappingConfig]="column.mappingConfig"
5391
+ [displayKey]="column.displayKey"
5392
+ [errorMessages]="getErrorMessageMap(column)"
5393
+ (onChange)="onCellValueChange(result, column, $event)">
5394
+ </cva-live-searching>
5065
5395
  </td>
5066
5396
  </ng-container>
5067
5397
  </ng-container>
@@ -5791,7 +6121,7 @@ class CvaMultiUploadComponent {
5791
6121
  <mat-error *ngIf="typeError!==null">{{ typeError + ' ' + ('common.is.not-accept' | translate) }}</mat-error>
5792
6122
  </div>
5793
6123
  </div>
5794
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$2.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: DragDropDirective, selector: "[appDragDrop]", outputs: ["onFileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
6124
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$3.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: DragDropDirective, selector: "[appDragDrop]", outputs: ["onFileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
5795
6125
  }
5796
6126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaMultiUploadComponent, decorators: [{
5797
6127
  type: Component,
@@ -6209,7 +6539,7 @@ class CvaUploadFileComponent {
6209
6539
  <mat-error *ngIf="isRectangleError">{{ ('common.error.image.rectangle' | translate) }}</mat-error>
6210
6540
  </div>
6211
6541
  </div>
6212
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$2.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: DragDropDirective, selector: "[appDragDrop]", outputs: ["onFileDropped"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SecureImgPipe, name: "secure" }] });
6542
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$3.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: DragDropDirective, selector: "[appDragDrop]", outputs: ["onFileDropped"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SecureImgPipe, name: "secure" }] });
6213
6543
  }
6214
6544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaUploadFileComponent, decorators: [{
6215
6545
  type: Component,
@@ -6520,7 +6850,7 @@ class CvaLoaderComponent {
6520
6850
  </div>
6521
6851
  <img *ngIf="!!imgSrc" [src]="imgSrc" alt=""/>
6522
6852
  </div>
6523
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i4$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
6853
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
6524
6854
  }
6525
6855
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaLoaderComponent, decorators: [{
6526
6856
  type: Component,
@@ -6985,7 +7315,7 @@ class CvaRadiobuttonComponent {
6985
7315
  <mat-hint align="start" *ngIf="NsValidator.invalid(control)">{{NsValidator.getErrorMessage(control, errorMessages) | translate}}</mat-hint>
6986
7316
  </div>
6987
7317
  </div>
6988
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
7318
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
6989
7319
  }
6990
7320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaRadiobuttonComponent, decorators: [{
6991
7321
  type: Component,
@@ -7381,6 +7711,7 @@ class CvaFlatTreeComponent {
7381
7711
  isFormControl = true;
7382
7712
  // Cái này là để gắn khi nó là FormControl trong 1 FormGroup
7383
7713
  formControl;
7714
+ mapIndexes = new Map();
7384
7715
  chooseVirtualScroll;
7385
7716
  selectedVirtualScroll;
7386
7717
  constructor(translateService, injector, cdr, ngControl) {
@@ -7425,9 +7756,6 @@ class CvaFlatTreeComponent {
7425
7756
  ngAfterViewInit() {
7426
7757
  // this.onChangeSearchText();
7427
7758
  }
7428
- trackByValue(index, node) {
7429
- return node.value;
7430
- }
7431
7759
  getDisplayInputFunc(node) {
7432
7760
  return typeof (node._displayFuncInput) === 'function' ? node._displayFuncInput(node) : !!node._displayFuncInput;
7433
7761
  }
@@ -7550,17 +7878,31 @@ class CvaFlatTreeComponent {
7550
7878
  this.propagateChange(fn);
7551
7879
  }
7552
7880
  writeValue(obj) {
7881
+ // if (this.multiple && !obj) {
7882
+ // obj = [];
7883
+ // }
7553
7884
  if (obj) {
7885
+ // if (this.multiple) {
7554
7886
  this.value = obj;
7887
+ // }
7888
+ console.log('writeValue_0: ', new Date());
7889
+ this.mapIndexes = new Map();
7890
+ for (let i = 0; i < this.fullDataTreeControl.dataNodes.length; i++) {
7891
+ this.mapIndexes.set(this.fullDataTreeControl.dataNodes[i].value, i);
7892
+ }
7893
+ console.log('writeValue_1: ', new Date());
7555
7894
  this.checkedDefaultValue();
7895
+ console.log('writeValue_2: ', new Date());
7556
7896
  this.updateSelectAll();
7897
+ console.log('writeValue_3: ', new Date());
7557
7898
  this.updateSelectedTree();
7899
+ console.log('writeValue_4: ', new Date());
7558
7900
  this.propagateChange(this.value);
7559
7901
  this.callValidator();
7560
7902
  if (this.isView) {
7561
- requestAnimationFrame(() => this.selectedTreeControl.expandAll());
7903
+ this.selectedTreeControl.expandAll();
7562
7904
  }
7563
- this.cdr.detectChanges();
7905
+ console.log('writeValue_5: ', new Date());
7564
7906
  this.selectionChange.emit(Array.from(this.valueObjRef.values()));
7565
7907
  }
7566
7908
  }
@@ -7571,42 +7913,22 @@ class CvaFlatTreeComponent {
7571
7913
  this.expandTreeDataSource(this.selectedTreeControl, 'isExpanded');
7572
7914
  }
7573
7915
  checkedDefaultValue() {
7574
- const selectedSet = new Set(this.value);
7575
- const selectedNodes = [];
7916
+ this.valueObjRef.clear();
7917
+ const valueSet = new Set(this.value);
7576
7918
  for (const node of this.fullDataTreeControl.dataNodes) {
7577
7919
  const isLeaf = !FlatTreeService.hasChild(node);
7578
- node.checked = selectedSet.has(node.value);
7920
+ node.checked = isLeaf && valueSet.has(node.value);
7579
7921
  if (isLeaf && node.checked) {
7580
7922
  this.valueObjRef.set(node.value, node);
7581
- selectedNodes.push(node);
7582
7923
  }
7583
- else if (isLeaf && !node.checked && this.valueObjRef.has(node.value)) {
7584
- this.valueObjRef.delete(node.value);
7585
- }
7586
- }
7587
- this.bulkSelectedTreeChange(selectedNodes);
7588
- }
7589
- bulkSelectedTreeChange(nodes) {
7590
- const selectedRoot = new Set();
7591
- for (const node of nodes) {
7592
- if (node.level < 1) {
7593
- this.selectedFullValues.set(node.value, node.value);
7594
- this.selectedTreeControl.expandDescendants(node);
7595
- }
7596
- else {
7597
- const rootNode = this.getRootNode(node);
7598
- if (rootNode && !selectedRoot.has(rootNode.value)) {
7599
- this.selectedFullValues.set(rootNode.value, rootNode.value);
7600
- if (rootNode.checked) {
7601
- this.selectedTreeControl.expandDescendants(rootNode);
7602
- }
7603
- selectedRoot.add(rootNode.value);
7604
- }
7924
+ const orgNodeIndex = this.mapIndexes.get(node.value);
7925
+ if (orgNodeIndex !== undefined) {
7926
+ this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = node.checked;
7605
7927
  }
7606
7928
  }
7607
7929
  }
7608
7930
  getAllChildNode(treeControl, node) {
7609
- const index = treeControl.dataNodes.findIndex(n => node.value === n.value);
7931
+ const index = this.mapIndexes.get(node.value);
7610
7932
  let sameLevelNextIndex = -1;
7611
7933
  for (let i = index + 1; i < treeControl.dataNodes.length; i++) {
7612
7934
  if (node.level >= treeControl.dataNodes[i].level) {
@@ -7631,7 +7953,7 @@ class CvaFlatTreeComponent {
7631
7953
  node.checked = checked;
7632
7954
  let indexLeaf = -1;
7633
7955
  // update origin node
7634
- let orgNodeIndex = this.fullDataTreeControl.dataNodes.findIndex(n => n.value === node.value);
7956
+ let orgNodeIndex = this.mapIndexes.get(node.value);
7635
7957
  /*this.getNodeInFullDataSource(child)*/
7636
7958
  this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = checked;
7637
7959
  if (orgNodeIndex > -1 && !checked) {
@@ -7658,7 +7980,7 @@ class CvaFlatTreeComponent {
7658
7980
  }
7659
7981
  }
7660
7982
  else {
7661
- orgNodeIndex = this.fullDataTreeControl.dataNodes.findIndex(n => n.value === child.value);
7983
+ orgNodeIndex = this.mapIndexes.get(child.value);
7662
7984
  if (orgNodeIndex > -1) {
7663
7985
  this.fullDataTreeControl.dataNodes[orgNodeIndex].isExpanded = false;
7664
7986
  this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = this.fullDataTreeControl.dataNodes[orgNodeIndex].children?.every(n => n.checked);
@@ -7707,7 +8029,7 @@ class CvaFlatTreeComponent {
7707
8029
  if ((node.display && !this.checkDisabledNode(node)) || !!isSelectedChange) {
7708
8030
  node.checked = checked;
7709
8031
  // update origin node
7710
- const orgNodeIndex = this.fullDataTreeControl.dataNodes.findIndex(n => n.value === node.value);
8032
+ const orgNodeIndex = this.mapIndexes.get(node.value);
7711
8033
  this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = checked;
7712
8034
  if (checked) {
7713
8035
  if (this.multiple) {
@@ -7883,6 +8205,50 @@ class CvaFlatTreeComponent {
7883
8205
  this.checkParentNode(true, node);
7884
8206
  }
7885
8207
  }
8208
+ toggleNodeCheck(node, checked) {
8209
+ const isLeaf = !FlatTreeService.hasChild(node);
8210
+ console.log('1: ', new Date());
8211
+ // Gọi 1 lần duy nhất nếu là parent
8212
+ const descendants = isLeaf ? [] : this.fullDataTreeControl.getDescendants(node);
8213
+ const affectedNodes = isLeaf ? [node] : descendants.filter(n => !FlatTreeService.hasChild(n));
8214
+ console.log('2: ', new Date());
8215
+ for (const leaf of affectedNodes) {
8216
+ if (!leaf.display || this.checkDisabledNode(leaf))
8217
+ continue;
8218
+ const index = this.value.indexOf(leaf.value);
8219
+ if (checked && index < 0) {
8220
+ this.value.push(leaf.value);
8221
+ this.valueObjRef.set(leaf.value, leaf);
8222
+ leaf.checked = true;
8223
+ }
8224
+ if (!checked && index >= 0) {
8225
+ this.value.splice(index, 1);
8226
+ this.valueObjRef.delete(leaf.value);
8227
+ leaf.checked = false;
8228
+ }
8229
+ const orgNodeIndex = this.mapIndexes.get(leaf.value);
8230
+ if (orgNodeIndex !== undefined) {
8231
+ this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = leaf.checked;
8232
+ }
8233
+ }
8234
+ console.log('3: ', new Date());
8235
+ // Nếu node là cha → cập nhật isExpanded
8236
+ if (!isLeaf) {
8237
+ node.checked = checked;
8238
+ const orgNodeIndex = this.mapIndexes.get(node.value);
8239
+ if (orgNodeIndex !== undefined) {
8240
+ this.fullDataTreeControl.dataNodes[orgNodeIndex].checked = checked;
8241
+ this.fullDataTreeControl.dataNodes[orgNodeIndex].isExpanded = false;
8242
+ }
8243
+ }
8244
+ else {
8245
+ node.checked = checked;
8246
+ }
8247
+ console.log('4: ', new Date());
8248
+ this.writeValue(this.value);
8249
+ console.log('5: ', new Date());
8250
+ this.cdr.detectChanges();
8251
+ }
7886
8252
  _getLevel = (node) => node.level;
7887
8253
  _isExpandable = (node) => FlatTreeService.hasChild(node);
7888
8254
  _getChildren = (node) => of(node.children ? node.children : []);
@@ -7925,7 +8291,7 @@ class CvaFlatTreeComponent {
7925
8291
  </div>
7926
8292
  <cdk-virtual-scroll-viewport #chooseAreaScrollViewport itemSize="{{itemSize}}"
7927
8293
  [ngStyle]="{height: viewHeight + 'px'}">
7928
- <ng-container *cdkVirtualFor="let node of dataSource; trackBy: trackByValue">
8294
+ <ng-container *cdkVirtualFor="let node of dataSource">
7929
8295
  <cva-flat-tree-node-left [style.padding-left]="node.level * paddingLeft + 'px'"
7930
8296
  [attr.aria-level]="node.level"
7931
8297
  [treeControl]="treeControl"
@@ -7934,8 +8300,8 @@ class CvaFlatTreeComponent {
7934
8300
  (toggle)="toggleTreeControl(treeControl, node)"
7935
8301
  (onParentNodeClick)="onParentNodeClick(node)"
7936
8302
  (onLeafNodeClick)="onLeafNodeClick(node)"
7937
- (ngModelParentChange)="checkParentNode($event, node)"
7938
- (ngModelLeafChange)="checkLeafNode($event, node)">
8303
+ (ngModelParentChange)="toggleNodeCheck(node, $event)"
8304
+ (ngModelLeafChange)="toggleNodeCheck(node, $event)">
7939
8305
  </cva-flat-tree-node-left>
7940
8306
  </ng-container>
7941
8307
  </cdk-virtual-scroll-viewport>
@@ -7953,7 +8319,7 @@ class CvaFlatTreeComponent {
7953
8319
  <cdk-virtual-scroll-viewport #selectedScrollViewport
7954
8320
  *ngIf="!isCollapseSelected"
7955
8321
  itemSize="{{itemSize}}" [ngStyle]="{height: viewHeight + 'px'}">
7956
- <ng-container *cdkVirtualFor="let node of selectedDataSource; trackBy: trackByValue">
8322
+ <ng-container *cdkVirtualFor="let node of selectedDataSource">
7957
8323
  <cva-flat-tree-node-right [style.padding-left]="node.level * paddingLeft + 'px'"
7958
8324
  [attr.aria-level]="node.level"
7959
8325
  [treeControl]="selectedTreeControl"
@@ -8017,7 +8383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
8017
8383
  </div>
8018
8384
  <cdk-virtual-scroll-viewport #chooseAreaScrollViewport itemSize="{{itemSize}}"
8019
8385
  [ngStyle]="{height: viewHeight + 'px'}">
8020
- <ng-container *cdkVirtualFor="let node of dataSource; trackBy: trackByValue">
8386
+ <ng-container *cdkVirtualFor="let node of dataSource">
8021
8387
  <cva-flat-tree-node-left [style.padding-left]="node.level * paddingLeft + 'px'"
8022
8388
  [attr.aria-level]="node.level"
8023
8389
  [treeControl]="treeControl"
@@ -8026,8 +8392,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
8026
8392
  (toggle)="toggleTreeControl(treeControl, node)"
8027
8393
  (onParentNodeClick)="onParentNodeClick(node)"
8028
8394
  (onLeafNodeClick)="onLeafNodeClick(node)"
8029
- (ngModelParentChange)="checkParentNode($event, node)"
8030
- (ngModelLeafChange)="checkLeafNode($event, node)">
8395
+ (ngModelParentChange)="toggleNodeCheck(node, $event)"
8396
+ (ngModelLeafChange)="toggleNodeCheck(node, $event)">
8031
8397
  </cva-flat-tree-node-left>
8032
8398
  </ng-container>
8033
8399
  </cdk-virtual-scroll-viewport>
@@ -8045,7 +8411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
8045
8411
  <cdk-virtual-scroll-viewport #selectedScrollViewport
8046
8412
  *ngIf="!isCollapseSelected"
8047
8413
  itemSize="{{itemSize}}" [ngStyle]="{height: viewHeight + 'px'}">
8048
- <ng-container *cdkVirtualFor="let node of selectedDataSource; trackBy: trackByValue">
8414
+ <ng-container *cdkVirtualFor="let node of selectedDataSource">
8049
8415
  <cva-flat-tree-node-right [style.padding-left]="node.level * paddingLeft + 'px'"
8050
8416
  [attr.aria-level]="node.level"
8051
8417
  [treeControl]="selectedTreeControl"
@@ -8510,7 +8876,7 @@ class CvaQuillEditorComponent {
8510
8876
  </mat-hint>
8511
8877
  </div>
8512
8878
  </div>
8513
- `, isInline: true, styles: [".cva-quill-editor{margin-bottom:1rem}.cva-quill-editor .required-label-outside{color:red}.cva-quill-editor .ql-container.ql-snow{height:100px;overflow-y:auto}.cva-quill-editor #counter{border:1px solid #ccc;border-width:0px 1px 1px 1px;color:#aaa;padding:5px 15px;text-align:right}.cva-quill-editor quill-editor{margin-bottom:0!important;word-break:break-word}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$5.QuillEditorComponent, selector: "quill-editor" }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i9.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
8879
+ `, isInline: true, styles: [".cva-quill-editor{margin-bottom:1rem}.cva-quill-editor .required-label-outside{color:red}.cva-quill-editor .ql-container.ql-snow{height:100px;overflow-y:auto}.cva-quill-editor #counter{border:1px solid #ccc;border-width:0px 1px 1px 1px;color:#aaa;padding:5px 15px;text-align:right}.cva-quill-editor quill-editor{margin-bottom:0!important;word-break:break-word}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$4.QuillEditorComponent, selector: "quill-editor" }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i9.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
8514
8880
  }
8515
8881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaQuillEditorComponent, decorators: [{
8516
8882
  type: Component,
@@ -8657,14 +9023,14 @@ class LoaderInterceptor {
8657
9023
  this.loaderService.isLoading.next(this.requests.length > 0);
8658
9024
  }
8659
9025
  intercept(request, next) {
8660
- if (!request.headers.get('is_image')) {
9026
+ if (!request.headers.get('is_image') && !request.headers.get('is_live_searching')) {
8661
9027
  this.requests.push(request);
8662
9028
  // console.log('LoaderInterceptor: wait for ' + this.requests.length + 'requests');
8663
9029
  this.loaderService.isLoading.next(true);
8664
9030
  }
8665
9031
  else {
8666
9032
  request = request.clone({
8667
- headers: request.headers.delete('is_image'),
9033
+ headers: request.headers.delete('is_image').delete('is_live_searching'),
8668
9034
  });
8669
9035
  }
8670
9036
  return next.handle(request).pipe(map((event) => {
@@ -8943,10 +9309,11 @@ class NiceComponentLibraryModule {
8943
9309
  CvaDialogImportFileComponent,
8944
9310
  BaseSearchComponent,
8945
9311
  BaseAddEditComponent,
8946
- CvaQuillEditorComponent], imports: [CommonModule,
9312
+ CvaQuillEditorComponent,
9313
+ CvaLiveSearchingComponent], imports: [CommonModule,
8947
9314
  FormsModule,
8948
9315
  ReactiveFormsModule,
8949
- AngularMaterialModule, i1$4.RouterModule, i1.TranslateModule, i4$5.QuillModule, FlexLayoutModule], exports: [CvaTableComponent,
9316
+ AngularMaterialModule, i1$4.RouterModule, i1.TranslateModule, i4$4.QuillModule, FlexLayoutModule], exports: [CvaTableComponent,
8950
9317
  CvaSmartTableComponent,
8951
9318
  CvaInputComponent,
8952
9319
  CvaCounterInputComponent,
@@ -8972,7 +9339,8 @@ class NiceComponentLibraryModule {
8972
9339
  CvaDialogImportFileComponent,
8973
9340
  BaseSearchComponent,
8974
9341
  BaseAddEditComponent,
8975
- CvaQuillEditorComponent] });
9342
+ CvaQuillEditorComponent,
9343
+ CvaLiveSearchingComponent] });
8976
9344
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NiceComponentLibraryModule, imports: [CommonModule,
8977
9345
  FormsModule,
8978
9346
  ReactiveFormsModule,
@@ -9024,6 +9392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
9024
9392
  BaseSearchComponent,
9025
9393
  BaseAddEditComponent,
9026
9394
  CvaQuillEditorComponent,
9395
+ CvaLiveSearchingComponent,
9027
9396
  ],
9028
9397
  exports: [
9029
9398
  CvaTableComponent,
@@ -9053,6 +9422,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
9053
9422
  BaseSearchComponent,
9054
9423
  BaseAddEditComponent,
9055
9424
  CvaQuillEditorComponent,
9425
+ CvaLiveSearchingComponent,
9056
9426
  ],
9057
9427
  schemas: [
9058
9428
  NO_ERRORS_SCHEMA,
@@ -9069,5 +9439,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
9069
9439
  * Generated bundle index. Do not edit.
9070
9440
  */
9071
9441
 
9072
- export { ActionTypeEnum, AlignEnum, ApiService, AuthoritiesResolverService, AuthoritiesService, Authority, BaseAddEditComponent, BaseModel, BaseSearchComponent, BaseStatusEnum, BaseTableComponent, BreadCrumbModel, ButtonClickEvent, ButtonModel, CheckboxModel, ColumnModel, ColumnTypeEnum, CustomDialogDataConfigModel, CvaBreadcrumbComponent, CvaCounterInputComponent, CvaCustomDialogComponent, CvaDatePickerComponent, CvaDialogImportFileComponent, CvaFlatTreeComponent, CvaFlatTreeNodeLeftComponent, CvaFlatTreeNodeRightComponent, CvaInputComponent, CvaLoaderComponent, CvaMultiSelectAutocomplete, CvaMultiUploadComponent, CvaMultiUploadImgComponent, CvaQuillEditorComponent, CvaRadiobuttonComponent, CvaRangeDatePickerComponent, CvaSmartTableComponent, CvaTableComponent, CvaTreeComponent, CvaUploadFileComponent, DateUtilService, DialogImportFileConfigModel, DialogTypeEnum, DragDropDirective, FileTypeEnum, FlatTreeConfigModel, FlatTreeModel, FlatTreeNodeModel, FormStateService, FormatInputDirective, IconTypeEnum, InjectTokenNextSolutionsConfig, JsogHttpInterceptor, LoaderInterceptor, LoaderService, MenuModel, MultiTranslateHttpLoader, NavigatorModel, NiceComponentLibraryModule, OAuth2AuthenticationDto, PatternDirective, PermissionModel, Principal, RangeDatePickerModel, RoleModel, SecureImgPipe, SelectModel, SingletonTranslateService, StylePaginatorDirective, TableFooterModel, TablePagingRequestModel, TablePagingResponseModel, TableService, UIState, UploadModel, UtilsService, ValidatorService };
9442
+ export { ActionTypeEnum, AlignEnum, ApiService, AuthoritiesResolverService, AuthoritiesService, Authority, BaseAddEditComponent, BaseModel, BaseSearchComponent, BaseStatusEnum, BaseTableComponent, BreadCrumbModel, ButtonClickEvent, ButtonModel, CheckboxModel, ColumnModel, ColumnTypeEnum, CustomDialogDataConfigModel, CvaBreadcrumbComponent, CvaCounterInputComponent, CvaCustomDialogComponent, CvaDatePickerComponent, CvaDialogImportFileComponent, CvaFlatTreeComponent, CvaFlatTreeNodeLeftComponent, CvaFlatTreeNodeRightComponent, CvaInputComponent, CvaLiveSearchingComponent, CvaLoaderComponent, CvaMultiSelectAutocomplete, CvaMultiUploadComponent, CvaMultiUploadImgComponent, CvaQuillEditorComponent, CvaRadiobuttonComponent, CvaRangeDatePickerComponent, CvaSmartTableComponent, CvaTableComponent, CvaTreeComponent, CvaUploadFileComponent, DateUtilService, DialogImportFileConfigModel, DialogTypeEnum, DragDropDirective, FileTypeEnum, FlatTreeConfigModel, FlatTreeModel, FlatTreeNodeModel, FormStateService, FormatInputDirective, IconTypeEnum, InjectTokenNextSolutionsConfig, JsogHttpInterceptor, LoaderInterceptor, LoaderService, MenuModel, MultiTranslateHttpLoader, NavigatorModel, NiceComponentLibraryModule, OAuth2AuthenticationDto, PatternDirective, PermissionModel, Principal, RangeDatePickerModel, RoleModel, SecureImgPipe, SelectModel, SingletonTranslateService, StylePaginatorDirective, TableFooterModel, TablePagingRequestModel, TablePagingResponseModel, TableService, UIState, UploadModel, UtilsService, ValidatorService };
9073
9443
  //# sourceMappingURL=c10t-nice-component-library.mjs.map