@colijnit/corecomponents_v12 12.0.17 → 12.0.20

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 (145) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +807 -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 +86 -14
  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/drop-down-list/drop-down-list.component.js +30 -8
  12. package/esm2015/lib/components/drop-down-list/drop-down.module.js +9 -7
  13. package/esm2015/lib/components/form/form.component.js +3 -22
  14. package/esm2015/lib/components/form/form.module.js +4 -4
  15. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +15 -5
  16. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +6 -14
  17. package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +24 -29
  18. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +10 -7
  19. package/esm2015/lib/components/input-listbox/input-listbox.component.js +27 -6
  20. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +9 -9
  21. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +13 -5
  22. package/esm2015/lib/components/input-text/input-text.component.js +21 -81
  23. package/esm2015/lib/components/input-text/input-text.module.js +16 -13
  24. package/esm2015/lib/components/input-textarea/input-textarea.component.js +62 -0
  25. package/esm2015/lib/components/input-textarea/input-textarea.module.js +23 -0
  26. package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -9
  27. package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +9 -7
  28. package/esm2015/lib/components/validation-error/validation-error.component.js +35 -0
  29. package/esm2015/lib/components/validation-error/validation-error.module.js +21 -0
  30. package/esm2015/public-api.js +6 -1
  31. package/fesm2015/colijnit-corecomponents_v12.js +827 -269
  32. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  33. package/lib/components/base/base-input.component.d.ts +13 -3
  34. package/lib/components/button/style/_layout.scss +0 -1
  35. package/lib/components/button/style/_theme.scss +2 -3
  36. package/lib/components/button-drop-down/style/_layout.scss +0 -2
  37. package/lib/components/button-drop-down/style/_theme.scss +0 -2
  38. package/lib/components/button-drop-down/style/material.scss +1 -0
  39. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
  40. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
  41. package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
  42. package/lib/components/carousel-3d/style/_layout.scss +62 -0
  43. package/lib/components/carousel-3d/style/_material-definition.scss +6 -0
  44. package/lib/components/carousel-3d/style/_theme.scss +4 -0
  45. package/lib/components/carousel-3d/style/material.scss +5 -0
  46. package/lib/components/co-dialog/style/_layout.scss +0 -3
  47. package/lib/components/co-dialog/style/_theme.scss +0 -3
  48. package/lib/components/co-dialog/style/material.scss +1 -0
  49. package/lib/components/co-kanban/style/_layout.scss +4 -3
  50. package/lib/components/co-kanban/style/_material-definition.scss +2 -0
  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 +9 -3
  61. package/lib/components/drop-down-list/style/_material-definition.scss +2 -0
  62. package/lib/components/drop-down-list/style/_theme.scss +0 -2
  63. package/lib/components/drop-down-list/style/material.scss +2 -0
  64. package/lib/components/form/form.component.d.ts +2 -3
  65. package/lib/components/grid/style/_layout.scss +0 -2
  66. package/lib/components/grid/style/_theme.scss +0 -2
  67. package/lib/components/grid/style/material.scss +1 -0
  68. package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -2
  69. package/lib/components/input-checkbox/style/_layout.scss +0 -2
  70. package/lib/components/input-checkbox/style/_theme.scss +0 -2
  71. package/lib/components/input-checkbox/style/material.scss +1 -0
  72. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +4 -6
  73. package/lib/components/input-checkbox-multi-select/style/_layout.scss +5 -3
  74. package/lib/components/input-checkbox-multi-select/style/_material-definition.scss +2 -0
  75. package/lib/components/input-checkbox-multi-select/style/_theme.scss +0 -2
  76. package/lib/components/input-checkbox-multi-select/style/material.scss +1 -0
  77. package/lib/components/input-combo-box/input-combo-box.component.d.ts +6 -7
  78. package/lib/components/input-combo-box/style/_layout.scss +12 -3
  79. package/lib/components/input-combo-box/style/_material-definition.scss +2 -7
  80. package/lib/components/input-combo-box/style/_theme.scss +0 -2
  81. package/lib/components/input-combo-box/style/material.scss +9 -0
  82. package/lib/components/input-date-picker/input-date-picker.component.d.ts +4 -3
  83. package/lib/components/input-date-picker/style/_layout.scss +5 -3
  84. package/lib/components/input-date-picker/style/_material-definition.scss +4 -0
  85. package/lib/components/input-date-picker/style/_theme.scss +0 -2
  86. package/lib/components/input-date-picker/style/material.scss +2 -0
  87. package/lib/components/input-listbox/input-listbox.component.d.ts +12 -1
  88. package/lib/components/input-listbox/style/_layout.scss +1 -2
  89. package/lib/components/input-listbox/style/_material-definition.scss +2 -2
  90. package/lib/components/input-listbox/style/_theme.scss +0 -2
  91. package/lib/components/input-listbox/style/material.scss +2 -0
  92. package/lib/components/input-number-picker/input-number-picker.component.d.ts +5 -5
  93. package/lib/components/input-number-picker/style/_layout.scss +0 -2
  94. package/lib/components/input-number-picker/style/_theme.scss +0 -2
  95. package/lib/components/input-number-picker/style/material.scss +1 -0
  96. package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -2
  97. package/lib/components/input-radio-button/style/_layout.scss +0 -2
  98. package/lib/components/input-radio-button/style/_theme.scss +0 -2
  99. package/lib/components/input-radio-button/style/material.scss +1 -0
  100. package/lib/components/input-search/style/_layout.scss +0 -3
  101. package/lib/components/input-search/style/_theme.scss +0 -4
  102. package/lib/components/input-search/style/material.scss +1 -0
  103. package/lib/components/input-text/input-text.component.d.ts +6 -30
  104. package/lib/components/input-text/style/_layout.scss +14 -3
  105. package/lib/components/input-text/style/_material-definition.scss +4 -3
  106. package/lib/components/input-text/style/_theme.scss +5 -3
  107. package/lib/components/input-text/style/material.scss +3 -0
  108. package/lib/components/input-textarea/input-textarea.component.d.ts +18 -0
  109. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
  110. package/lib/components/input-textarea/style/_layout.scss +20 -0
  111. package/lib/components/input-textarea/style/_material-definition.scss +4 -0
  112. package/lib/components/input-textarea/style/_theme.scss +9 -0
  113. package/lib/components/input-textarea/style/material.scss +7 -0
  114. package/lib/components/multi-select-list/multi-select-list.component.d.ts +13 -2
  115. package/lib/components/multi-select-list/style/_layout.scss +11 -3
  116. package/lib/components/multi-select-list/style/_material-definition.scss +2 -0
  117. package/lib/components/multi-select-list/style/_theme.scss +5 -3
  118. package/lib/components/multi-select-list/style/material.scss +2 -0
  119. package/lib/components/pivot/style/_layout.scss +0 -2
  120. package/lib/components/pivot/style/_theme.scss +0 -2
  121. package/lib/components/pivot/style/material.scss +1 -0
  122. package/lib/components/simple-grid/style/_layout.scss +0 -2
  123. package/lib/components/simple-grid/style/_theme.scss +0 -2
  124. package/lib/components/simple-grid/style/material.scss +1 -0
  125. package/lib/components/validation-error/style/_layout.scss +45 -0
  126. package/lib/components/validation-error/style/_material-definition.scss +9 -0
  127. package/lib/components/validation-error/style/_theme.scss +21 -0
  128. package/lib/components/validation-error/style/material.scss +5 -0
  129. package/lib/components/validation-error/validation-error.component.d.ts +10 -0
  130. package/lib/components/validation-error/validation-error.module.d.ts +2 -0
  131. package/lib/style/_input.mixins.scss +71 -281
  132. package/lib/style/_variables.scss +16 -1
  133. package/package.json +5 -2
  134. package/public-api.d.ts +5 -0
  135. package/esm2015/lib/core/enum/float-label-type.enum.js +0 -7
  136. package/esm2015/lib/core/enum/input-text-type.enum.js +0 -6
  137. package/esm2015/lib/core/model/numerical-range.js +0 -14
  138. package/lib/components/drop-down-list/drop-down-list.component.scss +0 -0
  139. package/lib/core/enum/float-label-type.enum.d.ts +0 -5
  140. package/lib/core/enum/input-text-type.enum.d.ts +0 -4
  141. package/lib/core/model/numerical-range.d.ts +0 -7
  142. package/lib/style/_extendables.scss +0 -32
  143. package/lib/style/_responsiveness.mixins.scss +0 -64
  144. package/lib/style/_responsiveness.scss +0 -4
  145. 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],
@@ -3081,18 +3100,43 @@
3081
3100
  };
3082
3101
  }
3083
3102
 
3103
+ var ValidationErrorComponent = /** @class */ (function () {
3104
+ function ValidationErrorComponent(icons) {
3105
+ this.icons = icons;
3106
+ this.Icons = exports.CoreComponentsIcon;
3107
+ }
3108
+ ValidationErrorComponent.prototype.showClass = function () {
3109
+ return true;
3110
+ };
3111
+ return ValidationErrorComponent;
3112
+ }());
3113
+ ValidationErrorComponent.decorators = [
3114
+ { type: core.Component, args: [{
3115
+ selector: "co-validation-error",
3116
+ 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 ",
3117
+ animations: [],
3118
+ encapsulation: core.ViewEncapsulation.None
3119
+ },] }
3120
+ ];
3121
+ ValidationErrorComponent.ctorParameters = function () { return [
3122
+ { type: IconCacheService }
3123
+ ]; };
3124
+ ValidationErrorComponent.propDecorators = {
3125
+ error: [{ type: core.Input }],
3126
+ top: [{ type: core.HostBinding, args: ['style.top.px',] }, { type: core.Input }],
3127
+ left: [{ type: core.HostBinding, args: ['style.left.px',] }, { type: core.Input }],
3128
+ showClass: [{ type: core.HostBinding, args: ['class.co-validation-error',] }]
3129
+ };
3130
+
3084
3131
  /**
3085
3132
  * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
3086
3133
  * adding self as a control to the parent form.
3087
3134
  */
