@colijnit/corecomponents_v12 12.0.16 → 12.0.19

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 (140) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +741 -247
  2. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
  3. package/colijnit-corecomponents_v12.d.ts +9 -8
  4. package/colijnit-corecomponents_v12.metadata.json +1 -1
  5. package/esm2015/colijnit-corecomponents_v12.js +10 -9
  6. package/esm2015/lib/components/base/base-input.component.js +29 -9
  7. package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +313 -0
  8. package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +19 -0
  9. package/esm2015/lib/components/carousel-3d/carouselItem.js +54 -0
  10. package/esm2015/lib/components/co-dialog/co-dialog.module.js +1 -3
  11. package/esm2015/lib/components/co-kanban/co-kanban.component.js +2 -5
  12. package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +30 -8
  13. package/esm2015/lib/components/drop-down-list/drop-down.module.js +9 -7
  14. package/esm2015/lib/components/form/form.component.js +3 -22
  15. package/esm2015/lib/components/form/form.module.js +4 -4
  16. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +15 -5
  17. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +6 -14
  18. package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +24 -29
  19. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +10 -7
  20. package/esm2015/lib/components/input-listbox/input-listbox.component.js +27 -6
  21. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +9 -9
  22. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +13 -5
  23. package/esm2015/lib/components/input-text/input-text.component.js +22 -81
  24. package/esm2015/lib/components/input-text/input-text.module.js +16 -13
  25. package/esm2015/lib/components/input-textarea/input-textarea.component.js +62 -0
  26. package/esm2015/lib/components/input-textarea/input-textarea.module.js +23 -0
  27. package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -9
  28. package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +9 -7
  29. package/esm2015/lib/components/validation-error/validation-error.component.js +23 -0
  30. package/esm2015/lib/components/validation-error/validation-error.module.js +19 -0
  31. package/esm2015/public-api.js +6 -1
  32. package/fesm2015/colijnit-corecomponents_v12.js +761 -268
  33. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  34. package/lib/components/base/base-input.component.d.ts +7 -2
  35. package/lib/components/button/style/_layout.scss +0 -1
  36. package/lib/components/button/style/_theme.scss +2 -3
  37. package/lib/components/button-drop-down/style/_layout.scss +0 -2
  38. package/lib/components/button-drop-down/style/_theme.scss +0 -2
  39. package/lib/components/button-drop-down/style/material.scss +1 -0
  40. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
  41. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
  42. package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
  43. package/lib/components/carousel-3d/style/_layout.scss +62 -0
  44. package/lib/components/carousel-3d/style/_material-definition.scss +6 -0
  45. package/lib/components/carousel-3d/style/_theme.scss +4 -0
  46. package/lib/components/carousel-3d/style/material.scss +5 -0
  47. package/lib/components/co-dialog/style/_layout.scss +0 -3
  48. package/lib/components/co-dialog/style/_theme.scss +0 -3
  49. package/lib/components/co-dialog/style/material.scss +1 -0
  50. package/lib/components/co-kanban/style/_layout.scss +0 -3
  51. package/lib/components/co-kanban/style/_theme.scss +0 -4
  52. package/lib/components/co-kanban/style/material.scss +1 -0
  53. package/lib/components/co-rich-text-editor/style/_layout.scss +0 -2
  54. package/lib/components/co-rich-text-editor/style/_theme.scss +0 -2
  55. package/lib/components/co-rich-text-editor/style/material.scss +1 -0
  56. package/lib/components/collapsible/style/_layout.scss +0 -3
  57. package/lib/components/collapsible/style/_theme.scss +0 -4
  58. package/lib/components/collapsible/style/material.scss +1 -0
  59. package/lib/components/drop-down-list/drop-down-list.component.d.ts +12 -2
  60. package/lib/components/drop-down-list/style/_layout.scss +8 -3
  61. package/lib/components/drop-down-list/style/_theme.scss +0 -2
  62. package/lib/components/drop-down-list/style/material.scss +2 -0
  63. package/lib/components/form/form.component.d.ts +2 -3
  64. package/lib/components/grid/style/_layout.scss +0 -2
  65. package/lib/components/grid/style/_theme.scss +0 -2
  66. package/lib/components/grid/style/material.scss +1 -0
  67. package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -2
  68. package/lib/components/input-checkbox/style/_layout.scss +0 -2
  69. package/lib/components/input-checkbox/style/_theme.scss +0 -2
  70. package/lib/components/input-checkbox/style/material.scss +1 -0
  71. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +4 -6
  72. package/lib/components/input-checkbox-multi-select/style/_layout.scss +0 -2
  73. package/lib/components/input-checkbox-multi-select/style/_theme.scss +0 -2
  74. package/lib/components/input-checkbox-multi-select/style/material.scss +1 -0
  75. package/lib/components/input-combo-box/input-combo-box.component.d.ts +6 -7
  76. package/lib/components/input-combo-box/style/_layout.scss +10 -3
  77. package/lib/components/input-combo-box/style/_material-definition.scss +0 -7
  78. package/lib/components/input-combo-box/style/_theme.scss +0 -2
  79. package/lib/components/input-combo-box/style/material.scss +9 -0
  80. package/lib/components/input-date-picker/input-date-picker.component.d.ts +4 -3
  81. package/lib/components/input-date-picker/style/_layout.scss +4 -3
  82. package/lib/components/input-date-picker/style/_theme.scss +0 -2
  83. package/lib/components/input-date-picker/style/material.scss +2 -0
  84. package/lib/components/input-listbox/input-listbox.component.d.ts +12 -1
  85. package/lib/components/input-listbox/style/_layout.scss +2 -2
  86. package/lib/components/input-listbox/style/_theme.scss +0 -2
  87. package/lib/components/input-listbox/style/material.scss +2 -0
  88. package/lib/components/input-number-picker/input-number-picker.component.d.ts +5 -5
  89. package/lib/components/input-number-picker/style/_layout.scss +0 -2
  90. package/lib/components/input-number-picker/style/_theme.scss +0 -2
  91. package/lib/components/input-number-picker/style/material.scss +1 -0
  92. package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -2
  93. package/lib/components/input-radio-button/style/_layout.scss +0 -2
  94. package/lib/components/input-radio-button/style/_theme.scss +0 -2
  95. package/lib/components/input-radio-button/style/material.scss +1 -0
  96. package/lib/components/input-search/style/_layout.scss +0 -3
  97. package/lib/components/input-search/style/_theme.scss +0 -4
  98. package/lib/components/input-search/style/material.scss +1 -0
  99. package/lib/components/input-text/input-text.component.d.ts +6 -30
  100. package/lib/components/input-text/style/_layout.scss +14 -3
  101. package/lib/components/input-text/style/_material-definition.scss +4 -3
  102. package/lib/components/input-text/style/_theme.scss +0 -2
  103. package/lib/components/input-text/style/material.scss +3 -0
  104. package/lib/components/input-textarea/input-textarea.component.d.ts +18 -0
  105. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
  106. package/lib/components/input-textarea/style/_layout.scss +20 -0
  107. package/lib/components/input-textarea/style/_material-definition.scss +4 -0
  108. package/lib/components/input-textarea/style/_theme.scss +8 -0
  109. package/lib/components/input-textarea/style/material.scss +7 -0
  110. package/lib/components/multi-select-list/multi-select-list.component.d.ts +13 -2
  111. package/lib/components/multi-select-list/style/_layout.scss +10 -3
  112. package/lib/components/multi-select-list/style/_theme.scss +0 -2
  113. package/lib/components/multi-select-list/style/material.scss +2 -0
  114. package/lib/components/pivot/style/_layout.scss +0 -2
  115. package/lib/components/pivot/style/_theme.scss +0 -2
  116. package/lib/components/pivot/style/material.scss +1 -0
  117. package/lib/components/simple-grid/style/_layout.scss +0 -2
  118. package/lib/components/simple-grid/style/_theme.scss +0 -2
  119. package/lib/components/simple-grid/style/material.scss +1 -0
  120. package/lib/components/validation-error/style/_layout.scss +37 -0
  121. package/lib/components/validation-error/style/_material-definition.scss +9 -0
  122. package/lib/components/validation-error/style/_theme.scss +21 -0
  123. package/lib/components/validation-error/style/material.scss +5 -0
  124. package/lib/components/validation-error/validation-error.component.d.ts +4 -0
  125. package/lib/components/validation-error/validation-error.module.d.ts +2 -0
  126. package/lib/style/_input.mixins.scss +70 -281
  127. package/lib/style/_variables.scss +2 -0
  128. package/package.json +5 -2
  129. package/public-api.d.ts +5 -0
  130. package/esm2015/lib/core/enum/float-label-type.enum.js +0 -7
  131. package/esm2015/lib/core/enum/input-text-type.enum.js +0 -6
  132. package/esm2015/lib/core/model/numerical-range.js +0 -14
  133. package/lib/components/drop-down-list/drop-down-list.component.scss +0 -0
  134. package/lib/core/enum/float-label-type.enum.d.ts +0 -5
  135. package/lib/core/enum/input-text-type.enum.d.ts +0 -4
  136. package/lib/core/model/numerical-range.d.ts +0 -7
  137. package/lib/style/_extendables.scss +0 -32
  138. package/lib/style/_responsiveness.mixins.scss +0 -64
  139. package/lib/style/_responsiveness.scss +0 -4
  140. package/lib/style/_transition.mixins.scss +0 -21
