@churchillliving/se-ui-toolkit 6.53.367 → 6.53.369
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/churchillliving-se-ui-toolkit.umd.js +179 -102
- package/bundles/churchillliving-se-ui-toolkit.umd.js.map +1 -1
- package/churchillliving-se-ui-toolkit.metadata.json +1 -1
- package/esm2015/lib/components/base/form/form.component.js +165 -87
- package/esm2015/lib/components/base/grid/grid.component.js +19 -19
- package/esm2015/lib/models/form.model.js +1 -1
- package/esm2015/lib/models/grid.model.js +1 -1
- package/esm2015/lib/services/grid.service.js +3 -2
- package/fesm2015/churchillliving-se-ui-toolkit.js +184 -105
- package/fesm2015/churchillliving-se-ui-toolkit.js.map +1 -1
- package/lib/components/base/form/form.component.d.ts +10 -10
- package/lib/models/form.model.d.ts +1 -0
- package/lib/models/grid.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -2788,6 +2788,7 @@
|
|
|
2788
2788
|
type: columnInfo.type,
|
|
2789
2789
|
format: columnInfo.format,
|
|
2790
2790
|
data: columnInfo.data,
|
|
2791
|
+
filterValue: columnInfo.filterValue,
|
|
2791
2792
|
filtering: columnInfo.filtering,
|
|
2792
2793
|
hidden: columnInfo.hidden,
|
|
2793
2794
|
sorting: columnInfo.sorting,
|
|
@@ -3149,7 +3150,7 @@
|
|
|
3149
3150
|
(_a = document.getElementById('lookUp_filter')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
3150
3151
|
var field = column.field;
|
|
3151
3152
|
var value = setDialogResponse(column, column === null || column === void 0 ? void 0 : column.lookupControl, res);
|
|
3152
|
-
column.
|
|
3153
|
+
column.filterValue = (value === null || value === void 0 ? void 0 : value.value)
|
|
3153
3154
|
? value.value
|
|
3154
3155
|
: res[field.toLowerCase()];
|
|
3155
3156
|
}
|
|
@@ -4181,7 +4182,7 @@
|
|
|
4181
4182
|
}
|
|
4182
4183
|
}
|
|
4183
4184
|
// set filter value
|
|
4184
|
-
if (column.filter && column.
|
|
4185
|
+
if (column.filter && column.filterValue && column.filtering !== false) {
|
|
4185
4186
|
_this.setFilterFocusOut(column);
|
|
4186
4187
|
}
|
|
4187
4188
|
// add "flex-shrink: 0" for flex-basis Style
|
|
@@ -4214,13 +4215,13 @@
|
|
|
4214
4215
|
var _a;
|
|
4215
4216
|
if (x.field === column.field) {
|
|
4216
4217
|
if (((_a = column === null || column === void 0 ? void 0 : column.filter) === null || _a === void 0 ? void 0 : _a.type) === 'calendar' && x.value) {
|
|
4217
|
-
column.
|
|
4218
|
+
column.filterValue = new Date(_this.datePipe.transform(x.value, 'MM-dd-YY'));
|
|
4218
4219
|
}
|
|
4219
4220
|
else if (column.type === exports.EGridColumnType.BOOLEAN) {
|
|
4220
|
-
column.
|
|
4221
|
+
column.filterValue = x.value;
|
|
4221
4222
|
}
|
|
4222
4223
|
else if (x.value) {
|
|
4223
|
-
column.
|
|
4224
|
+
column.filterValue = x.value;
|
|
4224
4225
|
}
|
|
4225
4226
|
}
|
|
4226
4227
|
});
|
|
@@ -4754,7 +4755,7 @@
|
|
|
4754
4755
|
if (_this.selectedColumns && _this.selectedColumns.length > 0) {
|
|
4755
4756
|
_this.selectedColumns.forEach(function (x) {
|
|
4756
4757
|
if (event.filters[x.field]) {
|
|
4757
|
-
event.filters[x.field].value = x.
|
|
4758
|
+
event.filters[x.field].value = x.filterValue;
|
|
4758
4759
|
}
|
|
4759
4760
|
});
|
|
4760
4761
|
}
|
|
@@ -5793,8 +5794,8 @@
|
|
|
5793
5794
|
this.gridFilterObj = { column: col, filter: filter, event: event };
|
|
5794
5795
|
var newColumn = Object.assign({}, col);
|
|
5795
5796
|
//change filter calender format
|
|
5796
|
-
if (newColumn.type === 'date' && newColumn.
|
|
5797
|
-
newColumn.
|
|
5797
|
+
if (newColumn.type === 'date' && newColumn.filterValue) {
|
|
5798
|
+
newColumn.filterValue = this.datePipe.transform(col.filterValue.toString().trim(), 'yyyy-MM-dd');
|
|
5798
5799
|
}
|
|
5799
5800
|
this.filterObj(newColumn);
|
|
5800
5801
|
localStorage.setItem('applyFilter', JSON.stringify(false));
|
|
@@ -5805,7 +5806,7 @@
|
|
|
5805
5806
|
matchMode: col.matchMode ? col.matchMode : 'startsWith',
|
|
5806
5807
|
operator: col.operator ? col.operator : 'and',
|
|
5807
5808
|
tableAlias: col.tableAlias ? col.tableAlias : '',
|
|
5808
|
-
value: col.
|
|
5809
|
+
value: col.filterValue,
|
|
5809
5810
|
};
|
|
5810
5811
|
this.globalFiltersArray.push(obj);
|
|
5811
5812
|
};
|
|
@@ -5827,7 +5828,7 @@
|
|
|
5827
5828
|
}
|
|
5828
5829
|
};
|
|
5829
5830
|
GridComponent.prototype.removeNullCalendar = function (column, filter, event) {
|
|
5830
|
-
if (column.
|
|
5831
|
+
if (column.filterValue === null) {
|
|
5831
5832
|
this.removeNullFilters(column);
|
|
5832
5833
|
this.setFilterFocusOut(column, filter, event);
|
|
5833
5834
|
}
|
|
@@ -5835,12 +5836,12 @@
|
|
|
5835
5836
|
GridComponent.prototype.backspaceEvent = function (event, column) {
|
|
5836
5837
|
var _a, _b;
|
|
5837
5838
|
if (event.key === 'Backspace' &&
|
|
5838
|
-
(((_a = column.
|
|
5839
|
-
((_b = column.
|
|
5840
|
-
column.
|
|
5839
|
+
(((_a = column.filterValue) === null || _a === void 0 ? void 0 : _a.toString().length) === 1 ||
|
|
5840
|
+
((_b = column.filterValue) === null || _b === void 0 ? void 0 : _b.toString()) === '' ||
|
|
5841
|
+
column.filterValue === null)) {
|
|
5841
5842
|
this.removeNullFilters(column);
|
|
5842
5843
|
}
|
|
5843
|
-
else if (column.type === exports.EGridColumnType.DATE && column.
|
|
5844
|
+
else if (column.type === exports.EGridColumnType.DATE && column.filterValue === null) {
|
|
5844
5845
|
this.removeNullFilters(column);
|
|
5845
5846
|
}
|
|
5846
5847
|
};
|
|
@@ -5856,7 +5857,7 @@
|
|
|
5856
5857
|
GridComponent.prototype.removingFilters = function (event, column) {
|
|
5857
5858
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
5858
5859
|
if ((event.key === 'Backspace' || event.key === 'Delete') &&
|
|
5859
|
-
((_a = column.
|
|
5860
|
+
((_a = column.filterValue) === null || _a === void 0 ? void 0 : _a.toString().length) === 0) {
|
|
5860
5861
|
var searchFilters = void 0;
|
|
5861
5862
|
if (!this.softCaching && ((_b = this.componentTableRef) === null || _b === void 0 ? void 0 : _b.id)) {
|
|
5862
5863
|
searchFilters = JSON.parse(localStorage.getItem('SetFilters-' + ((_c = this.componentTableRef) === null || _c === void 0 ? void 0 : _c.id) + currentUrl()));
|
|
@@ -5997,7 +5998,7 @@
|
|
|
5997
5998
|
}
|
|
5998
5999
|
if (this.selectedColumns && this.selectedColumns.length > 0) {
|
|
5999
6000
|
this.selectedColumns.forEach(function (col) {
|
|
6000
|
-
col.
|
|
6001
|
+
col.filterValue = null;
|
|
6001
6002
|
_this.filterObj(col);
|
|
6002
6003
|
});
|
|
6003
6004
|
}
|
|
@@ -6191,7 +6192,7 @@
|
|
|
6191
6192
|
row[column.field] = '';
|
|
6192
6193
|
}
|
|
6193
6194
|
else {
|
|
6194
|
-
column.
|
|
6195
|
+
column.filterValue = '';
|
|
6195
6196
|
this.setFilterFocusOut(column);
|
|
6196
6197
|
}
|
|
6197
6198
|
this.browserCloseEvent(true);
|
|
@@ -6209,7 +6210,7 @@
|
|
|
6209
6210
|
this.rowsData.forEach(function (row) {
|
|
6210
6211
|
var _a, _b;
|
|
6211
6212
|
if (((_b = (_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.disabled) !== true && !column.disabled) {
|
|
6212
|
-
row[column.field] = column.
|
|
6213
|
+
row[column.field] = column.filterValue;
|
|
6213
6214
|
}
|
|
6214
6215
|
});
|
|
6215
6216
|
}
|
|
@@ -6241,7 +6242,7 @@
|
|
|
6241
6242
|
GridComponent.decorators = [
|
|
6242
6243
|
{ type: i0.Component, args: [{
|
|
6243
6244
|
selector: 'se-grid',
|
|
6244
|
-
template: "<div class=\"grid-component-wrapper\">\n<p-confirmDialog [style]=\"{ width: '50vw' }\" *ngIf=\"useInlineCRUD\" key=\"handleInlineCRUD\"></p-confirmDialog>\n<p-confirmDialog class=\"grid-component-confirm-dialog\" *ngIf=\"columnActions.length > 0\"\n key=\"handlecolumnActions\"></p-confirmDialog>\n<div class=\"p-mb-2 p-d-flex p-ai-center\" *ngIf=\"\n allowColumnToggle ||\n rowActions.length > 0 ||\n useInlineCRUD ||\n allowExportToExcel ||\n allowExportToPdf ||\n clearGridFilter\n \">\n <!-- button for apply value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton type=\"button\" icon=\"pi pi-search\" (click)=\"applyGirdFilterBtn()\"\n [class]=\"\n searchGridFilter ? 'p-button-success p-mr-2 p-ml-1' : 'hide-clear-filter-button'\n \"></button>\n\n <!-- button for clear value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton id=\"clearGridFilterValuesButton\" type=\"button\"\n icon=\"pi pi-replay\" (click)=\"cleargridFiltersValue()\" [class]=\"\n clearGridFilter ? '' : 'hide-clear-filter-button'\n \" class='global-refresh global-btn'\n ></button>\n\n <!-- button for edit all grid at once -->\n <!-- <button\n pButton\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\n id=\"editBtnGlobalvalues\"\n type=\"button\"\n [label]=\"'Edit'\"\n class=\"p-mr-2 ui-button-info\"\n icon=\"pi pi-pencil\"\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\n (click)=\"editAllRowsAtOnce()\"\n ></button> -->\n\n <!-- button for save all grid at once -->\n <button pButton *ngIf=\"editAllRows && editRowPermission &&!hideGridSaveButton\" id=\"saveAllGridValues\"\n icon=\"pi pi-check\" [label]=\"'Save'\"\n [class]=\"hideGridSaveButton ? 'hide-clear-filter-button' : 'p-mr-2 ui-button-info'\" type=\"button\"\n (click)=\"saveAllRowsAtOnce()\"></button>\n\n <!-- button for cancel all grid at once -->\n <button pButton *ngIf=\"editAllRows && !hideGridCancelButton\" id=\"editBtnGlobalvalues\" type=\"button\" [label]=\"'Cancel'\"\n icon=\"pi pi-times\" class=\"p-mr-2 ui-button-info\" (click)=\"cancelAllRowsAtOnce()\"></button>\n\n <!-- header Button for multiSelect on Grid -->\n <span *ngIf=\"allowColumnToggle\">\n <p-multiSelect [showToggleAll]=\"false\" [options]=\"columns\" [(ngModel)]=\"selectedColumns\" optionLabel=\"header\"\n selectedItemsLabel=\"{0} columns selected\" class=\"grid-component-multiselect-header-button\" placeholder=\"Choose Columns\">\n </p-multiSelect>\n </span>\n\n <!-- <button\n pButton\n *ngIf=\"showRefreshBtn\"\n type=\"button\"\n [label]=\"'Refresh'\"\n icon=\"pi pi-refresh\"\n (click)=\"refresh()\"\n class=\"ui-button-info p-mr-2\"\n></button> -->\n\n <!-- header Button for Adding new Row on Grid -->\n <button pButton *ngIf=\"useInlineCRUD && addRowPermission && !hideAddBtn\" type=\"button\" [label]=\"'Add'\" pAddRow\n [table]=\"componentTableRef\" [newRow]=\"newGridRow\" [id]=\"dataKey\" pTooltip=\"Add New Row\" tooltipPosition=\"bottom\"\n icon=\"pi pi-plus\" class=\"ui-button-info global-add-btn\" (click)=\"addNewRow(newGridRow, true)\" pRipple></button>\n\n <div *ngFor=\"let reportButton of reportButtons\" class=\"ui-button-info p-mr-2 p-ml-2\">\n <se-generate-report-btn [repId]=\"reportButton.reportId\" [label]=\"reportButton.label\" [params]=\"reportButton.params\"\n [showDialog]=\"reportButton.showDialog\"></se-generate-report-btn>\n </div>\n\n <!-- header Button for Excel File on Grid -->\n <button *ngIf=\"allowExportToExcel\" type=\"button\" pButton icon=\"pi pi-file-excel\" (click)=\"exportExcel()\"\n class=\"p-button-success p-mt-0 p-mx-2\" pTooltip=\"Export to Excel\" tooltipPosition=\"bottom\" pRipple></button>\n\n <!-- header Button for PDF File on Grid -->\n <button *ngIf=\"allowExportToPdf\" type=\"button\" pButton icon=\"pi pi-file-pdf\" (click)=\"exportPdf()\"\n class=\"p-button-warning p-mr-2\" pTooltip=\"Export to Pdf\" tooltipPosition=\"bottom\" pRipple></button>\n</div>\n\n<p-table *ngIf=\"!isGridHidden\" id=\"my-table\" [value]=\"rowsData\" [columns]=\"selectedColumns\" sortMode=\"multiple\"\n [lazy]=\"useServerSideEvents\" [paginator]=\"pagination\" [alwaysShowPaginator]=\"false\" [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\n class=\"grid-component-main-table\"\n [rows]=\"defaultRows\" [totalRecords]=\"totalRecords\" [rowsPerPageOptions]=\"setPaginationLength\"\n [showCurrentPageReport]=\"showCurrentPageReport\" currentPageReportTemplate=\"Showing {first} to {last} of {{\n totalRecords\n }} entries\" [loading]=\"autoLoadData && !setGridRefreshTime ? loading : false\"\n (onSort)=\"sortDisabled ?? handleSortChange($event)\" (onFilter)=\"handleFilterChange($event)\"\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\" (onPage)=\"handleServerSidePagination($event)\" #dt\n [dataKey]=\"dataKey\" [(selection)]=\"selectedRows\" selectionMode=\"multiple\" [scrollable]=\"scrollable\" [scrollHeight]=\"scrollHeight\"\n editMode=\"row\" [editingRowKeys]=\"editingRowKeys\" [autoLayout]=\"true\" [rowHover]=\"rowHover\"\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\">\n <!-- header Button for Action on Grid -->\n <div *ngIf=\"rowActions.length > 0 && rowActions.length > 0\" class=\"p-d-flex p-jc-end\">\n <span *ngFor=\"let rowAction of rowActions\">\n <button pButton type=\"button\" [label]=\"rowAction.title\" [class]=\"rowAction.class\"\n (click)=\"rowAction.onClick(selectedRows)\"></button>\n </span>\n </div>\n\n <!-- header columns on Grid -->\n <ng-template pTemplate=\"header\" let-cols>\n <tr>\n <th *ngIf=\"allowSelection && selectionType === 'multiple'\" class=\"grid-component-selection\">\n <div class=\"grid-component-table-header-inner-div-2\n table-header-inner-div div-last-inner-html-is-icon\">\n <span class=\"flex-grow-1\"> {{allowSelectionHeader}} </span>\n <p-tableHeaderCheckbox *ngIf=\"selectionType === 'multiple'\" binary=\"true\"\n (click)=\"multiCheckBoxOnclick(rowsData, $event)\"></p-tableHeaderCheckbox>\n </div>\n </th>\n <th *ngIf=\"allowSelection && selectionType === 'single'\" \n class=\"grid-component-selection\">\n Select\n </th>\n <th\n *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n Actions\n </th>\n <th *ngFor=\"let column of cols\" [pSortableColumn]=\"column.field\"\n [class]=\"column.type === 'boolean' ? 'checkbox-th' : ''\"\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\n class=\"column?.type === 'multiple' ? 'grid-component-select-th-column-type-multiple' : ''\">\n <div class=\"grid-component-table-header-inner-div-1 table-header-inner-div div-last-inner-html-is-icon\"> \n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\" class=\"grid-component required-star\">*</span>\n <p-sortIcon *ngIf=\"column.sorting !== false && column?.type !== 'multiple'\"\n [field]=\"column.field\"></p-sortIcon>\n </div>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\n </tr>\n <tr *ngIf=\"filtering && !hideFilter\">\n <th *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n <th *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n </th>\n <th *ngFor=\"let column of cols\" [ngSwitch]=\"column?.filter?.type\" [style]=\"column.style\"\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\">\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\n <!-- Text input on Header For Filter-->\n <p-columnFilter [type]=\"'text'\" [field]=\"column.field\" *ngSwitchCase=\"'input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <input type=\"text\" [(ngModel)]=\"column.value\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\" pInputText />\n </ng-template>\n </p-columnFilter>\n\n <!-- Numeric input on Header For Filter-->\n <p-columnFilter [type]=\"'numeric'\" [field]=\"column.field\" *ngSwitchCase=\"'numeric_input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-inputNumber [(ngModel)]=\"column.value\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"></p-inputNumber>\n </ng-template>\n </p-columnFilter>\n\n <!-- lookup input on Header For Filter-->\n <p-columnFilter\n [type]=\"'text'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'lookup_input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <div class=\"close-icon-wrapper\">\n <input\n id=\"lookUp_filter\"\n autocomplete=\"off\"\n type=\"text\"\n [(ngModel)]=\"column.value\"\n (click)=\"setFilterLookup(column)\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"\n pInputText\n />\n <div><button\n *ngIf=\"column.value\"\n icon=\"pi pi-times\"\n pButton\n type=\"button\"\n (click)=\"lookupClearValue(column)\"\n ></button></div>\n </div>\n </ng-template>\n </p-columnFilter>\n\n <!-- checkbox on Header For Filter-->\n <p-columnFilter type=\"boolean\" [field]=\"column.field\" *ngSwitchCase=\"'checkbox'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-checkbox [binary]=\"true\" [disabled]=\"column.disabled\" [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onChange)=\"setFilterFocusOut(column, filter, $event)\" (click)=\"clickCheckBoxFilter(column)\"\n (keydown)=\"backspaceEvent($event, column)\">\n </p-checkbox>\n </ng-template>\n </p-columnFilter>\n\n <!-- multiSelect on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'multi-select'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-multiSelect [ngModel]=\"value\" [options]=\"column.filter.data || []\" (onChange)=\"filter($event.value)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n placeholder=\"Any\" optionLabel=\"label\">\n </p-multiSelect>\n </ng-template>\n </p-columnFilter>\n\n <!-- dropdown on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'dropdown'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-dropdown [showClear]=\"true\" [placeholder]=\"'Select'\" [filter]=\"column.allowSearch\"\n [(ngModel)]=\"column.value\" (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"></p-dropdown>\n </ng-template>\n </p-columnFilter>\n\n <!-- calendar on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'calendar'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-calendar [placeholder]=\"'Select-Date'\" [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\" appendTo=\"body\" (onSelect)=\"selectDate(column)\"\n [inputId]=\"column.field\" hourFormat=\"12\" (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\n [showButtonBar]=\"true\" (onClose)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\" (onClearClick)=\"backspaceEvent($event, column)\">\n </p-calendar>\n </ng-template>\n </p-columnFilter>\n\n <!-- Default Filter For Header -->\n <p-columnFilter [type]=\"\n column.type && column.type !== 'link' ? column.type : 'text'\n \" [field]=\"column.field\" display=\"menu\" *ngSwitchDefault>\n </p-columnFilter>\n </span>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n </tr>\n </ng-template>\n\n <!-- Body columns on Grid -->\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [ngClass]=\"row?.highlightrow ? 'highlighted-row' : ''\"\n [class]=\"wordWrap ? 'p-selectable-row' : 'noWrap p-selectable-row'\" (click)=\"!editing && handleRowClick(row)\"\n [pEditableRow]=\"row\" #gridRow [id]=\"row[dataKey]\">\n <td *ngIf=\"allowSelection\" class=\"grid-component-selection\">\n <p-tableRadioButton [value]=\"row\" *ngIf=\"selectionType === 'single'\"\n (click)=\"multiCheckBoxOnclick(row , $event, true)\"></p-tableRadioButton>\n <p-tableCheckbox [value]=\"row\" *ngIf=\"selectionType === 'multiple'\"\n (click)=\"multiCheckBoxOnclick(row, $event)\"></p-tableCheckbox>\n </td>\n\n <!-- first actions column -->\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class=\"setActionColumnWidth\">\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n\n <!-- Grid Rows Data Bindings Start -->\n <td *ngFor=\"let column of selectedColumns\" [ngSwitch]=\"column.type\" >\n\n <!-- Boolean column on Grid -->\n <span *ngSwitchCase=\"'boolean'\">\n <td *ngIf=\"!editing\">\n <p-checkbox [disabled]=\"!column.allowEdit ?? true\" [binary]=\"true\" (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\" (blur)=\"onFocusOutEvent(column, row)\" \n [(ngModel)]=\" \n row[column.field] &&\n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y'||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? Checked\n : unChecked\n \">\n </p-checkbox>\n </td>\n <td *ngIf=\"editing\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for edit checkBox -->\n <p-checkbox (click)=\"onClickEvent(column, row)\" (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n [disabled]=\"allowDisabled(column,row)\" [binary]=\"true\" [(ngModel)]=\"\n row[column.field] && \n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y' ||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? editModeChecked\n : editModeunCkecked\n \" (blur)=\"onFocusOutEvent(column, row)\"></p-checkbox>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ row[column.field] }}\n </ng-template>\n </p-cellEditor>\n </td>\n </span>\n\n <!-- link column on Grid -->\n <span *ngSwitchCase=\"'link'\">\n <!-- link column for HyperLink Case -->\n <span *ngIf=\"column.allowSave === false\">\n <span *ngIf=\"column.target !== '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n <!-- <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a> -->\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n </span>\n <span *ngIf=\"column.target === '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n <!-- <a [href]=\"row[column.field + '_obj']?.hyperlink\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a> -->\n <a [href]=\"row[column.field + '_obj']?.hyperlink\">\n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n </span>\n </span>\n <!-- link column for Edit Case -->\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"(column.editable === true || column.editable === undefined) && (column.editLink === true || column.editLink === undefined)\">\n <input *ngIf=\"!row.isNew\" pInputText (click)=\"onClickEvent(column, row)\" type=\"text\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n <input pInputText *ngIf=\"row.isNew\" type=\"text\" (click)=\"onClickEvent(column, row)\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n </span>\n <span *ngIf=\"column.editable === false\"\n [class]=\"allowDisabled(column,row) ? 'disable-link' : 'hyperlink'\">\n {{\n setConditionBaseValue(row, column)\n }}\n </span>\n <span *ngIf=\"column.editLink === false\">\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span>\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n\n <!-- Iframe column on Grid -->\n <span *ngSwitchCase=\"'iframe'\">\n <span class=\"custom-link\" (click)=\"gridIFrame(column, row[column.field + '_obj']?.hyperlink, row)\" [title]=\"\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : row[column.field]\n\n \"\n > \n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText ? column.displayText : row[column.field]\n }}\n </ng-template>\n </span>\n </span>\n\n <!-- dialog column on Grid -->\n <span *ngSwitchCase=\"'dialog'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\" \n [title]=\"setConditionBaseValue(row, column) \"\n >\n <span *ngIf=\"column.editable === true\">\n <input\n readonly\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n type=\"text\"\n pInputText\n (click)=\"selectLookupField(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [name]=\"row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\"\n />\n </span>\n <span\n *ngIf=\"column.editable === false || column.editable === undefined\n \" [class]=\"\n allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\n \" (click)=\"openGridDialog(column, row)\">\n\n <i *ngIf=\"column.icon; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ !column.displayText && row.isNew ? '' : setConditionBaseValue(row, column)\n }}</ng-template>\n\n\n </span>\n </span>\n\n <span *ngIf=\"row[column.field + '_secondType'] === 'date'\" [title]=\"\n row[column.field]\n | date: (column.format ? column.format : 'MM/dd/YY')\n \">\n <p-calendar [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [showTime]=\"column.showTime\" (click)=\"onClickEvent(column, row)\"\n [timeOnly]=\"column.timeOnly\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"></p-calendar>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span\n [class]=\"row.disabled == false ? 'custom-link' : column.editable === false ? 'custom-link' : allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\"\n (click)=\"openGridDialog(column, row)\" *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column)\">\n <i *ngIf=\"column.icon; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ setConditionBaseValue(row, column) }}</ng-template>\n\n <!-- {{ setConditionBaseValue(row, column) }} -->\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- lookup Input column on Grid -->\n <span *ngSwitchCase=\"'lookup_input'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"close-icon-wrapper\">\n <input readonly type=\"text\" pInputText\n [(ngModel)]=\"(column.disabled || column.editable === false) && column.displayField ? row[column.displayField] : typeOf(row[column.field]) === 'object' ?\n row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"row[column.field]\"\n\n (keyup.tab)=\"selectLookupField(column, row)\" [disabled]=\"allowDisabled(column,row)\"\n (click)=\"selectLookupField(column, row)\" [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\" (blur)=\"onFocusOutEvent(column, row)\" />\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\n ? row[column.field].text\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\"\n (click)=\"lookupClearValue(column,row)\"></button></div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"column.linkId\">\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\">\n {{\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </a>\n </span>\n <span *ngIf=\"!column.linkId\" [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\n (click)=\"openLookupHyperlink(column, row)\">\n {{\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Numeric Input column on Grid -->\n <span *ngSwitchCase=\"'numeric'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for Currency && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" [class]=\"\n column.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [showButtons]=\"!column.format ? true : false\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"column.field\"\n [disabled]=\"allowDisabled(column,row)\" (ngModelChange)=\"onChangeEvent(column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" [mode]=\"\n column.format &&\n column.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.currency\n ? column.format.formatParams.currency\n : 'USD'\n \" [locale]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.locale\n ? column.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\" [suffix]=\"\n column.format &&\n column.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"setNumericFormat(column, row)\">\n {{\n setNumericFormat(column, row)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Button column on Grid -->\n <span>\n <div *ngSwitchCase=\"'add_button'\">\n <button *ngIf=\"!row.hidegridbtn\" pButton type=\"button\"\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\n [name]=\"column.header\" class=\"merge-btn\" [disabled]=\"allowDisabled(column,row)\"\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\n class=\"grid-component-grid-add-btn\" (click)=\"onClickButton(column, row)\"></button>\n </div>\n </span>\n\n <!-- Date column on Grid -->\n <span *ngSwitchCase=\"'date'\" [title]=\"setConditionBaseValue(row,column)\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-calendar\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [defaultDate]=\"defaultDate\"\n [stepMinute]=\"column.minutesInterval ? column.minutesInterval : 1\" [showTime]=\"column.showTime\"\n [timeOnly]=\"column.timeOnly\" [dateFormat]=\"column.format ? column.format.type : calendarFormat\"\n (keyup)=\"calenderInputValue(column, row)\" (onShow)=\"onClickEvent(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [showButtonBar]=\"!column.timeOnly\"></p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ setConditionBaseValue(row,column) }}\n </ng-template>\n </p-cellEditor>\n </span>\n <span *ngSwitchDefault>\n <span [ngSwitch]=\"column.type\">\n <!-- Dropdown column on Grid -->\n <span *ngSwitchCase=\"'dropdown'\" [class]=\"dropdownInput ? '' : 'output-dropdown'\" [title]=\"\n setDropdwonReadOnlyValue(row, column)\n \">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown *ngIf=\"!row[column.field]?.action?.hidden\" [options]=\"\n row[column.field+'_data']\n ? row[column.field+'_data']\n : column.data\n \"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\" [placeholder]=\"row[column.displayField]\n ? row[column.displayField]\n : row[column.field] ? row[column.field] : 'Select'\" [showClear]=\"row[column.field] ? true : false\"\n [optionLabel]=\"column.optionLabel\" (click)=\"onClickEvent(column, row)\"\n [optionValue]=\"column.optionValue\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (blur)=\"onFocusOutEvent(column, row)\"\n (onChange)=\"onChangeEvent(column, row)\" [filter]=\"column.allowSearch\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"!row[column.field]?.action?.hidden\">\n {{\n setDropdwonReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- MultiSelect column on Grid -->\n <span *ngSwitchCase=\"'multi-select'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-multiSelect [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" type=\"text\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [options]=\"column.data\" [optionLabel]=\"column.optionLabel\" [optionValue]=\"column.optionValue\"\n (onChange)=\"onChangeEvent(column, row)\" (onPanelShow)=\"showOption(column, row)\"\n (click)=\"onClickEvent(column, row)\" [appendTo]=\"'body'\" (blur)=\"onFocusOutEvent(column, row)\">\n </p-multiSelect>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"\n row[column.displayField]\n ? row[column.displayField]\n : setMultiSelectData(column, row[column.field])\n \">\n {{\n row[column.displayField]\n ? row[column.displayField] :\n setMultiSelectData(column, row[column.field])\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngSwitchCase=\"'AutoComplete'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-autoComplete \n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" \n [name]=\"column.header\"\n [suggestions]=\"column.data\" \n (onSelect)=\"autoCompleteSelectedValue(row, column, $event)\"\n [field]=\"column.optionLabel ? column.optionLabel?.toLowerCase() : column.displayField ? column.displayField?.toLowerCase() : column.field?.toLowerCase()\"\n [(ngModel)]=\"row[column.field]?.action && row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] :\n typeOf(row[column.field]) === 'object' && row[column.field]?.text ?\n row[column.field]?.text :\n row[column.field]\"\n [dropdown]=\"column.showOption\" \n (ngModelChange)=\"onChangeEvent(column, row)\"\n (click)=\"onClickEvent(column, row)\" \n (completeMethod)=\"autoSearch($event, column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" \n [disabled]=\"allowDisabled(column,row)\" \n [multiple]=\"true\"\n (keydown.enter)=\"onAutoCompleteFocusOut($event, column, row)\">\n </p-autoComplete>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\n </span>\n </span>\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.field] && !column.displayField\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.field] : value[column.field] + ';' : value[column.field] }}\n </span>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngSwitchCase=\"'report'\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n <ng-template pTemplate=\"input\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <span *ngSwitchDefault>\n <!-- Input column on Grid -->\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [(ngModel)]=\"row.undefined ? '' : allowDisabled(column,row) && row[column.displayField] ? row[column.displayField] : typeOf(row[column.field]) === 'object' && (row[column.field]?.action || row[column.field]?.text) ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\" (change)=\"onChangeEvent(column, row)\"\n (click)=\"onClickButton(column, row)\" *ngIf=\"column.field !== dataKey; else locked_field\" />\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span (click)=\"onClickEvent(column, row)\" [title]=\"\n column.displayText ? column.displayText : \n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n \">\n {{\n row[column.field]?.action ? row[column.field]?.text : column.displayText ? column.displayText :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n </span>\n </td>\n <!-- Grid Rows Data Bindings End -->\n\n <!-- Action column on Grid -->\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class='setActionColumnWidth'>\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n </tr>\n </ng-template>\n\n <!-- Footer columns on Grid -->\n <ng-template pTemplate=\"footer\">\n <tr *ngIf=\"aggregateFooter\">\n <td\n *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngFor=\"let outerColumn of selectedColumns\" class=\"grid-component-outer-column\">\n <div *ngFor=\"let innerColumn of selectedColumns\">\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\n <div\n *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field?.toLowerCase() === outerColumn.field?.toLowerCase()) || aggr.displayField && aggr.displayField?.toLowerCase() === outerColumn.field?.toLowerCase())\">\n <div [innerHTML]=\"aggr.aggrValue\">\n </div>\n </div>\n </div>\n </div>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\"></td>\n </tr>\n </ng-template>\n\n <!-- Footer for Empty Message columns on Grid -->\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"grid-component no-records-found\">\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>\n</div>",
|
|
6245
|
+
template: "<div class=\"grid-component-wrapper\">\n<p-confirmDialog [style]=\"{ width: '50vw' }\" *ngIf=\"useInlineCRUD\" key=\"handleInlineCRUD\"></p-confirmDialog>\n<p-confirmDialog class=\"grid-component-confirm-dialog\" *ngIf=\"columnActions.length > 0\"\n key=\"handlecolumnActions\"></p-confirmDialog>\n<div class=\"p-mb-2 p-d-flex p-ai-center\" *ngIf=\"\n allowColumnToggle ||\n rowActions.length > 0 ||\n useInlineCRUD ||\n allowExportToExcel ||\n allowExportToPdf ||\n clearGridFilter\n \">\n <!-- button for apply value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton type=\"button\" icon=\"pi pi-search\" (click)=\"applyGirdFilterBtn()\"\n [class]=\"\n searchGridFilter ? 'p-button-success p-mr-2 p-ml-1' : 'hide-clear-filter-button'\n \"></button>\n\n <!-- button for clear value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton id=\"clearGridFilterValuesButton\" type=\"button\"\n icon=\"pi pi-replay\" (click)=\"cleargridFiltersValue()\" [class]=\"\n clearGridFilter ? '' : 'hide-clear-filter-button'\n \" class='global-refresh global-btn'\n ></button>\n\n <!-- button for edit all grid at once -->\n <!-- <button\n pButton\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\n id=\"editBtnGlobalvalues\"\n type=\"button\"\n [label]=\"'Edit'\"\n class=\"p-mr-2 ui-button-info\"\n icon=\"pi pi-pencil\"\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\n (click)=\"editAllRowsAtOnce()\"\n ></button> -->\n\n <!-- button for save all grid at once -->\n <button pButton *ngIf=\"editAllRows && editRowPermission &&!hideGridSaveButton\" id=\"saveAllGridValues\"\n icon=\"pi pi-check\" [label]=\"'Save'\"\n [class]=\"hideGridSaveButton ? 'hide-clear-filter-button' : 'p-mr-2 ui-button-info'\" type=\"button\"\n (click)=\"saveAllRowsAtOnce()\"></button>\n\n <!-- button for cancel all grid at once -->\n <button pButton *ngIf=\"editAllRows && !hideGridCancelButton\" id=\"editBtnGlobalvalues\" type=\"button\" [label]=\"'Cancel'\"\n icon=\"pi pi-times\" class=\"p-mr-2 ui-button-info\" (click)=\"cancelAllRowsAtOnce()\"></button>\n\n <!-- header Button for multiSelect on Grid -->\n <span *ngIf=\"allowColumnToggle\">\n <p-multiSelect [showToggleAll]=\"false\" [options]=\"columns\" [(ngModel)]=\"selectedColumns\" optionLabel=\"header\"\n selectedItemsLabel=\"{0} columns selected\" class=\"grid-component-multiselect-header-button\" placeholder=\"Choose Columns\">\n </p-multiSelect>\n </span>\n\n <!-- <button\n pButton\n *ngIf=\"showRefreshBtn\"\n type=\"button\"\n [label]=\"'Refresh'\"\n icon=\"pi pi-refresh\"\n (click)=\"refresh()\"\n class=\"ui-button-info p-mr-2\"\n></button> -->\n\n <!-- header Button for Adding new Row on Grid -->\n <button pButton *ngIf=\"useInlineCRUD && addRowPermission && !hideAddBtn\" type=\"button\" [label]=\"'Add'\" pAddRow\n [table]=\"componentTableRef\" [newRow]=\"newGridRow\" [id]=\"dataKey\" pTooltip=\"Add New Row\" tooltipPosition=\"bottom\"\n icon=\"pi pi-plus\" class=\"ui-button-info global-add-btn\" (click)=\"addNewRow(newGridRow, true)\" pRipple></button>\n\n <div *ngFor=\"let reportButton of reportButtons\" class=\"ui-button-info p-mr-2 p-ml-2\">\n <se-generate-report-btn [repId]=\"reportButton.reportId\" [label]=\"reportButton.label\" [params]=\"reportButton.params\"\n [showDialog]=\"reportButton.showDialog\"></se-generate-report-btn>\n </div>\n\n <!-- header Button for Excel File on Grid -->\n <button *ngIf=\"allowExportToExcel\" type=\"button\" pButton icon=\"pi pi-file-excel\" (click)=\"exportExcel()\"\n class=\"p-button-success p-mt-0\" pTooltip=\"Export to Excel\" tooltipPosition=\"bottom\" pRipple></button>\n\n <!-- header Button for PDF File on Grid -->\n <button *ngIf=\"allowExportToPdf\" type=\"button\" pButton icon=\"pi pi-file-pdf\" (click)=\"exportPdf()\"\n class=\"p-button-warning p-mr-2\" pTooltip=\"Export to Pdf\" tooltipPosition=\"bottom\" pRipple></button>\n</div>\n\n<p-table *ngIf=\"!isGridHidden\" id=\"my-table\" [value]=\"rowsData\" [columns]=\"selectedColumns\" sortMode=\"multiple\"\n [lazy]=\"useServerSideEvents\" [paginator]=\"pagination\" [alwaysShowPaginator]=\"false\" [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\n class=\"grid-component-main-table\"\n [rows]=\"defaultRows\" [totalRecords]=\"totalRecords\" [rowsPerPageOptions]=\"setPaginationLength\"\n [showCurrentPageReport]=\"showCurrentPageReport\" currentPageReportTemplate=\"Showing {first} to {last} of {{\n totalRecords\n }} entries\" [loading]=\"autoLoadData && !setGridRefreshTime ? loading : false\"\n (onSort)=\"sortDisabled ?? handleSortChange($event)\" (onFilter)=\"handleFilterChange($event)\"\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\" (onPage)=\"handleServerSidePagination($event)\" #dt\n [dataKey]=\"dataKey\" [(selection)]=\"selectedRows\" selectionMode=\"multiple\" [scrollable]=\"scrollable\" [scrollHeight]=\"scrollHeight\"\n editMode=\"row\" [editingRowKeys]=\"editingRowKeys\" [autoLayout]=\"true\" [rowHover]=\"rowHover\"\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\">\n <!-- header Button for Action on Grid -->\n <div *ngIf=\"rowActions.length > 0 && rowActions.length > 0\" class=\"p-d-flex p-jc-end\">\n <span *ngFor=\"let rowAction of rowActions\">\n <button pButton type=\"button\" [label]=\"rowAction.title\" [class]=\"rowAction.class\"\n (click)=\"rowAction.onClick(selectedRows)\"></button>\n </span>\n </div>\n\n <!-- header columns on Grid -->\n <ng-template pTemplate=\"header\" let-cols>\n <tr>\n <th *ngIf=\"allowSelection && selectionType === 'multiple'\" class=\"grid-component-selection\">\n <div class=\"grid-component-table-header-inner-div-2\n table-header-inner-div div-last-inner-html-is-icon\">\n <span class=\"flex-grow-1\"> {{allowSelectionHeader}} </span>\n <p-tableHeaderCheckbox *ngIf=\"selectionType === 'multiple'\" binary=\"true\"\n (click)=\"multiCheckBoxOnclick(rowsData, $event)\"></p-tableHeaderCheckbox>\n </div>\n </th>\n <th *ngIf=\"allowSelection && selectionType === 'single'\" \n class=\"grid-component-selection\">\n Select\n </th>\n <th\n *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n Actions\n </th>\n <th *ngFor=\"let column of cols\" [pSortableColumn]=\"column.field\"\n [class]=\"column.type === 'boolean' ? 'checkbox-th' : ''\"\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\n class=\"column?.type === 'multiple' ? 'grid-component-select-th-column-type-multiple' : ''\">\n <div class=\"grid-component-table-header-inner-div-1 table-header-inner-div div-last-inner-html-is-icon\"> \n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\" class=\"grid-component required-star\">*</span>\n <p-sortIcon *ngIf=\"column.sorting !== false && column?.type !== 'multiple'\"\n [field]=\"column.field\"></p-sortIcon>\n </div>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\n </tr>\n <tr *ngIf=\"filtering && !hideFilter\">\n <th *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n <th *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n </th>\n <th *ngFor=\"let column of cols\" [ngSwitch]=\"column?.filter?.type\" [style]=\"column.style\"\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\">\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\n <!-- Text input on Header For Filter-->\n <p-columnFilter [type]=\"'text'\" [field]=\"column.field\" *ngSwitchCase=\"'input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <input type=\"text\" [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\" pInputText />\n </ng-template>\n </p-columnFilter>\n\n <!-- Numeric input on Header For Filter-->\n <p-columnFilter [type]=\"'numeric'\" [field]=\"column.field\" *ngSwitchCase=\"'numeric_input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-inputNumber [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"></p-inputNumber>\n </ng-template>\n </p-columnFilter>\n\n <!-- lookup input on Header For Filter-->\n <p-columnFilter\n [type]=\"'text'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'lookup_input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <div class=\"close-icon-wrapper\">\n <input\n id=\"lookUp_filter\"\n autocomplete=\"off\"\n type=\"text\"\n [(ngModel)]=\"column.filterValue\"\n (click)=\"setFilterLookup(column)\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"\n pInputText\n />\n <div><button\n *ngIf=\"column.filterValue\"\n icon=\"pi pi-times\"\n pButton\n type=\"button\"\n (click)=\"lookupClearValue(column)\"\n ></button></div>\n </div>\n </ng-template>\n </p-columnFilter>\n\n <!-- checkbox on Header For Filter-->\n <p-columnFilter type=\"boolean\" [field]=\"column.field\" *ngSwitchCase=\"'checkbox'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-checkbox [binary]=\"true\" [disabled]=\"column.disabled\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onChange)=\"setFilterFocusOut(column, filter, $event)\" (click)=\"clickCheckBoxFilter(column)\"\n (keydown)=\"backspaceEvent($event, column)\">\n </p-checkbox>\n </ng-template>\n </p-columnFilter>\n\n <!-- multiSelect on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'multi-select'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-multiSelect [ngModel]=\"column.filterValue\" [options]=\"column.filter.data || []\" (onChange)=\"filter($event.value)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n placeholder=\"Any\" optionLabel=\"label\">\n </p-multiSelect>\n </ng-template>\n </p-columnFilter>\n\n <!-- dropdown on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'dropdown'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-dropdown [showClear]=\"true\" [placeholder]=\"'Select'\" [filter]=\"column.allowSearch\"\n [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"></p-dropdown>\n </ng-template>\n </p-columnFilter>\n\n <!-- calendar on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'calendar'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-calendar [placeholder]=\"'Select-Date'\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\" appendTo=\"body\" (onSelect)=\"selectDate(column)\"\n [inputId]=\"column.field\" hourFormat=\"12\" (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\n [showButtonBar]=\"true\" (onClose)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\" (onClearClick)=\"backspaceEvent($event, column)\">\n </p-calendar>\n </ng-template>\n </p-columnFilter>\n\n <!-- Default Filter For Header -->\n <p-columnFilter [type]=\"\n column.type && column.type !== 'link' ? column.type : 'text'\n \" [field]=\"column.field\" display=\"menu\" *ngSwitchDefault>\n </p-columnFilter>\n </span>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n </tr>\n </ng-template>\n\n <!-- Body columns on Grid -->\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [ngClass]=\"row?.highlightrow ? 'highlighted-row' : ''\"\n [class]=\"wordWrap ? 'p-selectable-row' : 'noWrap p-selectable-row'\" (click)=\"!editing && handleRowClick(row)\"\n [pEditableRow]=\"row\" #gridRow [id]=\"row[dataKey]\">\n <td *ngIf=\"allowSelection\" class=\"grid-component-selection\">\n <p-tableRadioButton [value]=\"row\" *ngIf=\"selectionType === 'single'\"\n (click)=\"multiCheckBoxOnclick(row , $event, true)\"></p-tableRadioButton>\n <p-tableCheckbox [value]=\"row\" *ngIf=\"selectionType === 'multiple'\"\n (click)=\"multiCheckBoxOnclick(row, $event)\"></p-tableCheckbox>\n </td>\n\n <!-- first actions column -->\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class=\"setActionColumnWidth\">\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n\n <!-- Grid Rows Data Bindings Start -->\n <td *ngFor=\"let column of selectedColumns\" [ngSwitch]=\"column.type\" >\n\n <!-- Boolean column on Grid -->\n <span *ngSwitchCase=\"'boolean'\">\n <td *ngIf=\"!editing\">\n <p-checkbox [disabled]=\"!column.allowEdit ?? true\" [binary]=\"true\" (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\" (blur)=\"onFocusOutEvent(column, row)\" \n [(ngModel)]=\" \n row[column.field] &&\n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y'||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? Checked\n : unChecked\n \">\n </p-checkbox>\n </td>\n <td *ngIf=\"editing\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for edit checkBox -->\n <p-checkbox (click)=\"onClickEvent(column, row)\" (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n [disabled]=\"allowDisabled(column,row)\" [binary]=\"true\" [(ngModel)]=\"\n row[column.field] && \n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y' ||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? editModeChecked\n : editModeunCkecked\n \" (blur)=\"onFocusOutEvent(column, row)\"></p-checkbox>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ row[column.field] }}\n </ng-template>\n </p-cellEditor>\n </td>\n </span>\n\n <!-- link column on Grid -->\n <span *ngSwitchCase=\"'link'\">\n <!-- link column for HyperLink Case -->\n <span *ngIf=\"column.allowSave === false\">\n <span *ngIf=\"column.target !== '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n <!-- <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a> -->\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n </span>\n <span *ngIf=\"column.target === '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n <!-- <a [href]=\"row[column.field + '_obj']?.hyperlink\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a> -->\n <a [href]=\"row[column.field + '_obj']?.hyperlink\">\n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n </span>\n </span>\n <!-- link column for Edit Case -->\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"(column.editable === true || column.editable === undefined) && (column.editLink === true || column.editLink === undefined)\">\n <input *ngIf=\"!row.isNew\" pInputText (click)=\"onClickEvent(column, row)\" type=\"text\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n <input pInputText *ngIf=\"row.isNew\" type=\"text\" (click)=\"onClickEvent(column, row)\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n </span>\n <span *ngIf=\"column.editable === false\"\n [class]=\"allowDisabled(column,row) ? 'disable-link' : 'hyperlink'\">\n {{\n setConditionBaseValue(row, column)\n }}\n </span>\n <span *ngIf=\"column.editLink === false\">\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span>\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n\n <!-- Iframe column on Grid -->\n <span *ngSwitchCase=\"'iframe'\">\n <span class=\"custom-link\" (click)=\"gridIFrame(column, row[column.field + '_obj']?.hyperlink, row)\" [title]=\"\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : row[column.field]\n\n \"\n > \n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText ? column.displayText : row[column.field]\n }}\n </ng-template>\n </span>\n </span>\n\n <!-- dialog column on Grid -->\n <span *ngSwitchCase=\"'dialog'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\" \n [title]=\"setConditionBaseValue(row, column) \"\n >\n <span *ngIf=\"column.editable === true\">\n <input\n readonly\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n type=\"text\"\n pInputText\n (click)=\"selectLookupField(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [name]=\"row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\"\n />\n </span>\n <span\n *ngIf=\"column.editable === false || column.editable === undefined\n \" [class]=\"\n allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\n \" (click)=\"openGridDialog(column, row)\">\n\n <i *ngIf=\"column.icon; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ !column.displayText && row.isNew ? '' : setConditionBaseValue(row, column)\n }}</ng-template>\n\n\n </span>\n </span>\n\n <span *ngIf=\"row[column.field + '_secondType'] === 'date'\" [title]=\"\n row[column.field]\n | date: (column.format ? column.format : 'MM/dd/YY')\n \">\n <p-calendar [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [showTime]=\"column.showTime\" (click)=\"onClickEvent(column, row)\"\n [timeOnly]=\"column.timeOnly\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"></p-calendar>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span\n [class]=\"row.disabled == false ? 'custom-link' : column.editable === false ? 'custom-link' : allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\"\n (click)=\"openGridDialog(column, row)\" *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column)\">\n <i *ngIf=\"column.icon; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ setConditionBaseValue(row, column) }}</ng-template>\n\n <!-- {{ setConditionBaseValue(row, column) }} -->\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- lookup Input column on Grid -->\n <span *ngSwitchCase=\"'lookup_input'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"close-icon-wrapper\">\n <input readonly type=\"text\" pInputText\n [(ngModel)]=\"(column.disabled || column.editable === false) && column.displayField ? row[column.displayField] : typeOf(row[column.field]) === 'object' ?\n row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"row[column.field]\"\n\n (keyup.tab)=\"selectLookupField(column, row)\" [disabled]=\"allowDisabled(column,row)\"\n (click)=\"selectLookupField(column, row)\" [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\" (blur)=\"onFocusOutEvent(column, row)\" />\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\n ? row[column.field].text\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\"\n (click)=\"lookupClearValue(column,row)\"></button></div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"column.linkId\">\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\">\n {{\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </a>\n </span>\n <span *ngIf=\"!column.linkId\" [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\n (click)=\"openLookupHyperlink(column, row)\">\n {{\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Numeric Input column on Grid -->\n <span *ngSwitchCase=\"'numeric'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for Currency && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" [class]=\"\n column.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [showButtons]=\"!column.format ? true : false\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"column.field\"\n [disabled]=\"allowDisabled(column,row)\" (ngModelChange)=\"onChangeEvent(column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" [mode]=\"\n column.format &&\n column.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.currency\n ? column.format.formatParams.currency\n : 'USD'\n \" [locale]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.locale\n ? column.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\" [suffix]=\"\n column.format &&\n column.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"setNumericFormat(column, row)\">\n {{\n setNumericFormat(column, row)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Button column on Grid -->\n <span>\n <div *ngSwitchCase=\"'add_button'\">\n <button *ngIf=\"!row.hidegridbtn\" pButton type=\"button\"\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\n [name]=\"column.header\" class=\"merge-btn\" [disabled]=\"allowDisabled(column,row)\"\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\n class=\"grid-component-grid-add-btn\" (click)=\"onClickButton(column, row)\"></button>\n </div>\n </span>\n\n <!-- Date column on Grid -->\n <span *ngSwitchCase=\"'date'\" [title]=\"setConditionBaseValue(row,column)\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-calendar\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [defaultDate]=\"defaultDate\"\n [stepMinute]=\"column.minutesInterval ? column.minutesInterval : 1\" [showTime]=\"column.showTime\"\n [timeOnly]=\"column.timeOnly\" [dateFormat]=\"column.format ? column.format.type : calendarFormat\"\n (keyup)=\"calenderInputValue(column, row)\" (onShow)=\"onClickEvent(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [showButtonBar]=\"!column.timeOnly\"></p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ setConditionBaseValue(row,column) }}\n </ng-template>\n </p-cellEditor>\n </span>\n <span *ngSwitchDefault>\n <span [ngSwitch]=\"column.type\">\n <!-- Dropdown column on Grid -->\n <span *ngSwitchCase=\"'dropdown'\" [class]=\"dropdownInput ? '' : 'output-dropdown'\" [title]=\"\n setDropdwonReadOnlyValue(row, column)\n \">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown *ngIf=\"!row[column.field]?.action?.hidden\" [options]=\"\n row[column.field+'_data']\n ? row[column.field+'_data']\n : column.data\n \"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\" [placeholder]=\"row[column.displayField]\n ? row[column.displayField]\n : row[column.field] ? row[column.field] : 'Select'\" [showClear]=\"row[column.field] ? true : false\"\n [optionLabel]=\"column.optionLabel\" (click)=\"onClickEvent(column, row)\"\n [optionValue]=\"column.optionValue\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (blur)=\"onFocusOutEvent(column, row)\"\n (onChange)=\"onChangeEvent(column, row)\" [filter]=\"column.allowSearch\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"!row[column.field]?.action?.hidden\">\n {{\n setDropdwonReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- MultiSelect column on Grid -->\n <span *ngSwitchCase=\"'multi-select'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-multiSelect [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" type=\"text\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [options]=\"column.data\" [optionLabel]=\"column.optionLabel\" [optionValue]=\"column.optionValue\"\n (onChange)=\"onChangeEvent(column, row)\" (onPanelShow)=\"showOption(column, row)\"\n (click)=\"onClickEvent(column, row)\" [appendTo]=\"'body'\" (blur)=\"onFocusOutEvent(column, row)\">\n </p-multiSelect>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"\n row[column.displayField]\n ? row[column.displayField]\n : setMultiSelectData(column, row[column.field])\n \">\n {{\n row[column.displayField]\n ? row[column.displayField] :\n setMultiSelectData(column, row[column.field])\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngSwitchCase=\"'AutoComplete'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-autoComplete \n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" \n [name]=\"column.header\"\n [suggestions]=\"column.data\" \n (onSelect)=\"autoCompleteSelectedValue(row, column, $event)\"\n [field]=\"column.optionLabel ? column.optionLabel?.toLowerCase() : column.displayField ? column.displayField?.toLowerCase() : column.field?.toLowerCase()\"\n [(ngModel)]=\"row[column.field]?.action && row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] :\n typeOf(row[column.field]) === 'object' && row[column.field]?.text ?\n row[column.field]?.text :\n row[column.field]\"\n [dropdown]=\"column.showOption\" \n (ngModelChange)=\"onChangeEvent(column, row)\"\n (click)=\"onClickEvent(column, row)\" \n (completeMethod)=\"autoSearch($event, column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" \n [disabled]=\"allowDisabled(column,row)\" \n [multiple]=\"true\"\n (keydown.enter)=\"onAutoCompleteFocusOut($event, column, row)\">\n </p-autoComplete>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\n </span>\n </span>\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.field] && !column.displayField\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.field] : value[column.field] + ';' : value[column.field] }}\n </span>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngSwitchCase=\"'report'\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n <ng-template pTemplate=\"input\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <span *ngSwitchDefault>\n <!-- Input column on Grid -->\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [(ngModel)]=\"row.undefined ? '' : allowDisabled(column,row) && row[column.displayField] ? row[column.displayField] : typeOf(row[column.field]) === 'object' && (row[column.field]?.action || row[column.field]?.text) ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\" (change)=\"onChangeEvent(column, row)\"\n (click)=\"onClickButton(column, row)\" *ngIf=\"column.field !== dataKey; else locked_field\" />\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span (click)=\"onClickEvent(column, row)\" [title]=\"\n column.displayText ? column.displayText : \n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n \">\n {{\n row[column.field]?.action ? row[column.field]?.text : column.displayText ? column.displayText :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n </span>\n </td>\n <!-- Grid Rows Data Bindings End -->\n\n <!-- Action column on Grid -->\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class='setActionColumnWidth'>\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n </tr>\n </ng-template>\n\n <!-- Footer columns on Grid -->\n <ng-template pTemplate=\"footer\">\n <tr *ngIf=\"aggregateFooter\">\n <td\n *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngFor=\"let outerColumn of selectedColumns\" class=\"grid-component-outer-column\">\n <div *ngFor=\"let innerColumn of selectedColumns\">\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\n <div\n *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field?.toLowerCase() === outerColumn.field?.toLowerCase()) || aggr.displayField && aggr.displayField?.toLowerCase() === outerColumn.field?.toLowerCase())\">\n <div [innerHTML]=\"aggr.aggrValue\">\n </div>\n </div>\n </div>\n </div>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\"></td>\n </tr>\n </ng-template>\n\n <!-- Footer for Empty Message columns on Grid -->\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"grid-component no-records-found\">\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>\n</div>",
|
|
6245
6246
|
styles: [":host ::ng-deep .p-column-filter-clear-button{display:none}:host ::ng-deep .hide-table-filter .pi-filter:before{display:none}:host ::ng-deep .hide-filter-icon .p-column-filter-menu-button{display:none}.disable-link{opacity:.5}.hide-clear-filter-button{display:none!important}\n"]
|
|
6246
6247
|
},] }
|
|
6247
6248
|
];
|
|
@@ -6906,7 +6907,9 @@
|
|
|
6906
6907
|
FormComponent.prototype.ngOnChanges = function () {
|
|
6907
6908
|
var _this = this;
|
|
6908
6909
|
var _a;
|
|
6909
|
-
if (this.form &&
|
|
6910
|
+
if (this.form &&
|
|
6911
|
+
this.form.formSections &&
|
|
6912
|
+
this.form.formSections.length > 0) {
|
|
6910
6913
|
// start cardList reference break functionality
|
|
6911
6914
|
var formValues_1 = Object.assign({}, this.form);
|
|
6912
6915
|
(_a = formValues_1.formSections) === null || _a === void 0 ? void 0 : _a.forEach(function (formSection) {
|
|
@@ -6921,22 +6924,32 @@
|
|
|
6921
6924
|
field['previousValue'] = field === null || field === void 0 ? void 0 : field.value;
|
|
6922
6925
|
}
|
|
6923
6926
|
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.CALENDAR &&
|
|
6924
|
-
(field === null || field === void 0 ? void 0 : field.timeOnly) &&
|
|
6927
|
+
(field === null || field === void 0 ? void 0 : field.timeOnly) &&
|
|
6928
|
+
(((_a = field === null || field === void 0 ? void 0 : field.value) === null || _a === void 0 ? void 0 : _a.toString().includes('AM')) ||
|
|
6929
|
+
((_b = field === null || field === void 0 ? void 0 : field.value) === null || _b === void 0 ? void 0 : _b.toString().includes('PM')))) {
|
|
6925
6930
|
field.value = setTimeInDate(field.value);
|
|
6926
6931
|
}
|
|
6927
|
-
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.AUTOCOMPLETE &&
|
|
6932
|
+
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.AUTOCOMPLETE &&
|
|
6933
|
+
(field === null || field === void 0 ? void 0 : field.value) &&
|
|
6934
|
+
((_c = field === null || field === void 0 ? void 0 : field.value) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
6928
6935
|
var value = field === null || field === void 0 ? void 0 : field.value.map(function (value) { return value[field === null || field === void 0 ? void 0 : field.displayField]; });
|
|
6929
|
-
if (value &&
|
|
6930
|
-
|
|
6936
|
+
if (value &&
|
|
6937
|
+
(((_d = value.toString()) === null || _d === void 0 ? void 0 : _d.includes(';')) ||
|
|
6938
|
+
((_e = value.toString()) === null || _e === void 0 ? void 0 : _e.includes(',')))) {
|
|
6939
|
+
field.value = (_g = (_f = value
|
|
6940
|
+
.toString()
|
|
6941
|
+
.replaceAll(',', ';')) === null || _f === void 0 ? void 0 : _f.split(';')) === null || _g === void 0 ? void 0 : _g.map(function (val) {
|
|
6931
6942
|
var _s;
|
|
6932
6943
|
return (_s = {}, _s[field === null || field === void 0 ? void 0 : field.displayField] = val, _s);
|
|
6933
6944
|
});
|
|
6934
6945
|
}
|
|
6935
6946
|
}
|
|
6936
6947
|
// convert the multiSelect string value in array
|
|
6937
|
-
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.MULTISELECT &&
|
|
6938
|
-
|
|
6939
|
-
|
|
6948
|
+
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.MULTISELECT &&
|
|
6949
|
+
field.value &&
|
|
6950
|
+
!Array.isArray(field.value)) {
|
|
6951
|
+
if ((_j = (_h = field.value) === null || _h === void 0 ? void 0 : _h.toString()) === null || _j === void 0 ? void 0 : _j.includes(',')) {
|
|
6952
|
+
field.value = (_l = (_k = field.value) === null || _k === void 0 ? void 0 : _k.toString()) === null || _l === void 0 ? void 0 : _l.split(',');
|
|
6940
6953
|
}
|
|
6941
6954
|
else {
|
|
6942
6955
|
field.value = [field.value];
|
|
@@ -6948,19 +6961,24 @@
|
|
|
6948
6961
|
var _a, _b;
|
|
6949
6962
|
(_b = (_a = field === null || field === void 0 ? void 0 : field.card) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.forEach(function (x) {
|
|
6950
6963
|
var _a, _b, _c, _d;
|
|
6951
|
-
if (((_a = field === null || field === void 0 ? void 0 : field.card) === null || _a === void 0 ? void 0 : _a.formSections) &&
|
|
6964
|
+
if (((_a = field === null || field === void 0 ? void 0 : field.card) === null || _a === void 0 ? void 0 : _a.formSections) &&
|
|
6965
|
+
((_c = (_b = field === null || field === void 0 ? void 0 : field.card) === null || _b === void 0 ? void 0 : _b.formSections) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
6952
6966
|
x.dynamicForm = {
|
|
6953
6967
|
formSections: JSON.parse(JSON.stringify((_d = field === null || field === void 0 ? void 0 : field.card) === null || _d === void 0 ? void 0 : _d.formSections)),
|
|
6954
6968
|
};
|
|
6955
6969
|
}
|
|
6956
|
-
;
|
|
6957
6970
|
});
|
|
6958
6971
|
_this.form = formValues_1;
|
|
6959
6972
|
}, 500);
|
|
6960
6973
|
}
|
|
6961
6974
|
// End cardList reference break functionality
|
|
6962
6975
|
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.CHECKBOX) {
|
|
6963
|
-
field.value =
|
|
6976
|
+
field.value =
|
|
6977
|
+
((_o = (_m = field === null || field === void 0 ? void 0 : field.value) === null || _m === void 0 ? void 0 : _m.toString()) === null || _o === void 0 ? void 0 : _o.toLowerCase()) === 'true' ||
|
|
6978
|
+
((_q = (_p = field === null || field === void 0 ? void 0 : field.value) === null || _p === void 0 ? void 0 : _p.toString()) === null || _q === void 0 ? void 0 : _q.toLowerCase()) === 'y' ||
|
|
6979
|
+
((_r = field === null || field === void 0 ? void 0 : field.value) === null || _r === void 0 ? void 0 : _r.toString()) === '1'
|
|
6980
|
+
? true
|
|
6981
|
+
: false;
|
|
6964
6982
|
}
|
|
6965
6983
|
});
|
|
6966
6984
|
}
|
|
@@ -6971,19 +6989,22 @@
|
|
|
6971
6989
|
this.applyRequiredFieldValidation();
|
|
6972
6990
|
this.removeWhiteSpaces();
|
|
6973
6991
|
this.setHyperlinkComponentRoute();
|
|
6974
|
-
setTimeout(function () {
|
|
6992
|
+
setTimeout(function () {
|
|
6993
|
+
_this.setCalanderWidth();
|
|
6994
|
+
}, 3000);
|
|
6975
6995
|
}
|
|
6976
6996
|
};
|
|
6977
6997
|
// set calender 2 Or 4 digit year format
|
|
6978
6998
|
FormComponent.prototype.calenderInputValue = function (formField) {
|
|
6979
6999
|
var _this = this;
|
|
6980
7000
|
var _a;
|
|
6981
|
-
(_a = document
|
|
7001
|
+
(_a = document
|
|
7002
|
+
.getElementsByClassName(formField.field)[0]) === null || _a === void 0 ? void 0 : _a.addEventListener('keyup', function (val) {
|
|
6982
7003
|
var _a, _b, _c;
|
|
6983
7004
|
var year = (_c = (_b = (_a = val === null || val === void 0 ? void 0 : val.target) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.toString()) === null || _c === void 0 ? void 0 : _c.split('/')[2];
|
|
6984
7005
|
if ((year === null || year === void 0 ? void 0 : year.length) === 4) {
|
|
6985
7006
|
_this.calendarFormat = 'mm/dd/yy';
|
|
6986
|
-
formField.value = new Date(val.target.value).toLocaleDateString(
|
|
7007
|
+
formField.value = new Date(val.target.value).toLocaleDateString('en-US');
|
|
6987
7008
|
}
|
|
6988
7009
|
else if (year === null || year === void 0 ? void 0 : year.length) {
|
|
6989
7010
|
_this.calendarFormat = 'mm/dd/y';
|
|
@@ -6999,22 +7020,24 @@
|
|
|
6999
7020
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
7000
7021
|
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.NUMERIC) {
|
|
7001
7022
|
var digitsInfo = (_b = (_a = field === null || field === void 0 ? void 0 : field.format) === null || _a === void 0 ? void 0 : _a.formatParams) === null || _b === void 0 ? void 0 : _b.digitsInfo;
|
|
7002
|
-
if (
|
|
7003
|
-
if ((
|
|
7004
|
-
if (
|
|
7005
|
-
|
|
7023
|
+
if (field.value) {
|
|
7024
|
+
if (((_c = field === null || field === void 0 ? void 0 : field.format) === null || _c === void 0 ? void 0 : _c.type) === 'percent') {
|
|
7025
|
+
if ((_e = (_d = field.format) === null || _d === void 0 ? void 0 : _d.formatParams) === null || _e === void 0 ? void 0 : _e.allowCalculate) {
|
|
7026
|
+
if (digitsInfo) {
|
|
7027
|
+
field.value = parseFloat((_f = (field.value * 100)) === null || _f === void 0 ? void 0 : _f.toString()).toFixed(digitsInfo);
|
|
7028
|
+
}
|
|
7029
|
+
else {
|
|
7030
|
+
field.value = field.value * 100;
|
|
7031
|
+
}
|
|
7006
7032
|
}
|
|
7007
|
-
else {
|
|
7008
|
-
field.value = field.value
|
|
7033
|
+
else if (digitsInfo) {
|
|
7034
|
+
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7009
7035
|
}
|
|
7010
7036
|
}
|
|
7011
|
-
else if (
|
|
7012
|
-
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7037
|
+
else if (((_g = field === null || field === void 0 ? void 0 : field.format) === null || _g === void 0 ? void 0 : _g.type) === 'decimal') {
|
|
7038
|
+
field.value = parseFloat(field.value).toFixed(digitsInfo ? digitsInfo : 2);
|
|
7013
7039
|
}
|
|
7014
7040
|
}
|
|
7015
|
-
else if (((_g = field === null || field === void 0 ? void 0 : field.format) === null || _g === void 0 ? void 0 : _g.type) === 'decimal') {
|
|
7016
|
-
field.value = parseFloat(field.value).toFixed(digitsInfo ? digitsInfo : 2);
|
|
7017
|
-
}
|
|
7018
7041
|
}
|
|
7019
7042
|
});
|
|
7020
7043
|
}
|
|
@@ -7036,8 +7059,7 @@
|
|
|
7036
7059
|
formSection.fields.forEach(function (field, fieldIndex) {
|
|
7037
7060
|
var _a;
|
|
7038
7061
|
if (field.control === exports.EFormControl.COMPONENT) {
|
|
7039
|
-
var viewRef = _this.dynamicComponentContainer.find(function (x) { return x.element.nativeElement.id ==
|
|
7040
|
-
formSection.name + "-" + fieldIndex; });
|
|
7062
|
+
var viewRef = _this.dynamicComponentContainer.find(function (x) { return x.element.nativeElement.id == formSection.name + "-" + fieldIndex; });
|
|
7041
7063
|
var _s = field.componentControl, Component_1 = _s.component, data = _s.data, handlers = _s.handlers;
|
|
7042
7064
|
var componentFactory = _this.componentFactoryResolver.resolveComponentFactory(Component_1);
|
|
7043
7065
|
// Passing data to component
|
|
@@ -7047,7 +7069,10 @@
|
|
|
7047
7069
|
var _t = __read(_s, 2), key = _t[0], value = _t[1];
|
|
7048
7070
|
componentRef_1.instance[key] = value;
|
|
7049
7071
|
});
|
|
7050
|
-
_this.componentsList.push({
|
|
7072
|
+
_this.componentsList.push({
|
|
7073
|
+
name: (_a = field.componentControl) === null || _a === void 0 ? void 0 : _a.id,
|
|
7074
|
+
value: componentRef_1,
|
|
7075
|
+
});
|
|
7051
7076
|
// Subscribes to the events passed to the components
|
|
7052
7077
|
if (handlers) {
|
|
7053
7078
|
Object.entries(handlers).forEach(function (_s) {
|
|
@@ -7138,7 +7163,10 @@
|
|
|
7138
7163
|
if (field.control === exports.EFormControl.HYPERLINK &&
|
|
7139
7164
|
((_a = field.hyperlink) === null || _a === void 0 ? void 0 : _a.component)) {
|
|
7140
7165
|
_this.router.resetConfig(__spreadArray([
|
|
7141
|
-
{
|
|
7166
|
+
{
|
|
7167
|
+
path: 'hyperlink' + field.label,
|
|
7168
|
+
component: field.hyperlink.component,
|
|
7169
|
+
}
|
|
7142
7170
|
], __read(_this.router.config)));
|
|
7143
7171
|
}
|
|
7144
7172
|
});
|
|
@@ -7269,8 +7297,8 @@
|
|
|
7269
7297
|
}
|
|
7270
7298
|
};
|
|
7271
7299
|
/**
|
|
7272
|
-
|
|
7273
|
-
|
|
7300
|
+
* Open IFrame in hyperlink Control
|
|
7301
|
+
*/
|
|
7274
7302
|
FormComponent.prototype.sectionDisabled = function (formSection) {
|
|
7275
7303
|
if (formSection.disabled) {
|
|
7276
7304
|
formSection.fields.map(function (field) {
|
|
@@ -7317,7 +7345,9 @@
|
|
|
7317
7345
|
else if (((_c = formField.hyperlink) === null || _c === void 0 ? void 0 : _c.target) === exports.EHyperlink.DIALOG) {
|
|
7318
7346
|
this.onClickEvent(formField);
|
|
7319
7347
|
var dialog = this.dialogService.open(formField.hyperlink.component, {
|
|
7320
|
-
header: ((_d = formField.hyperlink.data) === null || _d === void 0 ? void 0 : _d.header)
|
|
7348
|
+
header: ((_d = formField.hyperlink.data) === null || _d === void 0 ? void 0 : _d.header)
|
|
7349
|
+
? (_e = formField.hyperlink.data) === null || _e === void 0 ? void 0 : _e.header
|
|
7350
|
+
: '',
|
|
7321
7351
|
width: formField.hyperlink.width ? formField.hyperlink.width : '90%',
|
|
7322
7352
|
height: formField.hyperlink.height ? formField.hyperlink.height : '80%',
|
|
7323
7353
|
data: formField.hyperlink.params,
|
|
@@ -7337,15 +7367,24 @@
|
|
|
7337
7367
|
}
|
|
7338
7368
|
};
|
|
7339
7369
|
/**
|
|
7340
|
-
|
|
7341
|
-
|
|
7370
|
+
* open Iframe on Label
|
|
7371
|
+
*/
|
|
7342
7372
|
FormComponent.prototype.loadLabelControlIFrame = function (formField) {
|
|
7343
7373
|
var _a, _b, _c;
|
|
7344
7374
|
var ref = this.dialogService.open(IframeComponent, {
|
|
7345
7375
|
header: formField.label.name,
|
|
7346
|
-
width: formField.label.labelControl.hyperlink.width
|
|
7347
|
-
|
|
7348
|
-
|
|
7376
|
+
width: formField.label.labelControl.hyperlink.width
|
|
7377
|
+
? formField.hyperlink.width
|
|
7378
|
+
: '90%',
|
|
7379
|
+
height: ((_a = formField.label.labelControl.hyperlink) === null || _a === void 0 ? void 0 : _a.height)
|
|
7380
|
+
? formField.hyperlink.height
|
|
7381
|
+
: '80%',
|
|
7382
|
+
data: {
|
|
7383
|
+
value: ((_b = formField.label.labelControl.hyperlink) === null || _b === void 0 ? void 0 : _b.link)
|
|
7384
|
+
? formField.label.labelControl.hyperlink.link
|
|
7385
|
+
: '',
|
|
7386
|
+
iFrameId: formField.label.name,
|
|
7387
|
+
},
|
|
7349
7388
|
});
|
|
7350
7389
|
this.pageLoggerService.savePageLoggerInfo((_c = this.router.url) === null || _c === void 0 ? void 0 : _c.substring(1), 'IframeComponent');
|
|
7351
7390
|
draggableDialog((formField === null || formField === void 0 ? void 0 : formField.field) ? formField === null || formField === void 0 ? void 0 : formField.field : formField === null || formField === void 0 ? void 0 : formField.label);
|
|
@@ -7359,13 +7398,14 @@
|
|
|
7359
7398
|
if (formField && formField.onClick) {
|
|
7360
7399
|
formField.onClick();
|
|
7361
7400
|
}
|
|
7362
|
-
;
|
|
7363
7401
|
};
|
|
7364
7402
|
/**
|
|
7365
7403
|
* find the required field in form
|
|
7366
7404
|
*/
|
|
7367
7405
|
FormComponent.prototype.applyRequiredFieldValidation = function () {
|
|
7368
|
-
if (this.form &&
|
|
7406
|
+
if (this.form &&
|
|
7407
|
+
this.form.formSections &&
|
|
7408
|
+
this.form.formSections.length > 0) {
|
|
7369
7409
|
this.form.formSections.forEach(function (section) {
|
|
7370
7410
|
section.fields.forEach(function (field) {
|
|
7371
7411
|
if (field.validations && field.validations.length > 0) {
|
|
@@ -7396,7 +7436,9 @@
|
|
|
7396
7436
|
if (!_this.formService.checkValidity(formSection.fields)) {
|
|
7397
7437
|
(_a = formSection.fields) === null || _a === void 0 ? void 0 : _a.forEach(function (formField) {
|
|
7398
7438
|
if (formField.errorMessage) {
|
|
7399
|
-
errorMessageDetails = errorMessageDetails
|
|
7439
|
+
errorMessageDetails = errorMessageDetails
|
|
7440
|
+
? errorMessageDetails + ' , ' + formField.errorMessage
|
|
7441
|
+
: formField.errorMessage;
|
|
7400
7442
|
}
|
|
7401
7443
|
});
|
|
7402
7444
|
var field = formSection.fields.some(function (field) { return field.requiredField && field.errorMessage && !field.value; });
|
|
@@ -7444,39 +7486,54 @@
|
|
|
7444
7486
|
formSection.fields.forEach(function (field) {
|
|
7445
7487
|
var e_1, _s;
|
|
7446
7488
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
7447
|
-
if (
|
|
7489
|
+
if (field.value === '' || field.value === undefined) {
|
|
7448
7490
|
field.value = null;
|
|
7449
7491
|
}
|
|
7450
7492
|
//convert date into time as string
|
|
7451
|
-
if (field.control === exports.EFormControl.CALENDAR &&
|
|
7493
|
+
if (field.control === exports.EFormControl.CALENDAR &&
|
|
7494
|
+
field.timeOnly &&
|
|
7495
|
+
field.saveAsString &&
|
|
7496
|
+
!((_b = (_a = field.value) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.includes('AM')) &&
|
|
7497
|
+
!((_d = (_c = field.value) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.includes('PM'))) {
|
|
7452
7498
|
field.value = _this.datePipe.transform(field.value, 'hh:mm a');
|
|
7453
7499
|
}
|
|
7454
7500
|
if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.NUMERIC) {
|
|
7455
7501
|
var digitsInfo = (_f = (_e = field === null || field === void 0 ? void 0 : field.format) === null || _e === void 0 ? void 0 : _e.formatParams) === null || _f === void 0 ? void 0 : _f.digitsInfo;
|
|
7456
|
-
if (
|
|
7457
|
-
if ((
|
|
7458
|
-
if (
|
|
7459
|
-
|
|
7502
|
+
if (field.value) {
|
|
7503
|
+
if (((_g = field === null || field === void 0 ? void 0 : field.format) === null || _g === void 0 ? void 0 : _g.type) === 'percent') {
|
|
7504
|
+
if ((_j = (_h = field.format) === null || _h === void 0 ? void 0 : _h.formatParams) === null || _j === void 0 ? void 0 : _j.allowCalculate) {
|
|
7505
|
+
if (digitsInfo) {
|
|
7506
|
+
field.value = parseFloat((_k = (field.value / 100)) === null || _k === void 0 ? void 0 : _k.toString()).toFixed(digitsInfo);
|
|
7507
|
+
console.log('new value', field.value);
|
|
7508
|
+
}
|
|
7509
|
+
else {
|
|
7510
|
+
field.value = field.value / 100;
|
|
7511
|
+
}
|
|
7460
7512
|
}
|
|
7461
|
-
else {
|
|
7462
|
-
field.value = field.value
|
|
7513
|
+
else if (digitsInfo) {
|
|
7514
|
+
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7463
7515
|
}
|
|
7464
7516
|
}
|
|
7465
|
-
else if (digitsInfo) {
|
|
7466
|
-
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7467
|
-
}
|
|
7468
7517
|
}
|
|
7469
7518
|
}
|
|
7470
7519
|
// set value of autoComplete as strings
|
|
7471
|
-
if (field.control === exports.EFormControl.AUTOCOMPLETE &&
|
|
7520
|
+
if (field.control === exports.EFormControl.AUTOCOMPLETE &&
|
|
7521
|
+
!field.showAllValue &&
|
|
7522
|
+
field.value &&
|
|
7523
|
+
field.value.length > 0) {
|
|
7472
7524
|
var value = field.value.map(function (value) { return value[field.displayField]; });
|
|
7473
|
-
if (value &&
|
|
7525
|
+
if (value &&
|
|
7526
|
+
(((_l = value.toString()) === null || _l === void 0 ? void 0 : _l.includes(';')) ||
|
|
7527
|
+
((_m = value.toString()) === null || _m === void 0 ? void 0 : _m.includes(',')))) {
|
|
7474
7528
|
tempValue_1 = value;
|
|
7475
|
-
field.value = value.toString().replaceAll(
|
|
7529
|
+
field.value = value.toString().replaceAll(',', ';');
|
|
7476
7530
|
}
|
|
7477
7531
|
}
|
|
7478
7532
|
// convert multiSelect array into string
|
|
7479
|
-
if (field.control === exports.EFormControl.MULTISELECT &&
|
|
7533
|
+
if (field.control === exports.EFormControl.MULTISELECT &&
|
|
7534
|
+
field.value &&
|
|
7535
|
+
Array.isArray(field.value) &&
|
|
7536
|
+
field.saveAsString !== false) {
|
|
7480
7537
|
field.value = (_o = field.value) === null || _o === void 0 ? void 0 : _o.toString();
|
|
7481
7538
|
}
|
|
7482
7539
|
if (field.control === exports.EFormControl.CHECKBOX) {
|
|
@@ -7515,8 +7572,11 @@
|
|
|
7515
7572
|
if (formSection.fields) {
|
|
7516
7573
|
formSection.fields.forEach(function (field) {
|
|
7517
7574
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
7518
|
-
if (field.control === exports.EFormControl.AUTOCOMPLETE &&
|
|
7519
|
-
field.
|
|
7575
|
+
if (field.control === exports.EFormControl.AUTOCOMPLETE &&
|
|
7576
|
+
!field.showAllValue) {
|
|
7577
|
+
field.value = (_b = (_a = tempValue_1
|
|
7578
|
+
.toString()
|
|
7579
|
+
.replaceAll(',', ';')) === null || _a === void 0 ? void 0 : _a.split(';')) === null || _b === void 0 ? void 0 : _b.map(function (val) {
|
|
7520
7580
|
var _s;
|
|
7521
7581
|
return (_s = {}, _s[field.displayField] = val, _s);
|
|
7522
7582
|
});
|
|
@@ -7526,17 +7586,19 @@
|
|
|
7526
7586
|
}
|
|
7527
7587
|
if (((_c = field === null || field === void 0 ? void 0 : field.format) === null || _c === void 0 ? void 0 : _c.type) === 'percent') {
|
|
7528
7588
|
var digitsInfo = (_e = (_d = field === null || field === void 0 ? void 0 : field.format) === null || _d === void 0 ? void 0 : _d.formatParams) === null || _e === void 0 ? void 0 : _e.digitsInfo;
|
|
7529
|
-
if (
|
|
7530
|
-
if (
|
|
7531
|
-
|
|
7589
|
+
if (field.value) {
|
|
7590
|
+
if ((_g = (_f = field.format) === null || _f === void 0 ? void 0 : _f.formatParams) === null || _g === void 0 ? void 0 : _g.allowCalculate) {
|
|
7591
|
+
if (digitsInfo) {
|
|
7592
|
+
field.value = parseFloat((_h = (field.value * 100)) === null || _h === void 0 ? void 0 : _h.toString()).toFixed(digitsInfo);
|
|
7593
|
+
}
|
|
7594
|
+
else {
|
|
7595
|
+
field.value = field.value * 100;
|
|
7596
|
+
}
|
|
7532
7597
|
}
|
|
7533
|
-
else {
|
|
7534
|
-
field.value = field.value
|
|
7598
|
+
else if (digitsInfo) {
|
|
7599
|
+
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7535
7600
|
}
|
|
7536
7601
|
}
|
|
7537
|
-
else if (digitsInfo) {
|
|
7538
|
-
field.value = parseFloat(field.value).toFixed(digitsInfo);
|
|
7539
|
-
}
|
|
7540
7602
|
}
|
|
7541
7603
|
});
|
|
7542
7604
|
}
|
|
@@ -7546,8 +7608,13 @@
|
|
|
7546
7608
|
FormComponent.prototype.onCancelForm = function () {
|
|
7547
7609
|
var _this = this;
|
|
7548
7610
|
if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {
|
|
7549
|
-
this.alertService
|
|
7550
|
-
|
|
7611
|
+
this.alertService
|
|
7612
|
+
.confirm({
|
|
7613
|
+
key: 'cancelButton',
|
|
7614
|
+
message: 'You have unsaved changes. Would you like to continue?',
|
|
7615
|
+
})
|
|
7616
|
+
.then(function (res) {
|
|
7617
|
+
if (res[0].detail === 'Yes') {
|
|
7551
7618
|
_this.browserTabCloseEvent(false);
|
|
7552
7619
|
_this.gridService.columnFocusedOut = false;
|
|
7553
7620
|
_this.cancelForm.emit(_this.form.formSections);
|
|
@@ -7574,19 +7641,19 @@
|
|
|
7574
7641
|
* set calender width
|
|
7575
7642
|
*/
|
|
7576
7643
|
FormComponent.prototype.setCalanderWidth = function () {
|
|
7577
|
-
var calanderElement = document.querySelectorAll(
|
|
7578
|
-
var form = document.querySelector(
|
|
7644
|
+
var calanderElement = document.querySelectorAll('.p-calendar');
|
|
7645
|
+
var form = document.querySelector('form');
|
|
7579
7646
|
var width = form === null || form === void 0 ? void 0 : form.clientWidth;
|
|
7580
7647
|
calanderElement === null || calanderElement === void 0 ? void 0 : calanderElement.forEach(function (calander) {
|
|
7581
7648
|
var calanderOfsetLeft = calander.offsetLeft;
|
|
7582
|
-
if (calanderOfsetLeft <=
|
|
7649
|
+
if (calanderOfsetLeft <= width / 2) {
|
|
7583
7650
|
calander.classList.add('open-right-side');
|
|
7584
7651
|
}
|
|
7585
7652
|
});
|
|
7586
7653
|
};
|
|
7587
7654
|
/**
|
|
7588
|
-
|
|
7589
|
-
|
|
7655
|
+
* set the dynamic dialog data
|
|
7656
|
+
*/
|
|
7590
7657
|
FormComponent.prototype.setDialogData = function (formField, data) {
|
|
7591
7658
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
7592
7659
|
if (data && formField) {
|
|
@@ -7671,7 +7738,9 @@
|
|
|
7671
7738
|
formField.onReturn(formField.value, res);
|
|
7672
7739
|
}
|
|
7673
7740
|
_this.onFocusOutEvent(formField);
|
|
7674
|
-
var formFieldValue = typeof formField.value === 'object'
|
|
7741
|
+
var formFieldValue = typeof formField.value === 'object'
|
|
7742
|
+
? formField.value.text
|
|
7743
|
+
: formField.value;
|
|
7675
7744
|
value_1 = typeof value_1 === 'object' ? value_1.text : value_1;
|
|
7676
7745
|
if (formFieldValue !== value_1) {
|
|
7677
7746
|
_this.browserTabCloseEvent(true);
|
|
@@ -7702,13 +7771,19 @@
|
|
|
7702
7771
|
var _a, _b;
|
|
7703
7772
|
if (formField.control === exports.EFormControl.CALENDAR) {
|
|
7704
7773
|
// convert time into date format
|
|
7705
|
-
if (formField.timeOnly &&
|
|
7774
|
+
if (formField.timeOnly &&
|
|
7775
|
+
(((_a = formField.value) === null || _a === void 0 ? void 0 : _a.toString().includes('AM')) ||
|
|
7776
|
+
((_b = formField.value) === null || _b === void 0 ? void 0 : _b.toString().includes('PM')))) {
|
|
7706
7777
|
formField.value = setTimeInDate(formField.value);
|
|
7707
7778
|
}
|
|
7708
|
-
if ((formField.showTime || formField.timeOnly) &&
|
|
7779
|
+
if ((formField.showTime || formField.timeOnly) &&
|
|
7780
|
+
formField.value &&
|
|
7781
|
+
formField.minutesInterval) {
|
|
7709
7782
|
formField.value = new Date(setMinutesInterval(formField.value));
|
|
7710
7783
|
}
|
|
7711
|
-
else if ((formField.showTime || formField.timeOnly) &&
|
|
7784
|
+
else if ((formField.showTime || formField.timeOnly) &&
|
|
7785
|
+
!formField.value &&
|
|
7786
|
+
formField.minutesInterval) {
|
|
7712
7787
|
formField.value = new Date(setMinutesInterval(new Date()));
|
|
7713
7788
|
}
|
|
7714
7789
|
this.calenderPreviousValue = formField.value;
|
|
@@ -7730,8 +7805,8 @@
|
|
|
7730
7805
|
this.sectionClickedEvent.emit(section);
|
|
7731
7806
|
};
|
|
7732
7807
|
/**
|
|
7733
|
-
|
|
7734
|
-
|
|
7808
|
+
* open dialog in Note_Field conrtrol
|
|
7809
|
+
*/
|
|
7735
7810
|
FormComponent.prototype.handleNoteFieldDialog = function (formfield) {
|
|
7736
7811
|
var _this = this;
|
|
7737
7812
|
var dialogRef = this.dialogService.open(NotesComponent, {
|
|
@@ -7783,7 +7858,7 @@
|
|
|
7783
7858
|
}
|
|
7784
7859
|
};
|
|
7785
7860
|
FormComponent.prototype.onBackSpaceEvent = function (formField) {
|
|
7786
|
-
if (typeof
|
|
7861
|
+
if (typeof formField.value === 'object') {
|
|
7787
7862
|
formField.value.text = formField.value.text.substring(0, formField.value.text.length - 1);
|
|
7788
7863
|
if (formField.value.text.length === 1) {
|
|
7789
7864
|
formField.value = undefined;
|
|
@@ -7832,13 +7907,15 @@
|
|
|
7832
7907
|
return linkUrl;
|
|
7833
7908
|
};
|
|
7834
7909
|
/**
|
|
7835
|
-
|
|
7836
|
-
|
|
7910
|
+
* invoke on dynamic buttons click
|
|
7911
|
+
*/
|
|
7837
7912
|
FormComponent.prototype.onNewButtonClick = function (button) {
|
|
7838
7913
|
button.func();
|
|
7839
7914
|
};
|
|
7840
7915
|
FormComponent.prototype.selectedCardClickEvent = function (data) {
|
|
7841
|
-
if (this.form &&
|
|
7916
|
+
if (this.form &&
|
|
7917
|
+
this.form.formSections &&
|
|
7918
|
+
this.form.formSections.length > 0) {
|
|
7842
7919
|
this.form.formSections.forEach(function (section) {
|
|
7843
7920
|
section.fields.forEach(function (field) {
|
|
7844
7921
|
var _a;
|
|
@@ -7878,7 +7955,7 @@
|
|
|
7878
7955
|
FormComponent.decorators = [
|
|
7879
7956
|
{ type: i0.Component, args: [{
|
|
7880
7957
|
selector: 'se-form',
|
|
7881
|
-
template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\"></p-confirmDialog>\n<form *ngIf=\"!isFormHidden && form\">\n <div *ngIf=\"loading\">\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\n </div>\n <div class=\"p-flex-wrap\">\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\n <span (click)=\"clickedSection(formSection)\">\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\n <div [class]=\"formSection.hidden ? 'hidden' : formSection.class\">\n <p-accordion>\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\n [disabled]=\"formSection.accordionDisabled\"\n [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\n <p-header>\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\n }}</span>\n </p-header>\n\n <div class=\"p-d-flex p-ai-center p-col form-component accordion-header-wrapper\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"accordionHeaderName p-d-flex p-ai-center\">\n <i [class]=\"formSection.icon\" class=\"\"></i>\n <div> {{ formSection.name }} </div>\n </label>\n\n <div *ngFor=\"let link of formSection.links\" [class]=\"formSection.disabled ? 'disabled-link' : ''\">\n <label class=\"p-mr-3\" [class]=\"link.name ? 'custom-link' : ''\" (click)=\"link.onClick()\">\n {{ link.name }}\n </label>\n </div>\n </div>\n\n <div class=\"p-d-flex p-flex-wrap form-component form-body-wrapper\">\n <div [class]=\"formField.column\n ? 'p-col-' + formField.column + setClassName(formField)\n : form.column\n ? 'p-col-' + form.column + setClassName(formField)\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\n [ngClass]=\"formField.control === 'break_line' ? 'break-line' : ''\"\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\">\n <!-- labelControl Hyperlink on Lookup Control Field-->\n <div *ngIf=\"formField.label?.labelControl\">\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\n [href]=\"formField.label.labelControl?.hyperlink?.link\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadLabelControlIFrame(formField)\"\n [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\">\n <a tabindex=\"-1\" [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\n (click)=\"selectLookupLabel(formField)\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n <div [ngSwitch]=\"formField.control\">\n\n <!-- Spacer Control -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.SPACER\">\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\n </div>\n </span>\n\n <!-- Input TextArea -->\n <span *ngIf=\"!formField.hidden\">\n\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <textarea [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" pInputTextarea [rows]=\"formField.row ? formField.row : 1 \"\n (change)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n [(ngModel)]=\"formField.value\" [name]=\"formField.field\" [disabled]=\"formField.disabled\"\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\n (blur)=\"onFocusOutEvent(formField)\"></textarea>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.INPUT\">\n <span [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n <span *ngIf=\"formField.isPassword\"> \n <i *ngIf=\"formField.textType=='password';else hideButton\" class=\"pi pi-eye\"\n (click)=\"changePasswordType(formField)\"></i>\n <ng-template #hideButton>\n <i class=\"pi pi-eye-slash\" (click)=\"changePasswordType(formField)\"></i>\n </ng-template>\n </span>\n </label>\n </span>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\" [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\n [type]=\"formField.textType ? formField.textType : 'text'\" pInputText [(ngModel)]=\"\n formField.value &&\n typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\n \" (change)=\"onChangeEvent(formField)\"\n [name]=\"formField.field ? formField.field : formField.label\"\n (click)=\"handleClickEvent(formField)\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label [class]=\"\n formField.label.onClick ? 'custom-link' : ''\n \" (click)=\"\n formField.label.onClick &&\n formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <!-- for Currency && number && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [name]=\"formField.field\"\n (ngModelChange)=\"onChangeEvent(formField)\" (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\" [mode]=\"\n formField.format &&\n formField.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.currency\n ? formField.format.formatParams.currency\n : 'USD'\n \" [locale]=\"formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.locale\n ? formField.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"\n formField.format &&\n formField.format.formatParams &&\n formField.format.formatParams.digitsInfo\n ? formField.format.formatParams.digitsInfo\n : formField.format &&\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\n ? '2'\n : '0'\n \" [suffix]=\"\n formField.format &&\n formField.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Password Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" type=\"password\" (click)=\"handleClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\" pInputText [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Checkbox -->\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">{{\n formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-checkbox class=\"p-d-flex p-ai-center\" [binary]=\"true\" [name]=\"formField.field\"\n (click)=\"onClickEvent(formField)\" (change)=\"onChangeEvent(formField)\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (onChange)=\"onFocusOutEvent(formField)\">\n </p-checkbox>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <p-calendar [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty ' + formField.field\n : 'form-control '+ formField.field\n \" [showButtonBar]=\"!formField.timeOnly\" [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" [disabled]=\"formField.disabled\" hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute]=\"formField.minutesInterval ? formField.minutesInterval : 1\"\n [showTime]=\"formField.showTime\" (onShow)=\"setCalenderDate(formField)\"\n [timeOnly]=\"formField.timeOnly\" [view]=\"formField.monthOnly ? 'month' : 'date' \"\n (click)=\"handleClickEvent(formField)\"\n [dateFormat]=\"formField?.format?.type ? formField.format?.type : calendarFormat\"\n (ngModelChange)=\"calendarChangeValue(formField)\" (onInput)=\"calenderInputValue(formField)\"\n (onClose)=\"onFocusOutEvent(formField)\">\n </p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Dropdown -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\" class=\"required-star\">*</span>\n </label>\n <p-dropdown [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" autocomplete=\"off\" [styleClass]='formField.field' [placeholder]=\"formField.value\"\n [options]=\"formField.data\" [filter]=\"formField.allowSearch\" [(ngModel)]=\"formField.value\"\n [optionLabel]=\"formField.optionLabel\" [optionValue]=\"formField.optionValue\"\n [name]=\"formField.field\" (keyup.Tab)=\"tabFocusEvent(formField)\"\n (click)=\"clearDropdownValue(formField)\" [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\" [showClear]=\"formField.value ? true : false\"\n (onChange)=\"onClearValue(formField, $event)\"\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\">\n </p-dropdown>\n <span *ngIf=\"\n !formField?.isValid &&\n !formField.hidden\n \" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <span class=\"p-fluid\">\n <p-autoComplete [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [suggestions]=\"formField.data\" [(ngModel)]=\"formField.value\"\n (onChange)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n (completeMethod)=\"autoSearch($event, formField)\" [dropdown]=\"formField.showOption\"\n [field]=\"formField.displayField\" [name]=\"formField.label\" [multiple]=\"true\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\">\n </p-autoComplete>\n </span>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-multiSelect [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [options]=\"formField.data\" optionLabel=\"label\"\n optionValue=\"value\" [appendTo]=\"'body'\" [name]=\"formField.field\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"formField.onClick ? formField.onClick() : ''\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\">\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Hyperlink-->\n <span *ngIf=\"!formField.hidden\">\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" [title]=\"formField.label\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.component\n \" (click)=\"hyperlinkDialog(formField)\">\n {{ formField.label }}\n </div>\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target !== '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" [href]=\"sanitizeUrl(formField.hyperlink?.link)\"\n [target]=\"formField.hyperlink?.target\" (click)=\"handleClickEvent(formField)\"\n [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target === '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n </span>\n\n <!-- Lookup Control Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"formField.label.onClick && formField.label.onClick()\n \" [title]=\"typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n\n <span class=\"p-input-icon-right\">\n <i class=\"pi pi-chevron-right lookup-input-icon\"></i>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" \n class=\"form-component lookup-input\"\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\" autocomplete=\"off\" [id]=\"formField.field\" [name]=\"formField.field\"\n (click)=\"selectLookupField(formField)\" [disabled]=\"formField.disabled\"\n (keyup.Tab)=\"selectLookupField(formField)\" readonly\n (keydown)=\"$event.preventDefault()\" />\n </span>\n <div>\n <button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton\n class=\"lookup-clear-icon-button\"\n type=\"button\" (click)=\"lookupClearValue(formField)\"></button>\n \n </div>\n </div>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- File Upload Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <se-file-upload [allowMultiple]=\"formField.selectMultipleFiles\"\n [acceptFileTypes]=\"formField.SetfileTypes\" [fields]=\"formField\"\n (fileUrl)=\"setFileUrls($event)\"\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"></se-file-upload>\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Display Card field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CARD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n\n <se-card [card]=\"formField.card\" [setCardData]=\"setCardData\"\n (selectedCard)=\"selectedCardClickEvent($event)\"></se-card>\n\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Note Detail Field -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\n <div [class]=\"formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \">\n <span class=\"pl-2\" (click)=\"\n !formField.disabled\n ? handleNoteFieldDialog(formField)\n : ''\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">{{formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label}}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </span>\n </div>\n </div>\n </span>\n\n <!-- Dynamic Component Container-->\n <span [class]=\"formField.hidden ? 'hidden' : ''\">\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\" #dynamicComponentContainer\n *ngSwitchCase=\"dynamicCase.COMPONENT\"></div>\n </span>\n\n <!-- Header component-->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\n <label [class]=\"formField.class\">\n <b> {{ formField.label }} </b>\n </label>\n </div>\n </span>\n\n <!-- Add OnClick Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\n <button pButton type=\"button\" [icon]=\"formField.icon\" [label]=\"formField.label\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\n (click)=\"onClickEvent(formField)\"></button>\n </div>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.REPORT\">\n <se-generate-report-btn [repId]=\"formField.reportId\" [label]=\"formField.label\"\n [params]=\"formField.params\" [showDialog]=\"formField.showDialog\"></se-generate-report-btn>\n </div>\n </span>\n\n\n <!-- Add Input Switch -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\n <div>\n <label [title]=\"formField.label\">\n {{ formField.label }}\n </label>\n </div>\n <p-inputSwitch [name]=\"formField.label ? formField.label: 'switch'\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (click)=\"onClickEvent(formField)\"></p-inputSwitch>\n </div>\n </span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </span>\n </div>\n </span>\n\n <!-- save and close buttons -->\n <div class=\"p-col-12 p-d-flex p-jc-end\" [ngClass]=\"{ sticky: stickyActions }\">\n <div class=\"inner-sticky form-component actions-buttons-wrapper-div\">\n <!-- save button -->\n <button *ngIf=\"!hideSaveButton\" [disabled]=\"isFormDisabled\" pButton type=\"button\" icon=\"pi pi-check\"\n label=\"Save\" class=\"p-button-success\" (click)=\"onSaveForm()\"></button>\n <!-- close button -->\n <button *ngIf=\"!hideCancelButton\" [disabled]=\"isFormDisabled\" (click)=\"onCancelForm()\" pButton type=\"button\"\n icon=\"pi pi-times\" label=\"Cancel\" class=\"p-button-danger p-ml-3\"></button> \n <!-- dynamic buttons -->\n <ng-container *ngFor=\"let button of formButtons\">\n <button *ngIf=\"!button.hidden\" pButton type=\"button\" [label]=\"button.label\" [icon]=\"button.icon ? button.icon : ''\"\n class=\"p-button-success p-ml-3\" (click)=\"onNewButtonClick(button)\">\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</form>",
|
|
7958
|
+
template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\"></p-confirmDialog>\n<form *ngIf=\"!isFormHidden && form\">\n <div *ngIf=\"loading\">\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\n </div>\n <div class=\"p-flex-wrap\">\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\n <span (click)=\"clickedSection(formSection)\">\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\n <div [class]=\"formSection.hidden ? 'hidden' : formSection.class\">\n <p-accordion>\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\n [disabled]=\"formSection.accordionDisabled\"\n [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\n <p-header>\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\n }}</span>\n </p-header>\n\n <div class=\"p-d-flex p-ai-center p-col form-component accordion-header-wrapper\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"accordionHeaderName p-d-flex p-ai-center\">\n <i [class]=\"formSection.icon\" class=\"\"></i>\n <div> {{ formSection.name }} </div>\n </label>\n\n <div *ngFor=\"let link of formSection.links\" [class]=\"formSection.disabled ? 'disabled-link' : ''\">\n <label class=\"p-mr-3\" [class]=\"link.name ? 'custom-link' : ''\" (click)=\"link.onClick()\">\n {{ link.name }}\n </label>\n </div>\n </div>\n\n <div class=\"p-d-flex p-flex-wrap form-component form-body-wrapper\">\n <div [class]=\"formField.column\n ? 'p-col-' + formField.column + setClassName(formField)\n : form.column\n ? 'p-col-' + form.column + setClassName(formField)\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\n [ngClass]=\"formField.control === 'break_line' ? 'break-line' : ''\"\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\">\n <!-- labelControl Hyperlink on Lookup Control Field-->\n <div *ngIf=\"formField.label?.labelControl\">\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\n [href]=\"formField.label.labelControl?.hyperlink?.link\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadLabelControlIFrame(formField)\"\n [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\">\n <a tabindex=\"-1\" [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\n (click)=\"selectLookupLabel(formField)\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n <div [ngSwitch]=\"formField.control\">\n\n <!-- Spacer Control -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.SPACER\">\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\n </div>\n </span>\n\n <!-- Input TextArea -->\n <span *ngIf=\"!formField.hidden\">\n\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <textarea [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" pInputTextarea [rows]=\"formField.row ? formField.row : 1 \"\n (change)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n [(ngModel)]=\"formField.value\" [name]=\"formField.field\" [disabled]=\"formField.disabled\"\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\n (blur)=\"onFocusOutEvent(formField)\"></textarea>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.INPUT\">\n <span [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n <span *ngIf=\"formField.isPassword\"> \n <i *ngIf=\"formField.textType=='password';else hideButton\" class=\"pi pi-eye\"\n (click)=\"changePasswordType(formField)\"></i>\n <ng-template #hideButton>\n <i class=\"pi pi-eye-slash\" (click)=\"changePasswordType(formField)\"></i>\n </ng-template>\n </span>\n </label>\n </span>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\" [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\n [type]=\"formField.textType ? formField.textType : 'text'\" pInputText [(ngModel)]=\"\n formField.value &&\n typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\n \" (change)=\"onChangeEvent(formField)\"\n [name]=\"formField.field ? formField.field : formField.label\"\n (click)=\"handleClickEvent(formField)\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label [class]=\"\n formField.label.onClick ? 'custom-link' : ''\n \" (click)=\"\n formField.label.onClick &&\n formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <!-- for Currency && number && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [name]=\"formField.field\"\n (ngModelChange)=\"onChangeEvent(formField)\" (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\" [mode]=\"\n formField.format &&\n formField.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.currency\n ? formField.format.formatParams.currency\n : 'USD'\n \" [locale]=\"formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.locale\n ? formField.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"\n formField.format &&\n formField.format.formatParams &&\n formField.format.formatParams.digitsInfo\n ? formField.format.formatParams.digitsInfo\n : formField.format &&\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\n ? '2'\n : '0'\n \" [suffix]=\"\n formField.format &&\n formField.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Password Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" type=\"password\" (click)=\"handleClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\" pInputText [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Checkbox -->\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">{{\n formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-checkbox class=\"p-d-flex p-ai-center\" [binary]=\"true\" [name]=\"formField.field\"\n (click)=\"onClickEvent(formField)\" (change)=\"onChangeEvent(formField)\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (onChange)=\"onFocusOutEvent(formField)\">\n </p-checkbox>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <p-calendar [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty ' + formField.field\n : 'form-control '+ formField.field\n \" [showButtonBar]=\"!formField.timeOnly\" [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" [disabled]=\"formField.disabled\" hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute]=\"formField.minutesInterval ? formField.minutesInterval : 1\"\n [showTime]=\"formField.showTime\" (onShow)=\"setCalenderDate(formField)\"\n [timeOnly]=\"formField.timeOnly\" [view]=\"formField.monthOnly ? 'month' : 'date' \"\n (click)=\"handleClickEvent(formField)\"\n [dateFormat]=\"formField?.format?.type ? formField.format?.type : calendarFormat\"\n (ngModelChange)=\"calendarChangeValue(formField)\" (onInput)=\"calenderInputValue(formField)\"\n (onClose)=\"onFocusOutEvent(formField)\">\n </p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Dropdown -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\" class=\"required-star\">*</span>\n </label>\n <p-dropdown [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" autocomplete=\"off\" [styleClass]='formField.field' [placeholder]=\"formField.value\"\n [options]=\"formField.data\" [filter]=\"formField.allowSearch\" [(ngModel)]=\"formField.value\"\n [optionLabel]=\"formField.optionLabel\" [optionValue]=\"formField.optionValue\"\n [name]=\"formField.field\" (keyup.Tab)=\"tabFocusEvent(formField)\"\n (click)=\"clearDropdownValue(formField)\" [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\" [showClear]=\"formField.value ? true : false\"\n (onChange)=\"onClearValue(formField, $event)\"\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\">\n </p-dropdown>\n <span *ngIf=\"\n !formField?.isValid &&\n !formField.hidden\n \" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <span class=\"p-fluid\">\n <p-autoComplete [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [suggestions]=\"formField.data\" [(ngModel)]=\"formField.value\"\n (onChange)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n (completeMethod)=\"autoSearch($event, formField)\" [dropdown]=\"formField.showOption\"\n [field]=\"formField.displayField\" [name]=\"formField.label\" [multiple]=\"true\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\">\n </p-autoComplete>\n </span>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-multiSelect [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [options]=\"formField.data\" optionLabel=\"label\"\n optionValue=\"value\" [appendTo]=\"'body'\" [name]=\"formField.field\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"formField.onClick ? formField.onClick() : ''\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\">\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Hyperlink-->\n <span *ngIf=\"!formField.hidden\">\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" [title]=\"formField.label\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.component\n \" (click)=\"hyperlinkDialog(formField)\">\n {{ formField.label }}\n </div>\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target !== '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" [href]=\"sanitizeUrl(formField.hyperlink?.link)\"\n [target]=\"formField.hyperlink?.target\" (click)=\"handleClickEvent(formField)\"\n [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target === '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n </span>\n\n <!-- Lookup Control Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"formField.label.onClick && formField.label.onClick()\n \" [title]=\"typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n\n <span class=\"p-input-icon-right\">\n <i class=\"pi pi-chevron-right lookup-input-icon\"></i>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" \n class=\"form-component lookup-input\"\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\" autocomplete=\"off\" [id]=\"formField.field\" [name]=\"formField.field\"\n (click)=\"selectLookupField(formField)\" [disabled]=\"formField.disabled\"\n (keyup.Tab)=\"selectLookupField(formField)\" readonly\n (keydown)=\"$event.preventDefault()\" />\n </span>\n <div>\n <button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton\n class=\"lookup-clear-icon-button\"\n type=\"button\" (click)=\"lookupClearValue(formField)\"></button>\n \n </div>\n </div>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- File Upload Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <se-file-upload [allowMultiple]=\"formField.selectMultipleFiles\"\n [acceptFileTypes]=\"formField.SetfileTypes\" [fields]=\"formField\"\n (fileUrl)=\"setFileUrls($event)\"\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"></se-file-upload>\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Display Card field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CARD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n\n <se-card [card]=\"formField.card\" [setCardData]=\"setCardData\"\n (selectedCard)=\"selectedCardClickEvent($event)\"></se-card>\n\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Note Detail Field -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\n <div [class]=\"formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \">\n <span class=\"pl-2\" (click)=\"\n !formField.disabled\n ? handleNoteFieldDialog(formField)\n : ''\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">{{formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label}}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </span>\n </div>\n </div>\n </span>\n\n <!-- Dynamic Component Container-->\n <span [class]=\"formField.hidden ? 'hidden' : ''\">\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\" #dynamicComponentContainer\n *ngSwitchCase=\"dynamicCase.COMPONENT\"></div>\n </span>\n\n <!-- Header component-->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\n <label [class]=\"formField.class\">\n <b> {{ formField.label }} </b>\n </label>\n </div>\n </span>\n\n <!-- Add OnClick Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\n <button pButton type=\"button\" [icon]=\"formField.icon\" [label]=\"formField.label\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\n (click)=\"onClickEvent(formField)\"></button>\n </div>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.REPORT\">\n <se-generate-report-btn [repId]=\"formField.reportId\" [label]=\"formField.label\"\n [params]=\"formField.params\" [showDialog]=\"formField.showDialog\"></se-generate-report-btn>\n </div>\n </span>\n\n\n <!-- Add Input Switch -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\n <div>\n <label [title]=\"formField.label\">\n {{ formField.label }}\n </label>\n </div>\n <p-inputSwitch [name]=\"formField.label ? formField.label: 'switch'\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (click)=\"onClickEvent(formField)\"></p-inputSwitch>\n </div>\n </span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </span>\n </div>\n </span>\n\n <!-- save and close buttons -->\n <div class=\"p-col-12 p-d-flex p-jc-end\" [ngClass]=\"{ sticky: stickyActions }\">\n <div class=\"inner-sticky form-component actions-buttons-wrapper-div\">\n <!-- save button -->\n <button *ngIf=\"!hideSaveButton\" [disabled]=\"isFormDisabled\" pButton type=\"button\" icon=\"pi pi-check\"\n label=\"Save\" class=\"p-button-success\" (click)=\"onSaveForm()\"></button>\n <!-- close button -->\n <button *ngIf=\"!hideCancelButton\" [disabled]=\"isFormDisabled\" (click)=\"onCancelForm()\" pButton type=\"button\"\n icon=\"pi pi-times\" label=\"Cancel\" class=\"p-button-danger p-ml-3\"></button> \n <!-- dynamic buttons -->\n <ng-container *ngFor=\"let button of formButtons\">\n <button *ngIf=\"!button.hidden\" pButton type=\"button\" [label]=\"button.label\" [icon]=\"button.icon ? button.icon : ''\"\n class=\"p-button-success p-ml-3\" (click)=\"onNewButtonClick(button)\" [disabled]=\"button.disabled?button.disabled:false\">\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</form>",
|
|
7882
7959
|
styles: [":host ::ng-deep .hide-accordian .p-accordion-header{display:none}:host ::ng-deep .hide-today-btn{visibility:hidden}.error{color:red}.hidden{display:none!important}.disabled-link label{opacity:.9}.disabled-link a,.disabled-link span,.disabled-link div{opacity:.5}.progress-spinner{z-index:999}.progress-spinner:before{content:\"\"}\n"]
|
|
7883
7960
|
},] }
|
|
7884
7961
|
];
|