@yoobic/yobi 8.5.0-64 → 8.5.0-65

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 (30) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/yoo-entity-query-builder.cjs.entry.js +5 -10
  4. package/dist/cjs/yoo-form-autocomplete-dialog.cjs.entry.js +1 -0
  5. package/dist/cjs/yoo-form-autocomplete.cjs.entry.js +7 -7
  6. package/dist/cjs/yoo-grid.cjs.entry.js +12 -29
  7. package/dist/collection/components/entities/entity-query-builder/entity-query-builder.js +5 -10
  8. package/dist/collection/components/form/form-autocomplete/form-autocomplete.js +9 -9
  9. package/dist/collection/components/form/form-autocomplete-dialog/form-autocomplete-dialog.js +11 -5
  10. package/dist/collection/components/grid/grid/grid.js +22 -34
  11. package/dist/collection/interfaces/ui/index.js +0 -1
  12. package/dist/design-system/design-system.esm.js +1 -1
  13. package/dist/design-system/yoo-entity-query-builder.entry.js +5 -10
  14. package/dist/design-system/yoo-form-autocomplete-dialog.entry.js +1 -0
  15. package/dist/design-system/yoo-form-autocomplete.entry.js +8 -8
  16. package/dist/design-system/yoo-grid.entry.js +13 -30
  17. package/dist/esm/design-system.js +1 -1
  18. package/dist/esm/loader.js +1 -1
  19. package/dist/esm/yoo-entity-query-builder.entry.js +5 -10
  20. package/dist/esm/yoo-form-autocomplete-dialog.entry.js +1 -0
  21. package/dist/esm/yoo-form-autocomplete.entry.js +8 -8
  22. package/dist/esm/yoo-grid.entry.js +13 -30
  23. package/dist/types/components/form/form-autocomplete/form-autocomplete.d.ts +1 -1
  24. package/dist/types/components/form/form-autocomplete-dialog/form-autocomplete-dialog.d.ts +1 -1
  25. package/dist/types/components/grid/grid/grid.d.ts +2 -3
  26. package/dist/types/components.d.ts +4 -4
  27. package/dist/types/interfaces/ui/index.d.ts +0 -1
  28. package/package.json +1 -1
  29. package/dist/collection/interfaces/ui/form-filter.interface.js +0 -1
  30. package/dist/types/interfaces/ui/form-filter.interface.d.ts +0 -5
