@progress/kendo-angular-dropdowns 14.0.2-develop.9 → 14.1.0-develop.1

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.
@@ -38,8 +38,8 @@ const packageMetadata = {
38
38
  name: '@progress/kendo-angular-dropdowns',
39
39
  productName: 'Kendo UI for Angular',
40
40
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
41
- publishDate: 1698069060,
42
- version: '14.0.2-develop.9',
41
+ publishDate: 1698853306,
42
+ version: '14.1.0-develop.1',
43
43
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
44
44
  };
45
45
 
@@ -1815,6 +1815,7 @@ class ListComponent {
1815
1815
  this.onClick = new EventEmitter();
1816
1816
  this.pageChange = new EventEmitter();
1817
1817
  this.listResize = new EventEmitter();
1818
+ this.popupListScroll = new EventEmitter();
1818
1819
  this.startFrom = 0;
1819
1820
  this.lastLoaded = 0;
1820
1821
  this.lastScrollTop = 0;
@@ -2174,7 +2175,7 @@ class ListComponent {
2174
2175
  }
2175
2176
  }
2176
2177
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2177
- ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ListComponent, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2178
+ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ListComponent, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2178
2179
  <div *ngIf="dataService.grouped && showStickyHeader"
2179
2180
  [class]="listGroupStickyHeaderClass"
2180
2181
  [ngStyle]="{
@@ -2194,7 +2195,8 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2194
2195
  [class]="listContentClass"
2195
2196
  [style.overscrollBehavior]="'none'"
2196
2197
  [style.maxHeight.px]="height"
2197
- unselectable="on">
2198
+ unselectable="on"
2199
+ (scroll)="popupListScroll.emit($event)">
2198
2200
  <ul #list
2199
2201
  role="listbox"
2200
2202
  [class]="listClass"
@@ -2327,7 +2329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2327
2329
  [class]="listContentClass"
2328
2330
  [style.overscrollBehavior]="'none'"
2329
2331
  [style.maxHeight.px]="height"
2330
- unselectable="on">
2332
+ unselectable="on"
2333
+ (scroll)="popupListScroll.emit($event)">
2331
2334
  <ul #list
2332
2335
  role="listbox"
2333
2336
  [class]="listClass"
@@ -2487,6 +2490,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2487
2490
  type: Output
