@acorex/components 3.0.50 → 3.0.54

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.
Files changed (28) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +93 -36
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/calendar/calendar-box/calendar-box.component.js +13 -2
  7. package/esm2015/lib/date-picker/date-picker.component.js +13 -3
  8. package/esm2015/lib/dropdown/dropdown.component.js +7 -2
  9. package/esm2015/lib/menu/menu2.component.js +1 -1
  10. package/esm2015/lib/query-builder/query-builder-rule.component.js +5 -1
  11. package/esm2015/lib/query-builder/query-builder.service.js +4 -4
  12. package/esm2015/lib/selectbox/selectbox.component.js +56 -29
  13. package/esm5/lib/calendar/calendar-box/calendar-box.component.js +13 -2
  14. package/esm5/lib/date-picker/date-picker.component.js +13 -3
  15. package/esm5/lib/dropdown/dropdown.component.js +7 -2
  16. package/esm5/lib/menu/menu2.component.js +1 -1
  17. package/esm5/lib/query-builder/query-builder-rule.component.js +5 -1
  18. package/esm5/lib/query-builder/query-builder.service.js +4 -4
  19. package/esm5/lib/selectbox/selectbox.component.js +56 -29
  20. package/fesm2015/acorex-components.js +93 -36
  21. package/fesm2015/acorex-components.js.map +1 -1
  22. package/fesm5/acorex-components.js +93 -36
  23. package/fesm5/acorex-components.js.map +1 -1
  24. package/lib/calendar/calendar-box/calendar-box.component.d.ts +1 -0
  25. package/lib/date-picker/date-picker.component.d.ts +1 -0
  26. package/lib/dropdown/dropdown.component.d.ts +1 -0
  27. package/lib/selectbox/selectbox.component.d.ts +6 -0
  28. package/package.json +1 -1
@@ -976,6 +976,7 @@ let AXCalendarBoxComponent = class AXCalendarBoxComponent {
976
976
  this.size = 'md';
977
977
  this.selectableHoliday = true;
978
978
  this.dayStyle = [];
979
+ this.dayMinMaxResoan = '';
979
980
  this.showTodayButton = false;
980
981
  this.matrix = [];
981
982
  this.rotated = false;
@@ -1067,7 +1068,13 @@ let AXCalendarBoxComponent = class AXCalendarBoxComponent {
1067
1068
  return this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0]).text;
1068
1069
  }
1069
1070
  else {
1070
- return '';
1071
+ if ((this.min && this.max && date.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1) ||
1072
+ date.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1) {
1073
+ return this.dayMinMaxResoan;
1074
+ }
1075
+ else {
1076
+ return '';
1077
+ }
1071
1078
  }
1072
1079
  }