3088
3135
  var BaseInputComponent = /** @class */ (function () {
3089
- function BaseInputComponent(changeDetector, formUserChangeListener,
3090
- // @Optional() protected speechInput?: SpeechInputService,
3091
- ngZoneWrapper,
3092
- // @Optional() protected tooltipManager?: AppTooltipDynamicManagerService,
3093
- elementRef) {
3136
+ function BaseInputComponent(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
3094
3137
  var _this = this;
3095
3138
  this.changeDetector = changeDetector;
3139
+ this.componentFactoryResolver = componentFactoryResolver;
3096
3140
  this.formUserChangeListener = formUserChangeListener;
3097
3141
  this.ngZoneWrapper = ngZoneWrapper;
3098
3142
  this.elementRef = elementRef;
@@ -3150,6 +3194,7 @@
3150
3194
  },
3151
3195
  set: function (value) {
3152
3196
  this._model = value;
3197
+ this._clearErrorComponent();
3153
3198
  },
3154
3199
  enumerable: false,
3155
3200
  configurable: true
@@ -3301,7 +3346,6 @@
3301
3346
  });
3302
3347
  Object.defineProperty(BaseInputComponent.prototype, "formSubmitted", {
3303
3348
  get: function () {
3304
- return true;
3305
3349
  return this.formComponent && this.formComponent.submitted;
3306
3350
  },
3307
3351
  enumerable: false,
@@ -3403,12 +3447,22 @@
3403
3447
  this._modelChangeSub = this.modelChange.subscribe(function (val) {
3404
3448
  _this.model = val;
3405
3449
  });
3450
+ var iOptions = {
3451
+ trackVisibility: true,
3452
+ // 🆕 Set a minimum delay between notifications
3453
+ delay: 100,
3454
+ // root: document,
3455
+ // rootMargin: "1px",
3456
+ threshold: 1
3457
+ };
3458
+ this.intersectionObserver = new IntersectionObserver(function (entries, observer) { return _this._handleElementPositionChange(entries, observer); }, iOptions);
3406
3459
  // if (this.speechInput) {
3407
3460
  // this._subscribeToSpeechInput();
3408
3461
  // }
3409
3462
  };
3410
3463
  BaseInputComponent.prototype.ngAfterViewInit = function () {
3411
3464
  var _this = this;
3465
+ this._prepareInput();
3412
3466
  this._updateControlValidatorsAndOwnFlags();
3413
3467
  this._addOrRemoveSelfFromForm();
3414
3468
  if (this.formComponent) {
@@ -3422,7 +3476,13 @@
3422
3476
  }
3423
3477
  };
3424
3478
  BaseInputComponent.prototype.ngOnDestroy = function () {
3479
+ var _this = this;
3480
+ if (this.input) {
3481
+ this.input.removeEventListener('blur', function () { return _this.doBlur(); });
3482
+ this.input.removeEventListener('focus', function () { return _this.doFocus(); });
3483
+ }
3425
3484
  this._destroyed = true;
3485
+ this._clearErrorComponent();
3426
3486
  // if (this.tooltipManager && this.elementRef) {
3427
3487
  // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);
3428
3488
  // }
@@ -3444,7 +3504,21 @@
3444
3504
  // this._removeSelfFromForm();
3445
3505
  this.elementRef = undefined;
3446
3506
  this.changeDetector = undefined;
3447
- // this.input = undefined;
3507
+ this.input = undefined;
3508
+ };
3509
+ BaseInputComponent.prototype.showValidationError = function (error) {
3510
+ if (this.validationErrorContainer) {
3511
+ if (this._errorValidationComponent) {
3512
+ this._clearErrorComponent();
3513
+ }
3514
+ var clientRect = this.elementRef.nativeElement.getBoundingClientRect();
3515
+ var componentFactory = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);
3516
+ this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);
3517
+ this._errorValidationComponent.instance.top = clientRect.bottom;
3518
+ this._errorValidationComponent.instance.left = clientRect.left;
3519
+ this._errorValidationComponent.instance.error = error;
3520
+ this.intersectionObserver.observe(this.elementRef.nativeElement);
3521
+ }
3448
3522
  };
3449
3523
  /**
3450
3524
  * Emits a modelChange event with given value, indicating that the model of this form input
@@ -3480,9 +3554,13 @@
3480
3554
  this.focused = true;
3481
3555
  }
3482
3556
  };
3557
+ BaseInputComponent.prototype.doFocus = function () {
3558
+ this.focused = true;
3559
+ this.focus.next();
3560
+ };
3483
3561
  BaseInputComponent.prototype.doBlur = function () {
3484
- this.input.blur();
3485
3562
  this.focused = false;
3563
+ this.blur.next();
3486
3564
  };
3487
3565
  BaseInputComponent.prototype.detectChanges = function () {
3488
3566
  if (!this._destroyed) {
@@ -3535,7 +3613,7 @@
3535
3613
  if (notNill(this.forcedMaxLength) || maxLength === this._maxLength) {
3536
3614
  return;
3537
3615
  }
3538
- if (maxLength > 0) { // not maxLength is 0
3616
+ if (!isNaN(maxLength)) {
3539
3617
  this._maxLength = maxLength;
3540
3618
  this._updateControlValidatorsAndOwnFlags();
3541
3619
  }
@@ -3593,6 +3671,18 @@
3593
3671
  this.control.updateValueAndValidity();
3594
3672
  }
3595
3673
  };
3674
+ BaseInputComponent.prototype._clearErrorComponent = function () {
3675
+ if (this.validationErrorContainer) {
3676
+ this.validationErrorContainer.clear();
3677
+ if (this._errorValidationComponent) {
3678
+ this._errorValidationComponent.destroy();
3679
+ this._errorValidationComponent = undefined;
3680
+ }
3681
+ if (this.elementRef && this.elementRef.nativeElement) {
3682
+ this.intersectionObserver.unobserve(this.elementRef.nativeElement);
3683
+ }
3684
+ }
3685
+ };
3596
3686
  // whether this.ngModel.control has safe access
3597
3687
  BaseInputComponent.prototype._controlExists = function () {
3598
3688
  return this.ngModel && !!this.control;
@@ -3606,7 +3696,7 @@
3606
3696
  }
3607
3697
  };
3608
3698
  BaseInputComponent.prototype._setNativeMaxLength = function (maxlength) {
3609
- if (this.input) {
3699
+ if (this.input && !isNaN(maxlength)) {
3610
3700
  this.input.maxLength = maxlength;
3611
3701
  }
3612
3702
  };
@@ -3652,6 +3742,34 @@
3652
3742
  this.formComponent.addFormInput(this.myFormInputInstance ? this.myFormInputInstance : this);
3653
3743
  }
3654
3744
  };
3745
+ BaseInputComponent.prototype._prepareInput = function () {
3746
+ var _this = this;
3747
+ if (this.elementRef && this.elementRef.nativeElement) {
3748
+ //try to find input element
3749
+ this.input = this._findInputNode(this.elementRef.nativeElement.children);
3750
+ if (this.input) {
3751
+ this.input.addEventListener('blur', function () { return _this.doBlur(); });
3752
+ this.input.addEventListener('focus', function () { return _this.doFocus(); });
3753
+ }
3754
+ }
3755
+ };
3756
+ BaseInputComponent.prototype._findInputNode = function (nodes) {
3757
+ for (var i = 0; i < nodes.length; i++) {
3758
+ var node = nodes[i];
3759
+ if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {
3760
+ return node;
3761
+ }
3762
+ else if (node.children.length > 0) {
3763
+ return this._findInputNode(node.children);
3764
+ }
3765
+ }
3766
+ };
3767
+ BaseInputComponent.prototype._handleElementPositionChange = function (entries, observer) {
3768
+ if (this._errorValidationComponent && entries && entries.length > 0) {
3769
+ this._errorValidationComponent.instance.top = entries[0].boundingClientRect.bottom;
3770
+ this._errorValidationComponent.instance.left = entries[0].boundingClientRect.left;
3771
+ }
3772
+ };
3655
3773
  return BaseInputComponent;
3656
3774
  }());
3657
3775
  BaseInputComponent.BaseFormInputComponentIndex = 0;
@@ -3662,11 +3780,14 @@
3662
3780
  ];
3663
3781
  BaseInputComponent.ctorParameters = function () { return [
3664
3782
  { type: core.ChangeDetectorRef },
3783
+ { type: core.ComponentFactoryResolver },
3665
3784
  { type: FormInputUserModelChangeListenerService, decorators: [{ type: core.Optional }] },
3666
3785
  { type: NgZoneWrapperService, decorators: [{ type: core.Optional }] },
3667
3786
  { type: core.ElementRef, decorators: [{ type: core.Optional }] }
3668
3787
  ]; };
3669
3788
  BaseInputComponent.propDecorators = {
3789
+ validationErrorContainer: [{ type: core.ViewChild, args: ["validationError", { read: core.ViewContainerRef },] }],
3790
+ _ngModel: [{ type: core.ViewChild, args: [forms.NgModel, { static: true },] }],
3670
3791
  model: [{ type: core.Input }],
3671
3792
  label: [{ type: core.Input }],
3672
3793
  noValidation: [{ type: core.Input }],
@@ -3696,8 +3817,7 @@
3696
3817
  modelChange: [{ type: core.Output }],
3697
3818
  userModelChange: [{ type: core.Output }],
3698
3819
  hiddenChange: [{ type: core.Output }],
3699
- _ngModel: [{ type: core.ViewChild, args: [forms.NgModel, { static: true },] }],
3700
- focused: [{ type: core.HostBinding, args: ["class.focused",] }],
3820
+ focused: [{ type: core.HostBinding, args: ["class.cc-input-focused",] }],
3701
3821
  formInput: [{ type: core.HostBinding, args: ["class.form-input",] }],
3702
3822
  customWidth: [{ type: core.Input }, { type: core.HostBinding, args: ["class.custom-width",] }],
3703
3823
  noTriangleGraphic: [{ type: core.Input }],
@@ -3749,70 +3869,6 @@
3749
3869
  InputBoolean()
3750
3870
  ], BaseInputComponent.prototype, "noFormGroupControl", void 0);
3751
3871
 
3752
- var DropDownListComponent = /** @class */ (function (_super) {
3753
- __extends(DropDownListComponent, _super);
3754
- function DropDownListComponent() {
3755
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3756
- /**
3757
- * In the form { text: 'name', value: 'id' }
3758
- * Where 'text' is showing in the dropdown and 'id' used for the model binding
3759
- */
3760
- _this.fields = {};
3761
- return _this;
3762
- }
3763
- DropDownListComponent.prototype.showClass = function () {
3764
- return true;
3765
- };
3766
- DropDownListComponent.prototype.handleValueChanged = function (value) {
3767
- if (value !== this.model) {
3768
- this.modelChange.next(value);
3769
- }
3770
- };
3771
- return DropDownListComponent;
3772
- }(BaseInputComponent));
3773
- DropDownListComponent.decorators = [
3774
- { type: core.Component, args: [{
3775
- selector: "co-drop-down-list",
3776
- 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 ",
3777
- providers: [
3778
- ej2AngularDropdowns.CheckBoxSelectionService,
3779
- {
3780
- provide: COMPONENT_INTERFACE_NAME,
3781
- useExisting: core.forwardRef(function () { return DropDownListComponent; })
3782
- }
3783
- ],
3784
- changeDetection: core.ChangeDetectionStrategy.OnPush,
3785
- encapsulation: core.ViewEncapsulation.None
3786
- },] }
3787
- ];
3788
- DropDownListComponent.propDecorators = {
3789
- collection: [{ type: core.Input }],
3790
- fields: [{ type: core.Input }],
3791
- placeHolder: [{ type: core.Input }],
3792
- itemTemplate: [{ type: core.Input }],
3793
- headerTemplate: [{ type: core.Input }],
3794
- valueTemplate: [{ type: core.Input }],
3795
- showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
3796
- };
3797
-
3798
- var DropDownModule = /** @class */ (function () {
3799
- function DropDownModule() {
3800
- }
3801
- return DropDownModule;
3802
- }());
3803
- DropDownModule.decorators = [
3804
- { type: core.NgModule, args: [{
3805
- imports: [
3806
- BaseModule,
3807
- common.CommonModule,
3808
- ej2AngularDropdowns.DropDownListModule,
3809
- ej2AngularDropdowns.MultiSelectModule
3810
- ],
3811
- declarations: [DropDownListComponent],
3812
- exports: [DropDownListComponent]
3813
- },] }
3814
- ];
3815
-
3816
3872
  // Represents a positional model
