@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.
- package/bundles/colijnit-corecomponents_v12.umd.js +1099 -277
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +9 -8
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +10 -9
- package/esm2015/lib/components/base/base-input.component.js +40 -20
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +313 -0
- package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +19 -0
- package/esm2015/lib/components/carousel-3d/carouselItem.js +54 -0
- package/esm2015/lib/components/co-dialog/co-dialog.component.js +46 -48
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +7 -4
- package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.component.js +6 -6
- package/esm2015/lib/components/co-kanban/co-kanban.component.js +8 -7
- package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.component.js +2 -2
- package/esm2015/lib/components/collapsible/collapsible.component.js +58 -0
- package/esm2015/lib/components/collapsible/collapsible.module.js +17 -0
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +30 -8
- package/esm2015/lib/components/drop-down-list/drop-down.module.js +4 -2
- package/esm2015/lib/components/form/form.component.js +2 -21
- package/esm2015/lib/components/form/form.module.js +4 -4
- package/esm2015/lib/components/grid/base/base-grid.component.js +1 -1
- package/esm2015/lib/components/grid/base/base-selection-grid.component.js +1 -1
- package/esm2015/lib/components/grid/co-grid.component.js +2 -2
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +15 -5
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +6 -14
- package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +24 -29
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +10 -7
- package/esm2015/lib/components/input-listbox/input-listbox.component.js +87 -0
- package/esm2015/lib/components/input-listbox/input-listbox.module.js +25 -0
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +55 -30
- package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +5 -3
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +13 -5
- package/esm2015/lib/components/input-text/input-text.component.js +22 -81
- package/esm2015/lib/components/input-text/input-text.module.js +16 -13
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +62 -0
- package/esm2015/lib/components/input-textarea/input-textarea.module.js +23 -0
- package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +37 -9
- package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +4 -2
- package/esm2015/lib/components/pivot/co-pivot.component.js +2 -2
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +36 -0
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +112 -0
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +24 -0
- package/esm2015/lib/components/validation-error/validation-error.component.js +23 -0
- package/esm2015/lib/components/validation-error/validation-error.module.js +19 -0
- package/esm2015/public-api.js +13 -1
- package/fesm2015/colijnit-corecomponents_v12.js +1176 -337
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +14 -9
- package/lib/components/button/style/_co-ripple.scss +69 -0
- package/lib/components/button/style/_layout.scss +7 -4
- package/lib/components/button/style/_material-definition.scss +1 -0
- package/lib/components/button/style/_theme.scss +2 -27
- package/lib/components/button/style/material.scss +18 -0
- package/lib/components/button-drop-down/style/_layout.scss +0 -2
- package/lib/components/button-drop-down/style/_theme.scss +0 -2
- package/lib/components/button-drop-down/style/material.scss +1 -0
- package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
- package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
- package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
- package/lib/components/carousel-3d/style/_layout.scss +62 -0
- package/lib/components/carousel-3d/style/_material-definition.scss +6 -0
- package/lib/components/carousel-3d/style/_theme.scss +4 -0
- package/lib/components/carousel-3d/style/material.scss +5 -0
- package/lib/components/co-dialog/co-dialog.component.d.ts +6 -13
- package/lib/components/co-dialog/style/_layout.scss +44 -0
- package/lib/components/co-dialog/style/_material-definition.scss +23 -0
- package/lib/components/co-dialog/style/_theme.scss +24 -0
- package/lib/components/co-dialog/style/material.scss +5 -0
- package/lib/components/co-dialog-prompt/co-dialog-prompt.component.d.ts +2 -2
- package/lib/components/co-kanban/co-kanban.component.d.ts +1 -0
- package/lib/components/co-kanban/style/_layout.scss +48 -0
- package/lib/components/co-kanban/style/_material-definition.scss +25 -0
- package/lib/components/co-kanban/style/_theme.scss +3 -0
- package/lib/components/co-kanban/style/material.scss +14 -0
- package/lib/components/co-rich-text-editor/co-rich-text-editor.component.d.ts +1 -1
- package/lib/components/co-rich-text-editor/style/_layout.scss +0 -2
- package/lib/components/co-rich-text-editor/style/_theme.scss +0 -2
- package/lib/components/co-rich-text-editor/style/material.scss +1 -0
- package/lib/components/co-toggle/co-toggle.component.scss +1 -0
- package/lib/components/collapsible/collapsible.component.d.ts +16 -0
- package/lib/components/collapsible/collapsible.module.d.ts +2 -0
- package/lib/components/collapsible/style/_layout.scss +50 -0
- package/lib/components/collapsible/style/_material-definition.scss +9 -0
- package/lib/components/collapsible/style/_theme.scss +5 -0
- package/lib/components/collapsible/style/material.scss +5 -0
- package/lib/components/drop-down-list/drop-down-list.component.d.ts +12 -2
- package/lib/components/drop-down-list/style/_layout.scss +8 -3
- package/lib/components/drop-down-list/style/_theme.scss +0 -2
- package/lib/components/drop-down-list/style/material.scss +2 -0
- package/lib/components/form/form.component.d.ts +0 -1
- package/lib/components/grid/base/base-selection-grid.component.d.ts +1 -2
- package/lib/components/grid/co-grid.component.d.ts +1 -1
- package/lib/components/grid/style/_layout.scss +0 -2
- package/lib/components/grid/style/_theme.scss +0 -2
- package/lib/components/grid/style/material.scss +1 -0
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +9 -2
- package/lib/components/input-checkbox/style/_layout.scss +0 -2
- package/lib/components/input-checkbox/style/_theme.scss +0 -2
- package/lib/components/input-checkbox/style/material.scss +1 -0
- package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +4 -6
- package/lib/components/input-checkbox-multi-select/style/_layout.scss +0 -2
- package/lib/components/input-checkbox-multi-select/style/_theme.scss +0 -2
- package/lib/components/input-checkbox-multi-select/style/material.scss +1 -0
- package/lib/components/input-combo-box/input-combo-box.component.d.ts +6 -7
- package/lib/components/input-combo-box/style/_layout.scss +10 -3
- package/lib/components/input-combo-box/style/_material-definition.scss +0 -7
- package/lib/components/input-combo-box/style/_theme.scss +0 -2
- package/lib/components/input-combo-box/style/material.scss +9 -0
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +4 -3
- package/lib/components/input-date-picker/style/_layout.scss +4 -3
- package/lib/components/input-date-picker/style/_theme.scss +0 -2
- package/lib/components/input-date-picker/style/material.scss +2 -0
- package/lib/components/input-listbox/input-listbox.component.d.ts +25 -0
- package/lib/components/input-listbox/input-listbox.module.d.ts +2 -0
- package/lib/components/input-listbox/style/_layout.scss +22 -0
- package/lib/components/input-listbox/style/_material-definition.scss +10 -0
- package/lib/components/input-listbox/style/_theme.scss +12 -0
- package/lib/components/input-listbox/style/material.scss +6 -0
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +9 -5
- package/lib/components/input-number-picker/style/_layout.scss +41 -0
- package/lib/components/input-number-picker/style/_material-definition.scss +17 -0
- package/lib/components/input-number-picker/style/_theme.scss +20 -0
- package/lib/components/input-number-picker/style/material.scss +5 -0
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +7 -2
- package/lib/components/input-radio-button/style/_layout.scss +0 -2
- package/lib/components/input-radio-button/style/_theme.scss +0 -2
- package/lib/components/input-radio-button/style/material.scss +1 -0
- package/lib/components/input-search/style/_layout.scss +39 -0
- package/lib/components/input-search/style/_material-definition.scss +6 -0
- package/lib/components/input-search/style/_theme.scss +6 -0
- package/lib/components/input-search/style/material.scss +5 -0
- package/lib/components/input-text/input-text.component.d.ts +6 -30
- package/lib/components/input-text/style/_layout.scss +14 -3
- package/lib/components/input-text/style/_material-definition.scss +4 -3
- package/lib/components/input-text/style/_theme.scss +0 -2
- package/lib/components/input-text/style/material.scss +3 -0
- package/lib/components/input-textarea/input-textarea.component.d.ts +18 -0
- package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
- package/lib/components/input-textarea/style/_layout.scss +20 -0
- package/lib/components/input-textarea/style/_material-definition.scss +4 -0
- package/lib/components/input-textarea/style/_theme.scss +8 -0
- package/lib/components/input-textarea/style/material.scss +7 -0
- package/lib/components/multi-select-list/multi-select-list.component.d.ts +13 -2
- package/lib/components/multi-select-list/style/_layout.scss +10 -3
- package/lib/components/multi-select-list/style/_theme.scss +0 -2
- package/lib/components/multi-select-list/style/material.scss +2 -0
- package/lib/components/pivot/co-pivot.component.d.ts +2 -2
- package/lib/components/pivot/style/_layout.scss +0 -2
- package/lib/components/pivot/style/_theme.scss +0 -2
- package/lib/components/pivot/style/material.scss +1 -0
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +18 -0
- package/lib/components/simple-grid/simple-grid.component.d.ts +26 -0
- package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
- package/lib/components/simple-grid/style/_layout.scss +78 -0
- package/lib/components/simple-grid/style/_material-definition.scss +16 -0
- package/lib/components/simple-grid/style/_theme.scss +15 -0
- package/lib/components/simple-grid/style/material.scss +5 -0
- package/lib/components/validation-error/style/_layout.scss +37 -0
- package/lib/components/validation-error/style/_material-definition.scss +9 -0
- package/lib/components/validation-error/style/_theme.scss +21 -0
- package/lib/components/validation-error/style/material.scss +5 -0
- package/lib/components/validation-error/validation-error.component.d.ts +4 -0
- package/lib/components/validation-error/validation-error.module.d.ts +2 -0
- package/lib/style/_input.mixins.scss +70 -281
- package/lib/style/_variables.scss +2 -0
- package/lib/style/material2/_core.scss +3 -3
- package/lib/style/material2/_material2-scss-barrel.scss +10 -10
- package/package.json +5 -2
- package/public-api.d.ts +12 -0
- package/esm2015/lib/core/enum/float-label-type.enum.js +0 -7
- package/esm2015/lib/core/enum/input-text-type.enum.js +0 -6
- package/esm2015/lib/core/model/numerical-range.js +0 -14
- package/lib/components/co-dialog/co-dialog.component.scss +0 -0
- package/lib/components/drop-down-list/drop-down-list.component.scss +0 -0
- package/lib/components/input-number-picker/input-number-picker.component.scss +0 -49
- package/lib/core/enum/float-label-type.enum.d.ts +0 -5
- package/lib/core/enum/input-text-type.enum.d.ts +0 -4
- package/lib/core/model/numerical-range.d.ts +0 -7
- package/lib/style/_extendables.scss +0 -32
- package/lib/style/_responsiveness.mixins.scss +0 -64
- package/lib/style/_responsiveness.scss +0 -4
- 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
|
-
|
|
2534
|
-
this.targetElement = null;
|
|
2553
|
+
this.icons = exports.CoreComponentsIcon;
|
|
2535
2554
|
this.showCloseIcon = true;
|
|
2536
|
-
this.
|
|
2537
|
-
this.
|
|
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.
|
|
2552
|
-
|
|
2560
|
+
CoDialogComponent.prototype.showClass = function () {
|
|
2561
|
+
return true;
|
|
2553
2562
|
};
|
|
2554
|
-
CoDialogComponent.prototype.
|
|
2555
|
-
this.
|
|
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
|
|
2563
|
-
|
|
2564
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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.
|
|
5275
|
+
_this.Icons = exports.CoreComponentsIcon;
|
|
5174
5276
|
_this.placeholder = "";
|
|
5175
5277
|
_this.type = "text";
|
|
5176
5278
|
_this.showClearButton = undefined;
|
|
5177
|
-
_this.
|
|
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
|
|
5217
|
-
template: "\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
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
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.
|
|
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=\"
|
|
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
|
-
|
|
5559
|
-
|
|
5649
|
+
declarations: [
|
|
5650
|
+
InputTextComponent
|
|
5560
5651
|
],
|
|
5561
|
-
|
|
5562
|
-
|
|
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.
|
|
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]=\"
|
|
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
|
-
|
|
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"] =
|
|
7281
|
-
exports["ɵq"] =
|
|
7282
|
-
exports["ɵr"] =
|
|
7283
|
-
exports["ɵs"] =
|
|
7284
|
-
exports["ɵt"] =
|
|
7285
|
-
exports["ɵu"] =
|
|
7286
|
-
exports["ɵv"] =
|
|
7287
|
-
exports["ɵw"] =
|
|
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
|
|