@colijnit/corecomponents_v12 12.0.15 → 12.0.18

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 (182) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +1099 -277
  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 +40 -20
  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.component.js +46 -48
  11. package/esm2015/lib/components/co-dialog/co-dialog.module.js +7 -4
  12. package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.component.js +6 -6
  13. package/esm2015/lib/components/co-kanban/co-kanban.component.js +8 -7
  14. package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.component.js +2 -2
  15. package/esm2015/lib/components/collapsible/collapsible.component.js +58 -0
  16. package/esm2015/lib/components/collapsible/collapsible.module.js +17 -0
  17. package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +30 -8
  18. package/esm2015/lib/components/drop-down-list/drop-down.module.js +4 -2
  19. package/esm2015/lib/components/form/form.component.js +2 -21
  20. package/esm2015/lib/components/form/form.module.js +4 -4
  21. package/esm2015/lib/components/grid/base/base-grid.component.js +1 -1
  22. package/esm2015/lib/components/grid/base/base-selection-grid.component.js +1 -1
  23. package/esm2015/lib/components/grid/co-grid.component.js +2 -2
  24. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +15 -5
  25. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +6 -14
  26. package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +24 -29
  27. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +10 -7
  28. package/esm2015/lib/components/input-listbox/input-listbox.component.js +87 -0
  29. package/esm2015/lib/components/input-listbox/input-listbox.module.js +25 -0
  30. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +55 -30
  31. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +5 -3
  32. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +13 -5
  33. package/esm2015/lib/components/input-text/input-text.component.js +22 -81
  34. package/esm2015/lib/components/input-text/input-text.module.js +16 -13
  35. package/esm2015/lib/components/input-textarea/input-textarea.component.js +62 -0
  36. package/esm2015/lib/components/input-textarea/input-textarea.module.js +23 -0
  37. package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -9
  38. package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +4 -2
  39. package/esm2015/lib/components/pivot/co-pivot.component.js +2 -2
  40. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +36 -0
  41. package/esm2015/lib/components/simple-grid/simple-grid.component.js +112 -0
  42. package/esm2015/lib/components/simple-grid/simple-grid.module.js +24 -0
  43. package/esm2015/lib/components/validation-error/validation-error.component.js +23 -0
  44. package/esm2015/lib/components/validation-error/validation-error.module.js +19 -0
  45. package/esm2015/public-api.js +13 -1
  46. package/fesm2015/colijnit-corecomponents_v12.js +1176 -337
  47. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  48. package/lib/components/base/base-input.component.d.ts +14 -9
  49. package/lib/components/button/style/_co-ripple.scss +69 -0
  50. package/lib/components/button/style/_layout.scss +7 -4
  51. package/lib/components/button/style/_material-definition.scss +1 -0
  52. package/lib/components/button/style/_theme.scss +2 -27
  53. package/lib/components/button/style/material.scss +18 -0
  54. package/lib/components/button-drop-down/style/_layout.scss +0 -2
  55. package/lib/components/button-drop-down/style/_theme.scss +0 -2
  56. package/lib/components/button-drop-down/style/material.scss +1 -0
  57. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
  58. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
  59. package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
  60. package/lib/components/carousel-3d/style/_layout.scss +62 -0
  61. package/lib/components/carousel-3d/style/_material-definition.scss +6 -0
  62. package/lib/components/carousel-3d/style/_theme.scss +4 -0
  63. package/lib/components/carousel-3d/style/material.scss +5 -0
  64. package/lib/components/co-dialog/co-dialog.component.d.ts +6 -13
  65. package/lib/components/co-dialog/style/_layout.scss +44 -0
  66. package/lib/components/co-dialog/style/_material-definition.scss +23 -0
  67. package/lib/components/co-dialog/style/_theme.scss +24 -0
  68. package/lib/components/co-dialog/style/material.scss +5 -0
  69. package/lib/components/co-dialog-prompt/co-dialog-prompt.component.d.ts +2 -2
  70. package/lib/components/co-kanban/co-kanban.component.d.ts +1 -0
  71. package/lib/components/co-kanban/style/_layout.scss +48 -0
  72. package/lib/components/co-kanban/style/_material-definition.scss +25 -0
  73. package/lib/components/co-kanban/style/_theme.scss +3 -0
  74. package/lib/components/co-kanban/style/material.scss +14 -0
  75. package/lib/components/co-rich-text-editor/co-rich-text-editor.component.d.ts +1 -1
  76. package/lib/components/co-rich-text-editor/style/_layout.scss +0 -2
  77. package/lib/components/co-rich-text-editor/style/_theme.scss +0 -2
  78. package/lib/components/co-rich-text-editor/style/material.scss +1 -0
  79. package/lib/components/co-toggle/co-toggle.component.scss +1 -0
  80. package/lib/components/collapsible/collapsible.component.d.ts +16 -0
  81. package/lib/components/collapsible/collapsible.module.d.ts +2 -0
  82. package/lib/components/collapsible/style/_layout.scss +50 -0
  83. package/lib/components/collapsible/style/_material-definition.scss +9 -0
  84. package/lib/components/collapsible/style/_theme.scss +5 -0
  85. package/lib/components/collapsible/style/material.scss +5 -0
  86. package/lib/components/drop-down-list/drop-down-list.component.d.ts +12 -2
  87. package/lib/components/drop-down-list/style/_layout.scss +8 -3
  88. package/lib/components/drop-down-list/style/_theme.scss +0 -2
  89. package/lib/components/drop-down-list/style/material.scss +2 -0
  90. package/lib/components/form/form.component.d.ts +0 -1
  91. package/lib/components/grid/base/base-selection-grid.component.d.ts +1 -2
  92. package/lib/components/grid/co-grid.component.d.ts +1 -1
  93. package/lib/components/grid/style/_layout.scss +0 -2
  94. package/lib/components/grid/style/_theme.scss +0 -2
  95. package/lib/components/grid/style/material.scss +1 -0
  96. package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -2
  97. package/lib/components/input-checkbox/style/_layout.scss +0 -2
  98. package/lib/components/input-checkbox/style/_theme.scss +0 -2
  99. package/lib/components/input-checkbox/style/material.scss +1 -0
  100. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +4 -6
  101. package/lib/components/input-checkbox-multi-select/style/_layout.scss +0 -2
  102. package/lib/components/input-checkbox-multi-select/style/_theme.scss +0 -2
  103. package/lib/components/input-checkbox-multi-select/style/material.scss +1 -0
  104. package/lib/components/input-combo-box/input-combo-box.component.d.ts +6 -7
  105. package/lib/components/input-combo-box/style/_layout.scss +10 -3
  106. package/lib/components/input-combo-box/style/_material-definition.scss +0 -7
  107. package/lib/components/input-combo-box/style/_theme.scss +0 -2
  108. package/lib/components/input-combo-box/style/material.scss +9 -0
  109. package/lib/components/input-date-picker/input-date-picker.component.d.ts +4 -3
  110. package/lib/components/input-date-picker/style/_layout.scss +4 -3
  111. package/lib/components/input-date-picker/style/_theme.scss +0 -2
  112. package/lib/components/input-date-picker/style/material.scss +2 -0
  113. package/lib/components/input-listbox/input-listbox.component.d.ts +25 -0
  114. package/lib/components/input-listbox/input-listbox.module.d.ts +2 -0
  115. package/lib/components/input-listbox/style/_layout.scss +22 -0
  116. package/lib/components/input-listbox/style/_material-definition.scss +10 -0
  117. package/lib/components/input-listbox/style/_theme.scss +12 -0
  118. package/lib/components/input-listbox/style/material.scss +6 -0
  119. package/lib/components/input-number-picker/input-number-picker.component.d.ts +9 -5
  120. package/lib/components/input-number-picker/style/_layout.scss +41 -0
  121. package/lib/components/input-number-picker/style/_material-definition.scss +17 -0
  122. package/lib/components/input-number-picker/style/_theme.scss +20 -0
  123. package/lib/components/input-number-picker/style/material.scss +5 -0
  124. package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -2
  125. package/lib/components/input-radio-button/style/_layout.scss +0 -2
  126. package/lib/components/input-radio-button/style/_theme.scss +0 -2
  127. package/lib/components/input-radio-button/style/material.scss +1 -0
  128. package/lib/components/input-search/style/_layout.scss +39 -0
  129. package/lib/components/input-search/style/_material-definition.scss +6 -0
  130. package/lib/components/input-search/style/_theme.scss +6 -0
  131. package/lib/components/input-search/style/material.scss +5 -0
  132. package/lib/components/input-text/input-text.component.d.ts +6 -30
  133. package/lib/components/input-text/style/_layout.scss +14 -3
  134. package/lib/components/input-text/style/_material-definition.scss +4 -3
  135. package/lib/components/input-text/style/_theme.scss +0 -2
  136. package/lib/components/input-text/style/material.scss +3 -0
  137. package/lib/components/input-textarea/input-textarea.component.d.ts +18 -0
  138. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
  139. package/lib/components/input-textarea/style/_layout.scss +20 -0
  140. package/lib/components/input-textarea/style/_material-definition.scss +4 -0
  141. package/lib/components/input-textarea/style/_theme.scss +8 -0
  142. package/lib/components/input-textarea/style/material.scss +7 -0
  143. package/lib/components/multi-select-list/multi-select-list.component.d.ts +13 -2
  144. package/lib/components/multi-select-list/style/_layout.scss +10 -3
  145. package/lib/components/multi-select-list/style/_theme.scss +0 -2
  146. package/lib/components/multi-select-list/style/material.scss +2 -0
  147. package/lib/components/pivot/co-pivot.component.d.ts +2 -2
  148. package/lib/components/pivot/style/_layout.scss +0 -2
  149. package/lib/components/pivot/style/_theme.scss +0 -2
  150. package/lib/components/pivot/style/material.scss +1 -0
  151. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +18 -0
  152. package/lib/components/simple-grid/simple-grid.component.d.ts +26 -0
  153. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
  154. package/lib/components/simple-grid/style/_layout.scss +78 -0
  155. package/lib/components/simple-grid/style/_material-definition.scss +16 -0
  156. package/lib/components/simple-grid/style/_theme.scss +15 -0
  157. package/lib/components/simple-grid/style/material.scss +5 -0
  158. package/lib/components/validation-error/style/_layout.scss +37 -0
  159. package/lib/components/validation-error/style/_material-definition.scss +9 -0
  160. package/lib/components/validation-error/style/_theme.scss +21 -0
  161. package/lib/components/validation-error/style/material.scss +5 -0
  162. package/lib/components/validation-error/validation-error.component.d.ts +4 -0
  163. package/lib/components/validation-error/validation-error.module.d.ts +2 -0
  164. package/lib/style/_input.mixins.scss +70 -281
  165. package/lib/style/_variables.scss +2 -0
  166. package/lib/style/material2/_core.scss +3 -3
  167. package/lib/style/material2/_material2-scss-barrel.scss +10 -10
  168. package/package.json +5 -2
  169. package/public-api.d.ts +12 -0
  170. package/esm2015/lib/core/enum/float-label-type.enum.js +0 -7
  171. package/esm2015/lib/core/enum/input-text-type.enum.js +0 -6
  172. package/esm2015/lib/core/model/numerical-range.js +0 -14
  173. package/lib/components/co-dialog/co-dialog.component.scss +0 -0
  174. package/lib/components/drop-down-list/drop-down-list.component.scss +0 -0
  175. package/lib/components/input-number-picker/input-number-picker.component.scss +0 -49
  176. package/lib/core/enum/float-label-type.enum.d.ts +0 -5
  177. package/lib/core/enum/input-text-type.enum.d.ts +0 -4
  178. package/lib/core/model/numerical-range.d.ts +0 -7
  179. package/lib/style/_extendables.scss +0 -32
  180. package/lib/style/_responsiveness.mixins.scss +0 -64
  181. package/lib/style/_responsiveness.scss +0 -4
  182. 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('@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')) :
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', '@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'], 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.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));
5
- })(this, (function (exports, core, common, http, platformBrowser, rxjs, operators, ej2AngularSplitbuttons, ej2AngularPopups, ej2AngularKanban, ej2AngularSchedule, ej2AngularNavigations, ej2AngularButtons, forms, ej2AngularDropdowns, ej2AngularGrids, ej2Base, ej2AngularCalendars, ej2AngularInputs, ej2AngularPivotview, overlay, portal, ej2AngularRichtexteditor) { '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('@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'), 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', '@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', '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.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, global.three, global.CSS3DRenderer, global.TWEEN));
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, 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) {
@@ -2530,51 +2550,51 @@
2530
2550
 
2531
2551
  var CoDialogComponent = /** @class */ (function () {
2532
2552
  function CoDialogComponent() {
2533
- var _this = this;
2534
- this.targetElement = null;
2553
+ this.icons = exports.CoreComponentsIcon;
2535
2554
  this.showCloseIcon = true;
2536
- this.width = "50%";
2537
- this.visible = false;
2538
- this.position = { X: 'center', Y: 'center' };
2539
- this.modal = true;
2555
+ this.modal = false;
2556
+ this.animation = true;
2540
2557
  this.closeClick = new core.EventEmitter();
2541
2558
  this.overlayClick = new core.EventEmitter();
2542
- this.onOverlayClick = function () {
2543
- _this.coDialog.hide();
2544
- _this.overlayClick.emit();
2545
- };
2546
- this.onCloseClick = function () {
2547
- _this.coDialog.hide();
2548
- _this.closeClick.emit();
2549
- };
2550
2559
  }
2551
- CoDialogComponent.prototype.open = function () {
2552
- this.coDialog.show();
2560
+ CoDialogComponent.prototype.showClass = function () {
2561
+ return true;
2553
2562
  };
2554
- CoDialogComponent.prototype.close = function () {
2555
- this.coDialog.hide();
2563
+ CoDialogComponent.prototype.handleOverlayClick = function (event) {
2564
+ if (!this.modal) {
2565
+ this.overlayClick.next(event);
2566
+ }
2556
2567
  };
2557
2568
  return CoDialogComponent;
2558
2569
  }());
2559
2570
  CoDialogComponent.decorators = [
2560
2571
  { type: core.Component, args: [{
2561
2572
  selector: 'co-dialog',
2562
- template: "\n <ejs-dialog #template \n [showCloseIcon]='showCloseIcon'\n [target]='targetElement' \n [width]='width'\n [position]=\"position\"\n [isModal]=\"modal\"\n [visible]=\"visible\"\n (overlayClick)=\"onOverlayClick()\"\n (close)=\"onCloseClick()\"\n >\n <ng-template #footerTemplate>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-template>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #header>\n <ng-content select=\"[header]\"></ng-content>\n </ng-template>\n </ejs-dialog>\n ",
2563
- encapsulation: core.ViewEncapsulation.None,
2564
- styles: [""]
2573
+ template: "\n <div class=\"co-dialog-overlay\" (click)=\"handleOverlayClick($event)\" [@showHideOverlay]=\"animation\"></div>\n <div class=\"co-dialog-wrapper\" [@showHideDialog]=\"animation\">\n <div class=\"dialog-header\">\n <ng-content select=\"[header]\"></ng-content>\n <div class=\"dialog-close-button\" *ngIf=\"showCloseIcon\" (click)=\"closeClick.emit($event)\">\n <co-icon [icon]=\"icons.Cancel\"></co-icon>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"dialog-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n ",
2574
+ animations: [
2575
+ animations.trigger('showHideOverlay', [
2576
+ animations.state('*', animations.style({ opacity: 1 })),
2577
+ animations.state('void', animations.style({ opacity: 0 })),
2578
+ animations.transition('void => *', animations.animate(200)),
2579
+ animations.transition('* => void', animations.animate('200ms 200ms'))
2580
+ ]),
2581
+ animations.trigger('showHideDialog', [
2582
+ animations.state('*', animations.style({ opacity: 1 })),
2583
+ animations.state('void', animations.style({ opacity: 0 })),
2584
+ animations.transition('void => *', animations.animate('200ms 200ms')),
2585
+ animations.transition('* => void', animations.animate(200))
2586
+ ])
2587
+ ],
2588
+ encapsulation: core.ViewEncapsulation.None
2565
2589
  },] }
2566
2590
  ];
2567
- CoDialogComponent.ctorParameters = function () { return []; };
2568
2591
  CoDialogComponent.propDecorators = {
2569
- coDialog: [{ type: core.ViewChild, args: ['template',] }],
2570
- targetElement: [{ type: core.Input }],
2571
2592
  showCloseIcon: [{ type: core.Input }],
2572
- width: [{ type: core.Input }],
2573
- visible: [{ type: core.Input }],
2574
- position: [{ type: core.Input }],
2575
2593
  modal: [{ type: core.Input }],
2594
+ animation: [{ type: core.Input }],
2576
2595
  closeClick: [{ type: core.Output }],
2577
- overlayClick: [{ type: core.Output }]
2596
+ overlayClick: [{ type: core.Output }],
2597
+ showClass: [{ type: core.HostBinding, args: ["class.co-dialog",] }]
2578
2598
  };
2579
2599
 
2580
2600
  var CoDialogModule = /** @class */ (function () {
@@ -2585,10 +2605,11 @@
2585
2605
  CoDialogModule.decorators = [
2586
2606
  { type: core.NgModule, args: [{
2587
2607
  imports: [
2588
- ej2AngularPopups.DialogModule
2608
+ common.CommonModule,
2609
+ animations$1.BrowserAnimationsModule,
2610
+ IconModule
2589
2611
  ],
2590
2612
  declarations: [CoDialogComponent],
2591
- providers: [],
2592
2613
  exports: [CoDialogComponent]
2593
2614
  },] }
2594
2615
  ];
@@ -2626,7 +2647,7 @@
2626
2647
  CoDialogPromptComponent.decorators = [
2627
2648
  { type: core.Component, args: [{
2628
2649
  selector: 'co-dialog-prompt',
2629
- template: "\n <div #coDialogPromptRootContainer class='co-dialog-prompt-root-container'></div>\n <ejs-dialog #coDialogPrompt \n [buttons]=\"buttons\" \n [header]=\"header\"\n [content]=\"content\" \n [showCloseIcon]=\"showCloseIcon\" \n [target]=\"target\"\n [visible]=\"visible\"\n [width]=\"width\"\n (close)=\"onCloseClick()\"\n >\n </ejs-dialog>\n ",
2650
+ template: "\n <div #coDialogPromptRootContainer class='co-dialog-prompt-root-container'></div>\n <ejs-dialog #coDialogPrompt\n [buttons]=\"buttons\"\n [header]=\"header\"\n [content]=\"content\"\n [showCloseIcon]=\"showCloseIcon\"\n [target]=\"target\"\n [visible]=\"visible\"\n [width]=\"width\"\n (close)=\"onCloseClick()\"\n >\n </ejs-dialog>\n ",
2630
2651
  styles: [""]
2631
2652
  },] }
2632
2653
  ];
@@ -2670,15 +2691,14 @@
2670
2691
  this.dragStartEvent = new core.EventEmitter();
2671
2692
  this.dragStopEvent = new core.EventEmitter();
2672
2693
  }
2694
+ CoKanbanComponent.prototype.showClass = function () {
2695
+ return true;
2696
+ };
2673
2697
  CoKanbanComponent.prototype.ngOnInit = function () {
2674
2698
  };
2675
2699
  CoKanbanComponent.prototype.ngAfterViewInit = function () {
2676
- var _this = this;
2677
2700
  if (this.columns) {
2678
- setTimeout(function () {
2679
- _this.kanban.columns = _this.columns;
2680
- _this.kanban.refreshHeader();
2681
- }, 1000);
2701
+ this.kanban.columns = this.columns;
2682
2702
  }
2683
2703
  };
2684
2704
  CoKanbanComponent.prototype.dialogOpen = function (args) {
@@ -2721,7 +2741,8 @@
2721
2741
  cardClickEvent: [{ type: core.Output }],
2722
2742
  cardDoubleClickEvent: [{ type: core.Output }],
2723
2743
  dragStartEvent: [{ type: core.Output }],
2724
- dragStopEvent: [{ type: core.Output }]
2744
+ dragStopEvent: [{ type: core.Output }],
2745
+ showClass: [{ type: core.HostBinding, args: ["class.co-kanban",] }]
2725
2746
  };
2726
2747
  __decorate([
2727
2748
  InputBoolean()
@@ -2925,6 +2946,67 @@
2925
2946
  },] }
2926
2947
  ];
2927
2948
 
2949
+ var CollapsibleComponent = /** @class */ (function () {
2950
+ function CollapsibleComponent(_elementRef) {
2951
+ this._elementRef = _elementRef;
2952
+ this.expandButtonLast = false;
2953
+ this.expanded = false;
2954
+ this.expandedChange = new core.EventEmitter();
2955
+ }
2956
+ CollapsibleComponent.prototype.showClass = function () {
2957
+ return true;
2958
+ };
2959
+ CollapsibleComponent.prototype.onHostClick = function (event) {
2960
+ };
2961
+ CollapsibleComponent.prototype.ngOnDestroy = function () {
2962
+ this._elementRef = undefined;
2963
+ };
2964
+ CollapsibleComponent.prototype.focus = function () {
2965
+ this._elementRef.nativeElement.focus();
2966
+ };
2967
+ CollapsibleComponent.prototype.changeExpanded = function () {
2968
+ this.expanded = !this.expanded;
2969
+ this.expandedChange.next(this.expanded);
2970
+ };
2971
+ return CollapsibleComponent;
2972
+ }());
2973
+ CollapsibleComponent.decorators = [
2974
+ { type: core.Component, args: [{
2975
+ selector: "co-collapsible",
2976
+ template: "\n <div class=\"collapsible-header\" [class.end]=\"expandButtonLast\" (click)=\"changeExpanded()\">\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"!expandButtonLast\">\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\n </div>\n <div class=\"collapsible-title\" [textContent]=\"headerTitle\"></div>\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"expandButtonLast\">\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\n </div>\n </div>\n <div class=\"collapsible-content\" *ngIf=\"expanded\">\n <ng-content></ng-content>\n </div>\n ",
2977
+ changeDetection: core.ChangeDetectionStrategy.OnPush,
2978
+ encapsulation: core.ViewEncapsulation.None
2979
+ },] }
2980
+ ];
2981
+ CollapsibleComponent.ctorParameters = function () { return [
2982
+ { type: core.ElementRef }
2983
+ ]; };
2984
+ CollapsibleComponent.propDecorators = {
2985
+ headerTitle: [{ type: core.Input }],
2986
+ iconData: [{ type: core.Input }],
2987
+ expandButtonLast: [{ type: core.Input }],
2988
+ expanded: [{ type: core.Input }],
2989
+ expandedChange: [{ type: core.Output }],
2990
+ showClass: [{ type: core.HostBinding, args: ["class.co-collapsible",] }],
2991
+ onHostClick: [{ type: core.HostListener, args: ["click", ["$event"],] }]
2992
+ };
2993
+
2994
+ var CollapsibleModule = /** @class */ (function () {
2995
+ function CollapsibleModule() {
2996
+ }
2997
+ return CollapsibleModule;
2998
+ }());
2999
+ CollapsibleModule.decorators = [
3000
+ { type: core.NgModule, args: [{
3001
+ imports: [
3002
+ common.CommonModule,
3003
+ IconModule
3004
+ ],
3005
+ declarations: [CollapsibleComponent],
3006
+ exports: [CollapsibleComponent]
3007
+ },] }
3008
+ ];
3009
+
2928
3010
  var FormInputUserModelChangeListenerService = /** @class */ (function () {
2929
3011
  function FormInputUserModelChangeListenerService() {
2930
3012
  var _this = this;
@@ -3019,18 +3101,36 @@
3019
3101
  };
3020
3102
  }
3021
3103
 
3104
+ var ValidationErrorComponent = /** @class */ (function () {
3105
+ function ValidationErrorComponent() {
3106
+ }
3107
+ ValidationErrorComponent.prototype.showClass = function () {
3108
+ return true;
3109
+ };
3110
+ return ValidationErrorComponent;
3111
+ }());
3112
+ ValidationErrorComponent.decorators = [
3113
+ { type: core.Component, args: [{
3114
+ selector: "co-validation-error",
3115
+ template: "\n <div class=\"validation-error-content\">\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\n </div>\n ",
3116
+ animations: [],
3117
+ encapsulation: core.ViewEncapsulation.None
3118
+ },] }
3119
+ ];
3120
+ ValidationErrorComponent.propDecorators = {
3121
+ error: [{ type: core.Input }],
3122
+ showClass: [{ type: core.HostBinding, args: ['class.co-validation-error',] }]
3123
+ };
3124
+
3022
3125
  /**
3023
3126
  * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
3024
3127
  * adding self as a control to the parent form.
3025
3128
  */
3026
3129
  var BaseInputComponent = /** @class */ (function () {
3027
- function BaseInputComponent(changeDetector, formUserChangeListener,
3028
- // @Optional() protected speechInput?: SpeechInputService,
3029
- ngZoneWrapper,
3030
- // @Optional() protected tooltipManager?: AppTooltipDynamicManagerService,
3031
- elementRef) {
3130
+ function BaseInputComponent(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
3032
3131
  var _this = this;
3033
3132
  this.changeDetector = changeDetector;
3133
+ this.componentFactoryResolver = componentFactoryResolver;
3034
3134
  this.formUserChangeListener = formUserChangeListener;
3035
3135
  this.ngZoneWrapper = ngZoneWrapper;
3036
3136
  this.elementRef = elementRef;
@@ -3088,6 +3188,7 @@
3088
3188
  },
3089
3189
  set: function (value) {
3090
3190
  this._model = value;
3191
+ this._clearErrorComponent();
3091
3192
  },
3092
3193
  enumerable: false,
3093
3194
  configurable: true
@@ -3239,7 +3340,6 @@
3239
3340
  });
3240
3341
  Object.defineProperty(BaseInputComponent.prototype, "formSubmitted", {
3241
3342
  get: function () {
3242
- return true;
3243
3343
  return this.formComponent && this.formComponent.submitted;
3244
3344
  },
3245
3345
  enumerable: false,
@@ -3336,6 +3436,16 @@
3336
3436
  enumerable: false,
3337
3437
  configurable: true
3338
3438
  });
3439
+ BaseInputComponent.prototype.showValidationError = function (error) {
3440
+ if (this.validationErrorContainer) {
3441
+ if (this._errorValidationComponent) {
3442
+ this._clearErrorComponent();
3443
+ }
3444
+ var componentFactory = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);
3445
+ this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);
3446
+ this._errorValidationComponent.instance.error = error;
3447
+ }
3448
+ };
3339
3449
  BaseInputComponent.prototype.ngOnInit = function () {
3340
3450
  var _this = this;
3341
3451
  this._modelChangeSub = this.modelChange.subscribe(function (val) {
@@ -3361,6 +3471,7 @@
3361
3471
  };
3362
3472
  BaseInputComponent.prototype.ngOnDestroy = function () {
3363
3473
  this._destroyed = true;
3474
+ this._clearErrorComponent();
3364
3475
  // if (this.tooltipManager && this.elementRef) {
3365
3476
  // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);
3366
3477
  // }
@@ -3531,6 +3642,15 @@
3531
3642
  this.control.updateValueAndValidity();
3532
3643
  }
3533
3644
  };
3645
+ BaseInputComponent.prototype._clearErrorComponent = function () {
3646
+ if (this.validationErrorContainer) {
3647
+ this.validationErrorContainer.clear();
3648
+ if (this._errorValidationComponent) {
3649
+ this._errorValidationComponent.destroy();
3650
+ this._errorValidationComponent = undefined;
3651
+ }
3652
+ }
3653
+ };
3534
3654
  // whether this.ngModel.control has safe access
3535
3655
  BaseInputComponent.prototype._controlExists = function () {
3536
3656
  return this.ngModel && !!this.control;
@@ -3600,11 +3720,13 @@
3600
3720
  ];
3601
3721
  BaseInputComponent.ctorParameters = function () { return [
3602
3722
  { type: core.ChangeDetectorRef },
3723
+ { type: core.ComponentFactoryResolver },
3603
3724
  { type: FormInputUserModelChangeListenerService, decorators: [{ type: core.Optional }] },
3604
3725
  { type: NgZoneWrapperService, decorators: [{ type: core.Optional }] },
3605
3726
  { type: core.ElementRef, decorators: [{ type: core.Optional }] }
3606
3727
  ]; };
3607
3728
  BaseInputComponent.propDecorators = {
3729
+ validationErrorContainer: [{ type: core.ViewChild, args: ["validationError", { read: core.ViewContainerRef },] }],
3608
3730
  model: [{ type: core.Input }],
3609
3731
  label: [{ type: core.Input }],
3610
3732
  noValidation: [{ type: core.Input }],
@@ -3635,7 +3757,7 @@
3635
3757
  userModelChange: [{ type: core.Output }],
3636
3758
  hiddenChange: [{ type: core.Output }],
3637
3759
  _ngModel: [{ type: core.ViewChild, args: [forms.NgModel, { static: true },] }],
3638
- focused: [{ type: core.HostBinding, args: ["class.focused",] }],
3760
+ focused: [{ type: core.HostBinding, args: ["class.cc-input-focused",] }],
3639
3761
  formInput: [{ type: core.HostBinding, args: ["class.form-input",] }],
3640
3762
  customWidth: [{ type: core.Input }, { type: core.HostBinding, args: ["class.custom-width",] }],
3641
3763
  noTriangleGraphic: [{ type: core.Input }],
@@ -3687,70 +3809,6 @@
3687
3809
  InputBoolean()
3688
3810
  ], BaseInputComponent.prototype, "noFormGroupControl", void 0);
3689
3811
 
3690
- var DropDownListComponent = /** @class */ (function (_super) {
3691
- __extends(DropDownListComponent, _super);
3692
- function DropDownListComponent() {
3693
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3694
- /**
3695
- * In the form { text: 'name', value: 'id' }
3696
- * Where 'text' is showing in the dropdown and 'id' used for the model binding
3697
- */
3698
- _this.fields = {};
3699
- return _this;
3700
- }
3701
- DropDownListComponent.prototype.showClass = function () {
3702
- return true;
3703
- };
3704
- DropDownListComponent.prototype.handleValueChanged = function (value) {
3705
- if (value !== this.model) {
3706
- this.modelChange.next(value);
3707
- }
3708
- };
3709
- return DropDownListComponent;
3710
- }(BaseInputComponent));
3711
- DropDownListComponent.decorators = [
3712
- { type: core.Component, args: [{
3713
- selector: "co-drop-down-list",
3714
- 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 ",
3715
- providers: [
3716
- ej2AngularDropdowns.CheckBoxSelectionService,
3717
- {
3718
- provide: COMPONENT_INTERFACE_NAME,
3719
- useExisting: core.forwardRef(function () { return DropDownListComponent; })
3720
- }
3721
- ],
3722
- changeDetection: core.ChangeDetectionStrategy.OnPush,
3723
- encapsulation: core.ViewEncapsulation.None
3724
- },] }
3725
- ];
3726
- DropDownListComponent.propDecorators = {
3727
- collection: [{ type: core.Input }],
3728
- fields: [{ type: core.Input }],
3729
- placeHolder: [{ type: core.Input }],
3730
- itemTemplate: [{ type: core.Input }],
3731
- headerTemplate: [{ type: core.Input }],
3732
- valueTemplate: [{ type: core.Input }],
3733
- showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
3734
- };
3735
-
3736
- var DropDownModule = /** @class */ (function () {
3737
- function DropDownModule() {
3738
- }
3739
- return DropDownModule;
3740
- }());
3741
- DropDownModule.decorators = [
3742
- { type: core.NgModule, args: [{
3743
- imports: [
3744
- BaseModule,
3745
- common.CommonModule,
3746
- ej2AngularDropdowns.DropDownListModule,
3747
- ej2AngularDropdowns.MultiSelectModule
3748
- ],
3749
- declarations: [DropDownListComponent],
3750
- exports: [DropDownListComponent]
3751
- },] }
3752
- ];
3753
-
3754
3812
  // Represents a positional model
3755
3813
  var ElementPosition = /** @class */ (function () {
3756
3814
  function ElementPosition(top, right, bottom, left) {
@@ -3999,33 +4057,15 @@
3999
4057
  for (var errorKey in this.formGroup.controls[controlKey].errors) {
4000
4058
  if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {
4001
4059
  var error = this.formGroup.controls[controlKey].errors[errorKey];
4002
- var errorText = this._getValidationErrorText(error);
4003
- var controlElement = comp.elementRef.nativeElement;
4004
4060
  if (controlKey === key) {
4005
- // this._tooltipService.spawnErrorTooltip(controlElement, errorText, this.keepInView ? this.keepInView : undefined);
4061
+ comp.showValidationError(error);
4006
4062
  }
4007
- comp.redErrorBackground = true;
4008
4063
  }
4009
4064
  }
4010
4065
  }
4011
4066
  }
4012
4067
  }
4013
4068
  };
4014
- FormComponent.prototype._getValidationErrorText = function (validationError) {
4015
- return "";
4016
- if (StringUtils.IsString(validationError)) {
4017
- // return this._dictionary.get(validationError);
4018
- }
4019
- else if (validationError.message) {
4020
- if (validationError.placeholder) {
4021
- // see e.g. maxStringLengthValidator, where we return this {message: string, placeholder: string} object shape as validation error obj
4022
- // return this._dictionary.get(validationError.message, true, validationError.placeholder);
4023
- }
4024
- else {
4025
- // return this._dictionary.get(validationError.message);
4026
- }
4027
- }
4028
- };
4029
4069
  FormComponent.prototype._setFirstInvalidElementOnMaster = function () {
4030
4070
  var elements = Array.from(this._componentMap);
4031
4071
  var len = elements.length;
@@ -4062,6 +4102,85 @@
4062
4102
  onEnterKey: [{ type: core.HostListener, args: ['keyup.enter', ['$event'],] }]
4063
4103
  };
4064
4104
 
4105
+ var DropDownListComponent = /** @class */ (function (_super) {
4106
+ __extends(DropDownListComponent, _super);
4107
+ function DropDownListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4108
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4109
+ _this.formComponent = formComponent;
4110
+ _this.changeDetector = changeDetector;
4111
+ _this.componentFactoryResolver = componentFactoryResolver;
4112
+ _this.formUserChangeListener = formUserChangeListener;
4113
+ _this.ngZoneWrapper = ngZoneWrapper;
4114
+ _this.elementRef = elementRef;
4115
+ /**
4116
+ * In the form { text: 'name', value: 'id' }
4117
+ * Where 'text' is showing in the dropdown and 'id' used for the model binding
4118
+ */
4119
+ _this.fields = {};
4120
+ _super.prototype._markAsOnPush.call(_this);
4121
+ return _this;
4122
+ }
4123
+ DropDownListComponent.prototype.showClass = function () {
4124
+ return true;
4125
+ };
4126
+ DropDownListComponent.prototype.handleValueChanged = function (value) {
4127
+ if (value !== this.model) {
4128
+ this.modelChange.next(value);
4129
+ }
4130
+ };
4131
+ return DropDownListComponent;
4132
+ }(BaseInputComponent));
4133
+ DropDownListComponent.decorators = [
4134
+ { type: core.Component, args: [{
4135
+ selector: "co-drop-down-list",
4136
+ 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 ",
4137
+ providers: [
4138
+ ej2AngularDropdowns.CheckBoxSelectionService,
4139
+ {
4140
+ provide: COMPONENT_INTERFACE_NAME,
4141
+ useExisting: core.forwardRef(function () { return DropDownListComponent; })
4142
+ }
4143
+ ],
4144
+ encapsulation: core.ViewEncapsulation.None
4145
+ },] }
4146
+ ];
4147
+ DropDownListComponent.ctorParameters = function () { return [
4148
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
4149
+ { type: core.ChangeDetectorRef },
4150
+ { type: core.ComponentFactoryResolver },
4151
+ { type: FormInputUserModelChangeListenerService },
4152
+ { type: NgZoneWrapperService },
4153
+ { type: core.ElementRef }
4154
+ ]; };
4155
+ DropDownListComponent.propDecorators = {
4156
+ collection: [{ type: core.Input }],
4157
+ fields: [{ type: core.Input }],
4158
+ placeholder: [{ type: core.Input }],
4159
+ itemTemplate: [{ type: core.Input }],
4160
+ headerTemplate: [{ type: core.Input }],
4161
+ valueTemplate: [{ type: core.Input }],
4162
+ showClass: [{ type: core.HostBinding, args: ["class.co-drop-down-list",] }]
4163
+ };
4164
+
4165
+ var DropDownModule = /** @class */ (function () {
4166
+ function DropDownModule() {
4167
+ }
4168
+ return DropDownModule;
4169
+ }());
4170
+ DropDownModule.decorators = [
4171
+ { type: core.NgModule, args: [{
4172
+ imports: [
4173
+ BaseModule,
4174
+ common.CommonModule,
4175
+ ej2AngularDropdowns.DropDownListModule,
4176
+ ej2AngularDropdowns.MultiSelectModule,
4177
+ forms.FormsModule
4178
+ ],
4179
+ declarations: [DropDownListComponent],
4180
+ exports: [DropDownListComponent]
4181
+ },] }
4182
+ ];
4183
+
4065
4184
  var FormModule = /** @class */ (function () {
4066
4185
  function FormModule() {
4067
4186
  }
@@ -4456,9 +4575,15 @@
4456
4575
 
4457
4576
  var InputCheckboxComponent = /** @class */ (function (_super) {
4458
4577
  __extends(InputCheckboxComponent, _super);
4459
- function InputCheckboxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
4460
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
4578
+ function InputCheckboxComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4579
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4461
4580
  _this.formComponent = formComponent;
4581
+ _this.iconCacheService = iconCacheService;
4582
+ _this.changeDetector = changeDetector;
4583
+ _this.componentFactoryResolver = componentFactoryResolver;
4584
+ _this.formUserChangeListener = formUserChangeListener;
4585
+ _this.ngZoneWrapper = ngZoneWrapper;
4586
+ _this.elementRef = elementRef;
4462
4587
  _this.modelChange = new core.EventEmitter();
4463
4588
  return _this;
4464
4589
  }
@@ -4490,9 +4615,12 @@
4490
4615
  ];
4491
4616
  InputCheckboxComponent.ctorParameters = function () { return [
4492
4617
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4618
+ { type: IconCacheService },
4493
4619
  { type: core.ChangeDetectorRef },
4620
+ { type: core.ComponentFactoryResolver },
4494
4621
  { type: FormInputUserModelChangeListenerService },
4495
- { type: NgZoneWrapperService }
4622
+ { type: NgZoneWrapperService },
4623
+ { type: core.ElementRef }
4496
4624
  ]; };
4497
4625
  InputCheckboxComponent.propDecorators = {
4498
4626
  name: [{ type: core.Input }],
@@ -4558,10 +4686,11 @@
4558
4686
 
4559
4687
  var InputCheckboxMultiSelectComponent = /** @class */ (function (_super) {
4560
4688
  __extends(InputCheckboxMultiSelectComponent, _super);
4561
- function InputCheckboxMultiSelectComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4562
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4689
+ function InputCheckboxMultiSelectComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4690
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4563
4691
  _this.formComponent = formComponent;
4564
4692
  _this.changeDetector = changeDetector;
4693
+ _this.componentFactoryResolver = componentFactoryResolver;
4565
4694
  _this.formUserChangeListener = formUserChangeListener;
4566
4695
  _this.ngZoneWrapper = ngZoneWrapper;
4567
4696
  _this.elementRef = elementRef;
@@ -4571,16 +4700,6 @@
4571
4700
  InputCheckboxMultiSelectComponent.prototype.showClass = function () {
4572
4701
  return true;
4573
4702
  };
4574
- InputCheckboxMultiSelectComponent.prototype.ngOnDestroy = function () {
4575
- this.elementRef = undefined;
4576
- _super.prototype.ngOnDestroy.call(this);
4577
- };
4578
- InputCheckboxMultiSelectComponent.prototype.ngOnInit = function () {
4579
- _super.prototype.ngOnInit.call(this);
4580
- };
4581
- InputCheckboxMultiSelectComponent.prototype.ngAfterViewInit = function () {
4582
- _super.prototype.ngAfterViewInit.call(this);
4583
- };
4584
4703
  return InputCheckboxMultiSelectComponent;
4585
4704
  }(BaseInputComponent));
4586
4705
  InputCheckboxMultiSelectComponent.decorators = [
@@ -4598,6 +4717,7 @@
4598
4717
  InputCheckboxMultiSelectComponent.ctorParameters = function () { return [
4599
4718
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4600
4719
  { type: core.ChangeDetectorRef },
4720
+ { type: core.ComponentFactoryResolver },
4601
4721
  { type: FormInputUserModelChangeListenerService },
4602
4722
  { type: NgZoneWrapperService },
4603
4723
  { type: core.ElementRef }
@@ -4633,30 +4753,22 @@
4633
4753
 
4634
4754
  var InputComboBoxComponent = /** @class */ (function (_super) {
4635
4755
  __extends(InputComboBoxComponent, _super);
4636
- function InputComboBoxComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4637
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4756
+ function InputComboBoxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4757
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4638
4758
  _this.formComponent = formComponent;
4639
4759
  _this.changeDetector = changeDetector;
4760
+ _this.componentFactoryResolver = componentFactoryResolver;
4640
4761
  _this.formUserChangeListener = formUserChangeListener;
4641
4762
  _this.ngZoneWrapper = ngZoneWrapper;
4642
4763
  _this.elementRef = elementRef;
4643
4764
  _this.shopPopup = true;
4765
+ _this.customHeight = true;
4644
4766
  _super.prototype._markAsOnPush.call(_this);
4645
4767
  return _this;
4646
4768
  }
4647
4769
  InputComboBoxComponent.prototype.showClass = function () {
4648
4770
  return true;
4649
4771
  };
4650
- InputComboBoxComponent.prototype.ngOnDestroy = function () {
4651
- this.elementRef = undefined;
4652
- _super.prototype.ngOnDestroy.call(this);
4653
- };
4654
- InputComboBoxComponent.prototype.ngOnInit = function () {
4655
- _super.prototype.ngOnInit.call(this);
4656
- };
4657
- InputComboBoxComponent.prototype.ngAfterViewInit = function () {
4658
- _super.prototype.ngAfterViewInit.call(this);
4659
- };
4660
4772
  InputComboBoxComponent.prototype.onFocus = function () {
4661
4773
  if (this.shopPopup && this.model === undefined) {
4662
4774
  this.combo.showPopup();
@@ -4667,30 +4779,31 @@
4667
4779
  InputComboBoxComponent.decorators = [
4668
4780
  { type: core.Component, args: [{
4669
4781
  selector: "co-input-combo-box",
4670
- 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 ",
4782
+ 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 ",
4671
4783
  providers: [{
4672
4784
  provide: COMPONENT_INTERFACE_NAME,
4673
4785
  useExisting: core.forwardRef(function () { return InputComboBoxComponent; })
4674
4786
  }],
4675
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4676
4787
  encapsulation: core.ViewEncapsulation.None
4677
4788
  },] }
4678
4789
  ];
4679
4790
  InputComboBoxComponent.ctorParameters = function () { return [
4680
4791
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4681
4792
  { type: core.ChangeDetectorRef },
4793
+ { type: core.ComponentFactoryResolver },
4682
4794
  { type: FormInputUserModelChangeListenerService },
4683
4795
  { type: NgZoneWrapperService },
4684
4796
  { type: core.ElementRef }
4685
4797
  ]; };
4686
4798
  InputComboBoxComponent.propDecorators = {
4687
4799
  combo: [{ type: core.ViewChild, args: ["combo",] }],
4688
- source: [{ type: core.Input }],
4800
+ collection: [{ type: core.Input }],
4689
4801
  fields: [{ type: core.Input }],
4690
4802
  selected: [{ type: core.Input }],
4691
4803
  placeholder: [{ type: core.Input }],
4692
4804
  shopPopup: [{ type: core.Input }],
4693
- showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }]
4805
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-combo-box",] }],
4806
+ customHeight: [{ type: core.HostBinding, args: ["class.custom-height",] }]
4694
4807
  };
4695
4808
 
4696
4809
  var InputComboBoxModule = /** @class */ (function () {
@@ -4715,11 +4828,12 @@
4715
4828
 
4716
4829
  var InputDatePickerComponent = /** @class */ (function (_super) {
4717
4830
  __extends(InputDatePickerComponent, _super);
4718
- function InputDatePickerComponent(iconCacheService, formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
4719
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4720
- _this.iconCacheService = iconCacheService;
4831
+ function InputDatePickerComponent(formComponent, iconCacheService, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
4832
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
4721
4833
  _this.formComponent = formComponent;
4834
+ _this.iconCacheService = iconCacheService;
4722
4835
  _this.changeDetector = changeDetector;
4836
+ _this.componentFactoryResolver = componentFactoryResolver;
4723
4837
  _this.formUserChangeListener = formUserChangeListener;
4724
4838
  _this.ngZoneWrapper = ngZoneWrapper;
4725
4839
  _this.elementRef = elementRef;
@@ -4768,18 +4882,18 @@
4768
4882
  InputDatePickerComponent.decorators = [
4769
4883
  { type: core.Component, args: [{
4770
4884
  selector: "co-input-date",
4771
- 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 ",
4885
+ 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 ",
4772
4886
  providers: [{
4773
4887
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputDatePickerComponent; })
4774
4888
  }],
4775
- changeDetection: core.ChangeDetectionStrategy.OnPush,
4776
4889
  encapsulation: core.ViewEncapsulation.None
4777
4890
  },] }
4778
4891
  ];
4779
4892
  InputDatePickerComponent.ctorParameters = function () { return [
4780
- { type: IconCacheService },
4781
4893
  { type: FormComponent, decorators: [{ type: core.Optional }] },
4894
+ { type: IconCacheService },
4782
4895
  { type: core.ChangeDetectorRef },
4896
+ { type: core.ComponentFactoryResolver },
4783
4897
  { type: FormInputUserModelChangeListenerService },
4784
4898
  { type: NgZoneWrapperService },
4785
4899
  { type: core.ElementRef }
@@ -5148,122 +5262,56 @@
5148
5262
  KeyboardCode.NumpadNine
5149
5263
  ];
5150
5264
 
5151
- var InputTextType;
5152
- (function (InputTextType) {
5153
- InputTextType["Text"] = "text";
5154
- InputTextType["Email"] = "email";
5155
- })(InputTextType || (InputTextType = {}));
5156
-
5157
- var FloatLabelTypeEnum;
5158
- (function (FloatLabelTypeEnum) {
5159
- FloatLabelTypeEnum["Never"] = "Never";
5160
- FloatLabelTypeEnum["Always"] = "Always";
5161
- FloatLabelTypeEnum["Auto"] = "Auto";
5162
- })(FloatLabelTypeEnum || (FloatLabelTypeEnum = {}));
5163
-
5164
5265
  var InputTextComponent = /** @class */ (function (_super) {
5165
5266
  __extends(InputTextComponent, _super);
5166
- function InputTextComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
5167
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5267
+ function InputTextComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5268
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5168
5269
  _this.formComponent = formComponent;
5169
5270
  _this.changeDetector = changeDetector;
5271
+ _this.componentFactoryResolver = componentFactoryResolver;
5170
5272
  _this.formUserChangeListener = formUserChangeListener;
5171
5273
  _this.ngZoneWrapper = ngZoneWrapper;
5172
5274
  _this.elementRef = elementRef;
5173
- _this.floatLabelType = FloatLabelTypeEnum.Auto;
5275
+ _this.Icons = exports.CoreComponentsIcon;
5174
5276
  _this.placeholder = "";
5175
5277
  _this.type = "text";
5176
5278
  _this.showClearButton = undefined;
5177
- _this.alwaysShowClearIcon = false;
5178
- _this.alwaysShowClearIconOnFocus = false;
5179
- _this.noEmailValidation = false;
5180
- _this.extraIconOnFocusOnly = false;
5181
- _this.inputType = InputTextType.Text;
5182
- _this.blur = new core.EventEmitter();
5183
- _this.inputClick = new core.EventEmitter();
5184
- _this.extraIconClick = new core.EventEmitter();
5185
- _this.clearIconClick = new core.EventEmitter();
5186
- _this.validEmailClick = false;
5187
- _this.Icons = exports.CoreComponentsIcon;
5279
+ _this.hasOwnLabel = true;
5188
5280
  _super.prototype._markAsOnPush.call(_this);
5189
5281
  return _this;
5190
5282
  }
5191
5283
  InputTextComponent.prototype.showClass = function () {
5192
5284
  return true;
5193
5285
  };
5194
- InputTextComponent.prototype.ngOnDestroy = function () {
5195
- this.elementRef = undefined;
5196
- _super.prototype.ngOnDestroy.call(this);
5197
- };
5198
- InputTextComponent.prototype.ngOnInit = function () {
5199
- _super.prototype.ngOnInit.call(this);
5200
- };
5201
- InputTextComponent.prototype.ngAfterViewInit = function () {
5202
- if (this.textBox) {
5203
- this.changeDetector.detectChanges();
5204
- }
5205
- _super.prototype.ngAfterViewInit.call(this);
5206
- };
5207
- InputTextComponent.prototype.setSelectionRange = function (range) {
5208
- if (range && this.input) {
5209
- this.input.setSelectionRange(range.lowerBound, range.upperBound);
5210
- }
5211
- };
5212
5286
  return InputTextComponent;
5213
5287
  }(BaseInputComponent));
5214
5288
  InputTextComponent.decorators = [
5215
5289
  { type: core.Component, args: [{
5216
- selector: "co-input-text, co-input-email, co-input-wizard",
5217
- 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 ",
5290
+ selector: "co-input-text",
5291
+ 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 ",
5218
5292
  providers: [{
5219
5293
  provide: COMPONENT_INTERFACE_NAME,
5220
5294
  useExisting: core.forwardRef(function () { return InputTextComponent; })
5221
5295
  }],
5222
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5223
5296
  encapsulation: core.ViewEncapsulation.None
5224
5297
  },] }
5225
5298
  ];
5226
5299
  InputTextComponent.ctorParameters = function () { return [
5227
5300
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5228
5301
  { type: core.ChangeDetectorRef },
5302
+ { type: core.ComponentFactoryResolver },
5229
5303
  { type: FormInputUserModelChangeListenerService },
5230
5304
  { type: NgZoneWrapperService },
5231
5305
  { type: core.ElementRef }
5232
5306
  ]; };
5233
5307
  InputTextComponent.propDecorators = {
5234
- textBox: [{ type: core.ViewChild, args: [ej2AngularInputs.TextBoxComponent,] }],
5235
- floatLabelType: [{ type: core.Input }],
5236
5308
  placeholder: [{ type: core.Input }],
5237
5309
  type: [{ type: core.Input }],
5238
5310
  showClearButton: [{ type: core.Input }],
5239
- cssClass: [{ type: core.Input }],
5240
- alwaysShowClearIcon: [{ type: core.Input }],
5241
- alwaysShowClearIconOnFocus: [{ type: core.Input }],
5242
- noEmailValidation: [{ type: core.Input }],
5243
- extraIcon: [{ type: core.Input }],
5244
- extraIconOnFocusOnly: [{ type: core.Input }],
5245
5311
  keyDownWhiteList: [{ type: core.Input }],
5246
- extraIconClass: [{ type: core.Input }],
5247
- inputType: [{ type: core.Input }],
5248
- ngModelOptions: [{ type: core.Input }],
5249
- blur: [{ type: core.Output }],
5250
- inputClick: [{ type: core.Output }],
5251
- extraIconClick: [{ type: core.Output }],
5252
- clearIconClick: [{ type: core.Output }],
5253
- showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }]
5254
- };
5255
- __decorate([
5256
- InputBoolean()
5257
- ], InputTextComponent.prototype, "alwaysShowClearIcon", void 0);
5258
- __decorate([
5259
- InputBoolean()
5260
- ], InputTextComponent.prototype, "alwaysShowClearIconOnFocus", void 0);
5261
- __decorate([
5262
- InputBoolean()
5263
- ], InputTextComponent.prototype, "noEmailValidation", void 0);
5264
- __decorate([
5265
- InputBoolean()
5266
- ], InputTextComponent.prototype, "extraIconOnFocusOnly", void 0);
5312
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-text",] }],
5313
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }]
5314
+ };
5267
5315
 
5268
5316
  // Input values for 'buttonShowMode' of NumberPickerComponent.
5269
5317
  var InputNumberPickerButtonShowMode;
@@ -5276,12 +5324,12 @@
5276
5324
  // A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
5277
5325
  var InputNumberPickerComponent = /** @class */ (function (_super) {
5278
5326
  __extends(InputNumberPickerComponent, _super);
5279
- function InputNumberPickerComponent(iconCacheService, _ngZone, changeDetector, formUserChangeListener) {
5280
- var _this = _super.call(this, changeDetector, formUserChangeListener) || this;
5327
+ function InputNumberPickerComponent(formComponent, iconCacheService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener) {
5328
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener) || this;
5329
+ _this.formComponent = formComponent;
5281
5330
  _this.iconCacheService = iconCacheService;
5282
5331
  _this._ngZone = _ngZone;
5283
- _this.floatLabelType = FloatLabelTypeEnum.Never;
5284
- _this.cssClass = "e-outline";
5332
+ _this.componentFactoryResolver = componentFactoryResolver;
5285
5333
  _this.minusIcon = exports.CoreComponentsIcon.MinusSimple;
5286
5334
  _this.plusIcon = exports.CoreComponentsIcon.PlusSimple;
5287
5335
  // Whether to show buttons 'always', 'onFocusOnly', or 'never'
@@ -5292,6 +5340,8 @@
5292
5340
  _this.modelChange = new core.EventEmitter();
5293
5341
  _this.myKeyDownWhiteList = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;
5294
5342
  _this.numberLogic = new BoundsConstrainedNumberValue();
5343
+ _this.minSelected = false;
5344
+ _this.plusSelected = false;
5295
5345
  _this._numberInputHasFocus = false;
5296
5346
  _this._delayBeforeStartAutoCountMs = 666;
5297
5347
  // the 'speed gears' for auto counting
@@ -5369,6 +5419,9 @@
5369
5419
  enumerable: false,
5370
5420
  configurable: true
5371
5421
  });
5422
+ InputNumberPickerComponent.prototype.showClass = function () {
5423
+ return true;
5424
+ };
5372
5425
  InputNumberPickerComponent.prototype.ngOnInit = function () {
5373
5426
  this.numberLogic.init(true);
5374
5427
  this._updateButtonsShowState();
@@ -5393,6 +5446,12 @@
5393
5446
  }, _this._msDoStep);
5394
5447
  });
5395
5448
  };
5449
+ InputNumberPickerComponent.prototype.handleKeyDown = function (event) {
5450
+ // event.preventDefault();
5451
+ if (this.myKeyDownWhiteList.find(function (k) { return k === event.keyCode; }) === undefined) {
5452
+ return false;
5453
+ }
5454
+ };
5396
5455
  // Note: recursive through setTimeout().
5397
5456
  InputNumberPickerComponent.prototype.doDecrementAuto = function () {
5398
5457
  var _this = this;
@@ -5408,6 +5467,8 @@
5408
5467
  });
5409
5468
  };
5410
5469
  InputNumberPickerComponent.prototype.stopAutoCounting = function () {
5470
+ this.minSelected = false;
5471
+ this.plusSelected = false;
5411
5472
  this._mayAutoCount = false;
5412
5473
  this._stepFactor = this._stepFactors[0];
5413
5474
  };
@@ -5426,6 +5487,11 @@
5426
5487
  };
5427
5488
  InputNumberPickerComponent.prototype.onPlusMouseDown = function (event) {
5428
5489
  var _this = this;
5490
+ if (this.readonly) {
5491
+ event.preventDefault();
5492
+ return;
5493
+ }
5494
+ this.plusSelected = true;
5429
5495
  this._markedAsUserTouched = true;
5430
5496
  // keeps focus on input text instead of button
5431
5497
  event.preventDefault();
@@ -5441,6 +5507,11 @@
5441
5507
  };
5442
5508
  InputNumberPickerComponent.prototype.onMinusMouseDown = function (event) {
5443
5509
  var _this = this;
5510
+ if (this.readonly) {
5511
+ event.preventDefault();
5512
+ return;
5513
+ }
5514
+ this.minSelected = true;
5444
5515
  this._markedAsUserTouched = true;
5445
5516
  // keeps focus on input text instead of button
5446
5517
  event.preventDefault();
@@ -5502,24 +5573,23 @@
5502
5573
  InputNumberPickerComponent.decorators = [
5503
5574
  { type: core.Component, args: [{
5504
5575
  selector: 'co-input-number-picker',
5505
- template: "\n <co-button *ngIf=\"showButtons\" class=\"plus-operator\" [iconData]=\"iconCacheService.getIcon(plusIcon)\" (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n <co-input-text\n [floatLabelType]=\"floatLabelType\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [noValidation]=\"noValidation\"\n [model]=\"numberLogic.valueAsSting\"\n [cssClass]=\"cssClass\"\n [ngModelOptions]=\"ngModelOptions\"\n [keyDownWhiteList]=\"myKeyDownWhiteList\"\n (focus)=\"onNumberInputFocus()\"\n (blur)=\"onNumberInputBlur()\"\n ></co-input-text>\n\n <co-button *ngIf=\"showButtons\" class=\"minus-operator\" [iconData]=\"iconCacheService.getIcon(minusIcon)\" (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n ",
5506
- encapsulation: core.ViewEncapsulation.None,
5576
+ template: "\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator circle\" [class.select]=\"minSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [ngModel]=\"numberLogic.valueAsSting\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (keydown)=\"handleKeyDown($event)\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator circle\" [class.select]=\"plusSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n ",
5507
5577
  providers: [{
5508
5578
  provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputNumberPickerComponent; })
5509
5579
  }],
5510
5580
  changeDetection: core.ChangeDetectionStrategy.OnPush,
5511
- styles: ["@font-face{font-family:iOneOpenSans;font-style:normal;font-weight:400;src:url(data:application/font-woff2;charset=utf-8;base64,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) format(\"woff2\")}@font-face{font-family:iOneOpenSans;font-style:normal;font-weight:700;src:url(data:application/font-woff2;charset=utf-8;base64,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) format(\"woff2\")}:host{position:relative;display:flex;flex-direction:column;align-items:center!important;justify-content:center!important}:host.horizontal{display:flex;flex-direction:row-reverse}:host.show-buttons-on-focus-only co-button{position:relative;z-index:20;position:absolute!important;margin-left:auto}:host.show-buttons-on-focus-only co-button.plus-operator{top:-38px}:host.show-buttons-on-focus-only co-button.minus-operator{bottom:-38px}:host.has-label input-text ::ng-deep input{position:relative;bottom:2px;text-align:left}:host co-input-text{width:60px}:host co-button{font-size:22px;margin:5px;height:26px;padding:0}\n"]
5581
+ encapsulation: core.ViewEncapsulation.None
5512
5582
  },] }
5513
5583
  ];
5514
5584
  InputNumberPickerComponent.ctorParameters = function () { return [
5585
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5515
5586
  { type: IconCacheService, decorators: [{ type: core.Inject, args: [IconCacheService,] }] },
5516
5587
  { type: core.NgZone },
5588
+ { type: core.ComponentFactoryResolver },
5517
5589
  { type: core.ChangeDetectorRef },
5518
5590
  { type: FormInputUserModelChangeListenerService }
5519
5591
  ]; };
5520
5592
  InputNumberPickerComponent.propDecorators = {
5521
- floatLabelType: [{ type: core.Input }],
5522
- cssClass: [{ type: core.Input }],
5523
5593
  model: [{ type: core.Input }],
5524
5594
  min: [{ type: core.Input }],
5525
5595
  step: [{ type: core.Input }],
@@ -5533,12 +5603,32 @@
5533
5603
  modelChange: [{ type: core.Output }],
5534
5604
  inputTextComp: [{ type: core.ViewChild, args: [InputTextComponent, { static: true },] }],
5535
5605
  showButtonsOnFocusOnly: [{ type: core.HostBinding, args: ["class.show-buttons-on-focus-only",] }],
5536
- hasLabel: [{ type: core.HostBinding, args: ["class.has-label",] }]
5606
+ hasLabel: [{ type: core.HostBinding, args: ["class.has-label",] }],
5607
+ showClass: [{ type: core.HostBinding, args: ['class.co-input-number-picker',] }]
5537
5608
  };
5538
5609
  __decorate([
5539
5610
  InputBoolean()
5540
5611
  ], InputNumberPickerComponent.prototype, "noValidation", void 0);
5541
5612
 
5613
+ var ValidationErrorModule = /** @class */ (function () {
5614
+ function ValidationErrorModule() {
5615
+ }
5616
+ return ValidationErrorModule;
5617
+ }());
5618
+ ValidationErrorModule.decorators = [
5619
+ { type: core.NgModule, args: [{
5620
+ imports: [
5621
+ common.CommonModule
5622
+ ],
5623
+ declarations: [
5624
+ ValidationErrorComponent
5625
+ ],
5626
+ exports: [
5627
+ ValidationErrorComponent
5628
+ ]
5629
+ },] }
5630
+ ];
5631
+
5542
5632
  var InputTextModule = /** @class */ (function () {
5543
5633
  function InputTextModule() {
5544
5634
  }
@@ -5553,13 +5643,15 @@
5553
5643
  IconModule,
5554
5644
  AppendPipeModule,
5555
5645
  ej2AngularInputs.TextBoxAllModule,
5556
- ej2AngularInputs.NumericTextBoxModule
5646
+ ej2AngularInputs.NumericTextBoxModule,
5647
+ ValidationErrorModule
5557
5648
  ],
5558
- schemas: [
5559
- core.NO_ERRORS_SCHEMA
5649
+ declarations: [
5650
+ InputTextComponent
5560
5651
  ],
5561
- declarations: [InputTextComponent],
5562
- exports: [InputTextComponent]
5652
+ exports: [
5653
+ InputTextComponent
5654
+ ]
5563
5655
  },] }