3817
3873
  var ElementPosition = /** @class */ (function () {
3818
3874
  function ElementPosition(top, right, bottom, left) {
@@ -4061,33 +4117,15 @@
4061
4117
  for (var errorKey in this.formGroup.controls[controlKey].errors) {
4062
4118
  if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {
4063
4119
  var error = this.formGroup.controls[controlKey].errors[errorKey];
4064
- var errorText = this._getValidationErrorText(error);
4065
- var controlElement = comp.elementRef.nativeElement;
4066
4120
  if (controlKey === key) {
4067
- // this._tooltipService.spawnErrorTooltip(controlElement, errorText, this.keepInView ? this.keepInView : undefined);
4121
+ comp.showValidationError(error);
4068
4122
  }
4069
- comp.redErrorBackground = true;
4070
4123
  }
4071
4124
  }
4072
4125
  }
4073
4126
  }
4074
4127
  }
4075
4128
  };
4076
- FormComponent.prototype._getValidationErrorText = function (validationError) {
4077
- return "";
4078
- if (StringUtils.IsString(validationError)) {
4079
- // return this._dictionary.get(validationError);
4080
- }
4081
- else if (validationError.message) {
4082
- if (validationError.placeholder) {
4083
- // see e.g. maxStringLengthValidator, where we return this {message: string, placeholder: string} object shape as validation error obj
4084
- // return this._dictionary.get(validationError.message, true, validationError.placeholder);
4085
- }
4086
- else {
4087
- // return this._dictionary.get(validationError.message);
4088
- }
4089
- }
4090
- };
4091
4129
  FormComponent.prototype._setFirstInvalidElementOnMaster = function () {
4092
4130
  var elements = Array.from(this._componentMap);
4093
4131
  var len = elements.length;
@@ -4124,6 +4162,85 @@
4124
4162
  onEnterKey: [{ type: core.HostListener, args: ['keyup.enter', ['$event'],] }]
4125
4163
  };
4126
4164
 