1073
1080
  ngOnInit() {
@@ -1354,6 +1361,10 @@ __decorate([
1354
1361
  Input(),
1355
1362
  __metadata("design:type", Object)
1356
1363
  ], AXCalendarBoxComponent.prototype, "dayStyle", void 0);
1364
+ __decorate([
1365
+ Input(),
1366
+ __metadata("design:type", Object)
1367
+ ], AXCalendarBoxComponent.prototype, "dayMinMaxResoan", void 0);
1357
1368
  __decorate([
1358
1369
  Input('showTodayButton'),
1359
1370
  __metadata("design:type", Boolean)
@@ -3025,7 +3036,7 @@ AXMenu2Component = AXMenu2Component_1 = __decorate([
3025
3036
  </div>
3026
3037
  `,
3027
3038
  encapsulation: ViewEncapsulation.None,
3028
- styles: [".ax.ax-menu{display:flex}.ax.ax-menu.ax-menu-vertical[data-level=\"0\"]{display:flex;flex-direction:row}.ax.ax-menu.ax-menu-vertical:not([data-level=\"0\"]){display:flex;transition:opacity .3s;min-width:12em;box-shadow:0 1px 7px 0 var(--ax-border-color);background:#fff;flex-direction:column}.ax.ax-menu.ax-menu-vertical .ax-menu-item{display:flex;white-space:nowrap;cursor:pointer;padding:0 10px;font-weight:400;font-size:1rem;line-height:40px;text-decoration:none;align-items:center}.ax.ax-menu.ax-menu-vertical .ax-menu-item .icon:first-child{-webkit-margin-end:var(--ax-size-md);margin-inline-end:var(--ax-size-md)}.ax.ax-menu.ax-menu-vertical .ax-menu-item .icon:last-child{-webkit-margin-start:var(--ax-size-md);margin-inline-start:var(--ax-size-md)}.ax.ax-menu.ax-menu-vertical .ax-menu-item span{flex:1}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled{color:var(--ax-gray-color)!important;background-color:var(--ax-gray-trans-light-color)!important;cursor:not-allowed!important}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled .icon{color:var(--ax-gray-dark-color)!important}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled:hover{background:var(--ax-light-light-color)!important;border-color:var(--ax-light-light-color)!important;color:var(--ax-gray-dark-color)!important;cursor:not-allowed!important}"]
3039
+ styles: [".ax.ax-menu{display:flex}.ax.ax-menu.ax-menu-vertical[data-level=\"0\"]{display:flex;flex-direction:row}.ax.ax-menu.ax-menu-vertical:not([data-level=\"0\"]){display:flex;transition:opacity .3s;min-width:12em;box-shadow:0 1px 7px 0 var(--ax-border-color);background:#fff;flex-direction:column}.ax.ax-menu.ax-menu-vertical .ax-menu-item{display:flex;white-space:nowrap;cursor:pointer;padding:0 10px;font-weight:400;font-size:1rem;line-height:40px;text-decoration:none;align-items:center}.ax.ax-menu.ax-menu-vertical .ax-menu-item .icon:first-child{-webkit-margin-end:var(--ax-size-md);margin-inline-end:var(--ax-size-md)}.ax.ax-menu.ax-menu-vertical .ax-menu-item .icon:last-child{-webkit-margin-start:var(--ax-size-md);margin-inline-start:var(--ax-size-md)}.ax.ax-menu.ax-menu-vertical .ax-menu-item span{flex:1}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled{opacity:.6;cursor:not-allowed!important}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled .icon{color:var(--ax-gray-dark-color)!important}.ax.ax-menu.ax-menu-vertical .ax-menu-item.disabled:hover{cursor:not-allowed!important}"]
3029
3040
  }),
3030
3041
  __metadata("design:paramtypes", [Overlay,
3031
3042
  ViewContainerRef,
@@ -5002,7 +5013,8 @@ let AXDropdownComponent = class AXDropdownComponent extends AXBaseDropdownCompon
5002
5013
  ensureOverlayCreated() {
5003
5014
  if (!this.overlayRef) {
5004
5015
  const targetEl = document.querySelector('#' + this.uid);
5005
- const positionStrategy = this.overlay.position()
5016
+ const positionStrategy = this.overlay
5017
+ .position()
5006
5018
  .flexibleConnectedTo(targetEl)
5007
5019
  .withPositions([
5008
5020
  {
@@ -5050,6 +5062,10 @@ let AXDropdownComponent = class AXDropdownComponent extends AXBaseDropdownCompon
5050
5062
  get isOpen() {
5051
5063
  return this.overlayRef ? this.overlayRef.hasAttached() : false;
5052
5064
  }
5065
+ updatePosition() {
5066
+ var _a;
5067
+ (_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.updatePosition();
5068
+ }
5053
5069
  focus() { }
5054
5070
  };
5055
5071
  AXDropdownComponent.ctorParameters = () => [
@@ -5124,6 +5140,7 @@ let AXDatePickerComponent = AXDatePickerComponent_1 = class AXDatePickerComponen
5124
5140
  this.ref = ref;
5125
5141
  this.cdr = cdr;
5126
5142
  this.dayStyle = [];
5143
+ this.dayMinMaxResoan = '';
5127
5144
  // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
5128
5145
  this.yyyyMMdd = [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-3]/, /[0-9]/];
5129
5146
  this.ddMMyyyy = [/[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
@@ -5172,7 +5189,8 @@ let AXDatePickerComponent = AXDatePickerComponent_1 = class AXDatePickerComponen
5172
5189
  this.value = new Date();
5173
5190
  }
5174
5191
  focus() {
5175
- this.dropdown.focus();
5192
+ // this.dropdown.focus();
5193
+ this.input.focus();
5176
5194
  }
5177
5195
  convertMaskToDate(text) {
5178
5196
  if (this.type == 'jalali') {
@@ -5206,6 +5224,7 @@ let AXDatePickerComponent = AXDatePickerComponent_1 = class AXDatePickerComponen
5206
5224
  return { year: y, monnth: m, day: d };
5207
5225
  }
5208
5226
  textChange(e) {
5227
+ debugger;
5209
5228
  this.text = e.value;
5210
5229
  if (this.text && this.text.indexOf('_') === -1 && this.text.length == 10) {
5211
5230
  this.userChange = e.isUserChange;
@@ -5270,6 +5289,9 @@ let AXDatePickerComponent = AXDatePickerComponent_1 = class AXDatePickerComponen
5270
5289
  }, 100);
5271
5290
  }
5272
5291
  }
5292
+ else {
5293
+ this.text = '';
5294
+ }
5273
5295
  this.userChange = false;
5274
5296
  }
5275
5297
  _setDateType() {
@@ -5759,6 +5781,10 @@ __decorate([
5759
5781
  Input(),
5760
5782
  __metadata("design:type", Object)
5761
5783
  ], AXDatePickerComponent.prototype, "dayStyle", void 0);
5784
+ __decorate([
5785
+ Input(),
5786
+ __metadata("design:type", Object)
5787
+ ], AXDatePickerComponent.prototype, "dayMinMaxResoan", void 0);
5762
5788
  __decorate([
5763
5789
  ContentChild(AXValidation, { static: true }),
5764
5790
  __metadata("design:type", AXValidation)
@@ -5845,7 +5871,7 @@ __decorate([
5845
5871
  AXDatePickerComponent = AXDatePickerComponent_1 = __decorate([
5846
5872
  Component({
5847
5873
  selector: 'ax-date-picker',
5848
- template: "<ax-drop-down [readonly]=\"readonly\" [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\" icon=\"far fa-calendar-alt\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <ax-text-box #input [textAlign]=\"textAlign\" [(value)]=\"text\" [readonly]=\"false\" [textMask]=\"dateType\" [disabled]=\"disabled\" [placeholder]=\"placeholder\" [size]=\"size\" (onkey)=\"handleKeyPress($event)\" (onFocus)=\"handleInputFocus()\" (click)=\"handleClick()\"\r\n (onBlur)=\"handleInputBlur()\" (onValueChanged)=\"textChange($event)\"></ax-text-box>\r\n </ng-container>\r\n <ng-container panel>\r\n <ax-calendar-box *ngIf=\"_renderPicker\" [showTodayButton]=\"showTodayButton\" [selectableHoliday]=\"selectableHoliday\" [min]=\"min\" [max]=\"max\" [size]=\"size\" (onClick)=\"onClick($event)\" (onValueChanged)=\"onDateChange($event)\" [type]=\"type\" [(value)]=\"value\"\r\n [dayStyle]=\"dayStyle\">\r\n </ax-calendar-box>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end *ngIf=\"allowClear && value\" [disabled]=\"disabled\" icon=\"far fa-times icon\" type=\"blank danger\" (click)=\"clear()\" [size]=\"size\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button end icon=\"far fa-calendar-alt icon\" type=\"light blank\" (click)=\"handleButtonClick()\" [disabled]=\"disabled\" [size]=\"size\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
5874
+ template: "<ax-drop-down [readonly]=\"readonly\" [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-calendar-alt\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <ax-text-box #input [textAlign]=\"textAlign\" [(value)]=\"text\" [readonly]=\"false\" [textMask]=\"dateType\"\r\n [disabled]=\"disabled\" [placeholder]=\"placeholder\" [size]=\"size\" (onkey)=\"handleKeyPress($event)\"\r\n (onFocus)=\"handleInputFocus()\" (click)=\"handleClick()\" (onBlur)=\"handleInputBlur()\"\r\n (onValueChanged)=\"textChange($event)\"></ax-text-box>\r\n </ng-container>\r\n <ng-container panel>\r\n <ax-calendar-box *ngIf=\"_renderPicker\" [showTodayButton]=\"showTodayButton\"\r\n [selectableHoliday]=\"selectableHoliday\" [min]=\"min\" [max]=\"max\" [size]=\"size\" (onClick)=\"onClick($event)\"\r\n (onValueChanged)=\"onDateChange($event)\" [type]=\"type\" [(value)]=\"value\" [dayStyle]=\"dayStyle\"\r\n [dayMinMaxResoan]=\"dayMinMaxResoan\">\r\n </ax-calendar-box>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end *ngIf=\"allowClear && value\" [disabled]=\"disabled\" icon=\"far fa-times icon\" type=\"blank danger\"\r\n (click)=\"clear()\" [size]=\"size\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button end icon=\"far fa-calendar-alt icon\" type=\"light blank\" (click)=\"handleButtonClick()\"\r\n [disabled]=\"disabled\" [size]=\"size\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
5849
5875
  encapsulation: ViewEncapsulation.None,
5850
5876
  providers: [{ provide: AXValidatableComponent, useExisting: AXDatePickerComponent_1 }],
5851
5877
  host: { style: 'width: 100%' },
@@ -7926,6 +7952,7 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
7926
7952
  this.allowSearch = true;
7927
7953
  this.textField = 'text';
7928
7954
  this.valueField = 'value';
7955
+ this.disabledField = 'disabled';
7929
7956
  this.mode = 'single';
7930
7957
  this.itemRemove = false;
7931
7958
  this.itemsChange = new EventEmitter();
@@ -8077,6 +8104,17 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8077
8104
  }
8078
8105
  }
8079
8106
  }
8107
+ isItemDisabled(item) {
8108
+ if (item[this.disabledField] == true) {
8109
+ return true;
8110
+ }
8111
+ else if (this.disabledCallback) {
8112
+ return this.disabledCallback({ item, index: -1 });
8113
+ }
8114
+ else {
8115
+ return false;
8116
+ }
8117
+ }
8080
8118
  onButtonClick(e) {
8081
8119
  console.log('onButtonClick', e);
8082
8120
  }
@@ -8120,6 +8158,7 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8120
8158
  }
8121
8159
  }
8122
8160
  get selectedValues() {
8161
+ debugger;
8123
8162
  if (this.mode === 'single') {
8124
8163
  return this._selectedItems.map((c) => c[this.valueField])[0];
8125
8164
  }
@@ -8201,6 +8240,8 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8201
8240
  }
8202
8241
  }
8203
8242
  emitSelectionChangedEvent() {
8243
+ debugger;
8244
+ this.selectedValuesChange.emit(this.selectedValues);
8204
8245
  this.selectionChanged.emit(new AXSelectBoxSelectionChangedEvent(this, this.selectedItems, this.selectedValues));
8205
8246
  }
8206
8247
  ngAfterViewInit() {
@@ -8315,6 +8356,7 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8315
8356
  }
8316
8357
  this.cdr.markForCheck();
8317
8358
  this.cdr.detectChanges();
8359
+ this.dropdown.updatePosition();
8318
8360
  }
8319
8361
  // private params: AXDataSourceReadParams = {};
8320
8362
  fetch(params = {}) {
@@ -8370,37 +8412,39 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8370
8412
  }
8371
8413
  }
8372
8414
  handleItemClick(e, item) {
8373
- const value = item[this.valueField];
8374
- if (this.mode === 'single') {
8375
- // this.selectedValues = value;
8376
- this.setSelectedValues(value, true);
8377
- }
8378
- else {
8379
- const exists = this.selectedValues.slice(0);
8380
- if (exists.includes(value)) {
8381
- if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {
8382
- this.handleItemRemoveClick(item);
8383
- }
8415
+ if (this.isItemDisabled(item) == false) {
8416
+ const value = item[this.valueField];
8417
+ if (this.mode === 'single') {
8418
+ // this.selectedValues = value;
8419
+ this.setSelectedValues(value, true);
8384
8420
  }
8385
8421
  else {
8386
- exists.push(value);
8387
- // this.selectedValues = exists;
8388
- this.setSelectedValues(exists, true);
8422
+ const exists = this.selectedValues.slice(0);
8423
+ if (exists.includes(value)) {
8424
+ if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {
8425
+ this.handleItemRemoveClick(item);
8426
+ }
8427
+ }
8428
+ else {
8429
+ exists.push(value);
8430
+ // this.selectedValues = exists;
8431
+ this.setSelectedValues(exists, true);
8432
+ }
8389
8433
  }
8390
- }
8391
- if (this.mode == 'single') {
8392
- this.text = '';
8393
- this.dropdown.close();
8394
- this.cdr.markForCheck();
8395
- }
8396
- // if (e.stopPropagation() == undefined) {
8397
- // e.stopPropagation();
8398
- // }
8399
- setTimeout(() => {
8400
- if (this.serchBox) {
8401
- this.serchBox.focus();
8434
+ if (this.mode == 'single') {
8435
+ this.text = '';
8436
+ this.dropdown.close();
8437
+ this.cdr.markForCheck();
8402
8438
  }
8403
- }, 0);
8439
+ // if (e.stopPropagation() == undefined) {
8440
+ // e.stopPropagation();
8441
+ // }
8442
+ setTimeout(() => {
8443
+ if (this.serchBox) {
8444
+ this.serchBox.focus();
8445
+ }
8446
+ }, 0);
8447
+ }
8404
8448
  e.stopPropagation();
8405
8449
  }
8406
8450
  handleKeyEventSearch(e) {
@@ -8565,6 +8609,7 @@ let AXSelectBoxComponent = AXSelectBoxComponent_1 = class AXSelectBoxComponent e
8565
8609
  if (e.key === 'Backspace' &&
8566
8610
  e.type === 'keydown' &&
8567
8611
  ((this.allowNull === true && this.selectedItems.length > 0) || (this.allowNull === false && this.selectedItems.length > 1))) {
8612
+ debugger;
8568
8613
  this.selectedItems.pop();
8569
8614
  this.emitSelectionChangedEvent();
8570
8615
  }
@@ -8820,6 +8865,10 @@ __decorate([
8820
8865
  ViewChild('d', { static: true }),
8821
8866
  __metadata("design:type", AXDropdownComponent)
8822
8867
  ], AXSelectBoxComponent.prototype, "dropdown", void 0);
8868
+ __decorate([
8869
+ Input(),
8870
+ __metadata("design:type", Function)
8871
+ ], AXSelectBoxComponent.prototype, "disabledCallback", void 0);
8823
8872
  __decorate([
8824
8873
  Input(),
8825
8874
  __metadata("design:type", Boolean)
@@ -8832,6 +8881,10 @@ __decorate([
8832
8881
  Input(),
8833
8882
  __metadata("design:type", String)
8834
8883
  ], AXSelectBoxComponent.prototype, "valueField", void 0);
8884
+ __decorate([
8885
+ Input(),
8886
+ __metadata("design:type", String)
8887
+ ], AXSelectBoxComponent.prototype, "disabledField", void 0);
8835
8888
  __decorate([
8836
8889
  Input(),
8837
8890
  __metadata("design:type", String)
@@ -8878,7 +8931,7 @@ __decorate([
8878
8931
  AXSelectBoxComponent = AXSelectBoxComponent_1 = __decorate([
8879
8932
  Component({
8880
8933
  selector: 'ax-select-box',
8881
- template: "<ax-drop-down [size]=\"size\" [rtl]=\"rtl\" [showDropDownButton]=\"showDropDownButton\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" #d (dropdownToggle)=\"dropdownToggleSelecBox($event)\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\" [horizontalScroll]=\"40\">\r\n <div class=\"chips\" [class.chips-blank]=\"mode === 'single'\" [title]=\"item[textField]\"\r\n *ngFor=\"let item of selectedItems\">\r\n <span class=\"chips-text\">\r\n {{item[textField]}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\"\r\n *ngIf=\"(readonly!=true || itemRemove ==true)&& disabled!=true && (allowNull==true || (selectedItems.length > 1))\">\r\n <i class=\"far fa-times-circle close\"></i>\r\n </span>\r\n </div>\r\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\r\n <ax-text-box #textBoxSelectBox [textAlign]=\"textAlign\"\r\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" (onkey)=\"handleKeyEvent($event)\" [size]=\"size\"\r\n (onFocus)=\"onFocusTextBox($event)\">\r\n </ax-text-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n <ng-container panel>\r\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em;\">\r\n <ax-search-box #serchBox [(value)]=\"text\" (onkey)=\"handleKeyEventSearch($event)\"\r\n (textChanged)=\"textChanged($event)\" (onButtonClick)=\"textChanged($event)\">\r\n </ax-search-box>\r\n </div>\r\n <div class=\"ax list-container\">\r\n <div #listContainer style=\"max-height: 300px;overflow-y: auto;width: 100%;\" (scroll)=\"scrolled($event)\">\r\n <ng-container *ngIf=\"getItems().length>0; then thenTemplate; else elseTemplate\"></ng-container>\r\n <ng-template #thenTemplate>\r\n <div class=\"list-item\" *ngFor=\"let item of getItems();let i = index\"\r\n [class.focused]=\"i==currentfocusedIndex\" [class.selected]=\"isItemSelected(item)\"\r\n (click)=\"handleItemClick($event,item)\">\r\n <div style=\"display: flex;\">\r\n <ax-check-box *ngIf=\"showCheckBox\" [size]=\"size\" [value]=\"isItemSelected(item)\"\r\n [disabled]=\"!allowNull && selectedItems.length === 1 && isItemSelected(item)\"\r\n (onClick)=\"handleItemClick($event,item)\">\r\n </ax-check-box>\r\n <ng-container *ngIf=\"rowTemplate; else elseTemplate\">\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context:{ $implicit: item }\">\r\n </ng-container>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n {{ item[textField] }}\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center;\">\r\n <i class=\"far fa-spinner-third fa-pulse fa-2x\" style=\"color: var(--ax-primary-color);\"></i>\r\n\r\n </div>\r\n <!-- <ax-loading-indicator ></ax-loading-indicator> -->\r\n <ng-template #elseTemplate>\r\n <ng-container *ngIf=\"showLoading == true; then searchTemplate else noDataTemplate\"></ng-container>\r\n <ng-template #searchTemplate>\r\n <div class=\"list-item\">\r\n {{'common.searching' | trans}}\r\n </div>\r\n </ng-template>\r\n <ng-template #noDataTemplate>\r\n <div class=\"list-item\">\r\n {{'common.noDataFound' | trans}}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
8934
+ template: "<ax-drop-down [size]=\"size\" [rtl]=\"rtl\" [showDropDownButton]=\"showDropDownButton\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" #d (dropdownToggle)=\"dropdownToggleSelecBox($event)\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\" [horizontalScroll]=\"40\">\r\n <div class=\"chips\" [class.chips-blank]=\"mode === 'single'\" [title]=\"item[textField]\"\r\n *ngFor=\"let item of selectedItems\">\r\n <span class=\"chips-text\">\r\n {{item[textField]}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\"\r\n *ngIf=\"(readonly!=true || itemRemove ==true)&& disabled!=true && (allowNull==true || (selectedItems.length > 1))\">\r\n <i class=\"far fa-times-circle close\"></i>\r\n </span>\r\n </div>\r\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\r\n <ax-text-box #textBoxSelectBox [textAlign]=\"textAlign\"\r\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" (onkey)=\"handleKeyEvent($event)\" [size]=\"size\"\r\n (onFocus)=\"onFocusTextBox($event)\">\r\n </ax-text-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n <ng-container panel>\r\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em;\">\r\n <ax-search-box #serchBox [(value)]=\"text\" (onkey)=\"handleKeyEventSearch($event)\"\r\n (textChanged)=\"textChanged($event)\" (onButtonClick)=\"textChanged($event)\">\r\n </ax-search-box>\r\n </div>\r\n <div class=\"ax list-container\">\r\n <div #listContainer style=\"max-height: 300px;overflow-y: auto;width: 100%;\" (scroll)=\"scrolled($event)\">\r\n <ng-container *ngIf=\"getItems().length>0; then thenTemplate; else elseTemplate\"></ng-container>\r\n <ng-template #thenTemplate>\r\n <div [class.ax-state-disabled]=\"isItemDisabled(item)\" class=\"list-item\"\r\n *ngFor=\"let item of getItems();let i = index\" [class.focused]=\"i==currentfocusedIndex\"\r\n [class.selected]=\"isItemSelected(item)\" (click)=\"handleItemClick($event,item)\">\r\n <div style=\"display: flex;\">\r\n <ax-check-box *ngIf=\"showCheckBox\" [size]=\"size\" [value]=\"isItemSelected(item)\"\r\n [disabled]=\"(!allowNull && selectedItems.length === 1 && isItemSelected(item)) || isItemDisabled(item)\"\r\n (onClick)=\"handleItemClick($event,item)\">\r\n </ax-check-box>\r\n <ng-container *ngIf=\"rowTemplate; else elseTemplate\">\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context:{ $implicit: item }\">\r\n </ng-container>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n {{ item[textField] }}\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center;\">\r\n <i class=\"far fa-spinner-third fa-pulse fa-2x\" style=\"color: var(--ax-primary-color);\"></i>\r\n\r\n </div>\r\n <!-- <ax-loading-indicator ></ax-loading-indicator> -->\r\n <ng-template #elseTemplate>\r\n <ng-container *ngIf=\"showLoading == true; then searchTemplate else noDataTemplate\"></ng-container>\r\n <ng-template #searchTemplate>\r\n <div class=\"list-item\">\r\n {{'common.searching' | trans}}\r\n </div>\r\n </ng-template>\r\n <ng-template #noDataTemplate>\r\n <div class=\"list-item\">\r\n {{'common.noDataFound' | trans}}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
8882
8935
  encapsulation: ViewEncapsulation.None,
8883
8936
  changeDetection: ChangeDetectionStrategy.OnPush,
8884
8937
  host: { style: 'width: 100%' },
@@ -8926,6 +8979,10 @@ let AXQueryBuilderRuleComponent = class AXQueryBuilderRuleComponent {
8926
8979
  value: 'not-contains',
8927
8980
  text: AXTranslator.get('queryBuilder.not-contains')
8928
8981
  },
8982
+ {
8983
+ value: 'contains-all',
8984
+ text: AXTranslator.get('queryBuilder.contains-all')
8985
+ },
8929
8986
  {
8930
8987
  value: 'null',
8931
8988
  text: AXTranslator.get('queryBuilder.null')
@@ -9471,7 +9528,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9471
9528
  return __awaiter(this, void 0, void 0, function* () {
9472
9529
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
9473
9530
  var e_1, _a;
9474
- ;
9475
9531
  var query;
9476
9532
  if (group.items.length > 0) {
9477
9533
  query = ' ( ';
@@ -9522,8 +9578,10 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9522
9578
  case 'end-with':
9523
9579
  codeOperator = item.operator;
9524
9580
  break;
9581
+ default:
9582
+ codeOperator = item.operator;
9583
+ break;
9525
9584
  }
9526
- ;
9527
9585
  query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
9528
9586
  }
9529
9587
  if (id !== group.items.length - 1 && query != ' ( ') {
@@ -9550,7 +9608,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9550
9608
  let query = '';
9551
9609
  switch (type) {
9552
9610
  case 'simple':
9553
- ;
9554
9611
  if (group.items.length > 0) {
9555
9612
  query = ' ( ';
9556
9613
  }