5564
5656
  ];
5565
5657
 
@@ -5572,6 +5664,7 @@
5572
5664
  { type: core.NgModule, args: [{
5573
5665
  imports: [
5574
5666
  common.CommonModule,
5667
+ forms.FormsModule,
5575
5668
  ButtonModule,
5576
5669
  InputTextModule
5577
5670
  ],
@@ -5582,9 +5675,15 @@
5582
5675
 
5583
5676
  var InputRadioButtonComponent = /** @class */ (function (_super) {
5584
5677
  __extends(InputRadioButtonComponent, _super);
5585
- function InputRadioButtonComponent(formComponent, changeDetector, formUserChangeListener, ngZoneWrapper) {
5586
- var _this = _super.call(this, changeDetector, formUserChangeListener, ngZoneWrapper) || this;
5678
+ function InputRadioButtonComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5679
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5587
5680
  _this.formComponent = formComponent;
5681
+ _this.changeDetector = changeDetector;
5682
+ _this.componentFactoryResolver = componentFactoryResolver;
5683
+ _this.formUserChangeListener = formUserChangeListener;
5684
+ _this.ngZoneWrapper = ngZoneWrapper;
5685
+ _this.elementRef = elementRef;
5686
+ _super.prototype._markAsOnPush.call(_this);
5588
5687
  return _this;
5589
5688
  }
5590
5689
  InputRadioButtonComponent.prototype.showClass = function () {
@@ -5610,8 +5709,10 @@
5610
5709
  InputRadioButtonComponent.ctorParameters = function () { return [
5611
5710
  { type: FormComponent, decorators: [{ type: core.Optional }] },
5612
5711
  { type: core.ChangeDetectorRef },
5712
+ { type: core.ComponentFactoryResolver },
5613
5713
  { type: FormInputUserModelChangeListenerService },
5614
- { type: NgZoneWrapperService }
5714
+ { type: NgZoneWrapperService },
5715
+ { type: core.ElementRef }
5615
5716
  ]; };
5616
5717
  InputRadioButtonComponent.propDecorators = {
5617
5718
  value: [{ type: core.Input }],
@@ -5640,10 +5741,84 @@
5640
5741
  },] }
5641
5742
  ];
5642
5743
 
5744
+ var InputTextareaComponent = /** @class */ (function (_super) {
5745
+ __extends(InputTextareaComponent, _super);
5746
+ function InputTextareaComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5747
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5748
+ _this.formComponent = formComponent;
5749
+ _this.changeDetector = changeDetector;
5750
+ _this.componentFactoryResolver = componentFactoryResolver;
5751
+ _this.formUserChangeListener = formUserChangeListener;
5752
+ _this.ngZoneWrapper = ngZoneWrapper;
5753
+ _this.elementRef = elementRef;
5754
+ _this.placeholder = "";
5755
+ _this.hasOwnLabel = true;
5756
+ _this.customHeight = true;
5757
+ _super.prototype._markAsOnPush.call(_this);
5758
+ return _this;
5759
+ }
5760
+ InputTextareaComponent.prototype.showClass = function () {
5761
+ return true;
5762
+ };
5763
+ return InputTextareaComponent;
5764
+ }(BaseInputComponent));
5765
+ InputTextareaComponent.decorators = [
5766
+ { type: core.Component, args: [{
5767
+ selector: "co-input-textarea",
5768
+ 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 ",
5769
+ providers: [{
5770
+ provide: COMPONENT_INTERFACE_NAME,
5771
+ useExisting: core.forwardRef(function () { return InputTextareaComponent; })
5772
+ }],
5773
+ encapsulation: core.ViewEncapsulation.None
5774
+ },] }
5775
+ ];
5776
+ InputTextareaComponent.ctorParameters = function () { return [
5777
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5778
+ { type: core.ChangeDetectorRef },
5779
+ { type: core.ComponentFactoryResolver },
5780
+ { type: FormInputUserModelChangeListenerService },
5781
+ { type: NgZoneWrapperService },
5782
+ { type: core.ElementRef }
5783
+ ]; };
5784
+ InputTextareaComponent.propDecorators = {
5785
+ placeholder: [{ type: core.Input }],
5786
+ showClass: [{ type: core.HostBinding, args: ["class.co-input-textarea",] }],
5787
+ hasOwnLabel: [{ type: core.HostBinding, args: ["class.has-own-label",] }],
5788
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
5789
+ };
5790
+
5791
+ var InputTextareaModule = /** @class */ (function () {
5792
+ function InputTextareaModule() {
5793
+ }
5794
+ return InputTextareaModule;
5795
+ }());
5796
+ InputTextareaModule.decorators = [
5797
+ { type: core.NgModule, args: [{
5798
+ imports: [
5799
+ common.CommonModule,
5800
+ forms.FormsModule,
5801
+ ValidationErrorModule
5802
+ ],
5803
+ declarations: [
5804
+ InputTextareaComponent
5805
+ ],
5806
+ exports: [
5807
+ InputTextareaComponent
5808
+ ]
5809
+ },] }
5810
+ ];
5811
+
5643
5812
  var MultiSelectListComponent = /** @class */ (function (_super) {
5644
5813
  __extends(MultiSelectListComponent, _super);
5645
- function MultiSelectListComponent() {
5646
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
5814
+ function MultiSelectListComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
5815
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
5816
+ _this.formComponent = formComponent;
5817
+ _this.changeDetector = changeDetector;
5818
+ _this.componentFactoryResolver = componentFactoryResolver;
5819
+ _this.formUserChangeListener = formUserChangeListener;
5820
+ _this.ngZoneWrapper = ngZoneWrapper;
5821
+ _this.elementRef = elementRef;
5647
5822
  /**
5648
5823
  * In the form { text: 'name', value: 'id' }
5649
5824
  * Where 'text' is showing in the dropdown and 'id' used for the model binding
@@ -5651,6 +5826,7 @@
5651
5826
  _this.fields = {};
5652
5827
  _this.showSelectAll = true;
5653
5828
  _this.mode = "Default";
5829
+ _super.prototype._markAsOnPush.call(_this);
5654
5830
  return _this;
5655
5831
  }
5656
5832
  Object.defineProperty(MultiSelectListComponent.prototype, "showCheckbox", {
@@ -5665,12 +5841,20 @@
5665
5841
  MultiSelectListComponent.prototype.showClass = function () {
5666
5842
  return true;
5667
5843
  };
5844
+ MultiSelectListComponent.prototype.handleModelChange = function (val) {
5845
+ if (Array.isArray(val)) {
5846
+ if (val.length < 1) {
5847
+ val = undefined;
5848
+ }
5849
+ }
5850
+ this.modelChange.next(val);
5851
+ };
5668
5852
  return MultiSelectListComponent;
5669
5853
  }(BaseInputComponent));
5670
5854
  MultiSelectListComponent.decorators = [
5671
5855
  { type: core.Component, args: [{
5672
5856
  selector: "co-multi-select-list",
5673
- 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 ",
5857
+ 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 ",
5674
5858
  providers: [
5675
5859
  ej2AngularDropdowns.CheckBoxSelectionService,
5676
5860
  {
@@ -5678,14 +5862,21 @@
5678
5862
  useExisting: core.forwardRef(function () { return MultiSelectListComponent; })
5679
5863
  }
5680
5864
  ],
5681
- changeDetection: core.ChangeDetectionStrategy.OnPush,
5682
5865
  encapsulation: core.ViewEncapsulation.None
5683
5866
  },] }
5684
5867
  ];
5868
+ MultiSelectListComponent.ctorParameters = function () { return [
5869
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
5870
+ { type: core.ChangeDetectorRef },
5871
+ { type: core.ComponentFactoryResolver },
5872
+ { type: FormInputUserModelChangeListenerService },
5873
+ { type: NgZoneWrapperService },
5874
+ { type: core.ElementRef }
5875
+ ]; };
5685
5876
  MultiSelectListComponent.propDecorators = {
5686
5877
  collection: [{ type: core.Input }],
5687
5878
  fields: [{ type: core.Input }],
5688
- placeHolder: [{ type: core.Input }],
5879
+ placeholder: [{ type: core.Input }],
5689
5880
  itemTemplate: [{ type: core.Input }],
5690
5881
  headerTemplate: [{ type: core.Input }],
5691
5882
  valueTemplate: [{ type: core.Input }],
@@ -5705,7 +5896,8 @@
5705
5896
  imports: [
5706
5897
  BaseModule,
5707
5898
  common.CommonModule,
5708
- ej2AngularDropdowns.MultiSelectModule
5899
+ ej2AngularDropdowns.MultiSelectModule,
5900
+ forms.FormsModule
5709
5901
  ],
5710
5902
  declarations: [MultiSelectListComponent],
5711
5903
  exports: [MultiSelectListComponent]
@@ -7194,6 +7386,623 @@
7194
7386
  },] }
7195
7387
  ];
7196
7388
 
7389
+ ej2AngularDropdowns.ListBoxComponent.Inject(ej2AngularDropdowns.CheckBoxSelection);
7390
+ var InputListboxComponent = /** @class */ (function (_super) {
7391
+ __extends(InputListboxComponent, _super);
7392
+ function InputListboxComponent(formComponent, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) {
7393
+ var _this = _super.call(this, changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef) || this;
7394
+ _this.formComponent = formComponent;
7395
+ _this.changeDetector = changeDetector;
7396
+ _this.componentFactoryResolver = componentFactoryResolver;
7397
+ _this.formUserChangeListener = formUserChangeListener;
7398
+ _this.ngZoneWrapper = ngZoneWrapper;
7399
+ _this.elementRef = elementRef;
7400
+ // public set model(value: string[] | number[]) {
7401
+ // this._model = value;
7402
+ // }
7403
+ _this.collection = [];
7404
+ _this.customHeight = true;
7405
+ _this.selectionSettings = { mode: 'Multiple' };
7406
+ _super.prototype._markAsOnPush.call(_this);
7407
+ return _this;
7408
+ }
7409
+ Object.defineProperty(InputListboxComponent.prototype, "singleSelect", {
7410
+ set: function (value) {
7411
+ if (value) {
7412
+ this.selectionSettings.mode = 'Single';
7413
+ }
7414
+ },
7415
+ enumerable: false,
7416
+ configurable: true
7417
+ });
7418
+ Object.defineProperty(InputListboxComponent.prototype, "showCheckbox", {
7419
+ set: function (value) {
7420
+ if (value) {
7421
+ this.selectionSettings.showCheckbox = true;
7422
+ }
7423
+ },
7424
+ enumerable: false,
7425
+ configurable: true
7426
+ });
7427
+ Object.defineProperty(InputListboxComponent.prototype, "showSelectAll", {
7428
+ set: function (value) {
7429
+ if (value) {
7430
+ this.selectionSettings.showSelectAll = true;
7431
+ }
7432
+ },
7433
+ enumerable: false,
7434
+ configurable: true
7435
+ });
7436
+ InputListboxComponent.prototype.showClass = function () {
7437
+ return true;
7438
+ };
7439
+ return InputListboxComponent;
7440
+ }(BaseInputComponent));
7441
+ InputListboxComponent.decorators = [
7442
+ { type: core.Component, args: [{
7443
+ selector: 'co-input-listbox',
7444
+ 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 ",
7445
+ providers: [{
7446
+ provide: COMPONENT_INTERFACE_NAME, useExisting: core.forwardRef(function () { return InputListboxComponent; })
7447
+ }],
7448
+ encapsulation: core.ViewEncapsulation.None
7449
+ },] }
7450
+ ];
7451
+ InputListboxComponent.ctorParameters = function () { return [
7452
+ { type: FormComponent, decorators: [{ type: core.Optional }] },
7453
+ { type: core.ChangeDetectorRef },
7454
+ { type: core.ComponentFactoryResolver },
7455
+ { type: FormInputUserModelChangeListenerService },
7456
+ { type: NgZoneWrapperService },
7457
+ { type: core.ElementRef }
7458
+ ]; };
7459
+ InputListboxComponent.propDecorators = {
7460
+ placeholder: [{ type: core.Input }],
7461
+ value: [{ type: core.Input }],
7462
+ collection: [{ type: core.Input }],
7463
+ fields: [{ type: core.Input }],
7464
+ singleSelect: [{ type: core.Input }],
7465
+ showCheckbox: [{ type: core.Input }],
7466
+ showSelectAll: [{ type: core.Input }],
7467
+ showClass: [{ type: core.HostBinding, args: ['class.co-input-listbox',] }],
7468
+ customHeight: [{ type: core.HostBinding, args: ['class.custom-height',] }]
7469
+ };
7470
+
7471
+ ej2Base.enableRipple(true);
7472
+ var InputListboxModule = /** @class */ (function () {
7473
+ function InputListboxModule() {
7474
+ }
7475
+ return InputListboxModule;
7476
+ }());
7477
+ InputListboxModule.decorators = [
7478
+ { type: core.NgModule, args: [{
7479
+ imports: [
7480
+ common.CommonModule,
7481
+ forms.FormsModule,
7482
+ ej2AngularDropdowns.ListBoxModule
7483
+ ],
7484
+ declarations: [
7485
+ InputListboxComponent
7486
+ ],
7487
+ exports: [
7488
+ InputListboxComponent
7489
+ ]
7490
+ },] }
7491
+ ];
7492
+
7493
+ exports.ColumnAlign = void 0;
7494
+ (function (ColumnAlign) {
7495
+ ColumnAlign["Left"] = "left-align";
7496
+ ColumnAlign["Center"] = "center-align";
7497
+ ColumnAlign["Right"] = "right-align";
7498
+ })(exports.ColumnAlign || (exports.ColumnAlign = {}));
7499
+ var SimpleGridColumnDirective = /** @class */ (function () {
7500
+ function SimpleGridColumnDirective() {
7501
+ this.resizable = true;
7502
+ }
7503
+ Object.defineProperty(SimpleGridColumnDirective.prototype, "template", {
7504
+ get: function () {
7505
+ return this._template;
7506
+ },
7507
+ set: function (template) {
7508
+ if (template) {
7509
+ this._template = template;
7510
+ }
7511
+ },
7512
+ enumerable: false,
7513
+ configurable: true
7514
+ });
7515
+ return SimpleGridColumnDirective;
7516
+ }());
7517
+ SimpleGridColumnDirective._MinManualResizeWidthPx = 50;
7518
+ SimpleGridColumnDirective.decorators = [
7519
+ { type: core.Directive, args: [{
7520
+ selector: "co-simple-grid-column"
7521
+ },] }
7522
+ ];
7523
+ SimpleGridColumnDirective.propDecorators = {
7524
+ template: [{ type: core.ContentChild, args: [core.TemplateRef,] }],
7525
+ headerText: [{ type: core.Input }],
7526
+ field: [{ type: core.Input }],
7527
+ textAlign: [{ type: core.Input }],
7528
+ format: [{ type: core.Input }],
7529
+ resizable: [{ type: core.Input }],
7530
+ width: [{ type: core.Input }]
7531
+ };
7532
+
7533
+ var SimpleGridComponent = /** @class */ (function () {
7534
+ function SimpleGridComponent() {
7535
+ this.defaultTextAlign = exports.ColumnAlign.Left;
7536
+ this.data = [];
7537
+ this.dragDropEnabled = false;
7538
+ /**
7539
+ * Should component emit drag and drop actions instead of handle
7540
+ * (update collection) by itself
7541
+ */
7542
+ this.emitDragDrop = false;
7543
+ this.onDrop = new core.EventEmitter();
7544
+ this.columns = [];
7545
+ }
7546
+ Object.defineProperty(SimpleGridComponent.prototype, "content", {
7547
+ set: function (columnComponents) {
7548
+ this.columns = columnComponents.toArray();
7549
+ },
7550
+ enumerable: false,
7551
+ configurable: true
7552
+ });
7553
+ SimpleGridComponent.prototype.showClass = function () {
7554
+ return true;
7555
+ };
7556
+ SimpleGridComponent.prototype.handleMouseMove = function (event) {
7557
+ if (event.buttons === 1 && this._columnForResize) {
7558
+ if (!this._columnForResize.width) {
7559
+ var rect = event.target.parentElement.getBoundingClientRect();
7560
+ this._columnForResize.width = rect.width;
7561
+ }
7562
+ this._columnForResize.width += event.movementX;
7563
+ }
7564
+ };
7565
+ SimpleGridComponent.prototype.handleMouseUp = function (event) {
7566
+ this._columnForResize = undefined;
7567
+ };
7568
+ SimpleGridComponent.prototype.handleSizerMouseDown = function (event, column) {
7569
+ this._columnForResize = column;
7570
+ };
7571
+ SimpleGridComponent.prototype.handleCanDragDrop = function (drag, drop) {
7572
+ return true;
7573
+ };
7574
+ SimpleGridComponent.prototype.handleDrop = function (event) {
7575
+ try {
7576
+ var from = event.previousIndex;
7577
+ var to = event.currentIndex;
7578
+ if (from === to) {
7579
+ return;
7580
+ }
7581
+ if (this.emitDragDrop) {
7582
+ this.onDrop.next({ from: from, to: to });
7583
+ }
7584
+ else {
7585
+ dragDrop.moveItemInArray(this.data, from, to);
7586
+ }
7587
+ }
7588
+ catch (e) {
7589
+ console.error(e);
7590
+ }
7591
+ };
7592
+ return SimpleGridComponent;
7593
+ }());
7594
+ SimpleGridComponent.decorators = [
7595
+ { type: core.Component, args: [{
7596
+ selector: "co-simple-grid",
7597
+ template: "\n <div class=\"simple-grid-column-header-wrapper\">\n <div class=\"simple-grid-column-header\" *ngFor=\"let column of columns; let index = index\"\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\n <div class=\"simple-grid-column-header-label\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\n [textContent]=\"column.headerText\"\n ></div>\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer\"\n (mousedown)=\"handleSizerMouseDown($event, column)\"\n ></div>\n </div>\n </div>\n <div cdkDropListGroup class=\"drop-list-group\">\n <div #dropList cdkDropList cdkDropListOrientation=\"vertical\"\n class=\"simple-grid-drag-drop-list\"\n [cdkDropListDisabled]=\"!dragDropEnabled\"\n [cdkDropListData]=\"data\"\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\n (cdkDropListDropped)=\"handleDrop($event)\"\n >\n <div class=\"simple-grid-row\" *ngFor=\"let row of data\" cdkDrag>\n <div class=\"simple-grid-column-cell\" *ngFor=\"let column of columns\"\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\n <div class=\"simple-grid-column-cell-value\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\n <ng-container *ngIf=\"column.template\">\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\n </ng-container>\n <div *ngIf=\"!column.template\" [textContent]=\"row[column.field]\"></div>\n </div>\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\n </div>\n </div>\n </div>\n </div>\n ",
7598
+ changeDetection: core.ChangeDetectionStrategy.OnPush,
7599
+ encapsulation: core.ViewEncapsulation.None
7600
+ },] }
7601
+ ];
7602
+ SimpleGridComponent.propDecorators = {
7603
+ content: [{ type: core.ContentChildren, args: [SimpleGridColumnDirective,] }],
7604
+ data: [{ type: core.Input }],
7605
+ dragDropEnabled: [{ type: core.Input }],
7606
+ emitDragDrop: [{ type: core.Input }],
7607
+ onDrop: [{ type: core.Output }],
7608
+ showClass: [{ type: core.HostBinding, args: ["class.co-simple-grid",] }],
7609
+ handleMouseMove: [{ type: core.HostListener, args: ['document:mousemove', ['$event'],] }],
7610
+ handleMouseUp: [{ type: core.HostListener, args: ['document:mouseup', ['$event'],] }]
7611
+ };
7612
+
7613
+ var SimpleGridModule = /** @class */ (function () {
7614
+ function SimpleGridModule() {
7615
+ }
7616
+ return SimpleGridModule;
7617
+ }());
7618
+ SimpleGridModule.decorators = [
7619
+ { type: core.NgModule, args: [{
7620
+ imports: [
7621
+ common.CommonModule,
7622
+ dragDrop.DragDropModule
7623
+ ],
7624
+ declarations: [
7625
+ SimpleGridComponent,
7626
+ SimpleGridColumnDirective
7627
+ ],
7628
+ exports: [
7629
+ SimpleGridComponent,
7630
+ SimpleGridColumnDirective
7631
+ ]
7632
+ },] }
7633
+ ];
7634
+
7635
+ var CarouselItem = /** @class */ (function () {
7636
+ function CarouselItem(options, index, onClick) {
7637
+ var _this = this;
7638
+ var _a, _b;
7639
+ this._options = options || {};
7640
+ this.index = index;
7641
+ var width = ((_a = this._options.tileSize) === null || _a === void 0 ? void 0 : _a.x) || 0;
7642
+ var height = ((_b = this._options.tileSize) === null || _b === void 0 ? void 0 : _b.y) || 0;
7643
+ this._element = document.createElement('div');
7644
+ // this._element.style.backgroundColor = this._options.tileBackgroundColor;
7645
+ this._element.style.width = width + "px";
7646
+ this._element.style.height = height + "px";
7647
+ this._element.addEventListener("click", function () {
7648
+ if (onClick) {
7649
+ onClick(_this.index);
7650
+ }
7651
+ }, false);
7652
+ this.object = new CSS3DRenderer.CSS3DObject(this._element);
7653
+ var geometry = new three.PlaneBufferGeometry(width, height);
7654
+ this.mesh = new three.Mesh(geometry, options.tileMaterial);
7655
+ this.mesh.castShadow = true;
7656
+ }
7657
+ CarouselItem.prototype.setPosition = function (position) {
7658
+ if (this.mesh) {
7659
+ this.mesh.position.copy(position);
7660
+ }
7661
+ if (this.object) {
7662
+ this.object.position.copy(position);
7663
+ }
7664
+ };
7665
+ CarouselItem.prototype.setContent = function (content) {
7666
+ if (this._element) {
7667
+ // remove any exising tile content before setting new content
7668
+ while (this._element.lastElementChild) {
7669
+ this._element.removeChild(this._element.lastElementChild);
7670
+ }
7671
+ try {
7672
+ this._element.appendChild(content);
7673
+ }
7674
+ catch (err) {
7675
+ }
7676
+ }
7677
+ };
7678
+ CarouselItem.prototype.setVisible = function (visible) {
7679
+ if (this.mesh) {
7680
+ this.mesh.visible = visible;
7681
+ }
7682
+ if (this.object) {
7683
+ this.object.visible = visible;
7684
+ }
7685
+ };
7686
+ return CarouselItem;
7687
+ }());
7688
+
7689
+ var Carousel3dComponent = /** @class */ (function () {
7690
+ function Carousel3dComponent() {
7691
+ this.cameraHeight = 50;
7692
+ this.shadow = false;
7693
+ this.selectedIndex = 0;
7694
+ this.indexSelected = new core.EventEmitter();
7695
+ this._cameraZoom = 0;
7696
+ this._backgroundColor = 0xffffff;
7697
+ this._ambientLight = true;
7698
+ this._tileSize = new three.Vector2();
7699
+ this._tileMargin = 20;
7700
+ this._targetPositions = [];
7701
+ this._tileElements = [];
7702
+ this._tileOffset = 0;
7703
+ this._tiles3D = [];
7704
+ this._planeColor = 0xffffff;
7705
+ this._planeHeight = -46;
7706
+ this._spotLightPosition = new three.Vector3(0, 250, -200);
7707
+ this._fullCircle = false;
7708
+ this._initialized = false;
7709
+ this._elementsCreated = false;
7710
+ this.canNavigateLeft = false;
7711
+ this.canNavigateRight = false;
7712
+ }
7713
+ Object.defineProperty(Carousel3dComponent.prototype, "children", {
7714
+ set: function (children) {
7715
+ this._elementsCreated = false;
7716
+ this._tileElements = children.toArray();
7717
+ this._buildCarousel();
7718
+ },
7719
+ enumerable: false,
7720
+ configurable: true
7721
+ });
7722
+ Carousel3dComponent.prototype.showClass = function () {
7723
+ return true;
7724
+ };
7725
+ Carousel3dComponent.prototype.ngAfterViewInit = function () {
7726
+ this._buildCarousel();
7727
+ };
7728
+ Carousel3dComponent.prototype.ngOnDestroy = function () {
7729
+ this.canvasContainer = undefined;
7730
+ this.carouselWrapper = undefined;
7731
+ this._clearScenes();
7732
+ };
7733
+ Carousel3dComponent.prototype.handleButtonLeftClick = function () {
7734
+ this._tileOffset -= 1;
7735
+ this._rotate(400);
7736
+ };
7737
+ Carousel3dComponent.prototype.handleButtonRightClick = function () {
7738
+ this._tileOffset += 1;
7739
+ this._rotate(400);
7740
+ };
7741
+ Carousel3dComponent.prototype._buildCarousel = function () {
7742
+ if (!this._initialized) {
7743
+ this._init();
7744
+ }
7745
+ if (this._initialized && !this._elementsCreated) {
7746
+ this._createTiles();
7747
+ }
7748
+ this._checkNavigationButtons();
7749
+ };
7750
+ Carousel3dComponent.prototype._init = function () {
7751
+ var _this = this;
7752
+ if (!this.canvasContainer || !this.canvasContainer.nativeElement) {
7753
+ return;
7754
+ }
7755
+ this._initCamera();
7756
+ this._initScene();
7757
+ this._initRenderer();
7758
+ if (this.shadow) {
7759
+ var geometry = new three.PlaneGeometry(10000, 10000);
7760
+ var material = new three.MeshPhongMaterial({ color: this._planeColor, shininess: 100 });
7761
+ var plane = new three.Mesh(geometry, material);
7762
+ plane.receiveShadow = true;
7763
+ plane.rotation.x = -Math.PI / 2;
7764
+ plane.position.y = this._planeHeight;
7765
+ this._scene.add(plane);
7766
+ var spotLight = new three.SpotLight(0xffffff, 0.5);
7767
+ spotLight.position.copy(this._spotLightPosition);
7768
+ spotLight.castShadow = true;
7769
+ spotLight.shadow.mapSize.width = 512;
7770
+ spotLight.shadow.mapSize.height = 512;
7771
+ spotLight.shadow.camera.near = 50;
7772
+ spotLight.shadow.camera.far = 1200;
7773
+ spotLight.shadow.camera.fov = 30;
7774
+ spotLight.penumbra = 1;
7775
+ this._scene.add(spotLight);
7776
+ }
7777
+ this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);
7778
+ this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);
7779
+ this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);
7780
+ this._render();
7781
+ this._animate();
7782
+ window.addEventListener("resize", function () {
7783
+ _this._resizeCanvasToDisplaySize();
7784
+ }, false);
7785
+ this._initialized = true;
7786
+ };
7787
+ Carousel3dComponent.prototype._initCamera = function () {
7788
+ this._camera = new three.PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);
7789
+ this._camera.position.z = 600 - this._cameraZoom;
7790
+ this._camera.position.y = this.cameraHeight;
7791
+ this._camera.lookAt(new three.Vector3());
7792
+ };
7793
+ Carousel3dComponent.prototype._initScene = function () {
7794
+ this._sceneCss = new three.Scene();
7795
+ this._scene = new three.Scene();
7796
+ this._scene.background = new three.Color(this._backgroundColor);
7797
+ if (this._ambientLight) {
7798
+ var light = new three.AmbientLight(0xaaaaaa); // soft white light
7799
+ this._scene.add(light);
7800
+ this._scene.fog = new three.Fog(this._backgroundColor, 70, 2500);
7801
+ }
7802
+ };
7803
+ Carousel3dComponent.prototype._initRenderer = function () {
7804
+ this._rendererCss = new CSS3DRenderer.CSS3DRenderer();
7805
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7806
+ this._rendererCss.domElement.style.position = "absolute";
7807
+ this._renderer = new three.WebGLRenderer({ antialias: true });
7808
+ this._renderer.setPixelRatio(window.devicePixelRatio);
7809
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7810
+ this._renderer.shadowMap.enabled = true;
7811
+ };
7812
+ Carousel3dComponent.prototype._disposeObject = function (obj) {
7813
+ if (obj instanceof three.Mesh) {
7814
+ if (obj.geometry) {
7815
+ obj.geometry.dispose();
7816
+ }
7817
+ if (obj.material) {
7818
+ Array.isArray(obj.material) ? obj.material.map(function (m) { return m.dispose(); }) : obj.material.dispose();
7819
+ }
7820
+ obj = undefined;
7821
+ }
7822
+ else {
7823
+ obj.element = undefined;
7824
+ obj = undefined;
7825
+ }
7826
+ };
7827
+ Carousel3dComponent.prototype._clearScenes = function () {
7828
+ var _a, _b;
7829
+ var _this = this;
7830
+ var meshes = this._tiles3D.map(function (t) { return t.mesh; });
7831
+ var cssObjs = this._tiles3D.map(function (t) { return t.object; });
7832
+ (_a = this._scene).remove.apply(_a, __spreadArray([], __read(meshes)));
7833
+ meshes.map(function (m) { return _this._disposeObject(m); });
7834
+ meshes.length = 0;
7835
+ (_b = this._sceneCss).remove.apply(_b, __spreadArray([], __read(cssObjs)));
7836
+ cssObjs.map(function (o) { return _this._disposeObject(o); });
7837
+ cssObjs.length = 0;
7838
+ this._tiles3D.length = 0;
7839
+ this._targetPositions.length = 0;
7840
+ };
7841
+ Carousel3dComponent.prototype._createTiles = function () {
7842
+ var _this = this;
7843
+ this._clearScenes();
7844
+ this._tileSize.x = this.tileWidth;
7845
+ this._tileSize.y = this.tileHeight;
7846
+ var tileWidth = this._tileSize.x + this._tileMargin;
7847
+ var numItems = Math.max(this._tileElements.length, 20);
7848
+ this._fullCircle = this._tileElements.length >= 20;
7849
+ var angleTileDeg = 360 / numItems;
7850
+ var circumference = numItems * tileWidth;
7851
+ var radius = circumference / (Math.PI * 2);
7852
+ var y = this.shadow ? 75 : 45;
7853
+ var len = numItems;
7854
+ var angleDeg = 90;
7855
+ var position = new three.Vector3();
7856
+ for (var i = 0; i < len; i++) {
7857
+ var angle = angleDeg * (Math.PI / 180); // Radians
7858
+ var x = radius * Math.cos(angle);
7859
+ var z = -radius + radius * Math.sin(angle);
7860
+ position.set(x, y, z);
7861
+ this._targetPositions.push(position.clone());
7862
+ if (i < this._tileElements.length) {
7863
+ var tile = new CarouselItem({ tileSize: this._tileSize }, i, function (idx) { return _this._rotateTo(idx); });
7864
+ tile.setPosition(position);
7865
+ tile.setContent(this._tileElements[i].nativeElement);
7866
+ this._scene.add(tile.mesh);
7867
+ this._sceneCss.add(tile.object);
7868
+ this._tiles3D.push(tile);
7869
+ }
7870
+ angleDeg = angleDeg - angleTileDeg; // CW instead of CCW
7871
+ }
7872
+ this._adjustCameraZoom();
7873
+ this._tileOffset = this.selectedIndex;
7874
+ this._rotate(0);
7875
+ this._render();
7876
+ };
7877
+ Carousel3dComponent.prototype._adjustCameraZoom = function () {
7878
+ if (this._tiles3D.length === 0) {
7879
+ return;
7880
+ }
7881
+ var object = this._tiles3D[0].mesh;
7882
+ // offset = offset || 1.15;
7883
+ // get bounding box of object - this will be used to setup controls and camera
7884
+ var boundingBox = new three.Box3();
7885
+ boundingBox.setFromObject(object);
7886
+ var center = new three.Vector3();
7887
+ boundingBox.getCenter(center);
7888
+ var size = new three.Vector3();
7889
+ boundingBox.getSize(size);
7890
+ // get the max side of the bounding box (fits to width OR height as needed )
7891
+ var maxDim = Math.max(size.x, size.y, size.z);
7892
+ var fov = this._camera.fov * (Math.PI / 180);
7893
+ // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));
7894
+ var cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));
7895
+ // cameraZ *= offset; // zoom out a little so that objects don't fill the screen
7896
+ this._camera.position.z = cameraZ;
7897
+ this._camera.lookAt(center);
7898
+ };
7899
+ Carousel3dComponent.prototype._checkNavigationButtons = function () {
7900
+ var currentIdx = this._getSelectedIndex();
7901
+ this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;
7902
+ this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;
7903
+ };
7904
+ Carousel3dComponent.prototype._animate = function () {
7905
+ var _this = this;
7906
+ TWEEN__namespace.update();
7907
+ setTimeout(function () {
7908
+ _this._renderer.setAnimationLoop(function () { return _this._animate(); });
7909
+ }, 200);
7910
+ };
7911
+ Carousel3dComponent.prototype._getSelectedIndex = function () {
7912
+ return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));
7913
+ };
7914
+ Carousel3dComponent.prototype._rotate = function (duration) {
7915
+ var _this = this;
7916
+ TWEEN__namespace.removeAll();
7917
+ for (var i = 0; i < this._tiles3D.length; i++) {
7918
+ var tile = this._tiles3D[i];
7919
+ if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle
7920
+ this._tileOffset = this._tileOffset > 0 ? 1 : -1;
7921
+ }
7922
+ var positionIdx = i - this._tileOffset;
7923
+ if (positionIdx > this._targetPositions.length - 1) {
7924
+ positionIdx = positionIdx - this._targetPositions.length;
7925
+ }
7926
+ else if (positionIdx < 0) {
7927
+ positionIdx = this._targetPositions.length + positionIdx;
7928
+ }
7929
+ var target = this._targetPositions[positionIdx];
7930
+ new TWEEN__namespace.Tween(tile.object.position)
7931
+ .to(target, duration)
7932
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7933
+ .start();
7934
+ new TWEEN__namespace.Tween(tile.mesh.position)
7935
+ .to(target, duration)
7936
+ .easing(TWEEN__namespace.Easing.Quartic.Out)
7937
+ .start();
7938
+ }
7939
+ new TWEEN__namespace.Tween()
7940
+ .to({}, duration * 2)
7941
+ .onUpdate(function () {
7942
+ _this._render();
7943
+ })
7944
+ .start();
7945
+ this.selectedIndex = this._tileOffset;
7946
+ this._checkNavigationButtons();
7947
+ this.indexSelected.next(this._getSelectedIndex());
7948
+ };
7949
+ Carousel3dComponent.prototype._rotateTo = function (index) {
7950
+ var current = this._getSelectedIndex();
7951
+ this._tileOffset += index - current;
7952
+ this._rotate(800);
7953
+ };
7954
+ Carousel3dComponent.prototype._resizeCanvasToDisplaySize = function () {
7955
+ this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;
7956
+ this._camera.updateProjectionMatrix();
7957
+ this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7958
+ this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);
7959
+ this._render();
7960
+ };
7961
+ Carousel3dComponent.prototype._render = function () {
7962
+ this._rendererCss.render(this._sceneCss, this._camera);
7963
+ this._renderer.render(this._scene, this._camera);
7964
+ };
7965
+ return Carousel3dComponent;
7966
+ }());
7967
+ Carousel3dComponent.decorators = [
7968
+ { type: core.Component, args: [{
7969
+ selector: "co-carousel-3d",
7970
+ 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 ",
7971
+ encapsulation: core.ViewEncapsulation.None
7972
+ },] }
7973
+ ];
7974
+ Carousel3dComponent.propDecorators = {
7975
+ canvasContainer: [{ type: core.ViewChild, args: ["canvasContainer", { read: core.ElementRef },] }],
7976
+ carouselWrapper: [{ type: core.ViewChild, args: ["carouselWrapper", { read: core.ElementRef },] }],
7977
+ children: [{ type: core.ContentChildren, args: ["carouselItem", { read: core.ElementRef, descendants: true },] }],
7978
+ tileWidth: [{ type: core.Input }],
7979
+ tileHeight: [{ type: core.Input }],
7980
+ cameraHeight: [{ type: core.Input }],
7981
+ shadow: [{ type: core.Input }],
7982
+ selectedIndex: [{ type: core.Input }],
7983
+ indexSelected: [{ type: core.Output }],
7984
+ showClass: [{ type: core.HostBinding, args: ["class.co-carousel-3d",] }]
7985
+ };
7986
+
7987
+ var Carousel3dModule = /** @class */ (function () {
7988
+ function Carousel3dModule() {
7989
+ }
7990
+ return Carousel3dModule;
7991
+ }());
7992
+ Carousel3dModule.decorators = [
7993
+ { type: core.NgModule, args: [{
7994
+ imports: [
7995
+ common.CommonModule
7996
+ ],
7997
+ declarations: [
7998
+ Carousel3dComponent
7999
+ ],
8000
+ exports: [
8001
+ Carousel3dComponent
8002
+ ]
8003
+ },] }
8004
+ ];
8005
+
7197
8006
  /*
7198
8007
  * Public API Surface of corecomponents
7199
8008
  */