4165
+ var DropDownListComponent = /** @class */ (function (_super) {
4166
+ __extends(DropDownListComponent, _super);
4167
+ function DropDownListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4168
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4169
+ _this.formComponent = formComponent;
4170
+ _this.changeDetector = changeDetector;
4171
+ _this.componentFactoryResolver = componentFactoryResolver;
4172
+ _this.formUserChangeListener = formUserChangeListener;
4173
+ _this.ngZoneWrapper = ngZoneWrapper;
4174
+ _this.elementRef = elementRef;
4175
+ /**
4176
+ * In the form { text: 'name', value: 'id' }
4177
+ * Where 'text' is showing in the dropdown and 'id' used for the model binding
4178
+ */
4179
+ _this.fields = {};
4180
+ _super.prototype._markAsOnPush.call(_this);
4181
+ return _this;
4182
+ }
4183
+ DropDownListComponent.prototype.showClass = function () {
4184
+ return true;
4185
+ };
4186
+ DropDownListComponent.prototype.handleValueChanged = function (value) {
4187
+ if (value !== this.model) {
4188
+ this.modelChange.next(value);
4189
+ }
4190
+ };
4191
+ return DropDownListComponent;
4192
+ }(BaseInputComponent));
4193
+ DropDownListComponent.decorators = [
4194
+ { type: core.Component, args: [{
4195
+ selector: "co-drop-down-list",
4196
+ 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 ",
4197
+ providers: [
4198
+ ej2AngularDropdowns.CheckBoxSelectionService,
4199
+ {
4200
+ provide: COMPONENT_INTERFACE_NAME,
4201
+ useExisting: core.forwardRef(function () { return DropDownListComponent; })
4202
+ }
4203
+ ],
4204
+ encapsulation: core.ViewEncapsulation.None
4205
+ },] }
4206
+ ];
4207
+ DropDownListComponent.ctorParameters = function () { return [
4208
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
4209
+ { type: core.ChangeDetectorRef },
4210
+ { type: core.ComponentFactoryResolver },
4211
+ { type: FormInputUserModelChangeListenerService },
4212
+ { type: NgZoneWrapperService },
4213
+ { type: core.ElementRef }
4214
+ ]; };
4215
+ DropDownListComponent.propDecorators = {
4216
+ collection: [{ type: core.Input }],
4217
+ fields: [{ type: core.Input }],
4218
+ placeholder: [{ type: core.Input }],
4219
+ itemTemplate: [{ type: core.Input }],
4220
+ headerTemplate: [{ type: core.Input }],
4221
+ valueTemplate: [{ type: core.Input }],
4222
+ showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
4223
+ };
4224
+
4225
+ var DropDownModule = /** @class */ (function () {
4226
+ function DropDownModule() {
4227
+ }
4228
+ return DropDownModule;
4229
+ }());
4230
+ DropDownModule.decorators = [
4231
+ { type: core.NgModule, args: [{
4232
+ imports: [
4233
+ BaseModule,
4234
+ common.CommonModule,
4235
+ ej2AngularDropdowns.DropDownListModule,
4236
+ ej2AngularDropdowns.MultiSelectModule,
4237
+ forms.FormsModule
4238
+ ],
4239
+ declarations: [DropDownListComponent],
4240
+ exports: [DropDownListComponent]
4241
+ },] }
4242
+ ];
4243
+
4127
4244
  var FormModule = /** @class */ (function () {
4128
4245
  function FormModule() {
4129
4246
  }
@@ -4518,9 +4635,15 @@
4518
4635
 
4519
4636
  var InputCheckboxComponent = /** @class */ (function (_super) {
4520
4637
  __extends(InputCheckboxComponent, _super);
4521
- function InputCheckboxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
4522
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
4638
+ function InputCheckboxComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4639
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4523
4640
  _this.formComponent = formComponent;
4641
+ _this.iconCacheService = iconCacheService;
4642
+ _this.changeDetector = changeDetector;
4643
+ _this.componentFactoryResolver = componentFactoryResolver;
4644
+ _this.formUserChangeListener = formUserChangeListener;
4645
+ _this.ngZoneWrapper = ngZoneWrapper;
4646
+ _this.elementRef = elementRef;
4524
4647
  _this.modelChange = new core.EventEmitter();
4525
4648
  return _this;
4526
4649
  }
@@ -4552,9 +4675,12 @@
4552
4675
  ];
4553
4676
  InputCheckboxComponent.ctorParameters = function () { return [
4554
4677
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4678
+ { type: IconCacheService },
4555
4679
  { type: core.ChangeDetectorRef },
4680
+ { type: core.ComponentFactoryResolver },
4556
4681
  { type: FormInputUserModelChangeListenerService },
4557
- { type: NgZoneWrapperService }
4682
+ { type: NgZoneWrapperService },
4683
+ { type: core.ElementRef }
4558
4684
  ]; };
4559
4685
  InputCheckboxComponent.propDecorators = {
4560
4686
  name: [{ type: core.Input }],
@@ -4620,10 +4746,11 @@
4620
4746
 
4621
4747
  var InputCheckboxMultiSelectComponent = /** @class */ (function (_super) {
4622
4748
  __extends(InputCheckboxMultiSelectComponent, _super);
4623
- function InputCheckboxMultiSelectComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4624
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4749
+ function InputCheckboxMultiSelectComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4750
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4625
4751
  _this.formComponent = formComponent;
4626
4752
  _this.changeDetector = changeDetector;
4753
+ _this.componentFactoryResolver = componentFactoryResolver;
4627
4754
  _this.formUserChangeListener = formUserChangeListener;
4628
4755
  _this.ngZoneWrapper = ngZoneWrapper;
4629
4756
  _this.elementRef = elementRef;
@@ -4633,16 +4760,6 @@
4633
4760
  InputCheckboxMultiSelectComponent.prototype.showClass = function () {
4634
4761
  return true;
4635
4762
  };
4636
- InputCheckboxMultiSelectComponent.prototype.ngOnDestroy = function () {
4637
- this.elementRef = undefined;
4638
- _super.prototype.ngOnDestroy.call(this);
4639
- };
4640
- InputCheckboxMultiSelectComponent.prototype.ngOnInit = function () {
4641
- _super.prototype.ngOnInit.call(this);
4642
- };
4643
- InputCheckboxMultiSelectComponent.prototype.ngAfterViewInit = function () {
4644
- _super.prototype.ngAfterViewInit.call(this);
4645
- };
4646
4763
  return InputCheckboxMultiSelectComponent;
4647
4764
  }(BaseInputComponent));
4648
4765
  InputCheckboxMultiSelectComponent.decorators = [
@@ -4660,6 +4777,7 @@
4660
4777
  InputCheckboxMultiSelectComponent.ctorParameters = function () { return [
4661
4778
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4662
4779
  { type: core.ChangeDetectorRef },
4780
+ { type: core.ComponentFactoryResolver },
4663
4781
  { type: FormInputUserModelChangeListenerService },
4664
4782
  { type: NgZoneWrapperService },
4665
4783
  { type: core.ElementRef }
@@ -4695,30 +4813,22 @@
4695
4813
 
4696
4814
  var InputComboBoxComponent = /** @class */ (function (_super) {
4697
4815
  __extends(InputComboBoxComponent, _super);
4698
- function InputComboBoxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4699
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4816
+ function InputComboBoxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4817
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4700
4818
  _this.formComponent = formComponent;
4701
4819
  _this.changeDetector = changeDetector;
4820
+ _this.componentFactoryResolver = componentFactoryResolver;
4702
4821
  _this.formUserChangeListener = formUserChangeListener;
4703
4822
  _this.ngZoneWrapper = ngZoneWrapper;
4704
4823
  _this.elementRef = elementRef;
4705
4824
  _this.shopPopup = true;
4825
+ _this.customHeight = true;
4706
4826
  _super.prototype._markAsOnPush.call(_this);
4707
4827
  return _this;
4708
4828
  }
4709
4829
  InputComboBoxComponent.prototype.showClass = function () {
4710
4830
  return true;
4711
4831
  };
4712
- InputComboBoxComponent.prototype.ngOnDestroy = function () {
4713
- this.elementRef = undefined;
4714
- _super.prototype.ngOnDestroy.call(this);
4715
- };
4716
- InputComboBoxComponent.prototype.ngOnInit = function () {
4717
- _super.prototype.ngOnInit.call(this);
4718
- };
4719
- InputComboBoxComponent.prototype.ngAfterViewInit = function () {
4720
- _super.prototype.ngAfterViewInit.call(this);
4721
- };
4722
4832
  InputComboBoxComponent.prototype.onFocus = function () {
4723
4833
  if (this.shopPopup && this.model === undefined) {
4724
4834
  this.combo.showPopup();
@@ -4729,30 +4839,31 @@
4729
4839
  InputComboBoxComponent.decorators = [
4730
4840
  { type: core.Component, args: [{
4731
4841
  selector: "co-input-combo-box",
4732
- 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 ",
4842
+ 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 ",
4733
4843
  providers: [{
4734
4844
  provide: COMPONENT_INTERFACE_NAME,
4735
4845
  useExisting: core.forwardRef(function () { return InputComboBoxComponent; })
4736
4846
  }],
4737
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4738
4847
  encapsulation: core.ViewEncapsulation.None
4739
4848
  },] }
4740
4849
  ];
4741
4850
  InputComboBoxComponent.ctorParameters = function () { return [
4742
4851
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4743
4852
  { type: core.ChangeDetectorRef },
4853
+ { type: core.ComponentFactoryResolver },
4744
4854
  { type: FormInputUserModelChangeListenerService },
4745
4855
  { type: NgZoneWrapperService },
4746
4856
  { type: core.ElementRef }
4747
4857
  ]; };
4748
4858
  InputComboBoxComponent.propDecorators = {
4749
4859
  combo: [{ type: core.ViewChild, args: ["combo",] }],
4750
- source: [{ type: core.Input }],
4860
+ collection: [{ type: core.Input }],
4751
4861
  fields: [{ type: core.Input }],
4752
4862
  selected: [{ type: core.Input }],
4753
4863
  placeholder: [{ type: core.Input }],
4754
4864
  shopPopup: [{ type: core.Input }],
4755
- showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }]
4865
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }],
4866
+ customHeight: [{ type: core.HostBinding, args: ["class.custom-height",] }]
4756
4867
  };
4757
4868
 
4758
4869
  var InputComboBoxModule = /** @class */ (function () {
@@ -4777,11 +4888,12 @@
4777
4888
 
4778
4889
  var InputDatePickerComponent = /** @class */ (function (_super) {
4779
4890
  __extends(InputDatePickerComponent, _super);
4780
- function InputDatePickerComponent(iconCacheService, formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4781
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4782
- _this.iconCacheService = iconCacheService;
4891
+ function InputDatePickerComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4892
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4783
4893
  _this.formComponent = formComponent;
4894
+ _this.iconCacheService = iconCacheService;
4784
4895
  _this.changeDetector = changeDetector;
4896
+ _this.componentFactoryResolver = componentFactoryResolver;
4785
4897
  _this.formUserChangeListener = formUserChangeListener;
4786
4898
  _this.ngZoneWrapper = ngZoneWrapper;
4787
4899
  _this.elementRef = elementRef;
@@ -4830,18 +4942,18 @@
4830
4942
  InputDatePickerComponent.decorators = [
4831
4943
  { type: core.Component, args: [{
4832
4944
  selector: "co-input-date",
4833
- 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 ",
4945
+ 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 ",
4834
4946
  providers: [{
4835
4947
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputDatePickerComponent; })
4836
4948
  }],
4837
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4838
4949
  encapsulation: core.ViewEncapsulation.None
4839
4950
  },] }
4840
4951
  ];
4841
4952
  InputDatePickerComponent.ctorParameters = function () { return [
4842
- { type: IconCacheService },
4843
4953
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4954
+ { type: IconCacheService },
4844
4955
  { type: core.ChangeDetectorRef },
4956
+ { type: core.ComponentFactoryResolver },
4845
4957
  { type: FormInputUserModelChangeListenerService },
4846
4958
  { type: NgZoneWrapperService },
4847
4959
  { type: core.ElementRef }
@@ -5210,122 +5322,56 @@
5210
5322
  KeyboardCode.NumpadNine
5211
5323
  ];
5212
5324
 
5213
- var InputTextType;
5214
- (function (InputTextType) {
5215
- InputTextType["Text"] = "text";
5216
- InputTextType["Email"] = "email";
5217
- })(InputTextType || (InputTextType = {}));
5218
-
5219
- var FloatLabelTypeEnum;
5220
- (function (FloatLabelTypeEnum) {
5221
- FloatLabelTypeEnum["Never"] = "Never";
5222
- FloatLabelTypeEnum["Always"] = "Always";
5223
- FloatLabelTypeEnum["Auto"] = "Auto";
5224
- })(FloatLabelTypeEnum || (FloatLabelTypeEnum = {}));
5225
-
5226
5325
  var InputTextComponent = /** @class */ (function (_super) {
5227
5326
  __extends(InputTextComponent, _super);
5228
- function InputTextComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
5229
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5327
+ function InputTextComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5328
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5230
5329
  _this.formComponent = formComponent;
5231
5330
  _this.changeDetector = changeDetector;
5331
+ _this.componentFactoryResolver = componentFactoryResolver;
5232
5332
  _this.formUserChangeListener = formUserChangeListener;
5233
5333
  _this.ngZoneWrapper = ngZoneWrapper;
5234
5334
  _this.elementRef = elementRef;
5235
- _this.floatLabelType = FloatLabelTypeEnum.Auto;
5335
+ _this.Icons = exports.CoreComponentsIcon;
5236
5336
  _this.placeholder = "";
5237
5337
  _this.type = "text";
5238
5338
  _this.showClearButton = undefined;
5239
- _this.alwaysShowClearIcon = false;
5240
- _this.alwaysShowClearIconOnFocus = false;
5241
- _this.noEmailValidation = false;
5242
- _this.extraIconOnFocusOnly = false;
5243
- _this.inputType = InputTextType.Text;
5244
- _this.blur = new core.EventEmitter();
5245
- _this.inputClick = new core.EventEmitter();
5246
- _this.extraIconClick = new core.EventEmitter();
5247
- _this.clearIconClick = new core.EventEmitter();
5248
- _this.validEmailClick = false;
5249
- _this.Icons = exports.CoreComponentsIcon;
5339
+ _this.hasOwnLabel = true;
5250
5340
  _super.prototype._markAsOnPush.call(_this);
5251
5341
  return _this;
5252
5342
  }
5253
5343
  InputTextComponent.prototype.showClass = function () {
5254
5344
  return true;
5255
5345
  };
5256
- InputTextComponent.prototype.ngOnDestroy = function () {
5257
- this.elementRef = undefined;
5258
- _super.prototype.ngOnDestroy.call(this);
5259
- };
5260
- InputTextComponent.prototype.ngOnInit = function () {
5261
- _super.prototype.ngOnInit.call(this);
5262
- };
5263
- InputTextComponent.prototype.ngAfterViewInit = function () {
5264
- if (this.textBox) {
5265
- this.changeDetector.detectChanges();
5266
- }
5267
- _super.prototype.ngAfterViewInit.call(this);
5268
- };
5269
- InputTextComponent.prototype.setSelectionRange = function (range) {
5270
- if (range && this.input) {
5271
- this.input.setSelectionRange(range.lowerBound, range.upperBound);
5272
- }
5273
- };
5274
5346
  return InputTextComponent;
5275
5347
  }(BaseInputComponent));
5276
5348
  InputTextComponent.decorators = [
5277
5349
  { type: core.Component, args: [{
5278
- selector: "co-input-text, co-input-email, co-input-wizard",
5279
- 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 ",
5350
+ selector: "co-input-text",
5351
+ template: "\n <label [textContent]=\"placeholder\"></label>\n <input #input\n [type]=\"type\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (ngModelChange)=\"modelChange.emit($event)\"\n >\n <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
5280
5352
  providers: [{
5281
5353
  provide: COMPONENT_INTERFACE_NAME,
5282
5354
  useExisting: core.forwardRef(function () { return InputTextComponent; })
5283
5355
  }],
5284
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5285
5356
  encapsulation: core.ViewEncapsulation.None
5286
5357
  },] }
5287
5358
  ];
5288
5359
  InputTextComponent.ctorParameters = function () { return [
5289
5360
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5290
5361
  { type: core.ChangeDetectorRef },
5362
+ { type: core.ComponentFactoryResolver },
5291
5363
  { type: FormInputUserModelChangeListenerService },
5292
5364
  { type: NgZoneWrapperService },
5293
5365
  { type: core.ElementRef }
5294
5366
  ]; };
5295
5367
  InputTextComponent.propDecorators = {
5296
- textBox: [{ type: core.ViewChild, args: [ej2AngularInputs.TextBoxComponent,] }],
5297
- floatLabelType: [{ type: core.Input }],
5298
5368
  placeholder: [{ type: core.Input }],
5299
5369
  type: [{ type: core.Input }],
5300
5370
  showClearButton: [{ type: core.Input }],
5301
- cssClass: [{ type: core.Input }],
5302
- alwaysShowClearIcon: [{ type: core.Input }],
5303
- alwaysShowClearIconOnFocus: [{ type: core.Input }],
5304
- noEmailValidation: [{ type: core.Input }],
5305
- extraIcon: [{ type: core.Input }],
5306
- extraIconOnFocusOnly: [{ type: core.Input }],
5307
5371
  keyDownWhiteList: [{ type: core.Input }],
5308
- extraIconClass: [{ type: core.Input }],
5309
- inputType: [{ type: core.Input }],
5310
- ngModelOptions: [{ type: core.Input }],
5311
- blur: [{ type: core.Output }],
5312
- inputClick: [{ type: core.Output }],
5313
- extraIconClick: [{ type: core.Output }],
5314
- clearIconClick: [{ type: core.Output }],
5315
- showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }]
5316
- };
5317
- __decorate([
5318
- InputBoolean()
5319
- ], InputTextComponent.prototype, "alwaysShowClearIcon", void 0);
5320
- __decorate([
5321
- InputBoolean()
5322
- ], InputTextComponent.prototype, "alwaysShowClearIconOnFocus", void 0);
5323
- __decorate([
5324
- InputBoolean()
5325
- ], InputTextComponent.prototype, "noEmailValidation", void 0);
5326
- __decorate([
5327
- InputBoolean()
5328
- ], InputTextComponent.prototype, "extraIconOnFocusOnly", void 0);
5372
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }],
5373
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }]
5374
+ };
5329
5375
 
5330
5376
  // Input values for 'buttonShowMode' of NumberPickerComponent.
5331
5377
  var InputNumberPickerButtonShowMode;
@@ -5338,12 +5384,12 @@
5338
5384
  // A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
5339
5385
  var InputNumberPickerComponent = /** @class */ (function (_super) {
5340
5386
  __extends(InputNumberPickerComponent, _super);
5341
- function InputNumberPickerComponent(iconCacheService, _ngZone, changeDetector, formUserChangeListener) {
5342
- var _this = _super.call(this, changeDetector, formUserChangeListener) || this;
5387
+ function InputNumberPickerComponent(formComponent, iconCacheService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener) {
5388
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener) || this;
5389
+ _this.formComponent = formComponent;
5343
5390
  _this.iconCacheService = iconCacheService;
5344
5391
  _this._ngZone = _ngZone;
5345
- _this.floatLabelType = FloatLabelTypeEnum.Never;
5346
- _this.cssClass = "e-outline";
5392
+ _this.componentFactoryResolver = componentFactoryResolver;
5347
5393
  _this.minusIcon = exports.CoreComponentsIcon.MinusSimple;
5348
5394
  _this.plusIcon = exports.CoreComponentsIcon.PlusSimple;
5349
5395
  // Whether to show buttons 'always', 'onFocusOnly', or 'never'
@@ -5596,14 +5642,14 @@
5596
5642
  },] }
5597
5643
  ];