@@ -1,8 +1,28 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('@angular/platform-browser'), require('rxjs'), require('rxjs/operators'), require('@syncfusion/ej2-angular-splitbuttons'), require('@angular/animations'), require('@angular/platform-browser/animations'), require('@syncfusion/ej2-angular-popups'), require('@syncfusion/ej2-angular-kanban'), require('@syncfusion/ej2-angular-schedule'), require('@syncfusion/ej2-angular-navigations'), require('@syncfusion/ej2-angular-buttons'), require('@angular/forms'), require('@syncfusion/ej2-angular-dropdowns'), require('@syncfusion/ej2-angular-grids'), require('@syncfusion/ej2-base'), require('@syncfusion/ej2-angular-calendars'), require('@syncfusion/ej2-angular-inputs'), require('@syncfusion/ej2-angular-pivotview'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@syncfusion/ej2-angular-richtexteditor'), require('@angular/cdk/drag-drop')) :
3
- typeof define === 'function' && define.amd ? define('@colijnit/corecomponents_v12', ['exports', '@angular/core', '@angular/common', '@angular/common/http', '@angular/platform-browser', 'rxjs', 'rxjs/operators', '@syncfusion/ej2-angular-splitbuttons', '@angular/animations', '@angular/platform-browser/animations', '@syncfusion/ej2-angular-popups', '@syncfusion/ej2-angular-kanban', '@syncfusion/ej2-angular-schedule', '@syncfusion/ej2-angular-navigations', '@syncfusion/ej2-angular-buttons', '@angular/forms', '@syncfusion/ej2-angular-dropdowns', '@syncfusion/ej2-angular-grids', '@syncfusion/ej2-base', '@syncfusion/ej2-angular-calendars', '@syncfusion/ej2-angular-inputs', '@syncfusion/ej2-angular-pivotview', '@angular/cdk/overlay', '@angular/cdk/portal', '@syncfusion/ej2-angular-richtexteditor', '@angular/cdk/drag-drop'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.corecomponents_v12 = {}), global.ng.core, global.ng.common, global.ng.common.http, global.ng.platformBrowser, global.rxjs, global.rxjs.operators, global.ej2AngularSplitbuttons, global.ng.animations, global.ng.platformBrowser.animations, global.ej2AngularPopups, global.ej2AngularKanban, global.ej2AngularSchedule, global.ej2AngularNavigations, global.ej2AngularButtons, global.ng.forms, global.ej2AngularDropdowns, global.ej2AngularGrids, global.ej2Base, global.ej2AngularCalendars, global.ej2AngularInputs, global.ej2AngularPivotview, global.ng.cdk.overlay, global.ng.cdk.portal, global.ej2AngularRichtexteditor, global.ng.cdk.dragDrop));
5
- })(this, (function (exports, core, common, http, platformBrowser, rxjs, operators, ej2AngularSplitbuttons, animations, animations$1, ej2AngularPopups, ej2AngularKanban, ej2AngularSchedule, ej2AngularNavigations, ej2AngularButtons, forms, ej2AngularDropdowns, ej2AngularGrids, ej2Base, ej2AngularCalendars, ej2AngularInputs, ej2AngularPivotview, overlay, portal, ej2AngularRichtexteditor, dragDrop) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('@angular/platform-browser'), require('rxjs'), require('rxjs/operators'), require('@syncfusion/ej2-angular-splitbuttons'), require('@angular/animations'), require('@syncfusion/ej2-angular-popups'), require('@syncfusion/ej2-angular-kanban'), require('@syncfusion/ej2-angular-schedule'), require('@syncfusion/ej2-angular-navigations'), require('@syncfusion/ej2-angular-buttons'), require('@angular/forms'), require('@syncfusion/ej2-angular-dropdowns'), require('@syncfusion/ej2-angular-grids'), require('@syncfusion/ej2-base'), require('@syncfusion/ej2-angular-calendars'), require('@syncfusion/ej2-angular-inputs'), require('@syncfusion/ej2-angular-pivotview'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@syncfusion/ej2-angular-richtexteditor'), require('@angular/cdk/drag-drop'), require('three'), require('three/examples/jsm/renderers/CSS3DRenderer'), require('@tweenjs/tween.js')) :
3
+ typeof define === 'function' && define.amd ? define('@colijnit/corecomponents_v12', ['exports', '@angular/core', '@angular/common', '@angular/common/http', '@angular/platform-browser', 'rxjs', 'rxjs/operators', '@syncfusion/ej2-angular-splitbuttons', '@angular/animations', '@syncfusion/ej2-angular-popups', '@syncfusion/ej2-angular-kanban', '@syncfusion/ej2-angular-schedule', '@syncfusion/ej2-angular-navigations', '@syncfusion/ej2-angular-buttons', '@angular/forms', '@syncfusion/ej2-angular-dropdowns', '@syncfusion/ej2-angular-grids', '@syncfusion/ej2-base', '@syncfusion/ej2-angular-calendars', '@syncfusion/ej2-angular-inputs', '@syncfusion/ej2-angular-pivotview', '@angular/cdk/overlay', '@angular/cdk/portal', '@syncfusion/ej2-angular-richtexteditor', '@angular/cdk/drag-drop', 'three', 'three/examples/jsm/renderers/CSS3DRenderer', '@tweenjs/tween.js'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.corecomponents_v12 = {}), global.ng.core, global.ng.common, global.ng.common.http, global.ng.platformBrowser, global.rxjs, global.rxjs.operators, global.ej2AngularSplitbuttons, global.ng.animations, global.ej2AngularPopups, global.ej2AngularKanban, global.ej2AngularSchedule, global.ej2AngularNavigations, global.ej2AngularButtons, global.ng.forms, global.ej2AngularDropdowns, global.ej2AngularGrids, global.ej2Base, global.ej2AngularCalendars, global.ej2AngularInputs, global.ej2AngularPivotview, global.ng.cdk.overlay, global.ng.cdk.portal, global.ej2AngularRichtexteditor, global.ng.cdk.dragDrop, global.three, global.CSS3DRenderer, global.TWEEN));
5
+ })(this, (function (exports, core, common, http, platformBrowser, rxjs, operators, ej2AngularSplitbuttons, animations, ej2AngularPopups, ej2AngularKanban, ej2AngularSchedule, ej2AngularNavigations, ej2AngularButtons, forms, ej2AngularDropdowns, ej2AngularGrids, ej2Base, ej2AngularCalendars, ej2AngularInputs, ej2AngularPivotview, overlay, portal, ej2AngularRichtexteditor, dragDrop, three, CSS3DRenderer, TWEEN) { 'use strict';
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var TWEEN__namespace = /*#__PURE__*/_interopNamespace(TWEEN);
6
26
 
7
27
  // @returns true iff given value equals null or equals undefined
8
28
  function isNill(value) {
@@ -2586,7 +2606,6 @@
2586
2606
  { type: core.NgModule, args: [{
2587
2607
  imports: [
2588
2608
  common.CommonModule,
2589
- animations$1.BrowserAnimationsModule,
2590
2609
  IconModule
2591
2610
  ],
2592
2611
  declarations: [CoDialogComponent],
@@ -2677,12 +2696,8 @@
2677
2696
  CoKanbanComponent.prototype.ngOnInit = function () {
2678
2697
  };
2679
2698
  CoKanbanComponent.prototype.ngAfterViewInit = function () {
2680
- var _this = this;
2681
2699
  if (this.columns) {
2682
- setTimeout(function () {
2683
- _this.kanban.columns = _this.columns;
2684
- _this.kanban.refreshHeader();
2685
- }, 1000);
2700
+ this.kanban.columns = this.columns;
2686
2701
  }
2687
2702
  };
2688
2703
  CoKanbanComponent.prototype.dialogOpen = function (args) {
@@ -3085,18 +3100,36 @@
3085
3100
  };
3086
3101
  }
3087
3102
 
3103
+ var ValidationErrorComponent = /** @class */ (function () {
3104
+ function ValidationErrorComponent() {
3105
+ }
3106
+ ValidationErrorComponent.prototype.showClass = function () {
3107
+ return true;
3108
+ };
3109
+ return ValidationErrorComponent;
3110
+ }());
3111
+ ValidationErrorComponent.decorators = [
3112
+ { type: core.Component, args: [{
3113
+ selector: "co-validation-error",
3114
+ template: "\n <div class=\"validation-error-content\">\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\n </div>\n ",
3115
+ animations: [],
3116
+ encapsulation: core.ViewEncapsulation.None
3117
+ },] }
3118
+ ];
3119
+ ValidationErrorComponent.propDecorators = {
3120
+ error: [{ type: core.Input }],
3121
+ showClass: [{ type: core.HostBinding, args: ['class.co-validation-error',] }]
3122
+ };
3123
+
3088
3124
  /**
3089
3125
  * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
3090
3126
  * adding self as a control to the parent form.
3091
3127
  */
3092
3128
  var BaseInputComponent = /** @class */ (function () {
3093
- function BaseInputComponent(changeDetector, formUserChangeListener,
3094
- // @Optional() protected speechInput?: SpeechInputService,
3095
- ngZoneWrapper,
3096
- // @Optional() protected tooltipManager?: AppTooltipDynamicManagerService,
3097
- elementRef) {
3129
+ function BaseInputComponent(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
3098
3130
  var _this = this;
3099
3131
  this.changeDetector = changeDetector;
3132
+ this.componentFactoryResolver = componentFactoryResolver;
3100
3133
  this.formUserChangeListener = formUserChangeListener;
3101
3134
  this.ngZoneWrapper = ngZoneWrapper;
3102
3135
  this.elementRef = elementRef;
@@ -3154,6 +3187,7 @@
3154
3187
  },
3155
3188
  set: function (value) {
3156
3189
  this._model = value;
3190
+ this._clearErrorComponent();
3157
3191
  },
3158
3192
  enumerable: false,
3159
3193
  configurable: true
@@ -3305,7 +3339,6 @@
3305
3339
  });
3306
3340
  Object.defineProperty(BaseInputComponent.prototype, "formSubmitted", {
3307
3341
  get: function () {
3308
- return true;
3309
3342
  return this.formComponent && this.formComponent.submitted;
3310
3343
  },
3311
3344
  enumerable: false,
@@ -3402,6 +3435,16 @@
3402
3435
  enumerable: false,
3403
3436
  configurable: true
3404
3437
  });
3438
+ BaseInputComponent.prototype.showValidationError = function (error) {
3439
+ if (this.validationErrorContainer) {
3440
+ if (this._errorValidationComponent) {
3441
+ this._clearErrorComponent();
3442
+ }
3443
+ var componentFactory = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);
3444
+ this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);
3445
+ this._errorValidationComponent.instance.error = error;
3446
+ }
3447
+ };
3405
3448
  BaseInputComponent.prototype.ngOnInit = function () {
3406
3449
  var _this = this;
3407
3450
  this._modelChangeSub = this.modelChange.subscribe(function (val) {
@@ -3427,6 +3470,7 @@
3427
3470
  };
3428
3471
  BaseInputComponent.prototype.ngOnDestroy = function () {
3429
3472
  this._destroyed = true;
3473
+ this._clearErrorComponent();
3430
3474
  // if (this.tooltipManager && this.elementRef) {
3431
3475
  // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);
3432
3476
  // }
@@ -3597,6 +3641,15 @@
3597
3641
  this.control.updateValueAndValidity();
3598
3642
  }
3599
3643
  };
3644
+ BaseInputComponent.prototype._clearErrorComponent = function () {
3645
+ if (this.validationErrorContainer) {
3646
+ this.validationErrorContainer.clear();
3647
+ if (this._errorValidationComponent) {
3648
+ this._errorValidationComponent.destroy();
3649
+ this._errorValidationComponent = undefined;
3650
+ }
3651
+ }
3652
+ };
3600
3653
  // whether this.ngModel.control has safe access
3601
3654
  BaseInputComponent.prototype._controlExists = function () {
3602
3655
  return this.ngModel && !!this.control;
@@ -3666,11 +3719,13 @@
3666
3719
  ];
3667
3720
  BaseInputComponent.ctorParameters = function () { return [
3668
3721
  { type: core.ChangeDetectorRef },
3722
+ { type: core.ComponentFactoryResolver },
3669
3723
  { type: FormInputUserModelChangeListenerService, decorators: [{ type: core.Optional }] },
3670
3724
  { type: NgZoneWrapperService, decorators: [{ type: core.Optional }] },
3671
3725
  { type: core.ElementRef, decorators: [{ type: core.Optional }] }
3672
3726
  ]; };
3673
3727
  BaseInputComponent.propDecorators = {
3728
+ validationErrorContainer: [{ type: core.ViewChild, args: ["validationError", { read: core.ViewContainerRef },] }],
3674
3729
  model: [{ type: core.Input }],
3675
3730
  label: [{ type: core.Input }],
3676
3731
  noValidation: [{ type: core.Input }],
@@ -3701,7 +3756,7 @@
3701
3756
  userModelChange: [{ type: core.Output }],
3702
3757
  hiddenChange: [{ type: core.Output }],
3703
3758
  _ngModel: [{ type: core.ViewChild, args: [forms.NgModel, { static: true },] }],
3704
- focused: [{ type: core.HostBinding, args: ["class.focused",] }],
3759
+ focused: [{ type: core.HostBinding, args: ["class.cc-input-focused",] }],
3705
3760
  formInput: [{ type: core.HostBinding, args: ["class.form-input",] }],
3706
3761
  customWidth: [{ type: core.Input }, { type: core.HostBinding, args: ["class.custom-width",] }],
3707
3762
  noTriangleGraphic: [{ type: core.Input }],
@@ -3753,70 +3808,6 @@
3753
3808
  InputBoolean()
3754
3809
  ], BaseInputComponent.prototype, "noFormGroupControl", void 0);
3755
3810
 
3756
- var DropDownListComponent = /** @class */ (function (_super) {
3757
- __extends(DropDownListComponent, _super);
3758
- function DropDownListComponent() {
3759
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3760
- /**
3761
- * In the form { text: 'name', value: 'id' }
3762
- * Where 'text' is showing in the dropdown and 'id' used for the model binding
3763
- */
3764
- _this.fields = {};
3765
- return _this;
3766
- }
3767
- DropDownListComponent.prototype.showClass = function () {
3768
- return true;
3769
- };
3770
- DropDownListComponent.prototype.handleValueChanged = function (value) {
3771
- if (value !== this.model) {
3772
- this.modelChange.next(value);
3773
- }
3774
- };
3775
- return DropDownListComponent;
3776
- }(BaseInputComponent));
3777
- DropDownListComponent.decorators = [
3778
- { type: core.Component, args: [{
3779
- selector: "co-drop-down-list",
3780
- template: "\n <ejs-dropdownlist\n [dataSource]=\"collection\"\n [value]=\"model\"\n [fields]=\"fields\"\n [placeholder]=\"placeHolder\"\n [cssClass]=\"'co-drop-down-list'\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n (valueChange)=\"handleValueChanged($event)\"\n >\n </ejs-dropdownlist>\n ",
3781
- providers: [
3782
- ej2AngularDropdowns.CheckBoxSelectionService,
3783
- {
3784
- provide: COMPONENT_INTERFACE_NAME,
3785
- useExisting: core.forwardRef(function () { return DropDownListComponent; })
3786
- }
3787
- ],
3788
- changeDetection: core.ChangeDetectionStrategy.OnPush,
3789
- encapsulation: core.ViewEncapsulation.None
3790
- },] }
3791
- ];
3792
- DropDownListComponent.propDecorators = {
3793
- collection: [{ type: core.Input }],
3794
- fields: [{ type: core.Input }],
3795
- placeHolder: [{ type: core.Input }],
3796
- itemTemplate: [{ type: core.Input }],
3797
- headerTemplate: [{ type: core.Input }],
3798
- valueTemplate: [{ type: core.Input }],
3799
- showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
3800
- };
3801
-
3802
- var DropDownModule = /** @class */ (function () {
3803
- function DropDownModule() {
3804
- }
3805
- return DropDownModule;
3806
- }());
3807
- DropDownModule.decorators = [
3808
- { type: core.NgModule, args: [{
3809
- imports: [
3810
- BaseModule,
3811
- common.CommonModule,
3812
- ej2AngularDropdowns.DropDownListModule,
3813
- ej2AngularDropdowns.MultiSelectModule
3814
- ],
3815
- declarations: [DropDownListComponent],
3816
- exports: [DropDownListComponent]
3817
- },] }
3818
- ];
3819
-
3820
3811
  // Represents a positional model
3821
3812
  var ElementPosition = /** @class */ (function () {
3822
3813
  function ElementPosition(top, right, bottom, left) {
@@ -4065,33 +4056,15 @@
4065
4056
  for (var errorKey in this.formGroup.controls[controlKey].errors) {
4066
4057
  if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {
4067
4058
  var error = this.formGroup.controls[controlKey].errors[errorKey];
4068
- var errorText = this._getValidationErrorText(error);
4069
- var controlElement = comp.elementRef.nativeElement;
4070
4059
  if (controlKey === key) {
4071
- // this._tooltipService.spawnErrorTooltip(controlElement, errorText, this.keepInView ? this.keepInView : undefined);
4060
+ comp.showValidationError(error);
4072
4061
  }
4073
- comp.redErrorBackground = true;
4074
4062
  }
4075
4063
  }
4076
4064
  }
4077
4065
  }
4078
4066
  }
4079
4067
  };
4080
- FormComponent.prototype._getValidationErrorText = function (validationError) {
4081
- return "";
4082
- if (StringUtils.IsString(validationError)) {
4083
- // return this._dictionary.get(validationError);
4084
- }
4085
- else if (validationError.message) {
4086
- if (validationError.placeholder) {
4087
- // see e.g. maxStringLengthValidator, where we return this {message: string, placeholder: string} object shape as validation error obj
4088
- // return this._dictionary.get(validationError.message, true, validationError.placeholder);
4089
- }
4090
- else {
4091
- // return this._dictionary.get(validationError.message);
4092
- }
4093
- }
4094
- };
4095
4068
  FormComponent.prototype._setFirstInvalidElementOnMaster = function () {
4096
4069
  var elements = Array.from(this._componentMap);
4097
4070
  var len = elements.length;
@@ -4128,6 +4101,85 @@
4128
4101
  onEnterKey: [{ type: core.HostListener, args: ['keyup.enter', ['$event'],] }]
4129
4102
  };
4130
4103
 
4104
+ var DropDownListComponent = /** @class */ (function (_super) {
4105
+ __extends(DropDownListComponent, _super);
4106
+ function DropDownListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4107
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4108
+ _this.formComponent = formComponent;
4109
+ _this.changeDetector = changeDetector;
4110
+ _this.componentFactoryResolver = componentFactoryResolver;
4111
+ _this.formUserChangeListener = formUserChangeListener;
4112
+ _this.ngZoneWrapper = ngZoneWrapper;
4113
+ _this.elementRef = elementRef;
4114
+ /**
4115
+ * In the form { text: 'name', value: 'id' }
4116
+ * Where 'text' is showing in the dropdown and 'id' used for the model binding
4117
+ */
4118
+ _this.fields = {};
4119
+ _super.prototype._markAsOnPush.call(_this);
4120
+ return _this;
4121
+ }
4122
+ DropDownListComponent.prototype.showClass = function () {
4123
+ return true;
4124
+ };
4125
+ DropDownListComponent.prototype.handleValueChanged = function (value) {
4126
+ if (value !== this.model) {
4127
+ this.modelChange.next(value);
4128
+ }
4129
+ };
4130
+ return DropDownListComponent;
4131
+ }(BaseInputComponent));
4132
+ DropDownListComponent.decorators = [
4133
+ { type: core.Component, args: [{
4134
+ selector: "co-drop-down-list",
4135
+ template: "\n <ejs-dropdownlist\n [dataSource]=\"collection\"\n [value]=\"model\"\n [fields]=\"fields\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [itemTemplate]=\"itemTemplate\"\n [headerTemplate]=\"headerTemplate\"\n [valueTemplate]=\"valueTemplate\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (valueChange)=\"handleValueChanged($event)\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-dropdownlist>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
4136
+ providers: [
4137
+ ej2AngularDropdowns.CheckBoxSelectionService,
4138
+ {
4139
+ provide: COMPONENT_INTERFACE_NAME,
4140
+ useExisting: core.forwardRef(function () { return DropDownListComponent; })
4141
+ }
4142
+ ],
4143
+ encapsulation: core.ViewEncapsulation.None
4144
+ },] }
4145
+ ];
4146
+ DropDownListComponent.ctorParameters = function () { return [
4147
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
4148
+ { type: core.ChangeDetectorRef },
4149
+ { type: core.ComponentFactoryResolver },
4150
+ { type: FormInputUserModelChangeListenerService },
4151
+ { type: NgZoneWrapperService },
4152
+ { type: core.ElementRef }
4153
+ ]; };
4154
+ DropDownListComponent.propDecorators = {
4155
+ collection: [{ type: core.Input }],
4156
+ fields: [{ type: core.Input }],
4157
+ placeholder: [{ type: core.Input }],
4158
+ itemTemplate: [{ type: core.Input }],
4159
+ headerTemplate: [{ type: core.Input }],
4160
+ valueTemplate: [{ type: core.Input }],
4161
+ showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
4162
+ };
4163
+
4164
+ var DropDownModule = /** @class */ (function () {
4165
+ function DropDownModule() {
4166
+ }
4167
+ return DropDownModule;
4168
+ }());
4169
+ DropDownModule.decorators = [
4170
+ { type: core.NgModule, args: [{
4171
+ imports: [
4172
+ BaseModule,
4173
+ common.CommonModule,
4174
+ ej2AngularDropdowns.DropDownListModule,
4175
+ ej2AngularDropdowns.MultiSelectModule,
4176
+ forms.FormsModule
4177
+ ],
4178
+ declarations: [DropDownListComponent],
4179
+ exports: [DropDownListComponent]
4180
+ },] }
4181
+ ];
4182
+
4131
4183
  var FormModule = /** @class */ (function () {
4132
4184
  function FormModule() {
4133
4185
  }
@@ -4522,9 +4574,15 @@
4522
4574
 
4523
4575
  var InputCheckboxComponent = /** @class */ (function (_super) {
4524
4576
  __extends(InputCheckboxComponent, _super);
4525
- function InputCheckboxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
4526
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
4577
+ function InputCheckboxComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4578
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4527
4579
  _this.formComponent = formComponent;
4580
+ _this.iconCacheService = iconCacheService;
4581
+ _this.changeDetector = changeDetector;
4582
+ _this.componentFactoryResolver = componentFactoryResolver;
4583
+ _this.formUserChangeListener = formUserChangeListener;
4584
+ _this.ngZoneWrapper = ngZoneWrapper;
4585
+ _this.elementRef = elementRef;
4528
4586
  _this.modelChange = new core.EventEmitter();
4529
4587
  return _this;
4530
4588
  }
@@ -4556,9 +4614,12 @@
4556
4614
  ];
4557
4615
  InputCheckboxComponent.ctorParameters = function () { return [
4558
4616
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4617
+ { type: IconCacheService },
4559
4618
  { type: core.ChangeDetectorRef },
4619
+ { type: core.ComponentFactoryResolver },
4560
4620
  { type: FormInputUserModelChangeListenerService },
4561
- { type: NgZoneWrapperService }
4621
+ { type: NgZoneWrapperService },
4622
+ { type: core.ElementRef }
4562
4623
  ]; };
4563
4624
  InputCheckboxComponent.propDecorators = {
4564
4625
  name: [{ type: core.Input }],
@@ -4624,10 +4685,11 @@
4624
4685
 
4625
4686
  var InputCheckboxMultiSelectComponent = /** @class */ (function (_super) {
4626
4687
  __extends(InputCheckboxMultiSelectComponent, _super);
4627
- function InputCheckboxMultiSelectComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4628
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4688
+ function InputCheckboxMultiSelectComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4689
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4629
4690
  _this.formComponent = formComponent;
4630
4691
  _this.changeDetector = changeDetector;
4692
+ _this.componentFactoryResolver = componentFactoryResolver;
4631
4693
  _this.formUserChangeListener = formUserChangeListener;
4632
4694
  _this.ngZoneWrapper = ngZoneWrapper;
4633
4695
  _this.elementRef = elementRef;
@@ -4637,16 +4699,6 @@
4637
4699
  InputCheckboxMultiSelectComponent.prototype.showClass = function () {
4638
4700
  return true;
4639
4701
  };
4640
- InputCheckboxMultiSelectComponent.prototype.ngOnDestroy = function () {
4641
- this.elementRef = undefined;
4642
- _super.prototype.ngOnDestroy.call(this);
4643
- };
4644
- InputCheckboxMultiSelectComponent.prototype.ngOnInit = function () {
4645
- _super.prototype.ngOnInit.call(this);
4646
- };
4647
- InputCheckboxMultiSelectComponent.prototype.ngAfterViewInit = function () {
4648
- _super.prototype.ngAfterViewInit.call(this);
4649
- };
4650
4702
  return InputCheckboxMultiSelectComponent;
4651
4703
  }(BaseInputComponent));
4652
4704
  InputCheckboxMultiSelectComponent.decorators = [
@@ -4664,6 +4716,7 @@
4664
4716
  InputCheckboxMultiSelectComponent.ctorParameters = function () { return [
4665
4717
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4666
4718
  { type: core.ChangeDetectorRef },
4719
+ { type: core.ComponentFactoryResolver },
4667
4720
  { type: FormInputUserModelChangeListenerService },
4668
4721
  { type: NgZoneWrapperService },
4669
4722
  { type: core.ElementRef }
@@ -4699,30 +4752,22 @@
4699
4752
 
4700
4753
  var InputComboBoxComponent = /** @class */ (function (_super) {
4701
4754
  __extends(InputComboBoxComponent, _super);
4702
- function InputComboBoxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4703
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4755
+ function InputComboBoxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4756
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4704
4757
  _this.formComponent = formComponent;
4705
4758
  _this.changeDetector = changeDetector;
4759
+ _this.componentFactoryResolver = componentFactoryResolver;
4706
4760
  _this.formUserChangeListener = formUserChangeListener;
4707
4761
  _this.ngZoneWrapper = ngZoneWrapper;
4708
4762
  _this.elementRef = elementRef;
4709
4763
  _this.shopPopup = true;
4764
+ _this.customHeight = true;
4710
4765
  _super.prototype._markAsOnPush.call(_this);
4711
4766
  return _this;
4712
4767
  }
4713
4768
  InputComboBoxComponent.prototype.showClass = function () {
4714
4769
  return true;
4715
4770
  };
4716
- InputComboBoxComponent.prototype.ngOnDestroy = function () {
4717
- this.elementRef = undefined;
4718
- _super.prototype.ngOnDestroy.call(this);
4719
- };
4720
- InputComboBoxComponent.prototype.ngOnInit = function () {
4721
- _super.prototype.ngOnInit.call(this);
4722
- };
4723
- InputComboBoxComponent.prototype.ngAfterViewInit = function () {
4724
- _super.prototype.ngAfterViewInit.call(this);
4725
- };
4726
4771
  InputComboBoxComponent.prototype.onFocus = function () {
4727
4772
  if (this.shopPopup && this.model === undefined) {
4728
4773
  this.combo.showPopup();
@@ -4733,30 +4778,31 @@
4733
4778
  InputComboBoxComponent.decorators = [
4734
4779
  { type: core.Component, args: [{
4735
4780
  selector: "co-input-combo-box",
4736
- template: "\n <ejs-combobox #combo [dataSource]=\"source\"\n [fields]=\"fields\"\n [placeholder]=\"placeholder\"\n [autofill]=\"true\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (focus)=\"onFocus()\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-combobox>\n ",
4781
+ template: "\n <ejs-combobox #combo [dataSource]=\"collection\"\n [fields]=\"fields\"\n [placeholder]=\"placeholder\"\n [autofill]=\"true\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (focus)=\"onFocus()\"\n showClearButton=\"true\"\n floatLabelType=\"Auto\"\n >\n </ejs-combobox>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
4737
4782
  providers: [{
4738
4783
  provide: COMPONENT_INTERFACE_NAME,
4739
4784
  useExisting: core.forwardRef(function () { return InputComboBoxComponent; })
4740
4785
  }],
4741
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4742
4786
  encapsulation: core.ViewEncapsulation.None
4743
4787
  },] }
4744
4788
  ];
4745
4789
  InputComboBoxComponent.ctorParameters = function () { return [
4746
4790
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4747
4791
  { type: core.ChangeDetectorRef },
4792
+ { type: core.ComponentFactoryResolver },
4748
4793
  { type: FormInputUserModelChangeListenerService },
4749
4794
  { type: NgZoneWrapperService },
4750
4795
  { type: core.ElementRef }
4751
4796
  ]; };
4752
4797
  InputComboBoxComponent.propDecorators = {
4753
4798
  combo: [{ type: core.ViewChild, args: ["combo",] }],
4754
- source: [{ type: core.Input }],
4799
+ collection: [{ type: core.Input }],
4755
4800
  fields: [{ type: core.Input }],
4756
4801
  selected: [{ type: core.Input }],
4757
4802
  placeholder: [{ type: core.Input }],
4758
4803
  shopPopup: [{ type: core.Input }],
4759
- showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }]
4804
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }],
4805
+ customHeight: [{ type: core.HostBinding, args: ["class.custom-height",] }]
4760
4806
  };
4761
4807
 
4762
4808
  var InputComboBoxModule = /** @class */ (function () {
@@ -4781,11 +4827,12 @@
4781
4827
 
4782
4828
  var InputDatePickerComponent = /** @class */ (function (_super) {
4783
4829
  __extends(InputDatePickerComponent, _super);
4784
- function InputDatePickerComponent(iconCacheService, formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4785
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4786
- _this.iconCacheService = iconCacheService;
4830
+ function InputDatePickerComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4831
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4787
4832
  _this.formComponent = formComponent;
4833
+ _this.iconCacheService = iconCacheService;
4788
4834
  _this.changeDetector = changeDetector;
4835
+ _this.componentFactoryResolver = componentFactoryResolver;
4789
4836
  _this.formUserChangeListener = formUserChangeListener;
4790
4837
  _this.ngZoneWrapper = ngZoneWrapper;
4791
4838
  _this.elementRef = elementRef;
@@ -4834,18 +4881,18 @@
4834
4881
  InputDatePickerComponent.decorators = [
4835
4882
  { type: core.Component, args: [{
4836
4883
  selector: "co-input-date",
4837
- template: "\n <ejs-datepicker #ejsDatePicker\n floatLabelType=\"Auto\"\n [format]=\"dateFormat\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-datepicker>\n ",
4884
+ template: "\n <ejs-datepicker #ejsDatePicker\n floatLabelType=\"Auto\"\n [format]=\"dateFormat\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"model\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-datepicker>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
4838
4885
  providers: [{
4839
4886
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputDatePickerComponent; })
4840
4887
  }],
4841
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4842
4888
  encapsulation: core.ViewEncapsulation.None
4843
4889
  },] }
4844
4890
  ];
4845
4891
  InputDatePickerComponent.ctorParameters = function () { return [
4846
- { type: IconCacheService },
4847
4892
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4893
+ { type: IconCacheService },
4848
4894
  { type: core.ChangeDetectorRef },
4895
+ { type: core.ComponentFactoryResolver },
4849
4896
  { type: FormInputUserModelChangeListenerService },
4850
4897
  { type: NgZoneWrapperService },
4851
4898
  { type: core.ElementRef }
@@ -5214,122 +5261,56 @@
5214
5261
  KeyboardCode.NumpadNine
5215
5262
  ];
5216
5263
 
5217
- var InputTextType;
5218
- (function (InputTextType) {
5219
- InputTextType["Text"] = "text";
5220
- InputTextType["Email"] = "email";
5221
- })(InputTextType || (InputTextType = {}));
5222
-
5223
- var FloatLabelTypeEnum;
5224
- (function (FloatLabelTypeEnum) {
5225
- FloatLabelTypeEnum["Never"] = "Never";
5226
- FloatLabelTypeEnum["Always"] = "Always";
5227
- FloatLabelTypeEnum["Auto"] = "Auto";
5228
- })(FloatLabelTypeEnum || (FloatLabelTypeEnum = {}));
5229
-
5230
5264
  var InputTextComponent = /** @class */ (function (_super) {
5231
5265
  __extends(InputTextComponent, _super);
5232
- function InputTextComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
5233
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5266
+ function InputTextComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5267
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5234
5268
  _this.formComponent = formComponent;
5235
5269
  _this.changeDetector = changeDetector;
5270
+ _this.componentFactoryResolver = componentFactoryResolver;
5236
5271
  _this.formUserChangeListener = formUserChangeListener;
5237
5272
  _this.ngZoneWrapper = ngZoneWrapper;
5238
5273
  _this.elementRef = elementRef;
5239
- _this.floatLabelType = FloatLabelTypeEnum.Auto;
5274
+ _this.Icons = exports.CoreComponentsIcon;
5240
5275
  _this.placeholder = "";
5241
5276
  _this.type = "text";
5242
5277
  _this.showClearButton = undefined;
5243
- _this.alwaysShowClearIcon = false;
5244
- _this.alwaysShowClearIconOnFocus = false;
5245
- _this.noEmailValidation = false;
5246
- _this.extraIconOnFocusOnly = false;
5247
- _this.inputType = InputTextType.Text;
5248
- _this.blur = new core.EventEmitter();
5249
- _this.inputClick = new core.EventEmitter();
5250
- _this.extraIconClick = new core.EventEmitter();
5251
- _this.clearIconClick = new core.EventEmitter();
5252
- _this.validEmailClick = false;
5253
- _this.Icons = exports.CoreComponentsIcon;
5278
+ _this.hasOwnLabel = true;
5254
5279
  _super.prototype._markAsOnPush.call(_this);
5255
5280
  return _this;
5256
5281
  }
5257
5282
  InputTextComponent.prototype.showClass = function () {
5258
5283
  return true;
5259
5284
  };
5260
- InputTextComponent.prototype.ngOnDestroy = function () {
5261
- this.elementRef = undefined;
5262
- _super.prototype.ngOnDestroy.call(this);
5263
- };
5264
- InputTextComponent.prototype.ngOnInit = function () {
5265
- _super.prototype.ngOnInit.call(this);
5266
- };
5267
- InputTextComponent.prototype.ngAfterViewInit = function () {
5268
- if (this.textBox) {
5269
- this.changeDetector.detectChanges();
5270
- }
5271
- _super.prototype.ngAfterViewInit.call(this);
5272
- };
5273
- InputTextComponent.prototype.setSelectionRange = function (range) {
5274
- if (range && this.input) {
5275
- this.input.setSelectionRange(range.lowerBound, range.upperBound);
5276
- }
5277
- };
5278
5285
  return InputTextComponent;
5279
5286
  }(BaseInputComponent));
5280
5287
  InputTextComponent.decorators = [
5281
5288
  { type: core.Component, args: [{
5282
- selector: "co-input-text, co-input-email, co-input-wizard",
5283
- template: "\n <ejs-textbox [floatLabelType]=\"floatLabelType\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n [readonly]=\"readonly\"\n [ngModel]=\"model\"\n [cssClass]=\"cssClass\"\n (ngModelChange)=\"modelChange.emit($event)\"\n [showClearButton]=\"showClearButton\"\n (blur)=\"this.blur.emit()\"\n (input)=\"this.inputClick.emit()\"\n ></ejs-textbox>\n <ng-content></ng-content>\n ",
5289
+ selector: "co-input-text",
5290
+ template: "\n <label [textContent]=\"placeholder\"></label>\n <input [type]=\"type\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (focus)=\"focused = true\"\n (blur)=\"focused = false\"\n >\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
5284
5291
  providers: [{
5285
5292
  provide: COMPONENT_INTERFACE_NAME,
5286
5293
  useExisting: core.forwardRef(function () { return InputTextComponent; })
5287
5294
  }],
5288
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5289
5295
  encapsulation: core.ViewEncapsulation.None
5290
5296
  },] }
5291
5297
  ];
5292
5298
  InputTextComponent.ctorParameters = function () { return [
5293
5299
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5294
5300
  { type: core.ChangeDetectorRef },
5301
+ { type: core.ComponentFactoryResolver },
5295
5302
  { type: FormInputUserModelChangeListenerService },
5296
5303
  { type: NgZoneWrapperService },
5297
5304
  { type: core.ElementRef }
5298
5305
  ]; };
5299
5306
  InputTextComponent.propDecorators = {
5300
- textBox: [{ type: core.ViewChild, args: [ej2AngularInputs.TextBoxComponent,] }],
5301
- floatLabelType: [{ type: core.Input }],
5302
5307
  placeholder: [{ type: core.Input }],
5303
5308
  type: [{ type: core.Input }],
5304
5309
  showClearButton: [{ type: core.Input }],
5305
- cssClass: [{ type: core.Input }],
5306
- alwaysShowClearIcon: [{ type: core.Input }],
5307
- alwaysShowClearIconOnFocus: [{ type: core.Input }],
5308
- noEmailValidation: [{ type: core.Input }],
5309
- extraIcon: [{ type: core.Input }],
5310
- extraIconOnFocusOnly: [{ type: core.Input }],
5311
5310
  keyDownWhiteList: [{ type: core.Input }],
5312
- extraIconClass: [{ type: core.Input }],
5313
- inputType: [{ type: core.Input }],
5314
- ngModelOptions: [{ type: core.Input }],
5315
- blur: [{ type: core.Output }],
5316
- inputClick: [{ type: core.Output }],
5317
- extraIconClick: [{ type: core.Output }],
5318
- clearIconClick: [{ type: core.Output }],
5319
- showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }]
5320
- };
5321
- __decorate([
5322
- InputBoolean()
5323
- ], InputTextComponent.prototype, "alwaysShowClearIcon", void 0);
5324
- __decorate([
5325
- InputBoolean()
5326
- ], InputTextComponent.prototype, "alwaysShowClearIconOnFocus", void 0);
5327
- __decorate([
5328
- InputBoolean()
5329
- ], InputTextComponent.prototype, "noEmailValidation", void 0);
5330
- __decorate([
5331
- InputBoolean()
5332
- ], InputTextComponent.prototype, "extraIconOnFocusOnly", void 0);
5311
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }],
5312
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }]
5313
+ };
5333
5314
 
5334
5315
  // Input values for 'buttonShowMode' of NumberPickerComponent.
5335
5316
  var InputNumberPickerButtonShowMode;
@@ -5342,12 +5323,12 @@
5342
5323
  // A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
5343
5324
  var InputNumberPickerComponent = /** @class */ (function (_super) {
5344
5325
  __extends(InputNumberPickerComponent, _super);
5345
- function InputNumberPickerComponent(iconCacheService, _ngZone, changeDetector, formUserChangeListener) {
5346
- var _this = _super.call(this, changeDetector, formUserChangeListener) || this;
5326
+ function InputNumberPickerComponent(formComponent, iconCacheService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener) {
5327
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener) || this;
5328
+ _this.formComponent = formComponent;
5347
5329
  _this.iconCacheService = iconCacheService;
5348
5330
  _this._ngZone = _ngZone;
5349
- _this.floatLabelType = FloatLabelTypeEnum.Never;
5350
- _this.cssClass = "e-outline";
5331
+ _this.componentFactoryResolver = componentFactoryResolver;
5351
5332
  _this.minusIcon = exports.CoreComponentsIcon.MinusSimple;
5352
5333
  _this.plusIcon = exports.CoreComponentsIcon.PlusSimple;
5353
5334
  // Whether to show buttons 'always', 'onFocusOnly', or 'never'
@@ -5600,14 +5581,14 @@
5600
5581
  },] }
5601
5582
  ];
5602
5583
  InputNumberPickerComponent.ctorParameters = function () { return [
5584
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5603
5585
  { type: IconCacheService, decorators: [{ type: core.Inject, args: [IconCacheService,] }] },
5604
5586
  { type: core.NgZone },
5587
+ { type: core.ComponentFactoryResolver },
5605
5588
  { type: core.ChangeDetectorRef },
5606
5589
  { type: FormInputUserModelChangeListenerService }
5607
5590
  ]; };
5608
5591
  InputNumberPickerComponent.propDecorators = {
5609
- floatLabelType: [{ type: core.Input }],
5610
- cssClass: [{ type: core.Input }],
5611
5592
  model: [{ type: core.Input }],
5612
5593
  min: [{ type: core.Input }],
5613
5594
  step: [{ type: core.Input }],
@@ -5628,6 +5609,25 @@
5628
5609
  InputBoolean()
5629
5610
  ], InputNumberPickerComponent.prototype, "noValidation", void 0);
5630
5611
 
5612
+ var ValidationErrorModule = /** @class */ (function () {
5613
+ function ValidationErrorModule() {
5614
+ }
5615
+ return ValidationErrorModule;
5616
+ }());
5617
+ ValidationErrorModule.decorators = [
5618
+ { type: core.NgModule, args: [{
5619
+ imports: [
5620
+ common.CommonModule
5621
+ ],
5622
+ declarations: [
5623
+ ValidationErrorComponent
5624
+ ],
5625
+ exports: [
5626
+ ValidationErrorComponent
5627
+ ]
5628
+ },] }
5629
+ ];
5630
+
5631
5631
  var InputTextModule = /** @class */ (function () {
5632
5632
  function InputTextModule() {
5633
5633
  }
@@ -5642,13 +5642,15 @@
5642
5642
  IconModule,
5643
5643
  AppendPipeModule,
5644
5644
  ej2AngularInputs.TextBoxAllModule,
5645
- ej2AngularInputs.NumericTextBoxModule
5645
+ ej2AngularInputs.NumericTextBoxModule,
5646
+ ValidationErrorModule
5646
5647
  ],
5647
- schemas: [
5648
- core.NO_ERRORS_SCHEMA
5648
+ declarations: [
5649
+ InputTextComponent
5649
5650
  ],
5650
- declarations: [InputTextComponent],
5651
- exports: [InputTextComponent]
5651
+ exports: [
5652
+ InputTextComponent
5653
+ ]
5652
5654
  },] }
5653
5655
  ];