@@ -7209,6 +8018,8 @@
7209
8018
  exports.ButtonDropDownModule = ButtonDropDownModule;
7210
8019
  exports.ButtonModule = ButtonModule;
7211
8020
  exports.COMPONENT_INTERFACE_NAME = COMPONENT_INTERFACE_NAME;
8021
+ exports.Carousel3dComponent = Carousel3dComponent;
8022
+ exports.Carousel3dModule = Carousel3dModule;
7212
8023
  exports.CoDialogComponent = CoDialogComponent;
7213
8024
  exports.CoDialogModule = CoDialogModule;
7214
8025
  exports.CoDialogPromptComponent = CoDialogPromptComponent;
@@ -7227,9 +8038,12 @@
7227
8038
  exports.CoSidebarModule = CoSidebarModule;
7228
8039
  exports.CoToggleComponent = CoToggleComponent;
7229
8040
  exports.CoToggleModule = CoToggleModule;
8041
+ exports.CollapsibleComponent = CollapsibleComponent;
8042
+ exports.CollapsibleModule = CollapsibleModule;
7230
8043
  exports.DropDownListComponent = DropDownListComponent;
7231
8044
  exports.DropDownModule = DropDownModule;
7232
8045
  exports.FormComponent = FormComponent;
8046
+ exports.FormMasterService = FormMasterService;
7233
8047
  exports.FormModule = FormModule;