5598
5644
  InputNumberPickerComponent.ctorParameters = function () { return [
5645
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5599
5646
  { type: IconCacheService, decorators: [{ type: core.Inject, args: [IconCacheService,] }] },
5600
5647
  { type: core.NgZone },
5648
+ { type: core.ComponentFactoryResolver },
5601
5649
  { type: core.ChangeDetectorRef },
5602
5650
  { type: FormInputUserModelChangeListenerService }
5603
5651
  ]; };
5604
5652
  InputNumberPickerComponent.propDecorators = {
5605
- floatLabelType: [{ type: core.Input }],
5606
- cssClass: [{ type: core.Input }],
5607
5653
  model: [{ type: core.Input }],
5608
5654
  min: [{ type: core.Input }],
5609
5655
  step: [{ type: core.Input }],
@@ -5624,6 +5670,26 @@
5624
5670
  InputBoolean()
5625
5671
  ], InputNumberPickerComponent.prototype, "noValidation", void 0);
5626
5672
 
5673
+ var ValidationErrorModule = /** @class */ (function () {
5674
+ function ValidationErrorModule() {
5675
+ }
5676
+ return ValidationErrorModule;
5677
+ }());
5678
+ ValidationErrorModule.decorators = [
5679
+ { type: core.NgModule, args: [{
5680
+ imports: [
5681
+ common.CommonModule,
5682
+ IconModule
5683
+ ],
5684
+ declarations: [
5685
+ ValidationErrorComponent
5686
+ ],
5687
+ exports: [
5688
+ ValidationErrorComponent
5689
+ ]
5690
+ },] }
5691
+ ];
5692
+
5627
5693
  var InputTextModule = /** @class */ (function () {
5628
5694
  function InputTextModule() {
5629
5695
  }
@@ -5638,13 +5704,15 @@
5638
5704
  IconModule,
5639
5705
  AppendPipeModule,
5640
5706
  ej2AngularInputs.TextBoxAllModule,
5641
- ej2AngularInputs.NumericTextBoxModule
5707
+ ej2AngularInputs.NumericTextBoxModule,
5708
+ ValidationErrorModule
5642
5709
  ],
5643
- schemas: [
5644
- core.NO_ERRORS_SCHEMA
5710
+ declarations: [
5711
+ InputTextComponent
5645
5712
  ],
5646
- declarations: [InputTextComponent],
5647
- exports: [InputTextComponent]
5713
+ exports: [
5714
+ InputTextComponent
5715
+ ]
5648
5716
  },] }
5649
5717
  ];
5650
5718
 
@@ -5668,9 +5736,15 @@
5668
5736
 
5669
5737
  var InputRadioButtonComponent = /** @class */ (function (_super) {
5670
5738
  __extends(InputRadioButtonComponent, _super);
5671
- function InputRadioButtonComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
5672
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
5739
+ function InputRadioButtonComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5740
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5673
5741
  _this.formComponent = formComponent;
5742
+ _this.changeDetector = changeDetector;
5743
+ _this.componentFactoryResolver = componentFactoryResolver;
5744
+ _this.formUserChangeListener = formUserChangeListener;
5745
+ _this.ngZoneWrapper = ngZoneWrapper;
5746
+ _this.elementRef = elementRef;
5747
+ _super.prototype._markAsOnPush.call(_this);
5674
5748
  return _this;
5675
5749
  }
5676
5750
  InputRadioButtonComponent.prototype.showClass = function () {
@@ -5696,8 +5770,10 @@
5696
5770
  InputRadioButtonComponent.ctorParameters = function () { return [
5697
5771
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5698
5772
  { type: core.ChangeDetectorRef },
5773
+ { type: core.ComponentFactoryResolver },
5699
5774
  { type: FormInputUserModelChangeListenerService },
5700
- { type: NgZoneWrapperService }
5775
+ { type: NgZoneWrapperService },
5776
+ { type: core.ElementRef }
5701
5777
  ]; };
5702
5778
  InputRadioButtonComponent.propDecorators = {
5703
5779
  value: [{ type: core.Input }],
@@ -5726,10 +5802,84 @@
5726
5802
  },] }
5727
5803
  ];
5728
5804
 
