@churchillliving/se-ui-toolkit 6.53.280 → 6.53.282

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.
@@ -3869,7 +3869,6 @@
3869
3869
  var hiddenFields_1 = 0;
3870
3870
  this.columns.forEach(function (column) {
3871
3871
  var permissions = column.permissions;
3872
- // if (!permissions) permissions = this.permissions;
3873
3872
  var hasValidEditPermission = false;
3874
3873
  if (permissions && permissions.length > 0) {
3875
3874
  permissions.forEach(function (permission) {
@@ -4172,11 +4171,6 @@
4172
4171
  GridComponent.prototype.setNumericMinMxFraction = function (column) {
4173
4172
  var _a, _b, _c, _d;
4174
4173
  var digitInfo = '2';
4175
- // if (column?.format.type === 'percent' && !column?.format?.formatParams?.allowCalculate && !column?.format?.formatParams?.digitsInfo) {
4176
- // digitInfo = '0'
4177
- // } else if (column?.format?.formatParams?.digitsInfo) {
4178
- // digitInfo = column.format.formatParams.digitsInfo;
4179
- // }
4180
4174
  if ((column === null || column === void 0 ? void 0 : column.format.type) === 'percent' && !((_b = (_a = column === null || column === void 0 ? void 0 : column.format) === null || _a === void 0 ? void 0 : _a.formatParams) === null || _b === void 0 ? void 0 : _b.digitsInfo)) {
4181
4175
  digitInfo = '0';
4182
4176
  }
@@ -4215,9 +4209,7 @@
4215
4209
  value = parseFloat(value).toFixed(digitsInfo ? digitsInfo : '2');
4216
4210
  break;
4217
4211
  case exports.EGridFormatType.PERCENT:
4218
- // if (!column.format?.formatParams?.allowCalculate) {
4219
4212
  value = value + '%';
4220
- //}
4221
4213
  break;
4222
4214
  }
4223
4215
  }
@@ -4828,11 +4820,9 @@
4828
4820
  if (((_c = column.format) === null || _c === void 0 ? void 0 : _c.type) === 'percent') {
4829
4821
  if ((_e = (_d = column.format) === null || _d === void 0 ? void 0 : _d.formatParams) === null || _e === void 0 ? void 0 : _e.allowCalculate) {
4830
4822
  if (digitsInfo) {
4831
- //console.log("i if, divide by 100")
4832
4823
  selectedRow[column.field] = parseFloat((_f = (selectedRow[column.field] / 100)) === null || _f === void 0 ? void 0 : _f.toString()).toFixed(digitsInfo);
4833
4824
  }
4834
4825
  else {
4835
- //console.log("in else, divide by 100")
4836
4826
  selectedRow[column.field] = selectedRow[column.field] / 100;
4837
4827
  }
4838
4828
  }
@@ -5024,6 +5014,7 @@
5024
5014
  */
5025
5015
  GridComponent.prototype.onRowEditCancel = function (row, index) {
5026
5016
  var _this = this;
5017
+ var rowInEditMode = Object.values(this.editingRowKeys).every(function (value) { return !value; });
5027
5018
  if (row === null || row === void 0 ? void 0 : row.isNew) {
5028
5019
  this.rowsData.splice(index, 1);
5029
5020
  }
@@ -5042,13 +5033,13 @@
5042
5033
  }
5043
5034
  });
5044
5035
  this.inEditMode = false;
5045
- if (Object.values(this.editingRowKeys).every(function (value) { return !value; })) {
5036
+ if (rowInEditMode) {
5046
5037
  this.sortDisabled = false;
5047
5038
  }
5048
5039
  this.addNewRowCheck = false;
5049
5040
  this.inlineRowCancel.emit(row);
5050
5041
  setTimeout(function () {
5051
- if (Object.values(_this.editingRowKeys).every(function (value) { return !value; }) && _this.setGridRefreshTime) {
5042
+ if (rowInEditMode && _this.setGridRefreshTime) {
5052
5043
  _this.refreshGrid();
5053
5044
  }
5054
5045
  }, 50);
@@ -5199,13 +5190,10 @@
5199
5190
  if (((_a = column === null || column === void 0 ? void 0 : column.format) === null || _a === void 0 ? void 0 : _a.type) === 'percent') {
5200
5191
  if ((_c = (_b = column.format) === null || _b === void 0 ? void 0 : _b.formatParams) === null || _c === void 0 ? void 0 : _c.allowCalculate) {
5201
5192
  if (digitsInfo_1) {
5202
- // row[column.field] = parseFloat((row[column.field] / 100)?.toString()).toFixed(digitsInfo);
5203
5193
  row[column.field] = parseFloat((_d = (row[column.field] * 100)) === null || _d === void 0 ? void 0 : _d.toString()).toFixed(digitsInfo_1); //THESE COMMENTED OUT LINES SHOULD RUN ON SAVE
5204
5194
  }
5205
5195
  else {
5206
- //row[column.field] = row[column.field] / 100;
5207
5196
  row[column.field] = row[column.field] * 100;
5208
- //console.log('multiplying by 100', row[column.field])
5209
5197
  }
5210
5198
  }
5211
5199
  else if (digitsInfo_1) {
@@ -5977,7 +5965,7 @@
5977
5965
  GridComponent.decorators = [
5978
5966
  { type: i0.Component, args: [{
5979
5967
  selector: 'se-grid',
5980
- template: "<p-confirmDialog\n [style]=\"{ width: '50vw' }\"\n *ngIf=\"useInlineCRUD\"\n key=\"handleInlineCRUD\"\n></p-confirmDialog>\n<p-confirmDialog\n [style]=\"{ width: '50vw' }\"\n *ngIf=\"columnActions.length > 0\"\n key=\"handlecolumnActions\"\n></p-confirmDialog>\n<div class=\"p-mb-2 p-d-flex p-ai-center\"\n *ngIf=\"\n allowColumnToggle ||\n rowActions.length > 0 ||\n useInlineCRUD ||\n allowExportToExcel ||\n allowExportToPdf ||\n clearGridFilter\n \"\n>\n<!-- button for apply filterValue on Grid -->\n <button\n *ngIf=\"filtering && !hideFilter\"\n pButton\n type=\"button\"\n icon=\"pi pi-search\"\n (click)=\"applyGirdFilterBtn()\"\n [class]=\"\n searchGridFilter ? 'p-button-success p-mr-2 p-ml-1' : 'hide-clear-filter-button'\n \"\n></button>\n\n<!-- button for clear filterValue on Grid -->\n <button\n *ngIf=\"filtering && !hideFilter\"\n pButton\n id=\"clearGridFilterValuesButton\"\n type=\"button\"\n icon=\"pi pi-replay\"\n (click)=\"cleargridFiltersValue()\"\n [class]=\"\n clearGridFilter ? 'p-button-danger p-mr-2 p-ml-1' : 'hide-clear-filter-button'\n \"\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\n pButton\n *ngIf=\"editAllRows && editRowPermission\"\n id=\"saveAllGridValues\"\n icon=\"pi pi-check\"\n [label]=\"'Save'\"\n [class]=\"hideGridSaveButton ? 'hide-clear-filter-button' : 'p-mr-2 ui-button-info'\"\n type=\"button\"\n (click)=\"saveAllRowsAtOnce()\"\n ></button>\n\n <!-- button for cancel all grid at once -->\n <button\n pButton\n *ngIf=\"editAllRows && !hideGridCancelButton\"\n id=\"editBtnGlobalvalues\"\n type=\"button\"\n [label]=\"'Cancel'\"\n icon=\"pi pi-times\"\n class=\"p-mr-2 ui-button-info\"\n (click)=\"cancelAllRowsAtOnce()\"\n ></button>\n\n <!-- header Button for multiSelect on Grid -->\n <span *ngIf=\"allowColumnToggle\">\n <p-multiSelect\n [showToggleAll]=\"false\"\n [options]=\"columns\"\n [(ngModel)]=\"selectedColumns\"\n optionLabel=\"header\"\n selectedItemsLabel=\"{0} columns selected\"\n [style]=\"{ minWidth: '200px' }\"\n placeholder=\"Choose Columns\"\n >\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\n pButton\n *ngIf=\"useInlineCRUD && addRowPermission && !hideAddBtn\"\n type=\"button\"\n [label]=\"'Add'\"\n pAddRow\n [table]=\"componentTableRef\"\n [newRow]=\"newGridRow\"\n [id]=\"dataKey\"\n pTooltip=\"Add New Row\"\n tooltipPosition=\"bottom\"\n icon=\"pi pi-plus\"\n class=\"ui-button-info p-mr-2 p-ml-2\"\n (click)=\"addNewRow(newGridRow, true)\"\n pRipple\n ></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\" [showDialog]=\"reportButton.showDialog\"></se-generate-report-btn>\n </div>\n \n<!-- header Button for Excel File on Grid -->\n<button\n *ngIf=\"allowExportToExcel\"\n type=\"button\"\n pButton\n icon=\"pi pi-file-excel\"\n (click)=\"exportExcel()\"\n class=\"p-button-success p-mt-0 p-mx-2\"\n pTooltip=\"Export to Excel\"\n tooltipPosition=\"bottom\"\n pRipple\n></button>\n\n<!-- header Button for PDF File on Grid -->\n<button\n *ngIf=\"allowExportToPdf\"\n type=\"button\"\n pButton\n icon=\"pi pi-file-pdf\"\n (click)=\"exportPdf()\"\n class=\"p-button-warning p-mr-2\"\n pTooltip=\"Export to Pdf\"\n tooltipPosition=\"bottom\"\n pRipple\n></button>\n</div>\n\n<p-table\n *ngIf=\"!isGridHidden\"\n id=\"my-table\"\n [value]=\"rowsData\"\n [columns]=\"selectedColumns\"\n sortMode=\"multiple\"\n [lazy]=\"useServerSideEvents\"\n [paginator]=\"pagination\"\n [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\n [rows]=\"defaultRows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"setPaginationLength\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n currentPageReportTemplate=\"Showing {first} to {last} of {{\n totalRecords\n }} entries\"\n [loading]=\"autoLoadData && !setGridRefreshTime ? loading : false\"\n (onSort)=\"sortDisabled ?? handleSortChange($event)\"\n (onFilter)=\"handleFilterChange($event)\"\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\"\n (onPage)=\"handleServerSidePagination($event)\"\n #dt\n [dataKey]=\"dataKey\"\n [(selection)]=\"selectedRows\"\n [scrollable]=\"scrollable\"\n [scrollHeight]=\"scrollHeight\"\n editMode=\"row\"\n [editingRowKeys]=\"editingRowKeys\"\n [autoLayout]=\"true\"\n [rowHover]=\"rowHover\"\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\"\n>\n <!-- header Button for Action on Grid -->\n <div\n *ngIf=\"rowActions.length > 0 && rowActions.length > 0\"\n class=\"p-d-flex p-jc-end\"\n >\n <span *ngFor=\"let rowAction of rowActions\">\n <button\n pButton\n type=\"button\"\n [label]=\"rowAction.title\"\n [class]=\"rowAction.class\"\n (click)=\"rowAction.onClick(selectedRows)\"\n ></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'\" [ngStyle]=\"{ width: selectionColumnWidth }\">\n <div style=\"display: flex;align-items: center;margin: 0 auto;\">\n <span class=\"flex-grow-1\"> {{allowSelectionHeader}} </span>\n <p-tableHeaderCheckbox\n *ngIf=\"selectionType === 'multiple'\"\n binary=\"true\"\n (click)=\"multiCheckBoxOnclick(rowsData, $event)\"\n ></p-tableHeaderCheckbox>\n </div>\n </th> \n <th *ngIf=\"allowSelection && selectionType === 'single'\" [ngStyle]=\"{ width: selectionColumnWidth }\">\n Select\n </th>\n <th\n *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n >\n Actions\n </th>\n <th\n *ngFor=\"let column of cols\"\n [pSortableColumn]=\"column.field\"\n [class]=\"column.type === 'boolean' ? 'checkbox-th' : ''\"\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\n [style]=\"column?.type === 'multiple' ? 'justify-content: center' : column.style\"\n >\n <div style=\"display: flex;align-items: center;white-space: nowrap;\">\n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\">*</span>\n <p-sortIcon\n *ngIf=\"column.sorting !== false && column?.type !== 'multiple'\"\n [field]=\"column.field\"\n ></p-sortIcon>\n </div>\n </th>\n <th *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [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\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n </th>\n <th\n *ngFor=\"let column of cols\"\n [ngSwitch]=\"column?.filter?.type\"\n [style]=\"column.style\"\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\"\n >\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\n <!-- Text input on Header For Filter-->\n <p-columnFilter\n [type]=\"'text'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <input\n type=\"text\"\n [(ngModel)]=\"column.value\"\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 </ng-template>\n </p-columnFilter>\n\n <!-- Numeric input on Header For Filter-->\n <p-columnFilter\n [type]=\"'numeric'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'numeric_input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <p-inputNumber\n [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"\n ></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 *ngIf=\"column.value\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(column)\"></button></div>\n </div>\n </ng-template>\n </p-columnFilter>\n\n <!-- checkbox on Header For Filter-->\n <p-columnFilter\n type=\"boolean\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'checkbox'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <p-checkbox\n [binary]=\"true\"\n [disabled]=\"column.disabled\"\n [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onChange)=\"setFilterFocusOut(column, filter, $event)\"\n (click)=\"clickCheckBoxFilter(column)\"\n (keydown)=\"backspaceEvent($event, column)\"\n >\n </p-checkbox>\n </ng-template>\n </p-columnFilter>\n\n <!-- multiSelect on Header For Filter-->\n <p-columnFilter\n [field]=\"column.field\"\n matchMode=\"in\"\n [showMenu]=\"false\"\n *ngSwitchCase=\"'multi-select'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <p-multiSelect\n [ngModel]=\"value\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"filter($event.value)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n placeholder=\"Any\"\n optionLabel=\"label\"\n >\n </p-multiSelect>\n </ng-template>\n </p-columnFilter>\n\n <!-- dropdown on Header For Filter-->\n <p-columnFilter\n [field]=\"column.field\"\n matchMode=\"in\"\n [showMenu]=\"false\"\n *ngSwitchCase=\"'dropdown'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <p-dropdown\n [showClear]=\"true\"\n [placeholder]=\"'Select'\"\n [filter]=\"column.allowSearch\"\n [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"\n ></p-dropdown>\n </ng-template>\n </p-columnFilter>\n\n <!-- calendar on Header For Filter-->\n <p-columnFilter\n [field]=\"column.field\"\n matchMode=\"in\"\n [showMenu]=\"false\"\n *ngSwitchCase=\"'calendar'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <p-calendar\n [placeholder]=\"'Select-Date'\"\n [(ngModel)]=\"column.value\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n appendTo=\"body\"\n (onSelect)=\"selectDate(column)\"\n [inputId]=\"column.field\"\n hourFormat=\"12\"\n (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\n [showButtonBar]=\"true\"\n (onClose)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (onClearClick)=\"backspaceEvent($event, column)\"\n >\n </p-calendar>\n </ng-template>\n </p-columnFilter>\n\n <!-- Default Filter For Header -->\n <p-columnFilter\n [type]=\"\n column.type && column.type !== 'link' ? column.type : 'text'\n \"\n [field]=\"column.field\"\n display=\"menu\"\n *ngSwitchDefault\n >\n </p-columnFilter>\n </span>\n </th>\n <th *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [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\n [ngClass]=\"row?.highlightrow ? 'highlighted-row' : ''\"\n [class]=\"wordWrap ? 'p-selectable-row' : 'noWrap p-selectable-row'\"\n (click)=\"!editing && handleRowClick(row)\"\n [pEditableRow]=\"row\"\n #gridRow\n [id]=\"row[dataKey]\"\n >\n <td *ngIf=\"allowSelection\" [ngStyle]=\"{ width: selectionColumnWidth }\">\n <p-tableRadioButton\n [value]=\"row\"\n *ngIf=\"selectionType === 'single'\"\n (click)=\"multiCheckBoxOnclick(row , $event, true)\"\n ></p-tableRadioButton>\n <p-tableCheckbox\n [value]=\"row\"\n *ngIf=\"selectionType === 'multiple'\"\n (click)=\"multiCheckBoxOnclick(row, $event)\"\n ></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\n [title]=\"action.tooltip\"\n [class]=\"action.icon\"\n (click)=\"handleActionClick($event, action, row)\"\n ></i>\n </span>\n </td>\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\" [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class=\"setActionColumnWidth\">\n <se-grid-row-actions\n [editing]=\"editing\"\n [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\"\n [hideDeleteBtn]=\"hideDeleteBtn\"\n [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\"\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\n (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\"\n >\n </se-grid-row-actions>\n </span>\n </td>\n\n <!-- Grid Rows Data Bindings Start -->\n <td\n *ngFor=\"let column of selectedColumns\"\n [ngSwitch]=\"column.type\"\n [style]=\"column.style\"\n >\n \n <!-- Boolean column on Grid -->\n <span *ngSwitchCase=\"'boolean'\">\n <td *ngIf=\"!editing\">\n <p-checkbox\n [disabled]=\"!column.allowEdit ?? true\"\n [binary]=\"true\"\n (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n (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 ? Checked\n : unChecked\n \"\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\n (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n [disabled]=\"allowDisabled(column,row)\"\n [binary]=\"true\"\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 ? editModeChecked\n : editModeunCkecked\n \"\n (blur)=\"onFocusOutEvent(column, row)\"\n ></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\n *ngIf=\"column.target !== '_self'\"\n (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\n >\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n {{\n setConditionBaseValue(row, column)\n }}\n </a>\n </span>\n <span\n *ngIf=\"column.target === '_self'\"\n (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\n >\n <a [href]=\"row[column.field + '_obj']?.hyperlink\">\n {{\n setConditionBaseValue(row, column)\n }}\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 *ngIf=\"(column.editable === true || column.editable === undefined) && (column.editLink === true || column.editLink === undefined)\">\n <input\n *ngIf=\"!row.isNew\"\n pInputText\n (click)=\"onClickEvent(column, row)\"\n 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]\"\n (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\"\n />\n <input\n pInputText\n *ngIf=\"row.isNew\"\n type=\"text\"\n (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]\"\n (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\"\n />\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\n class=\"custom-link\"\n (click)=\"gridIFrame(column, row[column.field + '_obj']?.hyperlink, row)\"\n [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 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 </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 [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n type=\"text\"\n pInputText\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=\"\n column.editable === false || column.editable === undefined\n \"\n [class]=\"\n allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\n \"\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) }}</ng-template>\n </span>\n </span>\n\n <span\n *ngIf=\"row[column.field + '_secondType'] === 'date'\"\n [title]=\"\n row[column.field]\n | date: (column.format ? column.format : 'MM/dd/YY')\n \"\n >\n <p-calendar\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\"\n hourFormat=\"12\"\n [showTime]=\"column.showTime\"\n (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)\"\n ></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)\"\n *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column)\"\n >\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\n readonly\n type=\"text\"\n 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]\"\n [name]=\"row[column.field]\"\n (keyup.tab)=\"selectLookupField(column, row)\"\n [disabled]=\"allowDisabled(column,row)\"\n (click)=\"selectLookupField(column, row)\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n \t(blur)=\"onFocusOutEvent(column, row)\"\n />\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\" (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 : row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </a>\n </span>\n <span\n *ngIf=\"!column.linkId\"\n [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\n (click)=\"openLookupHyperlink(column, row)\"\n >\n {{\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text : 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\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"\n column.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\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]\"\n [name]=\"column.field\"\n [disabled]=\"allowDisabled(column,row)\"\n (ngModelChange)=\"onChangeEvent(column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\"\n [mode]=\"\n column.format &&\n column.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \"\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 \"\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 \"\n [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [suffix]=\"\n column.format &&\n column.format.type === 'percent' && \n '%'\n \n \"\n >\n </p-inputNumber>\n </span>\n <ng-template #locked_field\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template\n >\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span\n [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\"\n pButton\n type=\"button\"\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\n [name]=\"column.header\"\n class=\"merge-btn\"\n [disabled]=\"allowDisabled(column,row)\"\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\n [ngStyle]=\"{\n background: column.color ? column.color : ''\n }\"\n (click)=\"onClickButton(column, row)\"\n ></button>\n </div>\n </span>\n\n <!-- Date column on Grid -->\n <span\n *ngSwitchCase=\"'date'\"\n [title]=\"setConditionBaseValue(row,column)\"\n >\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' : ''\"\n (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\"\n hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute] = \"column.minutesInterval ? column.minutesInterval : 1\"\n [showTime]=\"column.showTime\"\n [timeOnly]=\"column.timeOnly\"\n [dateFormat]=\"column.format ? column.format.type : calendarFormat\"\n (keyup)=\"calenderInputValue(column, row)\"\n (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]\"\n [disabled]=\"allowDisabled(column,row)\"\n [showButtonBar]=\"!column.timeOnly\"\n ></p-calendar>\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\n *ngSwitchCase=\"'dropdown'\"\n [class]=\"dropdownInput ? '' : 'output-dropdown'\"\n [title]=\"\n setDropdwonReadOnlyValue(row, column)\n \"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown\n *ngIf=\"!row[column.field]?.action?.hidden\"\n [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)\"\n [placeholder]=\"row[column.displayField]\n ? row[column.displayField]\n : row[column.field] ? row[column.field] : 'Select'\"\n [showClear]=\"row[column.field] ? true : false\"\n [optionLabel]=\"column.optionLabel\"\n (click)=\"onClickEvent(column, row)\"\n [optionValue]=\"column.optionValue\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n (blur)=\"onFocusOutEvent(column, row)\"\n (onChange)=\"onChangeEvent(column, row)\"\n [filter]=\"column.allowSearch\"\n ></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\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n 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]\"\n [disabled]=\"allowDisabled(column,row)\"\n [options]=\"column.data\"\n [optionLabel]=\"column.optionLabel\"\n [optionValue]=\"column.optionValue\"\n (onChange)=\"onChangeEvent(column, row)\"\n (onPanelShow)=\"showOption(column, row)\"\n (click)=\"onClickEvent(column, row)\"\n [appendTo]=\"'body'\"\n (blur)=\"onFocusOutEvent(column, row)\"\n >\n </p-multiSelect>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span\n [title]=\"\n row[column.displayField]\n ? row[column.displayField]\n : setMultiSelectData(column, row[column.field])\n \"\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\n *ngSwitchCase=\"'AutoComplete'\"\n >\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 [field]=\"column.displayField\"\n [(ngModel)]=\"row[column.field]?.action && row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : typeOf(row[column.field]) === 'object' && row[column.field]?.text ? row[column.field]?.text : row[column.field]\" \n [dropdown]=\"column.showOption\"\n (onChange)=\"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)\"\n >\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 ? value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\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\" [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\" [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\n pInputText\n type=\"text\"\n [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]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\"\n (click)=\"onClickButton(column, row)\"\n *ngIf=\"column.field !== dataKey; else locked_field\"\n />\n <ng-template #locked_field\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template\n >\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span\n (click)=\"onClickEvent(column, row)\"\n [title]=\"\n column.displayText ? column.displayText : \n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n \"\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\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i\n [title]=\"action.tooltip\"\n [class]=\"action.icon\"\n (click)=\"handleActionClick($event, action, row)\"\n ></i>\n </span>\n </td>\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\" [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class='setActionColumnWidth'>\n <se-grid-row-actions\n [editing]=\"editing\"\n [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\"\n [hideDeleteBtn]=\"hideDeleteBtn\"\n [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\"\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\n (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\"\n >\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 *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngFor=\"let outerColumn of selectedColumns\" [style]=\"outerColumn.style\">\n <div *ngFor=\"let innerColumn of selectedColumns\">\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\n <div *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 *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\" [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>\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>\n",
5968
+ template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" *ngIf=\"useInlineCRUD\" key=\"handleInlineCRUD\"></p-confirmDialog>\n<p-confirmDialog [style]=\"{ width: '50vw' }\" *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 filterValue 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 filterValue on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton id=\"clearGridFilterValuesButton\" type=\"button\"\n icon=\"fa-solid fa-rotate-left\" (click)=\"cleargridFiltersValue()\" [class]=\"\n clearGridFilter ? 'p-button-danger p-mr-2 p-ml-1' : 'hide-clear-filter-button'\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\" [style]=\"{ minWidth: '200px' }\" 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 p-mr-2 p-ml-2\" (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\" [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\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\" [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'\" [ngStyle]=\"{ width: selectionColumnWidth }\">\n <div style=\"display: flex;align-items: center;margin: 0 auto;\">\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'\" [ngStyle]=\"{ width: selectionColumnWidth }\">\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 [style]=\"column?.type === 'multiple' ? 'justify-content: center' : column.style\">\n <div style=\"display: flex;align-items: center;white-space: nowrap;\">\n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\">*</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 [type]=\"'text'\" [field]=\"column.field\" *ngSwitchCase=\"'lookup_input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <div class=\"close-icon-wrapper\">\n <input id=\"lookUp_filter\" autocomplete=\"off\" type=\"text\" [(ngModel)]=\"column.value\"\n (click)=\"setFilterLookup(column)\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\" pInputText />\n <div><button *ngIf=\"column.value\" icon=\"pi pi-times\" pButton type=\"button\"\n (click)=\"lookupClearValue(column)\"></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\" [ngStyle]=\"{ width: selectionColumnWidth }\">\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\" [style]=\"column.style\">\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)\" [(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 ? 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 ? 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 </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 </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 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 </span>\n </span>\n\n <!-- dialog column on Grid -->\n <span *ngSwitchCase=\"'dialog'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column) \">\n <span *ngIf=\"column.editable === true\">\n <input [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" type=\"text\" pInputText\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]\" [name]=\"row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\" />\n </span>\n <span *ngIf=\"\n 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 (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 [ngStyle]=\"{\n background: column.color ? column.color : ''\n }\" (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 [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" [name]=\"column.header\"\n [suggestions]=\"column.data\" [field]=\"column.displayField\"\n [(ngModel)]=\"row[column.field]?.action && row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : typeOf(row[column.field]) === 'object' && row[column.field]?.text ? row[column.field]?.text : row[column.field]\"\n [dropdown]=\"column.showOption\" (onChange)=\"onChangeEvent(column, row)\"\n (click)=\"onClickEvent(column, row)\" (completeMethod)=\"autoSearch($event, column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" [disabled]=\"allowDisabled(column,row)\" [multiple]=\"true\"\n (keydown.enter)=\"onAutoCompleteFocusOut($event, column)\">\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 {{ column.displayField ? row[column.displayField?.toLowerCase()] : 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 </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 *ngFor=\"let outerColumn of selectedColumns\" [style]=\"outerColumn.style\">\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>\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>",
5981
5969
  styles: [".action-btn{margin-right:10px;cursor:pointer}:host ::ng-deep .two-action-btn{flex:0!important;flex-basis:6%!important}:host ::ng-deep .three-action-btn{flex:0!important;flex-basis:8%!important}:host ::ng-deep .p-column-filter-clear-button{display:none}:host ::ng-deep .hide-table-filter .pi-filter:before{display:none}:host ::ng-deep .horizontal-scroll .p-datatable{position:relative;width:calc(100vw - 263px);overflow:auto;height:calc(100vh - 134px)}:host ::ng-deep .horizontal-scroll .p-datatable th,:host ::ng-deep .horizontal-scroll .p-datatable td{min-width:150px}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td{padding:0 1rem!important}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td span{vertical-align:middle}:host ::ng-deep td[ng-reflect-ng-switch=multi-select] span{overflow:visible!important}:host ::ng-deep td[ng-reflect-ng-switch=dropdown] span{overflow:visible!important}:host ::ng-deep .input-number{border:0;border-radius:2px;padding:5px 0}:host ::ng-deep .input-number input{border:0;padding:0 10px 0 0;outline:none!important;box-shadow:none!important}:host ::ng-deep .input-number button{color:#2d2d2d;width:15px;height:12px;border:0;background-color:#eee}:host ::ng-deep .input-number button:hover{color:#2d2d2d;background-color:#ddd}:host ::ng-deep .input-number button span{font-size:12px}:host ::ng-deep .hide-filter-icon .p-column-filter-menu-button{display:none}.disable-link{color:#e4b7b8;pointer-events:none;text-decoration:underline;opacity:.5}.hyperlink{color:#cc7272;text-decoration:underline;cursor:pointer}.custom-link{color:#205dcf;cursor:pointer;font-size:12px}.setActionColumnWidth{display:flex}.noWrap td span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.highlighted-row{background-color:#dee2e6!important}td[ng-reflect-ng-switch=AutoComplete] span{overflow:visible!important}.hide-clear-filter-button{display:none!important}#hide-border{border-bottom:0!important}p-celleditor p-inputnumber{border:0}.merge-btn{margin-top:2px;line-height:14px}.close-icon-wrapper{position:relative}.close-icon-wrapper input{width:100%}.close-icon-wrapper button{position:absolute;right:5px;top:6px;width:25px;height:25px;background:unset;color:#777;border:0}\n"]
5982
5970
  },] }
5983
5971
  ];
@@ -6626,8 +6614,7 @@
6626
6614
  enumerable: false,
6627
6615
  configurable: true
6628
6616
  });
6629
- FormComponent.prototype.ngOnInit = function () {
6630
- };
6617
+ FormComponent.prototype.ngOnInit = function () { };
6631
6618
  // browser tab close event
6632
6619
  FormComponent.prototype.beforeunloadHandler = function (event) {
6633
6620
  if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {
@@ -6734,14 +6721,11 @@
6734
6721
  if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.NUMERIC) {
6735
6722
  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;
6736
6723
  if (((_c = field === null || field === void 0 ? void 0 : field.format) === null || _c === void 0 ? void 0 : _c.type) === 'percent') {
6737
- // if (!field.value?.toString()?.includes('.') && field.format?.formatParams?.allowCalculate) {//see if you need the .includes
6738
6724
  if ((_e = (_d = field.format) === null || _d === void 0 ? void 0 : _d.formatParams) === null || _e === void 0 ? void 0 : _e.allowCalculate) {
6739
6725
  if (digitsInfo) {
6740
- //field.value = parseFloat((field.value / 100)?.toString()).toFixed(digitsInfo);
6741
6726
  field.value = parseFloat((_f = (field.value * 100)) === null || _f === void 0 ? void 0 : _f.toString()).toFixed(digitsInfo);
6742
6727
  }
6743
6728
  else {
6744
- // field.value = field.value / 100;
6745
6729
  field.value = field.value * 100;
6746
6730
  }
6747
6731
  }
@@ -7188,11 +7172,9 @@
7188
7172
  if (field.control === exports.EFormControl.CALENDAR && field.timeOnly && field.saveAsString && !((_b = (_a = field.value) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.includes("AM")) && !((_d = (_c = field.value) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.includes("PM"))) {
7189
7173
  field.value = _this.datePipe.transform(field.value, 'hh:mm a');
7190
7174
  }
7191
- //if type=percent and allowCalculate=true, divide amount by 100
7192
7175
  if ((field === null || field === void 0 ? void 0 : field.control) === exports.EFormControl.NUMERIC) {
7193
7176
  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;
7194
7177
  if (((_g = field === null || field === void 0 ? void 0 : field.format) === null || _g === void 0 ? void 0 : _g.type) === 'percent') {
7195
- // if (!field.value?.toString()?.includes('.') && field.format?.formatParams?.allowCalculate) {//see if you neet the .includes part
7196
7178
  if ((_j = (_h = field.format) === null || _h === void 0 ? void 0 : _h.formatParams) === null || _j === void 0 ? void 0 : _j.allowCalculate) {
7197
7179
  if (digitsInfo) {
7198
7180
  field.value = parseFloat((_k = (field.value / 100)) === null || _k === void 0 ? void 0 : _k.toString()).toFixed(digitsInfo);
@@ -7205,7 +7187,6 @@
7205
7187
  field.value = parseFloat(field.value).toFixed(digitsInfo);
7206
7188
  }
7207
7189
  }
7208
- //console.log('field is', field)
7209
7190
  }
7210
7191
  // set value of autoComplete as strings
7211
7192
  if (field.control === exports.EFormControl.AUTOCOMPLETE && !field.showAllValue && field.value && field.value.length > 0) {
@@ -7617,7 +7598,7 @@
7617
7598
  FormComponent.decorators = [
7618
7599
  { type: i0.Component, args: [{
7619
7600
  selector: 'se-form',
7620
- 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-d-flex p-flex-wrap container w-100 my-5\">\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\" [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\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"p-mb-0 p-d-flex p-ai-center p-mr-3\">\n <i [class]=\"formSection.icon\" class=\"p-mr-1\"></i>\n <b> {{ formSection.name }} </b>\n </label>\n\n <div\n *ngFor=\"let link of formSection.links\"\n [class]=\"formSection.disabled ? 'disabled-link' : ''\"\n >\n <label\n class=\"p-mr-3\"\n [class]=\"link.name ? 'custom-link' : ''\"\n (click)=\"link.onClick()\"\n >\n {{ link.name }}\n </label>\n </div>\n </div>\n\n <div class=\"p-d-flex p-flex-wrap\">\n <div\n [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 >\n <!-- labelControl Hyperlink on Lookup Control Field-->\n <div *ngIf=\"formField.label?.labelControl\">\n <div\n class=\"link-label custom-link p-mt-1\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\"\n >\n <a\n class=\"pl-2\"\n tabindex=\"-1\"\n (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\n [href]=\"formField.label.labelControl?.hyperlink?.link\"\n [title]=\"formField.label.name\"\n >\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </a>\n </div>\n <div\n class=\"link-label custom-link p-mt-1\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\"\n >\n <a\n class=\"pl-2\"\n tabindex=\"-1\"\n (click)=\"loadLabelControlIFrame(formField)\"\n [title]=\"formField.label.name\"\n >\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div\n class=\"link-label custom-link p-mt-1\"\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\"\n >\n <a\n tabindex=\"-1\"\n [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\n (click)=\"selectLookupLabel(formField)\"\n [title]=\"formField.label.name\"\n >\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </a>\n </div>\n </div>\n <div [ngSwitch]=\"formField.control\">\n\n <!-- Spacer Control -->\n <span *ngIf=\"!formField.hidden\">\n <div\n class=\"p-d-flex p-flex-column\"\n *ngSwitchCase=\"dynamicCase.SPACER\"\n >\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 \"\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\">*</span>\n </label>\n <textarea\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n pInputTextarea\n [rows]=\"formField.row ? formField.row : 1 \"\n (change)=\"onChangeEvent(formField)\"\n (click)=\"handleClickEvent(formField)\"\n [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\n (blur)=\"onFocusOutEvent(formField)\"\n ></textarea>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!formField.hidden\">\n <div\n class=\"p-d-flex p-flex-column\"\n *ngSwitchCase=\"dynamicCase.INPUT\"\n >\n <span\n [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\"\n >\n <label\n *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\"\n [title]=\"formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\"\n >\n {{\n formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\">*</span>\n <span *ngIf=\"formField.isPassword\">&nbsp; \n <i *ngIf=\"formField.textType=='password';else hideButton\" class=\"pi pi-eye\" (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\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\"\n [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\n [type]=\"formField.textType ? formField.textType : 'text'\"\n pInputText\n [(ngModel)]=\"\n formField.value &&\n typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\n \"\n (change)=\"onChangeEvent(formField)\"\n [name]=\"formField.field ? formField.field : formField.label\"\n (click)=\"handleClickEvent(formField)\"\n [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\"\n />\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!formField.hidden\">\n <div\n class=\"p-d-flex p-flex-column\"\n *ngSwitchCase=\"dynamicCase.NUMERIC\"\n >\n <label\n [class]=\"\n formField.label.onClick ? 'custom-link' : ''\n \"\n (click)=\"\n formField.label.onClick &&\n formField.label.onClick()\n \"\n [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\"\n >\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </label>\n <!-- for Currency && number && Decimal && Percent -->\n <span\n class=\"input-number\"\n >\n <p-inputNumber\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\"\n (ngModelChange)=\"onChangeEvent(formField)\"\n (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\"\n [mode]=\"\n formField.format &&\n formField.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \"\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 \"\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 \"\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 \"\n [suffix]=\"\n formField.format &&\n formField.format.type === 'percent' && \n '%'\n \n \"\n >\n </p-inputNumber>\n </span>\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\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 \"\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\">*</span>\n </label>\n <input\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n type=\"password\"\n (click)=\"handleClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\"\n pInputText\n [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\"\n (blur)=\"onFocusOutEvent(formField)\"\n />\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\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\">*</span>\n </label>\n <p-checkbox\n class=\"p-d-flex p-ai-center\"\n [binary]=\"true\"\n [name]=\"formField.field\"\n (click)=\"onClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\"\n [(ngModel)]=\"formField.value\"\n [disabled]=\"formField.disabled\"\n (onChange)=\"onFocusOutEvent(formField)\"\n >\n </p-checkbox>\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\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\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\n >\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \"\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\">*</span>\n </label>\n </span>\n <p-calendar\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty ' + formField.field\n : 'form-control '+ formField.field\n \"\n [showButtonBar]=\"!formField.timeOnly\"\n [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\"\n [disabled]=\"formField.disabled\" hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute] = \"formField.minutesInterval ? formField.minutesInterval : 1\"\n [showTime]=\"formField.showTime\"\n (onShow)=\"setCalenderDate(formField)\"\n [timeOnly]=\"formField.timeOnly\"\n [view]=\"formField.monthOnly ? 'month' : 'date' \"\n (click)=\"handleClickEvent(formField)\"\n [dateFormat]=\"formField?.format?.type ? formField.format?.type : calendarFormat\"\n (ngModelChange)=\"calendarChangeValue(formField)\"\n (onInput)=\"calenderInputValue(formField)\"\n (onClose)=\"onFocusOutEvent(formField)\">\n </p-calendar>\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\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 \"\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\">*</span>\n </label>\n <p-dropdown\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n autocomplete=\"off\"\n [styleClass]='formField.field'\n [placeholder]=\"formField.value\"\n [options]=\"formField.data\"\n [filter]=\"formField.allowSearch\"\n [(ngModel)]=\"formField.value\"\n [optionLabel]=\"formField.optionLabel\"\n [optionValue]=\"formField.optionValue\"\n [name]=\"formField.field\"\n (keyup.Tab)=\"tabFocusEvent(formField)\"\n (click)=\"clearDropdownValue(formField)\"\n [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\"\n [showClear]=\"formField.value ? true : false\"\n (onChange)=\"onClearValue(formField, $event)\"\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\"\n >\n </p-dropdown>\n <span\n *ngIf=\"\n !formField?.isValid &&\n !formField.hidden\n \"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\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\">*</span>\n </label>\n <span class=\"p-fluid\">\n <p-autoComplete\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n [suggestions]=\"formField.data\"\n [(ngModel)]=\"formField.value\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"handleClickEvent(formField)\"\n (completeMethod)=\"autoSearch($event, formField)\"\n [dropdown]=\"formField.showOption\"\n [field]=\"formField.displayField\"\n [name]=\"formField.label\"\n [multiple]=\"true\"\n [disabled]=\"formField.disabled\"\n (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 \"\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\">*</span>\n </label>\n <p-multiSelect\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n [(ngModel)]=\"formField.value\"\n [options]=\"formField.data\"\n optionLabel=\"label\"\n optionValue=\"value\" [appendTo]=\"'body'\"\n [name]=\"formField.field\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"formField.onClick ? formField.onClick() : ''\"\n [disabled]=\"formField.disabled\" (blur)=\"onFocusOutEvent(formField)\">\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Hyperlink-->\n <span *ngIf=\"!formField.hidden\">\n <div\n [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \"\n [title]=\"formField.label\"\n *ngSwitchCase=\"dynamicCase.HYPERLINK\"\n >\n <div\n *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.component\n \"\n (click)=\"hyperlinkDialog(formField)\"\n >\n {{ formField.label }}\n </div>\n <div\n [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \"\n *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target !== '_iframe' &&\n !formField.hyperlink.component\n \"\n >\n <a\n class=\"pl-2\"\n tabindex=\"-1\"\n [href]=\"sanitizeUrl(formField.hyperlink?.link)\"\n [target]=\"formField.hyperlink?.target\"\n (click)=\"handleClickEvent(formField)\"\n [title]=\"formField.label\"\n >\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </a>\n </div>\n <div\n *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target === '_iframe' &&\n !formField.hyperlink.component\n \"\n >\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\">*</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\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\n >\n <label\n *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\n \"\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\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n <input\n [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \"\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\"\n autocomplete=\"off\"\n [id]=\"formField.field\"\n [name]=\"formField.field\"\n (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\"\n (keyup.Tab)=\"selectLookupField(formField)\"\n readonly\n (keydown)=\"$event.preventDefault()\"\n />\n <div><button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(formField)\"></button></div>\n </div>\n <span\n *ngIf=\"!formField?.isValid\"\n class=\"error\"\n >{{ formField.errorMessage }}</span\n >\n </div>\n </span>\n\n <!-- File Upload Field -->\n <span *ngIf=\"!formField.hidden\">\n <div\n class=\"p-d-flex p-flex-column\"\n *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\"\n >\n <span\n [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \"\n >\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </label>\n </span>\n <se-file-upload\n [allowMultiple]=\"formField.selectMultipleFiles\"\n [acceptFileTypes]=\"formField.SetfileTypes\"\n [fields]=\"formField\"\n (fileUrl)=\"setFileUrls($event)\"\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"\n ></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\n class=\"p-d-flex p-flex-column\"\n *ngSwitchCase=\"dynamicCase.CARD\"\n >\n <span\n [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \"\n >\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\">*</span>\n </label>\n </span>\n\n <se-card\n [card]=\"formField.card\"\n [setCardData]=\"setCardData\"\n (selectedCard)=\"selectedCardClickEvent($event)\"\n ></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 >\n <span class=\"pl-2\" (click)=\"\n !formField.disabled\n ? handleNoteFieldDialog(formField)\n : ''\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\">*</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}}\"\n #dynamicComponentContainer\n *ngSwitchCase=\"dynamicCase.COMPONENT\"\n ></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\n pButton\n type=\"button\"\n [icon]=\"formField.icon\"\n [label]=\"formField.label\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\n (click)=\"onClickEvent(formField)\"\n ></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\" [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\n [name]=\"formField.label ? formField.label: 'switch'\"\n [(ngModel)]=\"formField.value\"\n [disabled]=\"formField.disabled\"\n (click)=\"onClickEvent(formField)\"\n ></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\n </div>\n </span>\n\n <!-- save and close buttons -->\n <div\n class=\"p-col-12 p-d-flex p-jc-end\"\n [ngClass]=\"{ sticky: stickyActions }\"\n >\n <div class=\"inner-sticky\">\n <!-- save button -->\n <button\n *ngIf=\"!hideSaveButton\"\n [disabled]=\"isFormDisabled\"\n pButton\n type=\"button\"\n icon=\"pi pi-check\"\n label=\"Save\"\n class=\"p-button-success\"\n (click)=\"onSaveForm()\"\n ></button>\n\n <!-- close button -->\n <button\n *ngIf=\"!hideCancelButton\"\n [disabled]=\"isFormDisabled\"\n (click)=\"onCancelForm()\"\n pButton type=\"button\"\n icon=\"pi pi-times\"\n label=\"Cancel\"\n class=\"p-button-danger p-ml-3\"\n ></button>\n\n <!-- dynamic buttons -->\n <button *ngFor=\"let button of formButtons\" \n pButton type=\"button\"\n [label]=\"button.label\"\n [icon]=\"button.icon ? button.icon : ''\"\n class=\"p-button-success p-ml-3\"\n (click)=\"onNewButtonClick(button)\"\n >\n </button>\n </div>\n </div>\n </div>\n</form>\n",
7601
+ 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-d-flex p-flex-wrap container w-100 my-5\">\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\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"p-mb-0 p-d-flex p-ai-center p-mr-3\">\n <i [class]=\"formSection.icon\" class=\"p-mr-1\"></i>\n <b> {{ formSection.name }} </b>\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\">\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 p-mt-1\"\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\">*</span>\n </a>\n </div>\n <div class=\"link-label custom-link p-mt-1\"\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\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div class=\"link-label custom-link p-mt-1\"\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\">*</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\">*</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\">*</span>\n <span *ngIf=\"formField.isPassword\">&nbsp;\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\">*</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\">*</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\">*</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\">*</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\">*</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\">*</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\">*</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\">*</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\">*</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\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\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 <div><button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton\n type=\"button\" (click)=\"lookupClearValue(formField)\"></button></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\">*</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\">*</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\">*</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\">\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\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\n\n <!-- dynamic buttons -->\n <button *ngFor=\"let button of formButtons\" pButton type=\"button\" [label]=\"button.label\"\n [icon]=\"button.icon ? button.icon : ''\" class=\"p-button-success p-ml-3\" (click)=\"onNewButtonClick(button)\">\n\n </button>\n </div>\n </div>\n </div>\n</form>",
7621
7602
  styles: ["*{font-family:\"Lato\",sans-serif}.fa-solid,.fa-light,.fa-regular,.fa-thin,.fa-duotone{font-family:\"Font Awesome 6 Pro\"!important}.pi{font-family:\"primeicons\"}#toast-container{background:black}.grow-1{flex-grow:1}.w-100{width:100%}.center-content{width:100%!important}.custom-link{color:#4e87f1;cursor:pointer;text-decoration:none}.break-line{width:100%}:host ::ng-deep .p-calendar,:host ::ng-deep .p-dropdown,:host ::ng-deep .p-multiselect{width:100%}:host ::ng-deep .toast-error{background:black!important}:host ::ng-deep .p-float-label label{margin-top:-.5rem!important}:host ::ng-deep .p-datepicker .p-datepicker-buttonbar{padding:0}:host ::ng-deep .hide-accordian .p-accordion-header{display:none}:host ::ng-deep .input-number{border:0;border-radius:2px}:host ::ng-deep .input-number input{border:0;border-radius:3px}:host ::ng-deep .input-number button{color:#2d2d2d;width:15px;height:10.8px;border:0;background-color:#eee}:host ::ng-deep .input-number button:hover{color:#2d2d2d;background-color:#ddd}:host ::ng-deep .input-number button span{font-size:12px}:host ::ng-deep .close-icon-wrapper{position:relative}:host ::ng-deep div[ng-reflect-ng-switch=lookup_input] span .close-icon-wrapper input{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;cursor:pointer}:host ::ng-deep .hide-today-btn{visibility:hidden}:host ::ng-deep .show-today-btn{background:rgba(33,150,243,.04);color:#2196f3;border-color:transparent}label{margin:0 0 5px}span,textarea{width:100%}.error{color:red}.link-label{display:flex;align-items:center;height:39px;margin-top:22px}.link-label a{color:#4e87f1;cursor:pointer;font-size:12px;text-decoration:none}.custom-link{color:#4e87f1;cursor:pointer;font-size:12px}.label-custom-link{font-size:12px}.hidden{display:none!important}.sticky{width:calc(100% - 260px);position:fixed;bottom:0;right:0}.fixed-height{height:calc(100vh - 65px)}.disabled-link label{pointer-events:none;opacity:.9}.disabled-link a,.disabled-link span,.disabled-link div{pointer-events:none;opacity:.5}.disabled-link div{color:#636363}.disable-label-control{pointer-events:none}#remove-boder{border:none!important}input[type=text]{cursor:pointer}.progress-spinner{position:fixed;z-index:999;height:60px;width:60px;overflow:show;margin:auto;top:0;left:0;bottom:0;right:0}.progress-spinner:before{content:\"\";display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000026}.p-dialog{position:absolute!important}:host ::ng-deep .custom-spinner .p-progress-spinner-circle{stroke:#000!important}:host ::ng-deep .p-progress-spinner{height:60px!important;width:60px!important}.close-icon-wrapper{position:relative}.close-icon-wrapper input{width:100%}.close-icon-wrapper button{position:absolute;right:5px;top:6px;width:25px;height:25px;background:unset;color:#777;border:0}\n"]
7622
7603
  },] }
7623
7604
  ];