5654
5656
 
@@ -5672,9 +5674,15 @@
5672
5674
 
5673
5675
  var InputRadioButtonComponent = /** @class */ (function (_super) {
5674
5676
  __extends(InputRadioButtonComponent, _super);
5675
- function InputRadioButtonComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
5676
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
5677
+ function InputRadioButtonComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5678
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5677
5679
  _this.formComponent = formComponent;
5680
+ _this.changeDetector = changeDetector;
5681
+ _this.componentFactoryResolver = componentFactoryResolver;
5682
+ _this.formUserChangeListener = formUserChangeListener;
5683
+ _this.ngZoneWrapper = ngZoneWrapper;
5684
+ _this.elementRef = elementRef;
5685
+ _super.prototype._markAsOnPush.call(_this);
5678
5686
  return _this;
5679
5687
  }
5680
5688
  InputRadioButtonComponent.prototype.showClass = function () {
@@ -5700,8 +5708,10 @@
5700
5708
  InputRadioButtonComponent.ctorParameters = function () { return [
5701
5709
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5702
5710
  { type: core.ChangeDetectorRef },
5711
+ { type: core.ComponentFactoryResolver },
5703
5712
  { type: FormInputUserModelChangeListenerService },
5704
- { type: NgZoneWrapperService }
5713
+ { type: NgZoneWrapperService },
5714
+ { type: core.ElementRef }
5705
5715
  ]; };
5706
5716
  InputRadioButtonComponent.propDecorators = {
5707
5717
  value: [{ type: core.Input }],
@@ -5730,10 +5740,84 @@
5730
5740
  },] }