2488
2491
  }], listResize: [{
2489
2492
  type: Output
2493
+ }], popupListScroll: [{
2494
+ type: Output
2490
2495
  }], items: [{
2491
2496
  type: ViewChildren,
2492
2497
  args: [ListItemDirective]
@@ -2857,7 +2862,7 @@ const AUTOCOMPLETE_VALUE_ACCESSOR = {
2857
2862
  * ```
2858
2863
  */
2859
2864
  class AutoCompleteComponent {
2860
- constructor(localization, dataService, popupService, selectionService, navigationService, disabledItemsService, _zone, cdr, renderer, hostElement, touchEnabled) {
2865
+ constructor(localization, dataService, popupService, selectionService, navigationService, disabledItemsService, _zone, cdr, renderer, hostElement, touchEnabled, injector) {
2861
2866
  this.localization = localization;
2862
2867
  this.dataService = dataService;
2863
2868
  this.popupService = popupService;
@@ -2869,6 +2874,7 @@ class AutoCompleteComponent {
2869
2874
  this.renderer = renderer;
2870
2875
  this.hostElement = hostElement;
2871
2876
  this.touchEnabled = touchEnabled;
2877
+ this.injector = injector;
2872
2878
  /**
2873
2879
  * @hidden
2874
2880
  */
@@ -3316,6 +3322,13 @@ class AutoCompleteComponent {
3316
3322
  get isAdaptive() {
3317
3323
  return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
3318
3324
  }
3325
+ /**
3326
+ * @hidden
3327
+ */
3328
+ get formControl() {
3329
+ const ngControl = this.injector.get(NgControl, null);
3330
+ return ngControl?.control || null;
3331
+ }
3319
3332
  ngOnInit() {
3320
3333
  this.renderer.removeAttribute(this.wrapper, "tabindex");
3321
3334
  this.subs.add(this.localization
@@ -3615,7 +3628,11 @@ class AutoCompleteComponent {
3615
3628
  }
3616
3629
  this.isFocused = false;
3617
3630
  const valueHasChanged = this.value !== this.text;
3618
- const runInZone = hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper) || valueHasChanged;
3631
+ const runInZone = hasObservers(this.onBlur) ||
3632
+ hasObservers(this.close) ||
3633
+ isUntouched(this.wrapper) ||
3634
+ valueHasChanged ||
3635
+ this.formControl?.updateOn === 'blur';
3619
3636
  if (runInZone) {
3620
3637
  this._zone.run(() => {
3621
3638
  if (valueHasChanged) {
@@ -3844,7 +3861,7 @@ class AutoCompleteComponent {
3844
3861
  this.actionSheetSearchBar.focus();
3845
3862
  }
3846
3863
  }
3847
- AutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3864
+ AutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
3848
3865
  AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
3849
3866
  AUTOCOMPLETE_VALUE_ACCESSOR,
3850
3867
  DataService,
@@ -3979,7 +3996,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
3979
3996
  }">
3980
3997
  </ng-template>
3981
3998
  </ng-template>
3982
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
3999
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
3983
4000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
3984
4001
  type: Component,
3985
4002
  args: [{
@@ -4127,7 +4144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4127
4144
  }, {
4128
4145
  type: Inject,
4129
4146
  args: [TOUCH_ENABLED]
4130
- }] }]; }, propDecorators: { responsiveRendererComponent: [{
4147
+ }] }, { type: i0.Injector }]; }, propDecorators: { responsiveRendererComponent: [{
4131
4148
  type: ViewChild,
4132
4149
  args: [ResponsiveRendererComponent]
4133
4150
  }], highlightFirst: [{
@@ -4333,7 +4350,7 @@ const DEFAULT_FILL_MODE$4 = 'solid';
4333
4350
  * ```
4334
4351
  */
4335
4352
  class ComboBoxComponent {
4336
- constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, cdr, renderer, touchEnabled) {
4353
+ constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, cdr, renderer, touchEnabled, injector) {
4337
4354
  this.wrapper = wrapper;
4338
4355
  this.localization = localization;
4339
4356
  this.popupService = popupService;
@@ -4345,6 +4362,7 @@ class ComboBoxComponent {
4345
4362
  this.cdr = cdr;
4346
4363
  this.renderer = renderer;
4347
4364
  this.touchEnabled = touchEnabled;
4365
+ this.injector = injector;
4348
4366
  /**
4349
4367
  * @hidden
4350
4368
  */
@@ -4820,6 +4838,13 @@ class ComboBoxComponent {
4820
4838
  return 'visible';
4821
4839
  }
4822
4840
  }
4841
+ /**
4842
+ * @hidden
4843
+ */
4844
+ get formControl() {
4845
+ const ngControl = this.injector.get(NgControl, null);
4846
+ return ngControl?.control || null;
4847
+ }
4823
4848
  /**
4824
4849
  * @hidden
4825
4850
  */
@@ -5407,7 +5432,11 @@ class ComboBoxComponent {
5407
5432
  const currentText = this.searchbar.value;
5408
5433
  const textHasChanged = currentText !== (getter(this.dataItem, this.textField) || '');
5409
5434
  const valueHasChanged = unresolvedSelection || textHasChanged;
5410
- const runInZone = valueHasChanged || hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper.nativeElement);
5435
+ const runInZone = valueHasChanged ||
5436
+ hasObservers(this.onBlur) ||
5437
+ hasObservers(this.close) ||
5438
+ isUntouched(this.wrapper.nativeElement) ||
5439
+ this.formControl?.updateOn === 'blur';
5411
5440
  if (runInZone) {
5412
5441
  this.zone.run(() => {
5413
5442
  if (valueHasChanged) {
@@ -5706,7 +5735,7 @@ class ComboBoxComponent {
5706
5735
  this.actionSheetSearchBar.focus();
5707
5736
  }
5708
5737
  }
5709
- ComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
5738
+ ComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
5710
5739
  ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ComboBoxComponent, selector: "kendo-combobox", inputs: { icon: "icon", svgIcon: "svgIcon", showStickyHeader: "showStickyHeader", focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
5711
5740
  COMBOBOX_VALUE_ACCESSOR,
5712
5741
  DataService,
@@ -5861,7 +5890,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
5861
5890
  }">
5862
5891
  </ng-template>
5863
5892
  </ng-template>
5864
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
5893
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
5865
5894
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, decorators: [{
5866
5895
  type: Component,
5867
5896
  args: [{
@@ -6029,7 +6058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6029
6058
  }, {
6030
6059
  type: Inject,
6031
6060
  args: [TOUCH_ENABLED]
6032
- }] }]; }, propDecorators: { icon: [{
6061
+ }] }, { type: i0.Injector }]; }, propDecorators: { icon: [{
6033
6062
  type: Input
6034
6063
  }], svgIcon: [{
6035
6064
  type: Input
@@ -7355,7 +7384,8 @@ class DropDownListComponent {
7355
7384
  hasObservers(this.close) ||
7356
7385
  hasObservers(this.onBlur) ||
7357
7386
  hasObservers(this.filterChange) ||
7358
- isUntouched(this.wrapper.nativeElement)) {
7387
+ isUntouched(this.wrapper.nativeElement) ||
7388
+ this.formControl?.updateOn === 'blur') {
7359
7389
  this._zone.run(() => {
7360
7390
  if (valueHasChanged) {
7361
7391
  this.selectionService.change(this.selectionService.selected[0]);
@@ -7606,7 +7636,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
7606
7636
  popupLabel="Options list"
7607
7637
  >
7608
7638
  </ng-container>
7609
- <span class="k-input-inner" unselectable="on" [id]="valueLabelId">
7639
+ <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
7610
7640
  <span class="k-input-value-text">
7611
7641
  <ng-template *ngIf="valueTemplate"
7612
7642
  [templateContext]="{
@@ -7761,7 +7791,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
7761
7791
  }">
7762
7792
  </ng-template>
7763
7793
  </ng-template>
7764
- `, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
7794
+ `, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
7765
7795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListComponent, decorators: [{
7766
7796
  type: Component,
7767
7797
  args: [{
@@ -7800,7 +7830,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7800
7830
  popupLabel="Options list"
7801
7831
  >
7802
7832
  </ng-container>
7803
- <span class="k-input-inner" unselectable="on" [id]="valueLabelId">
7833
+ <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
7804
7834
  <span class="k-input-value-text">
7805
7835
  <ng-template *ngIf="valueTemplate"
7806
7836
  [templateContext]="{
@@ -8559,7 +8589,7 @@ const DEFAULT_FILL_MODE$2 = 'solid';
8559
8589
  * ```
8560
8590
  */
8561
8591
  class MultiSelectComponent {
8562
- constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, touchEnabled) {
8592
+ constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, touchEnabled, injector) {
8563
8593
  this.wrapper = wrapper;
8564
8594
  this.localization = localization;
8565
8595
  this.popupService = popupService;
@@ -8572,6 +8602,7 @@ class MultiSelectComponent {
8572
8602
  this.renderer = renderer;
8573
8603
  this._zone = _zone;
8574
8604
  this.touchEnabled = touchEnabled;
8605
+ this.injector = injector;
8575
8606
  /**
8576
8607
  * @hidden
8577
8608
  */
@@ -8799,6 +8830,13 @@ class MultiSelectComponent {
8799
8830
  get ariaControls() {
8800
8831
  return this.isOpen ? this.listBoxId : undefined;
8801
8832
  }
8833
+ /**
8834
+ * @hidden
8835
+ */
8836
+ get formControl() {
8837
+ const ngControl = this.injector.get(NgControl, null);
8838
+ return ngControl?.control || null;
8839
+ }
8802
8840
  /**
8803
8841
  * Focuses a specific item of the MultiSelect based on a provided index.
8804
8842
  * If there is a custom item it is positioned at index -1.
@@ -8865,7 +8903,8 @@ class MultiSelectComponent {
8865
8903
  if (hasObservers(this.onBlur) ||
8866
8904
  hasObservers(this.filterChange) ||
8867
8905
  hasObservers(this.close) ||
8868
- isUntouched(this.wrapper.nativeElement)) {
8906
+ isUntouched(this.wrapper.nativeElement) ||
8907
+ this.formControl?.updateOn === 'blur') {
8869
8908
  this._zone.run(() => {
8870
8909
  this.closePopup();
8871
8910
  if (!(this.isOpen && this.allowCustom)) {
@@ -10152,7 +10191,7 @@ class MultiSelectComponent {
10152
10191
  this.actionSheetSearchBar.focus();
10153
10192
  }
10154
10193
  }
10155
- MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: DataService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
10194
+ MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: DataService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
10156
10195
  MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: { showStickyHeader: "showStickyHeader", focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { properties: { "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
10157
10196
  MULTISELECT_VALUE_ACCESSOR,
10158
10197
  DataService,
@@ -10345,7 +10384,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
10345
10384
  }">
10346
10385
  </ng-template>
10347
10386
  </ng-template>
10348
- `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
10387
+ `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }] });
10349
10388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
10350
10389
  type: Component,
10351
10390
  args: [{
@@ -10551,7 +10590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10551
10590
  }, {
10552
10591
  type: Inject,
10553
10592
  args: [TOUCH_ENABLED]
10554
- }] }]; }, propDecorators: { responsiveRendererComponent: [{
10593
+ }] }, { type: i0.Injector }]; }, propDecorators: { responsiveRendererComponent: [{
10555
10594
  type: ViewChild,
10556
10595
  args: [ResponsiveRendererComponent]
10557
10596
  }], showStickyHeader: [{
@@ -10843,8 +10882,8 @@ const getRowWidthFromColumnsMeta = (columns) => {
10843
10882
  * Represents the [Kendo UI MultiColumnComboBox component for Angular]({% slug overview_multicolumncombobox %}).
10844
10883
  */
10845
10884
  class MultiColumnComboBoxComponent extends ComboBoxComponent {
10846
- constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, wrapper, touchEnabled) {
10847
- super(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, touchEnabled);
10885
+ constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, wrapper, touchEnabled, injector) {
10886
+ super(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, touchEnabled, injector);
10848
10887
  /**
10849
10888
  * @hidden
10850
10889
  */
@@ -10967,7 +11006,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
10967
11006
  });
10968
11007
  }
10969
11008
  }
10970
- MultiColumnComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }], target: i0.ɵɵFactoryTarget.Component });
11009
+ MultiColumnComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2$1.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
10971
11010
  MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MultiColumnComboBoxComponent, selector: "kendo-multicolumncombobox", host: { properties: { "class.k-dropdowngrid": "this.hostClasses", "class.k-disabled": "this.isDisabled" } }, providers: [
10972
11011
  SelectionService,
10973
11012
  DataService,
@@ -11105,7 +11144,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
11105
11144
  <div class="k-data-table" [ngClass]="tableSizeClass">
11106
11145
  <!--grid header-->
11107
11146
  <div #header class="k-table-header">
11108
- <div class="k-table-header-wrap">
11147
+ <div #headerWrap class="k-table-header-wrap">
11109
11148
  <table class="k-table" role="presentation">
11110
11149
  <colgroup>
11111
11150
  <ng-container *ngFor="let column of columns">
@@ -11182,6 +11221,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
11182
11221
  [showStickyHeader]="showStickyHeader"
11183
11222
  (pageChange)="pageChange($event)"
11184
11223
  (listResize)="updateHeaderPadding(header)"
11224
+ (popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
11185
11225
  >
11186
11226
  </kendo-list>
11187
11227
 
@@ -11220,7 +11260,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
11220
11260
  </ng-container>
11221
11261
  </div>
11222
11262
  </ng-template>
11223
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
11263
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
11224
11264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
11225
11265
  type: Component,
11226
11266
  args: [{
@@ -11363,7 +11403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11363
11403
  <div class="k-data-table" [ngClass]="tableSizeClass">
11364
11404
  <!--grid header-->
11365
11405
  <div #header class="k-table-header">
11366
- <div class="k-table-header-wrap">
11406
+ <div #headerWrap class="k-table-header-wrap">
11367
11407
  <table class="k-table" role="presentation">
11368
11408
  <colgroup>
11369
11409
  <ng-container *ngFor="let column of columns">
@@ -11440,6 +11480,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11440
11480
  [showStickyHeader]="showStickyHeader"
11441
11481
  (pageChange)="pageChange($event)"
11442
11482
  (listResize)="updateHeaderPadding(header)"
11483
+ (popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
11443
11484
  >
11444
11485
  </kendo-list>
11445
11486
 
@@ -11483,7 +11524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11483
11524
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2$1.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
11484
11525
  type: Inject,
11485
11526
  args: [TOUCH_ENABLED]
11486
- }] }]; }, propDecorators: { hostClasses: [{
11527
+ }] }, { type: i0.Injector }]; }, propDecorators: { hostClasses: [{
11487
11528
  type: HostBinding,
11488
11529
  args: ['class.k-dropdowngrid']
11489
11530
  }], isDisabled: [{
@@ -12181,7 +12222,8 @@ class DropDownTreeComponent {
12181
12222
  this.isFocused = false;
12182
12223
  this.togglePopup(false);
12183
12224
  if (hasObservers(this.onBlur) ||
12184
- isUntouched(this.wrapper.nativeElement)) {
12225
+ isUntouched(this.wrapper.nativeElement) ||
12226
+ this.formControl?.updateOn === 'blur') {
12185
12227
  this._zone.run(() => {
12186
12228
  this.onBlur.emit();
12187
12229
  this.onTouchedCallback();
@@ -12762,6 +12804,7 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
12762
12804
  <span
12763
12805
  [attr.id]="valueLabelId"
12764
12806
  class="k-input-inner"
12807
+ (click)="$event.preventDefault()"
12765
12808
  >
12766
12809
  <span class="k-input-value-text">
12767
12810
  <ng-template *ngIf="valueTemplate"
@@ -12966,6 +13009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12966
13009
  <span
12967
13010
  [attr.id]="valueLabelId"
12968
13011
  class="k-input-inner"
13012
+ (click)="$event.preventDefault()"
12969
13013
  >
12970
13014
  <span class="k-input-value-text">
12971
13015
  <ng-template *ngIf="valueTemplate"
@@ -14619,7 +14663,8 @@ class MultiSelectTreeComponent {
14619
14663
  this.isFocused = false;
14620
14664
  this.togglePopup(false);
14621
14665
  if (hasObservers(this.onBlur) ||
14622
- isUntouched(this.wrapper.nativeElement)) {
14666
+ isUntouched(this.wrapper.nativeElement) ||
14667
+ this.formControl?.updateOn === 'blur') {
14623
14668
  this._zone.run(() => {
14624
14669
  this.onBlur.emit();
14625
14670
  this.onTouchedCallback();
@@ -4,8 +4,9 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { AdaptiveMode, WindowSize } from '../common/util';
6
6
  import { SearchBarComponent } from '../common/searchbar.component';
7
- import { Renderer2, ViewContainerRef, ElementRef, TemplateRef, OnDestroy, OnChanges, DoCheck, EventEmitter, AfterContentChecked, AfterViewInit, ChangeDetectorRef, KeyValueDiffers, NgZone, OnInit } from '@angular/core';
7
+ import { Renderer2, ViewContainerRef, ElementRef, TemplateRef, OnDestroy, OnChanges, DoCheck, EventEmitter, AfterContentChecked, AfterViewInit, ChangeDetectorRef, KeyValueDiffers, NgZone, OnInit, Injector } from '@angular/core';
8
8
  import { Observable } from 'rxjs';
9
+ import { FormControl } from '@angular/forms';
9
10
  import { SelectionService, SelectionEvent } from '../common/selection/selection.service';
10
11
  import { PopupSettings } from '../common/models/popup-settings';
11
12
  import { NavigationService } from '../common/navigation/navigation.service';
@@ -68,6 +69,7 @@ export declare class MultiSelectComponent implements OnDestroy, OnChanges, OnIni
68
69
  private renderer;
69
70
  private _zone;
70
71
  private touchEnabled;
72
+ private injector;
71
73
  /**
72
74
  * @hidden
73
75
  */
@@ -104,6 +106,10 @@ export declare class MultiSelectComponent implements OnDestroy, OnChanges, OnIni
104
106
  * @hidden
105
107
  */
106
108
  get ariaControls(): string;
109
+ /**
110
+ * @hidden
111
+ */
112
+ get formControl(): FormControl;
107
113
  /**
108
114
  * Focuses a specific item of the MultiSelect based on a provided index.
109
115
  * If there is a custom item it is positioned at index -1.
@@ -466,7 +472,7 @@ export declare class MultiSelectComponent implements OnDestroy, OnChanges, OnIni
466
472
  private _fillMode;
467
473
  private _subtitle;
468
474
  private _valueHolder;
469
- constructor(wrapper: ElementRef, localization: LocalizationService, popupService: PopupService, dataService: DataService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, cdr: ChangeDetectorRef, differs: KeyValueDiffers, renderer: Renderer2, _zone: NgZone, touchEnabled: boolean);
475
+ constructor(wrapper: ElementRef, localization: LocalizationService, popupService: PopupService, dataService: DataService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, cdr: ChangeDetectorRef, differs: KeyValueDiffers, renderer: Renderer2, _zone: NgZone, touchEnabled: boolean, injector: Injector);
470
476
  get listContainerClasses(): any[];
471
477
  /**
472
478
  * @hidden
@@ -653,6 +659,6 @@ export declare class MultiSelectComponent implements OnDestroy, OnChanges, OnIni
653
659
  private setComponentClasses;
654
660
  private closeActionSheet;
655
661
  private openActionSheet;
656
- static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
662
+ static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null]>;
657
663
  static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "kendo-multiselect", ["kendoMultiSelect"], { "showStickyHeader": "showStickyHeader"; "focusableId": "focusableId"; "autoClose": "autoClose"; "loading": "loading"; "data": "data"; "value": "value"; "valueField": "valueField"; "textField": "textField"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; "placeholder": "placeholder"; "adaptiveMode": "adaptiveMode"; "title": "title"; "subtitle": "subtitle"; "disabled": "disabled"; "itemDisabled": "itemDisabled"; "checkboxes": "checkboxes"; "readonly": "readonly"; "filterable": "filterable"; "virtual": "virtual"; "popupSettings": "popupSettings"; "listHeight": "listHeight"; "valuePrimitive": "valuePrimitive"; "clearButton": "clearButton"; "tagMapper": "tagMapper"; "allowCustom": "allowCustom"; "valueNormalizer": "valueNormalizer"; }, { "filterChange": "filterChange"; "valueChange": "valueChange"; "open": "open"; "opened": "opened"; "close": "close"; "closed": "closed"; "onFocus": "focus"; "onBlur": "blur"; "removeTag": "removeTag"; }, ["template", "customItemTemplate", "groupTemplate", "fixedGroupTemplate", "headerTemplate", "footerTemplate", "tagTemplate", "groupTagTemplate", "noDataTemplate"], never>;
658
664
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dropdowns",
3
- "version": "14.0.2-develop.9",
3
+ "version": "14.1.0-develop.1",
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",
@@ -19,24 +19,24 @@
19
19
  "friendlyName": "Dropdowns"
20
20
  },
21
21
  "peerDependencies": {
22
- "@angular/animations": "13 - 16",
23
- "@angular/common": "13 - 16",
24
- "@angular/core": "13 - 16",
25
- "@angular/forms": "13 - 16",
26
- "@angular/platform-browser": "13 - 16",
22
+ "@angular/animations": "13 - 17",
23
+ "@angular/common": "13 - 17",
24
+ "@angular/core": "13 - 17",
25
+ "@angular/forms": "13 - 17",
26
+ "@angular/platform-browser": "13 - 17",
27
27
  "@progress/kendo-licensing": "^1.0.2",
28
- "@progress/kendo-angular-common": "14.0.2-develop.9",
29
- "@progress/kendo-angular-l10n": "14.0.2-develop.9",
30
- "@progress/kendo-angular-popup": "14.0.2-develop.9",
31
- "@progress/kendo-angular-icons": "14.0.2-develop.9",
32
- "@progress/kendo-angular-treeview": "14.0.2-develop.9",
28
+ "@progress/kendo-angular-common": "14.1.0-develop.1",
29
+ "@progress/kendo-angular-l10n": "14.1.0-develop.1",
30
+ "@progress/kendo-angular-popup": "14.1.0-develop.1",
31
+ "@progress/kendo-angular-icons": "14.1.0-develop.1",
32
+ "@progress/kendo-angular-treeview": "14.1.0-develop.1",
33
33
  "rxjs": "^6.5.3 || ^7.0.0",
34
- "@progress/kendo-angular-navigation": "14.0.2-develop.9",
35
- "@progress/kendo-angular-label": "14.0.2-develop.9"
34
+ "@progress/kendo-angular-navigation": "14.1.0-develop.1",
35
+ "@progress/kendo-angular-label": "14.1.0-develop.1"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.1",
39
- "@progress/kendo-angular-schematics": "14.0.2-develop.9",
39
+ "@progress/kendo-angular-schematics": "14.1.0-develop.1",
40
40
  "@progress/kendo-common": "^0.2.1"
41
41
  },
42
42
  "schematics": "./schematics/collection.json",
@@ -4,9 +4,9 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
6
6
  // peers of the treeview
7
- '@progress/kendo-angular-inputs': '14.0.2-develop.9',
7
+ '@progress/kendo-angular-inputs': '14.1.0-develop.1',
8
8
  // peers of inputs
9
- '@progress/kendo-angular-intl': '14.0.2-develop.9',
9
+ '@progress/kendo-angular-intl': '14.1.0-develop.1',
10
10
  '@progress/kendo-drawing': '^1.17.2',
11
11
  // Peer dependency of icons
12
12
  '@progress/kendo-svg-icons': '^2.0.0'