5805
+ var InputTextareaComponent = /** @class */ (function (_super) {
5806
+ __extends(InputTextareaComponent, _super);
5807
+ function InputTextareaComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5808
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5809
+ _this.formComponent = formComponent;
5810
+ _this.changeDetector = changeDetector;
5811
+ _this.componentFactoryResolver = componentFactoryResolver;
5812
+ _this.formUserChangeListener = formUserChangeListener;
5813
+ _this.ngZoneWrapper = ngZoneWrapper;
5814
+ _this.elementRef = elementRef;
5815
+ _this.placeholder = "";
5816
+ _this.hasOwnLabel = true;
5817
+ _this.customHeight = true;
5818
+ _super.prototype._markAsOnPush.call(_this);
5819
+ return _this;
5820
+ }
5821
+ InputTextareaComponent.prototype.showClass = function () {
5822
+ return true;
5823
+ };
5824
+ return InputTextareaComponent;
5825
+ }(BaseInputComponent));
5826
+ InputTextareaComponent.decorators = [
5827
+ { type: core.Component, args: [{
5828
+ selector: "co-input-textarea",
5829
+ 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 <div class=\"required-indicator\"></div>\n <ng-template #validationError></ng-template>\n ",
5830
+ providers: [{
5831
+ provide: COMPONENT_INTERFACE_NAME,
5832
+ useExisting: core.forwardRef(function () { return InputTextareaComponent; })
5833
+ }],
5834
+ encapsulation: core.ViewEncapsulation.None
5835
+ },] }
5836
+ ];
5837
+ InputTextareaComponent.ctorParameters = function () { return [
5838
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5839
+ { type: core.ChangeDetectorRef },
5840
+ { type: core.ComponentFactoryResolver },
5841
+ { type: FormInputUserModelChangeListenerService },
5842
+ { type: NgZoneWrapperService },
5843
+ { type: core.ElementRef }
5844
+ ]; };
5845
+ InputTextareaComponent.propDecorators = {
5846
+ placeholder: [{ type: core.Input }],
5847
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-textarea",] }],
5848
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }],
5849
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
5850
+ };
5851
+
5852
+ var InputTextareaModule = /** @class */ (function () {
5853
+ function InputTextareaModule() {
5854
+ }
5855
+ return InputTextareaModule;
5856
+ }());
5857
+ InputTextareaModule.decorators = [
5858
+ { type: core.NgModule, args: [{
5859
+ imports: [
5860
+ common.CommonModule,
5861
+ forms.FormsModule,
5862
+ ValidationErrorModule
5863
+ ],
5864
+ declarations: [
5865
+ InputTextareaComponent
5866
+ ],
5867
+ exports: [
5868
+ InputTextareaComponent
5869
+ ]
5870
+ },] }
5871
+ ];
5872
+
5729
5873
  var MultiSelectListComponent = /** @class */ (function (_super) {
5730
5874
  __extends(MultiSelectListComponent, _super);
5731
- function MultiSelectListComponent() {
5732
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
5875
+ function MultiSelectListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5876
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5877
+ _this.formComponent = formComponent;
5878
+ _this.changeDetector = changeDetector;
5879
+ _this.componentFactoryResolver = componentFactoryResolver;
5880
+ _this.formUserChangeListener = formUserChangeListener;
5881
+ _this.ngZoneWrapper = ngZoneWrapper;
5882
+ _this.elementRef = elementRef;
5733
5883
  /**
5734
5884
  * In the form { text: 'name', value: 'id' }
5735
5885
  * Where 'text' is showing in the dropdown and 'id' used for the model binding
@@ -5737,6 +5887,7 @@
5737
5887
  _this.fields = {};
5738
5888
  _this.showSelectAll = true;
5739
5889
  _this.mode = "Default";
5890
+ _super.prototype._markAsOnPush.call(_this);
5740
5891
  return _this;
5741
5892
  }
5742
5893
  Object.defineProperty(MultiSelectListComponent.prototype, "showCheckbox", {
@@ -5751,12 +5902,20 @@
5751
5902
  MultiSelectListComponent.prototype.showClass = function () {
5752
5903
  return true;
5753
5904
  };
5905
+ MultiSelectListComponent.prototype.handleModelChange = function (val) {
5906
+ if (Array.isArray(val)) {
5907
+ if (val.length < 1) {
5908
+ val = undefined;
5909
+ }
5910
+ }
5911
+ this.modelChange.next(val);
5912
+ };
5754
5913
  return MultiSelectListComponent;
5755
5914
  }(BaseInputComponent));
5756
5915
  MultiSelectListComponent.decorators = [
5757
5916
  { type: core.Component, args: [{
5758
5917
  selector: "co-multi-select-list",
5759
- 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 ",
5918
+ 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 ",
5760
5919
  providers: [
5761
5920
  ej2AngularDropdowns.CheckBoxSelectionService,
5762
5921
  {
@@ -5764,14 +5923,21 @@
5764
5923
  useExisting: core.forwardRef(function () { return MultiSelectListComponent; })
5765
5924
  }
5766
5925
  ],
5767
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5768
5926
  encapsulation: core.ViewEncapsulation.None
5769
5927
  },] }
5770
5928
  ];
5929
+ MultiSelectListComponent.ctorParameters = function () { return [
5930
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5931
+ { type: core.ChangeDetectorRef },
5932
+ { type: core.ComponentFactoryResolver },
5933
+ { type: FormInputUserModelChangeListenerService },
5934
+ { type: NgZoneWrapperService },
5935
+ { type: core.ElementRef }
5936
+ ]; };
5771
5937
  MultiSelectListComponent.propDecorators = {
5772
5938
  collection: [{ type: core.Input }],
5773
5939
  fields: [{ type: core.Input }],
5774
- placeHolder: [{ type: core.Input }],
5940
+ placeholder: [{ type: core.Input }],
5775
5941
  itemTemplate: [{ type: core.Input }],
5776
5942
  headerTemplate: [{ type: core.Input }],
5777
5943
  valueTemplate: [{ type: core.Input }],
@@ -5791,7 +5957,8 @@
5791
5957
  imports: [
5792
5958
  BaseModule,
5793
5959
  common.CommonModule,
5794
- ej2AngularDropdowns.MultiSelectModule
5960
+ ej2AngularDropdowns.MultiSelectModule,
5961
+ forms.FormsModule
5795
5962
  ],
5796
5963
  declarations: [MultiSelectListComponent],
5797
5964
  exports: [MultiSelectListComponent]
@@ -7283,13 +7450,21 @@
7283
7450
  ej2AngularDropdowns.ListBoxComponent.Inject(ej2AngularDropdowns.CheckBoxSelection);
7284
7451
  var InputListboxComponent = /** @class */ (function (_super) {
7285
7452
  __extends(InputListboxComponent, _super);
7286
- function InputListboxComponent() {
7287
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7453
+ function InputListboxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7454
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7455
+ _this.formComponent = formComponent;
7456
+ _this.changeDetector = changeDetector;
7457
+ _this.componentFactoryResolver = componentFactoryResolver;
7458
+ _this.formUserChangeListener = formUserChangeListener;
7459
+ _this.ngZoneWrapper = ngZoneWrapper;
7460
+ _this.elementRef = elementRef;
7288
7461
  // public set model(value: string[] | number[]) {
7289
7462
  // this._model = value;
7290
7463
  // }
7291
7464
  _this.collection = [];
7465
+ _this.customHeight = true;
7292
7466
  _this.selectionSettings = { mode: 'Multiple' };
7467
+ _super.prototype._markAsOnPush.call(_this);
7293
7468
  return _this;
7294
7469
  }
7295
7470
  Object.defineProperty(InputListboxComponent.prototype, "singleSelect", {
@@ -7327,14 +7502,21 @@
7327
7502
  InputListboxComponent.decorators = [
7328
7503
  { type: core.Component, args: [{
7329
7504
  selector: 'co-input-listbox',
7330
- 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 ",
7505
+ 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 ",
7331
7506
  providers: [{
7332
7507
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputListboxComponent; })
7333
7508
  }],
7334
- changeDetection: core.ChangeDetectionStrategy.OnPush,
7335
7509
  encapsulation: core.ViewEncapsulation.None
7336
7510
  },] }
7337
7511
  ];
7512
+ InputListboxComponent.ctorParameters = function () { return [
7513
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
7514
+ { type: core.ChangeDetectorRef },
7515
+ { type: core.ComponentFactoryResolver },
7516
+ { type: FormInputUserModelChangeListenerService },
7517
+ { type: NgZoneWrapperService },
7518
+ { type: core.ElementRef }
7519
+ ]; };
7338
7520
  InputListboxComponent.propDecorators = {
7339
7521
  placeholder: [{ type: core.Input }],
7340
7522
  value: [{ type: core.Input }],
@@ -7343,7 +7525,8 @@
7343
7525
  singleSelect: [{ type: core.Input }],
7344
7526
  showCheckbox: [{ type: core.Input }],
7345
7527
  showSelectAll: [{ type: core.Input }],
7346
- showClass: [{ type: core.HostBinding, args: ['class.co-input-listbox',] }]
7528
+ showClass: [{ type: core.HostBinding, args: ['class.co-input-listbox',] }],
7529
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
7347
7530
  };
7348
7531
 
7349
7532
  ej2Base.enableRipple(true);
@@ -7510,6 +7693,377 @@
7510
7693
  },] }
7511
7694
  ];
7512
7695
 
7696
+ var CarouselItem = /** @class */ (function () {
7697
+ function CarouselItem(options, index, onClick) {
7698
+ var _this = this;
7699
+ var _a, _b;
7700
+ this._options = options || {};
7701
+ this.index = index;
7702
+ var width = ((_a = this._options.tileSize) === null || _a === void 0 ? void 0 : _a.x) || 0;
7703
+ var height = ((_b = this._options.tileSize) === null || _b === void 0 ? void 0 : _b.y) || 0;
7704
+ this._element = document.createElement('div');
7705
+ // this._element.style.backgroundColor = this._options.tileBackgroundColor;
7706
+ this._element.style.width = width + "px";
7707
+ this._element.style.height = height + "px";
7708
+ this._element.addEventListener("click", function () {
7709
+ if (onClick) {
7710
+ onClick(_this.index);
7711
+ }
7712
+ }, false);
7713
+ this.object = new CSS3DRenderer.CSS3DObject(this._element);
7714
+ var geometry = new three.PlaneBufferGeometry(width, height);
7715
+ this.mesh = new three.Mesh(geometry, options.tileMaterial);
7716
+ this.mesh.castShadow = true;
7717
+ }
7718
+ CarouselItem.prototype.setPosition = function (position) {
7719
+ if (this.mesh) {
7720
+ this.mesh.position.copy(position);
7721
+ }
7722
+ if (this.object) {
7723
+ this.object.position.copy(position);
7724
+ }
7725
+ };
7726
+ CarouselItem.prototype.setContent = function (content) {
7727
+ if (this._element) {
7728
+ // remove any exising tile content before setting new content
7729
+ while (this._element.lastElementChild) {
7730
+ this._element.removeChild(this._element.lastElementChild);
7731
+ }
7732
+ try {
7733
+ this._element.appendChild(content);
7734
+ }
7735
+ catch (err) {
7736
+ }
7737
+ }
7738
+ };
7739
+ CarouselItem.prototype.setVisible = function (visible) {
7740
+ if (this.mesh) {
7741
+ this.mesh.visible = visible;
7742
+ }
7743
+ if (this.object) {
7744
+ this.object.visible = visible;
7745
+ }
7746
+ };
7747
+ return CarouselItem;
7748
+ }());
7749
+
7750
+ var Carousel3dComponent = /** @class */ (function () {
7751
+ function Carousel3dComponent() {
7752
+ this.cameraHeight = 50;
7753
+ this.shadow = false;
7754
+ this.selectedIndex = 0;
7755
+ this.indexSelected = new core.EventEmitter();
7756
+ this._cameraZoom = 0;
7757
+ this._backgroundColor = 0xffffff;
7758
+ this._ambientLight = true;
7759
+ this._tileSize = new three.Vector2();
7760
+ this._tileMargin = 20;
7761
+ this._targetPositions = [];
7762
+ this._tileElements = [];
7763
+ this._tileOffset = 0;
7764
+ this._tiles3D = [];
7765
+ this._planeColor = 0xffffff;
7766
+ this._planeHeight = -46;
7767
+ this._spotLightPosition = new three.Vector3(0, 250, -200);
7768
+ this._fullCircle = false;
7769
+ this._initialized = false;
7770
+ this._elementsCreated = false;
7771
+ this.canNavigateLeft = false;
7772
+ this.canNavigateRight = false;
7773
+ }
7774
+ Object.defineProperty(Carousel3dComponent.prototype, "children", {
7775
+ set: function (children) {
7776
+ this._elementsCreated = false;
7777
+ this._tileElements = children.toArray();
7778
+ this._buildCarousel();
7779
+ },
7780
+ enumerable: false,
7781
+ configurable: true
7782
+ });
7783
+ Carousel3dComponent.prototype.showClass = function () {
7784
+ return true;
7785
+ };
7786
+ Carousel3dComponent.prototype.ngAfterViewInit = function () {
7787
+ this._buildCarousel();
7788
+ };
7789
+ Carousel3dComponent.prototype.ngOnDestroy = function () {
7790
+ this.canvasContainer = undefined;
7791
+ this.carouselWrapper = undefined;
7792
+ this._clearScenes();
7793
+ };
7794
+ Carousel3dComponent.prototype.handleButtonLeftClick = function () {
7795
+ this._tileOffset -= 1;
7796
+ this._rotate(400);
7797
+ };
7798
+ Carousel3dComponent.prototype.handleButtonRightClick = function () {
7799
+ this._tileOffset += 1;
7800
+ this._rotate(400);
7801
+ };
7802
+ Carousel3dComponent.prototype._buildCarousel = function () {
7803
+ if (!this._initialized) {
7804
+ this._init();
7805
+ }
7806
+ if (this._initialized && !this._elementsCreated) {
7807
+ this._createTiles();
7808
+ }
7809
+ this._checkNavigationButtons();
7810
+ };
7811
+ Carousel3dComponent.prototype._init = function () {
7812
+ var _this = this;
7813
+ if (!this.canvasContainer || !this.canvasContainer.nativeElement) {
7814
+ return;
7815
+ }
7816
+ this._initCamera();
7817
+ this._initScene();
7818
+ this._initRenderer();
7819
+ if (this.shadow) {
7820
+ var geometry = new three.PlaneGeometry(10000, 10000);
7821
+ var material = new three.MeshPhongMaterial({ color: this._planeColor, shininess: 100 });
7822
+ var plane = new three.Mesh(geometry, material);
7823
+ plane.receiveShadow = true;
7824
+ plane.rotation.x = -Math.PI / 2;
7825
+ plane.position.y = this._planeHeight;
7826
+ this._scene.add(plane);
7827
+ var spotLight = new three.SpotLight(0xffffff, 0.5);
7828
+ spotLight.position.copy(this._spotLightPosition);
7829
+ spotLight.castShadow = true;
7830
+ spotLight.shadow.mapSize.width = 512;
7831
+ spotLight.shadow.mapSize.height = 512;
7832
+ spotLight.shadow.camera.near = 50;
7833
+ spotLight.shadow.camera.far = 1200;
7834
+ spotLight.shadow.camera.fov = 30;
7835
+ spotLight.penumbra = 1;
7836
+ this._scene.add(spotLight);
7837
+ }
7838
+ this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);
7839
+ this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);
7840
+ this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);
7841
+ this._render();
7842
+ this._animate();
7843
+ window.addEventListener("resize", function () {
7844
+ _this._resizeCanvasToDisplaySize();
7845
+ }, false);
7846
+ this._initialized = true;
7847
+ };
7848
+ Carousel3dComponent.prototype._initCamera = function () {
7849
+ this._camera = new three.PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);
7850
+ this._camera.position.z = 600 - this._cameraZoom;
7851
+ this._camera.position.y = this.cameraHeight;
7852
+ this._camera.lookAt(new three.Vector3());
7853
+ };
7854
+ Carousel3dComponent.prototype._initScene = function () {
7855
+ this._sceneCss = new three.Scene();
7856
+ this._scene = new three.Scene();
7857
+ this._scene.background = new three.Color(this._backgroundColor);
7858
+ if (this._ambientLight) {
7859
+ var light = new three.AmbientLight(0xaaaaaa); // soft white light
7860
+ this._scene.add(light);
7861
+ this._scene.fog = new three.Fog(this._backgroundColor, 70, 2500);
7862
+ }
7863
+ };
7864
+ Carousel3dComponent.prototype._initRenderer = function () {
7865
+ this._rendererCss = new CSS3DRenderer.CSS3DRenderer();
7866
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7867
+ this._rendererCss.domElement.style.position = "absolute";
7868
+ this._renderer = new three.WebGLRenderer({ antialias: true });
7869
+ this._renderer.setPixelRatio(window.devicePixelRatio);
7870
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7871
+ this._renderer.shadowMap.enabled = true;
7872
+ };
7873
+ Carousel3dComponent.prototype._disposeObject = function (obj) {
7874
+ if (obj instanceof three.Mesh) {
7875
+ if (obj.geometry) {
7876
+ obj.geometry.dispose();
7877
+ }
7878
+ if (obj.material) {
7879
+ Array.isArray(obj.material) ? obj.material.map(function (m) { return m.dispose(); }) : obj.material.dispose();
7880
+ }
7881
+ obj = undefined;
7882
+ }
7883
+ else {
7884
+ obj.element = undefined;
7885
+ obj = undefined;
7886
+ }
7887
+ };
7888
+ Carousel3dComponent.prototype._clearScenes = function () {
7889
+ var _a, _b;
7890
+ var _this = this;
7891
+ var meshes = this._tiles3D.map(function (t) { return t.mesh; });
7892
+ var cssObjs = this._tiles3D.map(function (t) { return t.object; });
7893
+ (_a = this._scene).remove.apply(_a, __spreadArray([], __read(meshes)));
7894
+ meshes.map(function (m) { return _this._disposeObject(m); });
7895
+ meshes.length = 0;
7896
+ (_b = this._sceneCss).remove.apply(_b, __spreadArray([], __read(cssObjs)));
7897
+ cssObjs.map(function (o) { return _this._disposeObject(o); });
7898
+ cssObjs.length = 0;
7899
+ this._tiles3D.length = 0;
7900
+ this._targetPositions.length = 0;
7901
+ };
7902
+ Carousel3dComponent.prototype._createTiles = function () {
7903
+ var _this = this;
7904
+ this._clearScenes();
7905
+ this._tileSize.x = this.tileWidth;
7906
+ this._tileSize.y = this.tileHeight;
7907
+ var tileWidth = this._tileSize.x + this._tileMargin;
7908
+ var numItems = Math.max(this._tileElements.length, 20);
7909
+ this._fullCircle = this._tileElements.length >= 20;
7910
+ var angleTileDeg = 360 / numItems;
7911
+ var circumference = numItems * tileWidth;
7912
+ var radius = circumference / (Math.PI * 2);
7913
+ var y = this.shadow ? 75 : 45;
7914
+ var len = numItems;
7915
+ var angleDeg = 90;
7916
+ var position = new three.Vector3();
7917
+ for (var i = 0; i < len; i++) {
7918
+ var angle = angleDeg * (Math.PI / 180); // Radians
7919
+ var x = radius * Math.cos(angle);
7920
+ var z = -radius + radius * Math.sin(angle);
7921
+ position.set(x, y, z);
7922
+ this._targetPositions.push(position.clone());
7923
+ if (i < this._tileElements.length) {
7924
+ var tile = new CarouselItem({ tileSize: this._tileSize }, i, function (idx) { return _this._rotateTo(idx); });
7925
+ tile.setPosition(position);
7926
+ tile.setContent(this._tileElements[i].nativeElement);
7927
+ this._scene.add(tile.mesh);
7928
+ this._sceneCss.add(tile.object);
7929
+ this._tiles3D.push(tile);
7930
+ }
7931
+ angleDeg = angleDeg - angleTileDeg; // CW instead of CCW
7932
+ }
7933
+ this._adjustCameraZoom();
7934
+ this._tileOffset = this.selectedIndex;
7935
+ this._rotate(0);
7936
+ this._render();
7937
+ };
7938
+ Carousel3dComponent.prototype._adjustCameraZoom = function () {
7939
+ if (this._tiles3D.length === 0) {
7940
+ return;
7941
+ }
7942
+ var object = this._tiles3D[0].mesh;
7943
+ // offset = offset || 1.15;
7944
+ // get bounding box of object - this will be used to setup controls and camera
7945
+ var boundingBox = new three.Box3();
7946
+ boundingBox.setFromObject(object);
7947
+ var center = new three.Vector3();
7948
+ boundingBox.getCenter(center);
7949
+ var size = new three.Vector3();
7950
+ boundingBox.getSize(size);
7951
+ // get the max side of the bounding box (fits to width OR height as needed )
7952
+ var maxDim = Math.max(size.x, size.y, size.z);
7953
+ var fov = this._camera.fov * (Math.PI / 180);
7954
+ // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));
7955
+ var cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));
7956
+ // cameraZ *= offset; // zoom out a little so that objects don't fill the screen
7957
+ this._camera.position.z = cameraZ;
7958
+ this._camera.lookAt(center);
7959
+ };
7960
+ Carousel3dComponent.prototype._checkNavigationButtons = function () {
7961
+ var currentIdx = this._getSelectedIndex();
7962
+ this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;
7963
+ this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;
7964
+ };
7965
+ Carousel3dComponent.prototype._animate = function () {
7966
+ var _this = this;
7967
+ TWEEN__namespace.update();
7968
+ setTimeout(function () {
7969
+ _this._renderer.setAnimationLoop(function () { return _this._animate(); });
7970
+ }, 200);
7971
+ };
7972
+ Carousel3dComponent.prototype._getSelectedIndex = function () {
7973
+ return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));
7974
+ };
7975
+ Carousel3dComponent.prototype._rotate = function (duration) {
7976
+ var _this = this;
7977
+ TWEEN__namespace.removeAll();
7978
+ for (var i = 0; i < this._tiles3D.length; i++) {
7979
+ var tile = this._tiles3D[i];
7980
+ if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle
7981
+ this._tileOffset = this._tileOffset > 0 ? 1 : -1;
7982
+ }
7983
+ var positionIdx = i - this._tileOffset;
7984
+ if (positionIdx > this._targetPositions.length - 1) {
7985
+ positionIdx = positionIdx - this._targetPositions.length;
7986
+ }
7987
+ else if (positionIdx < 0) {
7988
+ positionIdx = this._targetPositions.length + positionIdx;
7989
+ }
7990
+ var target = this._targetPositions[positionIdx];
7991
+ new TWEEN__namespace.Tween(tile.object.position)
7992
+ .to(target, duration)
7993
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7994
+ .start();
7995
+ new TWEEN__namespace.Tween(tile.mesh.position)
7996
+ .to(target, duration)
7997
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7998
+ .start();
7999
+ }
8000
+ new TWEEN__namespace.Tween()
8001
+ .to({}, duration * 2)
8002
+ .onUpdate(function () {
8003
+ _this._render();
8004
+ })
8005
+ .start();
8006
+ this.selectedIndex = this._tileOffset;
8007
+ this._checkNavigationButtons();
8008
+ this.indexSelected.next(this._getSelectedIndex());
8009
+ };
8010
+ Carousel3dComponent.prototype._rotateTo = function (index) {
8011
+ var current = this._getSelectedIndex();
8012
+ this._tileOffset += index - current;
8013
+ this._rotate(800);
8014
+ };
8015
+ Carousel3dComponent.prototype._resizeCanvasToDisplaySize = function () {
8016
+ this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;
8017
+ this._camera.updateProjectionMatrix();
8018
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
8019
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
8020
+ this._render();
8021
+ };
8022
+ Carousel3dComponent.prototype._render = function () {
8023
+ this._rendererCss.render(this._sceneCss, this._camera);
8024
+ this._renderer.render(this._scene, this._camera);
8025
+ };
8026
+ return Carousel3dComponent;
8027
+ }());
8028
+ Carousel3dComponent.decorators = [
8029
+ { type: core.Component, args: [{
8030
+ selector: "co-carousel-3d",
8031
+ 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 ",
8032
+ encapsulation: core.ViewEncapsulation.None
8033
+ },] }
8034
+ ];
8035
+ Carousel3dComponent.propDecorators = {
8036
+ canvasContainer: [{ type: core.ViewChild, args: ["canvasContainer", { read: core.ElementRef },] }],
8037
+ carouselWrapper: [{ type: core.ViewChild, args: ["carouselWrapper", { read: core.ElementRef },] }],
8038
+ children: [{ type: core.ContentChildren, args: ["carouselItem", { read: core.ElementRef, descendants: true },] }],
8039
+ tileWidth: [{ type: core.Input }],
8040
+ tileHeight: [{ type: core.Input }],
8041
+ cameraHeight: [{ type: core.Input }],
8042
+ shadow: [{ type: core.Input }],
8043
+ selectedIndex: [{ type: core.Input }],
8044
+ indexSelected: [{ type: core.Output }],
8045
+ showClass: [{ type: core.HostBinding, args: ["class.co-carousel-3d",] }]
8046
+ };
8047
+
8048
+ var Carousel3dModule = /** @class */ (function () {
8049
+ function Carousel3dModule() {
8050
+ }
8051
+ return Carousel3dModule;
8052
+ }());
8053
+ Carousel3dModule.decorators = [
8054
+ { type: core.NgModule, args: [{
8055
+ imports: [
8056
+ common.CommonModule
8057
+ ],
8058
+ declarations: [
8059
+ Carousel3dComponent
8060
+ ],
8061
+ exports: [
8062
+ Carousel3dComponent
8063
+ ]
8064
+ },] }
8065
+ ];
8066
+
7513
8067
  /*
7514
8068
  * Public API Surface of corecomponents
7515
8069
  */