5731
5741
  ];
5732
5742
 
5743
+ var InputTextareaComponent = /** @class */ (function (_super) {
5744
+ __extends(InputTextareaComponent, _super);
5745
+ function InputTextareaComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5746
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5747
+ _this.formComponent = formComponent;
5748
+ _this.changeDetector = changeDetector;
5749
+ _this.componentFactoryResolver = componentFactoryResolver;
5750
+ _this.formUserChangeListener = formUserChangeListener;
5751
+ _this.ngZoneWrapper = ngZoneWrapper;
5752
+ _this.elementRef = elementRef;
5753
+ _this.placeholder = "";
5754
+ _this.hasOwnLabel = true;
5755
+ _this.customHeight = true;
5756
+ _super.prototype._markAsOnPush.call(_this);
5757
+ return _this;
5758
+ }
5759
+ InputTextareaComponent.prototype.showClass = function () {
5760
+ return true;
5761
+ };
5762
+ return InputTextareaComponent;
5763
+ }(BaseInputComponent));
5764
+ InputTextareaComponent.decorators = [
5765
+ { type: core.Component, args: [{
5766
+ selector: "co-input-textarea",
5767
+ template: "\n <label [textContent]=\"placeholder\"></label>\n <textarea type=\"textarea\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n (focus)=\"focused = true\"\n (blur)=\"focused = false\"\n ></textarea>\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
5768
+ providers: [{
5769
+ provide: COMPONENT_INTERFACE_NAME,
5770
+ useExisting: core.forwardRef(function () { return InputTextareaComponent; })
5771
+ }],
5772
+ encapsulation: core.ViewEncapsulation.None
5773
+ },] }
5774
+ ];
5775
+ InputTextareaComponent.ctorParameters = function () { return [
5776
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5777
+ { type: core.ChangeDetectorRef },
5778
+ { type: core.ComponentFactoryResolver },
5779
+ { type: FormInputUserModelChangeListenerService },
5780
+ { type: NgZoneWrapperService },
5781
+ { type: core.ElementRef }
5782
+ ]; };
5783
+ InputTextareaComponent.propDecorators = {
5784
+ placeholder: [{ type: core.Input }],
5785
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-textarea",] }],
5786
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }],
5787
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
5788
+ };
5789
+
5790
+ var InputTextareaModule = /** @class */ (function () {
5791
+ function InputTextareaModule() {
5792
+ }
5793
+ return InputTextareaModule;
5794
+ }());
5795
+ InputTextareaModule.decorators = [
5796
+ { type: core.NgModule, args: [{
5797
+ imports: [
5798
+ common.CommonModule,
5799
+ forms.FormsModule,
5800
+ ValidationErrorModule
5801
+ ],
5802
+ declarations: [
5803
+ InputTextareaComponent
5804
+ ],
5805
+ exports: [
5806
+ InputTextareaComponent
5807
+ ]
5808
+ },] }
5809
+ ];
5810
+
5733
5811
  var MultiSelectListComponent = /** @class */ (function (_super) {
5734
5812
  __extends(MultiSelectListComponent, _super);
5735
- function MultiSelectListComponent() {
5736
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
5813
+ function MultiSelectListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5814
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5815
+ _this.formComponent = formComponent;
5816
+ _this.changeDetector = changeDetector;
5817
+ _this.componentFactoryResolver = componentFactoryResolver;
5818
+ _this.formUserChangeListener = formUserChangeListener;
5819
+ _this.ngZoneWrapper = ngZoneWrapper;
5820
+ _this.elementRef = elementRef;
5737
5821
  /**
5738
5822
  * In the form { text: 'name', value: 'id' }
5739
5823
  * Where 'text' is showing in the dropdown and 'id' used for the model binding
@@ -5741,6 +5825,7 @@
5741
5825
  _this.fields = {};
5742
5826
  _this.showSelectAll = true;
5743
5827
  _this.mode = "Default";
5828
+ _super.prototype._markAsOnPush.call(_this);
5744
5829
  return _this;
5745
5830
  }
5746
5831
  Object.defineProperty(MultiSelectListComponent.prototype, "showCheckbox", {
@@ -5755,12 +5840,20 @@
5755
5840
  MultiSelectListComponent.prototype.showClass = function () {
5756
5841
  return true;
5757
5842
  };
5843
+ MultiSelectListComponent.prototype.handleModelChange = function (val) {
5844
+ if (Array.isArray(val)) {
5845
+ if (val.length < 1) {
5846
+ val = undefined;
5847
+ }
5848
+ }
5849
+ this.modelChange.next(val);
5850
+ };
5758
5851
  return MultiSelectListComponent;
5759
5852
  }(BaseInputComponent));
5760
5853
  MultiSelectListComponent.decorators = [
5761
5854
  { type: core.Component, args: [{
5762
5855
  selector: "co-multi-select-list",
5763
- template: "\n <ejs-multiselect\n [dataSource]=\"collection\"\n [placeholder]=\"placeHolder\"\n [value]=\"model\"\n [mode]=\"mode\"\n [cssClass]=\"'co-multi-select-list'\"\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 (valueChange)=\"modelChange.emit($event)\"\n ></ejs-multiselect>\n ",
5856
+ 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 ",
5764
5857
  providers: [
5765
5858
  ej2AngularDropdowns.CheckBoxSelectionService,
5766
5859
  {
@@ -5768,14 +5861,21 @@
5768
5861
  useExisting: core.forwardRef(function () { return MultiSelectListComponent; })
5769
5862
  }
5770
5863
  ],
5771
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5772
5864
  encapsulation: core.ViewEncapsulation.None
5773
5865
  },] }
5774
5866
  ];
5867
+ MultiSelectListComponent.ctorParameters = function () { return [
5868
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5869
+ { type: core.ChangeDetectorRef },
5870
+ { type: core.ComponentFactoryResolver },
5871
+ { type: FormInputUserModelChangeListenerService },
5872
+ { type: NgZoneWrapperService },
5873
+ { type: core.ElementRef }
5874
+ ]; };
5775
5875
  MultiSelectListComponent.propDecorators = {
5776
5876
  collection: [{ type: core.Input }],
5777
5877
  fields: [{ type: core.Input }],
5778
- placeHolder: [{ type: core.Input }],
5878
+ placeholder: [{ type: core.Input }],
5779
5879
  itemTemplate: [{ type: core.Input }],
5780
5880
  headerTemplate: [{ type: core.Input }],
5781
5881
  valueTemplate: [{ type: core.Input }],
@@ -5795,7 +5895,8 @@
5795
5895
  imports: [
5796
5896
  BaseModule,
5797
5897
  common.CommonModule,
5798
- ej2AngularDropdowns.MultiSelectModule
5898
+ ej2AngularDropdowns.MultiSelectModule,
5899
+ forms.FormsModule
5799
5900
  ],
5800
5901
  declarations: [MultiSelectListComponent],
5801
5902
  exports: [MultiSelectListComponent]
@@ -7287,13 +7388,21 @@
7287
7388
  ej2AngularDropdowns.ListBoxComponent.Inject(ej2AngularDropdowns.CheckBoxSelection);
7288
7389
  var InputListboxComponent = /** @class */ (function (_super) {
7289
7390
  __extends(InputListboxComponent, _super);
7290
- function InputListboxComponent() {
7291
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7391
+ function InputListboxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7392
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7393
+ _this.formComponent = formComponent;
7394
+ _this.changeDetector = changeDetector;
7395
+ _this.componentFactoryResolver = componentFactoryResolver;
7396
+ _this.formUserChangeListener = formUserChangeListener;
7397
+ _this.ngZoneWrapper = ngZoneWrapper;
7398
+ _this.elementRef = elementRef;
7292
7399
  // public set model(value: string[] | number[]) {
7293
7400
  // this._model = value;
7294
7401
  // }
7295
7402
  _this.collection = [];
7403
+ _this.customHeight = true;
7296
7404
  _this.selectionSettings = { mode: 'Multiple' };
7405
+ _super.prototype._markAsOnPush.call(_this);
7297
7406
  return _this;
7298
7407
  }
7299
7408
  Object.defineProperty(InputListboxComponent.prototype, "singleSelect", {
@@ -7331,14 +7440,21 @@
7331
7440
  InputListboxComponent.decorators = [
7332
7441
  { type: core.Component, args: [{
7333
7442
  selector: 'co-input-listbox',
7334
- template: "\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\n <div class=\"co-input-listbox-content\">\n <ejs-listbox\n [ngModel]=\"value\"\n [dataSource]=\"collection\"\n [fields]=\"fields\"\n [selectionSettings]=\"selectionSettings\"\n (ngModelChange)=\"modelChange.emit($event)\"\n ></ejs-listbox>\n </div>\n ",
7443
+ template: "\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\n <div class=\"co-input-listbox-content\">\n <ejs-listbox\n [ngModel]=\"value\"\n [dataSource]=\"collection\"\n [fields]=\"fields\"\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 ",
7335
7444
  providers: [{
7336
7445
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputListboxComponent; })
7337
7446
  }],
7338
- changeDetection: core.ChangeDetectionStrategy.OnPush,
7339
7447
  encapsulation: core.ViewEncapsulation.None
7340
7448
  },] }
7341
7449
  ];
7450
+ InputListboxComponent.ctorParameters = function () { return [
7451
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
7452
+ { type: core.ChangeDetectorRef },
7453
+ { type: core.ComponentFactoryResolver },
7454
+ { type: FormInputUserModelChangeListenerService },
7455
+ { type: NgZoneWrapperService },
7456
+ { type: core.ElementRef }
7457
+ ]; };
7342
7458
  InputListboxComponent.propDecorators = {
7343
7459
  placeholder: [{ type: core.Input }],
7344
7460
  value: [{ type: core.Input }],
@@ -7347,7 +7463,8 @@
7347
7463
  singleSelect: [{ type: core.Input }],
7348
7464
  showCheckbox: [{ type: core.Input }],
7349
7465
  showSelectAll: [{ type: core.Input }],
7350
- showClass: [{ type: core.HostBinding, args: ['class.co-input-listbox',] }]
7466
+ showClass: [{ type: core.HostBinding, args: ['class.co-input-listbox',] }],
7467
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
7351
7468
  };
7352
7469
 
7353
7470
  ej2Base.enableRipple(true);
@@ -7514,6 +7631,377 @@
7514
7631
  },] }
7515
7632
  ];
7516
7633
 
7634
+ var CarouselItem = /** @class */ (function () {
7635
+ function CarouselItem(options, index, onClick) {
7636
+ var _this = this;
7637
+ var _a, _b;
7638
+ this._options = options || {};
7639
+ this.index = index;
7640
+ var width = ((_a = this._options.tileSize) === null || _a === void 0 ? void 0 : _a.x) || 0;
7641
+ var height = ((_b = this._options.tileSize) === null || _b === void 0 ? void 0 : _b.y) || 0;
7642
+ this._element = document.createElement('div');
7643
+ // this._element.style.backgroundColor = this._options.tileBackgroundColor;
7644
+ this._element.style.width = width + "px";
7645
+ this._element.style.height = height + "px";
7646
+ this._element.addEventListener("click", function () {
7647
+ if (onClick) {
7648
+ onClick(_this.index);
7649
+ }
7650
+ }, false);
7651
+ this.object = new CSS3DRenderer.CSS3DObject(this._element);
7652
+ var geometry = new three.PlaneBufferGeometry(width, height);
7653
+ this.mesh = new three.Mesh(geometry, options.tileMaterial);
7654
+ this.mesh.castShadow = true;
7655
+ }
7656
+ CarouselItem.prototype.setPosition = function (position) {
7657
+ if (this.mesh) {
7658
+ this.mesh.position.copy(position);
7659
+ }
7660
+ if (this.object) {
7661
+ this.object.position.copy(position);
7662
+ }
7663
+ };
7664
+ CarouselItem.prototype.setContent = function (content) {
7665
+ if (this._element) {
7666
+ // remove any exising tile content before setting new content
7667
+ while (this._element.lastElementChild) {
7668
+ this._element.removeChild(this._element.lastElementChild);
7669
+ }
7670
+ try {
7671
+ this._element.appendChild(content);
7672
+ }
7673
+ catch (err) {
7674
+ }
7675
+ }
7676
+ };
7677
+ CarouselItem.prototype.setVisible = function (visible) {
7678
+ if (this.mesh) {
7679
+ this.mesh.visible = visible;
7680
+ }
7681
+ if (this.object) {
7682
+ this.object.visible = visible;
7683
+ }
7684
+ };
7685
+ return CarouselItem;
7686
+ }());
7687
+
7688
+ var Carousel3dComponent = /** @class */ (function () {
7689
+ function Carousel3dComponent() {
7690
+ this.cameraHeight = 50;
7691
+ this.shadow = false;
7692
+ this.selectedIndex = 0;
7693
+ this.indexSelected = new core.EventEmitter();
7694
+ this._cameraZoom = 0;
7695
+ this._backgroundColor = 0xffffff;
7696
+ this._ambientLight = true;
7697
+ this._tileSize = new three.Vector2();
7698
+ this._tileMargin = 20;
7699
+ this._targetPositions = [];
7700
+ this._tileElements = [];
7701
+ this._tileOffset = 0;
7702
+ this._tiles3D = [];
7703
+ this._planeColor = 0xffffff;
7704
+ this._planeHeight = -46;
7705
+ this._spotLightPosition = new three.Vector3(0, 250, -200);
7706
+ this._fullCircle = false;
7707
+ this._initialized = false;
7708
+ this._elementsCreated = false;
7709
+ this.canNavigateLeft = false;
7710
+ this.canNavigateRight = false;
7711
+ }
7712
+ Object.defineProperty(Carousel3dComponent.prototype, "children", {
7713
+ set: function (children) {
7714
+ this._elementsCreated = false;
7715
+ this._tileElements = children.toArray();
7716
+ this._buildCarousel();
7717
+ },
7718
+ enumerable: false,
7719
+ configurable: true
7720
+ });
7721
+ Carousel3dComponent.prototype.showClass = function () {
7722
+ return true;
7723
+ };
7724
+ Carousel3dComponent.prototype.ngAfterViewInit = function () {
7725
+ this._buildCarousel();
7726
+ };
7727
+ Carousel3dComponent.prototype.ngOnDestroy = function () {
7728
+ this.canvasContainer = undefined;
7729
+ this.carouselWrapper = undefined;
7730
+ this._clearScenes();
7731
+ };
7732
+ Carousel3dComponent.prototype.handleButtonLeftClick = function () {
7733
+ this._tileOffset -= 1;
7734
+ this._rotate(400);
7735
+ };
7736
+ Carousel3dComponent.prototype.handleButtonRightClick = function () {
7737
+ this._tileOffset += 1;
7738
+ this._rotate(400);
7739
+ };
7740
+ Carousel3dComponent.prototype._buildCarousel = function () {
7741
+ if (!this._initialized) {
7742
+ this._init();
7743
+ }
7744
+ if (this._initialized && !this._elementsCreated) {
7745
+ this._createTiles();
7746
+ }
7747
+ this._checkNavigationButtons();
7748
+ };
7749
+ Carousel3dComponent.prototype._init = function () {
7750
+ var _this = this;
7751
+ if (!this.canvasContainer || !this.canvasContainer.nativeElement) {
7752
+ return;
7753
+ }
7754
+ this._initCamera();
7755
+ this._initScene();
7756
+ this._initRenderer();
7757
+ if (this.shadow) {
7758
+ var geometry = new three.PlaneGeometry(10000, 10000);
7759
+ var material = new three.MeshPhongMaterial({ color: this._planeColor, shininess: 100 });
7760
+ var plane = new three.Mesh(geometry, material);
7761
+ plane.receiveShadow = true;
7762
+ plane.rotation.x = -Math.PI / 2;
7763
+ plane.position.y = this._planeHeight;
7764
+ this._scene.add(plane);
7765
+ var spotLight = new three.SpotLight(0xffffff, 0.5);
7766
+ spotLight.position.copy(this._spotLightPosition);
7767
+ spotLight.castShadow = true;
7768
+ spotLight.shadow.mapSize.width = 512;
7769
+ spotLight.shadow.mapSize.height = 512;
7770
+ spotLight.shadow.camera.near = 50;
7771
+ spotLight.shadow.camera.far = 1200;
7772
+ spotLight.shadow.camera.fov = 30;
7773
+ spotLight.penumbra = 1;
7774
+ this._scene.add(spotLight);
7775
+ }
7776
+ this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);
7777
+ this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);
7778
+ this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);
7779
+ this._render();
7780
+ this._animate();
7781
+ window.addEventListener("resize", function () {
7782
+ _this._resizeCanvasToDisplaySize();
7783
+ }, false);
7784
+ this._initialized = true;
7785
+ };
7786
+ Carousel3dComponent.prototype._initCamera = function () {
7787
+ this._camera = new three.PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);
7788
+ this._camera.position.z = 600 - this._cameraZoom;
7789
+ this._camera.position.y = this.cameraHeight;
7790
+ this._camera.lookAt(new three.Vector3());
7791
+ };
7792
+ Carousel3dComponent.prototype._initScene = function () {
7793
+ this._sceneCss = new three.Scene();
7794
+ this._scene = new three.Scene();
7795
+ this._scene.background = new three.Color(this._backgroundColor);
7796
+ if (this._ambientLight) {
7797
+ var light = new three.AmbientLight(0xaaaaaa); // soft white light
7798
+ this._scene.add(light);
7799
+ this._scene.fog = new three.Fog(this._backgroundColor, 70, 2500);
7800
+ }
7801
+ };
7802
+ Carousel3dComponent.prototype._initRenderer = function () {
7803
+ this._rendererCss = new CSS3DRenderer.CSS3DRenderer();
7804
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7805
+ this._rendererCss.domElement.style.position = "absolute";
7806
+ this._renderer = new three.WebGLRenderer({ antialias: true });
7807
+ this._renderer.setPixelRatio(window.devicePixelRatio);
7808
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7809
+ this._renderer.shadowMap.enabled = true;
7810
+ };
7811
+ Carousel3dComponent.prototype._disposeObject = function (obj) {
7812
+ if (obj instanceof three.Mesh) {
7813
+ if (obj.geometry) {
7814
+ obj.geometry.dispose();
7815
+ }
7816
+ if (obj.material) {
7817
+ Array.isArray(obj.material) ? obj.material.map(function (m) { return m.dispose(); }) : obj.material.dispose();
7818
+ }
7819
+ obj = undefined;
7820
+ }
7821
+ else {
7822
+ obj.element = undefined;
7823
+ obj = undefined;
7824
+ }
7825
+ };
7826
+ Carousel3dComponent.prototype._clearScenes = function () {
7827
+ var _a, _b;
7828
+ var _this = this;
7829
+ var meshes = this._tiles3D.map(function (t) { return t.mesh; });
7830
+ var cssObjs = this._tiles3D.map(function (t) { return t.object; });
7831
+ (_a = this._scene).remove.apply(_a, __spreadArray([], __read(meshes)));
7832
+ meshes.map(function (m) { return _this._disposeObject(m); });
7833
+ meshes.length = 0;
7834
+ (_b = this._sceneCss).remove.apply(_b, __spreadArray([], __read(cssObjs)));
7835
+ cssObjs.map(function (o) { return _this._disposeObject(o); });
7836
+ cssObjs.length = 0;
7837
+ this._tiles3D.length = 0;
7838
+ this._targetPositions.length = 0;
7839
+ };
7840
+ Carousel3dComponent.prototype._createTiles = function () {
7841
+ var _this = this;
7842
+ this._clearScenes();
7843
+ this._tileSize.x = this.tileWidth;
7844
+ this._tileSize.y = this.tileHeight;
7845
+ var tileWidth = this._tileSize.x + this._tileMargin;
7846
+ var numItems = Math.max(this._tileElements.length, 20);
7847
+ this._fullCircle = this._tileElements.length >= 20;
7848
+ var angleTileDeg = 360 / numItems;
7849
+ var circumference = numItems * tileWidth;
7850
+ var radius = circumference / (Math.PI * 2);
7851
+ var y = this.shadow ? 75 : 45;
7852
+ var len = numItems;
7853
+ var angleDeg = 90;
7854
+ var position = new three.Vector3();
7855
+ for (var i = 0; i < len; i++) {
7856
+ var angle = angleDeg * (Math.PI / 180); // Radians
7857
+ var x = radius * Math.cos(angle);
7858
+ var z = -radius + radius * Math.sin(angle);
7859
+ position.set(x, y, z);
7860
+ this._targetPositions.push(position.clone());
7861
+ if (i < this._tileElements.length) {
7862
+ var tile = new CarouselItem({ tileSize: this._tileSize }, i, function (idx) { return _this._rotateTo(idx); });
7863
+ tile.setPosition(position);
7864
+ tile.setContent(this._tileElements[i].nativeElement);
7865
+ this._scene.add(tile.mesh);
7866
+ this._sceneCss.add(tile.object);
7867
+ this._tiles3D.push(tile);
7868
+ }
7869
+ angleDeg = angleDeg - angleTileDeg; // CW instead of CCW
7870
+ }
7871
+ this._adjustCameraZoom();
7872
+ this._tileOffset = this.selectedIndex;
7873
+ this._rotate(0);
7874
+ this._render();
7875
+ };
7876
+ Carousel3dComponent.prototype._adjustCameraZoom = function () {
7877
+ if (this._tiles3D.length === 0) {
7878
+ return;
7879
+ }
7880
+ var object = this._tiles3D[0].mesh;
7881
+ // offset = offset || 1.15;
7882
+ // get bounding box of object - this will be used to setup controls and camera
7883
+ var boundingBox = new three.Box3();
7884
+ boundingBox.setFromObject(object);
7885
+ var center = new three.Vector3();
7886
+ boundingBox.getCenter(center);
7887
+ var size = new three.Vector3();
7888
+ boundingBox.getSize(size);
7889
+ // get the max side of the bounding box (fits to width OR height as needed )
7890
+ var maxDim = Math.max(size.x, size.y, size.z);
7891
+ var fov = this._camera.fov * (Math.PI / 180);
7892
+ // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));
7893
+ var cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));
7894
+ // cameraZ *= offset; // zoom out a little so that objects don't fill the screen
7895
+ this._camera.position.z = cameraZ;
7896
+ this._camera.lookAt(center);
7897
+ };
7898
+ Carousel3dComponent.prototype._checkNavigationButtons = function () {
7899
+ var currentIdx = this._getSelectedIndex();
7900
+ this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;
7901
+ this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;
7902
+ };
7903
+ Carousel3dComponent.prototype._animate = function () {
7904
+ var _this = this;
7905
+ TWEEN__namespace.update();
7906
+ setTimeout(function () {
7907
+ _this._renderer.setAnimationLoop(function () { return _this._animate(); });
7908
+ }, 200);
7909
+ };
7910
+ Carousel3dComponent.prototype._getSelectedIndex = function () {
7911
+ return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));
7912
+ };
7913
+ Carousel3dComponent.prototype._rotate = function (duration) {
7914
+ var _this = this;
7915
+ TWEEN__namespace.removeAll();
7916
+ for (var i = 0; i < this._tiles3D.length; i++) {
7917
+ var tile = this._tiles3D[i];
7918
+ if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle
7919
+ this._tileOffset = this._tileOffset > 0 ? 1 : -1;
7920
+ }
7921
+ var positionIdx = i - this._tileOffset;
7922
+ if (positionIdx > this._targetPositions.length - 1) {
7923
+ positionIdx = positionIdx - this._targetPositions.length;
7924
+ }
7925
+ else if (positionIdx < 0) {
7926
+ positionIdx = this._targetPositions.length + positionIdx;
7927
+ }
7928
+ var target = this._targetPositions[positionIdx];
7929
+ new TWEEN__namespace.Tween(tile.object.position)
7930
+ .to(target, duration)
7931
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7932
+ .start();
7933
+ new TWEEN__namespace.Tween(tile.mesh.position)
7934
+ .to(target, duration)
7935
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7936
+ .start();
7937
+ }
7938
+ new TWEEN__namespace.Tween()
7939
+ .to({}, duration * 2)
7940
+ .onUpdate(function () {
7941
+ _this._render();
7942
+ })
7943
+ .start();
7944
+ this.selectedIndex = this._tileOffset;
7945
+ this._checkNavigationButtons();
7946
+ this.indexSelected.next(this._getSelectedIndex());
7947
+ };
7948
+ Carousel3dComponent.prototype._rotateTo = function (index) {
7949
+ var current = this._getSelectedIndex();
7950
+ this._tileOffset += index - current;
7951
+ this._rotate(800);
7952
+ };
7953
+ Carousel3dComponent.prototype._resizeCanvasToDisplaySize = function () {
7954
+ this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;
7955
+ this._camera.updateProjectionMatrix();
7956
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7957
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7958
+ this._render();
7959
+ };
7960
+ Carousel3dComponent.prototype._render = function () {
7961
+ this._rendererCss.render(this._sceneCss, this._camera);
7962
+ this._renderer.render(this._scene, this._camera);
7963
+ };
7964
+ return Carousel3dComponent;
7965
+ }());
7966
+ Carousel3dComponent.decorators = [
7967
+ { type: core.Component, args: [{
7968
+ selector: "co-carousel-3d",
7969
+ template: "\n <div class=\"carousel-3d-canvas-wrapper\" #canvasContainer>\n <div class=\"carousel-wrapper\" #carouselWrapper>\n <div class=\"carousel-navigate-button left\">\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateLeft\" (click)=\"handleButtonLeftClick()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\n <path\n d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"></path>\n </svg>\n </div>\n </div>\n <div class=\"carousel-navigate-button right\">\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateRight\" (click)=\"handleButtonRightClick()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\n <path\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n ",
7970
+ encapsulation: core.ViewEncapsulation.None
7971
+ },] }
7972
+ ];
7973
+ Carousel3dComponent.propDecorators = {
7974
+ canvasContainer: [{ type: core.ViewChild, args: ["canvasContainer", { read: core.ElementRef },] }],
7975
+ carouselWrapper: [{ type: core.ViewChild, args: ["carouselWrapper", { read: core.ElementRef },] }],
7976
+ children: [{ type: core.ContentChildren, args: ["carouselItem", { read: core.ElementRef, descendants: true },] }],
7977
+ tileWidth: [{ type: core.Input }],
7978
+ tileHeight: [{ type: core.Input }],
7979
+ cameraHeight: [{ type: core.Input }],
7980
+ shadow: [{ type: core.Input }],
7981
+ selectedIndex: [{ type: core.Input }],
7982
+ indexSelected: [{ type: core.Output }],
7983
+ showClass: [{ type: core.HostBinding, args: ["class.co-carousel-3d",] }]
7984
+ };
7985
+
7986
+ var Carousel3dModule = /** @class */ (function () {
7987
+ function Carousel3dModule() {
7988
+ }
7989
+ return Carousel3dModule;
7990
+ }());
7991
+ Carousel3dModule.decorators = [
7992
+ { type: core.NgModule, args: [{
7993
+ imports: [
7994
+ common.CommonModule
7995
+ ],
7996
+ declarations: [
7997
+ Carousel3dComponent
7998
+ ],
7999
+ exports: [
8000
+ Carousel3dComponent
8001
+ ]
8002
+ },] }
8003
+ ];
8004
+
7517
8005
  /*
7518
8006
  * Public API Surface of corecomponents
7519
8007
  */
