@colijnit/corecomponents_v12 12.0.102 → 12.0.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +428 -299
  2. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
  3. package/colijnit-corecomponents_v12.d.ts +13 -13
  4. package/colijnit-corecomponents_v12.metadata.json +1 -1
  5. package/esm2015/colijnit-corecomponents_v12.js +14 -14
  6. package/esm2015/lib/components/base/base-input.component.js +37 -30
  7. package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +37 -34
  8. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +25 -20
  9. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +28 -23
  10. package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +38 -34
  11. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +41 -37
  12. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +6 -2
  13. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +28 -25
  14. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +6 -2
  15. package/esm2015/lib/components/input-listbox/input-listbox.component.js +30 -26
  16. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +45 -40
  17. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +29 -24
  18. package/esm2015/lib/components/input-search/input-search.component.js +5 -1
  19. package/esm2015/lib/components/input-text/input-text.component.js +50 -44
  20. package/esm2015/lib/components/input-text/input-text.module.js +4 -2
  21. package/esm2015/lib/components/input-textarea/input-textarea.component.js +38 -34
  22. package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -34
  23. package/esm2015/lib/components/validation-error/validation-error.component.js +8 -5
  24. package/esm2015/lib/components/validation-error/validation-error.module.js +4 -2
  25. package/esm2015/lib/directives/overlay/overlay.directive.js +39 -18
  26. package/esm2015/lib/service/overlay.service.js +44 -0
  27. package/esm2015/public-api.js +3 -2
  28. package/fesm2015/colijnit-corecomponents_v12.js +587 -466
  29. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  30. package/lib/components/base/base-input.component.d.ts +4 -3
  31. package/lib/components/drop-down-list/drop-down-list.component.d.ts +8 -6
  32. package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -7
  33. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +8 -6
  34. package/lib/components/input-combo-box/input-combo-box.component.d.ts +9 -7
  35. package/lib/components/input-date-picker/input-date-picker.component.d.ts +11 -9
  36. package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +1 -1
  37. package/lib/components/input-listbox/input-listbox.component.d.ts +9 -7
  38. package/lib/components/input-number-picker/input-number-picker.component.d.ts +12 -10
  39. package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -5
  40. package/lib/components/input-text/input-text.component.d.ts +9 -7
  41. package/lib/components/input-text/style/_layout.scss +1 -1
  42. package/lib/components/input-textarea/input-textarea.component.d.ts +8 -6
  43. package/lib/components/multi-select-list/multi-select-list.component.d.ts +8 -6
  44. package/lib/components/validation-error/style/_layout.scss +40 -30
  45. package/lib/components/validation-error/style/_theme.scss +23 -9
  46. package/lib/components/validation-error/validation-error.component.d.ts +2 -0
  47. package/lib/directives/overlay/overlay.directive.d.ts +4 -3
  48. package/lib/service/overlay.service.d.ts +10 -0
  49. package/package.json +1 -1
  50. package/public-api.d.ts +2 -1
@@ -4296,7 +4296,7 @@
4296
4296
  ValidationErrorComponent.decorators = [
4297
4297
  { type: i0.Component, args: [{
4298
4298
  selector: "co-validation-error",
4299
- template: "\n <div class=\"validation-error-content\">\n <co-icon [iconData]=\"icons.getIcon(Icons.InformationRoundOpen)\"></co-icon>\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\n </div>\n ",
4299
+ template: "\n <div class=\"validation-error-wrapper\" [overlay]=\"parentForOverlay\">\n <div class=\"validation-error-content\">\n <co-icon [iconData]=\"icons.getIcon(Icons.InformationRoundOpen)\"></co-icon>\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\n </div>\n </div>\n ",
4300
4300
  animations: [],
4301
4301
  encapsulation: i0.ViewEncapsulation.None
4302
4302
  },] }
@@ -4306,20 +4306,67 @@
4306
4306
  ]; };
4307
4307
  ValidationErrorComponent.propDecorators = {
4308
4308
  error: [{ type: i0.Input }],
4309
+ parentForOverlay: [{ type: i0.Input }],
4309
4310
  top: [{ type: i0.HostBinding, args: ['style.top.px',] }, { type: i0.Input }],
4310
4311
  left: [{ type: i0.HostBinding, args: ['style.left.px',] }, { type: i0.Input }],
4311
4312
  showClass: [{ type: i0.HostBinding, args: ['class.co-validation-error',] }]
4312
4313
  };
4313
4314
 
4315
+ var OverlayService = /** @class */ (function () {
4316
+ function OverlayService(_componentFactoryResolver, _appRef, _injector) {
4317
+ this._componentFactoryResolver = _componentFactoryResolver;
4318
+ this._appRef = _appRef;
4319
+ this._injector = _injector;
4320
+ }
4321
+ OverlayService.prototype.createComponent = function (compClass, inputs) {
4322
+ var _this = this;
4323
+ if (this._componentRef) {
4324
+ this.removeComponent();
4325
+ }
4326
+ this._componentRef = this._componentFactoryResolver
4327
+ .resolveComponentFactory(compClass)
4328
+ .create(this._injector);
4329
+ if (inputs) {
4330
+ for (var property in inputs) {
4331
+ if (inputs.hasOwnProperty(property)) {
4332
+ this._componentRef.instance[property] = inputs[property];
4333
+ }
4334
+ }
4335
+ }
4336
+ this._appRef.attachView(this._componentRef.hostView);
4337
+ var domElem = this._componentRef.hostView
4338
+ .rootNodes[0];
4339
+ document.body.appendChild(domElem);
4340
+ this._componentRef.onDestroy(function () {
4341
+ _this._appRef.detachView(_this._componentRef.hostView);
4342
+ });
4343
+ };
4344
+ OverlayService.prototype.removeComponent = function () {
4345
+ if (this._componentRef) {
4346
+ this._componentRef.destroy();
4347
+ }
4348
+ };
4349
+ return OverlayService;
4350
+ }());
4351
+ OverlayService.decorators = [
4352
+ { type: i0.Injectable }
4353
+ ];
4354
+ OverlayService.ctorParameters = function () { return [
4355
+ { type: i0.ComponentFactoryResolver },
4356
+ { type: i0.ApplicationRef },
4357
+ { type: i0.Injector }
4358
+ ]; };
4359
+
4314
4360
  /**
4315
4361
  * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
4316
4362
  * adding self as a control to the parent form.
4317
4363
  */