@@ -7525,6 +8079,8 @@
7525
8079
  exports.ButtonDropDownModule = ButtonDropDownModule;
7526
8080
  exports.ButtonModule = ButtonModule;
7527
8081
  exports.COMPONENT_INTERFACE_NAME = COMPONENT_INTERFACE_NAME;
8082
+ exports.Carousel3dComponent = Carousel3dComponent;
8083
+ exports.Carousel3dModule = Carousel3dModule;
7528
8084
  exports.CoDialogComponent = CoDialogComponent;
7529
8085
  exports.CoDialogModule = CoDialogModule;
7530
8086
  exports.CoDialogPromptComponent = CoDialogPromptComponent;
@@ -7548,6 +8104,7 @@
7548
8104
  exports.DropDownListComponent = DropDownListComponent;
7549
8105
  exports.DropDownModule = DropDownModule;
7550
8106
  exports.FormComponent = FormComponent;
8107
+ exports.FormMasterService = FormMasterService;
7551
8108
  exports.FormModule = FormModule;
7552
8109
  exports.IconCacheService = IconCacheService;
7553
8110
  exports.IconComponent = IconComponent;
@@ -7570,6 +8127,8 @@
7570
8127
  exports.InputRadioButtonModule = InputRadioButtonModule;
7571
8128
  exports.InputTextComponent = InputTextComponent;
