@progress/kendo-angular-dropdowns 25.0.0-develop.2 → 25.0.0-develop.4

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.
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
+ import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, signal, ChangeDetectionStrategy, NgModule } from '@angular/core';
7
7
  import * as i10 from '@progress/kendo-angular-common';
8
8
  import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, hasFocusableParent, parseCSSClassNames, isControlRequired, guid, hasObservers, SeparatorComponent, SuffixTemplateDirective, PrefixTemplateDirective, KendoInput, KENDO_WEBMCP_HOST, MultiTabStop, anyChanged, EventsOutsideAngularDirective, scrollbarWidth, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
9
9
  export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective, ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
@@ -37,8 +37,8 @@ const packageMetadata = {
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCode: 'KENDOUIANGULAR',
39
39
  productCodes: ['KENDOUIANGULAR'],
40
- publishDate: 1783688631,
41
- version: '25.0.0-develop.2',
40
+ publishDate: 1783940257,
41
+ version: '25.0.0-develop.4',
42
42
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
43
43
  };
44
44
 
@@ -211,6 +211,17 @@ const hasProps = (obj, props) => {
211
211
  }
212
212
  return props.every(prop => obj.hasOwnProperty(prop));
213
213
  };
214
+ /**
215
+ * @hidden
216
+ *
217
+ * Checks whether an array contains grouped data.
218
+ * GroupResult { aggregates: AggregateResult, field: string, items: object[], value: any }
219
+ * https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/
220
+ */
221
+ const isGroupedData = (data) => {
222
+ return isPresent(data) && data.length > 0 && isPresent(data[0])
223
+ && hasProps(data[0], ['aggregates', 'field', 'items', 'value']);
224
+ };
214
225
  /**
215
226
  * @hidden
216
227
  *
@@ -702,7 +713,7 @@ class SearchBarComponent {
702
713
  }
703
714
  setInputAttributes() {
704
715
  const attributesToRender = Object.assign({}, this.mutableAttributes, this.parsedAttributes);
705
- setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.ngZone);
716
+ setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.injector);
706
717
  }
707
718
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
708
719
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: SearchBarComponent, isStandalone: true, selector: "input[kendoSearchbar]", inputs: { tagListId: "tagListId", readonly: "readonly", disabled: "disabled", isRequired: "isRequired", isSuggestable: "isSuggestable", isFilterable: "isFilterable", userInput: "userInput", suggestedText: "suggestedText", inputAttributes: "inputAttributes", id: "id", activeDescendant: "activeDescendant", tabIndex: "tabIndex", isLoading: "isLoading", ariaControls: "ariaControls", ariaExpanded: "ariaExpanded", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "attr.id": "this.id", "attr.aria-activedescendant": "this.activeDescendant", "attr.tabindex": "this.tabIndex", "attr.aria-busy": "this.isLoading", "attr.aria-controls": "this.ariaControls", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-invalid": "this.attrAriaInvalid", "attr.placeholder": "this.placeholder", "attr.role": "this.role", "attr.dir": "this.dir" } }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
@@ -1058,9 +1069,7 @@ class DataService {
1058
1069
  * Used to determine if the component received grouped data.
1059
1070
  */
1060
1071
  isGrouped(data) {
1061
- // GroupResult { aggregates: AggregateResult, field: string, items: object[], value: any }
1062
- // https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/
1063
- return (isPresent(data) && data.length !== 0) && isPresent(data[0]) && hasProps(data[0], ['aggregates', 'field', 'items', 'value']);
1072
+ return isGroupedData(data);
1064
1073
  }
1065
1074
  /**
1066
1075
  * @hidden
@@ -13337,7 +13346,12 @@ class DropDownTreeComponent {
13337
13346
  get isFilterActive() {
13338
13347
  return this.filterInput && document.activeElement === this.filterInput.nativeElement;
13339
13348
  }
13340
- popupRef;
13349
+ set popupRef(value) {
13350
+ this._popupRef.set(value);
13351
+ }
13352
+ get popupRef() {
13353
+ return this._popupRef();
13354
+ }
13341
13355
  /**
13342
13356
  * @hidden
13343
13357
  */