7234
8048
  exports.IconCacheService = IconCacheService;
7235
8049
  exports.IconComponent = IconComponent;
@@ -7244,12 +8058,16 @@
7244
8058
  exports.InputComboBoxModule = InputComboBoxModule;
7245
8059
  exports.InputDatePickerComponent = InputDatePickerComponent;
7246
8060
  exports.InputDatePickerModule = InputDatePickerModule;
8061
+ exports.InputListboxComponent = InputListboxComponent;
8062
+ exports.InputListboxModule = InputListboxModule;
7247
8063
  exports.InputNumberPickerComponent = InputNumberPickerComponent;
7248
8064
  exports.InputNumberPickerModule = InputNumberPickerModule;
7249
8065
  exports.InputRadioButtonComponent = InputRadioButtonComponent;
7250
8066
  exports.InputRadioButtonModule = InputRadioButtonModule;
7251
8067
  exports.InputTextComponent = InputTextComponent;
7252
8068
  exports.InputTextModule = InputTextModule;
8069
+ exports.InputTextareaComponent = InputTextareaComponent;
8070
+ exports.InputTextareaModule = InputTextareaModule;
7253
8071
  exports.LevelIndicatorComponent = LevelIndicatorComponent;
7254
8072
  exports.LevelIndicatorModule = LevelIndicatorModule;