7572
8129
  exports.InputTextModule = InputTextModule;
8130
+ exports.InputTextareaComponent = InputTextareaComponent;
8131
+ exports.InputTextareaModule = InputTextareaModule;
7573
8132
  exports.LevelIndicatorComponent = LevelIndicatorComponent;
7574
8133
  exports.LevelIndicatorModule = LevelIndicatorModule;
7575
8134
  exports.MultiSelectListComponent = MultiSelectListComponent;
@@ -7600,14 +8159,15 @@
7600
8159
  exports["ɵm"] = FormInputUserModelChangeListenerService;
7601
8160
  exports["ɵn"] = NgZoneWrapperService;
7602
8161
  exports["ɵo"] = BaseInputComponent;
7603
- exports["ɵp"] = FormMasterService;
7604
- exports["ɵq"] = BaseSelectionGridComponent;
7605
- exports["ɵr"] = BaseInlineEditGridComponent;
7606
- exports["ɵs"] = BaseToolbarGridComponent;
7607
- exports["ɵt"] = BaseGridComponent;
7608
- exports["ɵu"] = AppendPipeModule;
7609
- exports["ɵv"] = AppendPipe;
7610
- exports["ɵw"] = PopupShowerService;
8162
+ exports["ɵp"] = BaseSelectionGridComponent;
8163
+ exports["ɵq"] = BaseInlineEditGridComponent;
8164
+ exports["ɵr"] = BaseToolbarGridComponent;
8165
+ exports["ɵs"] = BaseGridComponent;
8166
+ exports["ɵt"] = AppendPipeModule;
8167
+ exports["ɵu"] = AppendPipe;
8168
+ exports["ɵv"] = ValidationErrorModule;
8169
+ exports["ɵw"] = ValidationErrorComponent;
8170
+ exports["ɵx"] = PopupShowerService;
7611
8171
 
7612
8172
  Object.defineProperty(exports, '__esModule', { value: true });
7613
8173