@@ -7529,6 +8017,8 @@
7529
8017
  exports.ButtonDropDownModule = ButtonDropDownModule;
7530
8018
  exports.ButtonModule = ButtonModule;
7531
8019
  exports.COMPONENT_INTERFACE_NAME = COMPONENT_INTERFACE_NAME;
8020
+ exports.Carousel3dComponent = Carousel3dComponent;
8021
+ exports.Carousel3dModule = Carousel3dModule;
7532
8022
  exports.CoDialogComponent = CoDialogComponent;
7533
8023
  exports.CoDialogModule = CoDialogModule;
7534
8024
  exports.CoDialogPromptComponent = CoDialogPromptComponent;
@@ -7552,6 +8042,7 @@
7552
8042
  exports.DropDownListComponent = DropDownListComponent;
7553
8043
  exports.DropDownModule = DropDownModule;
7554
8044
  exports.FormComponent = FormComponent;
8045
+ exports.FormMasterService = FormMasterService;
7555
8046
  exports.FormModule = FormModule;
7556
8047
  exports.IconCacheService = IconCacheService;
7557
8048
  exports.IconComponent = IconComponent;
@@ -7574,6 +8065,8 @@
7574
8065
  exports.InputRadioButtonModule = InputRadioButtonModule;
7575
8066
  exports.InputTextComponent = InputTextComponent;
