@progress/kendo-angular-dropdowns 7.0.4-dev.202208041601 → 7.1.0

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.
@@ -8,6 +8,7 @@ import { ListItemDirective } from './list-item.directive';
8
8
  import { isPresent, getter, closest, getSizeClass, getRoundedClass } from './util';
9
9
  import { fromEvent, merge } from 'rxjs';
10
10
  import { map, tap, auditTime, switchMap, take } from 'rxjs/operators';
11
+ import { NavigationAction } from './navigation/navigation-action';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "./data.service";
13
14
  import * as i2 from "./selection/selection.service";
@@ -274,6 +275,16 @@ export class ListComponent {
274
275
  this.scroll(items[flatIndex].element);
275
276
  }
276
277
  }
278
+ scrollWithOnePage(action) {
279
+ let content = this.content.nativeElement;
280
+ const contentOffsetHeight = content.clientHeight;
281
+ if (action === NavigationAction.PageDown) {
282
+ content.scrollTop += contentOffsetHeight;
283
+ }
284
+ else if (action === NavigationAction.PageUp) {
285
+ content.scrollTop -= contentOffsetHeight;
286
+ }
287
+ }
277
288
  scrollToIndex(index) {
278
289
  let content = this.content.nativeElement;
279
290
  let contentScrollTop = content.scrollTop;
@@ -313,6 +324,9 @@ export class ListComponent {
313
324
  const hasVirtualScroll = isPresent(this.virtual) && this.hasVirtualScrollbar();
314
325
  return hasVirtualScroll || this.list.nativeElement.scrollHeight > this.content.nativeElement.offsetHeight;
315
326
  }
327
+ isItemSelected(index) {
328
+ return this.selectionService.isSelected(index) || null;
329
+ }
316
330
  /**
317
331
  * Sets the list's content overflow (hides/shows scrollbar)
318
332
  */
@@ -358,7 +372,7 @@ export class ListComponent {
358
372
  }
359
373
  }
360
374
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ListComponent, deps: [{ token: i1.DataService }, { token: i0.ElementRef }, { token: i2.SelectionService }, { token: i3.DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
361
- ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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", 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: `
375
+ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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", 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: `
362
376
  <div *ngIf="dataService.grouped"
363
377
  [class]="listGroupStickyHeaderClass"
364
378
  [ngStyle]="{
@@ -383,6 +397,8 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
383
397
  role="listbox"
384
398
  [class]="listClass"
385
399
  [attr.id]="id"
400
+ [attr.aria-live]="ariaLive"
401
+ [attr.aria-multiselectable]="isMultiselect"
386
402
  [attr.aria-hidden]="!show">
387
403
  <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
388
404
  <li
@@ -394,6 +410,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
394
410
  [multipleSelection]="multipleSelection"
395
411
  [attr.id]="optionPrefix + '-' + getValue(dataItem)"
396
412
  [attr.tabIndex]="-1"
413
+ [attr.aria-selected]="isItemSelected(itemIndex)"
397
414
  [class]="listItemClass"
398
415
  [ngClass]="{
399
416
  'k-disabled': isDisabled(itemIndex),
@@ -450,6 +467,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
450
467
  [attr.absolute-index]="dataItem.index"
451
468
  [attr.id]="optionPrefix + '-' + getValue(dataItem.value)"
452
469
  [attr.tabIndex]="-1"
470
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
453
471
  [class]="listItemClass"
454
472
  [ngClass]="{
455
473
  'k-disabled': isDisabled(dataItem.offsetIndex),
@@ -507,6 +525,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
507
525
  role="listbox"
508
526
  [class]="listClass"
509
527
  [attr.id]="id"
528
+ [attr.aria-live]="ariaLive"
529
+ [attr.aria-multiselectable]="isMultiselect"
510
530
  [attr.aria-hidden]="!show">
511
531
  <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
512
532
  <li
@@ -518,6 +538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
518
538
  [multipleSelection]="multipleSelection"
519
539
  [attr.id]="optionPrefix + '-' + getValue(dataItem)"
520
540
  [attr.tabIndex]="-1"
541
+ [attr.aria-selected]="isItemSelected(itemIndex)"
521
542
  [class]="listItemClass"
522
543
  [ngClass]="{
523
544
  'k-disabled': isDisabled(itemIndex),
@@ -574,6 +595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
574
595
  [attr.absolute-index]="dataItem.index"
575
596
  [attr.id]="optionPrefix + '-' + getValue(dataItem.value)"
576
597
  [attr.tabIndex]="-1"
598
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
577
599
  [class]="listItemClass"
578
600
  [ngClass]="{
579
601
  'k-disabled': isDisabled(dataItem.offsetIndex),
@@ -633,6 +655,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
633
655
  type: Input
634
656
  }], checkboxes: [{
635
657
  type: Input
658
+ }], ariaLive: [{
659
+ type: Input
660
+ }], isMultiselect: [{
661
+ type: Input
636
662
  }], data: [{
637
663
  type: Input
638
664
  }], size: [{
@@ -22,4 +22,6 @@ export var NavigationAction;
22
22
  NavigationAction[NavigationAction["Down"] = 11] = "Down";
23
23
  NavigationAction[NavigationAction["Left"] = 12] = "Left";
24
24
  NavigationAction[NavigationAction["Right"] = 13] = "Right";
25
+ NavigationAction[NavigationAction["PageDown"] = 14] = "PageDown";
26
+ NavigationAction[NavigationAction["PageUp"] = 15] = "PageUp";
25
27
  })(NavigationAction || (NavigationAction = {}));