7255
8073
  exports.MultiSelectListComponent = MultiSelectListComponent;
@@ -7259,6 +8077,9 @@
7259
8077
  exports.PopupModule = PopupModule;
7260
8078
  exports.PopupWindowShellComponent = PopupWindowShellComponent;
7261
8079
  exports.PromptService = PromptService;
8080
+ exports.SimpleGridColumnDirective = SimpleGridColumnDirective;
8081
+ exports.SimpleGridComponent = SimpleGridComponent;
8082
+ exports.SimpleGridModule = SimpleGridModule;
7262
8083
  exports.TextInputPopupComponent = TextInputPopupComponent;
7263
8084
  exports.TileComponent = TileComponent;
7264
8085
  exports.TileModule = TileModule;
@@ -7277,14 +8098,15 @@
7277
8098
  exports["ɵm"] = FormInputUserModelChangeListenerService;
7278
8099
  exports["ɵn"] = NgZoneWrapperService;
7279
8100
  exports["ɵo"] = BaseInputComponent;
7280
- exports["ɵp"] = FormMasterService;
7281
- exports["ɵq"] = BaseSelectionGridComponent;
7282
- exports["ɵr"] = BaseInlineEditGridComponent;
7283
- exports["ɵs"] = BaseToolbarGridComponent;
7284
- exports["ɵt"] = BaseGridComponent;
7285
- exports["ɵu"] = AppendPipeModule;
7286
- exports["ɵv"] = AppendPipe;
7287
- exports["ɵw"] = PopupShowerService;
8101
+ exports["ɵp"] = BaseSelectionGridComponent;
8102
+ exports["ɵq"] = BaseInlineEditGridComponent;
8103
+ exports["ɵr"] = BaseToolbarGridComponent;
8104
+ exports["ɵs"] = BaseGridComponent;
8105
+ exports["ɵt"] = AppendPipeModule;
8106
+ exports["ɵu"] = AppendPipe;
8107
+ exports["ɵv"] = ValidationErrorModule;
8108
+ exports["ɵw"] = ValidationErrorComponent;
8109
+ exports["ɵx"] = PopupShowerService;
7288
8110
 
7289
8111
  Object.defineProperty(exports, '__esModule', { value: true });
7290
8112