7576
8067
  exports.InputTextModule = InputTextModule;
8068
+ exports.InputTextareaComponent = InputTextareaComponent;
8069
+ exports.InputTextareaModule = InputTextareaModule;
7577
8070
  exports.LevelIndicatorComponent = LevelIndicatorComponent;
7578
8071
  exports.LevelIndicatorModule = LevelIndicatorModule;
7579
8072
  exports.MultiSelectListComponent = MultiSelectListComponent;
@@ -7604,14 +8097,15 @@
7604
8097
  exports["ɵm"] = FormInputUserModelChangeListenerService;
7605
8098
  exports["ɵn"] = NgZoneWrapperService;
7606
8099
  exports["ɵo"] = BaseInputComponent;
7607
- exports["ɵp"] = FormMasterService;
7608
- exports["ɵq"] = BaseSelectionGridComponent;
7609
- exports["ɵr"] = BaseInlineEditGridComponent;
7610
- exports["ɵs"] = BaseToolbarGridComponent;
7611
- exports["ɵt"] = BaseGridComponent;
7612
- exports["ɵu"] = AppendPipeModule;
7613
- exports["ɵv"] = AppendPipe;
7614
- exports["ɵw"] = PopupShowerService;
8100
+ exports["ɵp"] = BaseSelectionGridComponent;
8101
+ exports["ɵq"] = BaseInlineEditGridComponent;
8102
+ exports["ɵr"] = BaseToolbarGridComponent;
8103
+ exports["ɵs"] = BaseGridComponent;
8104
+ exports["ɵt"] = AppendPipeModule;
8105
+ exports["ɵu"] = AppendPipe;
8106
+ exports["ɵv"] = ValidationErrorModule;
8107
+ exports["ɵw"] = ValidationErrorComponent;
8108
+ exports["ɵx"] = PopupShowerService;
7615
8109
 
7616
8110
  Object.defineProperty(exports, '__esModule', { value: true });
7617
8111