@@ -13492,6 +13506,7 @@ class DropDownTreeComponent {
13492
13506
  _size;
13493
13507
  _rounded;
13494
13508
  _fillMode;
13509
+ _popupRef = signal(null, ...(ngDevMode ? [{ debugName: "_popupRef" }] : []));
13495
13510
  _searchableNodes = [];
13496
13511
  _typedValue = '';
13497
13512
  printableCharacters = new Subject();
@@ -17881,7 +17896,6 @@ const DEFAULT_FILTER_SETTINGS = {
17881
17896
  /**
17882
17897
  * Implements an event handler for the `filterChange` event of a DropDowns component
17883
17898
  * which performs simple data filtering.
17884
- * Currently, the built-in filtering does not work with [grouped data](https://www.telerik.com/kendo-angular-ui/components/data-query/api/groupby).
17885
17899
  *
17886
17900
  * @example
17887
17901
  * ```ts
@@ -17941,7 +17955,14 @@ class FilterDirective {
17941
17955
  }
17942
17956
  }
17943
17957
  handleFilterChange(query) {
17944
- this.component.data = this.data.filter(item => this.matchesAnyField(item, query));
17958
+ if (isGroupedData(this.data)) {
17959
+ this.component.data = this.data
17960
+ .map(group => ({ ...group, items: group.items.filter(item => this.matchesAnyField(item, query)) }))
17961
+ .filter(group => group.items.length > 0);
17962
+ }
17963
+ else {
17964
+ this.component.data = this.data.filter(item => this.matchesAnyField(item, query));
17965
+ }
17945
17966
  }
17946
17967
  matchesAnyField(item, query) {
17947
17968
  const normalizedQuery = this.normalizeValue(query);
package/index.d.ts CHANGED
@@ -3919,7 +3919,8 @@ declare class DropDownTreeComponent implements OnInit, OnDestroy, OnChanges, Aft
3919
3919
  get isOpen(): boolean;
3920
3920
  get clearButtonVisibility(): string;
3921
3921
  private get isFilterActive();
3922
- popupRef: PopupRef;
3922
+ set popupRef(value: PopupRef);
3923
+ get popupRef(): PopupRef;
3923
3924
  /**
3924
3925
  * @hidden
3925
3926
  */
@@ -4041,6 +4042,7 @@ declare class DropDownTreeComponent implements OnInit, OnDestroy, OnChanges, Aft
4041
4042
  private _size;
4042
4043
  private _rounded;
4043
4044
  private _fillMode;
4045
+ private _popupRef;
4044
4046
  private _searchableNodes;
4045
4047
  private _typedValue;
4046
4048
  private printableCharacters;
@@ -5518,7 +5520,6 @@ interface DropDownFilterSettings {
5518
5520
  /**
5519
5521
  * Implements an event handler for the `filterChange` event of a DropDowns component
5520
5522
  * which performs simple data filtering.
5521
- * Currently, the built-in filtering does not work with [grouped data](https://www.telerik.com/kendo-angular-ui/components/data-query/api/groupby).
5522
5523
  *
5523
5524
  * @example
5524
5525
  * ```ts
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1783688631,
11
- "version": "25.0.0-develop.2",
10
+ "publishDate": 1783940257,
11
+ "version": "25.0.0-develop.4",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dropdowns",
3
- "version": "25.0.0-develop.2",
3
+ "version": "25.0.0-develop.4",
4
4
  "description": "A wide variety of native Angular dropdown components including AutoComplete, ComboBox, DropDownList, DropDownTree, MultiColumnComboBox, MultiSelect, and MultiSelectTree ",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -121,7 +121,7 @@
121
121
  "package": {
122
122
  "productName": "Kendo UI for Angular",
123
123
  "productCode": "KENDOUIANGULAR",
124
- "publishDate": 1783688631,
124
+ "publishDate": 1783940257,
125
125
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
126
126
  }
127
127
  },
@@ -132,18 +132,18 @@
132
132
  "@angular/forms": "20 - 22",
133
133
  "@angular/platform-browser": "20 - 22",
134
134
  "@progress/kendo-licensing": "^1.11.0",
135
- "@progress/kendo-angular-common": "25.0.0-develop.2",
136
- "@progress/kendo-angular-utils": "25.0.0-develop.2",
137
- "@progress/kendo-angular-l10n": "25.0.0-develop.2",
138
- "@progress/kendo-angular-navigation": "25.0.0-develop.2",
139
- "@progress/kendo-angular-popup": "25.0.0-develop.2",
140
- "@progress/kendo-angular-icons": "25.0.0-develop.2",
141
- "@progress/kendo-angular-treeview": "25.0.0-develop.2",
135
+ "@progress/kendo-angular-common": "25.0.0-develop.4",
136
+ "@progress/kendo-angular-utils": "25.0.0-develop.4",
137
+ "@progress/kendo-angular-l10n": "25.0.0-develop.4",
138
+ "@progress/kendo-angular-navigation": "25.0.0-develop.4",
139
+ "@progress/kendo-angular-popup": "25.0.0-develop.4",
140
+ "@progress/kendo-angular-icons": "25.0.0-develop.4",
141
+ "@progress/kendo-angular-treeview": "25.0.0-develop.4",
142
142
  "rxjs": "^6.5.3 || ^7.0.0"
143
143
  },
144
144
  "dependencies": {
145
145
  "tslib": "^2.3.1",
146
- "@progress/kendo-angular-schematics": "25.0.0-develop.2",
146
+ "@progress/kendo-angular-schematics": "25.0.0-develop.4",
147
147
  "@progress/kendo-common": "^1.0.1"
148
148
  },
149
149
  "schematics": "./schematics/collection.json",
@@ -9,9 +9,9 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
11
11
  // peers of the treeview
12
- '@progress/kendo-angular-inputs': '25.0.0-develop.2',
12
+ '@progress/kendo-angular-inputs': '25.0.0-develop.4',
13
13
  // peers of inputs
14
- '@progress/kendo-angular-intl': '25.0.0-develop.2',
14
+ '@progress/kendo-angular-intl': '25.0.0-develop.4',
15
15
  '@progress/kendo-drawing': '^1.17.2',
16
16
  // Peer dependency of icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'