@@ -105,14 +105,8 @@ const YooEntityQueryBuilderComponent = class {
105
105
  return ((_b = (_a = this.values) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.length) > 0 || ((_d = (_c = this.values) === null || _c === void 0 ? void 0 : _c.advancedFilters) === null || _d === void 0 ? void 0 : _d.length) > 0;
106
106
  }
107
107
  getActiveFiltersCount() {
108
- var _a, _b, _c, _d;
109
- if (((_b = (_a = this.values) === null || _a === void 0 ? void 0 : _a.advancedFilters) === null || _b === void 0 ? void 0 : _b.length) > 0) {
110
- return lodash.sum(this.values.advancedFilters.map((f) => (f === null || f === void 0 ? void 0 : f.length) || 0));
111
- }
112
- else if (((_d = (_c = this.values) === null || _c === void 0 ? void 0 : _c.filters) === null || _d === void 0 ? void 0 : _d.length) > 0) {
113
- return this.values.filters.length;
114
- }
115
- return 0;
108
+ const { advancedFilters, filters } = this.values || {};
109
+ return ((advancedFilters === null || advancedFilters === void 0 ? void 0 : advancedFilters.length) ? lodash.sum(advancedFilters.map((filter) => (filter === null || filter === void 0 ? void 0 : filter.length) || 0)) : filters === null || filters === void 0 ? void 0 : filters.length) || 0;
116
110
  }
117
111
  isFilterField(f) {
118
112
  return filtersHelpers.filterIsRadio(f) || filtersHelpers.filterIsAutocomplete(f) || filtersHelpers.filterIsSegement(f) || filtersHelpers.filterIsAutocompleteLocal(f) || filtersHelpers.filterIsBoolean(f) || filtersHelpers.filterIsDate(f) || filtersHelpers.filterIsText(f) || filtersHelpers.filterIsNumber(f);
@@ -187,6 +181,7 @@ const YooEntityQueryBuilderComponent = class {
187
181
  if (values.length > 0 || (values && field.type === index$1.FormFieldType.missionfield)) {
188
182
  this.values.filters.push(filtersHelpers.filterFromFormField(field, values, this.filterAutocompleteOperator));
189
183
  }
184
+ this.values = lodash.cloneDeep(this.values);
190
185
  this.onEmitValues();
191
186
  }
192
187
  onAutocompleteChangeAdvanced(ev, index) {
@@ -322,7 +317,7 @@ const YooEntityQueryBuilderComponent = class {
322
317
  }
323
318
  renderFiltersHeader() {
324
319
  const count = this.getActiveFiltersCount();
325
- return index.h("div", { class: "filters-header" }, index.h("div", { class: "counter" }, index$2.translate('YOOBICFILTERSAPPLIED', { smart_count: count })), index.h("div", { class: "clear-all" }, count > 0 && index.h("yoo-button", { size: this.size, color: count > 0 ? 'app-color' : 'stable', fill: "transparent", onClick: () => this.onClear() }, index$2.translate('CLEARALL'))));
320
+ return index.h("div", { class: "filters-header" }, index.h("div", { class: "counter" }, index$2.translate('YOOBICFILTERSAPPLIED', { smart_count: count })), index.h("div", { class: "clear-all" }, index.h("yoo-button", { size: this.size, color: "app-color", disabled: !count, fill: "transparent", onClick: () => this.onClear() }, index$2.translate('CLEARALL'))));
326
321
  }
327
322
  renderFilters() {
328
323
  var _a, _b;
@@ -406,7 +401,7 @@ const YooEntityQueryBuilderComponent = class {
406
401
  const count = this.getActiveFiltersCount();
407
402
  return [
408
403
  (customViewsButtons === null || customViewsButtons === void 0 ? void 0 : customViewsButtons.length) > 0 && (index.h("yoo-context-menu", { contentButtons: customViewsButtons, placement: "right", class: "customview-menu width-unset" }, index.h("div", { class: "header width-auto" }, index.h("div", { class: { title: true, 'app-color': !!this.customView } }, index$2.translate('SAVEDFILTERS')), index.h("yoo-icon", { name: "right-web", color: "stable", size: "medium" })))),
409
- index.h("div", { class: "header" }, index.h("div", { class: "title" }, index$2.translate('FILTERS', { count })), index.h("yoo-button", { size: this.size, color: count > 0 ? 'app-color' : 'stable', fill: "transparent", disabled: !this.isDirty && !(count > 0), onClick: () => this.onClear() }, index$2.translate('CLEARALL')))
404
+ index.h("div", { class: "header" }, index.h("div", { class: "title" }, index$2.translate('FILTERS', { count })), index.h("yoo-button", { size: this.size, color: "app-color", fill: "transparent", disabled: !count, onClick: () => this.onClear() }, index$2.translate('CLEARALL')))
410
405
  ];
411
406
  }
412
407
  renderDialogFooter() {
@@ -280,6 +280,7 @@ const YooFormAutocompleteDialogComponent = class {
280
280
  }
281
281
  onFilterRadioToggled(ev) {
282
282
  ev.stopPropagation();
283
+ this.selectedFilterOperator = ev.detail;
283
284
  this.filterRadioToggled.emit(ev.detail);
284
285
  }
285
286
  getEntityType() {
@@ -225,6 +225,7 @@ const YooFormAutocompleteComponent = class {
225
225
  }
226
226
  componentWillLoad() {
227
227
  var _a, _b;
228
+ this.isFilter && !this.filterOperator && this.selectFilterOperator(index$2.FormFilterAutocompleteOperator.is);
228
229
  this.updateSelection(true);
229
230
  if (this.showDropdownOnLoad) {
230
231
  this.showDropdownContent = this.showDropdownOnLoad;
@@ -650,7 +651,7 @@ const YooFormAutocompleteComponent = class {
650
651
  });
651
652
  this.dialog.addEventListener('filterRadioToggled', (ev) => {
652
653
  ev.stopPropagation();
653
- this.onFilterRadioToggled(ev.detail);
654
+ this.selectFilterOperator(ev.detail);
654
655
  });
655
656
  let modalOptions = { half: !index$1.isWeb(this.host) };
656
657
  if (isExpanding) {
@@ -704,7 +705,8 @@ const YooFormAutocompleteComponent = class {
704
705
  this.currentSelectedTags = ev.detail;
705
706
  await this.fetch();
706
707
  }
707
- onFilterRadioToggled(operator) {
708
+ selectFilterOperator(operator) {
709
+ this.filterOperator = operator;
708
710
  this.extraDataChanged.emit(operator);
709
711
  }
710
712
  async onFileChanges(ev) {
@@ -913,7 +915,6 @@ const YooFormAutocompleteComponent = class {
913
915
  var _a, _b, _c, _d, _e, _f, _g;
914
916
  const isPopulatedQuery = lodash.isArray(this.value) ? ((_a = this.value.find((v) => v === null || v === void 0 ? void 0 : v.total)) === null || _a === void 0 ? void 0 : _a.total) > 0 : ((_b = this.value) === null || _b === void 0 ? void 0 : _b.total) > 0;
915
917
  const valueTotal = lodash.isArray(this.value) ? (_c = this.value.find((v) => v === null || v === void 0 ? void 0 : v.total)) === null || _c === void 0 ? void 0 : _c.total : (_d = this.value) === null || _d === void 0 ? void 0 : _d.total;
916
- const selectedOperator = this.filterOperator || 'in';
917
918
  if (this.idOnly && ((_e = this.value) === null || _e === void 0 ? void 0 : _e.length) > 0 && lodash.isString(this.value[0]) && !this.idOnlyInitialSelection) {
918
919
  this.forceSelectedContentIdOnlyReload = true;
919
920
  }
@@ -925,7 +926,7 @@ const YooFormAutocompleteComponent = class {
925
926
  if (this.entityType === 'groups' && !this.returnQuery) {
926
927
  groupSelection = (_f = this.selection) === null || _f === void 0 ? void 0 : _f.filter((value) => { var _a, _b; return (value === null || value === void 0 ? void 0 : value.title) ? !((_a = value === null || value === void 0 ? void 0 : value.title) === null || _a === void 0 ? void 0 : _a.match(index$1.MONGODB_ID_REGEX)) : (value === null || value === void 0 ? void 0 : value._id) && !(value === null || value === void 0 ? void 0 : value.title) ? !((_b = value === null || value === void 0 ? void 0 : value._id) === null || _b === void 0 ? void 0 : _b.match(index$1.MONGODB_ID_REGEX)) : !(value === null || value === void 0 ? void 0 : value.match(index$1.MONGODB_ID_REGEX)); });
927
928
  }
928
- return (index.h("div", { class: { 'entity-content': true, selected: true, 'icon-prefix': hasIconPrefix } }, `${this.isFilter ? selectedOperator : ''} ${this.entityType !== 'groups' ? (_g = this.selection) === null || _g === void 0 ? void 0 : _g.length : groupSelection === null || groupSelection === void 0 ? void 0 : groupSelection.length} ${index$1.translate(this.setPrefixedEntityType(entityType).toUpperCase())} ${index$1.translate(this.multipleSelectionSuffix)}`));
929
+ return (index.h("div", { class: { 'entity-content': true, selected: true, 'icon-prefix': hasIconPrefix } }, `${this.isFilter ? this.filterOperator : ''} ${this.entityType !== 'groups' ? (_g = this.selection) === null || _g === void 0 ? void 0 : _g.length : groupSelection === null || groupSelection === void 0 ? void 0 : groupSelection.length} ${index$1.translate(this.setPrefixedEntityType(entityType).toUpperCase())} ${index$1.translate(this.multipleSelectionSuffix)}`));
929
930
  }
930
931
  renderUnselectedEntites(entityType, hasIconPrefix) {
931
932
  const filesPlaceholder = index$1.isWeb(this.host) ? index$1.translate('FORMFIELDDEFINITIONDOCUMENTPLACEHOLDER') : index$1.translate('SELECTFILES');
@@ -943,7 +944,6 @@ const YooFormAutocompleteComponent = class {
943
944
  }
944
945
  renderEntities(hasIconPrefix, cardTagSingle = false) {
945
946
  var _a;
946
- const selectedOperator = this.filterOperator || 'in';
947
947
  return (index.h("div", { class: { 'entity-container': true, empty: !this.selection || this.selection.length <= 0, prefix: hasIconPrefix } }, (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((selection, i) => {
948
948
  var _a, _b;
949
949
  let entitySelection = selection;
@@ -965,7 +965,7 @@ const YooFormAutocompleteComponent = class {
965
965
  }
966
966
  const title = (entitySelection === null || entitySelection === void 0 ? void 0 : entitySelection.title) || entitySelection;
967
967
  return (entitySelection && [
968
- index.h("div", { class: { 'single-entity-container': this.isFilter } }, index.h("div", { class: "operator-container" }, `${this.isFilter ? selectedOperator : ''}`), index.h("yoo-entity", { class: {
968
+ index.h("div", { class: { 'single-entity-container': this.isFilter } }, index.h("div", { class: "operator-container" }, `${this.isFilter ? this.filterOperator : ''}`), index.h("yoo-entity", { class: {
969
969
  'autocomplete autocomplete-selected': true,
970
970
  last: i === this.selection.length - 1,
971
971
  bold: this.color === 'transparent',
@@ -1010,7 +1010,7 @@ const YooFormAutocompleteComponent = class {
1010
1010
  await this.fetch(ev.detail);
1011
1011
  }, onFieldFetchData: (ev) => this.onFetchFieldFilterData(ev), onSortsAndFiltersChange: (ev) => this.onSortsAndFiltersChange(ev), onCurrentPageChanged: (ev) => this.onCurrentPageChange(ev === null || ev === void 0 ? void 0 : ev.detail), hideHeader: index$1.isNullOrUndefined(this.hideHeader) ? false : this.hideHeader, showSearch: !this.forceHideSearch && (this.initialValueLength > minValuesForSearch || this.allowCustomTag || this.allowCustomValue || this.entityType === 'googlemaps'), isLocal: this.isLocal, onGridExpanded: () => this.onExpandGrid(), useTranslate: this.useTranslate, initialSelection: this.returnQuery ? null : [].concat(index$1.isPresent(this.value) ? this.value : []), idOnly: this.idOnly || this.allowCustomTag, idAttributeName: this.idAttributeName || '_id', emptyState: this.emptyState, allowCustomTag: (this.allowCustomTag || this.tag || this.allowCustomValue) && !this.forceDisableCustomTags, searchBarPlaceholder: (this.allowCustomTag || this.allowCustomValue) && !this.forceDisableCustomTags
1012
1012
  ? index$1.translate(this.isLocal ? 'AUTOCOMPLETESEARCHADD' : 'SEARCHORADD')
1013
- : index$1.translate('SEARCH'), tags: this.tags, forceHideSearch: this.forceHideSearch, maxSelectionNumber: this.max, customModel: this.customModel, addNewTagText: this.entityType === 'emails' ? index$1.translate('ADDNEWEMAIL') : this.searchText, model: this.model, hideAdvancedFilters: !this.model, hideRefreshButton: true, showFilters: false, onTagsSelect: (ev) => this.onTagsSelect(ev), isCollapsible: false, onAddNewTagPressed: (ev) => this.onCustomTagCreated(ev), disableSingleDeselection: this.disableSingleDeselection, idOnlyInitialSelection: this.idOnlyInitialSelection, isLoading: this.isLoading, valuesColor: this.valuesColor, total: this.total, returnQuery: this.returnQuery, showSelectAll: this.returnQuery, initialQuery: this.returnQuery ? this.value : null, sortsAndFilters: this.returnQuery ? (_c = this.value) === null || _c === void 0 ? void 0 : _c.sortsAndFilters : null, onFileUpload: () => { var _a; return (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.click(); }, isUploading: this.isUploading, showFormRadio: this.isFilter, selectedFilterOperator: this.filterOperator, onFormRadioToggled: (ev) => this.onFilterRadioToggled(ev.detail), onMaxPageCountChanged: (ev) => (this.maxPage = Math.max(ev.detail, this.maxPage)), onSearchedItemSelected: (ev) => this.updateSearchedItemSelection(ev), onValidityChanged: (ev) => this.onValidityChanged(ev), infiniteScrollDisabled: this.infiniteScrollDisabled }))))))));
1013
+ : index$1.translate('SEARCH'), tags: this.tags, forceHideSearch: this.forceHideSearch, maxSelectionNumber: this.max, customModel: this.customModel, addNewTagText: this.entityType === 'emails' ? index$1.translate('ADDNEWEMAIL') : this.searchText, model: this.model, hideAdvancedFilters: !this.model, hideRefreshButton: true, showFilters: false, onTagsSelect: (ev) => this.onTagsSelect(ev), isCollapsible: false, onAddNewTagPressed: (ev) => this.onCustomTagCreated(ev), disableSingleDeselection: this.disableSingleDeselection, idOnlyInitialSelection: this.idOnlyInitialSelection, isLoading: this.isLoading, valuesColor: this.valuesColor, total: this.total, returnQuery: this.returnQuery, showSelectAll: this.returnQuery, initialQuery: this.returnQuery ? this.value : null, sortsAndFilters: this.returnQuery ? (_c = this.value) === null || _c === void 0 ? void 0 : _c.sortsAndFilters : null, onFileUpload: () => { var _a; return (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.click(); }, isUploading: this.isUploading, showFormRadio: this.isFilter, selectedFilterOperator: this.filterOperator, onFormRadioToggled: (ev) => this.selectFilterOperator(ev.detail), onMaxPageCountChanged: (ev) => (this.maxPage = Math.max(ev.detail, this.maxPage)), onSearchedItemSelected: (ev) => this.updateSearchedItemSelection(ev), onValidityChanged: (ev) => this.onValidityChanged(ev), infiniteScrollDisabled: this.infiniteScrollDisabled }))))))));
1014
1014
  }
1015
1015
  renderReadonly() {
1016
1016
  if (this.selection && this.selection.length > 0) {
@@ -172,16 +172,6 @@ const YooGridComponent = class {
172
172
  }, 500);
173
173
  this.itemsHaveBeenReordered = false;
174
174
  this.filtersUpdated = false;
175
- this.filterOptions = [
176
- {
177
- type: index$2.FormFilterAutocompleteOperator.is,
178
- active: true
179
- },
180
- {
181
- type: index$2.FormFilterAutocompleteOperator.isNot,
182
- active: false
183
- }
184
- ];
185
175
  this.renderVirtualItem = (item, index) => {
186
176
  if (this.hasSecondaryActions || (this.keepSelection && index$1.isWeb(this.host))) {
187
177
  if (this.showActionsAsMore) {
@@ -592,6 +582,7 @@ const YooGridComponent = class {
592
582
  if (this.isFormField) {
593
583
  formInputHelpers.setValidator(this);
594
584
  }
585
+ this.showFormRadio && !this.selectedFilterOperator && this.selectFilterOperator(index$2.FormFilterAutocompleteOperator.is);
595
586
  this.isSelectionMode = this.multiple && !this.blockSelectionMode;
596
587
  this.areItemsDisabled = (_a = this.extraClass) === null || _a === void 0 ? void 0 : _a.includes('item-disabled');
597
588
  this.searchText = this.search || '';
@@ -1477,18 +1468,6 @@ const YooGridComponent = class {
1477
1468
  }
1478
1469
  return false;
1479
1470
  }
1480
- onToggleFormRadio(ev) {
1481
- var _a;
1482
- const selectedOption = (_a = this.filterOptions) === null || _a === void 0 ? void 0 : _a.find((option) => (option === null || option === void 0 ? void 0 : option.type) === (ev === null || ev === void 0 ? void 0 : ev.detail));
1483
- if (selectedOption) {
1484
- selectedOption.active = true;
1485
- }
1486
- if (!selectedOption) {
1487
- this.formRadioToggled.emit(null);
1488
- return;
1489
- }
1490
- this.formRadioToggled.emit(selectedOption.type);
1491
- }
1492
1471
  updateSelectAll(selectAll) {
1493
1472
  this.isSelectAll = selectAll;
1494
1473
  if (!this.isSelectAll && this.isAgGrid() && this.gridApi) {
@@ -1975,12 +1954,16 @@ const YooGridComponent = class {
1975
1954
  }
1976
1955
  return 0;
1977
1956
  }
1957
+ selectFilterOperator(operator) {
1958
+ this.selectedFilterOperator = operator;
1959
+ this.formRadioToggled.emit(operator);
1960
+ }
1978
1961
  renderDropdownFormRadio() {
1979
- var _a;
1980
- const formOptions = this.filterOptions.map((filterOption) => filterOption.type);
1981
- if (index$1.isWeb(this.host) && ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length)) {
1982
- return (index.h("div", { class: "form-radio-container" }, index.h("yoo-form-radio", { options: formOptions, flow: "column", size: "medium", value: this.selectedFilterOperator || formOptions[0], onInputChanged: (ev) => this.onToggleFormRadio(ev) }, formOptions.map((option, index$1) => (index.h("span", { slot: index$1.toString() }, option))))));
1983
- }
1962
+ const operators = [index$2.FormFilterAutocompleteOperator.is, index$2.FormFilterAutocompleteOperator.isNot];
1963
+ return (index.h("div", { class: "form-radio-container" }, index.h("yoo-form-radio", { options: operators, flow: "column", size: "medium", value: this.selectedFilterOperator, onInputChanged: (event) => {
1964
+ event.stopPropagation();
1965
+ this.selectFilterOperator(event.detail);
1966
+ } }, operators.map((operator, index$1) => index.h("span", { slot: index$1.toString() }, operator)))));
1984
1967
  }
1985
1968
  renderSearchInput() {
1986
1969
  var _a, _b, _c;
@@ -3145,14 +3128,14 @@ const YooGridComponent = class {
3145
3128
  return (this.mainProgressValue >= 0 && (index.h("div", { class: "grid-progress" }, index.h("yoo-progress-bar", { animated: this.animated, metric: "percentage", percentValueColorScheme: false, value: this.total > 0 ? (this.mainProgressValue * 100) / this.total : 0 }))));
3146
3129
  }
3147
3130
  renderBase() {
3148
- var _a, _b, _c, _d, _e;
3131
+ var _a, _b, _c, _d, _e, _f;
3149
3132
  const renderEntityTags = (!index$1.isWeb(this.host) || (this.gridIsExpanded && (((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length) > 0 || ((_c = (_b = this.model) === null || _b === void 0 ? void 0 : _b.fields) === null || _c === void 0 ? void 0 : _c.length) > 0))) &&
3150
3133
  this.isTagsVisible() &&
3151
3134
  ((this.items && this.items.length > 0) || this.hasSortsAndFilters() || this.alwaysRenderTagsAndFilters() || this.isAgGrid()) &&
3152
3135
  !this.host.classList.contains('learning-manager') && !this.host.classList.contains('course-info');
3153
3136
  return [
3154
3137
  this.showProgress && this.progressHandler && this.renderProgress(),
3155
- index.h("div", { ref: (el) => (this.containerBase = el), class: this.getClassList() }, this.showAutocompleteHeader ? (index.h("div", { class: { 'dropdown-header': true, 'no-tags': !renderEntityTags || ((_d = this.tags) === null || _d === void 0 ? void 0 : _d.length) === 0, 'form-radio-operators': this.showFormRadio } }, this.showFormRadio && this.renderDropdownFormRadio(), this.renderHeader(renderEntityTags), this.renderDynamicOrderingHeader(), this.renderFilesIcons())) : ([this.renderHeader(renderEntityTags), this.renderFilesIcons()]), this.isKanban() && index.h("slot", { name: "header" }), (((_e = this.columns) === null || _e === void 0 ? void 0 : _e.length) || this.mainColumnHeader) && !this.isAgGrid() && !this.isCalendar() && index$1.isWeb(this.host) && !this.isMap() ? (index.h("div", { class: "horizontal-scroll-parent" }, index.h("div", { class: "horizontal-scroll", ref: (el) => (this.horizontalScroll = el) }, index.h("div", { class: { 'horizontal-content': true, 'with-header': this.hasColumnsHeader() } }, this.renderColumnsHeader(), this.renderBaseContent())))) : (this.renderBaseContent())),
3138
+ index.h("div", { ref: (el) => (this.containerBase = el), class: this.getClassList() }, this.showAutocompleteHeader ? (index.h("div", { class: { 'dropdown-header': true, 'no-tags': !renderEntityTags || ((_d = this.tags) === null || _d === void 0 ? void 0 : _d.length) === 0, 'form-radio-operators': this.showFormRadio } }, this.showFormRadio && index$1.isWeb(this.host) && !!((_e = this.items) === null || _e === void 0 ? void 0 : _e.length) && this.renderDropdownFormRadio(), this.renderHeader(renderEntityTags), this.renderDynamicOrderingHeader(), this.renderFilesIcons())) : ([this.renderHeader(renderEntityTags), this.renderFilesIcons()]), this.isKanban() && index.h("slot", { name: "header" }), (((_f = this.columns) === null || _f === void 0 ? void 0 : _f.length) || this.mainColumnHeader) && !this.isAgGrid() && !this.isCalendar() && index$1.isWeb(this.host) && !this.isMap() ? (index.h("div", { class: "horizontal-scroll-parent" }, index.h("div", { class: "horizontal-scroll", ref: (el) => (this.horizontalScroll = el) }, index.h("div", { class: { 'horizontal-content': true, 'with-header': this.hasColumnsHeader() } }, this.renderColumnsHeader(), this.renderBaseContent())))) : (this.renderBaseContent())),
3156
3139
  index$1.isWeb(this.host) && this.showGlobalActions && this.isSelectionMode && this.renderGlobalActions()
3157
3140
  ];
3158
3141
  }
@@ -86,14 +86,8 @@ export class YooEntityQueryBuilderComponent {
86
86
  return ((_b = (_a = this.values) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.length) > 0 || ((_d = (_c = this.values) === null || _c === void 0 ? void 0 : _c.advancedFilters) === null || _d === void 0 ? void 0 : _d.length) > 0;
87
87
  }
88
88
  getActiveFiltersCount() {
89
- var _a, _b, _c, _d;
90
- if (((_b = (_a = this.values) === null || _a === void 0 ? void 0 : _a.advancedFilters) === null || _b === void 0 ? void 0 : _b.length) > 0) {
91
- return sum(this.values.advancedFilters.map((f) => (f === null || f === void 0 ? void 0 : f.length) || 0));
92
- }
93
- else if (((_d = (_c = this.values) === null || _c === void 0 ? void 0 : _c.filters) === null || _d === void 0 ? void 0 : _d.length) > 0) {
94
- return this.values.filters.length;
95
- }
96
- return 0;
89
+ const { advancedFilters, filters } = this.values || {};
90
+ return ((advancedFilters === null || advancedFilters === void 0 ? void 0 : advancedFilters.length) ? sum(advancedFilters.map((filter) => (filter === null || filter === void 0 ? void 0 : filter.length) || 0)) : filters === null || filters === void 0 ? void 0 : filters.length) || 0;
97
91
  }
98
92
  isFilterField(f) {
99
93
  return filterIsRadio(f) || filterIsAutocomplete(f) || filterIsSegement(f) || filterIsAutocompleteLocal(f) || filterIsBoolean(f) || filterIsDate(f) || filterIsText(f) || filterIsNumber(f);
@@ -168,6 +162,7 @@ export class YooEntityQueryBuilderComponent {
168
162
  if (values.length > 0 || (values && field.type === FormFieldType.missionfield)) {
169
163
  this.values.filters.push(filterFromFormField(field, values, this.filterAutocompleteOperator));
170
164
  }
165
+ this.values = cloneDeep(this.values);
171
166
  this.onEmitValues();
172
167
  }
173
168
  onAutocompleteChangeAdvanced(ev, index) {
@@ -303,7 +298,7 @@ export class YooEntityQueryBuilderComponent {
303
298
  }
304
299
  renderFiltersHeader() {
305
300
  const count = this.getActiveFiltersCount();
306
- return h("div", { class: "filters-header" }, h("div", { class: "counter" }, translate('YOOBICFILTERSAPPLIED', { smart_count: count })), h("div", { class: "clear-all" }, count > 0 && h("yoo-button", { size: this.size, color: count > 0 ? 'app-color' : 'stable', fill: "transparent", onClick: () => this.onClear() }, translate('CLEARALL'))));
301
+ return h("div", { class: "filters-header" }, h("div", { class: "counter" }, translate('YOOBICFILTERSAPPLIED', { smart_count: count })), h("div", { class: "clear-all" }, h("yoo-button", { size: this.size, color: "app-color", disabled: !count, fill: "transparent", onClick: () => this.onClear() }, translate('CLEARALL'))));
307
302
  }
308
303
  renderFilters() {
309
304
  var _a, _b;
@@ -387,7 +382,7 @@ export class YooEntityQueryBuilderComponent {
387
382
  const count = this.getActiveFiltersCount();
388
383
  return [
389
384
  (customViewsButtons === null || customViewsButtons === void 0 ? void 0 : customViewsButtons.length) > 0 && (h("yoo-context-menu", { contentButtons: customViewsButtons, placement: "right", class: "customview-menu width-unset" }, h("div", { class: "header width-auto" }, h("div", { class: { title: true, 'app-color': !!this.customView } }, translate('SAVEDFILTERS')), h("yoo-icon", { name: "right-web", color: "stable", size: "medium" })))),
390
- h("div", { class: "header" }, h("div", { class: "title" }, translate('FILTERS', { count })), h("yoo-button", { size: this.size, color: count > 0 ? 'app-color' : 'stable', fill: "transparent", disabled: !this.isDirty && !(count > 0), onClick: () => this.onClear() }, translate('CLEARALL')))
385
+ h("div", { class: "header" }, h("div", { class: "title" }, translate('FILTERS', { count })), h("yoo-button", { size: this.size, color: "app-color", fill: "transparent", disabled: !count, onClick: () => this.onClear() }, translate('CLEARALL')))
391
386
  ];
392
387
  }
393
388
  renderDialogFooter() {
@@ -1,4 +1,4 @@
1
- import { FormFieldType } from '@shared/interfaces';
1
+ import { FormFieldType, FormFilterAutocompleteOperator } from '@shared/interfaces';
2
2
  import { findParent, getAsyncExtraData, getModalAnimation, getRandomFileName, groupsResolver, isImage, isIonic, isNullOrUndefined, isPresent, isValid, isWeb, MONGODB_ID_REGEX, resizeImage, showAlert, showModal, translate, translateMulti } from '@shared/utils';
3
3
  import { h, Host } from '@stencil/core';
4
4
  import { compact, isArray, isNumber, isString, uniq } from 'lodash-es';
@@ -204,6 +204,7 @@ export class YooFormAutocompleteComponent {
204
204
  }
205
205
  componentWillLoad() {
206
206
  var _a, _b;
207
+ this.isFilter && !this.filterOperator && this.selectFilterOperator(FormFilterAutocompleteOperator.is);
207
208
  this.updateSelection(true);
208
209
  if (this.showDropdownOnLoad) {
209
210
  this.showDropdownContent = this.showDropdownOnLoad;
@@ -629,7 +630,7 @@ export class YooFormAutocompleteComponent {
629
630
  });
630
631
  this.dialog.addEventListener('filterRadioToggled', (ev) => {
631
632
  ev.stopPropagation();
632
- this.onFilterRadioToggled(ev.detail);
633
+ this.selectFilterOperator(ev.detail);
633
634
  });
634
635
  let modalOptions = { half: !isWeb(this.host) };
635
636
  if (isExpanding) {
@@ -683,7 +684,8 @@ export class YooFormAutocompleteComponent {
683
684
  this.currentSelectedTags = ev.detail;
684
685
  await this.fetch();
685
686
  }
686
- onFilterRadioToggled(operator) {
687
+ selectFilterOperator(operator) {
688
+ this.filterOperator = operator;
687
689
  this.extraDataChanged.emit(operator);
688
690
  }
689
691
  async onFileChanges(ev) {
@@ -892,7 +894,6 @@ export class YooFormAutocompleteComponent {
892
894
  var _a, _b, _c, _d, _e, _f, _g;
893
895
  const isPopulatedQuery = isArray(this.value) ? ((_a = this.value.find((v) => v === null || v === void 0 ? void 0 : v.total)) === null || _a === void 0 ? void 0 : _a.total) > 0 : ((_b = this.value) === null || _b === void 0 ? void 0 : _b.total) > 0;
894
896
  const valueTotal = isArray(this.value) ? (_c = this.value.find((v) => v === null || v === void 0 ? void 0 : v.total)) === null || _c === void 0 ? void 0 : _c.total : (_d = this.value) === null || _d === void 0 ? void 0 : _d.total;
895
- const selectedOperator = this.filterOperator || 'in';
896
897
  if (this.idOnly && ((_e = this.value) === null || _e === void 0 ? void 0 : _e.length) > 0 && isString(this.value[0]) && !this.idOnlyInitialSelection) {
897
898
  this.forceSelectedContentIdOnlyReload = true;
898
899
  }
@@ -904,7 +905,7 @@ export class YooFormAutocompleteComponent {
904
905
  if (this.entityType === 'groups' && !this.returnQuery) {
905
906
  groupSelection = (_f = this.selection) === null || _f === void 0 ? void 0 : _f.filter((value) => { var _a, _b; return (value === null || value === void 0 ? void 0 : value.title) ? !((_a = value === null || value === void 0 ? void 0 : value.title) === null || _a === void 0 ? void 0 : _a.match(MONGODB_ID_REGEX)) : (value === null || value === void 0 ? void 0 : value._id) && !(value === null || value === void 0 ? void 0 : value.title) ? !((_b = value === null || value === void 0 ? void 0 : value._id) === null || _b === void 0 ? void 0 : _b.match(MONGODB_ID_REGEX)) : !(value === null || value === void 0 ? void 0 : value.match(MONGODB_ID_REGEX)); });
906
907
  }
907
- return (h("div", { class: { 'entity-content': true, selected: true, 'icon-prefix': hasIconPrefix } }, `${this.isFilter ? selectedOperator : ''} ${this.entityType !== 'groups' ? (_g = this.selection) === null || _g === void 0 ? void 0 : _g.length : groupSelection === null || groupSelection === void 0 ? void 0 : groupSelection.length} ${translate(this.setPrefixedEntityType(entityType).toUpperCase())} ${translate(this.multipleSelectionSuffix)}`));
908
+ return (h("div", { class: { 'entity-content': true, selected: true, 'icon-prefix': hasIconPrefix } }, `${this.isFilter ? this.filterOperator : ''} ${this.entityType !== 'groups' ? (_g = this.selection) === null || _g === void 0 ? void 0 : _g.length : groupSelection === null || groupSelection === void 0 ? void 0 : groupSelection.length} ${translate(this.setPrefixedEntityType(entityType).toUpperCase())} ${translate(this.multipleSelectionSuffix)}`));
908
909
  }
909
910
  renderUnselectedEntites(entityType, hasIconPrefix) {
910
911
  const filesPlaceholder = isWeb(this.host) ? translate('FORMFIELDDEFINITIONDOCUMENTPLACEHOLDER') : translate('SELECTFILES');
@@ -922,7 +923,6 @@ export class YooFormAutocompleteComponent {
922
923
  }
923
924
  renderEntities(hasIconPrefix, cardTagSingle = false) {
924
925
  var _a;
925
- const selectedOperator = this.filterOperator || 'in';
926
926
  return (h("div", { class: { 'entity-container': true, empty: !this.selection || this.selection.length <= 0, prefix: hasIconPrefix } }, (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((selection, i) => {
927
927
  var _a, _b;
928
928
  let entitySelection = selection;
@@ -944,7 +944,7 @@ export class YooFormAutocompleteComponent {
944
944
  }
945
945
  const title = (entitySelection === null || entitySelection === void 0 ? void 0 : entitySelection.title) || entitySelection;
946
946
  return (entitySelection && [
947
- h("div", { class: { 'single-entity-container': this.isFilter } }, h("div", { class: "operator-container" }, `${this.isFilter ? selectedOperator : ''}`), h("yoo-entity", { class: {
947
+ h("div", { class: { 'single-entity-container': this.isFilter } }, h("div", { class: "operator-container" }, `${this.isFilter ? this.filterOperator : ''}`), h("yoo-entity", { class: {
948
948
  'autocomplete autocomplete-selected': true,
949
949
  last: i === this.selection.length - 1,
950
950
  bold: this.color === 'transparent',
@@ -989,7 +989,7 @@ export class YooFormAutocompleteComponent {
989
989
  await this.fetch(ev.detail);
990
990
  }, onFieldFetchData: (ev) => this.onFetchFieldFilterData(ev), onSortsAndFiltersChange: (ev) => this.onSortsAndFiltersChange(ev), onCurrentPageChanged: (ev) => this.onCurrentPageChange(ev === null || ev === void 0 ? void 0 : ev.detail), hideHeader: isNullOrUndefined(this.hideHeader) ? false : this.hideHeader, showSearch: !this.forceHideSearch && (this.initialValueLength > minValuesForSearch || this.allowCustomTag || this.allowCustomValue || this.entityType === 'googlemaps'), isLocal: this.isLocal, onGridExpanded: () => this.onExpandGrid(), useTranslate: this.useTranslate, initialSelection: this.returnQuery ? null : [].concat(isPresent(this.value) ? this.value : []), idOnly: this.idOnly || this.allowCustomTag, idAttributeName: this.idAttributeName || '_id', emptyState: this.emptyState, allowCustomTag: (this.allowCustomTag || this.tag || this.allowCustomValue) && !this.forceDisableCustomTags, searchBarPlaceholder: (this.allowCustomTag || this.allowCustomValue) && !this.forceDisableCustomTags
991
991
  ? translate(this.isLocal ? 'AUTOCOMPLETESEARCHADD' : 'SEARCHORADD')
992
- : translate('SEARCH'), tags: this.tags, forceHideSearch: this.forceHideSearch, maxSelectionNumber: this.max, customModel: this.customModel, addNewTagText: this.entityType === 'emails' ? translate('ADDNEWEMAIL') : this.searchText, model: this.model, hideAdvancedFilters: !this.model, hideRefreshButton: true, showFilters: false, onTagsSelect: (ev) => this.onTagsSelect(ev), isCollapsible: false, onAddNewTagPressed: (ev) => this.onCustomTagCreated(ev), disableSingleDeselection: this.disableSingleDeselection, idOnlyInitialSelection: this.idOnlyInitialSelection, isLoading: this.isLoading, valuesColor: this.valuesColor, total: this.total, returnQuery: this.returnQuery, showSelectAll: this.returnQuery, initialQuery: this.returnQuery ? this.value : null, sortsAndFilters: this.returnQuery ? (_c = this.value) === null || _c === void 0 ? void 0 : _c.sortsAndFilters : null, onFileUpload: () => { var _a; return (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.click(); }, isUploading: this.isUploading, showFormRadio: this.isFilter, selectedFilterOperator: this.filterOperator, onFormRadioToggled: (ev) => this.onFilterRadioToggled(ev.detail), onMaxPageCountChanged: (ev) => (this.maxPage = Math.max(ev.detail, this.maxPage)), onSearchedItemSelected: (ev) => this.updateSearchedItemSelection(ev), onValidityChanged: (ev) => this.onValidityChanged(ev), infiniteScrollDisabled: this.infiniteScrollDisabled }))))))));
992
+ : translate('SEARCH'), tags: this.tags, forceHideSearch: this.forceHideSearch, maxSelectionNumber: this.max, customModel: this.customModel, addNewTagText: this.entityType === 'emails' ? translate('ADDNEWEMAIL') : this.searchText, model: this.model, hideAdvancedFilters: !this.model, hideRefreshButton: true, showFilters: false, onTagsSelect: (ev) => this.onTagsSelect(ev), isCollapsible: false, onAddNewTagPressed: (ev) => this.onCustomTagCreated(ev), disableSingleDeselection: this.disableSingleDeselection, idOnlyInitialSelection: this.idOnlyInitialSelection, isLoading: this.isLoading, valuesColor: this.valuesColor, total: this.total, returnQuery: this.returnQuery, showSelectAll: this.returnQuery, initialQuery: this.returnQuery ? this.value : null, sortsAndFilters: this.returnQuery ? (_c = this.value) === null || _c === void 0 ? void 0 : _c.sortsAndFilters : null, onFileUpload: () => { var _a; return (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.click(); }, isUploading: this.isUploading, showFormRadio: this.isFilter, selectedFilterOperator: this.filterOperator, onFormRadioToggled: (ev) => this.selectFilterOperator(ev.detail), onMaxPageCountChanged: (ev) => (this.maxPage = Math.max(ev.detail, this.maxPage)), onSearchedItemSelected: (ev) => this.updateSearchedItemSelection(ev), onValidityChanged: (ev) => this.onValidityChanged(ev), infiniteScrollDisabled: this.infiniteScrollDisabled }))))))));
993
993
  }
994
994
  renderReadonly() {
995
995
  if (this.selection && this.selection.length > 0) {
@@ -1900,7 +1900,7 @@ export class YooFormAutocompleteComponent {
1900
1900
  },
1901
1901
  "filterOperator": {
1902
1902
  "type": "string",
1903
- "mutable": false,
1903
+ "mutable": true,
1904
1904
  "complexType": {
1905
1905
  "original": "FormFilterAutocompleteOperator",
1906
1906
  "resolved": "FormFilterAutocompleteOperator.is | FormFilterAutocompleteOperator.isNot",
@@ -257,6 +257,7 @@ export class YooFormAutocompleteDialogComponent {
257
257
  }
258
258
  onFilterRadioToggled(ev) {
259
259
  ev.stopPropagation();
260
+ this.selectedFilterOperator = ev.detail;
260
261
  this.filterRadioToggled.emit(ev.detail);
261
262
  }
262
263
  getEntityType() {
@@ -667,14 +668,19 @@ export class YooFormAutocompleteDialogComponent {
667
668
  },
668
669
  "selectedFilterOperator": {
669
670
  "type": "string",
670
- "mutable": false,
671
+ "mutable": true,
671
672
  "complexType": {
672
- "original": "string",
673
- "resolved": "string",
674
- "references": {}
673
+ "original": "FormFilterAutocompleteOperator",
674
+ "resolved": "FormFilterAutocompleteOperator.is | FormFilterAutocompleteOperator.isNot",
675
+ "references": {
676
+ "FormFilterAutocompleteOperator": {
677
+ "location": "import",
678
+ "path": "@shared/interfaces"
679
+ }
680
+ }
675
681
  },
676
682
  "required": false,
677
- "optional": false,
683
+ "optional": true,
678
684
  "docs": {
679
685
  "tags": [],
680
686
  "text": ""
@@ -90,16 +90,6 @@ export class YooGridComponent {
90
90
  }, 500);
91
91
  this.itemsHaveBeenReordered = false;
92
92
  this.filtersUpdated = false;
93
- this.filterOptions = [
94
- {
95
- type: FormFilterAutocompleteOperator.is,
96
- active: true
97
- },
98
- {
99
- type: FormFilterAutocompleteOperator.isNot,
100
- active: false
101
- }
102
- ];
103
93
  this.renderVirtualItem = (item, index) => {
104
94
  if (this.hasSecondaryActions || (this.keepSelection && isWeb(this.host))) {
105
95
  if (this.showActionsAsMore) {
@@ -510,6 +500,7 @@ export class YooGridComponent {
510
500
  if (this.isFormField) {
511
501
  setValidator(this);
512
502
  }
503
+ this.showFormRadio && !this.selectedFilterOperator && this.selectFilterOperator(FormFilterAutocompleteOperator.is);
513
504
  this.isSelectionMode = this.multiple && !this.blockSelectionMode;
514
505
  this.areItemsDisabled = (_a = this.extraClass) === null || _a === void 0 ? void 0 : _a.includes('item-disabled');
515
506
  this.searchText = this.search || '';
@@ -1395,18 +1386,6 @@ export class YooGridComponent {
1395
1386
  }
1396
1387
  return false;
1397
1388
  }
1398
- onToggleFormRadio(ev) {
1399
- var _a;
1400
- const selectedOption = (_a = this.filterOptions) === null || _a === void 0 ? void 0 : _a.find((option) => (option === null || option === void 0 ? void 0 : option.type) === (ev === null || ev === void 0 ? void 0 : ev.detail));
1401
- if (selectedOption) {
1402
- selectedOption.active = true;
1403
- }
1404
- if (!selectedOption) {
1405
- this.formRadioToggled.emit(null);
1406
- return;
1407
- }
1408
- this.formRadioToggled.emit(selectedOption.type);
1409
- }
1410
1389
  updateSelectAll(selectAll) {
1411
1390
  this.isSelectAll = selectAll;
1412
1391
  if (!this.isSelectAll && this.isAgGrid() && this.gridApi) {
@@ -1893,12 +1872,16 @@ export class YooGridComponent {
1893
1872
  }
1894
1873
  return 0;
1895
1874
  }
1875
+ selectFilterOperator(operator) {
1876
+ this.selectedFilterOperator = operator;
1877
+ this.formRadioToggled.emit(operator);
1878
+ }
1896
1879
  renderDropdownFormRadio() {
1897
- var _a;
1898
- const formOptions = this.filterOptions.map((filterOption) => filterOption.type);
1899
- if (isWeb(this.host) && ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length)) {
1900
- return (h("div", { class: "form-radio-container" }, h("yoo-form-radio", { options: formOptions, flow: "column", size: "medium", value: this.selectedFilterOperator || formOptions[0], onInputChanged: (ev) => this.onToggleFormRadio(ev) }, formOptions.map((option, index) => (h("span", { slot: index.toString() }, option))))));
1901
- }
1880
+ const operators = [FormFilterAutocompleteOperator.is, FormFilterAutocompleteOperator.isNot];
1881
+ return (h("div", { class: "form-radio-container" }, h("yoo-form-radio", { options: operators, flow: "column", size: "medium", value: this.selectedFilterOperator, onInputChanged: (event) => {
1882
+ event.stopPropagation();
1883
+ this.selectFilterOperator(event.detail);
1884
+ } }, operators.map((operator, index) => h("span", { slot: index.toString() }, operator)))));
1902
1885
  }
1903
1886
  renderSearchInput() {
1904
1887
  var _a, _b, _c;
@@ -3063,14 +3046,14 @@ export class YooGridComponent {
3063
3046
  return (this.mainProgressValue >= 0 && (h("div", { class: "grid-progress" }, h("yoo-progress-bar", { animated: this.animated, metric: "percentage", percentValueColorScheme: false, value: this.total > 0 ? (this.mainProgressValue * 100) / this.total : 0 }))));
3064
3047
  }
3065
3048
  renderBase() {
3066
- var _a, _b, _c, _d, _e;
3049
+ var _a, _b, _c, _d, _e, _f;
3067
3050
  const renderEntityTags = (!isWeb(this.host) || (this.gridIsExpanded && (((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length) > 0 || ((_c = (_b = this.model) === null || _b === void 0 ? void 0 : _b.fields) === null || _c === void 0 ? void 0 : _c.length) > 0))) &&
3068
3051
  this.isTagsVisible() &&
3069
3052
  ((this.items && this.items.length > 0) || this.hasSortsAndFilters() || this.alwaysRenderTagsAndFilters() || this.isAgGrid()) &&
3070
3053
  !this.host.classList.contains('learning-manager') && !this.host.classList.contains('course-info');
3071
3054
  return [
3072
3055
  this.showProgress && this.progressHandler && this.renderProgress(),
3073
- h("div", { ref: (el) => (this.containerBase = el), class: this.getClassList() }, this.showAutocompleteHeader ? (h("div", { class: { 'dropdown-header': true, 'no-tags': !renderEntityTags || ((_d = this.tags) === null || _d === void 0 ? void 0 : _d.length) === 0, 'form-radio-operators': this.showFormRadio } }, this.showFormRadio && this.renderDropdownFormRadio(), this.renderHeader(renderEntityTags), this.renderDynamicOrderingHeader(), this.renderFilesIcons())) : ([this.renderHeader(renderEntityTags), this.renderFilesIcons()]), this.isKanban() && h("slot", { name: "header" }), (((_e = this.columns) === null || _e === void 0 ? void 0 : _e.length) || this.mainColumnHeader) && !this.isAgGrid() && !this.isCalendar() && isWeb(this.host) && !this.isMap() ? (h("div", { class: "horizontal-scroll-parent" }, h("div", { class: "horizontal-scroll", ref: (el) => (this.horizontalScroll = el) }, h("div", { class: { 'horizontal-content': true, 'with-header': this.hasColumnsHeader() } }, this.renderColumnsHeader(), this.renderBaseContent())))) : (this.renderBaseContent())),
3056
+ h("div", { ref: (el) => (this.containerBase = el), class: this.getClassList() }, this.showAutocompleteHeader ? (h("div", { class: { 'dropdown-header': true, 'no-tags': !renderEntityTags || ((_d = this.tags) === null || _d === void 0 ? void 0 : _d.length) === 0, 'form-radio-operators': this.showFormRadio } }, this.showFormRadio && isWeb(this.host) && !!((_e = this.items) === null || _e === void 0 ? void 0 : _e.length) && this.renderDropdownFormRadio(), this.renderHeader(renderEntityTags), this.renderDynamicOrderingHeader(), this.renderFilesIcons())) : ([this.renderHeader(renderEntityTags), this.renderFilesIcons()]), this.isKanban() && h("slot", { name: "header" }), (((_f = this.columns) === null || _f === void 0 ? void 0 : _f.length) || this.mainColumnHeader) && !this.isAgGrid() && !this.isCalendar() && isWeb(this.host) && !this.isMap() ? (h("div", { class: "horizontal-scroll-parent" }, h("div", { class: "horizontal-scroll", ref: (el) => (this.horizontalScroll = el) }, h("div", { class: { 'horizontal-content': true, 'with-header': this.hasColumnsHeader() } }, this.renderColumnsHeader(), this.renderBaseContent())))) : (this.renderBaseContent())),
3074
3057
  isWeb(this.host) && this.showGlobalActions && this.isSelectionMode && this.renderGlobalActions()
3075
3058
  ];
3076
3059
  }
@@ -3994,14 +3977,19 @@ export class YooGridComponent {
3994
3977
  },
3995
3978
  "selectedFilterOperator": {
3996
3979
  "type": "string",
3997
- "mutable": false,
3980
+ "mutable": true,
3998
3981
  "complexType": {
3999
- "original": "string",
4000
- "resolved": "string",
4001
- "references": {}
3982
+ "original": "FormFilterAutocompleteOperator",
3983
+ "resolved": "FormFilterAutocompleteOperator.is | FormFilterAutocompleteOperator.isNot",
3984
+ "references": {
3985
+ "FormFilterAutocompleteOperator": {
3986
+ "location": "import",
3987
+ "path": "@shared/interfaces"
3988
+ }
3989
+ }
4002
3990
  },
4003
3991
  "required": false,
4004
- "optional": false,
3992
+ "optional": true,
4005
3993
  "docs": {
4006
3994
  "tags": [],
4007
3995
  "text": ""
@@ -3,7 +3,6 @@ export * from './card-video.interface';
3
3
  export * from './draggable.interface';
4
4
  export * from './form-creator.interface';
5
5
  export * from './form-daterange.interface';
6
- export * from './form-filter.interface';
7
6
  export * from './form-reorder.interface';
8
7
  export * from './map.interface';
9
8
  export * from './modal.interface';