@churchillliving/se-ui-toolkit 6.53.31 → 6.53.34

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.
@@ -5429,7 +5429,7 @@
5429
5429
  GridComponent.decorators = [
5430
5430
  { type: i0.Component, args: [{
5431
5431
  selector: 'se-grid',
5432
- template: "<p-confirmDialog\r\n [style]=\"{ width: '50vw' }\"\r\n *ngIf=\"useInlineCRUD\"\r\n key=\"handleInlineCRUD\"\r\n></p-confirmDialog>\r\n<p-confirmDialog\r\n [style]=\"{ width: '50vw' }\"\r\n *ngIf=\"columnActions.length > 0\"\r\n key=\"handlecolumnActions\"\r\n></p-confirmDialog>\r\n<div class=\"p-mb-2 p-d-flex p-ai-center\"\r\n *ngIf=\"\r\n allowColumnToggle ||\r\n rowActions.length > 0 ||\r\n useInlineCRUD ||\r\n allowExportToExcel ||\r\n allowExportToPdf ||\r\n clearGridFilter\r\n \"\r\n>\r\n<!-- button for apply filterValue on Grid -->\r\n <button\r\n *ngIf=\"filtering && !hideFilter\"\r\n pButton\r\n type=\"button\"\r\n icon=\"pi pi-search\"\r\n (click)=\"applyGirdFilterBtn()\"\r\n [class]=\"\r\n searchGridFilter ? 'p-button-success p-mr-2 p-ml-1' : 'hide-clear-filter-button'\r\n \"\r\n></button>\r\n\r\n<!-- button for clear filterValue on Grid -->\r\n <button\r\n *ngIf=\"filtering && !hideFilter\"\r\n pButton\r\n id=\"clearGridFilterValuesButton\"\r\n type=\"button\"\r\n icon=\"pi pi-refresh\"\r\n (click)=\"cleargridFiltersValue()\"\r\n [class]=\"\r\n clearGridFilter ? 'p-button-danger p-mr-2 p-ml-1' : 'hide-clear-filter-button'\r\n \"\r\n></button>\r\n\r\n<!-- button for edit all grid at once -->\r\n<!-- <button\r\n pButton\r\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\r\n id=\"editBtnGlobalvalues\"\r\n type=\"button\"\r\n [label]=\"'Edit'\"\r\n class=\"p-mr-2 ui-button-info\"\r\n icon=\"pi pi-pencil\"\r\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\r\n (click)=\"editAllRowsAtOnce()\"\r\n ></button> -->\r\n\r\n <!-- button for save all grid at once -->\r\n <button\r\n pButton\r\n *ngIf=\"editAllRows && editRowPermission\"\r\n id=\"saveAllGridValues\"\r\n icon=\"pi pi-check\"\r\n [label]=\"'Save'\"\r\n class=\"p-mr-2 ui-button-info\"\r\n type=\"button\"\r\n (click)=\"saveAllRowsAtOnce()\"\r\n ></button>\r\n\r\n <!-- button for cancel all grid at once -->\r\n <button\r\n pButton\r\n *ngIf=\"editAllRows\"\r\n id=\"editBtnGlobalvalues\"\r\n type=\"button\"\r\n [label]=\"'Cancel'\"\r\n icon=\"pi pi-times\"\r\n class=\"p-mr-2 ui-button-info\"\r\n (click)=\"cancelAllRowsAtOnce()\"\r\n ></button>\r\n\r\n <!-- header Button for multiSelect on Grid -->\r\n <span *ngIf=\"allowColumnToggle\">\r\n <p-multiSelect\r\n [showToggleAll]=\"false\"\r\n [options]=\"columns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n optionLabel=\"header\"\r\n selectedItemsLabel=\"{0} columns selected\"\r\n [style]=\"{ minWidth: '200px' }\"\r\n placeholder=\"Choose Columns\"\r\n >\r\n </p-multiSelect>\r\n </span>\r\n\r\n <!-- header Button for Adding new Row on Grid -->\r\n <button\r\n pButton\r\n *ngIf=\"useInlineCRUD && addRowPermission && !hideOnRowAddBtn\"\r\n type=\"button\"\r\n [label]=\"'Add'\"\r\n pAddRow\r\n [table]=\"componentTableRef\"\r\n [newRow]=\"newGridRow\"\r\n [id]=\"dataKey\"\r\n pTooltip=\"Add New Row\"\r\n tooltipPosition=\"bottom\"\r\n icon=\"pi pi-plus\"\r\n class=\"ui-button-info p-mr-2\"\r\n (click)=\"addNewRow(newGridRow, true)\"\r\n pRipple\r\n ></button>\r\n \r\n<!-- header Button for Excel File on Grid -->\r\n<button\r\n *ngIf=\"allowExportToExcel\"\r\n type=\"button\"\r\n pButton\r\n icon=\"pi pi-file-excel\"\r\n (click)=\"exportExcel()\"\r\n class=\"p-button-success p-mt-0 p-mx-2\"\r\n pTooltip=\"Export to Excel\"\r\n tooltipPosition=\"bottom\"\r\n pRipple\r\n></button>\r\n\r\n<!-- header Button for PDF File on Grid -->\r\n<button\r\n *ngIf=\"allowExportToPdf\"\r\n type=\"button\"\r\n pButton\r\n icon=\"pi pi-file-pdf\"\r\n (click)=\"exportPdf()\"\r\n class=\"p-button-warning p-mr-2\"\r\n pTooltip=\"Export to Pdf\"\r\n tooltipPosition=\"bottom\"\r\n pRipple\r\n></button>\r\n</div>\r\n\r\n<p-table\r\n *ngIf=\"!isGridHidden\"\r\n id=\"my-table\"\r\n [value]=\"rowsData\"\r\n [columns]=\"selectedColumns\"\r\n sortMode=\"multiple\"\r\n [lazy]=\"useServerSideEvents\"\r\n [paginator]=\"pagination\"\r\n [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\r\n [rows]=\"defaultRows\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"setPaginationLength\"\r\n [showCurrentPageReport]=\"showCurrentPageReport\"\r\n currentPageReportTemplate=\"Showing {first} to {last} of {{\r\n totalRecords\r\n }} entries\"\r\n [loading]=\"autoLoadData ? loading : false\"\r\n (onSort)=\"sortDisabled ?? handleSortChange($event)\"\r\n (onFilter)=\"handleFilterChange($event)\"\r\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\"\r\n (onPage)=\"handleServerSidePagination($event)\"\r\n #dt\r\n [dataKey]=\"dataKey\"\r\n [(selection)]=\"selectedRows\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollHeight\"\r\n editMode=\"row\"\r\n [editingRowKeys]=\"editingRowKeys\"\r\n [autoLayout]=\"true\"\r\n [rowHover]=\"rowHover\"\r\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\"\r\n>\r\n <!-- header Button for Action on Grid -->\r\n <div\r\n *ngIf=\"rowActions.length > 0 && rowActions.length > 0\"\r\n class=\"p-d-flex p-jc-end\"\r\n >\r\n <span *ngFor=\"let rowAction of rowActions\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"rowAction.title\"\r\n [class]=\"rowAction.class\"\r\n (click)=\"rowAction.onClick(selectedRows)\"\r\n ></button>\r\n </span>\r\n </div>\r\n\r\n <!-- header columns on Grid -->\r\n <ng-template pTemplate=\"header\" let-cols>\r\n <tr>\r\n <th *ngIf=\"allowSelection\" [ngStyle]=\"{ width: selectionColumnWidth }\">\r\n Select\r\n </th>\r\n <th\r\n *ngIf=\"setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\r\n >\r\n Actions\r\n </th>\r\n <th\r\n *ngFor=\"let column of cols\"\r\n [pSortableColumn]=\"column.field\"\r\n [style]=\"column.style\"\r\n [pSortableColumnDisabled]=\"sortDisabled ? true : column.sorting === false\"\r\n >\r\n <div style=\"display: flex;align-items: center;white-space: nowrap;\">\r\n <span class=\"flex-grow-1\">{{ column.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"column.sorting !== false\"\r\n [field]=\"column.field\"\r\n ></p-sortIcon>\r\n </div>\r\n </th>\r\n <th *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\r\n </tr>\r\n <tr *ngIf=\"filtering && !hideFilter\">\r\n <th *ngIf=\"allowSelection\">\r\n <p-tableHeaderCheckbox\r\n *ngIf=\"selectionType === 'multiple'\"\r\n (click)=\"multiCheckBoxOnclick(rowsData)\"\r\n ></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"setActionColumnAsFirst\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n </th>\r\n <th\r\n *ngFor=\"let column of cols\"\r\n [ngSwitch]=\"column?.filter?.type\"\r\n [style]=\"column.style\"\r\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\"\r\n >\r\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\r\n <!-- Text input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'text'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n pInputText\r\n />\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- Numeric input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'numeric'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'numeric_input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-inputNumber\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n ></p-inputNumber>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- lookup input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'text'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'lookup_input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n id=\"lookUp_filter\"\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n [(ngModel)]=\"column.value\"\r\n [disabled]=\"column.disabled\"\r\n (click)=\"setFilterLookup(column)\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n pInputText\r\n />\r\n <div><button *ngIf=\"column.value\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(column)\"></button></div>\r\n </div>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- checkbox on Header For Filter-->\r\n <p-columnFilter\r\n type=\"boolean\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'checkbox'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (onChange)=\"setFilterFocusOut(column, filter, $event)\"\r\n (click)=\"clickCheckBoxFilter(column)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n >\r\n </p-checkbox>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- multiSelect on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'multi-select'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-multiSelect\r\n [ngModel]=\"value\"\r\n [options]=\"column.filter.data || []\"\r\n (onChange)=\"filter($event.value)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n placeholder=\"Any\"\r\n optionLabel=\"label\"\r\n >\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- dropdown on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'dropdown'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-dropdown\r\n [showClear]=\"true\"\r\n [placeholder]=\"'Select'\"\r\n [filter]=\"column.allowSearch\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\r\n [options]=\"column.filter.data || []\"\r\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"\r\n ></p-dropdown>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- calendar on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'calendar'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-calendar\r\n [placeholder]=\"'Select-Date'\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n appendTo=\"body\"\r\n (onSelect)=\"selectDate(column)\"\r\n [inputId]=\"column.field\"\r\n hourFormat=\"12\"\r\n (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\r\n [showButtonBar]=\"true\"\r\n (onClose)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (onClearClick)=\"backspaceEvent($event, column)\"\r\n >\r\n </p-calendar>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- Default Filter For Header -->\r\n <p-columnFilter\r\n [type]=\"\r\n column.type && column.type !== 'link' ? column.type : 'text'\r\n \"\r\n [field]=\"column.field\"\r\n display=\"menu\"\r\n *ngSwitchDefault\r\n >\r\n </p-columnFilter>\r\n </span>\r\n </th>\r\n <th *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Body columns on Grid -->\r\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr\r\n [ngClass]=\"row.highlightrow ? 'highlighted-row' : ''\"\r\n [class]=\"wordWrap ? '' : 'noWrap'\"\r\n (click)=\"!editing && handleRowClick(row)\"\r\n [pEditableRow]=\"row\"\r\n #gridRow\r\n [id]=\"row[dataKey]\"\r\n >\r\n <td *ngIf=\"allowSelection\" [ngStyle]=\"{ width: selectionColumnWidth }\">\r\n <p-tableRadioButton\r\n [value]=\"row\"\r\n *ngIf=\"selectionType === 'single'\"\r\n ></p-tableRadioButton>\r\n <p-tableCheckbox\r\n [value]=\"row\"\r\n *ngIf=\"selectionType === 'multiple'\"\r\n (click)=\"multiCheckBoxOnclick(row)\"\r\n ></p-tableCheckbox>\r\n </td>\r\n\r\n <!-- first actions column -->\r\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\r\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\r\n <i\r\n [title]=\"action.tooltip\"\r\n [class]=\"action.icon\"\r\n (click)=\"handleActionClick($event, action, row)\"\r\n ></i>\r\n </span>\r\n </td>\r\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class=\"setActionColumnWidth\">\r\n <se-grid-row-actions\r\n [editing]=\"editing\"\r\n [editRowPermission]=\"editRowPermission\"\r\n [deleteRowPermission]=\"deleteRowPermission\"\r\n [row]=\"row\"\r\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\r\n (deleteRecordBtn)=\"deleteRecord($event)\"\r\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\r\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\r\n [editAllRows]=\"disabledSaveBtn\"\r\n >\r\n </se-grid-row-actions>\r\n </span>\r\n </td>\r\n\r\n <!-- Grid Rows Data Bindings Start -->\r\n <td\r\n *ngFor=\"let column of selectedColumns\"\r\n [ngSwitch]=\"column.type\"\r\n [style]=\"column.style\"\r\n >\r\n\r\n <!-- Boolean column on Grid -->\r\n <span *ngSwitchCase=\"'boolean'\">\r\n <td *ngIf=\"!editing\">\r\n <p-checkbox\r\n [disabled]=\"true\"\r\n [binary]=\"true\"\r\n (click)=\"selectedRow(row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n [(ngModel)]=\"\r\n row[column.field] &&\r\n (row[column.field].toString() === '1' ||\r\n row[column.field].toString().toLowerCase() === 'true' ||\r\n row[column.field].toString().toLowerCase() === 'y')\r\n ? checked\r\n : unChecked\r\n \"\r\n >\r\n </p-checkbox>\r\n </td>\r\n <td *ngIf=\"editing\">\r\n <span *ngSwitchCase=\"'boolean'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <!-- for edit checkBox -->\r\n <p-checkbox\r\n (click)=\"onClickEvent(column, row)\"\r\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [binary]=\"true\"\r\n [(ngModel)]=\"\r\n row[column.field] &&\r\n (row[column.field].toString() === '1' ||\r\n row[column.field].toString().toLowerCase() === 'true' ||\r\n row[column.field].toString().toLowerCase() === 'y')\r\n ? editModeChecked\r\n : editModeunCkecked\r\n \"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n ></p-checkbox>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{ row[column.field] }}\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </td>\r\n </span>\r\n\r\n <!-- link column on Grid -->\r\n <span *ngSwitchCase=\"'link'\">\r\n <!-- link column for HyperLink Case -->\r\n <span *ngIf=\"column.allowSave === false\">\r\n <span\r\n *ngIf=\"column.target !== '_self'\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\r\n >\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n <span\r\n *ngIf=\"column.target === '_self'\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\r\n >\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n </span>\r\n <!-- link column for Edit Case -->\r\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <span *ngIf=\"column.editable === true || column.editable === undefined\">\r\n <input\r\n *ngIf=\"!row.isNew\"\r\n pInputText\r\n (click)=\"onClickEvent(column, row)\"\r\n type=\"text\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n />\r\n <input\r\n pInputText\r\n *ngIf=\"row.isNew\"\r\n type=\"text\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n />\r\n </span>\r\n <span *ngIf=\"column.editable === false\" \r\n (click)=\"openLink(row[column.field + '_obj']?.hyperlink)\"\r\n [class]=\"allowDisabled(column,row) ? 'disable-link' : 'hyperlink'\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span>\r\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\" \r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </span>\r\n\r\n <!-- Iframe column on Grid -->\r\n <span *ngSwitchCase=\"'iframe'\">\r\n <span\r\n class=\"custom-link\"\r\n (click)=\"\r\n gridIFrame(column, row[column.field + '_obj'].hyperlink, row)\r\n \"\r\n [title]=\"\r\n row[column.field + '_obj'] &&\r\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\r\n ? row[column.field] : row[column.field + '_obj']?.displayText\r\n ? row[column.field + '_obj'].displayText\r\n : column.displayText\r\n ? column.displayText\r\n : row[column.field]\r\n \"\r\n >\r\n {{\r\n row[column.field + '_obj'] &&\r\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\r\n ? row[column.field] : row[column.field + '_obj']?.displayText\r\n ? row[column.field + '_obj'].displayText\r\n : column.displayText ? column.displayText : row[column.field]\r\n }}\r\n </span>\r\n </span>\r\n\r\n <!-- dialog column on Grid -->\r\n <span *ngSwitchCase=\"'dialog'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <span\r\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n >\r\n <span *ngIf=\"column.editable === true\">\r\n <input\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n />\r\n </span>\r\n <span\r\n *ngIf=\"\r\n column.editable === false || column.editable === undefined\r\n \"\r\n [class]=\"\r\n allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\r\n \"\r\n (click)=\"openGridDialog(column, row)\"\r\n >\r\n {{ !column.displayText && row.isNew ? '' : setConditionBaseValue(row, column) }}\r\n </span>\r\n </span>\r\n\r\n <span\r\n *ngIf=\"row[column.field + '_secondType'] === 'date'\"\r\n [title]=\"\r\n row[column.field]\r\n | date: (column.format ? column.format : 'MM/dd/YY')\r\n \"\r\n >\r\n <p-calendar\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (onClose)=\"onFocusOutEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n hourFormat=\"12\"\r\n [showTime]=\"column.showTime\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [timeOnly]=\"column.timeOnly\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n ></p-calendar>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [class]=\"row.disabled == false ? 'custom-link' : column.editable === false ? 'custom-link' : allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\"\r\n (click)=\"openGridDialog(column, row)\"\r\n *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n >\r\n {{ setConditionBaseValue(row, column) }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- lookup Input column on Grid -->\r\n <span *ngSwitchCase=\"'lookup_input'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n readonly\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"(column.disabled || column.editable === false) && column.displayField ? row[column.displayField] : typeOf(row[column.field]) === 'object' ?\r\n row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"row[column.field]\"\r\n (keyup.tab)=\"selectLookupField(column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (click)=\"selectLookupField(column, row)\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n \t(blur)=\"onFocusOutEvent(column, row)\"\r\n />\r\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\r\n ? row[column.field].text\r\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(column,row)\"></button></div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"column.linkId\">\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\"> \r\n {{\r\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text : row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </a>\r\n </span>\r\n <span\r\n *ngIf=\"!column.linkId\"\r\n [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\r\n (click)=\"openLookupHyperlink(column, row)\"\r\n >\r\n {{\r\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text : row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- Numeric Input column on Grid -->\r\n <span *ngSwitchCase=\"'numeric'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <!-- for Currency && Decimal && Percent -->\r\n <span class=\"input-number\">\r\n <p-inputNumber\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [class]=\"\r\n column.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [showButtons]=\"!column.format ? true : false\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"column.field\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (ngModelChange)=\"onChangeEvent(column, row)\"\r\n (onBlur)=\"onFocusOutEvent(column, row)\"\r\n [mode]=\"\r\n column.format &&\r\n column.format.type === 'currency'\r\n ? 'currency'\r\n : 'decimal'\r\n \"\r\n [currency]=\"\r\n column.format &&\r\n column.format.type === 'currency' &&\r\n column.format.formatParams &&\r\n column.format.formatParams.currency\r\n ? column.format.formatParams.currency\r\n : 'USD'\r\n \"\r\n [locale]=\"\r\n column.format &&\r\n column.format.type === 'currency' &&\r\n column.format.formatParams &&\r\n column.format.formatParams.locale\r\n ? column.format.formatParams.locale\r\n : 'en-US'\r\n \"\r\n [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\r\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\r\n [suffix]=\"\r\n column.format &&\r\n column.format.type === 'percent' && !column?.format?.formatParams?.allowCalculate \r\n ? '%'\r\n : ''\r\n \"\r\n >\r\n </p-inputNumber>\r\n </span>\r\n <ng-template #locked_field\r\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\r\n {{ row[column.field] }}\r\n </span></ng-template\r\n >\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [title]=\"setNumericFormat(column, row)\">\r\n {{\r\n setNumericFormat(column, row)\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n \r\n <!-- Button column on Grid -->\r\n <span [title]=\"column.value ? column.value : column.icon\">\r\n <div *ngSwitchCase=\"'add_button'\">\r\n <button *ngIf=\"!row.hidegridbtn\"\r\n pButton\r\n type=\"button\"\r\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\r\n [name]=\"column.header\"\r\n class=\"merge-btn\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\r\n [ngStyle]=\"{\r\n background: column.color ? column.color : ''\r\n }\"\r\n (click)=\"onClickButton(column, row)\"\r\n ></button>\r\n </div>\r\n </span>\r\n\r\n <!-- Date column on Grid -->\r\n <span\r\n *ngSwitchCase=\"'date'\"\r\n [title]=\"setConditionBaseValue(row,column)\"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-calendar\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (onClose)=\"onFocusOutEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n hourFormat=\"12\"\r\n [defaultDate]=\"defaultDate\"\r\n [stepMinute] = \"column.minutesInterval ? column.minutesInterval : 1\"\r\n [showTime]=\"column.showTime\"\r\n [timeOnly]=\"column.timeOnly\"\r\n [dateFormat]=\"column.format ? column.format : calendarFormat\"\r\n (keyup)=\"calenderInputValue(column, row)\"\r\n (onShow)=\"onClickEvent(column, row)\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n ></p-calendar>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{ setConditionBaseValue(row,column) }}\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <span [ngSwitch]=\"column.type\">\r\n <!-- Dropdown column on Grid -->\r\n <span\r\n *ngSwitchCase=\"'dropdown'\"\r\n [class]=\"dropdownInput ? '' : 'output-dropdown'\"\r\n [title]=\"\r\n setDropdwonReadOnlyValue(row, column)\r\n \"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown\r\n *ngIf=\"!row[column.field]?.action?.hidden\"\r\n [options]=\"\r\n row[column.field+'_data']\r\n ? row[column.field+'_data']\r\n : column.data\r\n \"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [placeholder]=\"row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field] ? row[column.field] : 'Select'\"\r\n [showClear]=\"row[column.field] ? true : false\"\r\n [optionLabel]=\"column.optionLabel\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [optionValue]=\"column.optionValue\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n [filter]=\"column.allowSearch\"\r\n ></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"!row[column.field]?.action?.hidden\">\r\n {{\r\n setDropdwonReadOnlyValue(row, column)\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- MultiSelect column on Grid -->\r\n <span *ngSwitchCase=\"'multi-select'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-multiSelect\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n type=\"text\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [options]=\"column.data\"\r\n [optionLabel]=\"column.optionLabel\"\r\n [optionValue]=\"column.optionValue\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n (onPanelShow)=\"showOption(column, row)\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n >\r\n </p-multiSelect>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [title]=\"\r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : setMultiSelectData(column, row[column.field])\r\n \"\r\n >\r\n {{\r\n row[column.displayField]\r\n ? row[column.displayField] :\r\n setMultiSelectData(column, row[column.field])\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- AutoComplete Search -->\r\n <span\r\n *ngSwitchCase=\"'AutoComplete'\"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-autoComplete\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [name]=\"column.header\"\r\n [suggestions]=\"column.data\"\r\n [field]=\"column.displayField\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" \r\n [dropdown]=\"column.showOption\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n (click)=\"onClickEvent(column, row)\"\r\n (completeMethod)=\"autoSearch($event, column, row)\"\r\n (onBlur)=\"onFocusOutEvent(column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [multiple]=\"true\"\r\n >\r\n </p-autoComplete>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\r\n <span *ngFor=\"let value of row[column.field]; let i = index\">\r\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ? value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\r\n </span>\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span> \r\n <!-- Add Generate Report Button -->\r\n <span *ngSwitchCase=\"'report'\"> \r\n <p-cellEditor> \r\n <ng-template pTemplate=\"output\">\r\n <se-generate-report-btn [repId]=\"column.reportId\" [params]=\"column.params\" [showDialog]=\"column.showDialog\"></se-generate-report-btn>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <span *ngSwitchDefault>\r\n <!-- Input column on Grid -->\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input\r\n pInputText\r\n type=\"text\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\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() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n (click)=\"onClickButton(column, row)\"\r\n *ngIf=\"column.field !== dataKey; else locked_field\"\r\n />\r\n <ng-template #locked_field\r\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\r\n {{ row[column.field] }}\r\n </span></ng-template\r\n >\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"\r\n column.displayText ? column.displayText : \r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n \"\r\n >\r\n {{\r\n row[column.field]?.action ? row[column.field]?.text : column.displayText ? column.displayText : \r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </span>\r\n </span>\r\n </td>\r\n <!-- Grid Rows Data Bindings End -->\r\n\r\n <!-- Action column on Grid -->\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\r\n <i\r\n [title]=\"action.tooltip\"\r\n [class]=\"action.icon\"\r\n (click)=\"handleActionClick($event, action, row)\"\r\n ></i>\r\n </span>\r\n </td>\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class='setActionColumnWidth'>\r\n <se-grid-row-actions\r\n [editing]=\"editing\"\r\n [editRowPermission]=\"editRowPermission\"\r\n [deleteRowPermission]=\"deleteRowPermission\"\r\n [row]=\"row\"\r\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\r\n (deleteRecordBtn)=\"deleteRecord($event)\"\r\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\r\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\r\n [editAllRows]=\"disabledSaveBtn\"\r\n >\r\n </se-grid-row-actions>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Footer columns on Grid -->\r\n <ng-template pTemplate=\"footer\">\r\n <tr *ngIf=\"aggregateFooter\">\r\n <td *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\r\n <td *ngFor=\"let outerColumn of selectedColumns\" [style]=\"outerColumn.style\">\r\n <div *ngFor=\"let innerColumn of selectedColumns\">\r\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\r\n <div *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field.toLowerCase() === outerColumn.field.toLowerCase()) || aggr.displayField && aggr.displayField.toLowerCase() === outerColumn.field.toLowerCase())\">\r\n <div [innerHTML]=\"aggr.aggrValue\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Footer for Empty Message columns on Grid -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n",
5432
+ template: "<p-confirmDialog\r\n [style]=\"{ width: '50vw' }\"\r\n *ngIf=\"useInlineCRUD\"\r\n key=\"handleInlineCRUD\"\r\n></p-confirmDialog>\r\n<p-confirmDialog\r\n [style]=\"{ width: '50vw' }\"\r\n *ngIf=\"columnActions.length > 0\"\r\n key=\"handlecolumnActions\"\r\n></p-confirmDialog>\r\n<div class=\"p-mb-2 p-d-flex p-ai-center\"\r\n *ngIf=\"\r\n allowColumnToggle ||\r\n rowActions.length > 0 ||\r\n useInlineCRUD ||\r\n allowExportToExcel ||\r\n allowExportToPdf ||\r\n clearGridFilter\r\n \"\r\n>\r\n<!-- button for apply filterValue on Grid -->\r\n <button\r\n *ngIf=\"filtering && !hideFilter\"\r\n pButton\r\n type=\"button\"\r\n icon=\"pi pi-search\"\r\n (click)=\"applyGirdFilterBtn()\"\r\n [class]=\"\r\n searchGridFilter ? 'p-button-success p-mr-2 p-ml-1' : 'hide-clear-filter-button'\r\n \"\r\n></button>\r\n\r\n<!-- button for clear filterValue on Grid -->\r\n <button\r\n *ngIf=\"filtering && !hideFilter\"\r\n pButton\r\n id=\"clearGridFilterValuesButton\"\r\n type=\"button\"\r\n icon=\"pi pi-refresh\"\r\n (click)=\"cleargridFiltersValue()\"\r\n [class]=\"\r\n clearGridFilter ? 'p-button-danger p-mr-2 p-ml-1' : 'hide-clear-filter-button'\r\n \"\r\n></button>\r\n\r\n<!-- button for edit all grid at once -->\r\n<!-- <button\r\n pButton\r\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\r\n id=\"editBtnGlobalvalues\"\r\n type=\"button\"\r\n [label]=\"'Edit'\"\r\n class=\"p-mr-2 ui-button-info\"\r\n icon=\"pi pi-pencil\"\r\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\r\n (click)=\"editAllRowsAtOnce()\"\r\n ></button> -->\r\n\r\n <!-- button for save all grid at once -->\r\n <button\r\n pButton\r\n *ngIf=\"editAllRows && editRowPermission\"\r\n id=\"saveAllGridValues\"\r\n icon=\"pi pi-check\"\r\n [label]=\"'Save'\"\r\n class=\"p-mr-2 ui-button-info\"\r\n type=\"button\"\r\n (click)=\"saveAllRowsAtOnce()\"\r\n ></button>\r\n\r\n <!-- button for cancel all grid at once -->\r\n <button\r\n pButton\r\n *ngIf=\"editAllRows\"\r\n id=\"editBtnGlobalvalues\"\r\n type=\"button\"\r\n [label]=\"'Cancel'\"\r\n icon=\"pi pi-times\"\r\n class=\"p-mr-2 ui-button-info\"\r\n (click)=\"cancelAllRowsAtOnce()\"\r\n ></button>\r\n\r\n <!-- header Button for multiSelect on Grid -->\r\n <span *ngIf=\"allowColumnToggle\">\r\n <p-multiSelect\r\n [showToggleAll]=\"false\"\r\n [options]=\"columns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n optionLabel=\"header\"\r\n selectedItemsLabel=\"{0} columns selected\"\r\n [style]=\"{ minWidth: '200px' }\"\r\n placeholder=\"Choose Columns\"\r\n >\r\n </p-multiSelect>\r\n </span>\r\n\r\n <!-- header Button for Adding new Row on Grid -->\r\n <button\r\n pButton\r\n *ngIf=\"useInlineCRUD && addRowPermission && !hideOnRowAddBtn\"\r\n type=\"button\"\r\n [label]=\"'Add'\"\r\n pAddRow\r\n [table]=\"componentTableRef\"\r\n [newRow]=\"newGridRow\"\r\n [id]=\"dataKey\"\r\n pTooltip=\"Add New Row\"\r\n tooltipPosition=\"bottom\"\r\n icon=\"pi pi-plus\"\r\n class=\"ui-button-info p-mr-2\"\r\n (click)=\"addNewRow(newGridRow, true)\"\r\n pRipple\r\n ></button>\r\n \r\n<!-- header Button for Excel File on Grid -->\r\n<button\r\n *ngIf=\"allowExportToExcel\"\r\n type=\"button\"\r\n pButton\r\n icon=\"pi pi-file-excel\"\r\n (click)=\"exportExcel()\"\r\n class=\"p-button-success p-mt-0 p-mx-2\"\r\n pTooltip=\"Export to Excel\"\r\n tooltipPosition=\"bottom\"\r\n pRipple\r\n></button>\r\n\r\n<!-- header Button for PDF File on Grid -->\r\n<button\r\n *ngIf=\"allowExportToPdf\"\r\n type=\"button\"\r\n pButton\r\n icon=\"pi pi-file-pdf\"\r\n (click)=\"exportPdf()\"\r\n class=\"p-button-warning p-mr-2\"\r\n pTooltip=\"Export to Pdf\"\r\n tooltipPosition=\"bottom\"\r\n pRipple\r\n></button>\r\n</div>\r\n\r\n<p-table\r\n *ngIf=\"!isGridHidden\"\r\n id=\"my-table\"\r\n [value]=\"rowsData\"\r\n [columns]=\"selectedColumns\"\r\n sortMode=\"multiple\"\r\n [lazy]=\"useServerSideEvents\"\r\n [paginator]=\"pagination\"\r\n [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\r\n [rows]=\"defaultRows\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"setPaginationLength\"\r\n [showCurrentPageReport]=\"showCurrentPageReport\"\r\n currentPageReportTemplate=\"Showing {first} to {last} of {{\r\n totalRecords\r\n }} entries\"\r\n [loading]=\"autoLoadData ? loading : false\"\r\n (onSort)=\"sortDisabled ?? handleSortChange($event)\"\r\n (onFilter)=\"handleFilterChange($event)\"\r\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\"\r\n (onPage)=\"handleServerSidePagination($event)\"\r\n #dt\r\n [dataKey]=\"dataKey\"\r\n [(selection)]=\"selectedRows\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollHeight\"\r\n editMode=\"row\"\r\n [editingRowKeys]=\"editingRowKeys\"\r\n [autoLayout]=\"true\"\r\n [rowHover]=\"rowHover\"\r\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\"\r\n>\r\n <!-- header Button for Action on Grid -->\r\n <div\r\n *ngIf=\"rowActions.length > 0 && rowActions.length > 0\"\r\n class=\"p-d-flex p-jc-end\"\r\n >\r\n <span *ngFor=\"let rowAction of rowActions\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"rowAction.title\"\r\n [class]=\"rowAction.class\"\r\n (click)=\"rowAction.onClick(selectedRows)\"\r\n ></button>\r\n </span>\r\n </div>\r\n\r\n <!-- header columns on Grid -->\r\n <ng-template pTemplate=\"header\" let-cols>\r\n <tr>\r\n <th *ngIf=\"allowSelection\" [ngStyle]=\"{ width: selectionColumnWidth }\">\r\n Select\r\n </th>\r\n <th\r\n *ngIf=\"setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\r\n >\r\n Actions\r\n </th>\r\n <th\r\n *ngFor=\"let column of cols\"\r\n [pSortableColumn]=\"column.field\"\r\n [style]=\"column.style\"\r\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\r\n >\r\n <div style=\"display: flex;align-items: center;white-space: nowrap;\">\r\n <span class=\"flex-grow-1\">{{ column.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"column.sorting !== false\"\r\n [field]=\"column.field\"\r\n ></p-sortIcon>\r\n </div>\r\n </th>\r\n <th *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\r\n </tr>\r\n <tr *ngIf=\"filtering && !hideFilter\">\r\n <th *ngIf=\"allowSelection\">\r\n <p-tableHeaderCheckbox\r\n *ngIf=\"selectionType === 'multiple'\"\r\n (click)=\"multiCheckBoxOnclick(rowsData)\"\r\n ></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"setActionColumnAsFirst\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n </th>\r\n <th\r\n *ngFor=\"let column of cols\"\r\n [ngSwitch]=\"column?.filter?.type\"\r\n [style]=\"column.style\"\r\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\"\r\n >\r\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\r\n <!-- Text input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'text'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n pInputText\r\n />\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- Numeric input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'numeric'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'numeric_input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-inputNumber\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n ></p-inputNumber>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- lookup input on Header For Filter-->\r\n <p-columnFilter\r\n [type]=\"'text'\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'lookup_input'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n id=\"lookUp_filter\"\r\n autocomplete=\"off\"\r\n type=\"text\"\r\n [(ngModel)]=\"column.value\"\r\n [disabled]=\"column.disabled\"\r\n (click)=\"setFilterLookup(column)\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (keyup)=\"removingFilters($event, column)\"\r\n pInputText\r\n />\r\n <div><button *ngIf=\"column.value\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(column)\"></button></div>\r\n </div>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- checkbox on Header For Filter-->\r\n <p-columnFilter\r\n type=\"boolean\"\r\n [field]=\"column.field\"\r\n *ngSwitchCase=\"'checkbox'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n (onChange)=\"setFilterFocusOut(column, filter, $event)\"\r\n (click)=\"clickCheckBoxFilter(column)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n >\r\n </p-checkbox>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- multiSelect on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'multi-select'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-multiSelect\r\n [ngModel]=\"value\"\r\n [options]=\"column.filter.data || []\"\r\n (onChange)=\"filter($event.value)\"\r\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n placeholder=\"Any\"\r\n optionLabel=\"label\"\r\n >\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- dropdown on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'dropdown'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-dropdown\r\n [showClear]=\"true\"\r\n [placeholder]=\"'Select'\"\r\n [filter]=\"column.allowSearch\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\r\n [options]=\"column.filter.data || []\"\r\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"\r\n ></p-dropdown>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- calendar on Header For Filter-->\r\n <p-columnFilter\r\n [field]=\"column.field\"\r\n matchMode=\"in\"\r\n [showMenu]=\"false\"\r\n *ngSwitchCase=\"'calendar'\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-calendar\r\n [placeholder]=\"'Select-Date'\"\r\n [(ngModel)]=\"column.value\"\r\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\r\n appendTo=\"body\"\r\n (onSelect)=\"selectDate(column)\"\r\n [inputId]=\"column.field\"\r\n hourFormat=\"12\"\r\n (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\r\n [showButtonBar]=\"true\"\r\n (onClose)=\"setFilterFocusOut(column, filter, $event)\"\r\n (keydown)=\"backspaceEvent($event, column)\"\r\n (onClearClick)=\"backspaceEvent($event, column)\"\r\n >\r\n </p-calendar>\r\n </ng-template>\r\n </p-columnFilter>\r\n\r\n <!-- Default Filter For Header -->\r\n <p-columnFilter\r\n [type]=\"\r\n column.type && column.type !== 'link' ? column.type : 'text'\r\n \"\r\n [field]=\"column.field\"\r\n display=\"menu\"\r\n *ngSwitchDefault\r\n >\r\n </p-columnFilter>\r\n </span>\r\n </th>\r\n <th *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Body columns on Grid -->\r\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr\r\n [ngClass]=\"row.highlightrow ? 'highlighted-row' : ''\"\r\n [class]=\"wordWrap ? '' : 'noWrap'\"\r\n (click)=\"!editing && handleRowClick(row)\"\r\n [pEditableRow]=\"row\"\r\n #gridRow\r\n [id]=\"row[dataKey]\"\r\n >\r\n <td *ngIf=\"allowSelection\" [ngStyle]=\"{ width: selectionColumnWidth }\">\r\n <p-tableRadioButton\r\n [value]=\"row\"\r\n *ngIf=\"selectionType === 'single'\"\r\n ></p-tableRadioButton>\r\n <p-tableCheckbox\r\n [value]=\"row\"\r\n *ngIf=\"selectionType === 'multiple'\"\r\n (click)=\"multiCheckBoxOnclick(row)\"\r\n ></p-tableCheckbox>\r\n </td>\r\n\r\n <!-- first actions column -->\r\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\r\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\r\n <i\r\n [title]=\"action.tooltip\"\r\n [class]=\"action.icon\"\r\n (click)=\"handleActionClick($event, action, row)\"\r\n ></i>\r\n </span>\r\n </td>\r\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class=\"setActionColumnWidth\">\r\n <se-grid-row-actions\r\n [editing]=\"editing\"\r\n [editRowPermission]=\"editRowPermission\"\r\n [deleteRowPermission]=\"deleteRowPermission\"\r\n [row]=\"row\"\r\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\r\n (deleteRecordBtn)=\"deleteRecord($event)\"\r\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\r\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\r\n [editAllRows]=\"disabledSaveBtn\"\r\n >\r\n </se-grid-row-actions>\r\n </span>\r\n </td>\r\n\r\n <!-- Grid Rows Data Bindings Start -->\r\n <td\r\n *ngFor=\"let column of selectedColumns\"\r\n [ngSwitch]=\"column.type\"\r\n [style]=\"column.style\"\r\n >\r\n\r\n <!-- Boolean column on Grid -->\r\n <span *ngSwitchCase=\"'boolean'\">\r\n <td *ngIf=\"!editing\">\r\n <p-checkbox\r\n [disabled]=\"true\"\r\n [binary]=\"true\"\r\n (click)=\"selectedRow(row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n [(ngModel)]=\"\r\n row[column.field] &&\r\n (row[column.field].toString() === '1' ||\r\n row[column.field].toString().toLowerCase() === 'true' ||\r\n row[column.field].toString().toLowerCase() === 'y')\r\n ? checked\r\n : unChecked\r\n \"\r\n >\r\n </p-checkbox>\r\n </td>\r\n <td *ngIf=\"editing\">\r\n <span *ngSwitchCase=\"'boolean'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <!-- for edit checkBox -->\r\n <p-checkbox\r\n (click)=\"onClickEvent(column, row)\"\r\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [binary]=\"true\"\r\n [(ngModel)]=\"\r\n row[column.field] &&\r\n (row[column.field].toString() === '1' ||\r\n row[column.field].toString().toLowerCase() === 'true' ||\r\n row[column.field].toString().toLowerCase() === 'y')\r\n ? editModeChecked\r\n : editModeunCkecked\r\n \"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n ></p-checkbox>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{ row[column.field] }}\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </td>\r\n </span>\r\n\r\n <!-- link column on Grid -->\r\n <span *ngSwitchCase=\"'link'\">\r\n <!-- link column for HyperLink Case -->\r\n <span *ngIf=\"column.allowSave === false\">\r\n <span\r\n *ngIf=\"column.target !== '_self'\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\r\n >\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n <span\r\n *ngIf=\"column.target === '_self'\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\"\r\n >\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n </span>\r\n <!-- link column for Edit Case -->\r\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <span *ngIf=\"column.editable === true || column.editable === undefined\">\r\n <input\r\n *ngIf=\"!row.isNew\"\r\n pInputText\r\n (click)=\"onClickEvent(column, row)\"\r\n type=\"text\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n />\r\n <input\r\n pInputText\r\n *ngIf=\"row.isNew\"\r\n type=\"text\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n />\r\n </span>\r\n <span *ngIf=\"column.editable === false\" \r\n (click)=\"openLink(row[column.field + '_obj']?.hyperlink)\"\r\n [class]=\"allowDisabled(column,row) ? 'disable-link' : 'hyperlink'\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span>\r\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\" \r\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\r\n {{\r\n setConditionBaseValue(row, column)\r\n }}\r\n </a>\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </span>\r\n\r\n <!-- Iframe column on Grid -->\r\n <span *ngSwitchCase=\"'iframe'\">\r\n <span\r\n class=\"custom-link\"\r\n (click)=\"\r\n gridIFrame(column, row[column.field + '_obj'].hyperlink, row)\r\n \"\r\n [title]=\"\r\n row[column.field + '_obj'] &&\r\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\r\n ? row[column.field] : row[column.field + '_obj']?.displayText\r\n ? row[column.field + '_obj'].displayText\r\n : column.displayText\r\n ? column.displayText\r\n : row[column.field]\r\n \"\r\n >\r\n {{\r\n row[column.field + '_obj'] &&\r\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\r\n ? row[column.field] : row[column.field + '_obj']?.displayText\r\n ? row[column.field + '_obj'].displayText\r\n : column.displayText ? column.displayText : row[column.field]\r\n }}\r\n </span>\r\n </span>\r\n\r\n <!-- dialog column on Grid -->\r\n <span *ngSwitchCase=\"'dialog'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <span\r\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n >\r\n <span *ngIf=\"column.editable === true\">\r\n <input\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n />\r\n </span>\r\n <span\r\n *ngIf=\"\r\n column.editable === false || column.editable === undefined\r\n \"\r\n [class]=\"\r\n allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\r\n \"\r\n (click)=\"openGridDialog(column, row)\"\r\n >\r\n {{ !column.displayText && row.isNew ? '' : setConditionBaseValue(row, column) }}\r\n </span>\r\n </span>\r\n\r\n <span\r\n *ngIf=\"row[column.field + '_secondType'] === 'date'\"\r\n [title]=\"\r\n row[column.field]\r\n | date: (column.format ? column.format : 'MM/dd/YY')\r\n \"\r\n >\r\n <p-calendar\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (onClose)=\"onFocusOutEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n hourFormat=\"12\"\r\n [showTime]=\"column.showTime\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [timeOnly]=\"column.timeOnly\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n ></p-calendar>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [class]=\"row.disabled == false ? 'custom-link' : column.editable === false ? 'custom-link' : allowDisabled(column,row) ? 'disable-link custom-link' : 'custom-link'\"\r\n (click)=\"openGridDialog(column, row)\"\r\n *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\r\n [title]=\"setConditionBaseValue(row, column)\"\r\n >\r\n {{ setConditionBaseValue(row, column) }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- lookup Input column on Grid -->\r\n <span *ngSwitchCase=\"'lookup_input'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n readonly\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"(column.disabled || column.editable === false) && column.displayField ? row[column.displayField] : typeOf(row[column.field]) === 'object' ?\r\n row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"row[column.field]\"\r\n (keyup.tab)=\"selectLookupField(column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (click)=\"selectLookupField(column, row)\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n \t(blur)=\"onFocusOutEvent(column, row)\"\r\n />\r\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\r\n ? row[column.field].text\r\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(column,row)\"></button></div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"column.linkId\">\r\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\"> \r\n {{\r\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text : row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </a>\r\n </span>\r\n <span\r\n *ngIf=\"!column.linkId\"\r\n [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\r\n (click)=\"openLookupHyperlink(column, row)\"\r\n >\r\n {{\r\n typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.text : row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- Numeric Input column on Grid -->\r\n <span *ngSwitchCase=\"'numeric'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <!-- for Currency && Decimal && Percent -->\r\n <span class=\"input-number\">\r\n <p-inputNumber\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [class]=\"\r\n column.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [showButtons]=\"!column.format ? true : false\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [name]=\"column.field\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (ngModelChange)=\"onChangeEvent(column, row)\"\r\n (onBlur)=\"onFocusOutEvent(column, row)\"\r\n [mode]=\"\r\n column.format &&\r\n column.format.type === 'currency'\r\n ? 'currency'\r\n : 'decimal'\r\n \"\r\n [currency]=\"\r\n column.format &&\r\n column.format.type === 'currency' &&\r\n column.format.formatParams &&\r\n column.format.formatParams.currency\r\n ? column.format.formatParams.currency\r\n : 'USD'\r\n \"\r\n [locale]=\"\r\n column.format &&\r\n column.format.type === 'currency' &&\r\n column.format.formatParams &&\r\n column.format.formatParams.locale\r\n ? column.format.formatParams.locale\r\n : 'en-US'\r\n \"\r\n [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\r\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\r\n [suffix]=\"\r\n column.format &&\r\n column.format.type === 'percent' && !column?.format?.formatParams?.allowCalculate \r\n ? '%'\r\n : ''\r\n \"\r\n >\r\n </p-inputNumber>\r\n </span>\r\n <ng-template #locked_field\r\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\r\n {{ row[column.field] }}\r\n </span></ng-template\r\n >\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [title]=\"setNumericFormat(column, row)\">\r\n {{\r\n setNumericFormat(column, row)\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n \r\n <!-- Button column on Grid -->\r\n <span [title]=\"column.value ? column.value : column.icon\">\r\n <div *ngSwitchCase=\"'add_button'\">\r\n <button *ngIf=\"!row.hidegridbtn\"\r\n pButton\r\n type=\"button\"\r\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\r\n [name]=\"column.header\"\r\n class=\"merge-btn\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\r\n [ngStyle]=\"{\r\n background: column.color ? column.color : ''\r\n }\"\r\n (click)=\"onClickButton(column, row)\"\r\n ></button>\r\n </div>\r\n </span>\r\n\r\n <!-- Date column on Grid -->\r\n <span\r\n *ngSwitchCase=\"'date'\"\r\n [title]=\"setConditionBaseValue(row,column)\"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-calendar\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (onClose)=\"onFocusOutEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n hourFormat=\"12\"\r\n [defaultDate]=\"defaultDate\"\r\n [stepMinute] = \"column.minutesInterval ? column.minutesInterval : 1\"\r\n [showTime]=\"column.showTime\"\r\n [timeOnly]=\"column.timeOnly\"\r\n [dateFormat]=\"column.format ? column.format : calendarFormat\"\r\n (keyup)=\"calenderInputValue(column, row)\"\r\n (onShow)=\"onClickEvent(column, row)\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n ></p-calendar>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{ setConditionBaseValue(row,column) }}\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <span [ngSwitch]=\"column.type\">\r\n <!-- Dropdown column on Grid -->\r\n <span\r\n *ngSwitchCase=\"'dropdown'\"\r\n [class]=\"dropdownInput ? '' : 'output-dropdown'\"\r\n [title]=\"\r\n setDropdwonReadOnlyValue(row, column)\r\n \"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown\r\n *ngIf=\"!row[column.field]?.action?.hidden\"\r\n [options]=\"\r\n row[column.field+'_data']\r\n ? row[column.field+'_data']\r\n : column.data\r\n \"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [placeholder]=\"row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field] ? row[column.field] : 'Select'\"\r\n [showClear]=\"row[column.field] ? true : false\"\r\n [optionLabel]=\"column.optionLabel\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [optionValue]=\"column.optionValue\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n [filter]=\"column.allowSearch\"\r\n ></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"!row[column.field]?.action?.hidden\">\r\n {{\r\n setDropdwonReadOnlyValue(row, column)\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- MultiSelect column on Grid -->\r\n <span *ngSwitchCase=\"'multi-select'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-multiSelect\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n type=\"text\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [options]=\"column.data\"\r\n [optionLabel]=\"column.optionLabel\"\r\n [optionValue]=\"column.optionValue\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n (onPanelShow)=\"showOption(column, row)\"\r\n (click)=\"onClickEvent(column, row)\"\r\n [appendTo]=\"'body'\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n >\r\n </p-multiSelect>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n [title]=\"\r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : setMultiSelectData(column, row[column.field])\r\n \"\r\n >\r\n {{\r\n row[column.displayField]\r\n ? row[column.displayField] :\r\n setMultiSelectData(column, row[column.field])\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <!-- AutoComplete Search -->\r\n <span\r\n *ngSwitchCase=\"'AutoComplete'\"\r\n >\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-autoComplete\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\n [name]=\"column.header\"\r\n [suggestions]=\"column.data\"\r\n [field]=\"column.displayField\"\r\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" \r\n [dropdown]=\"column.showOption\"\r\n (onChange)=\"onChangeEvent(column, row)\"\r\n (click)=\"onClickEvent(column, row)\"\r\n (completeMethod)=\"autoSearch($event, column, row)\"\r\n (onBlur)=\"onFocusOutEvent(column, row)\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n [multiple]=\"true\"\r\n >\r\n </p-autoComplete>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\r\n <span *ngFor=\"let value of row[column.field]; let i = index\">\r\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ? value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\r\n </span>\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span> \r\n <!-- Add Generate Report Button -->\r\n <span *ngSwitchCase=\"'report'\"> \r\n <p-cellEditor> \r\n <ng-template pTemplate=\"output\">\r\n <se-generate-report-btn [repId]=\"column.reportId\" [params]=\"column.params\" [showDialog]=\"column.showDialog\"></se-generate-report-btn>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n\r\n <span *ngSwitchDefault>\r\n <!-- Input column on Grid -->\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input\r\n pInputText\r\n type=\"text\"\r\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\r\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\r\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() ?\r\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\r\n [disabled]=\"allowDisabled(column,row)\"\r\n (blur)=\"onFocusOutEvent(column, row)\"\r\n (change)=\"onChangeEvent(column, row)\"\r\n (click)=\"onClickButton(column, row)\"\r\n *ngIf=\"column.field !== dataKey; else locked_field\"\r\n />\r\n <ng-template #locked_field\r\n ><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\r\n {{ row[column.field] }}\r\n </span></ng-template\r\n >\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <span\r\n (click)=\"onClickEvent(column, row)\"\r\n [title]=\"\r\n column.displayText ? column.displayText : \r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n \"\r\n >\r\n {{\r\n row[column.field]?.action ? row[column.field]?.text : column.displayText ? column.displayText : \r\n row[column.displayField]\r\n ? row[column.displayField]\r\n : row[column.field]\r\n }}\r\n </span>\r\n </ng-template>\r\n </p-cellEditor>\r\n </span>\r\n </span>\r\n </span>\r\n </td>\r\n <!-- Grid Rows Data Bindings End -->\r\n\r\n <!-- Action column on Grid -->\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\r\n <i\r\n [title]=\"action.tooltip\"\r\n [class]=\"action.icon\"\r\n (click)=\"handleActionClick($event, action, row)\"\r\n ></i>\r\n </span>\r\n </td>\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\r\n <span class='setActionColumnWidth'>\r\n <se-grid-row-actions\r\n [editing]=\"editing\"\r\n [editRowPermission]=\"editRowPermission\"\r\n [deleteRowPermission]=\"deleteRowPermission\"\r\n [row]=\"row\"\r\n (onRowEditInitBtn)=\"onRowEditInit($event)\"\r\n (deleteRecordBtn)=\"deleteRecord($event)\"\r\n (onRowEditSaveBtn)=\"onRowEditSave($event)\"\r\n (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\r\n [editAllRows]=\"disabledSaveBtn\"\r\n >\r\n </se-grid-row-actions>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Footer columns on Grid -->\r\n <ng-template pTemplate=\"footer\">\r\n <tr *ngIf=\"aggregateFooter\">\r\n <td *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\r\n <td *ngFor=\"let outerColumn of selectedColumns\" [style]=\"outerColumn.style\">\r\n <div *ngFor=\"let innerColumn of selectedColumns\">\r\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\r\n <div *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field.toLowerCase() === outerColumn.field.toLowerCase()) || aggr.displayField && aggr.displayField.toLowerCase() === outerColumn.field.toLowerCase())\">\r\n <div [innerHTML]=\"aggr.aggrValue\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Footer for Empty Message columns on Grid -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n",
5433
5433
  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}#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"]
5434
5434
  },] }