4318
4364
  var BaseInputComponent = /** @class */ (function () {
4319
- function BaseInputComponent(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4365
+ function BaseInputComponent(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) {
4320
4366
  var _this = this;
4321
4367
  this.changeDetector = changeDetector;
4322
4368
  this.componentFactoryResolver = componentFactoryResolver;
4369
+ this.overlayService = overlayService;
4323
4370
  this.formUserChangeListener = formUserChangeListener;
4324
4371
  this.ngZoneWrapper = ngZoneWrapper;
4325
4372
  this.elementRef = elementRef;
@@ -4353,6 +4400,7 @@
4353
4400
  this.canSaveOrCancel = false;
4354
4401
  this.committing = false;
4355
4402
  this.commitFinished = false;
4403
+ this.validationError = "";
4356
4404
  this._markedAsUserTouched = false;
4357
4405
  this._destroyed = false;
4358
4406
  this._hasOnPushCdStrategy = false;
@@ -4630,17 +4678,19 @@
4630
4678
  this.markAsUserTouched();
4631
4679
  }
4632
4680
  };
4633
- BaseInputComponent.prototype.handleDocumentScroll = function () {
4634
- this._positionValidationError();
4635
- };
4636
- BaseInputComponent.prototype.handleWindowResize = function () {
4637
- this._positionValidationError();
4638
- };
4681
+ // @HostListener("document:scroll")
4682
+ // public handleDocumentScroll(): void {
4683
+ // this._positionValidationError();
4684
+ // }
4685
+ // @HostListener("window:resize")
4686
+ // public handleWindowResize(): void {
4687
+ // this._positionValidationError();
4688
+ // }
4639
4689
  BaseInputComponent.prototype.handleKeyDown = function (event) {
4640
4690
  if (this.showSaveCancel && this.canSaveOrCancel) {
4641
4691
  this._handleKeyDown(event);
4642
4692
  }
4643
- this._positionValidationError();
4693
+ // this._positionValidationError();
4644
4694
  };
4645
4695
  Object.defineProperty(BaseInputComponent.prototype, "canChange", {
4646
4696
  get: function () {
@@ -4755,18 +4805,20 @@
4755
4805
  this.keepFocus = false;
4756
4806
  };
4757
4807
  BaseInputComponent.prototype.showValidationError = function (error) {
4758
- if (this.validationErrorContainer) {
4759
- if (this._errorValidationComponent) {
4760
- this._clearErrorComponent();
4761
- }
4762
- var componentFactory = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);
4763
- this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);
4764
- this._errorValidationComponent.instance.error = error;
4765
- if (this._hasOnPushCdStrategy) {
4766
- this.changeDetector.markForCheck();
4767
- }
4768
- this._positionValidationError();
4769
- }
4808
+ this.validationError = error;
4809
+ this.overlayService.createComponent(ValidationErrorComponent, { parentForOverlay: this.elementRef, error: error });
4810
+ // if (this.validationErrorContainer) {
4811
+ // if (this._errorValidationComponent) {
4812
+ // this._clearErrorComponent();
4813
+ // }
4814
+ // const componentFactory: ComponentFactory<ValidationErrorComponent> = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);
4815
+ // this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);
4816
+ // this._errorValidationComponent.instance.error = error;
4817
+ // if (this._hasOnPushCdStrategy) {
4818
+ // this.changeDetector.markForCheck();
4819
+ // }
4820
+ // this._positionValidationError();
4821
+ // }
4770
4822
  };
4771
4823
  /**
4772
4824
  * Emits a modelChange event with given value, indicating that the model of this form input
@@ -4943,13 +4995,14 @@
4943
4995
  });
4944
4996
  };
4945
4997
  BaseInputComponent.prototype._clearErrorComponent = function () {
4946
- if (this.validationErrorContainer) {
4947
- this.validationErrorContainer.clear();
4948
- if (this._errorValidationComponent) {
4949
- this._errorValidationComponent.destroy();
4950
- this._errorValidationComponent = undefined;
4951
- }
4952
- }
4998
+ this.overlayService.removeComponent();
4999
+ // if (this.validationErrorContainer) {
5000
+ // this.validationErrorContainer.clear();
5001
+ // if (this._errorValidationComponent) {
5002
+ // this._errorValidationComponent.destroy();
5003
+ // this._errorValidationComponent = undefined;
5004
+ // }
5005
+ // }
4953
5006
  };
4954
5007
  // whether this.ngModel.control has safe access
4955
5008
  BaseInputComponent.prototype._controlExists = function () {
@@ -5126,6 +5179,7 @@
5126
5179
  BaseInputComponent.ctorParameters = function () { return [
5127
5180
  { type: i0.ChangeDetectorRef },
5128
5181
  { type: i0.ComponentFactoryResolver },
5182
+ { type: OverlayService },
5129
5183
  { type: FormInputUserModelChangeListenerService, decorators: [{ type: i0.Optional }] },
5130
5184
  { type: NgZoneWrapperService, decorators: [{ type: i0.Optional }] },
5131
5185
  { type: i0.ElementRef, decorators: [{ type: i0.Optional }] }
@@ -5185,8 +5239,6 @@
5185
5239
  validationDisabled: [{ type: i0.HostBinding, args: ["class.no-validation",] }],
5186
5240
  onClick: [{ type: i0.HostListener, args: ["click", ["$event"],] }],
5187
5241
  onFocusIn: [{ type: i0.HostListener, args: ["focusin",] }],
5188
- handleDocumentScroll: [{ type: i0.HostListener, args: ["document:scroll",] }],
5189
- handleWindowResize: [{ type: i0.HostListener, args: ["window:resize",] }],
5190
5242
  handleKeyDown: [{ type: i0.HostListener, args: ["keydown", ["$event"],] }]
5191
5243
  };
5192
5244
  __decorate([
@@ -5521,10 +5573,11 @@
5521
5573
 
5522
5574
  var DropDownListComponent = /** @class */ (function (_super) {
5523
5575
  __extends(DropDownListComponent, _super);
5524
- function DropDownListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5525
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5576
+ function DropDownListComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5577
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5526
5578
  _this.formComponent = formComponent;
5527
5579
  _this.changeDetector = changeDetector;
5580
+ _this.overlayService = overlayService;
5528
5581
  _this.componentFactoryResolver = componentFactoryResolver;
5529
5582
  _this.formUserChangeListener = formUserChangeListener;
5530
5583
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -5545,9 +5598,10 @@
5545
5598
  }(BaseInputComponent));
5546
5599
  DropDownListComponent.decorators = [
5547
5600
  { type: i0.Component, args: [{
5548
- selector: "co-drop-down-list",
5549
- template: "\n <ejs-dropdownlist\n [dataSource]=\"collection\"\n [allowFiltering]=\"allowFiltering\"\n [value]=\"model\"\n [fields]=\"fields\"\n [filterBarPlaceholder]=\"filterBarPlaceholder\"\n [filterType]=\"filterType\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n [disabled]=\"disabled\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-dropdownlist>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
5601
+ selector: 'co-drop-down-list',
5602
+ template: "\n <ejs-dropdownlist\n [dataSource]=\"collection\"\n [allowFiltering]=\"allowFiltering\"\n [value]=\"model\"\n [fields]=\"fields\"\n [filterBarPlaceholder]=\"filterBarPlaceholder\"\n [filterType]=\"filterType\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n [disabled]=\"disabled\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-dropdownlist>\n <div class=\"required-indicator\"></div>\n ",
5550
5603
  providers: [
5604
+ OverlayService,
5551
5605
  ej2AngularDropdowns.CheckBoxSelectionService,
5552
5606
  {
5553
5607
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
@@ -5563,6 +5617,7 @@
5563
5617
  DropDownListComponent.ctorParameters = function () { return [
5564
5618
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
5565
5619
  { type: i0.ChangeDetectorRef },
5620
+ { type: OverlayService },
5566
5621
  { type: i0.ComponentFactoryResolver },
5567
5622
  { type: FormInputUserModelChangeListenerService },
5568
5623
  { type: NgZoneWrapperService },
@@ -5578,7 +5633,7 @@
5578
5633
  itemTemplate: [{ type: i0.Input }],
5579
5634
  headerTemplate: [{ type: i0.Input }],
5580
5635
  valueTemplate: [{ type: i0.Input }],
5581
- showClass: [{ type: i0.HostBinding, args: ["class.co-drop-down-list",] }]
5636
+ showClass: [{ type: i0.HostBinding, args: ['class.co-drop-down-list',] }]
5582
5637
  };
5583
5638
 
5584
5639
  var DropDownModule = /** @class */ (function () {
@@ -6300,11 +6355,12 @@
6300
6355
 
6301
6356
  var InputCheckboxComponent = /** @class */ (function (_super) {
6302
6357
  __extends(InputCheckboxComponent, _super);
6303
- function InputCheckboxComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6304
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6358
+ function InputCheckboxComponent(formComponent, iconCacheService, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6359
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6305
6360
  _this.formComponent = formComponent;
6306
6361
  _this.iconCacheService = iconCacheService;
6307
6362
  _this.changeDetector = changeDetector;
6363
+ _this.overlayService = overlayService;
6308
6364
  _this.componentFactoryResolver = componentFactoryResolver;
6309
6365
  _this.formUserChangeListener = formUserChangeListener;
6310
6366
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -6331,15 +6387,17 @@
6331
6387
  }(BaseInputComponent));
6332
6388
  InputCheckboxComponent.decorators = [
6333
6389
  { type: i0.Component, args: [{
6334
- selector: "co-input-checkbox",
6335
- template: "\n <div class=\"checkbox\" (click)=\"handleModelChange($event)\" [class.checked]=\"model\">\n <div class=\"checkmark\" [class.show]=\"model\"></div>\n </div>\n <div class=\"label\" [class.clickable]=\"clickableLabel\" *ngIf=\"label\" [textContent]=\"label\"\n (click)=\"clickableLabel ? handleModelChange($event) : true\"></div>\n ",
6336
- providers: [{
6390
+ selector: 'co-input-checkbox',
6391
+ template: "\n <div class=\"checkbox\" (click)=\"handleModelChange($event)\" [class.checked]=\"model\">\n <div class=\"checkmark\" [class.show]=\"model\"></div>\n </div>\n <div class=\"label\" [class.clickable]=\"clickableLabel\" *ngIf=\"label\" [textContent]=\"label\"\n (click)=\"clickableLabel ? handleModelChange($event) : true\"></div>\n ",
6392
+ providers: [
6393
+ OverlayService, {
6337
6394
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
6338
6395
  useExisting: i0.forwardRef(function () { return InputCheckboxComponent; })
6339
6396
  }, {
6340
6397
  provide: BaseInputComponent,
6341
6398
  useExisting: InputCheckboxComponent
6342
- }],
6399
+ }
6400
+ ],
6343
6401
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6344
6402
  encapsulation: i0.ViewEncapsulation.None
6345
6403
  },] }
@@ -6348,6 +6406,7 @@
6348
6406
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
6349
6407
  { type: IconCacheService },
6350
6408
  { type: i0.ChangeDetectorRef },
6409
+ { type: OverlayService },
6351
6410
  { type: i0.ComponentFactoryResolver },
6352
6411
  { type: FormInputUserModelChangeListenerService },
6353
6412
  { type: NgZoneWrapperService },
@@ -6357,7 +6416,7 @@
6357
6416
  cssClass: [{ type: i0.Input }],
6358
6417
  clickableLabel: [{ type: i0.Input }],
6359
6418
  modelChange: [{ type: i0.Output }],
6360
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-checkbox",] }]
6419
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-checkbox',] }]
6361
6420
  };
6362
6421
 
6363
6422
  ej2Base.enableRipple(true);
@@ -6416,10 +6475,11 @@
6416
6475
 
6417
6476
  var InputCheckboxMultiSelectComponent = /** @class */ (function (_super) {
6418
6477
  __extends(InputCheckboxMultiSelectComponent, _super);
6419
- function InputCheckboxMultiSelectComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6420
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6478
+ function InputCheckboxMultiSelectComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6479
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6421
6480
  _this.formComponent = formComponent;
6422
6481
  _this.changeDetector = changeDetector;
6482
+ _this.overlayService = overlayService;
6423
6483
  _this.componentFactoryResolver = componentFactoryResolver;
6424
6484
  _this.formUserChangeListener = formUserChangeListener;
6425
6485
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -6434,15 +6494,17 @@
6434
6494
  }(BaseInputComponent));
6435
6495
  InputCheckboxMultiSelectComponent.decorators = [
6436
6496
  { type: i0.Component, args: [{
6437
- selector: "co-input-checkbox-multi-select",
6438
- template: "\n <ejs-multiselect\n [placeholder]=\"placeholder\"\n [dataSource]=\"source\"\n [fields]=\"fields\"\n mode=\"CheckBox\"\n showDropDownIcon=\"true\"\n [showSelectAll]=\"false\"\n [filterBarPlaceholder]=\"filterPlaceholder\"\n ></ejs-multiselect>\n ",
6439
- providers: [{
6497
+ selector: 'co-input-checkbox-multi-select',
6498
+ template: "\n <ejs-multiselect\n [placeholder]=\"placeholder\"\n [dataSource]=\"source\"\n [fields]=\"fields\"\n mode=\"CheckBox\"\n showDropDownIcon=\"true\"\n [showSelectAll]=\"false\"\n [filterBarPlaceholder]=\"filterPlaceholder\"\n ></ejs-multiselect>\n ",
6499
+ providers: [
6500
+ OverlayService, {
6440
6501
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
6441
6502
  useExisting: i0.forwardRef(function () { return InputCheckboxMultiSelectComponent; })
6442
6503
  }, {
6443
6504
  provide: BaseInputComponent,
6444
6505
  useExisting: InputCheckboxMultiSelectComponent
6445
- }],
6506
+ }
6507
+ ],
6446
6508
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6447
6509
  encapsulation: i0.ViewEncapsulation.None
6448
6510
  },] }
@@ -6450,6 +6512,7 @@
6450
6512
  InputCheckboxMultiSelectComponent.ctorParameters = function () { return [
6451
6513
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
6452
6514
  { type: i0.ChangeDetectorRef },
6515
+ { type: OverlayService },
6453
6516
  { type: i0.ComponentFactoryResolver },
6454
6517
  { type: FormInputUserModelChangeListenerService },
6455
6518
  { type: NgZoneWrapperService },
@@ -6461,7 +6524,7 @@
6461
6524
  selected: [{ type: i0.Input }],
6462
6525
  placeholder: [{ type: i0.Input }],
6463
6526
  filterPlaceholder: [{ type: i0.Input }],
6464
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-checkbox-multi-select",] }]
6527
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-checkbox-multi-select',] }]
6465
6528
  };
6466
6529
 
6467
6530
  var InputCheckboxMultiSelectModule = /** @class */ (function () {
@@ -6486,10 +6549,11 @@
6486
6549
 
6487
6550
  var InputComboBoxComponent = /** @class */ (function (_super) {
6488
6551
  __extends(InputComboBoxComponent, _super);
6489
- function InputComboBoxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6490
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6552
+ function InputComboBoxComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6553
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6491
6554
  _this.formComponent = formComponent;
6492
6555
  _this.changeDetector = changeDetector;
6556
+ _this.overlayService = overlayService;
6493
6557
  _this.componentFactoryResolver = componentFactoryResolver;
6494
6558
  _this.formUserChangeListener = formUserChangeListener;
6495
6559
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -6514,28 +6578,31 @@
6514
6578
  }(BaseInputComponent));
6515
6579
  InputComboBoxComponent.decorators = [
6516
6580
  { type: i0.Component, args: [{
6517
- selector: "co-input-combo-box",
6518
- template: "\n <ejs-combobox #combo [dataSource]=\"collection\"\n [fields]=\"fields\"\n [disabled]=\"readonly\"\n [placeholder]=\"placeholder\"\n [autofill]=\"autofill\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (valueChange)=\"valueChange.emit($event)\"\n (focus)=\"onFocus()\"\n [popupWidth]=\"popupWidth\"\n [popupHeight]=\"popupHeight\"\n [filterType]=\"filterType\"\n [allowFiltering]=\"allowFiltering\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-combobox>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
6519
- providers: [{
6581
+ selector: 'co-input-combo-box',
6582
+ template: "\n <ejs-combobox #combo [dataSource]=\"collection\"\n [fields]=\"fields\"\n [disabled]=\"readonly\"\n [placeholder]=\"placeholder\"\n [autofill]=\"autofill\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (valueChange)=\"valueChange.emit($event)\"\n (focus)=\"onFocus()\"\n [popupWidth]=\"popupWidth\"\n [popupHeight]=\"popupHeight\"\n [filterType]=\"filterType\"\n [allowFiltering]=\"allowFiltering\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-combobox>\n <div class=\"required-indicator\"></div>\n ",
6583
+ providers: [
6584
+ OverlayService, {
6520
6585
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
6521
6586
  useExisting: i0.forwardRef(function () { return InputComboBoxComponent; })
6522
6587
  }, {
6523
6588
  provide: BaseInputComponent,
6524
6589
  useExisting: InputComboBoxComponent
6525
- }],
6590
+ }
6591
+ ],
6526
6592
  encapsulation: i0.ViewEncapsulation.None
6527
6593
  },] }
6528
6594
  ];
6529
6595
  InputComboBoxComponent.ctorParameters = function () { return [
6530
6596
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
6531
6597
  { type: i0.ChangeDetectorRef },
6598
+ { type: OverlayService },
6532
6599
  { type: i0.ComponentFactoryResolver },
6533
6600
  { type: FormInputUserModelChangeListenerService },
6534
6601
  { type: NgZoneWrapperService },
6535
6602
  { type: i0.ElementRef }
6536
6603
  ]; };
6537
6604
  InputComboBoxComponent.propDecorators = {
6538
- combo: [{ type: i0.ViewChild, args: ["combo",] }],
6605
+ combo: [{ type: i0.ViewChild, args: ['combo',] }],
6539
6606
  autofill: [{ type: i0.Input }],
6540
6607
  allowFiltering: [{ type: i0.Input }],
6541
6608
  filterType: [{ type: i0.Input }],
@@ -6548,7 +6615,7 @@
6548
6615
  popupWidth: [{ type: i0.Input }],
6549
6616
  valueChange: [{ type: i0.Output }],
6550
6617
  isSmall: [{ type: i0.HostBinding, args: ['class.is-small',] }, { type: i0.Input }],
6551
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-combo-box",] }]
6618
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-combo-box',] }]
6552
6619
  };
6553
6620
 
6554
6621
  var InputComboBoxModule = /** @class */ (function () {
@@ -6573,20 +6640,21 @@
6573
6640
 
6574
6641
  var InputDatePickerComponent = /** @class */ (function (_super) {
6575
6642
  __extends(InputDatePickerComponent, _super);
6576
- function InputDatePickerComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6577
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6643
+ function InputDatePickerComponent(formComponent, iconCacheService, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6644
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6578
6645
  _this.formComponent = formComponent;
6579
6646
  _this.iconCacheService = iconCacheService;
6580
6647
  _this.changeDetector = changeDetector;
6648
+ _this.overlayService = overlayService;
6581
6649
  _this.componentFactoryResolver = componentFactoryResolver;
6582
6650
  _this.formUserChangeListener = formUserChangeListener;
6583
6651
  _this.ngZoneWrapper = ngZoneWrapper;
6584
6652
  _this.elementRef = elementRef;
6585
6653
  _this.icons = exports.CoreComponentsIcon;
6586
- _this.dateFormat = "dd-MM-yyyy";
6654
+ _this.dateFormat = 'dd-MM-yyyy';
6587
6655
  _this.calendarIconName = _this.icons.CalendarEmpty;
6588
- _this.iconHeight = "24px";
6589
- _this.placeholder = "";
6656
+ _this.iconHeight = '24px';
6657
+ _this.placeholder = '';
6590
6658
  _this.blur = new i0.EventEmitter();
6591
6659
  _this.isMinimal = false;
6592
6660
  _super.prototype._markAsOnPush.call(_this);
@@ -6633,14 +6701,16 @@
6633
6701
  }(BaseInputComponent));
6634
6702
  InputDatePickerComponent.decorators = [
6635
6703
  { type: i0.Component, args: [{
6636
- selector: "co-input-date",
6637
- template: "\n <ejs-datepicker #ejsDatePicker\n floatLabelType=\"Auto\"\n [format]=\"dateFormat\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-datepicker>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
6638
- providers: [{
6704
+ selector: 'co-input-date',
6705
+ template: "\n <ejs-datepicker #ejsDatePicker\n floatLabelType=\"Auto\"\n [format]=\"dateFormat\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-datepicker>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n ",
6706
+ providers: [
6707
+ OverlayService, {
6639
6708
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: i0.forwardRef(function () { return InputDatePickerComponent; })
6640
6709
  }, {
6641
6710
  provide: BaseInputComponent,
6642
6711
  useExisting: InputDatePickerComponent
6643
- }],
6712
+ }
6713
+ ],
6644
6714
  encapsulation: i0.ViewEncapsulation.None
6645
6715
  },] }
6646
6716
  ];
@@ -6648,20 +6718,21 @@
6648
6718
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
6649
6719
  { type: IconCacheService },
6650
6720
  { type: i0.ChangeDetectorRef },
6721
+ { type: OverlayService },
6651
6722
  { type: i0.ComponentFactoryResolver },
6652
6723
  { type: FormInputUserModelChangeListenerService },
6653
6724
  { type: NgZoneWrapperService },
6654
6725
  { type: i0.ElementRef }
6655
6726
  ]; };
6656
6727
  InputDatePickerComponent.propDecorators = {
6657
- ejsDatePicker: [{ type: i0.ViewChild, args: ["ejsDatePicker",] }],
6728
+ ejsDatePicker: [{ type: i0.ViewChild, args: ['ejsDatePicker',] }],
6658
6729
  dateFormat: [{ type: i0.Input }],
6659
6730
  calendarIconName: [{ type: i0.Input }],
6660
6731
  iconHeight: [{ type: i0.Input }],
6661
6732
  placeholder: [{ type: i0.Input }],
6662
6733
  width: [{ type: i0.Input }],
6663
6734
  blur: [{ type: i0.Output }],
6664
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-date",] }],
6735
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-date',] }],
6665
6736
  isMinimal: [{ type: i0.HostBinding, args: ['class.is-minimal',] }, { type: i0.Input }]
6666
6737
  };
6667
6738
 
@@ -6774,6 +6845,164 @@
6774
6845
  },] }
6775
6846
  ];
6776
6847
 
6848
+ var OverlayDirective = /** @class */ (function () {
6849
+ function OverlayDirective(elementRef) {
6850
+ var _this = this;
6851
+ this.keepInView = false;
6852
+ this.handleScroll = function (event) {
6853
+ _this._checkAndPlaceElement();
6854
+ };
6855
+ this._elementRef = elementRef;
6856
+ }
6857
+ Object.defineProperty(OverlayDirective.prototype, "parent", {
6858
+ set: function (value) {
6859
+ if (value) {
6860
+ this._parent = value instanceof i0.ElementRef ? value : value.elementRef;
6861
+ }
6862
+ else {
6863
+ if (this._parent) {
6864
+ this._resizeObserver.disconnect();
6865
+ }
6866
+ }
6867
+ },
6868
+ enumerable: false,
6869
+ configurable: true
6870
+ });
6871
+ OverlayDirective.prototype.ngOnDestroy = function () {
6872
+ document.removeEventListener("scroll", this.handleScroll, true);
6873
+ this._intersectionObserver.disconnect();
6874
+ this._resizeObserver.disconnect();
6875
+ this._elementRef = undefined;
6876
+ this._parent = undefined;
6877
+ };
6878
+ OverlayDirective.prototype.ngOnInit = function () {
6879
+ var _this = this;
6880
+ if (!this._elementRef || !this._elementRef.nativeElement) {
6881
+ return;
6882
+ }
6883
+ document.addEventListener("scroll", this.handleScroll, true);
6884
+ this._checkAndPlaceElement();
6885
+ this._resizeObserver = new ResizeObserver(function (entries) {
6886
+ _this._checkAndPlaceElement();
6887
+ });
6888
+ this._intersectionObserver = new IntersectionObserver(function (entries) {
6889
+ if (entries && entries.length > 0) {
6890
+ if (entries[0].isIntersecting === false) {
6891
+ _this._elementRef.nativeElement.style.opacity = 0; // hide cause parent is not visible
6892
+ }
6893
+ else {
6894
+ _this._elementRef.nativeElement.style.opacity = 1;
6895
+ }
6896
+ }
6897
+ }, {
6898
+ root: null
6899
+ });
6900
+ this._intersectionObserver.observe(this._parent.nativeElement); // observe parent for visibility
6901
+ this._resizeObserver.observe(document.body);
6902
+ };
6903
+ OverlayDirective.prototype._checkAndPlaceElement = function () {
6904
+ if (this._elementRef && this._elementRef.nativeElement && this._parent && this._parent.nativeElement) {
6905
+ var elementRect = this._elementRef.nativeElement.getBoundingClientRect();
6906
+ var parentRect = this._parent.nativeElement.getBoundingClientRect();
6907
+ this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);
6908
+ }
6909
+ };
6910
+ OverlayDirective.prototype._placeElement = function (bottom, right, parentRect, elementRect) {
6911
+ if (bottom < parentRect.bottom + elementRect.height) { // make sure it fits at the bottom
6912
+ this._elementRef.nativeElement.style.top = (parentRect.top - elementRect.height) + "px";
6913
+ this._elementRef.nativeElement.classList.add('top');
6914
+ }
6915
+ else {
6916
+ this._elementRef.nativeElement.classList.remove('top');
6917
+ this._elementRef.nativeElement.style.top = parentRect.bottom + "px";
6918
+ }
6919
+ this._elementRef.nativeElement.style.left = parentRect.left + "px";
6920
+ if (this.keepInView) {
6921
+ if (elementRect.right > window.innerWidth) {
6922
+ //see if we can move it to the left
6923
+ if ((window.innerWidth - elementRect.width) > 0) {
6924
+ this._elementRef.nativeElement.style.left = (window.innerWidth - elementRect.width) + "px";
6925
+ }
6926
+ else { //resize so it fits into view
6927
+ this._elementRef.nativeElement.style.width = window.innerWidth + "px";
6928
+ this._elementRef.nativeElement.style.left = 0;
6929
+ }
6930
+ }
6931
+ }
6932
+ };
6933
+ return OverlayDirective;
6934
+ }());
6935
+ OverlayDirective.decorators = [
6936
+ { type: i0.Directive, args: [{
6937
+ selector: "[overlay]"
6938
+ },] }
6939
+ ];
6940
+ OverlayDirective.ctorParameters = function () { return [
6941
+ { type: i0.ElementRef }
6942
+ ]; };
6943
+ OverlayDirective.propDecorators = {
6944
+ parent: [{ type: i0.Input, args: ["overlay",] }],
6945
+ keepInView: [{ type: i0.Input }]
6946
+ };
6947
+
6948
+ var OverlayParentDirective = /** @class */ (function () {
6949
+ function OverlayParentDirective(elementRef) {
6950
+ this.elementRef = elementRef;
6951
+ }
6952
+ OverlayParentDirective.prototype.ngOnDestroy = function () {
6953
+ this.elementRef = undefined;
6954
+ };
6955
+ return OverlayParentDirective;
6956
+ }());
6957
+ OverlayParentDirective.decorators = [
6958
+ { type: i0.Directive, args: [{
6959
+ selector: '[overlayParent]',
6960
+ exportAs: 'overlayParent'
6961
+ },] }
6962
+ ];
6963
+ OverlayParentDirective.ctorParameters = function () { return [
6964
+ { type: i0.ElementRef }
6965
+ ]; };
6966
+
6967
+ var OverlayModule = /** @class */ (function () {
6968
+ function OverlayModule() {
6969
+ }
6970
+ return OverlayModule;
6971
+ }());
6972
+ OverlayModule.decorators = [
6973
+ { type: i0.NgModule, args: [{
6974
+ declarations: [
6975
+ OverlayDirective,
6976
+ OverlayParentDirective
6977
+ ],
6978
+ exports: [
6979
+ OverlayDirective,
6980
+ OverlayParentDirective
6981
+ ]
6982
+ },] }
6983
+ ];
6984
+
6985
+ var ValidationErrorModule = /** @class */ (function () {
6986
+ function ValidationErrorModule() {
6987
+ }
6988
+ return ValidationErrorModule;
6989
+ }());
6990
+ ValidationErrorModule.decorators = [
6991
+ { type: i0.NgModule, args: [{
6992
+ imports: [
6993
+ common.CommonModule,
6994
+ IconModule,
6995
+ OverlayModule
6996
+ ],
6997
+ declarations: [
6998
+ ValidationErrorComponent
6999
+ ],
7000
+ exports: [
7001
+ ValidationErrorComponent
7002
+ ]
7003
+ },] }
7004
+ ];
7005
+
6777
7006
  var InputDatePickerModule = /** @class */ (function () {
6778
7007
  function InputDatePickerModule() {
6779
7008
  }
@@ -6788,7 +7017,9 @@
6788
7017
  IconModule,
6789
7018
  AppendPipeModule,
6790
7019
  ej2AngularCalendars.DatePickerModule,
6791
- CommitButtonsModule
7020
+ CommitButtonsModule,
7021
+ ValidationErrorModule,
7022
+ OverlayModule
6792
7023
  ],
6793
7024
  schemas: [
6794
7025
  i0.NO_ERRORS_SCHEMA
@@ -6802,8 +7033,8 @@
6802
7033
  __extends(InputDateRangePickerComponent, _super);
6803
7034
  function InputDateRangePickerComponent() {
6804
7035
  var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6805
- _this.dateFormat = "dd-MM-yyyy";
6806
- _this.placeholder = "";
7036
+ _this.dateFormat = 'dd-MM-yyyy';
7037
+ _this.placeholder = '';
6807
7038
  _this.startDateChange = new i0.EventEmitter();
6808
7039
  _this.endDateChange = new i0.EventEmitter();
6809
7040
  _this.dateRangeChange = new i0.EventEmitter();
@@ -6828,15 +7059,18 @@
6828
7059
  }(BaseInputComponent));
6829
7060
  InputDateRangePickerComponent.decorators = [
6830
7061
  { type: i0.Component, args: [{
6831
- selector: "co-input-date-range",
6832
- template: "\n <ejs-daterangepicker #ejsDateRangePicker\n [format]=\"dateFormat\"\n floatLabelType=\"Auto\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n [(startDate)]=\"startDate\"\n [(endDate)]=\"endDate\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"rangeChange()\"\n (close)=\"close.next($event)\"\n (select)=\"select.next($event)\"\n (cleared)=\"cleared.next($event)\"\n ></ejs-daterangepicker>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
6833
- providers: [{
7062
+ selector: 'co-input-date-range',
7063
+ template: "\n <ejs-daterangepicker #ejsDateRangePicker\n [format]=\"dateFormat\"\n floatLabelType=\"Auto\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n [(startDate)]=\"startDate\"\n [(endDate)]=\"endDate\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"rangeChange()\"\n (close)=\"close.next($event)\"\n (select)=\"select.next($event)\"\n (cleared)=\"cleared.next($event)\"\n ></ejs-daterangepicker>\n <div class=\"required-indicator\"></div>\n ",
7064
+ providers: [
7065
+ OverlayService,
7066
+ {
6834
7067
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
6835
7068
  useExisting: i0.forwardRef(function () { return InputDateRangePickerComponent; })
6836
7069
  }, {
6837
7070
  provide: BaseInputComponent,
6838
7071
  useExisting: InputDateRangePickerComponent
6839
- }],
7072
+ }
7073
+ ],
6840
7074
  encapsulation: i0.ViewEncapsulation.None
6841
7075
  },] }
6842
7076
  ];
@@ -6851,7 +7085,7 @@
6851
7085
  close: [{ type: i0.Output }],
6852
7086
  select: [{ type: i0.Output }],
6853
7087
  cleared: [{ type: i0.Output }],
6854
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-date-range-picker",] }]
7088
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-date-range-picker',] }]
6855
7089
  };
6856
7090
 
6857
7091
  var InputDateRangePickerModule = /** @class */ (function () {
@@ -6864,7 +7098,9 @@
6864
7098
  imports: [
6865
7099
  BaseModule,
6866
7100
  ej2AngularCalendars.DateRangePickerModule,
6867
- forms.FormsModule
7101
+ forms.FormsModule,
7102
+ ValidationErrorModule,
7103
+ OverlayModule
6868
7104
  ],
6869
7105
  declarations: [
6870
7106
  InputDateRangePickerComponent
@@ -6878,10 +7114,11 @@
6878
7114
  ej2AngularDropdowns.ListBoxComponent.Inject(ej2AngularDropdowns.CheckBoxSelection);
6879
7115
  var InputListboxComponent = /** @class */ (function (_super) {
6880
7116
  __extends(InputListboxComponent, _super);
6881
- function InputListboxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
6882
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7117
+ function InputListboxComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7118
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
6883
7119
  _this.formComponent = formComponent;
6884
7120
  _this.changeDetector = changeDetector;
7121
+ _this.overlayService = overlayService;
6885
7122
  _this.componentFactoryResolver = componentFactoryResolver;
6886
7123
  _this.formUserChangeListener = formUserChangeListener;
6887
7124
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -6929,19 +7166,22 @@
6929
7166
  InputListboxComponent.decorators = [
6930
7167
  { type: i0.Component, args: [{
6931
7168
  selector: 'co-input-listbox',
6932
- template: "\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\n <div class=\"co-input-listbox-content\" [ngClass]=\"customCssClass ? customCssClass : undefined\">\n <ejs-listbox\n [ngModel]=\"value\"\n [dataSource]=\"collection\"\n [fields]=\"fields\"\n [disabled]=\"readonly\"\n [selectionSettings]=\"selectionSettings\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-listbox>\n </div>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
6933
- providers: [{
7169
+ template: "\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\n <div class=\"co-input-listbox-content\" [ngClass]=\"customCssClass ? customCssClass : undefined\">\n <ejs-listbox\n [ngModel]=\"value\"\n [dataSource]=\"collection\"\n [fields]=\"fields\"\n [disabled]=\"readonly\"\n [selectionSettings]=\"selectionSettings\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-listbox>\n </div>\n <div class=\"required-indicator\"></div>\n ",
7170
+ providers: [
7171
+ OverlayService, {
6934
7172
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: i0.forwardRef(function () { return InputListboxComponent; })
6935
7173
  }, {
6936
7174
  provide: BaseInputComponent,
6937
7175
  useExisting: InputListboxComponent
6938
- }],
7176
+ }
7177
+ ],
6939
7178
  encapsulation: i0.ViewEncapsulation.None
6940
7179
  },] }
6941
7180
  ];
6942
7181
  InputListboxComponent.ctorParameters = function () { return [
6943
7182
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
6944
7183
  { type: i0.ChangeDetectorRef },
7184
+ { type: OverlayService },
6945
7185
  { type: i0.ComponentFactoryResolver },
6946
7186
  { type: FormInputUserModelChangeListenerService },
6947
7187
  { type: NgZoneWrapperService },
@@ -7324,10 +7564,11 @@
7324
7564
  // A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
7325
7565
  var InputNumberPickerComponent = /** @class */ (function (_super) {
7326
7566
  __extends(InputNumberPickerComponent, _super);
7327
- function InputNumberPickerComponent(formComponent, iconCacheService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener) {
7328
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener) || this;
7567
+ function InputNumberPickerComponent(formComponent, iconCacheService, overlayService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener) {
7568
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener) || this;
7329
7569
  _this.formComponent = formComponent;
7330
7570
  _this.iconCacheService = iconCacheService;
7571
+ _this.overlayService = overlayService;
7331
7572
  _this._ngZone = _ngZone;
7332
7573
  _this.componentFactoryResolver = componentFactoryResolver;
7333
7574
  _this.minusIcon = exports.CoreComponentsIcon.MinusSimple;
@@ -7568,13 +7809,15 @@
7568
7809
  InputNumberPickerComponent.decorators = [
7569
7810
  { type: i0.Component, args: [{
7570
7811
  selector: 'co-input-number-picker',
7571
- template: "\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator circle\" [class.select]=\"minSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (ngModelChange)=\"handleChangeModel($event)\"\n (keydown)=\"handleKeyDown($event)\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator circle\" [class.select]=\"plusSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n ",
7572
- providers: [{
7812
+ template: "\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator circle\" [class.select]=\"minSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (ngModelChange)=\"handleChangeModel($event)\"\n (keydown)=\"handleKeyDown($event)\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator circle\" [class.select]=\"plusSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n ",
7813
+ providers: [
7814
+ OverlayService, {
7573
7815
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: i0.forwardRef(function () { return InputNumberPickerComponent; })
7574
7816
  }, {
7575
7817
  provide: BaseInputComponent,
7576
7818
  useExisting: InputNumberPickerComponent
7577
- }],
7819
+ }
7820
+ ],
7578
7821
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
7579
7822
  encapsulation: i0.ViewEncapsulation.None
7580
7823
  },] }
@@ -7582,6 +7825,7 @@
7582
7825
  InputNumberPickerComponent.ctorParameters = function () { return [
7583
7826
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
7584
7827
  { type: IconCacheService, decorators: [{ type: i0.Inject, args: [IconCacheService,] }] },
7828
+ { type: OverlayService },
7585
7829
  { type: i0.NgZone },
7586
7830
  { type: i0.ComponentFactoryResolver },
7587
7831
  { type: i0.ChangeDetectorRef },
@@ -7599,8 +7843,8 @@
7599
7843
  noValidation: [{ type: i0.Input }],
7600
7844
  decimals: [{ type: i0.Input }],
7601
7845
  modelChange: [{ type: i0.Output }],
7602
- showButtonsOnFocusOnly: [{ type: i0.HostBinding, args: ["class.show-buttons-on-focus-only",] }],
7603
- hasLabel: [{ type: i0.HostBinding, args: ["class.has-label",] }],
7846
+ showButtonsOnFocusOnly: [{ type: i0.HostBinding, args: ['class.show-buttons-on-focus-only',] }],
7847
+ hasLabel: [{ type: i0.HostBinding, args: ['class.has-label',] }],
7604
7848
  showClass: [{ type: i0.HostBinding, args: ['class.co-input-number-picker',] }]
7605
7849
  };
7606
7850
  __decorate([
@@ -7609,16 +7853,17 @@
7609
7853
 
7610
7854
  var InputTextComponent = /** @class */ (function (_super) {
7611
7855
  __extends(InputTextComponent, _super);
7612
- function InputTextComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7613
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7856
+ function InputTextComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7857
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7614
7858
  _this.formComponent = formComponent;
7615
7859
  _this.changeDetector = changeDetector;
7860
+ _this.overlayService = overlayService;
7616
7861
  _this.componentFactoryResolver = componentFactoryResolver;
7617
7862
  _this.formUserChangeListener = formUserChangeListener;
7618
7863
  _this.ngZoneWrapper = ngZoneWrapper;
7619
7864
  _this.elementRef = elementRef;
7620
- _this.placeholder = "";
7621
- _this.type = "text";
7865
+ _this.placeholder = '';
7866
+ _this.type = 'text';
7622
7867
  _this.digitsOnly = false;
7623
7868
  _this.excludePlusMinus = true;
7624
7869
  _this.showClearButton = undefined;
@@ -7687,21 +7932,24 @@
7687
7932
  }(BaseInputComponent));
7688
7933
  InputTextComponent.decorators = [
7689
7934
  { type: i0.Component, args: [{
7690
- selector: "co-input-text",
7691
- template: "\n <div class=\"input-text-wrapper\">\n <co-icon *ngIf=\"leftIcon\" class=\"input-text-left-icon\" [icon]=\"leftIcon\" [iconData]=\"leftIconData\" (click)=\"handleLeftIconClick($event)\"></co-icon>\n <div *ngIf=\"leftIcon\" class=\"spacer\"></div>\n <div class=\"input-wrapper\">\n <label *ngIf=\"showPlaceholderOnFocus || (!showPlaceholderOnFocus && !hasValue && !focused)\"\n [textContent]=\"placeholder\"></label>\n <input #input\n [type]=\"digitsOnly ? 'number' : type\"\n [ngModel]=\"model\"\n [min]=\"type === 'number' && this.min ? this.min : undefined\"\n [max]=\"type === 'number' && this.max ? this.max : undefined\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (keydown)=\"digitsOnly ? excludeNonDigitChars($event) : true\"\n >\n </div>\n <div *ngIf=\"rightIcon\" class=\"spacer\"></div>\n <co-icon *ngIf=\"rightIcon\" class=\"input-text-right-icon\" [icon]=\"rightIcon\" [iconData]=\"rightIconData\" (click)=\"handleRightIconClick($event)\"></co-icon>\n </div>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
7692
- providers: [{
7935
+ selector: 'co-input-text',
7936
+ template: "\n <div class=\"input-text-wrapper\" overlayParent #parentForOverlay=\"overlayParent\">\n <co-icon *ngIf=\"leftIcon\" class=\"input-text-left-icon\" [icon]=\"leftIcon\" [iconData]=\"leftIconData\"\n (click)=\"handleLeftIconClick($event)\"></co-icon>\n <div *ngIf=\"leftIcon\" class=\"spacer\"></div>\n <div class=\"input-wrapper\">\n <label *ngIf=\"showPlaceholderOnFocus || (!showPlaceholderOnFocus && !hasValue && !focused)\"\n [textContent]=\"placeholder\"></label>\n <input #input\n [type]=\"digitsOnly ? 'number' : type\"\n [ngModel]=\"model\"\n [min]=\"type === 'number' && this.min ? this.min : undefined\"\n [max]=\"type === 'number' && this.max ? this.max : undefined\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (keydown)=\"digitsOnly ? excludeNonDigitChars($event) : true\"\n >\n </div>\n <div *ngIf=\"rightIcon\" class=\"spacer\"></div>\n <co-icon *ngIf=\"rightIcon\" class=\"input-text-right-icon\" [icon]=\"rightIcon\" [iconData]=\"rightIconData\"\n (click)=\"handleRightIconClick($event)\"></co-icon>\n </div>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n ",
7937
+ providers: [
7938
+ OverlayService, {
7693
7939
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
7694
7940
  useExisting: i0.forwardRef(function () { return InputTextComponent; })
7695
7941
  }, {
7696
7942
  provide: BaseInputComponent,
7697
7943
  useExisting: InputTextComponent
7698
- }],
7944
+ }
7945
+ ],
7699
7946
  encapsulation: i0.ViewEncapsulation.None
7700
7947
  },] }
7701
7948
  ];
7702
7949
  InputTextComponent.ctorParameters = function () { return [
7703
7950
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
7704
7951
  { type: i0.ChangeDetectorRef },
7952
+ { type: OverlayService },
7705
7953
  { type: i0.ComponentFactoryResolver },
7706
7954
  { type: FormInputUserModelChangeListenerService },
7707
7955
  { type: NgZoneWrapperService },
@@ -7725,32 +7973,12 @@
7725
7973
  hideArrowButtons: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.hide-arrows',] }],
7726
7974
  leftIconClick: [{ type: i0.Output }],
7727
7975
  rightIconClick: [{ type: i0.Output }],
7728
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-text",] }],
7976
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-text',] }],
7729
7977
  hasLeftIcon: [{ type: i0.HostBinding, args: ['class.has-left-icon',] }],
7730
7978
  hasRightIcon: [{ type: i0.HostBinding, args: ['class.has-right-icon',] }],
7731
- hasOwnLabel: [{ type: i0.HostBinding, args: ["class.has-own-label",] }]
7979
+ hasOwnLabel: [{ type: i0.HostBinding, args: ['class.has-own-label',] }]
7732
7980
  };
7733
7981
 
7734
- var ValidationErrorModule = /** @class */ (function () {
7735
- function ValidationErrorModule() {
7736
- }
7737
- return ValidationErrorModule;
7738
- }());
7739
- ValidationErrorModule.decorators = [
7740
- { type: i0.NgModule, args: [{
7741
- imports: [
7742
- common.CommonModule,
7743
- IconModule
7744
- ],
7745
- declarations: [
7746
- ValidationErrorComponent
7747
- ],
7748
- exports: [
7749
- ValidationErrorComponent
7750
- ]
7751
- },] }
7752
- ];
7753
-
7754
7982
  var InputTextModule = /** @class */ (function () {
7755
7983
  function InputTextModule() {
7756
7984
  }
@@ -7767,7 +7995,8 @@
7767
7995
  ej2AngularInputs.TextBoxAllModule,
7768
7996
  ej2AngularInputs.NumericTextBoxModule,
7769
7997
  ValidationErrorModule,
7770
- CommitButtonsModule
7998
+ CommitButtonsModule,
7999
+ OverlayModule
7771
8000
  ],
7772
8001
  declarations: [
7773
8002
  InputTextComponent
@@ -7798,10 +8027,11 @@
7798
8027
 
7799
8028
  var InputRadioButtonComponent = /** @class */ (function (_super) {
7800
8029
  __extends(InputRadioButtonComponent, _super);
7801
- function InputRadioButtonComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7802
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
8030
+ function InputRadioButtonComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
8031
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7803
8032
  _this.formComponent = formComponent;
7804
8033
  _this.changeDetector = changeDetector;
8034
+ _this.overlayService = overlayService;
7805
8035
  _this.componentFactoryResolver = componentFactoryResolver;
7806
8036
  _this.formUserChangeListener = formUserChangeListener;
7807
8037
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -7831,19 +8061,21 @@
7831
8061
  }(BaseInputComponent));
7832
8062
  InputRadioButtonComponent.decorators = [
7833
8063
  { type: i0.Component, args: [{
7834
- selector: "co-input-radio-button",
7835
- template: "\n <div class=\"outer-circle\" [class.selected]=\"model\">\n <div class=\"inner-circle\" *ngIf=\"model\" @showSelected></div>\n </div>\n <div class=\"label\" *ngIf=\"label\" [textContent]=\"label\"></div>\n <input #input [ngModel]=\"model\" type=\"hidden\">\n ",
7836
- providers: [{
8064
+ selector: 'co-input-radio-button',
8065
+ template: "\n <div class=\"outer-circle\" [class.selected]=\"model\">\n <div class=\"inner-circle\" *ngIf=\"model\" @showSelected></div>\n </div>\n <div class=\"label\" *ngIf=\"label\" [textContent]=\"label\"></div>\n <input #input [ngModel]=\"model\" type=\"hidden\">\n ",
8066
+ providers: [
8067
+ OverlayService, {
7837
8068
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: i0.forwardRef(function () { return InputRadioButtonComponent; })
7838
8069
  }, {
7839
8070
  provide: BaseInputComponent,
7840
8071
  useExisting: InputRadioButtonComponent
7841
- }],
8072
+ }
8073
+ ],
7842
8074
  animations: [
7843
- animations.trigger("showSelected", [
7844
- animations.state("void", animations.style({ transform: "scale(0)" })),
7845
- animations.state("*", animations.style({ transform: "scale(1)" })),
7846
- animations.transition("void <=> *", animations.animate("200ms ease-in-out")),
8075
+ animations.trigger('showSelected', [
8076
+ animations.state('void', animations.style({ transform: 'scale(0)' })),
8077
+ animations.state('*', animations.style({ transform: 'scale(1)' })),
8078
+ animations.transition('void <=> *', animations.animate('200ms ease-in-out')),
7847
8079
  ])
7848
8080
  ],
7849
8081
  encapsulation: i0.ViewEncapsulation.None
@@ -7852,15 +8084,16 @@
7852
8084
  InputRadioButtonComponent.ctorParameters = function () { return [
7853
8085
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
7854
8086
  { type: i0.ChangeDetectorRef },
8087
+ { type: OverlayService },
7855
8088
  { type: i0.ComponentFactoryResolver },
7856
8089
  { type: FormInputUserModelChangeListenerService },
7857
8090
  { type: NgZoneWrapperService },
7858
8091
  { type: i0.ElementRef }
7859
8092
  ]; };
7860
8093
  InputRadioButtonComponent.propDecorators = {
7861
- isModelSelected: [{ type: i0.HostBinding, args: ["class.selected",] }],
7862
- showClass: [{ type: i0.HostBinding, args: ["class.co-radio-button",] }],
7863
- handleClick: [{ type: i0.HostListener, args: ["click", ["$event"],] }]
8094
+ isModelSelected: [{ type: i0.HostBinding, args: ['class.selected',] }],
8095
+ showClass: [{ type: i0.HostBinding, args: ['class.co-radio-button',] }],
8096
+ handleClick: [{ type: i0.HostListener, args: ['click', ['$event'],] }]
7864
8097
  };
7865
8098
 
7866
8099
  var InputRadioButtonModule = /** @class */ (function () {
@@ -7913,6 +8146,9 @@
7913
8146
  { type: i0.Component, args: [{
7914
8147
  selector: 'co-input-search',
7915
8148
  template: "\n <co-input-text\n [ngClass]=\"customCssClass\"\n [model]=\"model\"\n [leftIcon]=\"useLeftIcon ? searchIcon : null\"\n [rightIcon]=\"useRightIcon ? searchIcon : null\"\n [leftIconData]=\"useLeftIcon && leftIconData ? leftIconData : undefined\"\n [rightIconData]=\"useRightIcon && rightIconData ? rightIconData : undefined\"\n [placeholder]=\"placeholder\"\n [customHeight]=\"true\"\n [showPlaceholderOnFocus]=\"false\"\n (modelChange)=\"modelChange.emit($event)\"\n (leftIconClick)=\"leftIconClick.emit($event)\"\n (rightIconClick)=\"rightIconClick.emit($event)\"\n ></co-input-text>\n ",
8149
+ providers: [
8150
+ OverlayService
8151
+ ],
7916
8152
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
7917
8153
  encapsulation: i0.ViewEncapsulation.None
7918
8154
  },] }
@@ -7956,15 +8192,16 @@
7956
8192
 
7957
8193
  var InputTextareaComponent = /** @class */ (function (_super) {
7958
8194
  __extends(InputTextareaComponent, _super);
7959
- function InputTextareaComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7960
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
8195
+ function InputTextareaComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
8196
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7961
8197
  _this.formComponent = formComponent;
7962
8198
  _this.changeDetector = changeDetector;
8199
+ _this.overlayService = overlayService;
7963
8200
  _this.componentFactoryResolver = componentFactoryResolver;
7964
8201
  _this.formUserChangeListener = formUserChangeListener;
7965
8202
  _this.ngZoneWrapper = ngZoneWrapper;
7966
8203
  _this.elementRef = elementRef;
7967
- _this.placeholder = "";
8204
+ _this.placeholder = '';
7968
8205
  _this.hasOwnLabel = true;
7969
8206
  _super.prototype._markAsOnPush.call(_this);
7970
8207
  return _this;
@@ -7976,21 +8213,24 @@
7976
8213
  }(BaseInputComponent));
7977
8214
  InputTextareaComponent.decorators = [
7978
8215
  { type: i0.Component, args: [{
7979
- selector: "co-input-textarea",
7980
- template: "\n <label [textContent]=\"placeholder\"></label>\n <textarea\n #input\n type=\"textarea\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></textarea>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
7981
- providers: [{
8216
+ selector: 'co-input-textarea',
8217
+ template: "\n <label [textContent]=\"placeholder\"></label>\n <textarea\n #input\n type=\"textarea\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></textarea>\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\n [committing]=\"committing\"\n [commitFinished]=\"commitFinished\"\n (commitClick)=\"commitClick($event)\"\n (cancelClick)=\"cancelClick($event)\"\n >\n </co-commit-buttons>\n <div class=\"required-indicator\"></div>\n ",
8218
+ providers: [
8219
+ OverlayService, {
7982
8220
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
7983
8221
  useExisting: i0.forwardRef(function () { return InputTextareaComponent; })
7984
8222
  }, {
7985
8223
  provide: BaseInputComponent,
7986
8224
  useExisting: InputTextareaComponent
7987
- }],
8225
+ }
8226
+ ],
7988
8227
  encapsulation: i0.ViewEncapsulation.None
7989
8228
  },] }
7990
8229
  ];
7991
8230
  InputTextareaComponent.ctorParameters = function () { return [
7992
8231
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
7993
8232
  { type: i0.ChangeDetectorRef },
8233
+ { type: OverlayService },
7994
8234
  { type: i0.ComponentFactoryResolver },
7995
8235
  { type: FormInputUserModelChangeListenerService },
7996
8236
  { type: NgZoneWrapperService },
@@ -7998,8 +8238,8 @@
7998
8238
  ]; };
7999
8239
  InputTextareaComponent.propDecorators = {
8000
8240
  placeholder: [{ type: i0.Input }],
8001
- showClass: [{ type: i0.HostBinding, args: ["class.co-input-textarea",] }],
8002
- hasOwnLabel: [{ type: i0.HostBinding, args: ["class.has-own-label",] }]
8241
+ showClass: [{ type: i0.HostBinding, args: ['class.co-input-textarea',] }],
8242
+ hasOwnLabel: [{ type: i0.HostBinding, args: ['class.has-own-label',] }]
8003
8243
  };
8004
8244
 
8005
8245
  var InputTextareaModule = /** @class */ (function () {
@@ -8026,10 +8266,11 @@
8026
8266
 
8027
8267
  var MultiSelectListComponent = /** @class */ (function (_super) {
8028
8268
  __extends(MultiSelectListComponent, _super);
8029
- function MultiSelectListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
8030
- var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
8269
+ function MultiSelectListComponent(formComponent, changeDetector, overlayService, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
8270
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) || this;
8031
8271
  _this.formComponent = formComponent;
8032
8272
  _this.changeDetector = changeDetector;
8273
+ _this.overlayService = overlayService;
8033
8274
  _this.componentFactoryResolver = componentFactoryResolver;
8034
8275
  _this.formUserChangeListener = formUserChangeListener;
8035
8276
  _this.ngZoneWrapper = ngZoneWrapper;
@@ -8040,14 +8281,14 @@
8040
8281
  */
8041
8282
  _this.fields = {};
8042
8283
  _this.showSelectAll = true;
8043
- _this.mode = "Default";
8284
+ _this.mode = 'Default';
8044
8285
  _super.prototype._markAsOnPush.call(_this);
8045
8286
  return _this;
8046
8287
  }
8047
8288
  Object.defineProperty(MultiSelectListComponent.prototype, "showCheckbox", {
8048
8289
  set: function (value) {
8049
8290
  if (value) {
8050
- this.mode = "CheckBox";
8291
+ this.mode = 'CheckBox';
8051
8292
  }
8052
8293
  },
8053
8294
  enumerable: false,
@@ -8068,9 +8309,10 @@
8068
8309
  }(BaseInputComponent));
8069
8310
  MultiSelectListComponent.decorators = [
8070
8311
  { type: i0.Component, args: [{
8071
- selector: "co-multi-select-list",
8072
- template: "\n <ejs-multiselect\n [dataSource]=\"collection\"\n [placeholder]=\"placeholder\"\n [value]=\"model\"\n [mode]=\"mode\"\n [fields]=\"fields\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n [footerTemplate]=\"footerTemplate\"\n [selectAllText]=\"'Select All'\"\n [showSelectAll]=showSelectAll\n [ngModel]=\"model\"\n (ngModelChange)=\"handleModelChange($event)\"\n (valueChange)=\"handleModelChange($event)\"\n ></ejs-multiselect>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
8312
+ selector: 'co-multi-select-list',
8313
+ template: "\n <ejs-multiselect\n [dataSource]=\"collection\"\n [placeholder]=\"placeholder\"\n [value]=\"model\"\n [mode]=\"mode\"\n [fields]=\"fields\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n [footerTemplate]=\"footerTemplate\"\n [selectAllText]=\"'Select All'\"\n [showSelectAll]=showSelectAll\n [ngModel]=\"model\"\n (ngModelChange)=\"handleModelChange($event)\"\n (valueChange)=\"handleModelChange($event)\"\n ></ejs-multiselect>\n <div class=\"required-indicator\"></div>\n ",
8073
8314
  providers: [
8315
+ OverlayService,
8074
8316
  ej2AngularDropdowns.CheckBoxSelectionService,
8075
8317
  {
8076
8318
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
@@ -8086,6 +8328,7 @@
8086
8328
  MultiSelectListComponent.ctorParameters = function () { return [
8087
8329
  { type: FormComponent, decorators: [{ type: i0.Optional }] },
8088
8330
  { type: i0.ChangeDetectorRef },
8331
+ { type: OverlayService },
8089
8332
  { type: i0.ComponentFactoryResolver },
8090
8333
  { type: FormInputUserModelChangeListenerService },
8091
8334
  { type: NgZoneWrapperService },
@@ -8101,7 +8344,7 @@
8101
8344
  footerTemplate: [{ type: i0.Input }],
8102
8345
  showSelectAll: [{ type: i0.Input }],
8103
8346
  showCheckbox: [{ type: i0.Input }],
8104
- showClass: [{ type: i0.HostBinding, args: ["class.co-multi-select-list",] }]
8347
+ showClass: [{ type: i0.HostBinding, args: ['class.co-multi-select-list',] }]
8105
8348
  };
8106
8349
 
8107
8350
  var MultiSelectListModule = /** @class */ (function () {
@@ -11460,121 +11703,6 @@
11460
11703
  },] }
11461
11704
  ];
11462
11705
 
11463
- var OverlayDirective = /** @class */ (function () {
11464
- function OverlayDirective(elementRef) {
11465
- this.keepInView = false;
11466
- this._elementRef = elementRef;
11467
- }
11468
- Object.defineProperty(OverlayDirective.prototype, "parent", {
11469
- set: function (value) {
11470
- if (value && value.elementRef) {
11471
- this._parent = value.elementRef;
11472
- }
11473
- else {
11474
- if (this._parent) {
11475
- this._observer.disconnect();
11476
- }
11477
- }
11478
- },
11479
- enumerable: false,
11480
- configurable: true
11481
- });
11482
- OverlayDirective.prototype.handleScroll = function (event) {
11483
- this._checkAndPlaceElement();
11484
- };
11485
- OverlayDirective.prototype.ngOnDestroy = function () {
11486
- // document.removeEventListener("scroll", (event) => this._handleScroll(event), false);
11487
- this._observer.disconnect();
11488
- this._elementRef = undefined;
11489
- this._parent = undefined;
11490
- };
11491
- OverlayDirective.prototype.ngOnInit = function () {
11492
- var _this = this;
11493
- // document.addEventListener("scroll", (event) => this._handleScroll(event), false);
11494
- this._checkAndPlaceElement();
11495
- this._observer = new ResizeObserver(function (entries) {
11496
- _this._checkAndPlaceElement();
11497
- });
11498
- this._observer.observe(document.body);
11499
- };
11500
- OverlayDirective.prototype._checkAndPlaceElement = function () {
11501
- var elementRect = this._elementRef.nativeElement.getBoundingClientRect();
11502
- var parentRect = this._parent.nativeElement.getBoundingClientRect();
11503
- this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);
11504
- };
11505
- OverlayDirective.prototype._placeElement = function (bottom, right, parentRect, elementRect) {
11506
- if (bottom < parentRect.bottom + elementRect.height) { // make sure it fits at the bottom
11507
- this._elementRef.nativeElement.style.top = (parentRect.top - elementRect.height) + "px";
11508
- }
11509
- else {
11510
- this._elementRef.nativeElement.style.top = parentRect.bottom + "px";
11511
- }
11512
- if (this.keepInView) {
11513
- if (elementRect.right > window.innerWidth) {
11514
- //see if we can move it to the left
11515
- if ((window.innerWidth - elementRect.width) > 0) {
11516
- this._elementRef.nativeElement.style.left = (window.innerWidth - elementRect.width) + "px";
11517
- }
11518
- else { //resize so it fits into view
11519
- this._elementRef.nativeElement.style.width = window.innerWidth + "px";
11520
- this._elementRef.nativeElement.style.left = 0;
11521
- }
11522
- }
11523
- }
11524
- };
11525
- return OverlayDirective;
11526
- }());
11527
- OverlayDirective.decorators = [
11528
- { type: i0.Directive, args: [{
11529
- selector: "[overlay]"
11530
- },] }
11531
- ];
11532
- OverlayDirective.ctorParameters = function () { return [
11533
- { type: i0.ElementRef }
11534
- ]; };
11535
- OverlayDirective.propDecorators = {
11536
- parent: [{ type: i0.Input, args: ["overlay",] }],
11537
- keepInView: [{ type: i0.Input }],
11538
- handleScroll: [{ type: i0.HostListener, args: ["document:scroll", ["$event"],] }]
11539
- };
11540
-
11541
- var OverlayParentDirective = /** @class */ (function () {
11542
- function OverlayParentDirective(elementRef) {
11543
- this.elementRef = elementRef;
11544
- }
11545
- OverlayParentDirective.prototype.ngOnDestroy = function () {
11546
- this.elementRef = undefined;
11547
- };
11548
- return OverlayParentDirective;
11549
- }());
11550
- OverlayParentDirective.decorators = [
11551
- { type: i0.Directive, args: [{
11552
- selector: '[overlayParent]',
11553
- exportAs: 'overlayParent'
11554
- },] }
11555
- ];
11556
- OverlayParentDirective.ctorParameters = function () { return [
11557
- { type: i0.ElementRef }
11558
- ]; };
11559
-
11560
- var OverlayModule = /** @class */ (function () {
11561
- function OverlayModule() {
11562
- }
11563
- return OverlayModule;
11564
- }());
11565
- OverlayModule.decorators = [
11566
- { type: i0.NgModule, args: [{
11567
- declarations: [
11568
- OverlayDirective,
11569
- OverlayParentDirective
11570
- ],
11571
- exports: [
11572
- OverlayDirective,
11573
- OverlayParentDirective
11574
- ]
11575
- },] }
11576
- ];
11577
-
11578
11706
  var TooltipComponent = /** @class */ (function () {
11579
11707
  function TooltipComponent(_elementRef, _changeDetector) {
11580
11708
  this._elementRef = _elementRef;
@@ -11992,28 +12120,6 @@
11992
12120
  },] }
11993
12121
  ];
11994
12122
 
11995
- var ColorSequenceService = /** @class */ (function () {
11996
- function ColorSequenceService() {
11997
- this.colors = new Map();
11998
- }
11999
- ColorSequenceService.prototype.getRandomColor = function (id) {
12000
- if (this.colors.has(id)) {
12001
- return this.colors.get(id);
12002
- }
12003
- var randomColor = Math.floor(Math.random() * 16777215).toString(16);
12004
- var result = '#' + randomColor;
12005
- this.colors.set(id, result);
12006
- return result;
12007
- };
12008
- return ColorSequenceService;
12009
- }());
12010
- ColorSequenceService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ColorSequenceService_Factory() { return new ColorSequenceService(); }, token: ColorSequenceService, providedIn: "root" });
12011
- ColorSequenceService.decorators = [
12012
- { type: i0.Injectable, args: [{
12013
- providedIn: 'root'
12014
- },] }
12015
- ];
12016
-
12017
12123
  var FilterItemViewmodel = /** @class */ (function () {
12018
12124
  function FilterItemViewmodel(code, description, checked, count, valueName) {
12019
12125
  this.checked = false;
@@ -12038,6 +12144,28 @@
12038
12144
  return FilterViewmodel;
12039
12145
  }());
12040
12146
 
12147
+ var ColorSequenceService = /** @class */ (function () {
12148
+ function ColorSequenceService() {
12149
+ this.colors = new Map();
12150
+ }
12151
+ ColorSequenceService.prototype.getRandomColor = function (id) {
12152
+ if (this.colors.has(id)) {
12153
+ return this.colors.get(id);
12154
+ }
12155
+ var randomColor = Math.floor(Math.random() * 16777215).toString(16);
12156
+ var result = '#' + randomColor;
12157
+ this.colors.set(id, result);
12158
+ return result;
12159
+ };
12160
+ return ColorSequenceService;
12161
+ }());
12162
+ ColorSequenceService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ColorSequenceService_Factory() { return new ColorSequenceService(); }, token: ColorSequenceService, providedIn: "root" });
12163
+ ColorSequenceService.decorators = [
12164
+ { type: i0.Injectable, args: [{
12165
+ providedIn: 'root'
12166
+ },] }
12167
+ ];
12168
+
12041
12169
  /*
12042
12170
  * Public API Surface of corecomponents
12043
12171
  */
@@ -12131,6 +12259,7 @@
12131
12259
  exports.ObserveVisibilityModule = ObserveVisibilityModule;
12132
12260
  exports.OrientationOfDirection = OrientationOfDirection;
12133
12261
  exports.OverlayModule = OverlayModule;
12262
+ exports.OverlayService = OverlayService;
12134
12263
  exports.PaginationBarComponent = PaginationBarComponent;
12135
12264
  exports.PaginationBarModule = PaginationBarModule;
12136
12265
  exports.PaginationComponent = PaginationComponent;
@@ -12156,15 +12285,15 @@
12156
12285
  exports.showHideDialogAnimation = showHideDialogAnimation;
12157
12286
  exports["ɵa"] = RippleModule;
12158
12287
  exports["ɵb"] = MD_RIPPLE_GLOBAL_OPTIONS;
12159
- exports["ɵba"] = PaginationService;
12160
- exports["ɵbb"] = PaginatePipe;
12161
- exports["ɵbc"] = SimpleGridCellComponent;
12162
- exports["ɵbd"] = PrependPipeModule;
12163
- exports["ɵbe"] = PrependPipe;
12164
- exports["ɵbf"] = ClickOutsideDirective;
12165
- exports["ɵbg"] = ClickOutsideMasterService;
12166
- exports["ɵbh"] = OverlayDirective;
12167
- exports["ɵbi"] = OverlayParentDirective;
12288
+ exports["ɵba"] = BaseSimpleGridComponent;
12289
+ exports["ɵbb"] = ObserveVisibilityDirective;
12290
+ exports["ɵbc"] = PaginationService;
12291
+ exports["ɵbd"] = PaginatePipe;
12292
+ exports["ɵbe"] = SimpleGridCellComponent;
12293
+ exports["ɵbf"] = PrependPipeModule;
12294
+ exports["ɵbg"] = PrependPipe;
12295
+ exports["ɵbh"] = ClickOutsideDirective;
12296
+ exports["ɵbi"] = ClickOutsideMasterService;
12168
12297
  exports["ɵbj"] = TooltipModule;
12169
12298
  exports["ɵbk"] = TooltipComponent;
12170
12299
  exports["ɵbl"] = TooltipDirective;
@@ -12191,10 +12320,10 @@
12191
12320
  exports["ɵt"] = CommitButtonsModule;
12192
12321
  exports["ɵu"] = CommitButtonsComponent;
12193
12322
  exports["ɵv"] = ValidationErrorModule;
12194
- exports["ɵw"] = ValidationErrorComponent;
12195
- exports["ɵx"] = PopupShowerService;
12196
- exports["ɵy"] = BaseSimpleGridComponent;
12197
- exports["ɵz"] = ObserveVisibilityDirective;
12323
+ exports["ɵw"] = OverlayDirective;
12324
+ exports["ɵx"] = OverlayParentDirective;
12325
+ exports["ɵy"] = ValidationErrorComponent;
12326
+ exports["ɵz"] = PopupShowerService;
12198
12327
 
12199
12328
  Object.defineProperty(exports, '__esModule', { value: true });
12200
12329