@@ -42,6 +42,8 @@ export class NavigationService {
42
42
  this.backspace = new EventEmitter();
43
43
  this.home = new EventEmitter();
44
44
  this.end = new EventEmitter();
45
+ this.pagedown = new EventEmitter();
46
+ this.pageup = new EventEmitter();
45
47
  }
46
48
  process(args) {
47
49
  const keyCode = args.originalEvent.keyCode;
@@ -93,6 +95,12 @@ export class NavigationService {
93
95
  else if (keyCode === Keys.Backspace) {
94
96
  action = NavigationAction.Backspace;
95
97
  }
98
+ else if (keyCode === Keys.PageDown) {
99
+ action = NavigationAction.PageDown;
100
+ }
101
+ else if (keyCode === Keys.PageUp) {
102
+ action = NavigationAction.PageUp;
103
+ }
96
104
  const eventData = new NavigationEvent(index, args.originalEvent);
97
105
  if (action !== NavigationAction.Undefined) {
98
106
  this[NavigationAction[action].toLowerCase()].emit(eventData);
@@ -6,6 +6,8 @@ import { Component, Input, Output, EventEmitter, ViewChild, HostBinding } from '
6
6
  import { isDocumentAvailable } from '@progress/kendo-angular-common';
7
7
  import { Keys } from '@progress/kendo-angular-common';
8
8
  import { combineStr } from './util';
9
+ import { Subscription } from 'rxjs';
10
+ import { NgControl } from '@angular/forms';
9
11
  import * as i0 from "@angular/core";
10
12
  import * as i1 from "@progress/kendo-angular-l10n";
11
13
  import * as i2 from "@progress/kendo-angular-common";
@@ -13,8 +15,9 @@ import * as i2 from "@progress/kendo-angular-common";
13
15
  * @hidden
14
16
  */
15
17
  export class SearchBarComponent {
16
- constructor(localization, renderer) {
18
+ constructor(localization, renderer, injector) {
17
19
  this.localization = localization;
20
+ this.injector = injector;
18
21
  this.valueChange = new EventEmitter();
19
22
  this.onBlur = new EventEmitter();
20
23
  this.onFocus = new EventEmitter();
@@ -24,9 +27,30 @@ export class SearchBarComponent {
24
27
  this._userInput = "";
25
28
  this._previousValue = "";
26
29
  this._placeholder = "";
30
+ this._isSuggestable = false;
31
+ this._isFilterable = false;
32
+ this.subs = new Subscription();
27
33
  this.direction = localization.rtl ? 'rtl' : 'ltr';
28
34
  this.renderer = renderer;
29
35
  }
36
+ set isSuggestable(isSuggestable) {
37
+ this._isSuggestable = isSuggestable;
38
+ this.setAriaAutocomplete();
39
+ }
40
+ ;
41
+ get isSuggestable() {
42
+ return this._isSuggestable;
43
+ }
44
+ ;
45
+ set isFilterable(isFilterable) {
46
+ this._isFilterable = isFilterable;
47
+ this.setAriaAutocomplete();
48
+ }
49
+ ;
50
+ get isFilterable() {
51
+ return this._isFilterable;
52
+ }
53
+ ;
30
54
  get userInput() {
31
55
  return this._userInput;
32
56
  }
@@ -47,8 +71,19 @@ export class SearchBarComponent {
47
71
  return this.role === 'combobox' ? this.popupOpen : null;
48
72
  }
49
73
  ngOnInit() {
50
- this.localizationChangeSubscription = this.localization
51
- .changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
74
+ this.subs.add(this.localization
75
+ .changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
76
+ }
77
+ ngAfterContentChecked() {
78
+ var _a;
79
+ const formControl = (_a = this.injector.get(NgControl, null)) === null || _a === void 0 ? void 0 : _a.control;
80
+ this.control = formControl;
81
+ if (formControl) {
82
+ this.subs.add(formControl.valueChanges.subscribe(() => {
83
+ this.control = formControl;
84
+ }));
85
+ }
86
+ this.setAriaInvalid();
52
87
  }
53
88
  ngOnChanges(changes) {
54
89
  let previousUserInput;
@@ -80,9 +115,7 @@ export class SearchBarComponent {
80
115
  }
81
116
  }
82
117
  ngOnDestroy() {
83
- if (this.localizationChangeSubscription) {
84
- this.localizationChangeSubscription.unsubscribe();
85
- }
118
+ this.subs.unsubscribe();
86
119
  }
87
120
  writeInputValue(text) {
88
121
  if (isDocumentAvailable()) {
@@ -99,6 +132,33 @@ export class SearchBarComponent {
99
132
  }
100
133
  }
101
134
  }
135
+ setAriaInvalid() {
136
+ if (this.control) {
137
+ if (this.control.invalid) {
138
+ this.renderer.setAttribute(this.input.nativeElement, 'aria-invalid', 'true');
139
+ }
140
+ else {
141
+ this.renderer.setAttribute(this.input.nativeElement, 'aria-invalid', 'false');
142
+ }
143
+ }
144
+ else {
145
+ this.renderer.removeAttribute(this.input.nativeElement, 'aria-invalid');
146
+ }
147
+ }
148
+ setAriaAutocomplete() {
149
+ if (this.isFilterable) {
150
+ this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'list');
151
+ }
152
+ if (this.isSuggestable) {
153
+ this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'inline');
154
+ }
155
+ if (this.isFilterable && this.isSuggestable) {
156
+ this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'both');
157
+ }
158
+ if (!this.isFilterable && !this.isSuggestable) {
159
+ this.renderer.removeAttribute(this.input.nativeElement, 'aria-autocomplete');
160
+ }
161
+ }
102
162
  handleInput(event) {
103
163
  const value = event.target.value;
104
164
  if (value !== this.userInput) {
@@ -115,7 +175,7 @@ export class SearchBarComponent {
115
175
  handleKeydown(event) {
116
176
  const keyCode = event.keyCode;
117
177
  const keys = [Keys.ArrowUp, Keys.ArrowDown, Keys.ArrowLeft, Keys.ArrowRight, Keys.Enter,
118
- Keys.Escape, Keys.Delete, Keys.Backspace, Keys.Home, Keys.End];
178
+ Keys.Escape, Keys.Delete, Keys.Backspace, Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp];
119
179
  if (keys.indexOf(keyCode) > -1) {
120
180
  this.onNavigate.emit(event);
121
181
  }
@@ -139,8 +199,8 @@ export class SearchBarComponent {
139
199
  this.renderer.setAttribute(input, 'size', size.toString());
140
200
  }
141
201
  }
142
- SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
143
- SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { id: "id", listId: "listId", tagListId: "tagListId", activeDescendant: "activeDescendant", noDataLabel: "noDataLabel", disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", popupOpen: "popupOpen", role: "role", userInput: "userInput", suggestedText: "suggestedText", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "class.k-searchbar": "this.searchBarClass" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
202
+ SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
203
+ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { id: "id", listId: "listId", tagListId: "tagListId", activeDescendant: "activeDescendant", disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", popupOpen: "popupOpen", role: "role", isLoading: "isLoading", isSuggestable: "isSuggestable", isFilterable: "isFilterable", userInput: "userInput", suggestedText: "suggestedText", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "class.k-searchbar": "this.searchBarClass" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
144
204
  <input #input
145
205
  autocomplete="off"
146
206
  [id]="id"
@@ -158,14 +218,12 @@ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
158
218
  [attr.tabIndex]="tabIndex"
159
219
  [attr.dir]="direction"
160
220
  [attr.role]="role"
161
- [attr.aria-disabled]="disabled"
162
- [attr.aria-readonly]="readonly"
163
221
  aria-haspopup="listbox"
164
222
  [attr.aria-expanded]="ariaExpanded"
165
- [attr.aria-owns]="listId"
223
+ [attr.aria-controls]="listId"
166
224
  [attr.aria-describedby]="tagListId"
167
225
  [attr.aria-activedescendant]="activeDescendant"
168
- [attr.aria-label]="noDataLabel"
226
+ [attr.aria-busy]="isLoading"
169
227
  />
170
228
  `, isInline: true, directives: [{ type: i2.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
171
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SearchBarComponent, decorators: [{
@@ -190,18 +248,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
190
248
  [attr.tabIndex]="tabIndex"
191
249
  [attr.dir]="direction"
192
250
  [attr.role]="role"
193
- [attr.aria-disabled]="disabled"
194
- [attr.aria-readonly]="readonly"
195
251
  aria-haspopup="listbox"
196
252
  [attr.aria-expanded]="ariaExpanded"
197
- [attr.aria-owns]="listId"
253
+ [attr.aria-controls]="listId"
198
254
  [attr.aria-describedby]="tagListId"
199
255
  [attr.aria-activedescendant]="activeDescendant"
200
- [attr.aria-label]="noDataLabel"
256
+ [attr.aria-busy]="isLoading"
201
257
  />
202
258
  `
203
259
  }]
204
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }]; }, propDecorators: { id: [{
260
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { id: [{
205
261
  type: Input
206
262
  }], listId: [{
207
263
  type: Input
@@ -209,8 +265,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
209
265
  type: Input
210
266
  }], activeDescendant: [{
211
267
  type: Input
212
- }], noDataLabel: [{
213
- type: Input
214
268
  }], disabled: [{
215
269
  type: Input
216
270
  }], readonly: [{
@@ -221,6 +275,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
221
275
  type: Input
222
276
  }], role: [{
223
277
  type: Input
278
+ }], isLoading: [{
279
+ type: Input
280
+ }], isSuggestable: [{
281
+ type: Input
282
+ }], isFilterable: [{
283
+ type: Input
224
284
  }], userInput: [{
225
285
  type: Input
226
286
  }], suggestedText: [{
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { NgModule } from '@angular/core';
6
6
  import { CommonModule } from '@angular/common';
7
- import { FormsModule } from '@angular/forms';
7
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
8
  import { ListComponent } from './list.component';
9
9
  import { SearchBarComponent } from './searchbar.component';
10
10
  import { TagListComponent } from './taglist.component';
@@ -40,20 +40,20 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
40
40
  TemplateContextDirective,
41
41
  TagListComponent,
42
42
  CheckDirective,
43
- CheckAllDirective], imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], exports: [ListComponent,
43
+ CheckAllDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], exports: [ListComponent,
44
44
  ListItemDirective,
45
45
  SelectableDirective,
46
46
  SearchBarComponent,
47
47
  TemplateContextDirective,
48
48
  TagListComponent,
49
49
  CheckDirective,
50
- CheckAllDirective, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
51
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
50
+ CheckAllDirective, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
51
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SharedModule, decorators: [{
53
53
  type: NgModule,
54
54
  args: [{
55
55
  declarations: [INTERNAL_DIRECTIVES],
56
- exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],
57
- imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]
56
+ exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],
57
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]
58
58
  }]
59
59
  }] });