5435
5435
  ];
@@ -6587,6 +6587,7 @@
6587
6587
  if (formField.onChange) {
6588
6588
  formField.onChange(formField);
6589
6589
  }
6590
+ this.formService.checkValidity([formField]);
6590
6591
  };
6591
6592
  /**
6592
6593
  * set calender width
@@ -6682,10 +6683,10 @@
6682
6683
  if (res) {
6683
6684
  formField.value = setDialogResponse(formField, formField.lookupControl, res);
6684
6685
  _this.lookupFocusOut = false;
6685
- _this.onFocusOutEvent(formField);
6686
6686
  if (formField.onReturn)
6687
6687
  formField.onReturn(formField.value, res);
6688
6688
  }
6689
+ _this.onFocusOutEvent(formField);
6689
6690
  var formFieldValue = typeof formField.value === 'object' ? formField.value.text : formField.value;
6690
6691
  value_1 = typeof value_1 === 'object' ? value_1.text : value_1;
6691
6692
  if (formFieldValue !== value_1) {
@@ -6878,7 +6879,7 @@
6878
6879
  FormComponent.decorators = [
6879
6880
  { type: i0.Component, args: [{
6880
6881
  selector: 'se-form',
6881
- template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\" ></p-confirmDialog>\r\n<form *ngIf=\"!isFormHidden && form\">\r\n <div *ngIf=\"loading\">\r\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\r\n </div>\r\n <div class=\"p-d-flex p-flex-wrap container w-100 my-5\">\r\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\r\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\r\n <span (click)=\"clickedSection(formSection)\">\r\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\r\n <div *ngIf=\"!formSection.hidden\" [class]=\"formSection.class\">\r\n <p-accordion>\r\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\r\n [disabled]=\"formSection.accordionDisabled\" [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\r\n <p-header>\r\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\r\n }}</span>\r\n </p-header>\r\n\r\n <div class=\"p-d-flex p-ai-center p-col\">\r\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"p-mb-0 p-d-flex p-ai-center p-mr-3\">\r\n <i [class]=\"formSection.icon\" class=\"p-mr-1\"></i>\r\n <b> {{ formSection.name }} </b>\r\n </label>\r\n\r\n <div\r\n *ngFor=\"let link of formSection.links\"\r\n [class]=\"formSection.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n class=\"p-mr-3\"\r\n [class]=\"link.name ? 'custom-link' : ''\"\r\n (click)=\"link.onClick()\"\r\n >\r\n {{ link.name }}\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-d-flex p-flex-wrap\">\r\n <div\r\n [class]=\"formField.column\r\n ? 'p-col-' + formField.column + setClassName(formField)\r\n : form.column\r\n ? 'p-col-' + form.column + setClassName(formField)\r\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\r\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\"\r\n >\r\n <!-- labelControl Hyperlink on Lookup Control Field-->\r\n <div *ngIf=\"formField.label?.labelControl\">\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\r\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\r\n [href]=\"formField.label.labelControl?.hyperlink?.link\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n (click)=\"loadLabelControlIFrame(formField)\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <!-- labelControl on addTextbox -->\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\"\r\n >\r\n <a\r\n tabindex=\"-1\"\r\n [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\r\n (click)=\"selectLookupLabel(formField)\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div [ngSwitch]=\"formField.control\">\r\n\r\n <!-- Spacer Control -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.SPACER\"\r\n >\r\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\r\n </div>\r\n </span>\r\n\r\n <!-- Input TextArea -->\r\n <span *ngIf=\"!formField.hidden\">\r\n\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <textarea\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n pInputTextarea\r\n [rows]=\"formField.row ? formField.row : 1 \"\r\n (change)=\"onChangeEvent(formField)\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n [disabled]=\"formField.disabled\"\r\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n ></textarea>\r\n </div>\r\n </span>\r\n\r\n <!-- Text Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.INPUT\"\r\n >\r\n <span\r\n [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\"\r\n [title]=\"formField.label && typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\"\r\n >\r\n {{\r\n formField.label && typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\"\r\n [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"\r\n formField.value &&\r\n typeOf(formField.value) === 'object'\r\n ? formField.value.text\r\n : formField.value\r\n \"\r\n (change)=\"onChangeEvent(formField)\"\r\n [name]=\"formField.field ? formField.field : formField.label\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n />\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Number Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.NUMERIC\"\r\n >\r\n <label\r\n [class]=\"\r\n formField.label.onClick ? 'custom-link' : ''\r\n \"\r\n (click)=\"\r\n formField.label.onClick &&\r\n formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\"\r\n >\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <!-- for Currency && number && Decimal && Percent -->\r\n <span\r\n class=\"input-number\"\r\n >\r\n <p-inputNumber\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n (ngModelChange)=\"onChangeEvent(formField)\"\r\n (click)=\"selectLookupField(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\"\r\n [mode]=\"\r\n formField.format &&\r\n formField.format.type === 'currency'\r\n ? 'currency'\r\n : 'decimal'\r\n \"\r\n [currency]=\"\r\n formField.format &&\r\n formField.format.type === 'currency' &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.currency\r\n ? formField.format.formatParams.currency\r\n : 'USD'\r\n \"\r\n [locale]=\"formField.format &&\r\n formField.format.type === 'currency' &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.locale\r\n ? formField.format.formatParams.locale\r\n : 'en-US'\r\n \"\r\n [minFractionDigits]=\"\r\n formField.format &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.digitsInfo\r\n ? formField.format.formatParams.digitsInfo\r\n : formField.format &&\r\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\r\n ? '2'\r\n : '0'\r\n \"\r\n [suffix]=\"\r\n formField.format &&\r\n formField.format.type === 'percent' && !formField?.format?.formatParams?.allowCalculate\r\n ? '%'\r\n : ''\r\n \"\r\n >\r\n </p-inputNumber>\r\n </span>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n <span *ngIf=\"formField.required\"> * </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Password Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n type=\"password\"\r\n (click)=\"handleClickEvent(formField)\"\r\n (change)=\"onChangeEvent(formField)\"\r\n pInputText\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n />\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n <span *ngIf=\"formField.required\"> * </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Checkbox -->\r\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\r\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\r\n <label *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \" [title]=\"formField.label &&\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\">{{\r\n formField.label &&\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <p-checkbox\r\n class=\"p-d-flex p-ai-center\"\r\n [binary]=\"true\"\r\n [name]=\"formField.field\"\r\n (click)=\"onClickEvent(formField)\"\r\n (change)=\"onChangeEvent(formField)\"\r\n [(ngModel)]=\"formField.value\"\r\n [disabled]=\"formField.disabled\"\r\n (onChange)=\"onFocusOutEvent(formField)\"\r\n >\r\n </p-checkbox>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Calendar -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\r\n <span\r\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <p-calendar\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty ' + formField.field\r\n : 'form-control '+ formField.field\r\n \"\r\n [showButtonBar]=\"true\"\r\n [todayButtonStyleClass]=\"formField.timeOnly ? 'hide-today-btn' : ''\"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n [disabled]=\"formField.disabled\" hourFormat=\"12\"\r\n [defaultDate]=\"defaultDate\"\r\n [stepMinute] = \"formField.minutesInterval ? formField.minutesInterval : 1\"\r\n [showTime]=\"formField.showTime\"\r\n (onShow)=\"setCalenderDate(formField)\"\r\n [timeOnly]=\"formField.timeOnly\"\r\n [view]=\"formField.monthOnly ? 'month' : 'date' \"\r\n (click)=\"handleClickEvent(formField)\"\r\n [dateFormat]=\"formField.format ? formField.format.type : calendarFormat\"\r\n (ngModelChange)=\"calendarChangeValue(formField)\"\r\n (onInput)=\"calenderInputValue(formField)\"\r\n (onClose)=\"onFocusOutEvent(formField)\">\r\n </p-calendar>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\">*</span>\r\n </label>\r\n <p-dropdown\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n autocomplete=\"off\"\r\n [styleClass]='formField.field'\r\n [placeholder]=\"formField.value\"\r\n [options]=\"formField.data\"\r\n [filter]=\"formField.allowSearch\"\r\n [(ngModel)]=\"formField.value\"\r\n [optionLabel]=\"formField.optionLabel\"\r\n [optionValue]=\"formField.optionValue\"\r\n [name]=\"formField.field\"\r\n (keyup.Tab)=\"tabFocusEvent(formField)\"\r\n (click)=\"clearDropdownValue(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\"\r\n [showClear]=\"formField.value ? true : false\"\r\n (onChange)=\"onClearValue(formField, $event)\"\r\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\"\r\n >\r\n </p-dropdown>\r\n <span\r\n *ngIf=\"\r\n !formField?.isValid &&\r\n !formField.hidden\r\n \"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- AutoComplete Search -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <span class=\"p-fluid\">\r\n <p-autoComplete\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [suggestions]=\"formField.data\"\r\n [(ngModel)]=\"formField.value\"\r\n (onChange)=\"onChangeEvent(formField)\"\r\n (click)=\"handleClickEvent(formField)\"\r\n (completeMethod)=\"autoSearch($event, formField)\"\r\n [dropdown]=\"formField.showOption\"\r\n [field]=\"formField.displayField\"\r\n [name]=\"formField.label\"\r\n [multiple]=\"true\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\">\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Multi-select -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <p-multiSelect\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [(ngModel)]=\"formField.value\"\r\n [options]=\"formField.data\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\" [appendTo]=\"'body'\"\r\n [name]=\"formField.field\"\r\n (onChange)=\"onChangeEvent(formField)\"\r\n (click)=\"formField.onClick ? formField.onClick() : ''\"\r\n [disabled]=\"formField.disabled\" (blur)=\"onFocusOutEvent(formField)\">\r\n </p-multiSelect>\r\n </div>\r\n </span>\r\n\r\n <!-- Hyperlink-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n [class]=\"\r\n formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n [title]=\"formField.label\"\r\n *ngSwitchCase=\"dynamicCase.HYPERLINK\"\r\n >\r\n <div\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.component\r\n \"\r\n (click)=\"hyperlinkDialog(formField)\"\r\n >\r\n {{ formField.label }}\r\n </div>\r\n <div\r\n [class]=\"\r\n formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.target !== '_iframe' &&\r\n !formField.hyperlink.component\r\n \"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n [href]=\"sanitizeUrl(formField.hyperlink?.link)\"\r\n [target]=\"formField.hyperlink?.target\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [title]=\"formField.label\"\r\n >\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.target === '_iframe' &&\r\n !formField.hyperlink.component\r\n \"\r\n >\r\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <!-- Lookup Control Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\r\n <span\r\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\r\n ? formField.value.text\r\n : formField.value\"\r\n autocomplete=\"off\"\r\n [id]=\"formField.field\"\r\n [name]=\"formField.field\"\r\n (click)=\"selectLookupField(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (keyup.Tab)=\"selectLookupField(formField)\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n readonly\r\n (keydown)=\"$event.preventDefault()\"\r\n />\r\n <div><button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(formField)\"></button></div>\r\n </div>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- File Upload Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\"\r\n >\r\n <span\r\n [class]=\"\r\n formField.disabled ? 'disabled-link' : ''\r\n \"\r\n >\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <se-file-upload\r\n [allowMultiple]=\"formField.selectMultipleFiles\"\r\n [acceptFileTypes]=\"formField.SetfileTypes\"\r\n [fields]=\"formField\"\r\n (fileUrl)=\"setFileUrls($event)\"\r\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"\r\n ></se-file-upload>\r\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\r\n formField.errorMessage\r\n }}</span>\r\n </div>\r\n </span>\r\n\r\n <!-- Display Card field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.CARD\"\r\n >\r\n <span\r\n [class]=\"\r\n formField.disabled ? 'disabled-link' : ''\r\n \"\r\n >\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n\r\n <se-card\r\n [card]=\"formField.card\"\r\n (onDeleteCard)=\"fileOnchangeEvent()\"\r\n (selectedCard)=\"selectedCardClickEvent($event)\"\r\n ></se-card>\r\n\r\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\r\n formField.errorMessage\r\n }}</span>\r\n </div>\r\n </span>\r\n\r\n <!-- Note Detail Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\r\n <div [class]=\"formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n >\r\n <span class=\"pl-2\" (click)=\"\r\n !formField.disabled\r\n ? handleNoteFieldDialog(formField)\r\n : ''\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">{{formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label}}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </span>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <!-- Dynamic Component Container-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\"\r\n #dynamicComponentContainer\r\n *ngSwitchCase=\"dynamicCase.COMPONENT\"\r\n ></div>\r\n </span>\r\n\r\n <!-- Header component-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\r\n <label [class]=\"formField.class\">\r\n <b> {{ formField.label }} </b>\r\n </label>\r\n </div>\r\n </span>\r\n\r\n <!-- Add OnClick Button -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [icon]=\"formField.icon\"\r\n [label]=\"formField.label\"\r\n [disabled]=\"formField.disabled\"\r\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\r\n (click)=\"onClickEvent(formField)\"\r\n ></button>\r\n </div>\r\n </span>\r\n <!-- Add Generate Report Button -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.REPORT\"> \r\n <se-generate-report-btn [repId]=\"formField.reportId\" [params]=\"formField.params\" [showDialog]=\"formField.showDialog\"></se-generate-report-btn>\r\n </div>\r\n </span>\r\n \r\n\r\n <!-- Add Input Switch -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\r\n <div>\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n </label>\r\n </div>\r\n <p-inputSwitch\r\n [name]=\"formField.label ? formField.label: 'switch'\"\r\n [(ngModel)]=\"formField.value\"\r\n [disabled]=\"formField.disabled\"\r\n (click)=\"onClickEvent(formField)\"\r\n ></p-inputSwitch>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </p-accordionTab>\r\n </p-accordion>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n </div>\r\n </span>\r\n\r\n <!-- save and close buttons -->\r\n <div\r\n class=\"p-col-12 p-d-flex p-jc-end\"\r\n [ngClass]=\"{ sticky: stickyActions }\"\r\n >\r\n <!-- save button -->\r\n <button\r\n *ngIf=\"!hideSaveButton\"\r\n [disabled]=\"isFormDisabled\"\r\n pButton\r\n type=\"button\"\r\n icon=\"pi pi-check\"\r\n label=\"Save\"\r\n class=\"p-button-success\"\r\n (click)=\"onSaveForm()\"\r\n ></button>\r\n\r\n <!-- close button -->\r\n <button\r\n *ngIf=\"!hideCancelButton\"\r\n [disabled]=\"isFormDisabled\"\r\n (click)=\"onCancelForm()\"\r\n pButton type=\"button\"\r\n icon=\"pi pi-times\"\r\n label=\"Cancel\"\r\n class=\"p-button-danger p-ml-3\"\r\n ></button>\r\n </div>\r\n </div>\r\n</form>\r\n",
6882
+ template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\" ></p-confirmDialog>\r\n<form *ngIf=\"!isFormHidden && form\">\r\n <div *ngIf=\"loading\">\r\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\r\n </div>\r\n <div class=\"p-d-flex p-flex-wrap container w-100 my-5\">\r\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\r\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\r\n <span (click)=\"clickedSection(formSection)\">\r\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\r\n <div *ngIf=\"!formSection.hidden\" [class]=\"formSection.class\">\r\n <p-accordion>\r\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\r\n [disabled]=\"formSection.accordionDisabled\" [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\r\n <p-header>\r\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\r\n }}</span>\r\n </p-header>\r\n\r\n <div class=\"p-d-flex p-ai-center p-col\">\r\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"p-mb-0 p-d-flex p-ai-center p-mr-3\">\r\n <i [class]=\"formSection.icon\" class=\"p-mr-1\"></i>\r\n <b> {{ formSection.name }} </b>\r\n </label>\r\n\r\n <div\r\n *ngFor=\"let link of formSection.links\"\r\n [class]=\"formSection.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n class=\"p-mr-3\"\r\n [class]=\"link.name ? 'custom-link' : ''\"\r\n (click)=\"link.onClick()\"\r\n >\r\n {{ link.name }}\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-d-flex p-flex-wrap\">\r\n <div\r\n [class]=\"formField.column\r\n ? 'p-col-' + formField.column + setClassName(formField)\r\n : form.column\r\n ? 'p-col-' + form.column + setClassName(formField)\r\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\r\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\"\r\n >\r\n <!-- labelControl Hyperlink on Lookup Control Field-->\r\n <div *ngIf=\"formField.label?.labelControl\">\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\r\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\r\n [href]=\"formField.label.labelControl?.hyperlink?.link\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n (click)=\"loadLabelControlIFrame(formField)\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <!-- labelControl on addTextbox -->\r\n <div\r\n class=\"link-label custom-link p-mt-1\"\r\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\"\r\n >\r\n <a\r\n tabindex=\"-1\"\r\n [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\r\n (click)=\"selectLookupLabel(formField)\"\r\n [title]=\"formField.label.name\"\r\n >\r\n {{ formField.label.name }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n </div>\r\n <div [ngSwitch]=\"formField.control\">\r\n\r\n <!-- Spacer Control -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.SPACER\"\r\n >\r\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\r\n </div>\r\n </span>\r\n\r\n <!-- Input TextArea -->\r\n <span *ngIf=\"!formField.hidden\">\r\n\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <textarea\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n pInputTextarea\r\n [rows]=\"formField.row ? formField.row : 1 \"\r\n (change)=\"onChangeEvent(formField)\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n [disabled]=\"formField.disabled\"\r\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n ></textarea>\r\n </div>\r\n </span>\r\n\r\n <!-- Text Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.INPUT\"\r\n >\r\n <span\r\n [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\"\r\n [title]=\"formField.label && typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\"\r\n >\r\n {{\r\n formField.label && typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\"\r\n [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"\r\n formField.value &&\r\n typeOf(formField.value) === 'object'\r\n ? formField.value.text\r\n : formField.value\r\n \"\r\n (change)=\"onChangeEvent(formField)\"\r\n [name]=\"formField.field ? formField.field : formField.label\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n />\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Number Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.NUMERIC\"\r\n >\r\n <label\r\n [class]=\"\r\n formField.label.onClick ? 'custom-link' : ''\r\n \"\r\n (click)=\"\r\n formField.label.onClick &&\r\n formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\"\r\n >\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <!-- for Currency && number && Decimal && Percent -->\r\n <span\r\n class=\"input-number\"\r\n >\r\n <p-inputNumber\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n (ngModelChange)=\"onChangeEvent(formField)\"\r\n (click)=\"selectLookupField(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\"\r\n [mode]=\"\r\n formField.format &&\r\n formField.format.type === 'currency'\r\n ? 'currency'\r\n : 'decimal'\r\n \"\r\n [currency]=\"\r\n formField.format &&\r\n formField.format.type === 'currency' &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.currency\r\n ? formField.format.formatParams.currency\r\n : 'USD'\r\n \"\r\n [locale]=\"formField.format &&\r\n formField.format.type === 'currency' &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.locale\r\n ? formField.format.formatParams.locale\r\n : 'en-US'\r\n \"\r\n [minFractionDigits]=\"\r\n formField.format &&\r\n formField.format.formatParams &&\r\n formField.format.formatParams.digitsInfo\r\n ? formField.format.formatParams.digitsInfo\r\n : formField.format &&\r\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\r\n ? '2'\r\n : '0'\r\n \"\r\n [suffix]=\"\r\n formField.format &&\r\n formField.format.type === 'percent' && !formField?.format?.formatParams?.allowCalculate\r\n ? '%'\r\n : ''\r\n \"\r\n >\r\n </p-inputNumber>\r\n </span>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n <span *ngIf=\"formField.required\"> * </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Password Input -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n type=\"password\"\r\n (click)=\"handleClickEvent(formField)\"\r\n (change)=\"onChangeEvent(formField)\"\r\n pInputText\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n (blur)=\"onFocusOutEvent(formField)\"\r\n />\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n <span *ngIf=\"formField.required\"> * </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Checkbox -->\r\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\r\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\r\n <label *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \" [title]=\"formField.label &&\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\">{{\r\n formField.label &&\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <p-checkbox\r\n class=\"p-d-flex p-ai-center\"\r\n [binary]=\"true\"\r\n [name]=\"formField.field\"\r\n (click)=\"onClickEvent(formField)\"\r\n (change)=\"onChangeEvent(formField)\"\r\n [(ngModel)]=\"formField.value\"\r\n [disabled]=\"formField.disabled\"\r\n (onChange)=\"onFocusOutEvent(formField)\"\r\n >\r\n </p-checkbox>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Calendar -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\r\n <span\r\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <p-calendar\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty ' + formField.field\r\n : 'form-control '+ formField.field\r\n \"\r\n [showButtonBar]=\"true\"\r\n [todayButtonStyleClass]=\"formField.timeOnly ? 'hide-today-btn' : ''\"\r\n [(ngModel)]=\"formField.value\"\r\n [name]=\"formField.field\"\r\n [disabled]=\"formField.disabled\" hourFormat=\"12\"\r\n [defaultDate]=\"defaultDate\"\r\n [stepMinute] = \"formField.minutesInterval ? formField.minutesInterval : 1\"\r\n [showTime]=\"formField.showTime\"\r\n (onShow)=\"setCalenderDate(formField)\"\r\n [timeOnly]=\"formField.timeOnly\"\r\n [view]=\"formField.monthOnly ? 'month' : 'date' \"\r\n (click)=\"handleClickEvent(formField)\"\r\n [dateFormat]=\"formField.format ? formField.format.type : calendarFormat\"\r\n (ngModelChange)=\"calendarChangeValue(formField)\"\r\n (onInput)=\"calenderInputValue(formField)\"\r\n (onClose)=\"onFocusOutEvent(formField)\">\r\n </p-calendar>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\">*</span>\r\n </label>\r\n <p-dropdown\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n autocomplete=\"off\"\r\n [styleClass]='formField.field'\r\n [placeholder]=\"formField.value\"\r\n [options]=\"formField.data\"\r\n [filter]=\"formField.allowSearch\"\r\n [(ngModel)]=\"formField.value\"\r\n [optionLabel]=\"formField.optionLabel\"\r\n [optionValue]=\"formField.optionValue\"\r\n [name]=\"formField.field\"\r\n (keyup.Tab)=\"tabFocusEvent(formField)\"\r\n (click)=\"clearDropdownValue(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\"\r\n [showClear]=\"formField.value ? true : false\"\r\n (onChange)=\"onClearValue(formField, $event)\"\r\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\"\r\n >\r\n </p-dropdown>\r\n <span\r\n *ngIf=\"\r\n !formField?.isValid &&\r\n !formField.hidden\r\n \"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- AutoComplete Search -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <span class=\"p-fluid\">\r\n <p-autoComplete\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [suggestions]=\"formField.data\"\r\n [(ngModel)]=\"formField.value\"\r\n (onChange)=\"onChangeEvent(formField)\"\r\n (click)=\"handleClickEvent(formField)\"\r\n (completeMethod)=\"autoSearch($event, formField)\"\r\n [dropdown]=\"formField.showOption\"\r\n [field]=\"formField.displayField\"\r\n [name]=\"formField.label\"\r\n [multiple]=\"true\"\r\n [disabled]=\"formField.disabled\"\r\n (onBlur)=\"onFocusOutEvent(formField)\">\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n </span>\r\n\r\n <!-- Multi-select -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\r\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\r\n formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n <p-multiSelect\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n [(ngModel)]=\"formField.value\"\r\n [options]=\"formField.data\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\" [appendTo]=\"'body'\"\r\n [name]=\"formField.field\"\r\n (onChange)=\"onChangeEvent(formField)\"\r\n (click)=\"formField.onClick ? formField.onClick() : ''\"\r\n [disabled]=\"formField.disabled\" (blur)=\"onFocusOutEvent(formField)\">\r\n </p-multiSelect>\r\n </div>\r\n </span>\r\n\r\n <!-- Hyperlink-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n [class]=\"\r\n formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n [title]=\"formField.label\"\r\n *ngSwitchCase=\"dynamicCase.HYPERLINK\"\r\n >\r\n <div\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.component\r\n \"\r\n (click)=\"hyperlinkDialog(formField)\"\r\n >\r\n {{ formField.label }}\r\n </div>\r\n <div\r\n [class]=\"\r\n formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.target !== '_iframe' &&\r\n !formField.hyperlink.component\r\n \"\r\n >\r\n <a\r\n class=\"pl-2\"\r\n tabindex=\"-1\"\r\n [href]=\"sanitizeUrl(formField.hyperlink?.link)\"\r\n [target]=\"formField.hyperlink?.target\"\r\n (click)=\"handleClickEvent(formField)\"\r\n [title]=\"formField.label\"\r\n >\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n formField.hyperlink &&\r\n formField.hyperlink.target === '_iframe' &&\r\n !formField.hyperlink.component\r\n \"\r\n >\r\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </a>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <!-- Lookup Control Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\r\n <span\r\n [class]=\"formField.disabled ? 'disabled-link' : ''\"\r\n >\r\n <label\r\n *ngIf=\"!formField.label.labelControl\"\r\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\r\n (click)=\"formField.label.onClick && formField.label.onClick()\r\n \"\r\n [title]=\"typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\">\r\n {{\r\n typeOf(formField.label) === 'object'\r\n ? formField.label.name\r\n : formField.label\r\n }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <div class=\"close-icon-wrapper\">\r\n <input\r\n [class]=\"\r\n formField.errorMessage\r\n ? 'ng-invalid ng-dirty'\r\n : 'form-control'\r\n \"\r\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\r\n ? formField.value.text\r\n : formField.value\"\r\n autocomplete=\"off\"\r\n [id]=\"formField.field\"\r\n [name]=\"formField.field\"\r\n (click)=\"selectLookupField(formField)\"\r\n [disabled]=\"formField.disabled\"\r\n (keyup.Tab)=\"selectLookupField(formField)\"\r\n readonly\r\n (keydown)=\"$event.preventDefault()\"\r\n />\r\n <div><button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton type=\"button\" (click)=\"lookupClearValue(formField)\"></button></div>\r\n </div>\r\n <span\r\n *ngIf=\"!formField?.isValid\"\r\n class=\"error\"\r\n >{{ formField.errorMessage }}</span\r\n >\r\n </div>\r\n </span>\r\n\r\n <!-- File Upload Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\"\r\n >\r\n <span\r\n [class]=\"\r\n formField.disabled ? 'disabled-link' : ''\r\n \"\r\n >\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n <se-file-upload\r\n [allowMultiple]=\"formField.selectMultipleFiles\"\r\n [acceptFileTypes]=\"formField.SetfileTypes\"\r\n [fields]=\"formField\"\r\n (fileUrl)=\"setFileUrls($event)\"\r\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"\r\n ></se-file-upload>\r\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\r\n formField.errorMessage\r\n }}</span>\r\n </div>\r\n </span>\r\n\r\n <!-- Display Card field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div\r\n class=\"p-d-flex p-flex-column\"\r\n *ngSwitchCase=\"dynamicCase.CARD\"\r\n >\r\n <span\r\n [class]=\"\r\n formField.disabled ? 'disabled-link' : ''\r\n \"\r\n >\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </label>\r\n </span>\r\n\r\n <se-card\r\n [card]=\"formField.card\"\r\n (onDeleteCard)=\"fileOnchangeEvent()\"\r\n (selectedCard)=\"selectedCardClickEvent($event)\"\r\n ></se-card>\r\n\r\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\r\n formField.errorMessage\r\n }}</span>\r\n </div>\r\n </span>\r\n\r\n <!-- Note Detail Field -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\r\n <div [class]=\"formField.disabled\r\n ? 'disabled-link'\r\n : 'link-label custom-link'\r\n \"\r\n >\r\n <span class=\"pl-2\" (click)=\"\r\n !formField.disabled\r\n ? handleNoteFieldDialog(formField)\r\n : ''\r\n \"\r\n [title]=\"formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label\">{{formField.label.labelControl\r\n ? ''\r\n : formField.label.onClick\r\n ? formField.label.name\r\n : formField.label}}\r\n <span *ngIf=\"formField.requiredField\">*</span>\r\n </span>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <!-- Dynamic Component Container-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\"\r\n #dynamicComponentContainer\r\n *ngSwitchCase=\"dynamicCase.COMPONENT\"\r\n ></div>\r\n </span>\r\n\r\n <!-- Header component-->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\r\n <label [class]=\"formField.class\">\r\n <b> {{ formField.label }} </b>\r\n </label>\r\n </div>\r\n </span>\r\n\r\n <!-- Add OnClick Button -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [icon]=\"formField.icon\"\r\n [label]=\"formField.label\"\r\n [disabled]=\"formField.disabled\"\r\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\r\n (click)=\"onClickEvent(formField)\"\r\n ></button>\r\n </div>\r\n </span>\r\n <!-- Add Generate Report Button -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.REPORT\"> \r\n <se-generate-report-btn [repId]=\"formField.reportId\" [params]=\"formField.params\" [showDialog]=\"formField.showDialog\"></se-generate-report-btn>\r\n </div>\r\n </span>\r\n \r\n\r\n <!-- Add Input Switch -->\r\n <span *ngIf=\"!formField.hidden\">\r\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\r\n <div>\r\n <label [title]=\"formField.label\">\r\n {{ formField.label }}\r\n </label>\r\n </div>\r\n <p-inputSwitch\r\n [name]=\"formField.label ? formField.label: 'switch'\"\r\n [(ngModel)]=\"formField.value\"\r\n [disabled]=\"formField.disabled\"\r\n (click)=\"onClickEvent(formField)\"\r\n ></p-inputSwitch>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </p-accordionTab>\r\n </p-accordion>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n </div>\r\n </span>\r\n\r\n <!-- save and close buttons -->\r\n <div\r\n class=\"p-col-12 p-d-flex p-jc-end\"\r\n [ngClass]=\"{ sticky: stickyActions }\"\r\n >\r\n <!-- save button -->\r\n <button\r\n *ngIf=\"!hideSaveButton\"\r\n [disabled]=\"isFormDisabled\"\r\n pButton\r\n type=\"button\"\r\n icon=\"pi pi-check\"\r\n label=\"Save\"\r\n class=\"p-button-success\"\r\n (click)=\"onSaveForm()\"\r\n ></button>\r\n\r\n <!-- close button -->\r\n <button\r\n *ngIf=\"!hideCancelButton\"\r\n [disabled]=\"isFormDisabled\"\r\n (click)=\"onCancelForm()\"\r\n pButton type=\"button\"\r\n icon=\"pi pi-times\"\r\n label=\"Cancel\"\r\n class=\"p-button-danger p-ml-3\"\r\n ></button>\r\n </div>\r\n </div>\r\n</form>\r\n",
6882
6883
  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}: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}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}: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"]
6883
6884
  },] }
6884
6885
  ];