@churchillliving/se-ui-toolkit 6.53.521 → 6.53.523
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/churchillliving-se-ui-toolkit.umd.js +19 -8
- package/bundles/churchillliving-se-ui-toolkit.umd.js.map +1 -1
- package/churchillliving-se-ui-toolkit.metadata.json +1 -1
- package/esm2015/lib/components/base/form/form.component.js +9 -6
- package/esm2015/lib/components/base/grid/grid.component.js +12 -4
- package/fesm2015/churchillliving-se-ui-toolkit.js +19 -8
- package/fesm2015/churchillliving-se-ui-toolkit.js.map +1 -1
- package/lib/components/base/form/form.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"churchillliving-se-ui-toolkit.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../projects/se-ui-toolkit/src/lib/models/grid.model.ts","../../../projects/se-ui-toolkit/src/lib/components/base/alert-pop-up/alert-pop-up.component.ts","../../../projects/se-ui-toolkit/src/lib/services/alert.service.ts","../../../projects/se-ui-toolkit/src/lib/services/request.service.ts","../../../projects/se-ui-toolkit/src/lib/services/dropdown.service.ts","../../../projects/se-ui-toolkit/src/lib/services/hyperlink.service.ts","../../../projects/se-ui-toolkit/src/lib/models/form.model.ts","../../../projects/se-ui-toolkit/src/lib/services/utilities.service.ts","../../../projects/se-ui-toolkit/src/lib/services/grid.service.ts","../../../projects/se-ui-toolkit/src/lib/models/user-info.model.ts","../../../projects/se-ui-toolkit/src/lib/services/authentication.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/iframe/iframe.component.ts","../../../projects/se-ui-toolkit/src/lib/services/page-logger.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid/grid.component.ts","../../../projects/se-ui-toolkit/src/lib/services/form.service.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/notes/notes.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/form/form.component.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/dropdown/dropdown.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/image-gallery/image-gallery.component.ts","../../../projects/se-ui-toolkit/src/lib/directive/add-row.directive.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid/grid.constant.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/filter-menu/filter-menu.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/menu-bar/menu-bar.component.ts","../../../projects/se-ui-toolkit/src/lib/models/sidebar.model.ts","../../../projects/se-ui-toolkit/src/lib/components/base/sidebar/sidebar.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/header/header.component.ts","../../../projects/se-ui-toolkit/src/lib/services/loader.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/loader/loader.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/file-upload/file-upload.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/caption/caption.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/cards/card.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/file/file.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/report/report-Filter/report-filter/report-filter.component.ts","../../../projects/se-ui-toolkit/src/lib/services/report.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/global-filters/global-filters.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/filter/filter.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid-row-actions/grid-row-actions.component.ts","../../../projects/se-ui-toolkit/src/lib/se-ui-toolkit.module.ts","../../../projects/se-ui-toolkit/src/lib/models/header.model.ts","../../../projects/se-ui-toolkit/src/lib/services/sidebar.service.ts","../../../projects/se-ui-toolkit/src/lib/services/header.service.ts","../../../projects/se-ui-toolkit/src/lib/services/card.service.ts","../../../projects/se-ui-toolkit/src/public-api.ts","../../../projects/se-ui-toolkit/src/churchillliving-se-ui-toolkit.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","import { IPermission } from './user-info.model';\nimport { Type } from '@angular/core';\nimport { IAutoCompleteSave, IDropDownRequest, IReportBtn } from './form.model';\n\nexport interface IGridColumn {\n component?: Type<any>;\n allowToggle?: boolean;\n allowSearch?: boolean;\n allowEdit?: boolean;\n allowAutoCompleteSave?:boolean;\n uniqueKey?: IAutoCompleteSave;\n target?: EGridlink;\n header?: string;\n field?: string;\n displayField?: string;\n showOption?: boolean;\n type?: EGridColumnType;\n hidden?: boolean;\n hyperlink?: string;\n sorting?: boolean;\n filtering?: boolean;\n filter?: IGridFilterType;\n format?: string | EGridFormatType | IGridFormat; // For more format options. visit https://angular.io/api/common/DatePipe\n data?: any;\n style?: string;\n permissions?: IPermission[];\n value?: any;\n filterValue?: any;\n tableAlias?: string;\n linkId?: string;\n params?: {[key: string]: any};\n minutesInterval?: number;\n showTime?: boolean;\n timeOnly?: boolean;\n displayText?: string;\n disabled?: boolean;\n editable?: boolean;\n editLink?: boolean;\n allowSave?: boolean;\n validations?: IGridValidation[];\n errorMessage?: string;\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (value?: any, column?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n aggregate?: IGridAggregate[];\n formatter?: EGridFormatter;\n optionLabel?: string;\n optionValue?: string;\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n}\n\nexport interface IGridLookupControl {\n component?: any;\n data?: IGridLookupData;\n}\n\nexport declare type IGridLookupData = {\n header?: string;\n height?: string;\n width?: string;\n labelProp?: string;\n valueProp?: string;\n data?: {[key: string]: any};\n}\n\nexport enum EGridAggregate {\n SUM = 'sum',\n AVERAGE = 'average',\n COUNT = 'count',\n}\n\nexport interface IGridAggregate {\n type: EGridAggregate;\n caption?: string;\n displayField?: string;\n aggrValue?:string;\n format?: IAggregateFormat;\n}\nexport interface IAggregateFormat {\n type: EAggregateFormat;\n digitsInfo?: number;\n}\n\nexport enum EAggregateFormat {\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n}\n\nexport enum EGridlink {\n BLANK = '_blank',\n SELF = '_self',\n}\n\nexport interface IGridDataExport {\n rows: any[];\n headings: string[];\n}\n\nexport interface ISelectItem {\n label: string;\n value: string;\n}\n\nexport interface IGridFilterType {\n type?: GridFilterControlType;\n data?: ISelectItem[];\n tableAlias?: string;\n showFilter?: boolean;\n}\n\nexport interface IAlertPopUpBtn {\n buttonLabel: string;\n buttonClass?: string;\n}\n\nexport interface IAlertPopUp {\n message: string;\n header?: string;\n buttons: IAlertPopUpBtn[];\n height?: string;\n width?: string;\n icon?: string;\n}\n\nexport enum EGridFormatter {\n BOOLEAN = 'boolean',\n CHAR = 'char',\n NUMERIC = 'numeric'\n}\n\nexport enum GridFilterControlType {\n INPUT = 'input',\n DROPDOWN = 'dropdown',\n CHECKBOX = 'checkbox',\n CALENDAR = 'calendar',\n CALENDAR_RANGE = 'calender_range',\n MULTISELECT = 'multi-select',\n NUMERICINPUT = 'numeric_input',\n NUMERIC_RANGE = 'numeric_range',\n DATE_RANGE = 'date_range',\n LOOKUP_INPUT = 'lookup_input',\n SPACER = 'spacer'\n}\n\nexport enum EDayRange {\n DAY = 'Day',\n WEEK = 'Week',\n MONTH = 'Month',\n YEAR = 'Year',\n}\n\nexport enum EGridSortDirection {\n ASC = 'asc',\n DESC = 'desc',\n}\n\nexport enum EGridColumnType {\n LINK = 'link',\n IFRAME = 'iframe',\n DIALOG = 'dialog',\n TEXT = 'text',\n NUMERIC = 'numeric',\n DATE = 'date',\n BOOLEAN = 'boolean',\n DROPDOWN = 'dropdown',\n LOOKUP_INPUT = 'lookup_input',\n ADD_BUTTON = 'add_button',\n AUTOCOMPLETE = 'AutoComplete',\n MULTISELECT = 'multi-select',\n REPORT = 'report',\n}\n\nexport interface IGlobalFilter extends IGridFilterType, IGridFilter {\n displayText?: string;\n onFocusOut?: (value: any) => any;\n onReturn?: (value: any) => any;\n optionLabel?: string;\n optionValue?: string;\n dayRange?: EDayRange;\n fromField?: string;\n toField?: string;\n format?: string | EGridFormatType | EGlobalFilterFormatType;\n lookupControl?: ILookupControlFilter;\n allowSearch?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n color?: string;\n validations?: IGridValidation[];\n errorMessage?:string;\n requiredField?: boolean;\n}\n\nexport interface ILookupControlFilter {\n component?: any;\n data?: ILookupFilterData;\n}\n\nexport declare type ILookupFilterData = {\n header: string;\n width?: string;\n labelProp?: string;\n valueProp?: string;\n data: any;\n} & {\n [key: string]: any;\n};\n\nexport interface IPrimeNgSort {\n multisortmeta: { field: string; order: number };\n}\n\nexport interface IPrimeNgFilterItem {\n matchMode: string;\n operator: string;\n value: string | number | boolean | Date | any;\n}\n\nexport interface IPrimeNgFilter {\n filteredValue: any[];\n filters: Record<string, IPrimeNgFilterItem[] | IPrimeNgFilterItem>;\n}\n\nexport interface IGridFilter {\n field?: string;\n matchMode?: string;\n operator?: string;\n filtering?: boolean;\n value?: any;\n valueTwo?: any;\n tableAlias?: string;\n column?: string;\n}\n\nexport interface IGridSort {\n field?: string;\n direction?: EGridSortDirection;\n priority: number;\n tableAlias?: string;\n}\n\nexport class IGridServerSideEvent {\n filters?: IGridFilter[];\n sorts?: IGridSort[];\n page?: number;\n pageSize?: number;\n}\n\nexport interface IGridPaginationEvent {\n first: number;\n rows: number;\n}\n\nexport interface IGridColumnAction {\n icon: string; // Uses primeng/font-awesome icons. Example: 'pi pi-check'\n tooltip: string;\n width?: string;\n confirmDialog?: boolean;\n onClick: (row: any) => void;\n}\n\nexport interface IGridRowAction {\n title: string;\n class?: string;\n onClick: (row: any) => void;\n}\n\nexport enum EGridFormatType {\n SMALLDATE = 'mm/dd/y',\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'm d, yy',\n PERIOD = 'mm/y',\n LONGDATE = 'mm/dd/yy, h:mm a',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}\n\nexport enum EGlobalFilterFormatType {\n SMALLDATE = 'mm/dd/y',\n SHORTDATE = 'mm/dd/yy',\n}\n\nexport enum EGridSelectionType {\n SINGLE = 'single',\n MULTIPLE = 'multiple',\n}\n\nexport type MenuFilterControls =\n | GridFilterControlType.INPUT\n | GridFilterControlType.NUMERICINPUT\n | GridFilterControlType.CALENDAR;\n\nexport type IMenuFilter = Record<MenuFilterControls, ISelectItem[]>;\n\nexport interface addColumn {\n allowToggle?: boolean;\n target?: EGridlink;\n allowEdit?: boolean;\n component?: Type<any>;\n control?: EGridColumnType;\n field?: string;\n displayField?: string;\n header?: string;\n showOption?: boolean;\n style?: string;\n type?: EGridColumnType;\n format?: string | EGridFormatType | IGridFormat;\n data?: any;\n filtering?: boolean;\n showTime?: boolean;\n timeOnly?: boolean;\n hidden?: boolean;\n hyperlink?: string;\n allowSearch?: boolean;\n allowAutoCompleteSave?:boolean;\n uniqueKey?:IAutoCompleteSave;\n minutesInterval?: number;\n sorting?: boolean;\n filter?: IGridFilterType;\n tableAlias?: string;\n linkId?: string;\n editable?: boolean;\n editLink?: boolean;\n params?: {[key: string]: any};\n displayText?: string;\n disabled?: boolean;\n allowSave?: boolean;\n errorMessage?: string;\n validations?: IGridValidation[];\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (value?: any, column?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n aggregate?: IGridAggregate[];\n formatter?: EGridFormatter;\n permissions?: IPermission[];\n optionLabel?: string;\n optionValue?: string;\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n value?: any;\n filterValue?: any;\n}\n\nexport interface IDialogColumn {\n component?: Type<any>;\n control?: EGridColumnType;\n field?: string;\n displayField?: string;\n header?: string;\n style?: string;\n type?: EGridColumnType;\n format?: string | EGridFormatType | IGridFormat;\n data?: any;\n filtering?: boolean;\n hidden?: boolean;\n sorting?: boolean;\n aggregate?: IGridAggregate[];\n filter?: IGridFilterType;\n tableAlias?: string;\n filterValue?: any,\n editable?: boolean;\n showOption?: boolean;\n editLink?: boolean;\n displayText?: string;\n disabled?: boolean;\n allowSave?: boolean;\n errorMessage?: string;\n validations?: IGridValidation[];\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (res?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n formatter?: EGridFormatter;\n permissions?: IPermission[];\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n value?: any;\n}\n\nexport interface addFilterColumn {\n control?: GridFilterControlType;\n field?: string;\n header?: string;\n filter?: GridFilterControlType;\n filtering?: boolean;\n hidden?: boolean;\n style?: string;\n showTime?: boolean;\n timeOnly?: boolean;\n format?: string;\n tableAlias?: string;\n validations?: IGridValidation[] | any;\n errorMessage?: string;\n isvalid?: boolean;\n disabled?: boolean;\n allowSave?: boolean;\n permissions?: IPermission[];\n component?: Type<any>;\n type?: EGridColumnType;\n data?: any;\n}\n\nexport interface IGridValidation {\n type: EGridValidator | EFilterValidator;\n expression?: any;\n}\nexport enum EFilterValidator {\n REQUIRED = \"required\",\n}\nexport interface IGridReportBtn extends IReportBtn{\n type?: EGridColumnType.REPORT;\n}\nexport interface IGridRowProp{\n propName: EGridRowPropName | string; //IGridColumnPropName;\n propValue: any;\n field?: string;\n action?: EGridRowAction;\n}\n\nexport enum EGridRowAction {\n DELETEBTN = 'delete_btn',\n EDITBTN = 'edit_btn',\n}\n\nexport enum EGridRowPropName {\n DISPLAYTEXT = 'displayText',\n DISABLED = 'disabled',\n DISPLAYFIELD = 'displayField',\n HIDDEN = 'hidden',\n ICON = 'icon',\n LOOKUPCONTROL='lookupControl', \n HIDEFIELDVALUE='hideFieldValue'\n}\n\nexport enum EGridValidator {\n REQUIRED = 'required',\n MINLENGTH = 'minlength',\n MAXLENGTH = 'maxlength',\n PATTERN = 'pattern',\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n EMAIL = 'email',\n PHONE = 'phone',\n MAXOPTIONS='maxOptions'\n}\n\nexport interface addGlobalFilter {\n field?: string;\n validations?: IGridValidation[];\n displayText?: string;\n type?: GridFilterControlType;\n data?: any;\n value?: any;\n valueTwo?: any;\n matchMode?: string;\n operator?: string;\n tableAlias?: string;\n optionLabel?: string;\n optionValue?: string;\n format?: EGlobalFilterFormatType | IGridFormat | any;\n column?: string;\n onFocusOut?: (value: any) => any;\n onReturn?: (value: any) => any;\n filtering?: boolean;\n dayRange?: EDayRange;\n fromField?: string;\n toField?: string;\n lookupControl?: ILookupControlFilter;\n allowSearch?: boolean;\n disabled?: boolean;\n labelText?: string;\n prefix?: boolean;\n hidden?: boolean;\n color?: string;\n}\n\nexport interface IGridFormat {\n type: EGridFormatType;\n formatParams?:\n | IGridFormatParam\n | IGridDateFormatParam\n | IGridNumberFormatParam\n | IGridCurrencyFormatParam\n | IGridallowcalculateFormatParam;\n\n formatter?: (value: any) => any;\n}\n\nexport interface IGridFormatParam {\n locale?: string;\n}\n\nexport interface IGridDateFormatParam extends IGridFormatParam {\n format?: string;\n}\n\nexport interface IGridNumberFormatParam extends IGridFormatParam {\n digitsInfo?: string;\n}\n\nexport interface IGridallowcalculateFormatParam extends IGridFormatParam {\n allowCalculate?: boolean;\n}\n\nexport interface IGridCurrencyFormatParam extends IGridNumberFormatParam {\n currency: string;\n}\n\nexport interface IGridProp {\n name: string;\n value: any;\n field?: string;\n}\n\nexport interface IGridPropFilter {\n field: string;\n value: any;\n}\n\nexport interface IGridFilterInfo {\n [key:string]:any;\n}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'lib-alert-pop-up',\n templateUrl: './alert-pop-up.component.html',\n styleUrls: ['./alert-pop-up.component.css']\n})\nexport class AlertPopUpComponent implements OnInit {\n buttons: any[]\n message: string;\n icon: string;\n\n constructor(@Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef,) { }\n\n ngOnInit(): void {\n if(this.config?.data){\n this.message = this.config.data?.alertPopInfo?.message;\n this.buttons = this.config.data?.alertPopInfo?.buttons;\n this.icon = this.config.data?.alertPopInfo?.icon;\n }\n }\n\n clickedBtn(button: any){\n const closeBtn = document.querySelectorAll(\".alertPopUp button\")[0] as HTMLButtonElement;\n if(closeBtn){\n closeBtn?.click();\n this.ref.close(button);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmationService } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { AlertPopUpComponent } from '../components/base/alert-pop-up/alert-pop-up.component';\nimport { IAlertPopUp, } from '../models/grid.model';\n\n@Injectable()\nexport class AlertService {\n \n constructor(\n private toastr: ToastrService,\n public dialogService: DialogService,\n private confirmationService: ConfirmationService\n ) { }\n\n success(message: string, time: number = 5000) {\n this.toastr.success(message, \"\", { closeButton: true, timeOut: time });\n }\n\n info(message: string, time: number = 5000) {\n this.toastr.info(message, \"\", { closeButton: true, timeOut: time });\n }\n\n warning(message: string, time: number = 5000) {\n this.toastr.warning(message, \"\", { closeButton: true, timeOut: time });\n }\n\n error(error: string, time: number = 5000, message?: string,) {\n this.toastr.error(error, message, { closeButton: true, timeOut: time });\n }\n\n apiError(error: any, time: number = 5000) {\n if (typeof error === 'string' || typeof error.error === 'string') {\n typeof error.error === 'string' ? this.error(error.error, time) : this.error(error, time);\n } else if (error && error.error && error.error.errorDetails) {\n const [responseError] = error.error.errorDetails;\n this.error(responseError.errorMessage, time);\n }\n else if(error && error.headers && error.status !== 401) {\n this.error('something went wrong during api request', time);\n }\n }\n\n \n confirm({\n message = \"Are you sure that you want to proceed?\",\n header = \"Confirmation\",\n icon = \"pi pi-exclamation-triangle\",\n key= '',\n } = {}): Promise<any> {\n return new Promise(resolve => {\n this.confirmationService.confirm({\n message,\n header,\n icon,\n key,\n accept: () => {\n resolve([{ severity: \"info\", summary: \"Confirmed:\", detail: \"Yes\" }]);\n this.confirmationService.close();\n },\n reject: () => {\n resolve([{ severity: \"info\", summary: \"Rejected:\", detail: \"No\" }]);\n this.confirmationService.close();\n }\n })\n });\n }\n\n popUp({message ='', header = 'Alert PopUp', icon = '', buttons = [{buttonLabel: '', buttonClass: 'p-button-success'}], width = '55%', height = '30%'}: IAlertPopUp): Promise<any> {\n return new Promise(resolve => {\n const ref = this.dialogService.open(AlertPopUpComponent, {\n styleClass: 'alertPopUp',\n header: header,\n width: width,\n height: height,\n data: { alertPopInfo: {message, icon, buttons}},\n });\n ref.onClose.subscribe((res) => {\n if (res) {\n resolve(res.buttonLabel);\n }\n });\n });\n }\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Response } from '../models/response.model';\nimport { Environment } from '../models/response.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RequestService {\n\n constructor(private http: HttpClient, @Inject('env') private env: Environment) { \n }\n download(endpoint: string, data: any, baseUrl: string = this.env.baseUrl): Observable<any> {\n return this.http.post(`${baseUrl}${endpoint}`, data, { responseType: 'blob', observe: 'response' });\n }\n\n get<T, K>(endpoint: string, data: K, baseUrl: string = this.env.baseUrl): Observable<Response<T>> {\n return this.http.post<Response<T>>(`${baseUrl}${endpoint}${this.getCurrentRoute()}`, data);\n }\n\n getRequest<T, K>(endpoint: string) {\n return this.http.get<Response<T>>(`${this.env.baseUrl}${endpoint}${this.getCurrentRoute()}`);\n }\n\n getAuth<T, K>(endpoint: string, data: K): Observable<Response<T>> {\n return this.http.post<Response<T>>(`${this.env.baseAuthUrl}${endpoint}${this.getCurrentRoute()}`, data);\n }\n\n getOne<T, K>(endpoint: string, id: string): Observable<Response<T>> {\n return this.http.get<Response<T>>(`${this.env.baseUrl}${endpoint}/${id}`);\n }\n\n delete<T, K>(endpoint: string, id: number): Observable<Response<T>> {\n return this.http.delete<Response<T>>(`${this.env.baseUrl}${endpoint}/${id}`);\n }\n\n getCurrentRoute(): any{\n let route = window.location.href;\n if(route && route.includes('/')){\n let currentRoute = route.split('/');\n route = currentRoute[currentRoute.length-1];\n const source = `?source=${route}`;\n return source;\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { RequestService } from './request.service';\nimport { ISelectItem } from '../models/grid.model';\nimport { GridService } from './grid.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DropdownService {\n constructor(\n private requestService: RequestService,\n ) {}\n\n /**\n * Function to set the values for dropdown\n * @param response array of data\n * @param valueProp property name for value\n * @param labelProp property name for label\n */\n\n setDropDownList(uniqueKey: any, valueProp: string, labelProp: string, filters: any[] = [], sorts:any[]=[]) {//add sort here\n let dropdownvalues: ISelectItem[] = [];\n return new Promise((resolve, reject) => {\n this.requestService.get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters, sorts }).subscribe((response) => {\n if (response) {\n dropdownvalues = this.setDropDown(response, valueProp.toLowerCase(), labelProp.toLowerCase())\n return resolve(dropdownvalues);\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n })\n });\n }\n\n setDropDown(response: any, valueProp: string, labelProp: string) {\n if (valueProp) valueProp = valueProp.toLowerCase();\n if (labelProp) labelProp = labelProp.toLowerCase();\n let dropdownvalues: ISelectItem[] = [];\n if (response.records) {\n this.setDataFields(response.records).forEach((record: any) => {\n if (\n record.hasOwnProperty(valueProp && labelProp) &&\n record[valueProp] &&\n record[labelProp]\n ) {\n dropdownvalues.push({\n label: record[labelProp].toString().trim(),\n value: record[valueProp].toString().trim(),\n });\n }\n });\n }\n return dropdownvalues;\n }\n\n setDataFields(response: any[]) {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any) => {\n const result = Object.keys(x).reduce(\n (prev, current) => ({ ...prev, [current.toLowerCase()]: x[current] }),\n {}\n );\n data.push(result);\n });\n }\n return data;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EGridColumnType } from '../models/grid.model';\nimport { ISidebar } from '../models/sidebar.model';\nimport { RequestService } from './request.service';\nimport { IDynamicForm } from '../models/form.model';\nimport { IDictionary } from '../models/common.model';\n@Injectable({\n providedIn: 'root',\n})\nexport class HyperlinkService {\n constructor(private requestService: RequestService) { }\n\n buildUrl(linkIds: any, params: { [key: string]: string }) {\n return new Promise((resolve, reject) => {\n if (Array.isArray(linkIds)) {\n this.requestService\n .get<any, any>('/Link/ByLinkIds', { linkIds: linkIds })\n .subscribe(\n (res: any) => {\n if (res) {\n return resolve(res);\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n }\n );\n } else {\n this.requestService\n .getOne<any, any>('/Link/ByLinkId', linkIds)\n .subscribe(\n (response) => {\n if (response) {\n return resolve(this.setUrl(params, response));\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n }\n );\n }\n });\n }\n\n setUrl(params: { [key: string]: string }, response: any) {\n let url: string = response.url;\n for (let paramKey in params) {\n const lowerKey = paramKey.toLowerCase();\n const paramValue = params[paramKey];\n if (\n url &&\n url.search &&\n url.search(lowerKey) > 0 &&\n paramValue &&\n paramValue.length > 0\n ) {\n url = url.replace('{{'+lowerKey+'}}', params[paramKey]);\n }\n }\n return url;\n }\n\n async addHyperlinks(columns: any) {\n let linkIds: any[] = [];\n let params: any;\n if (columns && Array.isArray(columns)) {\n columns.forEach((column) => {\n if (\n (column.type === EGridColumnType.LINK ||\n column.type === EGridColumnType.IFRAME||\n column.type === EGridColumnType.LOOKUP_INPUT) &&\n column.linkId &&\n column.params\n ) {\n linkIds.push(column.linkId);\n params = column.params;\n }\n });\n return await this.buildUrl(linkIds, params).then((res: any) => {\n return res;\n });\n } else if (columns.linkId) {\n linkIds.push(columns.linkId);\n params = columns.params;\n return await this.buildUrl(linkIds, params).then((res: any) => {\n return res;\n });\n }\n }\n\n setLinkParamValues(\n { formSections }: IDynamicForm,\n field: string,\n params: any[]\n ) {\n return formSections?.map((section: any) => {\n return section.fields.map((formField: any): any => {\n const isLabelLink =\n formField.label && typeof formField.label === 'object';\n if (\n formField.field?.toLowerCase() === field?.toLowerCase() || \n (isLabelLink && formField.label?.name?.toLowerCase() === field?.toLowerCase()) ||\n (formField.label && typeof formField.label === 'string' && formField.label?.toLowerCase() === field?.toLowerCase())\n ) {\n let newLink: string = isLabelLink\n ? formField.label?.labelControl?.orignalLink\n : formField.orignalLink ? formField.orignalLink : formField.hyperlink?.link;\n \n if (newLink && newLink.length > 0) {\n return params.map((paramObj: IDictionary): any => {\n if (\n (typeof paramObj.value === 'object' && paramObj.value) ||\n (typeof paramObj.value === 'string' && paramObj.value?.length > 0)\n ) {\n // removing https:// or http:// from hyperlink param value\n if (\n (paramObj.value?.toString().includes('https://') || paramObj.value?.toString().includes('http://')) && \n (newLink.includes('https://') || newLink.includes('http://')) \n ) {\n paramObj.value = paramObj.value.replace('https://', '').replace('http://', '');\n }\n const paramName: string = paramObj.name.toLowerCase();\n const paramFormat: string = !paramObj.value\n ? '{{' + paramName + '}}'\n : paramName;\n \n if (newLink.localeCompare(paramFormat)) {\n let setLink =\n paramFormat !== '{{' + paramFormat + '}}'\n ? '{{' + paramFormat + '}}'\n : paramFormat;\n \n newLink = newLink.replace(\n new RegExp(setLink, 'ig'),\n (paramObj.value)?.trim()\n );\n // if (newLink && !newLink.startsWith('http'))\n // {\n // newLink = \"http://\" + newLink;\n // }\n }\n return isLabelLink\n ? (formField.label.labelControl.hyperlink.link = newLink)\n : (formField.hyperlink.link = newLink);\n }\n });\n }\n }\n });\n });\n }\n\n setSidebarLink(response: any, sidebar: ISidebar[]) {\n response.forEach((res: any) => {\n sidebar.forEach((item) => {\n if (item.onClick && item.linkId && item.linkId === res.linkId) {\n item.onClick(res.url);\n }\n });\n });\n }\n\n}\n","import { Type } from '@angular/core';\nimport { IGridSort, ISelectItem } from './grid.model';\nimport { IPermission } from './user-info.model';\n\nexport interface IDynamicForm {\n formSections?: IFormSection[];\n column?: number;\n permissions?: IPermission[];\n}\n\nexport interface ILabel {\n name: string;\n disabled?: boolean;\n labelControl?: IFormField;\n onReturn?: (value: any) => void;\n onClick?: () => void;\n}\n\nexport interface IDropDownRequest {\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters?: ISetFilter[]\n sorts?:IGridSort[] \n}\n\nexport interface IAutoCompleteSave {\n name:string,\n values:IAutoCompleteValueSave[],\n}\n\nexport interface IAutoCompleteValueSave{\n name:string,\n value?:any\n}\n\nexport interface ISetFilter {\n field?: string,\n value?: any,\n matchMode?: string,\n operator?: string,\n valueField?: string;\n}\n\nexport interface IFormSection {\n name?: string;\n fields: IFormField[];\n icon?: string;\n class?: string;\n links?: ILabel[];\n permissions?: IPermission[];\n hidden?: boolean;\n accordionDisabled?: boolean;\n showAccordion?: boolean;\n expanded?: boolean;\n disabled?: boolean;\n disabledText?: boolean;\n}\n\nexport interface IFormField {\n label?: string | ILabel;\n class?: string;\n card?: IDynamicCard;\n control?: EFormControl;\n field?: string;\n displayField?: string;\n showOption?: boolean;\n value?: any | ILookupInputValue;\n data?: any[];\n validations?: IValidation[];\n errorMessage?: string;\n minutesInterval?: number;\n id?: string;\n required?: boolean;\n disabled?: boolean;\n disabledText?: boolean;\n lookupControl?: ILookupControlField;\n tables?: string[];\n componentControl?: IFormComponentField;\n column?: number;\n row?: number;\n hyperlink?: IHyperlink;\n format?: IFormat;\n permissions?: IPermission[];\n hidden?: boolean;\n optionLabel?: string;\n optionValue?: string;\n saveAsString?: boolean;\n showAllValue?: boolean;\n onClick?: (value?: any) => any;\n onReturn?: (value?: any, selectedRow?: any) => void;\n onFocusOut?: (value: any) => void;\n onChange?: (value: any) => any;\n isvalid?: boolean;\n timeOnly?: boolean\n monthOnly?: boolean;\n showTime?: boolean; // to show time as well in calendar form field\n requiredField?: boolean;\n height?: string;\n showBottomBorder?: boolean;\n allowSearch?: boolean;\n isPassword?:boolean\n textType?:string;\n selectMultipleFiles?: boolean;\n SetfileTypes?: ESelectFileType;\n icon?: string;\n color?: string;\n uniqueKey?: string;\n azureContainer?: string;\n pathSystemConfig?: string;\n}\nexport interface IFormButton{\n icon?:string;\n label:string;\n hidden?:boolean;\n func:Function;\n disabled?:boolean;\n}\nexport interface IDynamicCard {\n id?: number;\n name?: string;\n data?: any[];\n orderByField?: string;\n formSections?: IFormSection[];\n onSort?: (value: any) => any;\n allowDelete?: boolean;\n allowDownload?: boolean;\n url?: string;\n caption?: string;\n width?: string;\n height?: string;\n allowEditableCaption?: boolean;\n onCaptionSave?: (value: any) => any;\n onDelete?: (value: any) => any;\n class?: string;\n cardInfo?: IViewCardProp;\n}\n\nexport interface IViewCardProp {\n url?: string;\n caption?: string;\n extension?: string;\n}\n\nexport interface IViewCardProp {\n url?: string;\n caption?: string;\n extension?: string;\n}\nexport interface IReportBtn{\n reportId: number;\n label?: string;\n control?: EFormControl.REPORT;\n params?: any[];\n showDialog?: boolean;\n}\n\nexport interface IListFilter {\n uniqueKey: string;\n filters?: ISetFilter[];\n sorts?: IGridSort[];\n}\n\nexport interface IFormComponentField {\n component: Type<any>;\n id?:string;\n data?: {\n [key: string]: any;\n };\n handlers?: {\n [key: string]: Function;\n };\n}\n\nexport interface ILookupInputValue {\n text: any;\n value: any;\n}\n\nexport interface ILookupControlField {\n component: any;\n data: ILookupFieldData;\n id?: string;\n}\n\nexport declare type ILookupFieldData = {\n header?: string;\n height?: string;\n width?: string;\n data?: {[key: string]: any};\n labelProp?: string;\n valueProp?: string;\n} \n\nexport interface IValidation {\n type: EValidator;\n expression?: any;\n}\n\nexport enum ESelectFileType {\n EXCEL = '.excel',\n IMAGE = '.image, .jpg, .png, .jpeg, .gif',\n DOCUMENT = '.document',\n PDF = '.pdf',\n MRT = '.mrt',\n}\n\nexport enum EValidator {\n REQUIRED = 'required',\n MINLENGTH = 'minlength',\n MAXLENGTH = 'maxlength',\n PATTERN = 'pattern',\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n EMAIL = 'email',\n PHONE = 'phone',\n}\n\nexport enum EFormControl {\n BUTTON = 'button',\n LABEL = 'label',\n INPUT = 'input',\n CHECKBOX = 'checkbox',\n DROPDOWN = 'dropdown',\n CALENDAR = 'calender',\n NUMERIC = 'number',\n MULTISELECT = 'multi-select',\n TEXTAREA = 'text-area',\n HYPERLINK = 'hyperlink',\n LOOKUP_INPUT = 'lookup_input',\n NOTE_FIELD = 'note_field',\n COMPONENT = 'component',\n PASSWORD = 'password',\n AUTOCOMPLETE = 'AutoComplete',\n SPACER = 'spacer',\n SECTION_HEADER = 'section_header',\n FILE_UPLOAD = 'file_upload',\n CARD = 'card',\n DISPLAY_FILE = 'display_file',\n ADD_BUTTON = 'add_button',\n BREAK_LINE = 'break_line',\n SWITCH = 'switch',\n REPORT = 'report'\n}\n\nexport enum EOperator {\n AND = 'and',\n OR = 'or',\n}\n\nexport enum EMatchMode {\n EQUALS = 'equals',\n STARTSWITH = 'startsWith',\n CONTAINS ='contains',\n IN = 'in',\n ENDSWITH = 'endsWith',\n NOTEQUALS = 'notEquals',\n ISNOT = 'isNot',\n DATEISNOT = 'dateIsNot',\n NOTCONTAINS ='notContains',\n LT = 'lt',\n BEFORE = 'before',\n DATEBEFORE = 'dateBefore',\n LTE = 'lte',\n GT = 'gt',\n AFTER = 'after',\n DATEAFTER = 'dateAfter',\n GTE = 'gte',\n}\n\nexport interface IFormat {\n type: EFormatType;\n formatParams?:\n | IFormatParam\n | IDateFormatParam\n | INumberFormatParam\n | IallowCalculateFormatParam\n | ICurrencyFormatParam;\n formatter?: (value: any) => any;\n}\n\nexport interface IFormatParam {\n locale?: string;\n}\n\nexport interface IDateFormatParam extends IFormatParam {\n format?: string;\n}\n\nexport interface IallowCalculateFormatParam extends IFormatParam {\n allowCalculate?: boolean;\n}\n\nexport interface INumberFormatParam extends IFormatParam {\n digitsInfo?: string;\n}\n\nexport interface ICurrencyFormatParam extends INumberFormatParam {\n currency: string;\n}\n\nexport enum EFormatType {\n SMALLDATE = 'mm/d/y',\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'M d, yy',\n LONGDATE = 'MM d, yy',\n MONTHONLY = 'mm/yy',\n PERIOD = 'mm/y',\n BOOLEAN_YN = 'BOOLEAN_YN',\n CUSTOM = 'custom',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}\n\nexport interface IHyperlink {\n target?: EHyperlink;\n link?: string;\n linkId?: string;\n params?: any;\n width?:string;\n height?:string;\n component?: any;\n data?: ILookupFieldData;\n}\n\nexport enum EHyperlink {\n BLANK = '_blank',\n SELF = '_self',\n PARENT = '_parent',\n TOP = '_top',\n IFRAME = '_iframe',\n DIALOG = '_dialog'\n}\n\nexport interface AddFormField {\n control?: EFormControl;\n field?: string;\n class?: string;\n displayField?: string;\n showOption?: boolean;\n label?: string | ILabel;\n value?: string | any;\n format?: IFormat;\n permissions?: IPermission[];\n id?: string;\n hidden?: boolean;\n validations?: IValidation[] | any;\n hyperlink?: IHyperlink;\n lookupControl?: ILookupControlField;\n tables?: string[];\n minutesInterval?: number;\n disabled?: boolean | any;\n disabledText?: boolean;\n column?: number;\n row?: number;\n componentControl?: IFormComponentField;\n data?: ISelectItem[];\n optionLabel?: string;\n optionValue?: string;\n timeOnly?: boolean;\n monthOnly?: boolean;\n showTime?: boolean; // to show time as well in calendar form field\n saveAsString?: boolean;\n showAllValue?: boolean;\n onClick?: (value?: any) => any;\n onReturn?: (value?: any, selectedRow?:any) => void;\n onFocusOut?: (value: any) => void;\n onChange?: (value: any) => any;\n height?: string;\n showBottomBorder?: boolean;\n allowSearch?: boolean;\n isPassword?:boolean\n textType?:string;\n selectMultipleFiles?: boolean;\n SetfileTypes?: ESelectFileType;\n icon?: string;\n color?: string;\n card?: IDynamicCard;\n}\n","import { formatDate } from '@angular/common';\n\nimport { IDictionary, IFilterDictionary } from '../models/common.model';\nimport {\n EFormatType,\n EFormControl,\n EHyperlink,\n EMatchMode,\n EOperator,\n IDynamicCard,\n IDynamicForm,\n IFormat,\n IFormField,\n IFormSection,\n} from '../models/form.model';\nimport { addGlobalFilter, EGridColumnType, IGlobalFilter, IGridColumn, IGridFilter } from '../models/grid.model';\nimport { Subject } from 'rxjs';\n\n/* #region public methods */\n\n/**\n *\n * @param value : any\n * Function receives the value and expects the value to be formated.\n * Do not use fat arrow function as they do not preserve the context.\n * this.value refers to the value of IFormField Object\n * Modify this.value directly to receive effect\n */\n\n var formstate = new Subject<any>();\n var cardState = new Subject<any>();\n\n export function changeDynamicFormState(id: any, data: any) {\n formstate.next({ id, data });\n}\n \n export function onDynamicFormStateChange() {\n return formstate.asObservable();\n }\n\n export function onDynamicCardStateChange() {\n return cardState.asObservable();\n }\n\n export function changeDynamicCardState(data: any) {\n cardState.next({ data });\n}\n\n export function closeIFrame(){\n let close = window.parent.document.querySelector('.p-dialog-header-icon')as HTMLElement\n if(close) {\n close.click();\n }\n}\n\nexport function toDecimal(value: any): any {\n if (value) {\n return parseFloat(value.toString()).toFixed(2);\n }\n}\n\nexport function toBoolean(value: any) {\n return value?.toLowerCase() === 'y' ? true : false;\n}\n\nexport function toShortDate(value: any, format?: IFormat) {\n if (value && value !== '') {\n if (\n format &&\n (format.type === EFormatType.LONGDATE ||\n format.type === EFormatType.MEDIUMDATE)\n ) {\n return value;\n } else {\n return formatDate(value, 'MM/dd/yyyy', 'en-US');\n }\n } else {\n return null;\n }\n}\n\nexport function toShortDateTime(value: any, format?: IFormat) {\n if (value && value !== '' && value?.toString() != \"Invalid Date\") {\n if (\n format &&\n (format.type === EFormatType.LONGDATE ||\n format.type === EFormatType.MEDIUMDATE)\n ) {\n return value;\n } else {\n return formatDate(value, 'MM/dd/yyyy hh:mm a', 'en-US');\n }\n } else {\n return null;\n }\n}\n\nexport function setDialogData(columns:IGridColumn[], fieldName:string, value:any){\n columns?.forEach((column)=>{\n if(column.field?.toLowerCase() === fieldName?.toLowerCase() && column.component){\n let keys=Object.keys(value);\n keys.forEach((key)=>{\n column.data.data={...column.data?.data, [key]:value[key]};\n })\n }\n })\n}\n\nexport function toTrim(text: any) {\n if (typeof text === 'string') {\n return text.trim();\n } else {\n return text;\n }\n}\n\nexport function getMatchKey(obj: any, propName: string): string {\n if (!obj || !propName) {\n return '';\n }\n\n let matchedKey = '';\n if (Array.isArray(obj)) {\n obj.forEach((row) => {\n const keys: any[] = Object.keys(row);\n if (!matchedKey || matchedKey.length === 0) {\n matchedKey = keys.find(\n (x) => x.toLowerCase() === propName.toLowerCase()\n );\n }\n });\n } else {\n const keys: any[] = Object.keys(obj);\n matchedKey = keys.find((x) => x.toLowerCase() === propName.toLowerCase());\n }\n\n return matchedKey;\n}\n\nexport function formatFormFieldValue(formField: IFormField, value: any): any {\n let formattedValue: any = value;\n if (formField.format) {\n switch (formField.format.type) {\n case EFormatType.DECIMAL:\n formattedValue = toDecimal(value);\n break;\n case EFormatType.BOOLEAN_YN:\n formattedValue = toBoolean(value);\n break;\n case EFormatType.SHORTDATE:\n formattedValue = toShortDate(value);\n break;\n case EFormatType.CUSTOM:\n if (formField.format.formatter) {\n formattedValue = formField.format.formatter(value);\n }\n break;\n default:\n break;\n }\n }\n return formattedValue;\n}\n\nexport function setFormField (\n { formSections }: IDynamicForm,\n formFieldObj: IFormField\n) {\n return formSections?.map((section) => {\n return (section.fields = section.fields.map((formField: IFormField) => {\n if (\n formField.field?.toLowerCase() === formFieldObj.field?.toLowerCase() ||\n (formField.label && formField.label === formFieldObj.label)\n ) {\n formField = formFieldObj;\n }\n return formField;\n }));\n });\n}\n\nexport function setHyperlinkComponentData (\n { formSections }: IDynamicForm,\n label: string,\n data: any\n){\n formSections?.forEach((section) => {\n let field=section.fields.find((field)=> field.label && field.label===label)\n if(field && field.hyperlink) field.hyperlink.params = data;\n});\n}\n\nexport function setAutoCompleteData(\n values: any[],\n uniqueId: any,\n labelKey: string,\n ValueKey: string,\n){\n if(values?.length > 0){\n values = values?.map((rowValue) => ({[labelKey]: rowValue, [ValueKey]: uniqueId}));\n }\n return values;\n}\n\nexport function setLookupData(\n { formSections }: IDynamicForm,\n field: string,\n data: any\n) {\n formSections?.map((section: IFormSection) => {\n section.fields.map((formField: any) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl &&\n formField.label.labelControl.lookupControl.data &&\n data\n ) {\n formField.label.labelControl.lookupControl.data.data = data;\n }\n if (formField.lookupControl && formField.lookupControl.data && data) {\n formField.lookupControl.data.data = data;\n }\n }\n });\n });\n return formSections;\n}\n\nexport function setSidebarLinkParamValues(link: string, params: any[]): string {\n let newLink: string = link;\n if (params && params.length > 0) {\n params.map((param) => {\n const url = param.name ? '{{' + param.name + '}}' : '';\n if (newLink.localeCompare(url)) {\n newLink = newLink.replace(new RegExp(url, 'ig'), toTrim(param.value));\n }\n });\n }\n return newLink;\n}\n\nexport function addNewFieldInForm(dynamicForm: IDynamicForm, sectionName:string, formField:IFormField){\n const section = dynamicForm?.formSections?.find((section)=> section.name === sectionName);\n if(section){\n section.fields.push(formField);\n }\n return dynamicForm;\n}\n\nexport function setFormFields(\n { formSections }: IDynamicForm,\n formFields: IFormField[]\n) {\n return formSections?.map((section) => {\n return (section.fields = section.fields.map((formField) => {\n let matchedField = formFields.find(\n (x) => x.field?.toLowerCase() == formField.field?.toLowerCase()\n );\n if (matchedField) {\n formField = matchedField;\n }\n return formField;\n }));\n });\n}\n\nexport function getGlobalFilters(\n globalFilters: addGlobalFilter[],\n field: string,\n) {\n let formFieldObj: any;\n globalFilters.map((filter)=>{\n if (filter.field?.toLowerCase() === field?.toLowerCase()) {\n formFieldObj = filter;\n }\n });\n return formFieldObj;\n}\n\nexport function getFormFields(\n { formSections }: IDynamicForm,\n formControl: EFormControl\n): IFormField[] {\n let formFields: IFormField[] = [];\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.control === formControl) {\n if (typeof(formField.value) === 'object' && formField.value?.text && typeof(formField.value.text) === 'string')\n {\n formField.value = formField.value.text.trim();\n }\n else if (formField.value && typeof(formField.value) === 'string')\n {\n formField.value = formField.value.trim();\n }\n formFields.push(formField);\n }\n });\n });\n return formFields;\n}\n\nexport function getFormField(\n { formSections }: IDynamicForm,\n field: string\n): IFormField {\n let formFieldObj: any;\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n formFieldObj = formField;\n }\n });\n });\n return formFieldObj;\n}\n\n// this function is always return a value of the field. If returnDisplayFieldValue is true and displayField\n// exist in the field then always return a displayField value.\nexport function getFormFieldValue(\n { formSections }: IDynamicForm,\n field: string,\n returnDisplayFieldValue:boolean = false\n) {\n let value;\n for (const section of formSections as any) {\n section.fields.forEach((formField: any) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n let isValid = typeof formField.value === 'object' && formField.control !== EFormControl.CALENDAR && returnDisplayFieldValue;\n if (\n (formField.control === EFormControl.LOOKUP_INPUT || formField.control === EFormControl.INPUT) &&\n formField.displayField\n ) {\n value = isValid ? formField.value?.text : formField.value?.value;\n } else {\n value = isValid\n ? formField.value?.text\n : typeof formField.value === 'object' && formField.control !== EFormControl.CALENDAR && formField.control !== EFormControl.MULTISELECT\n ? formField.value?.value\n : formField.value;\n }\n }\n });\n }\n return value;\n}\n\nexport function getFormFieldValueAsString(dynamicForm:IDynamicForm,field:string):string{\n let value:any = getFormFieldValue(dynamicForm,field, true);\n if (value){\n value = value.toString();\n }\n return value;\n}\n\nexport function getSectionFieldValue(\n formSections: IFormSection[],\n field: string\n) {\n let form: IDynamicForm = { formSections };\n return getFormFieldValue(form, field, true);\n}\n\nexport function setSaveFormValues(\n formSections: IFormSection[],\n tables?: string[]\n) {\n let response: any = {};\n if (tables && tables.length > 0) {\n tables.forEach((tableName) => {\n formSections.forEach((formSection) => {\n const sectionFields = formSection.fields?.filter(x => x.control !== EFormControl.CARD);\n\n sectionFields?.forEach((field) => {\n const table = field.tables?.map((table) => table.toLowerCase());\n\n if (table && table.includes(tableName.toLowerCase())) {\n if (!response[tableName]) {\n response[tableName] = {};\n }\n\n if (field.field && field.field.length > 0) {\n response[tableName][field.field] = formatFormFieldCValue(field);\n }\n }\n });\n });\n });\n } else {\n formSections.forEach((formSection) => {\n const sectionFields = formSection.fields?.filter(x => x.control !== EFormControl.CARD);\n sectionFields?.forEach((field) => {\n if (field.field && field.field.length > 0) {\n response[field.field] = formatFormFieldCValue(field);\n }\n });\n });\n }\n\n return response;\n}\n\nexport function setSaveCardValues(\n formSections: IFormSection[],\n tables?: string[]\n) {\n let values: IFormField[] = [];\n formSections?.forEach((section) => {\n section.fields?.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.card.data) {\n field.card.data.forEach((cardData: any) => {\n if (cardData.dynamicForm.formSections) {\n values.push(\n setSaveFormValues(cardData.dynamicForm.formSections, tables)\n );\n }\n });\n }\n });\n });\n return values;\n}\n\nexport function setEditFormFields(data: any, dynamicForm: IDynamicForm) {\n if (data && data.length > 0 && Array.isArray(data)) {\n data.forEach((dataRow) => {\n setEditFormFieldsInfo(dataRow, dynamicForm, data);\n });\n } else {\n setEditFormFieldsInfo(data, dynamicForm);\n }\n}\n\nexport function setFilter(\n field: string,\n value: any,\n matchMode: EMatchMode = EMatchMode.EQUALS,\n operator: EOperator = EOperator.AND,\n) {\n const filter: any = {\n field: field,\n matchMode: matchMode,\n operator: operator,\n value: typeof value === 'object' && (value?.value || value?.text) ? value?.value : value,\n };\n return filter;\n}\n\nexport function setAndFilter(field: string, value: any) {\n return setFilter(field, value, EMatchMode.EQUALS, EOperator.AND)\n}\n\nexport function getOrigDataFieldValue(data: any, propName: string): any {\n let value: any;\n if (data) {\n if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n value = getPropertyValue(data[i], propName);\n if (value) {\n return value;\n }\n }\n } else {\n value = getPropertyValue(data, propName);\n }\n }\n return value;\n}\n\nexport function getOrigDataFieldValueAsString(\n data: any,\n propName: string\n): string {\n let value = getOrigDataFieldValue(data, propName);\n if (value) {\n return value.toString();\n } else {\n return '';\n }\n}\n\nexport function setSectionPropValues(\n { formSections }: IDynamicForm,\n sectionName: string,\n props: IDictionary[]\n) {\n formSections?.map((section) => {\n if (section.name?.toLowerCase() === sectionName.toLowerCase()) {\n props.map((prop) => {\n return setPropValue(section, prop);\n });\n }\n });\n}\n\n/* #endregion */\n\n/* #region private methods */\n\nfunction setEditFormFieldsInfo(data: any, dynamicForm: IDynamicForm | IDynamicCard, allData: any[] = []) {\n if (data.records && data.records.length > 0) {\n data.records.forEach((record: any) => {\n const keys: string[] = Object.keys(record);\n dynamicForm.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((formField: any) => {\n const matchedKey: any = keys.find(\n (x) => x.toLowerCase() === formField.field?.toLowerCase()\n );\n\n if (matchedKey) {\n // set label hyperlink\n setLabelHyperlink(formField, record, keys, allData);\n }\n\n if (\n formField.control === EFormControl.HYPERLINK &&\n formField.hyperlink &&\n ((formField.hyperlink.linkId && formField.hyperlink.params) ||\n formField.hyperlink.link)\n ) {\n let params = formField.hyperlink.params;\n let paramKeys: string[] = [];\n\n if (\n !params &&\n formField.hyperlink.link &&\n formField.hyperlink.link.includes('}}')\n ) {\n paramKeys = formField.hyperlink.link.split('}}');\n paramKeys = paramKeys.map((paramKey) => {\n paramKey = paramKey.replace('{{', '').trim();\n return paramKey;\n });\n paramKeys = paramKeys.filter((x) => x.length > 0);\n } else {\n if(params){\n paramKeys = Object.keys(params);\n }\n }\n\n formField.hyperlink.link = setHyperlink(\n keys,\n record,\n formField.hyperlink.link,\n paramKeys,\n formField.hyperlink.params,\n allData\n );\n } else {\n if (formField.control === EFormControl.CALENDAR && matchedKey) {\n formField.value = formField.timeOnly ? record[matchedKey] : record[matchedKey]\n ? new Date(record[matchedKey] as string)\n : '';\n } else if (formField.control === EFormControl.CARD) {\n if (formField.card && formField.card.formSections) {\n if (!formField.card.data) {\n formField.card.data = data;\n }\n \n setEditFormFieldsInfo(data, formField.card);\n }\n } else if (\n formField.control === EFormControl.AUTOCOMPLETE &&\n matchedKey\n ) {\n let arrayValue = [];\n if (record[matchedKey] && formField.displayField) {\n arrayValue.push({[formField.displayField] : record[matchedKey]});\n }\n formField.value = arrayValue;\n } else if (formField.control === EFormControl.LOOKUP_INPUT || formField.control === EFormControl.INPUT) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl &&\n formField.label.labelControl.lookupControl.data\n ) {\n const obj = autoSetLookupData(\n formField.label.labelControl.lookupControl.data.data,\n record\n );\n if (obj) {\n formField.label.labelControl.lookupControl.data.data = obj;\n }\n }\n\n if (\n formField.lookupControl &&\n formField.lookupControl.data &&\n formField.lookupControl.data.data\n ) {\n const obj = autoSetLookupData(\n formField.lookupControl.data.data,\n record\n );\n if (obj) {\n formField.lookupControl.data.data = obj;\n }\n }\n if(record[matchedKey]){\n formField.value = toTrim(record[matchedKey]);\n }\n if (\n formField.displayField &&\n formField.displayField.length > 0\n ) {\n const matchDisplayField = getMatchKey(\n record,\n formField.displayField\n );\n if (matchDisplayField) {\n formField.value = {\n text: toTrim(record[matchDisplayField]),\n value: formField.value?.value,\n };\n }\n\n const matchValueField = getMatchKey(record, formField.field);\n if (matchValueField) {\n formField.value = {\n text: formField.value?.text,\n value: toTrim(record[matchValueField]),\n };\n }\n }\n } else if (\n formField.control === EFormControl.COMPONENT &&\n formField.componentControl?.data\n ) {\n formField.componentControl.data = findKeysAndValue(\n formField.componentControl.data,\n record\n );\n changeDynamicFormState(\n formField.componentControl.id,\n formField.componentControl?.data\n );\n } else if (\n formField.control === EFormControl.NUMERIC &&\n formField.label?.labelControl?.lookupControl?.data?.data\n ) {\n let setData = formField.label.labelControl.lookupControl;\n setData.data.data = findKeysAndValue(setData.data.data, record);\n changeDynamicFormState(setData.id, setData.data.data);\n } else if (formField.control === EFormControl.HYPERLINK \n && formField.hyperlink?.target === EHyperlink.DIALOG \n && formField.hyperlink.params\n ) {\n formField.hyperlink.params = findKeysAndValue(formField.hyperlink.params, record);\n } else if (matchedKey) {\n if (formField.format) {\n formField.value = formatFormFieldValue(\n formField,\n record[matchedKey]\n );\n } else if (formField.control === EFormControl.CHECKBOX) {\n formField.value =\n record[matchedKey] &&\n (record[matchedKey].toString() === '1' ||\n record[matchedKey].toString() === 'true')\n ? true\n : false;\n }else if (formField.control === EFormControl.DROPDOWN) {\n let dropValue = record[matchedKey];\n formField.value = dropValue\n ? dropValue.toString()\n : dropValue;\n } else {\n formField.value = toTrim(record[matchedKey]);\n }\n }\n }\n });\n }\n });\n });\n }\n}\n\n//set hyperlink param value as field value\nexport function setHyperlinkParamValue(record:any, dynamicForm: IDynamicForm) {\n let keys: string[] = [];\n let link: string ='';\n let paramKeys: string[] = [];\n let param: any;\n let fieldInfo: any;\n dynamicForm.formSections?.forEach((section: any) => {\n section.fields.forEach((formField: any) => {\n if(formField.label && formField.label.labelControl && formField.label.labelControl.hyperlink?.link){\n keys = Object.keys(record);\n if(formField?.label?.labelControl?.orignalLink){\n link = formField.label.labelControl.orignalLink;\n }\n\n if(formField?.label?.labelControl?.hyperlink?.params){\n param = formField.label.labelControl.hyperlink.params;\n paramKeys = Object.keys(param);\n }\n fieldInfo = formField;\n if(record && keys && link && paramKeys && param && fieldInfo){\n fieldInfo.label.labelControl.hyperlink.link = setHyperlink(keys, record, link, paramKeys, param);\n }\n }\n });\n });\n}\n\nexport function objConvertToLower(obj: any) {\n return Object.keys(obj).reduce((accumulator: any, key) => {\n accumulator[key.toLowerCase()] = obj[key];\n return accumulator;\n }, {});\n}\n\nexport function clickSectionHighlight(value: any) {\n document.querySelectorAll('.left-sideBar .p-panelmenu .p-panelmenu-panel');\n const title = document.body?.querySelector('[title = \"'+ value?.name +'\"]');\n const allMenuItems = document.body?.querySelectorAll('.left-sideBar .p-panelmenu-panel');\n allMenuItems?.forEach((menauItem: any) => {\n menauItem?.setAttribute('class', 'p-panelmenu-panel');\n })\n title?.parentElement?.parentElement?.setAttribute('class', 'p-panelmenu-panel active');\n title?.parentElement?.setAttribute('class', 'p-element p-component p-panelmenu-header p-highlight');\n\n const activeIcon = document.body?.querySelectorAll('.active-icon');\n activeIcon?.forEach((icon: any, index: any) => {\n icon?.setAttribute('class', 'p-element p-component p-panelmenu-header p-highlight');\n });\n}\n\nexport function removeActiveIconClass() {\n const activeIcon = document.body?.querySelectorAll('.active-icon');\n if (activeIcon && activeIcon.length > 0) {\n activeIcon?.forEach((icon: any, index: any) => {\n icon?.setAttribute('class','p-element p-component p-panelmenu-header p-highlight');\n });\n }\n}\n\nexport function highlightLeftSidebar(){\n document.querySelector(\".form-container\")?.addEventListener(\"wheel\", () =>{\n const scrollTopPosition: any = document.querySelector(\".form-container\")?.scrollTop;\n const allIconElements: any = document.body.querySelectorAll(\".left-sideBar .p-panelmenu .p-panelmenu-panel\");\n\n allIconElements?.forEach((icon: any, index: any) => {\n icon?.setAttribute('tabIndex', 'section' + index);\n });\n removeActiveIconClass();\n document.querySelectorAll('.form-container .card')?.forEach((card: any, index: any) => {\n const currentId = \"section\" + index;\n if (scrollTopPosition >= card.offsetTop && scrollTopPosition <= card.offsetTop + card.offsetHeight){\n return document.body?.querySelector('[tabIndex='+ currentId + ']')?.setAttribute('class', 'p-panelmenu-panel active');\n } else{\n return document.body?.querySelector('[tabIndex='+ currentId + ']')?.setAttribute('class', 'p-panelmenu-panel'); \n }\n });\n });\n }\n\nexport function findKeysAndValue(data: any, record: any) {\n let valueKey: string = '';\n Object.keys(data).forEach((dataKey) => {\n let valueContainsKey: boolean = false;\n if(data[dataKey] && data[dataKey]?.toString()?.includes('{')){\n valueContainsKey = true;\n valueKey = data[dataKey]?.toString()?.replace(\"{\", \"\")?.replace(\"}\", \"\")\n }\n let key = Object.keys(record).find((key) => valueContainsKey ? (valueKey.toLowerCase() === key.toLowerCase()) : (dataKey.toLowerCase() === key.toLowerCase()));\n if (key && key.length > 0) {\n data = { ...data, [dataKey]: record[key] };\n }\n });\n return data;\n}\n\nexport function setPropValue(obj: any, prop: IDictionary) {\n const matchedKey: string = getMatchKey(obj, prop.name);\n if (matchedKey) {\n return (obj[matchedKey] = prop.value);\n }\n else{\n return( obj[prop.name]=prop.value)\n }\n}\n\nexport function hasRole(role: string): boolean {\n let storage = localStorage.getItem('CurrentUserInfo');\n if (storage) {\n let currentUser = JSON.parse(storage);\n if (currentUser && currentUser.roles && currentUser.roles.length > 0) {\n return currentUser.roles.some((item: any) => item.code.toString().toLowerCase() === role.toLowerCase());\n }\n }\n return false;\n}\n\nfunction setLabelHyperlink(item: any, record: any, keys: string[], allData: any[] = []) {\n if (\n item.label &&\n item.label.labelControl &&\n item.label.labelControl.hyperlink &&\n item.label.labelControl.hyperlink.params\n ) {\n const paramKeys = Object.keys(item.label.labelControl.hyperlink.params);\n const link = item.label.labelControl.hyperlink.link;\n if (item.label.labelControl.hyperlink.link) {\n item.label.labelControl.hyperlink.link = setHyperlink(\n keys,\n record,\n link,\n paramKeys,\n item.label.labelControl.hyperlink.params,\n allData\n );\n }\n }\n}\n\nexport function setHyperlink(\n keys: string[],\n record: any,\n link: string,\n paramKeys: string[],\n params: any,\n allData: any[] = []\n): string {\n let newLink: string = link;\n record = objConvertToLower(record);\n paramKeys.forEach((paramkey) => {\n const param: string = '{{' + paramkey.toLowerCase() + '}}';\n const isParamMatched = newLink.localeCompare(param);\n const paramInRecord = setParamKeyValue(record, allData, paramkey);\n\n if (isParamMatched) {\n let paramValue = params ? params[paramkey] : null;\n if(paramValue === '' && paramInRecord){\n paramValue = '{'+paramkey+'}';\n }\n if (paramValue) {\n const propName = paramValue.toString().replace('{', '').replace('}', '');\n let propValue = record[propName.toLowerCase()];\n \n // in case of prop not found in record then try to find prop in all data array, to get its value \n if (!propValue && allData && allData.length > 0)\n {\n allData.forEach((data)=>{\n //const value = data.records.find((x)=> x[propName]);\n data.records.forEach((allRecord: any)=>{\n let keys = Object.keys(allRecord);\n let matchKey = keys.find((x)=> x.toLowerCase() === propName.toLowerCase());\n if (matchKey){\n propValue = allRecord[matchKey];\n }\n });\n });\n }\n newLink = newLink.replace(new RegExp(param, 'ig'), toTrim(paramValue.toString().includes('{') ? propValue : paramValue));\n \n } else {\n // get param value from api response, if param key exists in it\n const matchedKey: any = keys.find(\n (x) => x.toLowerCase() === paramkey.toLowerCase()\n );\n\n if (matchedKey) {\n paramValue = record[matchedKey];\n if (paramValue) {\n newLink = newLink.replace(\n new RegExp(param, 'ig'),\n toTrim(paramValue)\n );\n } else {\n newLink = newLink.replace(new RegExp(param, 'ig'), toTrim(''));\n }\n }\n }\n }\n });\n // replace the {{param}} with empty\n if(newLink && newLink.includes(\"{{\") && newLink.includes(\"}}\")){\n newLink = newLink?.replace(/{+.*?}+/g, \"\");\n }\n return newLink;\n}\n\n// its checking if there is no value in hyperlink param then it set key as a paramValue\nfunction setParamKeyValue(record: any, allData: any[] = [], paramkey: any){\n let paramValue: boolean = false;\n if(allData && allData.length > 0){\n allData.forEach((data: any)=>{\n if(data.records && data.records.length > 0){\n data.records.forEach((allRecord: any) =>{\n if(paramValue === false){\n paramValue = Object.keys(allRecord).some((record)=> record.toLowerCase() === paramkey.toLowerCase());\n };\n });\n };\n });\n }else{\n paramValue = Object.keys(record).some((x)=> x === paramkey.toLowerCase());\n }\n return paramValue;\n}\n\nfunction getPropertyValue(data: any, propName: string) {\n let propValue: any;\n data.records?.forEach((record: any) => {\n for (const [key, value] of Object.entries(record)) {\n if (key && propName && key.toLowerCase() === propName.toLowerCase()) {\n propValue = value;\n }\n }\n });\n return propValue;\n}\n\nfunction formatFormFieldCValue(field: any) {\n if (\n field.format?.type === EFormatType.BOOLEAN_YN &&\n field.format?.formatter?.name === 'toBoolean'\n ) {\n return (field.value === 1 || field.value === true) ? 'Y' : 'N';\n } else if (\n field.control === EFormControl.CALENDAR &&\n (field.value || field.value === '')\n ) {\n if(field.timeOnly && field.saveAsString){\n field.value = field.value;\n }else{\n field.value =\n field.showTime === true\n ? toShortDateTime(field.value, field.format)\n : toShortDate(field.value, field.format)\n }\n return field.value;\n } else if (\n (field.control === EFormControl.LOOKUP_INPUT || field.control === EFormControl.INPUT) &&\n field.value &&\n typeof field.value === 'object'\n ) {\n return field.value.value == undefined ? null : field.value.value;\n } else if (\n field.label &&\n field.label.labelControl &&\n field.label.labelControl.control === EFormControl.LOOKUP_INPUT &&\n field.value &&\n typeof field.value === 'object'\n ) {\n return field.value.value;\n } else {\n field.value = field.value == undefined ? null : field.value;\n return field.value;\n }\n}\n\nexport function autoSetLookupData(\n fieldData: any,\n response: any\n) {\n let obj = {};\n let record = setDataFields([response]);\n if (record && record.length > 0) {\n record.forEach((x: any) => {\n record = x;\n });\n }\n if (fieldData && record) {\n Object.entries(fieldData).forEach(([dataKey, dataValue]: any) => {\n let rowKeys = Object.keys(record);\n let key = rowKeys?.find((x) => x?.toLowerCase() === dataKey?.toString()?.toLowerCase());\n let value = rowKeys?.find(\n (x) => dataValue && dataValue?.toString().includes('{') && x?.toLowerCase() === dataValue?.toString()?.toLowerCase()?.replace(\"{\", \"\")?.replace(\"}\", \"\")\n );\n if (value && value.length > 0) {\n obj = { ...obj, [dataKey]: record[value.toLowerCase()] };\n } else if (key && key.length > 0) {\n obj = { ...obj, [dataKey]: record[key.toLowerCase()] };\n } else {\n obj = { ...obj, [dataKey]: dataValue };\n }\n });\n return obj;\n } else {\n return null;\n }\n}\n\nexport function setGridLookupData(column: IGridColumn[], field: string, data: any){\n let obj = column.find((x)=> x.field?.toLowerCase() === field.toLowerCase());\n if(obj && obj.lookupControl?.data){\n obj.lookupControl.data.data = data;\n }\n}\n\nexport function setDataFields(response: any[]) {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any, index: number) => {\n const result = Object.keys(x).reduce(\n (prev, current) => ({ ...prev, [current.toLowerCase()]: x[current] }),\n {}\n );\n\n data.push(result);\n });\n }\n return data;\n}\n\nexport function setDialogResponse(\n formField: any,\n formData: any,\n response: any\n) {\n let value: any;\n if (response) {\n // if selectedValue does not exist then consider valueField as selectedValue\n if (\n formData &&\n formData.data &&\n formData.data.labelProp &&\n !formData.data.valueProp\n ) {\n formData.data.valueProp = formData.data.labelProp;\n }\n else if (\n formData &&\n formData.data &&\n formData.data.valueProp &&\n !formData.data.labelProp\n ) {\n formData.data.labelProp = formData.data.valueProp;\n }\n\n const matchValueKey: string = getMatchKey(\n response,\n formData?.data?.valueProp\n );\n const matchFieldKey: string = getMatchKey(\n response,\n formData?.data?.labelProp\n );\n\n if (\n formData?.data &&\n formData?.data.valueProp &&\n formData?.data.labelProp\n ) {\n let valueProp = response[matchValueKey];\n let matchText = response[matchFieldKey];\n if (typeof valueProp === 'string' && typeof matchText === 'string') {\n valueProp = valueProp.trim();\n matchText = matchText.trim();\n }\n value = { text: matchText, value: valueProp };\n } else {\n const FieldKey: string = getMatchKey(response, formField.field);\n let value = response[FieldKey];\n if (value) {\n value = value?.toString()?.trim();\n }\n }\n }\n return value;\n}\n\nexport function currentUrl():string{\n let currentRoute: string = '';\n let url = window.location.href;\n if(url){\n let arr = url.split('/');\n currentRoute = arr[arr.length-1]\n } \n return currentRoute;\n}\n\nexport function getGridFilters(){\n let filters: any = [];\n let gridFilters = currentUrl();\n if(gridFilters && gridFilters.length > 0){\n const localFilter = JSON.parse(localStorage.getItem('SetFilters-'+gridFilters) as any);\n filters = localFilter?.filters;\n }\n return filters;\n}\n\n//update the hidden or disabled and value based off other global filters.\nexport function setGlobalFilterPropValues(\n globalFilter: IGlobalFilter[],\n field: string,\n props: IFilterDictionary[],\n) {\n return globalFilter.map((filter: any) => {\n if (\n (filter.field && filter.field.toLowerCase() === field?.toLowerCase()) ||\n (filter.displayText &&\n filter.displayText.toLowerCase() === field?.toLowerCase())\n ) {\n props?.map((prop: IFilterDictionary) => {\n if (filter.hasOwnProperty(prop.propName)) {\n return (filter[prop.propName] = prop.propValue);\n } else if (prop.propValue && prop.propValue.length > 0) {\n return (filter.value = prop.propValue);\n }\n });\n }\n });\n}\n\nexport function setCardFieldsData(form: any) {\n if (form && form.dynamicform) {\n const { dynamicform, ...newData } = form;\n dynamicform?.formSections?.forEach((section: any) => {\n section.fields?.forEach((field: any) => {\n if (newData) {\n setEditFormFields({ records: [newData] }, dynamicform);\n }\n });\n });\n }\n}\n\n// disable Grid EditableRow Column\nexport function disableEditRowColumn(columns: IGridColumn[], field: string): IGridColumn[] {\n if (field && columns && columns.length > 0) {\n let obj = columns.find((x) => x.field?.toLowerCase() === field.toLowerCase());\n let disableObj = { ...obj, disabled: true };\n const index = columns.findIndex((i: any) => i.field.toLowerCase() === field.toLowerCase());\n if (index !== -1) columns[index] = disableObj;\n }\n return columns;\n}\n\n// enabled Grid EditableRow Column\nexport function enabledEditRowColumn(columns: IGridColumn[], field: string): IGridColumn[] {\n if (field && columns && columns.length > 0) {\n let obj = columns.find((x) => x.field?.toLowerCase() === field?.toLowerCase());\n let enableObj = { ...obj, disabled: false };\n const index = columns.findIndex((i: any) => i.field?.toLowerCase() === field?.toLowerCase());\n if (index !== -1) columns[index] = enableObj;\n }\n return columns;\n}\n\n // check the Minutes Interval\n export function setMinutesInterval(value: any){\n if (value) {\n const min = value.getMinutes().toString();\n if (min) {\n value = value.setMinutes(0);\n }\n }\n return value;\n}\n\n // update the response records\n export function setUpdatedRecord(records: any[], rowData: any, dataKey: string): any[]{\n const index = records?.findIndex((record)=> record[dataKey?.toLowerCase()] == rowData[dataKey?.toLowerCase()]);\n if(index > -1){\n records[index] = rowData;\n }else{\n records.push(rowData);\n }\n return records;\n}\n\n//convert the time into date\nexport function setTimeInDate(time: any) {\n const convertTime12to24 = (time12h: any) => {\n const [time, modifier] = time12h?.toString()?.split(' ');\n let [hours, minutes] = time?.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (modifier === 'PM') {\n hours = parseInt(hours, 10) + 12;\n }\n return `${hours}:${minutes}`;\n };\n const date = convertTime12to24(time);\n const tempDate = new Date('July 1, 1999, ' + date + ':00');\n const futureDate = new Date();\n futureDate.setTime(tempDate.getTime());\n return futureDate;\n}\n\n// return the data of the field \nexport function getFieldData({ formSections }: any, field: string){\n let data: any = []\n if(formSections?.length > 0 && field){\n formSections.forEach((section: any)=>{\n if(section.fields.some((formField:any)=> formField.field?.toLowerCase() == field.toLowerCase())){\n data=section.fields.find((formField:any)=> formField.field?.toLowerCase() == field.toLowerCase())?.data\n }\n })\n }\n return data;\n}\n\nexport function setAllFormFieldsValues(\n { formSections }: IDynamicForm,\n props: IFilterDictionary[]\n) {\n formSections?.map((section: IFormSection) => {\n if (section) {\n section.fields.map((formField: any) => {\n return props.map((prop: IFilterDictionary) => {\n if (formField) {\n return (formField[prop.propName] = prop.propValue);\n }\n });\n });\n }\n });\n}\n\n// returns the response header fileName\nexport function getResponseHeaderFileName(response){\n const header = response?.headers?.get('Content-Disposition');\n return header?.split('filename=')?.[1]?.split(\";\")[0]?.replaceAll(/\\\"/g, '');\n}\n\n export function draggableDialog(id:any){\n setTimeout(() => {\n const dialog = document.getElementsByClassName('p-dialog')\n dialog[0]?.setAttribute('id','mydiv' + id)\n const dialogheader = document.getElementsByClassName('p-dialog-header')\n dialogheader[0]?.setAttribute('id','mydivheader' + id)\n const elmnt = document.getElementById('mydiv' + id);\n\n let pos1 = 0,\n pos2 = 0,\n pos3 = 0,\n pos4 = 0;\n \n const dragMouseDown = (e) => {\n e = e || window.event;\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n document.onmousemove = elementDrag;\n };\n \n const elementDrag = (e) => {\n e = e || window.event;\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n elmnt.style.top = elmnt?.offsetTop - pos2 + 'px';\n elmnt.style.left = elmnt?.offsetLeft - pos1 + 'px';\n };\n \n const closeDragElement = () => {\n document.onmouseup = null;\n document.onmousemove = null;\n };\n \n if (document.getElementById('mydivheader' + id)) {\n document.getElementById('mydivheader' + id).onmousedown = dragMouseDown;\n } else {\n elmnt.onmousedown = dragMouseDown;\n }\n }, 100);\n } \nexport function calenderMinMaxValue(item: any,value: any, index){\n let validation: string = 'equal';\n var validDate = new Date(item.validations[index].expression);\n var currentDate = new Date(value);\n if (validDate.getTime() < currentDate.getTime()){\n validation = 'greater';\n }\n else if (validDate.getTime() > currentDate.getTime()){\n validation = 'minimum';\n }\n return validation;\n}\n/* #endregion */\n","import { Injectable } from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport { IAutoCompleteSave, IDropDownRequest } from '../models/form.model';\nimport { DatePipe } from '@angular/common';\nimport {\n EGridSortDirection,\n GridFilterControlType,\n IGlobalFilter,\n IGridFilter,\n IGridSort,\n EGridColumnType,\n addColumn,\n addFilterColumn,\n addGlobalFilter,\n IGridColumn,\n EGridValidator,\n IGridProp,\n IGridPropFilter,\n IGridRowProp,\n IGridReportBtn,\n EGridRowAction,\n IDialogColumn,\n EGridFormatter,\n} from '../models/grid.model';\nimport { AlertService } from './alert.service';\nimport { DropdownService } from './dropdown.service';\nimport { HyperlinkService } from './hyperlink.service';\nimport * as utilities from './utilities.service';\nimport { RequestService } from './request.service';\nimport { IDictionary } from '../models/common.model';\nimport { ActivatedRoute } from '@angular/router';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridService {\n softCachingFilters: any = {};\n applyFilterEvent: boolean = true;\n public columnFocusedOut: boolean = false;\n constructor(\n public datepipe: DatePipe,\n private hyperlinkService: HyperlinkService,\n private dropdownService: DropdownService,\n private alertService: AlertService,\n private requestService: RequestService,\n private route: ActivatedRoute,\n ) {}\n\n /**\n *\n * @param event\n * Receives lazy event and returns after proper mapping\n */\n getGridFilters(event: LazyLoadEvent, columns: IGridColumn[]): IGridFilter[] {\n const filters = this.mapFilters(event, columns);\n return this.handleMultiFilterField(filters);\n }\n\n /**\n * @param filters\n * Receives filters and returns array after removing duplicates\n * and creating comma separated values for same filters\n */\n handleMultiFilterField(filters: IGridFilter[]): IGridFilter[] {\n return filters\n .map((x, i, arr) =>\n arr.some(\n (y, idx) =>\n y.field?.toLowerCase() === x.field?.toLowerCase() && i !== idx\n )\n ? {\n ...x,\n value: arr\n .filter(\n (z) => z.field?.toLowerCase() === x.field?.toLowerCase()\n )\n .map((a) => a.value)\n .join(),\n }\n : x\n )\n .filter((f, i, arr) => arr.findIndex((x) => x.value === f.value) === i);\n }\n\n // Prepare basic grid filters\n prepareBasicFilters(\n event: LazyLoadEvent,\n columns: IGridColumn[]\n ): IGridFilter[] {\n return this.mapFilters(event, columns);\n }\n\n /**\n * Checks if filters has values then converts global filter values type into IGridFilter.\n */\n prepareGlobalFilters(globalFilters: IGlobalFilter[]): IGridFilter[] {\n const globalData: IGridFilter[] = [];\n\n globalFilters?.forEach((filter: IGlobalFilter) => {\n if (\n ((typeof filter.value === 'string' || Array.isArray(filter.value)) &&\n filter.value.length) ||\n (typeof filter.value !== 'string' &&\n !Array.isArray(filter.value) &&\n filter.value) ||\n (typeof filter.value === 'boolean' && filter.value !== null) ||\n filter.type === GridFilterControlType.CALENDAR_RANGE\n ) {\n if (\n filter.type === GridFilterControlType.CALENDAR_RANGE &&\n filter.value?.toString()?.includes('|')\n ) {\n // add filter for start date\n globalData.push({\n field: this.setGlobalFilterField(filter),\n matchMode: filter.matchMode ? filter.matchMode : 'gte',\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter),\n tableAlias: filter.tableAlias,\n });\n\n // add filter for end date\n globalData.push({\n field: this.setGlobalFilterField(filter, false),\n matchMode: filter.matchMode ? filter.matchMode : 'lte',\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter, false),\n tableAlias: filter.tableAlias,\n });\n } else if (filter.type !== GridFilterControlType.CALENDAR_RANGE) {\n globalData.push({\n field: this.setGlobalFilterField(filter),\n matchMode:\n filter.type === GridFilterControlType.MULTISELECT\n ? 'in'\n : filter.matchMode,\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter),\n tableAlias: filter.tableAlias,\n });\n }\n }\n });\n return globalData;\n }\n\n setGlobalFilterField(filter: any, isStartDate: boolean = true): string {\n if (filter.type === GridFilterControlType.CALENDAR_RANGE) {\n if (isStartDate) {\n return filter.fromField;\n } else {\n return filter.toField;\n }\n } else {\n return filter.field;\n }\n }\n\n // set global filter value\n setGlobalFilterValue(\n filter: IGlobalFilter,\n isStartDate: boolean = true\n ): string | number | Date | boolean {\n switch (filter.type) {\n case GridFilterControlType.MULTISELECT:\n return (filter.value as any[]).join(',');\n case GridFilterControlType.CALENDAR:\n return this.getFormattedDate(filter.value as Date);\n case GridFilterControlType.CALENDAR_RANGE:\n let dateValues: string[] = filter.value\n ? filter.value.toString().split('|')\n : [];\n if (dateValues && dateValues.length == 2) {\n let dateValue: Date = isStartDate\n ? new Date(dateValues[0])\n : new Date(dateValues[1]);\n return this.getFormattedDate(dateValue);\n } else {\n return '';\n }\n case GridFilterControlType.CHECKBOX:\n return filter.value ? true : false;\n default:\n return filter.value as string;\n }\n }\n\n checkValidity(columns: IGridColumn[], row: any) {\n let isValid: boolean = true;\n columns.map((item: any) => {\n if (item.validations && !item.disabled) {\n item.errorMessage = '';\n item.isvalid = true;\n for (let i = 0; i < item.validations.length; i++) {\n const minMaxValidDate = utilities.calenderMinMaxValue(\n item,\n row[item.field],\n i\n );\n const valid = item.validations && item.header;\n if (\n item.validations[i].type == EGridValidator.REQUIRED &&\n !row[item.field] &&\n !item.hidden &&\n valid\n ) {\n isValid = row[item.field]\n ? true\n : this.setErrorMessage(item, `${valid} is required`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MINLENGTH &&\n row[item.field].length < item.validations[i].expression\n ) {\n isValid =\n row[item.field] &&\n row[item.field].length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Minimum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXLENGTH &&\n row[item.field].length > item.validations[i].expression\n ) {\n isValid =\n row[item.field] &&\n row[item.field].length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Maximum ${item.validations[i].expression} characters`\n );\n break;\n } \n else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXOPTIONS \n\n ) {\n var options:number=1;\n var value=row[item.field];\n for (var x = 0; x < value.length - 1; x++) {\n if (value[x] == ';') {\n options++;\n }\n }\n //blue;red;green max=3\n isValid =\n // row[item.field] &&\n options <= item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} maximum ${item.validations[i].expression} option${item.validations[i].expression>1?'s':''}`\n );\n break;\n }\n \n else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MINIMUM &&\n isValid\n ) {\n if (item.type === EGridColumnType.DATE) {\n isValid =\n minMaxValidDate === 'minimum'\n ? this.setErrorMessage(\n item,\n `Minimum ${valid} ${item.validations[i].expression}`\n )\n : true;\n } else if (row[item.field] < item.validations[i].expression) {\n isValid =\n row[item.field] &&\n row[item.field].length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Minimum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXIMUM &&\n isValid\n ) {\n if (item.type === EGridColumnType.DATE) {\n isValid =\n minMaxValidDate === 'greater'\n ? this.setErrorMessage(\n item,\n `Maximum ${valid} ${item.validations[i].expression}`\n )\n : true;\n } else if (row[item.field] > item.validations[i].expression) {\n isValid =\n row[item.field] &&\n row[item.field].length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Maximum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.PATTERN &&\n !row[item.field].match(item.validations[i].expression)\n ) {\n isValid =\n row[item.field] &&\n row[item.field].match(item.validations[i].expression)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.NUMERIC &&\n !row[item.field].toString().match(/^(0|[-()1-9]\\d*)$/)\n ) {\n isValid =\n row[item.field] && row[item.field].match(/^(0|[1-9]\\d*)$/)\n ? true\n : this.setErrorMessage(\n item,\n `Enter ${item.validations[i].type} for ${valid}`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.PHONE &&\n !row[item.field]?.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]?.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.DECIMAL &&\n !row[item.field]?.toString().match(/^(0|[-()1-9]\\d*)(\\.\\d+)?$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]?.toString().match(/^(0|[1-9]\\d*)(\\.\\d+)?$/)\n ? true\n : this.setErrorMessage(\n item,\n `Enter ${item.validations[i].type} for ${valid}`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.EMAIL &&\n !row[item.field]\n ?.toString()\n .match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]\n ?.toString()\n .match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n }\n }\n }\n });\n return isValid;\n }\n\n setErrorMessage(item: IGridColumn, errorMessage: string): boolean {\n item.errorMessage = errorMessage;\n item.isvalid = false;\n return false;\n }\n\n // set basic filter value\n setBasicFilterValue(filter: any): any {\n if (filter instanceof Date) {\n return this.getFormattedDate(filter);\n } else if (typeof filter === 'boolean') {\n return filter ? 1 : 0;\n } else {\n return filter;\n }\n }\n\n /**\n *\n * @param param\n * Receives lazy event and returns sort array\n */\n getGridSorts(\n { multiSortMeta }: LazyLoadEvent,\n columns: IGridColumn[]\n ): IGridSort[] {\n return (multiSortMeta || []).map(({ field, order }, i): any => ({\n field,\n direction: order > 0 ? EGridSortDirection.ASC : EGridSortDirection.DESC,\n priority: i + 1,\n tableAlias: this.setTableAlias(field, columns),\n }));\n }\n\n /**\n *\n * @param event\n * Handles default and lookup filters\n */\n mapFilters(event: any, columns: IGridColumn[]): IGridFilter[] {\n const filters: IGridFilter[] = [];\n Object.entries(event.filters).forEach(([field, value]: any) => {\n if (Array.isArray(value)) {\n (value as IGridFilter[]).forEach(\n ({ matchMode, operator, value: filter }) => {\n if (filter !== null) {\n filters.push({\n field,\n matchMode,\n operator,\n value: this.setBasicFilterValue(filter),\n tableAlias: this.setTableAlias(field, columns),\n });\n }\n }\n );\n } else {\n if (value.value !== '') {\n switch (typeof value.value) {\n case 'boolean':\n filters.push({\n field,\n matchMode: 'equals',\n operator: 'and',\n value: value.value ? true : false,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'string':\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'number':\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'object':\n if (value.value instanceof Date) {\n filters.push({\n field,\n matchMode: 'equal',\n operator: 'and',\n value:\n value.value instanceof Date\n ? this.getFormattedDate(value.value)\n : value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n } else {\n (value.value || []).forEach((x: any) => {\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: x.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n });\n }\n break;\n default:\n null;\n }\n }\n }\n });\n return filters;\n }\n\n /**\n *\n * @param event\n * Receives lazy event and returns page number\n */\n getGridPagination(event: any): number {\n return isNaN(event.first / event.rows) ? 1 : event.first / event.rows + 1;\n }\n\n // get formatted date\n getFormattedDate(value: Date): string {\n return new Date(`${value} Z`).toISOString().slice(0, 10);\n }\n\n // change row key and value when using setGridRowPropValue function\n setRowValue(rowData: any) {\n Object.keys(rowData)?.forEach((row) => {\n const rowObj = row+'_obj';\n if(row === EGridRowAction.DELETEBTN || row === EGridRowAction.EDITBTN){\n delete rowData[row];\n }\n else if (\n rowData[rowObj] &&\n typeof(rowData[rowObj]) === 'object'\n ) {\n delete rowData[rowObj];\n }\n });\n return rowData;\n }\n\n // convert row actions object into simple value\n setGridRowData(rowData){\n if(Array.isArray(rowData)){\n rowData.forEach((row)=>{\n row = this.setRowValue(row);\n })\n } else {\n rowData = this.setRowValue(rowData);\n }\n return rowData;\n }\n\n // get allowSave true row list\n getAllowSaveRowlist(rowsData: any[] = [], columns: IGridColumn[]) {\n rowsData = this.setDataFields(rowsData);\n columns.forEach((column: IGridColumn) => {\n let field = column?.field?.toLowerCase();\n rowsData.forEach((row)=>{\n row = this.removeRowObj(row, field, columns);\n })\n if (column.allowSave === false) {\n rowsData.forEach((row) => {\n let obj = Object.keys(row);\n if (obj?.length > 0) {\n obj.forEach((x) => {\n if (x.includes('_obj') && typeof row[x] === 'object') {\n delete row[x];\n }\n })\n }\n delete row[field];\n row = this.setRowValue(row);\n })\n } else if (column.formatter && column.type === EGridColumnType.BOOLEAN) {\n rowsData.forEach((row) => {\n let value = row[field]\n if (column.formatter === EGridFormatter.CHAR) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? 'Y' : 'N';\n } else if (column.formatter === EGridFormatter.NUMERIC) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? '1' : '0';\n } else if (column.formatter === EGridFormatter.BOOLEAN) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? true : false;\n }\n })\n } else if (column.type === EGridColumnType.DATE) {\n //convert date into time format\n rowsData.forEach((row) => {\n if (column.timeOnly && column.saveAsString) {\n row[field] = this.datepipe.transform(row[field], 'hh:mm a');\n } else if (!column.timeOnly && column.showTime) {\n row[field] = this.datepipe.transform(row[field], 'yyyy-MM-dd HH:mm:ss');\n } else if (row[field] && !column.timeOnly && column.saveAsString) {\n row[field] = row[field].toLocaleDateString();\n }\n })\n }\n })\n return rowsData;\n }\n\n // get allowSave true || undefine row\n getAllowSaveRow(rowInfo: {} = {}, columns: IGridColumn[]) {\n let row = { ...rowInfo };\n row = utilities.objConvertToLower(row);\n row = this.setRowValue(row);\n columns.forEach((column) => {\n let field = column?.field?.toLowerCase();\n row = this.removeRowObj(row, field, columns);\n if (column.allowSave == false) {\n const keys = Object.keys(row)\n keys.forEach((x) => {\n if (x.includes('_obj') && typeof row[x] === 'object') {\n delete row[x];\n }\n })\n const key = keys.find((x) => x.toLowerCase() === column.field?.toLowerCase());\n if (key) {\n delete row[key];\n }\n } else if (column.formatter && column.type === EGridColumnType.BOOLEAN) {\n let value = row[field]\n if (column.formatter === EGridFormatter.CHAR) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? 'Y' : 'N';\n } else if (column.formatter === EGridFormatter.NUMERIC) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? '1' : '0';\n } else if (column.formatter === EGridFormatter.BOOLEAN) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? true : false;\n }\n } else if (column.type === EGridColumnType.DATE) {\n //convert date into time format\n if (column.timeOnly && column.saveAsString) {\n row[field] = this.datepipe.transform(row[field], 'hh:mm a');\n } else if (!column.timeOnly && column.showTime) {\n row[field] = this.datepipe.transform(row[field], 'yyyy-MM-dd HH:mm:ss');\n } else if (row[field] && !column.timeOnly && column.saveAsString) {\n row[field] = row[field].toLocaleDateString();\n }\n }\n })\n return row;\n }\n\n // remove obj, data and secondtype data from row\n removeRowObj(row, field, columns: IGridColumn[]){\n let keys = Object.keys(row);\n if(keys?.length > 0){\n keys.forEach((key)=>{\n if(key === field + '-data' || key === field + '_secondType' || key === field + '_obj'){\n delete row[key];\n }\n })\n }\n row = this.removeExtraNewRowObj(row, columns)\n return row;\n }\n\n removeExtraNewRowObj(row, columns: IGridColumn[]){\n const keys = Object.keys(row);\n if(columns?.length > 0 && keys?.length > 0){\n keys.forEach((key)=>{\n const matchKey = columns.some((column)=> column.field?.toLowerCase() === key?.toLowerCase())\n if(!matchKey){\n delete row[key];\n }\n })\n }\n return row;\n }\n\n // add simple grid column without\n addColumn(columnInfo: addColumn): IGridColumn {\n if (columnInfo.type === EGridColumnType.DROPDOWN) {\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n } else if (columnInfo.type === EGridColumnType.DIALOG) {\n if (!columnInfo.filtering && !columnInfo.filter) {\n columnInfo.filtering = false;\n }\n if (columnInfo.params && !columnInfo.data) {\n columnInfo.data = columnInfo.params;\n }\n }\n const column: IGridColumn = {\n allowToggle: columnInfo.allowToggle || false,\n allowSearch: columnInfo.allowSearch,\n allowAutoCompleteSave: columnInfo.allowAutoCompleteSave,\n uniqueKey: columnInfo.uniqueKey,\n field: columnInfo.field,\n header: columnInfo.header,\n style: columnInfo.style,\n type: columnInfo.type,\n format: columnInfo.format,\n data: columnInfo.data,\n filterValue:columnInfo.filterValue,\n filtering: columnInfo.filtering,\n hidden: columnInfo.hidden,\n sorting: columnInfo.sorting,\n filter: columnInfo.filter,\n hyperlink: columnInfo.hyperlink,\n tableAlias: columnInfo.tableAlias,\n linkId: columnInfo.linkId,\n minutesInterval: columnInfo.minutesInterval,\n params: columnInfo.params,\n showOption: columnInfo.showOption,\n displayText: columnInfo.displayText,\n target: columnInfo.target,\n disabled: columnInfo.disabled,\n allowSave: columnInfo.allowSave,\n allowEdit: columnInfo.allowEdit,\n editable: columnInfo.editable,\n editLink: columnInfo.editLink,\n saveAsString: columnInfo.saveAsString,\n component: columnInfo.component,\n onClick: columnInfo.onClick,\n onReturn: columnInfo.onReturn,\n onFocusOut: columnInfo.onFocusOut,\n onChange: columnInfo.onChange,\n aggregate: columnInfo.aggregate,\n formatter: columnInfo.formatter,\n permissions: columnInfo.permissions,\n optionLabel: columnInfo.optionLabel,\n optionValue: columnInfo.optionValue,\n dropDownProp: columnInfo.dropDownProp,\n showTime: columnInfo.showTime,\n timeOnly: columnInfo.timeOnly,\n lookupControl: columnInfo.lookupControl,\n displayField: columnInfo.displayField,\n icon: columnInfo.icon,\n color: columnInfo.color,\n id: columnInfo.id,\n value: columnInfo.value,\n validations: columnInfo.validations,\n };\n\n return column;\n }\n\n // Adding Report Button Function for Grid\n addReportBtn(columnInfo: IGridReportBtn) {\n columnInfo.type = EGridColumnType.REPORT;\n return columnInfo;\n }\n\n // add simple input grid column\n addInputColumn(\n filterColumnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n filterColumnInfo.filter = {\n type: GridFilterControlType.INPUT,\n showFilter: this.showFilterIcon(filterColumnInfo),\n };\n }\n return this.addColumn(filterColumnInfo);\n }\n\n // add simple numeric grid column without\n addNumericColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.NUMERICINPUT,\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n columnInfo.type = EGridColumnType.NUMERIC;\n return this.addColumn(columnInfo);\n }\n\n // add simple calendar grid column without\n addCalendarColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.CALENDAR,\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n columnInfo.type = columnInfo.type ? columnInfo.type : EGridColumnType.DATE;\n return this.addColumn(columnInfo);\n }\n\n setconfigdata(config: any) {\n let configData: any = {};\n if (config?.data && Object.keys(config?.data)?.length > 0) {\n configData = config;\n } else {\n this.route.queryParams.subscribe((param: any) => {\n if (param && Object.keys(param)?.length > 0) {\n configData['data'] = param;\n }\n })\n }\n return configData;\n }\n \n\n // add simple boolean grid column without\n addBooleanColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n (columnInfo.type = EGridColumnType.BOOLEAN),\n (columnInfo.filter = {\n type: GridFilterControlType.CHECKBOX,\n showFilter: this.showFilterIcon(columnInfo),\n });\n }\n return this.addColumn(columnInfo);\n }\n\n // add LookUp column for Grid\n addLookUpColumn(columnInfo: IDialogColumn, showFilter: boolean = true): IGridColumn {\n if (showFilter) {\n columnInfo.filter = { type: GridFilterControlType.LOOKUP_INPUT, showFilter: this.showFilterIcon(columnInfo) };\n }\n columnInfo.type = EGridColumnType.LOOKUP_INPUT;\n return this.addColumn(columnInfo);\n}\n\n// add dialog column for Grid\n addDialogColumn(columnInfo: IDialogColumn, showFilter: boolean = true): IGridColumn {\n if (showFilter) {\n columnInfo.filter = { type: GridFilterControlType.INPUT, showFilter: this.showFilterIcon(columnInfo) };\n }\n columnInfo.type = EGridColumnType.DIALOG;\n return this.addColumn(columnInfo);\n }\n\n // add Button for grid column\n addButtonColumn(columnInfo: addColumn): IGridColumn {\n columnInfo.type = EGridColumnType.ADD_BUTTON;\n if (!columnInfo.field) {\n columnInfo.field = columnInfo.value ? columnInfo.value : columnInfo.icon;\n }\n return this.addColumn(columnInfo);\n }\n\n // add AutoComplete for grid column\n addAutoComplete(columnInfo: addColumn): IGridColumn {\n columnInfo.type = EGridColumnType.AUTOCOMPLETE;\n return this.addColumn(columnInfo);\n }\n\n // Search AutoComplete Data for Grid\n getAutoCompleteData(\n column?: any,\n uniqueKey?: string,\n filters?: any[],\n search: string = ''\n ): any {\n this.requestService\n .get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters })\n .subscribe((response: any) => {\n if (search) {\n let existInRecord = response.records?.some(\n (record) =>\n record[column.displayField] &&\n record[column.displayField]?.toString()?.toLowerCase() ===\n search?.toLowerCase()\n );\n if (!existInRecord) {\n response.records.unshift({ [column.displayField]: search });\n }\n }\n column.data = this.setDataFields(response.records);\n });\n }\n async addAutoCompleteValue(uniqueKey: IAutoCompleteSave, value:any, column:any, row:any) {\n let newValue = {}\n\n for(var i =0;i<uniqueKey.values.length; i++){\n if(uniqueKey.values[i].name.toLowerCase()==column.field?.toLowerCase()||uniqueKey.values[i].name.toLowerCase()==column.displayField?.toLowerCase()){\n newValue[uniqueKey.values[i].name]=value;\n \n }else{\n newValue[uniqueKey.values[i].name]=this.getSoftCodingValue(uniqueKey.values[i].value, row)\n } \n }\n\n\n this.requestService\n .get<any[], any>('/Data/Save', { uniqueKey:uniqueKey.name, values: newValue })\n .subscribe((response: any) => {\n ({error})=>{\n return error\n }\n return 'success';\n });\n }\n getSoftCodingValue(value, row){\n let returnValue;\n if(value.toString().includes('{')&&value.toString().includes('}')){\n value=value.replace(\"{\",\"\").replace(\"}\",\"\");\n let rowKeys = Object.keys(row);\n let key = rowKeys?.find((x) => x?.toLowerCase() === value?.toString()?.toLowerCase());\n returnValue=row[key];\n }else{\n returnValue=value\n }\n return returnValue;\n }\n\n // add simple dropdown grid column without\n addDropdownColumn(\n columnInfo: addColumn,\n showFilter: boolean = true,\n dropDownProp?: IDropDownRequest\n ): IGridColumn {\n columnInfo.type = EGridColumnType.DROPDOWN;\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.DROPDOWN,\n data:\n !columnInfo?.filter?.data && !dropDownProp && columnInfo.data\n ? columnInfo.data\n : columnInfo?.filter?.data\n ? columnInfo?.filter?.data\n : [],\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n if (dropDownProp) {\n columnInfo.dropDownProp = dropDownProp;\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters = dropDownProp.filters;\n if (uniqueKey && valueProp && labelProp) {\n return this.setDropdownData(\n columnInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters\n );\n }\n } else {\n return this.addColumn(columnInfo);\n }\n }\n // add MultiSelectDropDown grid column\n addMultiSelectDropDownColumn(\n columnInfo: addColumn,\n showFilter: boolean = true,\n multiSelectProp?: IDropDownRequest\n ): IGridColumn {\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n columnInfo.type = EGridColumnType.MULTISELECT;\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.MULTISELECT,\n data:\n !columnInfo?.filter?.data && !multiSelectProp && columnInfo.data\n ? columnInfo.data\n : columnInfo?.filter?.data\n ? columnInfo?.filter?.data\n : [],\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n if (multiSelectProp) {\n columnInfo.dropDownProp = multiSelectProp;\n let uniqueKey = multiSelectProp.uniqueKey;\n let valueProp = multiSelectProp.valueProp;\n let labelProp = multiSelectProp.labelProp;\n let filters = multiSelectProp.filters;\n if (uniqueKey && valueProp && labelProp) {\n return this.setDropdownData(\n columnInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters\n );\n }\n } else {\n return this.addColumn(columnInfo);\n }\n }\n\n showFilterIcon(columnInfo: addColumn) {\n if (columnInfo.filter && columnInfo.filter.showFilter) {\n return true;\n } else {\n return false;\n }\n }\n\n setDropdownData(\n column: IGridColumn,\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters: any[],\n row?: { [key: string]: any }\n ): Promise<any> | any {\n return this.dropdownService\n .setDropDownList(uniqueKey, valueProp, labelProp, filters)\n .then((res: any) => {\n if (row) {\n row[column.field + '_data'] = res;\n } else {\n column.data = res;\n if (column.filter && column.filter.type === 'dropdown') {\n column.filter.data = res;\n }\n }\n return this.addColumn(column);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n });\n }\n\n // add grid column with built-in filter\n addFilterColumn(filterColumnInfo: addFilterColumn): IGridColumn {\n const column: any = {\n field: filterColumnInfo.field,\n header: filterColumnInfo.header,\n filter: { type: filterColumnInfo.filter },\n filtering: filterColumnInfo.filtering,\n hidden: filterColumnInfo.hidden,\n style: filterColumnInfo.style,\n tableAlias: filterColumnInfo.tableAlias,\n permissions: filterColumnInfo.permissions,\n };\n\n return column;\n }\n\n // add date grid column with built-in filter\n addDateColumn(dateColumnInfo: addFilterColumn): IGridColumn {\n const column: IGridColumn = {\n field: dateColumnInfo.field,\n header: dateColumnInfo.header,\n type: dateColumnInfo.type ? dateColumnInfo.type : EGridColumnType.DATE,\n filtering: dateColumnInfo.filtering,\n filter: { type: GridFilterControlType.CALENDAR },\n format: dateColumnInfo.format,\n style: dateColumnInfo.style,\n tableAlias: dateColumnInfo.tableAlias,\n disabled: dateColumnInfo.disabled,\n allowSave: dateColumnInfo.allowSave,\n permissions: dateColumnInfo.permissions,\n component: dateColumnInfo.component,\n showTime: dateColumnInfo.showTime,\n timeOnly: dateColumnInfo.timeOnly,\n data: dateColumnInfo.data,\n hidden: dateColumnInfo.hidden,\n };\n return column;\n }\n\n setLookUpFilter(column: any, dialogService: any, globalFilterLookup: boolean = false) {\n if (column.lookupControl) {\n let dataValue: any[] = [];\n let dataKey: any[] = [];\n let data = column.lookupControl?.data?.data;\n const keys = Object.keys(data);\n if (data && keys?.length > 0) {\n keys.forEach((key) => {\n if (data[key].toString().includes('{')) {\n dataValue.unshift(data[key]);\n dataKey.unshift(key);\n data[key] = '';\n }\n });\n }\n const ref = dialogService.open(\n column.lookupControl.component,\n column.lookupControl.data\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (column.onReturn) {\n column.onReturn(res);\n }\n if (dataKey?.length > 0 && dataValue?.length > 0) {\n dataKey.forEach((key, keyIndex) => {\n dataValue.forEach((value, valueIndex) => {\n if (keyIndex === valueIndex) {\n data[key] = value;\n }\n });\n });\n }\n if (res) {\n document.getElementById('lookUp_filter')?.focus();\n let field = column.field;\n let value = utilities.setDialogResponse(\n column,\n column?.lookupControl,\n res\n );\n if(globalFilterLookup){\n if(typeof(value) === 'object'){\n column.valueTwo = value; \n }\n column.value = value?.value\n ? value.value\n : res[field.toLowerCase()];\n const globalFilterLookupInput = document.getElementById(column.field);\n globalFilterLookupInput.focus();\n }else{\n column.filterValue = value?.value\n ? value.value\n : res[field.toLowerCase()];\n }\n }\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n }\n\n // Set Hyperlink field as a param Value\n setFieldAsLinkParam(columns: any, field: string, response: any) {\n if (\n columns &&\n columns.length > 0 &&\n field &&\n response.records &&\n response.records.length > 0\n ) {\n this.setDataFields(response.records).forEach((res: any) => {\n let obj = columns.find((x: any) => x.field === field);\n if (obj && obj.params) {\n const keys = Object.keys(obj.params);\n keys.forEach((key: any) => {\n if (obj.params[key] && obj.params[key].toString().includes('{')) {\n let value = obj.params[key]\n .replace('{', '')\n .replace('}', '')\n .toLowerCase();\n obj.params[key] = res[value];\n }\n });\n }\n });\n }\n }\n\n hasAnyLinkColumn(columns: IGridColumn[]): boolean {\n return (\n columns &&\n columns.some(\n (x) =>\n x.type == EGridColumnType.LINK ||\n x.type == EGridColumnType.IFRAME ||\n x.type == EGridColumnType.DIALOG ||\n (x.linkId && x.type == EGridColumnType.LOOKUP_INPUT)\n )\n );\n }\n\n setHyperlinks(fetchResponse: any, columns: IGridColumn[]): any {\n let records: any = [];\n let data =\n fetchResponse && fetchResponse.records.length > 0\n ? this.setDataFields(fetchResponse.records)\n : [];\n let newRow: any;\n\n return this.hyperlinkService\n .addHyperlinks(columns)\n .then((linksResponse: any) => {\n data.forEach((row: any) => {\n newRow = { ...row };\n columns.forEach((col: any) => {\n let keys = Object.keys(row);\n if (col.type === EGridColumnType.DIALOG) {\n let field = col.field?.toLowerCase() + '_obj';\n newRow[field] = { ...col };\n newRow[field].displayText = col.displayText\n ? row[col.displayText.toLowerCase()]\n : row[col.field.toLowerCase()];\n if (col.data && col.data.data) {\n newRow[field].dialogData = utilities.findKeysAndValue(\n col.data.data,\n row\n );\n }\n }\n linksResponse.forEach((linkResponse: any) => {\n if (\n (col.type === EGridColumnType.LINK ||\n col.type === EGridColumnType.IFRAME ||\n col.type === EGridColumnType.LOOKUP_INPUT) &&\n col.linkId &&\n col.params &&\n col.linkId === linkResponse.linkId\n ) {\n const paramKeys: string[] = Object.keys(col.params);\n const link: any = utilities.setHyperlink(\n keys,\n row,\n linkResponse.url,\n paramKeys,\n col.params\n );\n\n let field = col.field?.toLowerCase() + '_obj';\n newRow[field] = { ...col };\n newRow[field].hyperlink = link;\n newRow[field].displayText = col.displayText\n ? row[col.displayText.toLowerCase()]\n : row[col.field.toLowerCase()];\n }\n });\n });\n records.push(newRow);\n });\n return records;\n });\n }\n\n // add grid global filter with built-in filter\n addGlobalFilter(globelFilterInfo: addGlobalFilter) {\n const column: addGlobalFilter = {\n field: globelFilterInfo.field,\n displayText: globelFilterInfo.displayText,\n validations: globelFilterInfo.validations,\n type: globelFilterInfo.type,\n data: globelFilterInfo.data,\n value: globelFilterInfo.value,\n valueTwo: globelFilterInfo.valueTwo,\n matchMode: globelFilterInfo.matchMode,\n operator: globelFilterInfo.operator,\n tableAlias: globelFilterInfo.tableAlias,\n optionLabel: globelFilterInfo.optionLabel,\n optionValue: globelFilterInfo.optionValue,\n onFocusOut: globelFilterInfo.onFocusOut,\n onReturn: globelFilterInfo.onReturn,\n filtering: globelFilterInfo.filtering,\n column: globelFilterInfo.column,\n dayRange: globelFilterInfo.dayRange,\n fromField: globelFilterInfo.fromField,\n toField: globelFilterInfo.toField,\n lookupControl: globelFilterInfo.lookupControl,\n allowSearch: globelFilterInfo.allowSearch,\n disabled: globelFilterInfo.disabled,\n hidden: globelFilterInfo.hidden,\n labelText: globelFilterInfo.labelText,\n prefix: globelFilterInfo.prefix,\n color: globelFilterInfo.color,\n format: globelFilterInfo.format,\n };\n return column;\n }\n\n // add global input filter\n addGlobalInputFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.INPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add global dropdown filter\n addGlobalDropdownFilter(\n globelFilterInfo: IGlobalFilter,\n dropDownProp?: IDropDownRequest\n ): any {\n globelFilterInfo.type = GridFilterControlType.DROPDOWN;\n if (dropDownProp) {\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters = dropDownProp.filters;\n let sorts = dropDownProp.sorts;\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(\n globelFilterInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters,\n sorts\n );\n }\n } else {\n return this.addGlobalFilter(globelFilterInfo);\n }\n }\n // add global MultiSelect dropdown filter\n addGlobalMultiSelectDropDownFilter(\n globelFilterInfo: IGlobalFilter,\n multiSelectProp?: IDropDownRequest\n ): any {\n globelFilterInfo.type = GridFilterControlType.MULTISELECT;\n if (multiSelectProp) {\n let uniqueKey = multiSelectProp.uniqueKey;\n let valueProp = multiSelectProp.valueProp;\n let labelProp = multiSelectProp.labelProp;\n let filters = multiSelectProp.filters;\n let sorts = multiSelectProp.sorts;\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(\n globelFilterInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters,\n sorts\n );\n }\n } else {\n return this.addGlobalFilter(globelFilterInfo);\n }\n }\n\n getDropdownData(\n fieldInfo: any,\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters: any,\n sorts: IGridSort[] = []\n ) {\n return this.dropdownService\n .setDropDownList(uniqueKey, valueProp, labelProp, filters, sorts)\n .then((res: any) => {\n fieldInfo.data = res;\n return this.addGlobalFilter(fieldInfo);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n return this.addGlobalFilter(fieldInfo);\n });\n }\n \n // add global filter Space Field\n addGlobalFilterSpaceField(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.SPACER;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add global boolean filter\n addGlobalBooleanFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.CHECKBOX;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add Range Filter for global Filter\n addRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.CALENDAR_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add Range Filter for global Filter\n addGlobalDateRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.DATE_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n \n // add Numeric Range Filter for global Filter\n addGlobalNumericRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.NUMERIC_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n // add Numeric input for global Filter\n addGlobalNumericInput(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.NUMERICINPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add LookUp Field for global Filter\n addGlobalLookupFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.LOOKUP_INPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n //add calendar filter for global filter\n addGlobalDateFilter(globalFilterInfo: addGlobalFilter){\n globalFilterInfo.type=GridFilterControlType.CALENDAR;\n return this.addGlobalFilter(globalFilterInfo);\n }\n\n setDataFields(response: any, dataKey: string = \"\") {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any, index: number) => {\n if (Object.keys(x ?? {})?.length > 0) {\n const result: any = Object.keys(x)?.reduce(\n (prev, current) => ({\n ...prev,\n [current.toLowerCase()]: x[current],\n }),\n {}\n );\n if (\n dataKey &&\n dataKey.length > 0 &&\n !Object.keys(result)?.includes(dataKey)\n ) {\n result[dataKey] = index;\n }\n\n data.push(result);\n }\n });\n }\n return data;\n }\n\n setColumnFields(columns: any[]) {\n let column: any = [];\n if (columns && columns.length > 0) {\n columns.map((col: any) => {\n column.push({ ...col, field: col?.field?.toLowerCase() });\n });\n return column;\n }\n }\n\n // change linkId in edit mode, if changeLink is true then it change the edited row hyperlink value\n setLinkId(\n columns: IGridColumn[],\n field: string,\n linkId: string,\n record: any,\n users: any,\n params: any = null,\n changeLink: boolean = false\n ): any {\n if (columns && columns.length > 0) {\n columns.forEach((column: any) => {\n if (column.field?.toLowerCase() === field.toLowerCase()) {\n column.linkId = linkId;\n if (params) {\n column.params = params;\n }\n }\n });\n }\n\n this.setHyperlinks({ records: [record] }, columns).then((res: any) => {\n if (changeLink) {\n delete res[0][field.toLowerCase() + '_obj'];\n let index = users.findIndex(\n (i: any) => i[field.toLowerCase()] === record[field.toLowerCase()]\n );\n if (index !== -1) {\n if (users[index][field + '_obj']) {\n users[index][field + '_obj'].hyperlink =\n res[0][field + '_obj'].hyperlink;\n }\n }\n }\n });\n }\n\n // set grid data and set selected row based on selection value\n setDataWithSelectedRow(records: any, configData: any) {\n if ((configData?.valueProp || configData?.labelProp) && configData.data.selection) {\n records.forEach((record: any) => {\n Object.keys(record)?.forEach((key) => {\n if (key.toLowerCase() === configData.labelProp ? configData.labelProp?.toLowerCase() : configData.valueProp?.toLowerCase()) {\n if (\n configData.data.value &&\n record[key] === configData.data.value\n ) {\n record['highlightRow'] = true;\n } else if (record[key]?.toString() === configData.data.selection?.toString()) {\n record['highlightRow'] = true;\n }\n }\n });\n });\n }\n\n return records;\n }\n\n setTableAlias(field: string, columns: IGridColumn[]) {\n if (columns && columns.length > 0) {\n const column = columns.find(\n (x: any) => x.field?.toLowerCase() == field?.toLowerCase()\n );\n\n if (column != null && column.tableAlias && column.tableAlias.length > 0) {\n return column.tableAlias;\n }\n }\n\n return '';\n }\n\n setGridPropValues(\n columns: IGridColumn[],\n props: IGridProp[],\n filter?: IGridPropFilter,\n records?: any[]\n ) {\n if (columns && columns.length > 0 && props && props.length > 0) {\n let isMatched: boolean = false;\n if (filter && filter.field && records && records.length > 0) {\n isMatched = records.some(\n (x) =>\n utilities.objConvertToLower(x)[filter.field.toLowerCase()] ===\n filter.value\n );\n }\n props.map((prop: IGridProp) => {\n let col: any = {};\n if (prop.field && !isMatched && !filter?.field) {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === prop.field?.toLowerCase()\n );\n } else if (isMatched) {\n if (prop.field) {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === prop.field?.toLowerCase()\n );\n } else {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === filter?.field?.toLowerCase()\n );\n }\n }\n if (col && col.hasOwnProperty(prop.name)) {\n col[prop.name] = prop.value;\n }\n });\n }\n }\n\n // set grid row propValues\n setGridRowPropValue(row: { [key: string]: any }, props: IGridRowProp[], columns: IGridColumn[] = []) {\n props?.forEach((prop) => {\n if (prop.propName && (prop.propValue || prop.propValue === false || prop.propValue === '')) {\n if (prop.field) {\n let fieldName = Object.keys(row)?.find((key) => key?.toLowerCase() === prop?.field?.toLowerCase());\n let fieldNameObj = fieldName?.includes('_obj') ? fieldName?.toLowerCase() : fieldName?.toLowerCase() + '_obj';\n if (!fieldName) {\n const rowObj = prop?.field?.toLowerCase() + '_obj';\n fieldNameObj = Object.keys(row)?.find((key: any) => (key?.toLowerCase() === rowObj) && (row[rowObj]?.type === EGridColumnType.DIALOG || row[rowObj]?.type === EGridColumnType.IFRAME || row[rowObj]?.type === EGridColumnType.LINK));\n if (fieldNameObj) {\n fieldName = fieldNameObj;\n }\n }\n if (fieldName) {\n if (Object.keys(row)?.includes(fieldNameObj)) {\n row[fieldNameObj] = { ...row[fieldNameObj], text: row[fieldName], [prop.propName]: prop.propValue };\n } else {\n row[fieldNameObj] = { text: row[fieldName], [prop.propName]: prop.propValue };\n }\n } else if (columns?.some((column) => column.field?.toLowerCase() === prop?.field?.toLowerCase())) {\n const propField = prop.field?.toLowerCase();\n const propFieldObj = propField + '_obj';\n if (Object.keys(row)?.includes(fieldNameObj)) {\n row[propFieldObj] = { ...row[propFieldObj], text: row[prop.field], [prop.propName]: prop.propValue };\n } else {\n row[propFieldObj] = { text: row[prop.field], [prop.propName]: prop.propValue };\n }\n };\n } else {\n if (prop?.action === EGridRowAction.DELETEBTN) {\n row[prop.action] = prop.propValue;\n }\n else if (prop?.action === EGridRowAction.EDITBTN) {\n row[prop.action] = prop.propValue;\n }\n }\n }\n });\n return row;\n }\n\n // remove the rowActions from the records\n removeRowActions(records) {\n if (records?.length > 0) {\n records.forEach((row) => {\n if (row.rowAction) {\n delete row['rowAction'];\n }\n });\n }\n return records;\n }\n}","export interface IUserInfo {\n id: number;\n username: string;\n isADUser: boolean;\n token: string;\n activities: string[];\n roles: IUserRole[];\n }\n \n export interface IUserRole {\n id: number;\n code: string;\n name: string;\n description: string;\n }\n \n export interface IPermission {\n type: EPermissionType;\n roles: string[];\n }\n \n export enum EPermissionType {\n EDIT = 'edit',\n VIEW = 'view',\n DELETE = 'delete',\n ADDROW = 'addRow',\n CRUD = 'crud',\n }\n ","import { Injectable } from '@angular/core';\nimport { IUserInfo } from '../models/user-info.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n userInfoKey: string = 'CurrentUserInfo';\n\n login(response: any): boolean {\n if (response) {\n localStorage.setItem(this.userInfoKey, JSON.stringify(response.data));\n return true;\n } else {\n return false;\n }\n }\n\n getUserInfo() {\n return JSON.parse((localStorage.getItem(this.userInfoKey)) as any);\n }\n\n getUserRoles() {\n let roles: any = [];\n let userInfo: IUserInfo = this.getUserInfo();\n if (userInfo && userInfo.roles && userInfo.roles.length > 0) {\n roles = userInfo.roles.map((x) => x.name);\n }\n return roles;\n }\n\n isAuthenticated(): boolean {\n return this.getUserInfo() ? true : false;\n }\n\n logout() {\n // setting Function for removing the Grid Filters When User logout. \n let keys = Object.keys(localStorage);\n if(keys && keys.length > 0){\n keys.forEach((key)=>{\n if(key.includes('SetFilters-')){\n localStorage.removeItem(key);\n }\n });\n }\n // removing the UserName & Password When User logout.\n localStorage.removeItem(this.userInfoKey);\n }\n}\n","import { Component, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'se-iframe',\n templateUrl: './iframe.component.html',\n styleUrls: ['./iframe.component.scss']\n})\nexport class IframeComponent implements OnInit,OnDestroy {\n url: any;\n id:string='';\n\n constructor(\n private sanitizer: DomSanitizer,\n @Optional() public ref: DynamicDialogRef,\n @Optional() public config: DynamicDialogConfig\n ) {}\n\n ngOnInit(): void {\n this.loadIFrameData();\n }\n\n ngOnDestroy() {\n if(this.id){\n const url: any = document.getElementById(this.id);\n this.ref.close(url.contentWindow.location.href);\n }\n }\n\n loadIFrameData(){\n if (this.config.data && this.config.data.value && this.config.data.iFrameId) {\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl(\n this.config.data.value\n );\n this.id = this.config.data.iFrameId;\n\n }\n }\n\n iframeLoaded(){\n let iframeEl: any = document.querySelector(\".p-dialog-content iframe\");\n\n if(iframeEl){\n iframeEl.contentWindow.document.body.classList.add(\"v-scrollbar\");\n }\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { RequestService } from './request.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PageLoggerService {\n\n constructor(private requestService: RequestService) { }\n \n // save page logger info\n savePageLoggerInfo(currentRoute, componentName: string = '') {\n this.requestService\n .get<any[], any>(\"/PageLogger/Save\", { pageName: componentName, Url: currentRoute })\n .subscribe(\n (data) => {\n return data;\n },\n (error) => {}\n );\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnChanges,\n Optional,\n ElementRef,\n ViewChildren,\n QueryList,\n SimpleChanges,\n ViewChild,\n HostListener,\n OnDestroy,\n} from '@angular/core';\nimport { ConfirmationService } from 'primeng/api';\nimport {\n DynamicDialogRef,\n DynamicDialogConfig,\n DialogService,\n} from 'primeng/dynamicdialog';\nimport { saveAs } from 'file-saver';\nimport jsPDF from 'jspdf';\nimport { GridService } from '../../../services/grid.service';\nimport {\n IGridColumn,\n IGridSort,\n IGridServerSideEvent,\n IGridPaginationEvent,\n IGlobalFilter,\n IGridFilter,\n IGridColumnAction,\n IGridRowAction,\n EGridSelectionType,\n EGridColumnType,\n EGridSortDirection,\n IGridDataExport,\n EGridAggregate,\n EGridFormatType,\n IGridFilterInfo,\n EGridRowAction,\n EGridValidator,\n GridFilterControlType,\n} from '../../../models/grid.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { AlertService } from '../../../services/alert.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport { WorkSheet } from 'xlsx';\nimport { DatePipe, DecimalPipe } from '@angular/common';\nimport { autoSetLookupData, currentUrl, draggableDialog, objConvertToLower, setDialogResponse, setMinutesInterval, setTimeInDate } from '../../../services/utilities.service';\nimport { Table } from 'primeng/table';\nimport { EFormatType } from '../../../models/form.model';\nimport { Router } from '@angular/router';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { Subscription, interval } from 'rxjs';\n\n@Component({\n selector: 'se-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n})\nexport class GridComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChildren('gridRow') gridRow: QueryList<ElementRef>;\n @Output() inlineRowCancel = new EventEmitter();\n @Input() set activeTestMode(val: any) {\n if (val === true) {\n debugger;\n }\n }\n serverFilters: IGridServerSideEvent = {};\n rowsData: any[] = [];\n rowsDataCopy: any[] = [];\n roles: string[] = [];\n isColumnHidden: boolean = false;\n rowClickData: IGridColumn;\n componentTableRef: any;\n lookupFilterObj: any;\n checklist: any[] = []\n lookupBlur: boolean = true;\n globalFiltersArray: any[] = [];\n checkAction: boolean = false;\n calenderPreviousValue: string = '';\n gridFilterObj: IGridFilterInfo;\n defaultDate: any;\n gridfilter: any;\n dropDownFilter: any = {};\n dropdownInput: boolean = false;\n saveAllRecord: boolean = false;\n generateRowsDataCopy: boolean = true;\n editAllRecord: boolean = false;\n cancelAllRecords: boolean = false;\n addNewRowCheck: boolean = false;\n inEditMode: boolean = false;\n saveRecordArray: any[] = [];\n disabledSaveBtn: boolean = false;\n isCheckBoxChangeEventCalled: boolean = false;\n isSelectedAllRows: boolean = false;\n Checked: boolean = true\n unChecked: boolean = false\n editModeChecked: boolean = true;\n editModeunCkecked: boolean = false;\n calendarFormat: string = 'mm/dd/y';\n setDropdownFilter: boolean = true;\n reloadPage: Subscription;\n setDropdowndataValue: boolean = true;\n showFilterbtn: boolean = false;\n \n hideEditAllRowsBtn: boolean = true;\n\n //apply Add/Delete/Edit prop for the grid permission\n addRowPermission: boolean = true;\n deleteRowPermission: boolean = true;\n editRowPermission: boolean = true;\n\n // Apply prop setAggregateFooter on Footer of the Table for aggregate.\n setAggregateFooter: string = '';\n\n // Boolean prop to allow Hide Aggregate Footer When Aggregate not Apply on Table.\n aggregateFooter: boolean = false;\n\n // Maintains previous state of rows being edited\n editRowsRecords: { [key: string]: any } = {};\n\n // Maintains record of rows being edited\n editingRowKeys: { [key: string]: any } = {};\n currentUrl: string = currentUrl();\n\n @ViewChild('dt') table: Table;\n\n // Selects items in the grid based on passed on data\n @Input() selectedRows: any = [];\n\n @Input() setGridRefreshTime: number = 0;\n\n @Input() addDataKeyValue = false;\n\n private globalData: IGridFilter[] = [];\n\n sortDisabled: boolean = false;\n\n @Input() public showRefreshBtn: boolean = false;\n\n @Input() public hideRefreshBtn: boolean = true;\n\n // Stores selected columns\n private _selectedColumns: IGridColumn[] = [];\n visibleColumns: IGridColumn[] = [];\n // Boolean prop to allow horizontal Scroll on Table.\n @Input() horizontalScroll: boolean = false;\n\n // Boolean prop to hide the delete row button.\n @Input() hideDeleteBtn = false;\n\n // Boolean prop to hide the edit row button.\n @Input() hideEditBtn = false;\n\n // Boolean prop to hide the add row button.\n @Input() hideAddBtn = false;\n\n // Prop to handle loader of grid\n @Input() public loading = false;\n\n //this property is used to handle server side event by default it is true when it false server side event will not be called\n @Input() autoLoadData: boolean = true;\n\n // Boolean prop to check where selected is allowed or not.\n @Input() allowSelection = false;\n\n // Set column width of selected row.\n @Input() selectionColumnWidth: string = '80px';\n\n // set selection checkBox header\n @Input() allowSelectionHeader: string = '';\n\n // Boolean prop to hide the save button on top of grid.\n @Input() hideGridSaveButton = false;\n\n // Boolean prop to hide the save button on top of grid.\n @Input() hideGridCancelButton = false;\n\n // Boolean prop to allow export to pdf.\n @Input() allowExportToPdf = false;\n\n // Boolean prop to allow export to excel.\n @Input() allowExportToExcel = false;\n\n // Boolean prop to set the action column as first column.\n @Input() setActionColumnAsFirst = false;\n\n // If true, enables options to perform CRUD using inline row functionality\n @Input() useInlineCRUD = false;\n\n // Array of row actions\n @Input() rowActions: IGridRowAction[] = [];\n\n // Sets selection type i.e: single/multiple selection\n @Input() selectionType: EGridSelectionType = EGridSelectionType.SINGLE;\n\n // Unique key requires for built-in row selection of primeNg grid\n @Input() dataKey: string = 'id';\n\n // Flag for clear filter values button\n @Input() clearGridFilter = true;\n\n // Flag for search filter values button\n @Input() searchGridFilter = true;\n\n // Flag in case table is scrollable\n @Input() scrollable = true;\n\n // Sets scroll height for the table\n @Input() scrollHeight = '80vh';\n\n // Boolean prop to allow to wrap or unWrap the grid.\n @Input() wordWrap: boolean = false;\n\n @Input() newGridRow: any = {};\n\n @Input() filtering = true;\n\n @Input() reportButtons: any[] = [];\n\n @Input() rowHover: boolean = false;\n\n @Input() hideFilterOptions: boolean = false;\n\n // Sets pagenation for the table Data.\n @Input() setPaginationLength: any[] = [5, 10, 15, { showAll: 'All' }];\n\n // set the change in the rowData\n @Output() rowsChange: EventEmitter<any> = new EventEmitter();\n\n /**\n * Stops the loader and sets the data to grid\n * Clears the editing stack\n * Scrolls to selected element if selection found\n */\n @Input() set rows(data: any[]) {\n this.loading = false;\n if (!this.isCheckBoxChangeEventCalled) {\n if (data && data.length > 0) {\n if (!this.dataKey) {\n this.dataKey = 'id';\n }\n if (data?.length > 50 && !this.pagination) {\n const rowsData = this.gridService.setDataFields(data, this.dataKey);\n const initializeData = [...rowsData];\n this.rowsData = initializeData.splice(1, 40);\n setTimeout(() => {\n this.rowsData = rowsData;\n }, 100);\n } else {\n this.rowsData = this.gridService.setDataFields(data, this.dataKey);\n }\n this.editRowsRecords = {};\n\n if (this.selectedRows) {\n setTimeout(() => {\n const selectedElementRef = this.gridRow.find(\n (x) => x.nativeElement.id === this.selectedRows[this.dataKey]\n );\n selectedElementRef &&\n (\n selectedElementRef.nativeElement as HTMLTableRowElement\n ).scrollIntoView({ behavior: 'smooth' });\n }, 0);\n }\n\n //manipulate checkbox string value to true and false.\n this.changeCheckboxStringValue();\n } else {\n this.rowsData = [];\n }\n }\n }\n\n // Global filter server request\n @Input() set globalFilterData(globalFilters: IGlobalFilter[]) {\n this.globalData = this.gridService\n .prepareGlobalFilters(globalFilters)\n ?.filter((x) => x?.value !== false);\n const serverFilterValues = JSON.parse(JSON.stringify(this.serverFilters));\n serverFilterValues.filters = this.serverFilters.filters\n ? this.serverFilters.filters.concat(this.globalData)\n : this.globalData;\n\n if (localStorage.getItem('applyFilter') === 'false') {\n this.globalFiltersArray = this.globalFiltersArray?.length > 0\n ? this.globalFiltersArray.concat([...serverFilterValues.filters])\n : this.globalFiltersArray;\n }\n if (localStorage.getItem('applyFilter') === 'true') {\n globalFilters.forEach((globalFilter) => {\n this.globalFiltersArray.forEach((filterArray) => {\n if (\n filterArray.field === globalFilter.field &&\n globalFilter.value &&\n filterArray.value !== globalFilter.value\n ) {\n filterArray.value = globalFilter.value;\n }\n const findIndex = this.globalFiltersArray.findIndex(\n (index) => index.field === globalFilter.field && !globalFilter.value\n );\n if (findIndex !== -1) {\n this.globalFiltersArray.splice(findIndex, 1);\n }\n });\n });\n\n this.loading = this.autoLoadData;\n // setTimeout(() => {\n if (this.gridService.applyFilterEvent || this.autoLoadData) {\n this.onApplyFilter.emit();\n }\n if (this.globalFiltersArray && this.globalFiltersArray.length > 0) {\n serverFilterValues.filters = serverFilterValues.filters.concat(\n this.globalFiltersArray\n );\n }\n serverFilterValues.filters = Array.from(\n new Set(\n serverFilterValues.filters\n .reverse()\n .map((filter: any) => filter.field)\n )\n ).map((field) => {\n return serverFilterValues.filters.find((x: any) => x.field === field);\n });\n serverFilterValues.filters = serverFilterValues.filters.filter(\n (obj: any) =>\n obj?.value && obj.value?.toString()?.length > 0 && obj.field\n );\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = serverFilterValues;\n if (this.gridService.applyFilterEvent || this.autoLoadData === true) {\n // setting pagination page as first\n serverFilterValues.page = 1;\n this.autoLoadData = true;\n if (this.defaultRows && this.pagination) {\n serverFilterValues.pageSize = this.defaultRows;\n }\n if (this.gridService.applyFilterEvent) {\n this.isCheckBoxChangeEventCalled = false;\n this.onServerSideEventChange.emit(serverFilterValues)\n }\n localStorage.removeItem('applyFilter');\n // setting pagination page number UI\n this.table._first = 0;\n }\n // }, 300);\n }\n }\n\n // Input decorator to receive columns to be displayed in header\n @Input() columns: IGridColumn[] = [];\n\n @Input() permissions: IPermission[] = [];\n\n // Optional prop to handle toggling of columns\n @Input() allowColumnToggle = false;\n\n // Optional prop to hide filtering of columns\n @Input() hideFilter = false;\n\n // Optional prop to handle lookup filters\n @Input() lookupFilters = false;\n\n // Optional prop to handle pagination\n @Input() pagination = false;\n\n // Optional prop to handle show CurrentPage Report\n @Input() showCurrentPageReport = false;\n\n // Displays total number of records\n @Input() totalRecords = 0;\n\n // Displays aggregate that fetch from records\n @Input() aggregatedResult: any[] = [];\n\n @Input() showconfirmDialog: boolean = true;\n\n @Input() saveAllData: boolean = false;\n\n // Sets number of rows to be shown the grid\n @Input() defaultRows:number = 0;\n \n @Input() columnActions: IGridColumnAction[] = [];\n\n // Decides the grid's behavior either for client side or server side events\n @Input() useServerSideEvents = false;\n\n // Output event to handle row click\n @Output() onRowClick: EventEmitter<any> = new EventEmitter();\n\n // Output event emit when click on grid checkbox filter\n @Output() onCheckBoxFilterClick: EventEmitter<any> = new EventEmitter();\n\n // Output event to handle row CheckBox\n @Output() onRowCheckBox: EventEmitter<any> = new EventEmitter();\n\n // Output event to trigger on sort change\n @Output() onSortChange: EventEmitter<IGridSort> = new EventEmitter();\n\n // Output event to trigger on filter change\n @Output() onFilterChange: EventEmitter<any> = new EventEmitter();\n\n // Output event to invoke the multiSelection click event\n @Output() onMultiSelectionChange: EventEmitter<any> = new EventEmitter();\n\n // Calls whenever a grid and globalFilters called\n @Output() onApplyFilter: EventEmitter<any> = new EventEmitter();\n\n //set header checkbox value for getting all columns on stay admin\n @Output() isIncludedAllColumns: EventEmitter<any> = new EventEmitter();\n\n // Calls whenever a lazy event is dispatched\n @Output()\n onServerSideEventChange: EventEmitter<IGridServerSideEvent> =\n new EventEmitter();\n\n // Output event to trigger on pagination\n @Output()\n onPageChange: EventEmitter<IGridPaginationEvent> = new EventEmitter();\n\n // Dispatch output event trigger on edit row\n @Output() onRowUpdate = new EventEmitter();\n\n // Dispatch output event trigger cancel all rows\n @Output() onCancelAllRows = new EventEmitter();\n\n // Dispatch output event trigger on delete row\n @Output() onRowDelete = new EventEmitter();\n\n //Dispatch output event trigger on add row\n @Output() onRowAdd = new EventEmitter();\n\n //Dispatch output event trigger on add, update and delete row\n @Output() onGridRowActions = new EventEmitter();\n\n // set property allowCaching for LocalStorage\n @Input() allowCaching: boolean;\n\n // set property softCaching for setting the values of gridFilter\n @Input() softCaching: boolean = true;\n\n @Input() editAllRows: boolean = false;\n\n // set the row When Edit the row on Grid\n @Output() onGridRowEdit = new EventEmitter();\n\n // set the row When adding the new Row on Grid\n @Output() onGridRowAdd = new EventEmitter();\n\n isGridHidden: boolean = false;\n \n rowsPerPageOptions: any[] = [5, 10, 15, { showAll: 'All' }];\n\n constructor(\n public dialogService: DialogService,\n private gridService: GridService,\n private alertService: AlertService,\n private authService: AuthenticationService,\n private elementRef: ElementRef,\n public decimalPipe: DecimalPipe,\n private pageLoggerService: PageLoggerService,\n private cd: ChangeDetectorRef,\n private router: Router,\n private datePipe: DatePipe,\n public confirmationService: ConfirmationService,\n @Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef\n ) { }\n\n get selectedColumns(): IGridColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: IGridColumn[]) {\n this._selectedColumns = this.columns?.filter((col) => val.includes(col));\n }\n\n // browser close event\n @HostListener('window:beforeunload', ['$event'])\n beforeunloadHandler(event: any) {\n if (this.gridService.columnFocusedOut) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void {\n // automatically reload grid after 9 seconds.\n if (this.setGridRefreshTime) {\n this.refreshGrid();\n }\n\n if (this.onRowUpdate?.observers?.length == 0) {\n this.hideEditBtn = true;\n }\n\n if (this.editAllRows && this.onRowDelete.observers.length == 0) {\n this.disabledSaveBtn = true;\n }\n\n this.componentTableRef = this.table;\n setTimeout(() => {\n this.setNumericValues();\n }, 500);\n }\n\n ngOnDestroy() {\n this.refreshGridTerminator()\n }\n\n // apply user role permissions on grid columns\n applyColumnsPermissions() {\n if (this.columns) {\n let totalFields: number = 0;\n let hiddenFields: number = 0;\n\n this.columns.forEach((column: IGridColumn) => {\n let permissions: IPermission[] = column.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n column.disabled = true;\n } else {\n column.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n column.hidden = false;\n column.disabled = false;\n }\n }\n }\n });\n }\n totalFields++;\n if (column.hidden) {\n hiddenFields++;\n }\n });\n\n this.isColumnHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n\n // apply global permissions on entire grid\n applyGridPermissions() {\n if (this.permissions && this.permissions.length > 0) {\n let hasValidEditPermission = false;\n\n // check if any column has any permission\n let hasColumnPermissions = this.columns?.some(\n (x) => x?.permissions && x.permissions.length > 0\n );\n\n this.permissions.forEach((permission) => {\n let isValid: boolean = false;\n\n permission.roles.forEach((role) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n\n if (permission.type === EPermissionType.CRUD && !isValid) {\n this.useInlineCRUD = false;\n }\n else if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n this.useInlineCRUD = true;\n if (!isValid && !hasColumnPermissions) {\n this.isGridHidden = true;\n this.useInlineCRUD = false;\n }\n } else if (permission.type === EPermissionType.EDIT && !isValid) {\n this.isGridHidden = false;\n hasValidEditPermission = true;\n this.editRowPermission = false;\n } else if (permission.type === EPermissionType.DELETE && !isValid) {\n this.deleteRowPermission = false;\n } else if (permission.type === EPermissionType.ADDROW && !isValid) {\n this.addRowPermission = false;\n }\n });\n }\n if (this.onRowAdd.observers.length == 0) this.addRowPermission = false;\n if (this.onRowDelete.observers.length == 0) this.deleteRowPermission = false;\n }\n\n ngOnChanges(change: SimpleChanges) {\n if (!this.isCheckBoxChangeEventCalled) {\n if (this.allowCaching !== false && this.pagination) {\n this.allowCaching = this.pagination;\n } else if (this.componentTableRef?.id) {\n localStorage.removeItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl);\n }\n // add defaultRow in pagination array\n if (!this.setPaginationLength.includes(this.defaultRows)) {\n this.setPaginationLength.unshift(this.defaultRows);\n }\n const hasColumns: boolean = this.columns && this.columns.length > 0;\n if (hasColumns) {\n this.columns = this.gridService.setColumnFields(this.columns)\n // this.columns = this.gridService.setColumnFields(this.columns?.filter((x) => (!x.hidden || x.allowToggle)));\n }\n\n this.roles = this.authService.getUserRoles();\n\n // apply user role permissions on grid columns\n this.applyColumnsPermissions();\n\n // apply global permissions on entire grid\n this.applyGridPermissions();\n this._selectedColumns = this.columns?.filter((x) => !x.hidden)// || x.allowToggle);\n this.cd.detectChanges();\n\n if (hasColumns) {\n this.columns = this.gridService.setColumnFields(this.columns);\n // checking filter exist or not\n const filter = this._selectedColumns.some(\n (column) => column.filtering === undefined || column.filtering === true\n );\n if (filter === false) {\n this.hideFilter = true;\n }\n\n\n this.columns.forEach((column: any) => {\n // set isRequired true for required column to show astric in column header\n if (column.validations?.find(validation => validation.type == EGridValidator.REQUIRED)) {\n column.isRequired = true;\n }\n // set numeric null or undefine data default value\n if ((column.type === EGridColumnType.NUMERIC || column.type === EGridColumnType.BOOLEAN || column.type === EGridColumnType.TEXT || column.type === undefined || column.type === EGridColumnType.DATE || column.type === EGridColumnType.DROPDOWN) && column.value && this.rowsData?.length > 0) {\n this.rowsData.forEach((row) => {\n if (column.value && (row[column.field] === null || row[column.field] === undefined)) {\n row[column.field] = column.value;\n }\n })\n }\n\n // convert string time into the date\n if (column.type === EGridColumnType.DATE) {\n if (column.timeOnly === true) {\n this.rowsData.forEach((row) => {\n if (\n row[column.field] &&\n (row[column.field].toString().includes('PM') ||\n row[column.field].toString().includes('AM'))\n ) {\n row[column.field] = setTimeInDate(row[column.field]);\n }\n });\n } else if (!column.minutesInterval) {\n this.rowsData.forEach((row: any) => {\n if (row[column.field]) {\n row[column.field] = new Date(row[column.field] as string);\n }\n });\n }\n }\n // set filter value\n if (column.filter && column.filterValue && column.filtering !== false) {\n this.setFilterFocusOut(column);\n }\n\n // set DisplayText when value is in curly brackets.\n this.setDisplayTextValue(column);\n\n //Aggregate scenario\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n\n let searchFilters;\n if (!this.softCaching && this.componentTableRef?.id) {\n searchFilters = JSON.parse(\n localStorage.getItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl) as any\n );\n } else if (this.componentTableRef?.id) {\n searchFilters = this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl];\n }\n if (\n !this.hideFilter &&\n searchFilters &&\n searchFilters.filters &&\n searchFilters.filters?.length > 0\n ) {\n searchFilters.filters.forEach((x: any) => {\n if (x.field === column.field) {\n if (column?.filter?.type === 'calendar' && x.value) {\n column.filterValue = new Date(this.datePipe.transform(x.value, 'MM-dd-YY') as string);\n } else if (column.type === EGridColumnType.BOOLEAN) {\n column.filterValue = x.value;\n } else if (x.value) {\n column.filterValue = x.value;\n }\n }\n });\n }\n // converting displayField toLowercase\n if (column.displayField) {\n column.displayField = column.displayField.toLowerCase();\n }\n // set AutoComplete Data\n if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n this.rowsData &&\n this.rowsData?.length > 0\n ) {\n this.rowsData.forEach((row) => {\n // convert string that contains comma into arrays\n if (row[column.field]?.toString().includes(';')) {\n row[column.field] = row[column.field]\n ?.toString()\n .split(';')\n ?.map((value: any) => ({ [column.displayField?.toLowerCase()]: row[column.displayField], [column.optionLabel?.toLowerCase()]: value, [column.field?.toLowerCase()]: value }));\n }\n const key: any = Object.keys(row).find((x) => x === column.field.toLowerCase());\n // convert simple string into array\n if (!Array.isArray(row[key]) && row[key]) {\n if (column.displayField) {\n row[key] = [{ [column.displayField?.toLowerCase()]: row[column.displayField], [column.field?.toLowerCase()]: row[key] }];\n } else {\n if (column.optionLabel) {\n row[key] = [{ [column.field?.toLowerCase()]: row[key], [column.optionLabel?.toLowerCase()]: row[key] }];\n } else {\n row[key] = [{ [column.field?.toLowerCase()]: row[key] }];\n }\n }\n }\n });\n }\n\n //when we add a new row, it set the default value\n if (column.value) {\n let key = Object.keys(this.newGridRow).find((x) => x?.toLowerCase() === column.field?.toLowerCase())\n if (!key) {\n this.newGridRow[column.field] = column.value;\n }\n }\n });\n\n // Searching scenario\n if (change.rows?.currentValue && change.columns?.currentValue) {\n // Checks either column value is changes (i.e., column hidden scenario)\n if (\n JSON.stringify(change.columns.currentValue).toLowerCase() !==\n JSON.stringify(this.columns).toLowerCase()\n ) {\n this._selectedColumns = [];\n this.columns.forEach((x, i) => {\n if (!x.hidden) {\n if (this.selectedColumns[i]) {\n x.value = this.selectedColumns[i].value;\n }\n this._selectedColumns.push(x);\n }\n });\n }\n } else {\n this._selectedColumns = [];\n this.columns.forEach((x, i) => {\n if (!x.hidden) {\n if (this.selectedColumns[i]) {\n x.value = this.selectedColumns[i].value;\n }\n this._selectedColumns.push(x);\n }\n });\n }\n\n setTimeout(() => {\n const globalFilterBtn = document.getElementById('searchGlobalFilterBtn');\n if(globalFilterBtn){\n this.showFilterbtn = true;\n }\n const classElement = document.getElementsByClassName('highlighted-row');\n if (classElement.length > 0) {\n classElement[0].scrollIntoView();\n }\n\n if (this.editAllRows && this.rowsData?.length > 0 && this.columns?.length > 0) {\n this.editAllRowsAtOnce();\n }\n }, 500);\n }\n this.setDropdowndataValue = true;\n const globalSearchbtn = document.getElementById('globalSearchbtn');\n if (globalSearchbtn) {\n this.searchGridFilter = false;\n }\n if (this.rowsData?.length > 0 && this.generateRowsDataCopy) {\n this.rowsDataCopy = JSON.parse(JSON.stringify(this.rowsData));\n }\n }\n\n this.isCheckBoxChangeEventCalled = false;\n }\n\n autoCompleteSelectedValue(row: any, column: IGridColumn, value) {\n if (column.optionLabel) {\n const valueKey = column.optionValue ? column.optionValue : column.field;\n row[column.field] = [...row[column.field], {\n [column.optionLabel?.toLowerCase()]: value[column.optionLabel?.toLowerCase()], [valueKey?.toLowerCase()]: value[valueKey?.toLowerCase()],\n [column.field?.toLowerCase()]: value[valueKey?.toLowerCase()]\n }];\n const index = row[column.field]?.findIndex((x) => JSON.stringify(x) === JSON.stringify(value));\n row[column.field].splice(index, 1);\n }\n }\n\n // set DisplayText when value is in curly brackets.\n setDisplayTextValue(column: IGridColumn) {\n this.rowsData?.forEach((row) => {\n if (\n column.type === EGridColumnType.LINK ||\n EGridColumnType.DIALOG ||\n EGridColumnType.IFRAME\n ) {\n const field = row[column.field + '_obj'];\n if (column.displayText && column.displayText.includes('{')) {\n const displayText = column.displayText\n .replace('{', '')\n .replace('}', '');\n if (displayText && field) {\n field.displayText = row[displayText.toLowerCase()];\n }\n } else if (column.displayText && field) {\n field.displayText = column.displayText;\n }\n }\n });\n }\n\n setNumericMinMxFraction(column: any) {\n let digitInfo = '2';\n if (column?.format.type === 'percent' && !column?.format?.formatParams?.digitsInfo) {\n digitInfo = '0'\n } else if (column?.format?.formatParams?.digitsInfo) {\n digitInfo = column.format.formatParams.digitsInfo;\n }\n return digitInfo;\n }\n\n // set the format of currency && number && decimal && percent\n setNumericFormat(column: any, row: any) {\n row = objConvertToLower(row);\n let value: any = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.displayField?.toLowerCase()]\n ? row[column.displayField.toLowerCase()]\n : (row[column.field?.toLowerCase() + '_obj']?.text || row[column.field?.toLowerCase() + '_obj']?.text === 0 || row[column.field?.toLowerCase() + '_obj']?.text === null)\n ? row[column.field?.toLowerCase() + '_obj']?.text : row[column.field?.toLowerCase()];\n if (this.typeOf(value) === 'number' && value === 0) {\n value = value.toString();\n }\n let formatParams = column.format?.formatParams;\n let digitsInfo = formatParams?.digitsInfo;\n if (column.format && value) {\n switch (column.format?.type) {\n case EGridFormatType.CURRENCY:\n value = new Intl.NumberFormat(\n formatParams?.locale ? formatParams.locale : 'en-US',\n {\n style: 'currency',\n currency: formatParams?.currency ? formatParams.currency : 'USD',\n minimumFractionDigits: digitsInfo ? digitsInfo : '2',\n }\n )?.format(value);\n break;\n case EGridFormatType.DECIMAL:\n value = parseFloat(value).toFixed(digitsInfo ? digitsInfo : '2');\n break;\n case EGridFormatType.PERCENT:\n value = value + '%';\n break;\n }\n }\n return value;\n }\n\n //Change dropdown vlue based on option label and optionvalue\n setDropdownValue(column: IGridColumn, selectedRow?: any, change?: boolean) {\n if (this.rowsData && this.rowsData.length > 0) {\n this.rowsData.forEach((row) => {\n if (Object.keys(row)?.find((key) => key === column.field)) {\n if (column) {\n column.optionLabel = column.optionLabel\n ? column.optionLabel\n : 'label';\n column.optionValue = column.optionValue\n ? column.optionValue\n : 'value';\n }\n const value = column.data?.find(\n (record: any) =>\n record[column.optionValue]?.toString() ===\n row[column.field]?.toString()\n );\n const editedRow = selectedRow && Object.keys(selectedRow).length > 0 ? selectedRow[this.dataKey] === row[this.dataKey] : false;\n if (value && editedRow) {\n row[column.field] = value[column.optionValue];\n } else if (value && change === false) {\n row[column.field] = value[column.optionLabel];\n }\n }\n });\n }\n }\n\n //manipulate checkbox string value to true and false.\n changeCheckboxStringValue() {\n if (\n this.columns &&\n this.rowsData &&\n this.rowsData.length > 0 &&\n this.columns.length > 0\n ) {\n this.columns.forEach((column: any) => {\n if (column.type === EGridColumnType.DROPDOWN && this.setDropdowndataValue) {\n this.setDropdownValue(column, {}, false);\n }\n this.rowsData.forEach((row: any) => {\n if (column.type === EGridColumnType.BOOLEAN) {\n if (\n (typeof (row[column.field] === 'string') &&\n (row[column.field] === '1' || row[column.field] === '0')) ||\n row[column.field] === 'Y' ||\n row[column.field] === 'N'\n ) {\n row[column.field] =\n row[column.field] === '1' || row[column.field] === 'Y'\n ? true\n : false;\n }\n }\n });\n });\n }\n }\n\n /**\n *\n * @param rowData\n * Passes data of clicked row to parent\n */\n handleRowClick(rowData: any) {\n this.rowClickData = rowData;\n if(!this.editAllRows){\n this.onRowClick.emit(rowData);\n }\n }\n\n /**\n *\n * @param columnData\n * Passes sorting information to parent on sort change\n */\n handleSortChange(event: any) {\n let sortDirection = null;\n let sortField: string = '';\n if (event.multisortmeta && event.multisortmeta[0].order) {\n sortDirection =\n event.multisortmeta[0].order == 1\n ? EGridSortDirection.ASC\n : EGridSortDirection.DESC;\n sortField = event.multisortmeta[0].field;\n }\n let sorts: IGridSort = {\n field: sortField,\n direction: sortDirection as EGridSortDirection,\n priority: 0,\n };\n this.onSortChange.emit(sorts);\n }\n\n /**\n *\n * @param event\n * Passes applied filters to parent on filter change\n */\n handleFilterChange(event: any) {\n this.columns.forEach((filter: any) => {\n if (!event.filters[filter.field]?.value && !filter.value) {\n filter.value = '';\n }\n });\n this.onFilterChange.emit(event);\n }\n\n /**\n *\n * @param event : Event\n * @param columnAction : IGridColumnAction\n * @param row : any\n * Stop the click event propagation to parent\n * Callbacks the row data to parent\n */\n\n /**\n * invoke onClick event & open Iframe in grid\n */\n gridIFrame(column: any, rows: any, row: any) {\n this.onClickEvent(column, row);\n const ref = this.dialogService.open(IframeComponent, {\n header: column.header,\n width: '80%',\n height: '80%',\n data: {\n value: rows,\n iFrameId: column.displayText ? column.displayText : column.field,\n },\n });\n const componentName = column.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((res) => {\n if (res && column.onReturn) {\n column.onReturn(res);\n } else if (res && column.onChange) {\n column.onChange(res);\n }\n });\n }\n\n addNewRow(row: any, addRow: boolean = false) {\n this.refreshGridTerminator()\n this.componentTableRef = this.table;\n this.columns.forEach((column) => {\n if (\n column.filter &&\n column.component &&\n column.filter.type === 'calendar'\n ) {\n if (addRow) {\n this.rowsData[0][column.field + '_secondType'] = EGridColumnType.DATE;\n } else {\n row[column.field + '_secondType'] = EGridColumnType.DATE;\n }\n }\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n });\n this.rowClickData = row;\n this.addNewRowCheck = true;\n this.dropdownInput = false;\n this.sortDisabled = true;\n this.onGridRowAdd.emit(row);\n }\n\n /**\n * open Dialog in grid\n */\n openGridDialog(column: IGridColumn | any, row: any) {\n var isDisabled = column.disabled\n ? true\n : row[column.field+'_obj']?.disabled\n ? true\n : false;\n this.onClickEvent(column, row);\n setTimeout(() => {\n this.rowClickData = row;\n if (column.data && column.data.data && row[column.field + '_obj']) {\n column.data.data = row[column.field + '_obj']?.dialogData;\n }\n\n if (column.component && column.data && this.rowClickData && !isDisabled) {\n const data = { ...column.data };\n data.data = autoSetLookupData(\n column.data.data,\n this.rowClickData\n );\n const ref = this.dialogService.open(column.component, data);\n const componentName = column.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((data: any) => {\n if (data && column.onReturn) {\n column.onReturn(data, this.rowClickData);\n } else if (data) {\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(data);\n }\n }\n });\n }\n }, 10);\n }\n\n browserCloseEvent(event: boolean = false) {\n this.gridService.columnFocusedOut = event;\n }\n\n setMultiSelectData(column: IGridColumn, selectedValue: any) {\n if (selectedValue && column.type == EGridColumnType.MULTISELECT) {\n if (selectedValue && selectedValue?.toString()?.includes(',')) {\n selectedValue = selectedValue?.toString()?.split(',')?.map((value) => column.data?.find((option) => option.value?.toString() === value?.toString())?.label)?.toString();\n } else {\n selectedValue = column.data?.find((option) => option.value?.toString() === selectedValue?.toString())?.label;\n }\n }\n return selectedValue;\n }\n\n setTextBoxReadOnlyValue(row: any, column: any){\n let value : any;\n if(column.displayText){\n value = column.displayText; \n }else if(row[column.field + '_obj']?.displayText){\n value = row[column.field + '_obj']?.displayText;\n }else if(row[column.field + '_obj']?.displayField){\n value = row[row[column.field + '_obj']?.displayField?.toLowerCase()];\n }else if(column.displayField){\n value = row[column.displayField?.toLowerCase()];\n }else {\n value = row[column.field];\n }\n return value;\n }\n\n /**\n * return conditional base value and title\n */\n setConditionBaseValue(row: any, column: any) {\n delete row['undefined'];\n let value: any;\n if (column.type == EGridColumnType.DATE) {\n let newValue: any;\n if (typeof (row[column.field + '_obj']) === \"object\" && row[column.field + '_obj']) {\n newValue = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.field?.toLowerCase() + '_obj']?.text\n } else {\n newValue = row[column.field];\n }\n\n if (newValue) {\n if (column.timeOnly) {\n value = this.setTimeFormat(newValue);\n } else {\n let format = this.setFormat(column);\n value = this.datePipe.transform(newValue?.toString() === \"Invalid Date\" ? null : newValue, format ? format : 'MM/dd/yy');\n }\n }\n } else {\n value = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.displayField?.toLowerCase()]\n ? row[column.displayField?.toLowerCase()]\n : row[column.field + '_obj'] &&\n row[column.field + '_obj'].displayText === null\n ? ''\n : row[column.field + '_obj']?.displayText\n ? column?.filter?.type === 'calendar' && column.timeOnly && column.type === EGridColumnType.DIALOG ?\n (row[column.field + '_obj'].displayText.toString().includes('AM') || row[column.field + '_obj'].displayText.toString().includes('PM')) ?\n row[column.field + '_obj'].displayText : this.datePipe.transform(row[column.field + '_obj'].displayText, 'hh:mm a')\n : column.format ? this.datePipe.transform(row[column.field + '_obj'].displayText, this.setFormat(column)) : row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : column.icon ? column.header\n : row[column.field];\n }\n return value;\n }\n\n setFormat(column) {\n let format = '';\n if (column?.format) {\n switch (column.format) {\n case EGridFormatType.SMALLDATE: {\n format = 'MM/dd/yy';\n break;\n }\n case EGridFormatType.SHORTDATE: {\n format = 'MM/dd/yyyy';\n break;\n }\n case EGridFormatType.MEDIUMDATE: {\n format = 'M d, yy';\n break;\n }\n case EGridFormatType.LONGDATE: {\n format = 'MM/dd/YY, h:mm a';\n break;\n }\n case EGridFormatType.PERIOD: {\n format = 'MM/yy';\n break;\n }\n default: {\n format = column.format;\n break;\n }\n }\n }\n return format\n }\n\n setDropdwonReadOnlyValue(row: any, column: any) {\n delete row['undefined'];\n const value = row[column.displayField]\n ? row[column.displayField]\n : column.data?.find(dropdownVal => dropdownVal?.value == row[column.field])\n ? column.data?.find(dropdownVal => dropdownVal?.value == row[column.field])?.label\n : row[column.field];\n return value;\n }\n\n\n /**\n * open Delete Confirmation dialog when click on delete icon in Action column\n */\n handleActionClick(event: Event, columnAction: IGridColumnAction, row: any) {\n event.stopPropagation();\n if (columnAction.tooltip.toLowerCase() === 'delete') {\n if (columnAction.confirmDialog === false) {\n columnAction.onClick(row);\n } else {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this record?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handlecolumnActions',\n accept: () => {\n columnAction.onClick(row);\n this.confirmationService.close();\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n } else {\n columnAction.onClick(row);\n }\n }\n\n /**\n *\n * @param event : LazyLoadEvent\n * Triggers everytime a server side filter is trigger\n */\n handleServerSideEvents(event: any) {\n this.gridfilter = event;\n setTimeout(() => {\n if (this.selectedColumns && this.selectedColumns.length > 0) {\n this.selectedColumns.forEach((x: any) => {\n if (event.filters[x.field]) {\n event.filters[x.field].value = x.filterValue;\n }\n });\n }\n\n this.loading = this.autoLoadData;\n this.serverFilters = {\n filters: this.lookupFilters\n ? this.gridService.getGridFilters(event, this.selectedColumns)\n : this.gridService.prepareBasicFilters(event, this.selectedColumns),\n sorts: this.gridService.getGridSorts(event, this.selectedColumns),\n ...(this.pagination && {\n page: this.gridService.getGridPagination(event),\n pageSize: event.rows || 10,\n }),\n };\n\n if (\n this.serverFilters?.filters &&\n this.serverFilters?.filters.length > 0 &&\n (this.allowCaching || this.softCaching)\n ) {\n if (!this.softCaching && this.componentTableRef?.id) {\n localStorage.setItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl, JSON.stringify(this.serverFilters));\n } else if (this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = this.serverFilters;\n }\n } else {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = {};\n }\n\n const serverFilterValues = JSON.parse(JSON.stringify(this.serverFilters));\n serverFilterValues.filters = (this.serverFilters.filters || []).concat(\n this.globalData\n );\n this.isCheckBoxChangeEventCalled = false;\n this.onServerSideEventChange.emit(serverFilterValues);\n }, 950);\n }\n\n /**\n * @param event\n * Passes applied pagination to parent on page change\n */\n handleServerSidePagination(event: IGridPaginationEvent) {\n this.onPageChange.emit(event);\n }\n\n selectedRow(row: any) {\n this.onRowCheckBox.emit(row);\n }\n\n // set time format\n setTimeFormat(date: any) {\n let value: any = '';\n if (date?.toString().includes('AM') || date?.toString().includes('PM')) {\n value = setTimeInDate(date);\n } else {\n value = this.datePipe.transform(date, 'hh:mm a');\n }\n return value;\n }\n\n //open hyperlink in edit case\n openLink(url: any) {\n if (url) {\n const link: any = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.click();\n }\n }\n\n /**\n *\n * @param row\n * Sets values to editable row\n * Row's data is preseved to prevent mutation\n * Row dataKey is preserved to keep the row unique and in editable state as long as not saved\n */\n\n refreshGridTerminator() {\n if (this.setGridRefreshTime) {\n this.reloadPage?.unsubscribe();\n }\n }\n\n onRowEditInit(row: any) {\n this.refreshGridTerminator()\n let selectedRow = { ...row };\n Object.entries(selectedRow).forEach(([key, value]: any) => {\n this.columns.forEach((col: any) => {\n if (this.setDropdownFilter) {\n this.setDropdownFilterValue(col, row, key);\n this.setDropdownFilter = false;\n }\n // set the autoComplete Value in edit mode\n if (\n col.type === EGridColumnType.AUTOCOMPLETE &&\n col.field?.toLowerCase() === key?.toLowerCase() &&\n value &&\n value.length > 0\n ) {\n if(col.displayField){\n selectedRow[col.field].forEach((row) => {\n row[col.field?.toLowerCase() + '_temp'] = row[col.displayField];\n row[col.displayField] = row[col.field];\n });\n }\n let newValue = value.map((x: any) => x[col.displayField]);\n if (newValue?.toString()?.includes(';')) {\n row[col.field] = newValue\n ?.toString()\n ?.replaceAll(';', ',')\n ?.split(',')\n ?.map((x: any) => ({ [col.displayField ? col.displayField : col.field]: x, [col.field+ '_temp']: value[0][col.field] }));\n }\n }\n\n if (col.type === EGridColumnType.DROPDOWN) {\n let option = col?.data?.find(\n (x: any) => x.label === row[col.field]?.toString()\n );\n if (option) {\n row[col.field] = option.value;\n }\n }\n if (\n col.field?.toLowerCase() === key?.toLowerCase() &&\n col.type === EGridColumnType.DATE\n ) {\n if (row[col.field] !== null) {\n if (row[key+'_obj'] && Object.keys(row[key+'_obj'])?.length > 0) {\n row[key+'_obj'].text = new Date(value as string);\n } else {\n row[key] = new Date(value as string);\n }\n }\n\n // check the Minutes pattern\n if (\n (col.showTime || col.timeOnly) &&\n col.minutesInterval &&\n row[key]\n ) {\n row[key] = new Date(setMinutesInterval(row[key]));\n }\n }\n if (\n col.type === EGridColumnType.DIALOG &&\n col.filter?.type === 'calendar' &&\n col.field.toLowerCase() === key.toLowerCase()\n ) {\n if (value === null) {\n row[key] = new Date();\n } else {\n row[col.field] = new Date(value);\n }\n }\n if (\n col.type === EGridColumnType.LINK &&\n col.field?.toLowerCase() === key?.toLowerCase() &&\n (col.allowSave === true || col.allowSave === undefined)\n ) {\n if (col.editLink === true) {\n row[key] = row[col.field + '_obj']?.hyperlink;\n } else if (col.editLink === false || col.editLink === undefined) {\n row[key] = value;\n }\n }\n });\n });\n\n this.editRowsRecords[row[this.dataKey]] = { ...row };\n this.editingRowKeys[row[this.dataKey]] = true;\n this.checkAction = true;\n this.dropdownInput = true;\n this.rowClickData = row;\n this.inEditMode = true;\n this.cancelAllRecords = false;\n this.saveAllRecord = false;\n this.sortDisabled = true;\n this.onGridRowEdit.emit(row);\n }\n\n typeOf(value: any) {\n return typeof value;\n }\n\n /**\n * set dropdown filter value\n */\n setDropdownFilterValue(col: any, row: any, key: string) {\n if (col.type === EGridColumnType.DROPDOWN && col.dropDownProp) {\n if (Object.values(col).some((value) => value == key)) {\n let obj = col.dropDownProp;\n let newFilters: any = [];\n if (obj.filters && obj.filters.length > 0) {\n obj.filters.forEach((filter: any) => {\n let newFilter = { ...filter };\n let filterKey = Object.keys(row).find((key) => {\n let matchKey: string = '';\n if (\n filter.value?.includes('{') &&\n key.toLowerCase() ===\n filter.value\n ?.toString()\n ?.toLowerCase()\n .replace('{', '')\n .replace('}', '')\n ) {\n matchKey = key;\n }\n return matchKey;\n });\n if (filterKey) {\n newFilter.value = row[filterKey];\n }\n newFilters.push(newFilter);\n });\n }\n\n this.gridService.setDropdownData(\n col,\n obj.uniqueKey,\n obj.valueProp,\n obj.labelProp,\n newFilters,\n row\n );\n\n let option = col.data.find(\n (x: any) => x.label === row[col.field]?.toString()\n );\n if (option) {\n row[col.field] = option.value;\n }\n }\n }\n }\n\n /**\n *\n * @param row\n * Passes the edited or newly created data to parent\n * In case of newly created data, dataKey and isNew prop is removed\n */\n onRowEditSave(selectedRow: any) {\n let automCompleteTempData = [];\n let lookupInfo: any = {};\n this.selectedColumns.forEach((column: any) => {\n delete selectedRow[column.field + '-data'];\n delete selectedRow[column.field + '_secondType'];\n if (\n column.type === EGridColumnType.LOOKUP_INPUT &&\n (column.allowSave === true || column.allowSave === undefined)\n ) {\n if(typeof (selectedRow[column.field]) === 'object'){\n selectedRow[column.field] = selectedRow[column.field]?.value;\n }\n if(selectedRow[column.field + '_obj']?.text){\n lookupInfo[column.field] = selectedRow[column.field + '_obj'].text;\n }\n }\n\n if (column.formatter) {\n let value: any = selectedRow[column.field];\n if (column.formatter === 'char') {\n value = value === true ? 'Y' : 'N';\n } else if (column.formatter === 'numeric') {\n value = value === true ? '1' : '0';\n }\n selectedRow = { ...selectedRow, [column.field]: value };\n }\n\n //convert date into time format\n if (\n column.type === EGridColumnType.DATE\n ) {\n if (column.timeOnly && column.saveAsString) {\n selectedRow[column.field] = this.datePipe.transform(selectedRow[column.field], 'hh:mm a');\n }\n else if (!column.timeOnly && column.showTime) {\n selectedRow[column.field] = this.datePipe.transform(selectedRow[column.field], 'yyyy-MM-dd HH:mm:ss');\n } else if (selectedRow[column.field] && !column.timeOnly && column.saveAsString) {\n selectedRow[column.field] = selectedRow[column.field].toLocaleDateString();\n }\n }\n // if allowCalculate=true, divide the percent by 100\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n if (column.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n selectedRow[column.field] = parseFloat((selectedRow[column.field] / 100)?.toString()).toFixed(digitsInfo);\n } else {\n selectedRow[column.field] = selectedRow[column.field] / 100;\n }\n }\n }\n }\n\n //convert multiselect array into string\n if (\n column.type === EGridColumnType.MULTISELECT && selectedRow[column.field]\n ) {\n selectedRow[column.field] = selectedRow[column.field]?.toString();\n }\n\n // Saving AutoComplete Data\n if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n column.displayField &&\n selectedRow[column.field]?.length > 0\n ) {\n automCompleteTempData = [...selectedRow[column.field]];\n selectedRow[column.field] = selectedRow[column.field]?.map((row) => column?.optionValue && row[column.optionValue?.toLowerCase()] ?\n row[column.optionValue?.toLowerCase()] : row[column.field?.toLowerCase()])?.toString()?.replaceAll(',', ';');\n }\n });\n\n let row: any = { ...selectedRow };\n let keys = Object.keys(row);\n keys.forEach((key) => {\n if (key.includes('_obj')) {\n let obj: any = row[key]\n if (this.checkAction === false && obj?.type && (obj.type === 'link' || obj.type === 'iframe' || obj.type === 'dialog')) {\n row = { ...row, [key.split('_')[0]]: row[key].displayText };\n this.checkAction = true;\n }\n if (\n obj &&\n (obj.type === 'link' ||\n obj.type === 'iframe' ||\n obj.type === 'dialog')\n ) {\n delete row[key];\n }\n }\n });\n /**\n * just emit those fields who exist in the table\n */\n row = this.gridService.setRowValue(row);\n let obj: any = {};\n this.columns.forEach((column: any) => {\n if (\n (column.allowSave === true || column.allowSave === undefined || this.saveAllData)\n ) {\n obj[column.field] = row[column.field];\n if (\n column.type === EGridColumnType.DIALOG &&\n column.filter?.type === 'calendar'\n ) {\n obj[column.field] = this.datePipe.transform(\n obj[column.field],\n 'yyyy-MM-ddT00:00:00.000Z'\n );\n }\n\n //Set Decimal Fraction Value\n if (\n column.format &&\n column.format.type === EFormatType.DECIMAL &&\n row[column.field] &&\n !row[column.field].toString().includes('.')\n ) {\n let digitsInfo = '.00';\n let zero = '0';\n const formatParams = column.format?.formatParams;\n const fracDigits = column?.format?.formatParams?.digitsInfo;\n if (fracDigits) {\n for (let i = 1; i < fracDigits; i++) {\n zero = zero + '0';\n }\n digitsInfo = '.' + zero;\n }\n obj[column.field] = row[column.field] + digitsInfo;\n }\n } else if (\n row.isNew &&\n (column.allowSave === false || column.editable === false || !this.saveAllData)\n ) {\n delete row[column.field];\n }\n });\n delete selectedRow['undefined'];\n this.gridService.checkValidity(this.columns, row);\n const isValid = this.gridValidation(this.columns, row);\n if (isValid) {\n // set the grid updated/inserted data\n this.rowActionEvents(selectedRow);\n this.browserCloseEvent(false);\n if (row.isNew || row.isnew) {\n let { isNew, isnew, ...newRowObj } = row;\n newRowObj = this.gridService.removeExtraNewRowObj(newRowObj, this.columns);\n if (!this.addDataKeyValue) {\n delete newRowObj[this.dataKey];\n }\n newRowObj = this.setRowsData(newRowObj);\n if (this.saveAllRecord) {\n this.saveRecordArray.push(newRowObj);\n } else {\n this.onRowAdd.emit(newRowObj);\n }\n } else {\n if (this.saveAllRecord) {\n this.saveRecordArray.push(obj);\n } else {\n if (this.checklist.length > 0)\n this.onRowUpdate.emit(this.setRowsData(this.checklist));\n else {\n this.onRowUpdate.emit(obj);\n }\n }\n }\n this.editingRowKeys[row[this.dataKey]] = this.editAllRows;\n } else {\n this.editingRowKeys[row[this.dataKey]] = true;\n }\n // if all rows in read only mode then show editAllRows button. \n if (Object.values(this.editingRowKeys).every((value) => !value)) {\n this.inEditMode = false;\n this.hideEditAllRowsBtn = true;\n this.sortDisabled = false;\n }\n this.selectedColumns.forEach((column: any) => {\n // convert date into time\n if (\n selectedRow[column.field] &&\n (selectedRow[column.field]?.toString()?.includes('PM') ||\n selectedRow[column.field]?.toString()?.includes('AM'))\n ) {\n selectedRow[column.field] = setTimeInDate(row[column.field]);\n }\n\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n if (column.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n selectedRow[column.field] = parseFloat((selectedRow[column.field] * 100)?.toString()).toFixed(digitsInfo);\n } else {\n selectedRow[column.field] = selectedRow[column.field] * 100;\n }\n }\n }\n } else if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n selectedRow[column.field]\n ) {\n // set autocompelet array data after save row\n selectedRow[column.field] = automCompleteTempData;\n } else if (\n column.type === EGridColumnType.LOOKUP_INPUT &&\n selectedRow[column.field] && (column.allowSave === true || column.allowSave === undefined)\n ) {\n // set LOOKUP_INPUT data after save row\n if (lookupInfo[column.field]) {\n selectedRow[column.field] = lookupInfo[column.field];\n }\n } else if (\n column.type === EGridColumnType.DROPDOWN &&\n column.optionLabel &&\n column.optionValue\n ) {\n this.setDropdownValue(column, selectedRow);\n }\n });\n this.addNewRowCheck = false;\n if (Object.values(this.editingRowKeys).every((value) => !value) && this.setGridRefreshTime) {\n this.refreshGrid();\n }\n this.isCheckBoxChangeEventCalled = false;\n }\n\n // check the validation of the field\n gridValidation(columns: any, row: any): boolean {\n if (!this.gridService.checkValidity(columns, row)) {\n let errorMessageDetails: string = '';\n columns?.forEach((column) => {\n if (column.errorMessage) {\n errorMessageDetails = errorMessageDetails ? errorMessageDetails + ' , ' + column.errorMessage : column.errorMessage;\n }\n })\n let isRequired = columns.some(\n (column: any) => column.errorMessage && !row[column.field]\n );\n if (isRequired) {\n this.alertService.error(\n errorMessageDetails,\n 5000,\n 'REQUIRED FIELD'\n );\n } else {\n this.alertService.error(errorMessageDetails, 5000, 'INVALID FIELD');\n }\n return false;\n } else {\n return true;\n }\n }\n\n /**\n *\n * @param row : any\n * @param index : number\n * Clears out the edit row and replace with readable one\n */\n onRowEditCancel(row: any, index: number) {\n let rowInEditMode: boolean = Object.values(this.editingRowKeys).every((value) => !value);\n if (row?.isNew) {\n this.rowsData.splice(index, 1);\n } else {\n this.rowsData[index] = this.editRowsRecords[row[this.dataKey]];\n delete this.editRowsRecords[row[this.dataKey]];\n }\n delete this.editingRowKeys[row[this.dataKey]];\n this.columns.forEach((column) => {\n if (column.type === EGridColumnType.DROPDOWN) {\n this.setDropdownValue(column, row);\n } else if (column.type === EGridColumnType.LOOKUP_INPUT && column.displayField) {\n this.rowsData[index][column.field] = row[column.field]?.value;\n }\n });\n this.inEditMode = false;\n if (rowInEditMode) {\n this.sortDisabled = false;\n }\n this.addNewRowCheck = false;\n this.inlineRowCancel.emit(row);\n setTimeout(() => {\n if (rowInEditMode && this.setGridRefreshTime) {\n this.refreshGrid();\n }\n }, 50);\n }\n\n /**\n * \n *\n *\n * @param row\n * Sends the row payload to parent for deletions\n */\n\n /**\n *set the gridData on row actions events\n */\n rowActionEvents(rowInfo, deleteRow: boolean = false) {\n let action: string = '';\n let gridRowsData: any[] = [...this.rowsData];\n const index = gridRowsData.findIndex((rowData) => rowInfo[this.dataKey] === rowData[this.dataKey]);\n if (index > -1) {\n if (deleteRow) {\n gridRowsData.splice(index, 1);\n this.rowsData = [...gridRowsData];\n action = 'delete';\n } else {\n if (this.addNewRowCheck) {\n action = 'insert';\n } else {\n action = 'update';\n }\n if (this.onGridRowActions.observers.length !== 0) {\n rowInfo['rowAction'] = action;\n }\n gridRowsData[index] = rowInfo;\n }\n }\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n this.onGridRowActions.emit(gridRowsData);\n }\n\n /**\n * open Delete confirmation dialog when trying to delete row\n */\n deleteRecord(row: any) {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this record?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handleInlineCRUD',\n accept: () => {\n if (this.useServerSideEvents) {\n this.loading = true;\n }\n // set the grid deleted data \n this.rowActionEvents(row, true);\n this.onRowDelete.emit(row);\n this.confirmationService.close();\n this.inEditMode = false;\n this.loading = false;\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n\n /**\n * To set disabled the control\n */\n allowDisabled(column: any, row: any): boolean {\n let value: boolean = false;\n if (row[column.field + '_obj'] && typeof (row[column.field + '_obj']) === 'object') {\n if (\n Object.keys(row[column.field + '_obj'])?.includes('disabled') && row[column.field + '_obj']?.disabled === true\n ) {\n value = true;\n }\n } else if (column.disabled) {\n value = true;\n }\n return value;\n }\n\n /**\n * To set aggregate in grid footer\n */\n setAggregateText(column: IGridColumn) {\n if (column?.aggregate) {\n column.aggregate.forEach((col: any) => {\n if (this.rowsData && this.rowsData.length > 0) {\n let columnType: EGridAggregate = col.type;\n if (columnType === EGridAggregate.COUNT) {\n let count = this.rowsData.length;\n count = this.setFetchAggregatedValue(column, count, 1);\n col.aggrValue = this.setAggregateFooterText(col, count, 'Count');\n }\n\n if (\n columnType === EGridAggregate.SUM ||\n columnType === EGridAggregate.AVERAGE\n ) {\n const colValues: number[] = this.getColumnValues(column);\n if (colValues && colValues.length > 0) {\n let sum = colValues.reduce((acc, cur) => acc + cur, 0);\n if (columnType === EGridAggregate.SUM) {\n sum = this.setFetchAggregatedValue(column, sum, 2);\n col.aggrValue = this.setAggregateFooterText(col, sum, 'Sum');\n }\n if (columnType === EGridAggregate.AVERAGE) {\n let average = sum / colValues.length || 0;\n average = this.setFetchAggregatedValue(column, sum, 3);\n col.aggrValue = this.setAggregateFooterText(\n col,\n average,\n 'Avg'\n );\n }\n }\n }\n } else {\n col.aggrValue = '';\n }\n });\n }\n }\n\n // set the aggregataion value that coming from fetch\n setFetchAggregatedValue(column, aggregateValue, aggregateAction){\n if(this.aggregatedResult?.length > 0){\n const aggregatedColumn = this.aggregatedResult.find((aggregate)=> aggregate.field?.toLowerCase() === column.field?.toLowerCase() && aggregate.aggregationOperation === aggregateAction);\n if(aggregatedColumn){\n aggregateValue = aggregatedColumn?.value;\n }\n }\n return aggregateValue;\n }\n\n /**\n * set grid Aggregate values\n */\n setAggregateFooterText(column: any, value: number, defaultCaption: string) {\n const isDecimalFormat: boolean = column.format?.type === 'decimal';\n const digitsInfo = column.format?.digitsInfo;\n const caption: string =\n column.caption?.length > 0 ? column.caption : defaultCaption;\n\n const decimalPoint = isDecimalFormat\n ? value?.toFixed(digitsInfo ? digitsInfo : 2)\n : value?.toFixed(0);\n return `${caption} ${decimalPoint\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')} </br>`;\n }\n\n /**\n * set decimat and numeric values\n */\n setNumericValues() {\n if (this.columns?.length > 0 && this.rowsData?.length > 0) {\n this.columns.forEach((column: any) => {\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n this.rowsData.forEach((row) => {\n if (column?.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n row[column.field] = parseFloat((row[column.field] * 100)?.toString()).toFixed(digitsInfo); //THESE COMMENTED OUT LINES SHOULD RUN ON SAVE\n } else {\n row[column.field] = row[column.field] * 100;\n }\n } else if (digitsInfo) {\n row[column.field] = parseFloat(row[column.field]).toFixed(digitsInfo);\n }\n } else if (column?.format?.type === 'decimal') {\n row[column.field] = parseFloat(row[column.field]).toFixed(digitsInfo ? digitsInfo : 2);\n }\n });\n }\n })\n }\n }\n\n /**\n * get column value based on column field\n */\n getColumnValues(column: IGridColumn) {\n let arr: any = [];\n this.rowsData.forEach((row) => {\n let keys = Object.keys(row);\n keys.map((key) => {\n if (column.field === key) {\n arr.push(row[key]);\n }\n });\n });\n return arr;\n }\n\n /**\n *\n * Export to PDF\n */\n exportPdf() {\n var exportData = this.setExportData([...this.rowsData], true);\n let doc = new jsPDF('p', 'pt');\n doc.table(1, 1, exportData.rows, exportData.headings, { autoSize: true });\n doc.save('Export.pdf');\n }\n\n /**\n * Sub-function to set rows for export to Pdf, and Excel\n * @rows param for rows\n * @isExcel param for export to excel indication\n */\n setExportData(rows: any[] = [], isPdf: boolean = false): IGridDataExport {\n const headings: any = this.columns.map((column) => column.field);\n rows.forEach((row) => {\n for (var prop in row) {\n if (!headings.includes(prop)) {\n delete row[prop];\n }\n if (isPdf) {\n row[prop] =\n !row[prop] && typeof row[prop] !== 'boolean'\n ? ''\n : row[prop].toString();\n }\n }\n });\n return { rows, headings };\n }\n\n /**\n *\n * Export to Excel\n */\n exportExcel() {\n let exportData: any = this.exportDataToExcel();\n import('xlsx').then((xlsx) => {\n const worksheet: WorkSheet = xlsx.utils.json_to_sheet(exportData);\n let rowIndex = 0;\n exportData.forEach((row: any) => {\n let colIndex = 0;\n this.selectedColumns.forEach((col: any) => {\n const cellValue: string = row[col.header];\n if (cellValue && cellValue.length > 0 && cellValue.indexOf('|') > 0) {\n const linkText: string = cellValue.split('|')[0];\n let linkUrl: string = cellValue.split('|')[1];\n if (linkUrl && !linkUrl.startsWith('http')) {\n if (!linkUrl.startsWith('/')) {\n linkUrl = '/' + linkUrl;\n }\n linkUrl =\n window.location.protocol +\n '//' +\n window.location.hostname +\n linkUrl;\n }\n const cellAddress = xlsx.utils.encode_cell({\n c: colIndex,\n r: rowIndex + 1,\n });\n\n worksheet[cellAddress] = {\n f: `=HYPERLINK(\"${linkUrl}\", \"${linkText}\")`,\n };\n }\n\n colIndex++;\n });\n\n rowIndex++;\n });\n const workbook = {\n Sheets: { sheet1: worksheet },\n SheetNames: ['sheet1'],\n };\n const excelBuffer: any = xlsx.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n this.saveAsExcelFile(excelBuffer, 'Export.xlsx');\n });\n }\n\n exportDataToExcel() {\n let arr: any = [];\n this.rowsData.forEach((row: any) => {\n let obj: any = {};\n this.selectedColumns.forEach((column: any) => {\n const gridHeader = column.header;\n if (column.type === EGridColumnType.LINK) {\n const linkObj = row[column.displayText?.toLowerCase() + '_obj'];\n obj[gridHeader] = row[column.field] + '|' + linkObj?.hyperlink;\n } else {\n obj[gridHeader] = row[column.field];\n }\n });\n\n arr.push(obj);\n });\n return arr;\n }\n\n /**\n *\n * Export to excel (sub-method)\n */\n saveAsExcelFile(buffer: any, fileName: string): void {\n import('file-saver').then((FileSaver) => {\n let EXCEL_TYPE =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n saveAs(data, fileName);\n });\n }\n\n /**\n *set config data of lookup control dialog\n */\n setLookupDialogConfig(row: any, column: any, data: any) {\n let selection: string = '';\n if (row[column.field] && typeof row[column.field] === 'object') {\n selection = row[column.field].text;\n } else if (column.displayField && row[column.displayField]) {\n selection = row[column.displayField];\n } else {\n selection = row[column.field];\n }\n\n if (column.field && typeof row[column.field] === 'object') {\n const newRow = { ...row };\n newRow[column.field] = newRow[column.field]?.value;\n row = { ...newRow };\n }\n\n if (column.type === EGridColumnType.LOOKUP_INPUT && data) {\n let obj = autoSetLookupData(data, row);\n row[column.field + '-data'] = obj;\n }\n return {\n rowData: row[column.field + '-data'],\n selection: selection,\n column: column,\n };\n }\n\n /**\n * open link on lookupControl control in read only mode when editLink set true\n */\n openLookupHyperlink(column: IGridColumn, row: any) {\n if (column.editLink === true && column.component) {\n let obj: any = this.setLookupDialogConfig(row, column, column.data?.data);\n obj['component'] = column.component;\n const ref = this.openLookupDialog(obj);\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((res) => {\n if (res && column.onReturn) {\n column.onReturn(res);\n }\n });\n }\n }\n\n /**\n * open lookup Dialog\n */\n openLookupDialog(column?: any, row: any = {}) {\n const columnData = column.column?.lookupControl?.data ? column.column.lookupControl.data : column.column.data;\n if (row[column.column.field?.toLowerCase() + '_obj']?.lookupControl) {\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.header ? columnData.header = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.header : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.width ? columnData.width = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.width : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.height ? columnData.height = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.height : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.valueProp ? columnData.valueProp = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.valueProp : \"\"\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.labelProp ? columnData.labelProp = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.labelProp : \"\"\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.data ? columnData.data = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.data : ''\n }\n const ref = this.dialogService.open(column.component, {\n ...columnData,\n data: {\n selection: column.selection,\n field: column.column.field,\n labelProp: column.column.lookupControl?.data?.labelProp,\n ...column.rowData,\n },\n });\n const componentName = row[column.column.field]?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n return ref;\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(column: any, row?: any) {\n this.onClickEvent(column, row);\n let obj: any = this.setLookupDialogConfig(\n row,\n column,\n row[column.field + '_obj']?.lookupControl?.data?.data\n ? row[column.field + '_obj']?.lookupControl?.data?.data : column?.lookupControl?.data?.data\n );\n\n obj['component'] = row[column.field + '_obj']?.lookupControl?.component ? row[column.field + '_obj']?.lookupControl?.component : column.lookupControl?.component;\n const ref = this.openLookupDialog(obj, row);\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe(\n (res) => {\n if (res) {\n let value = setDialogResponse(\n column,\n column.lookupControl,\n res\n );\n res = objConvertToLower(res);\n let labelProp = column?.lookupControl?.data?.labelProp?.toLowerCase();\n let valueProp = column?.lookupControl?.data?.valueProp?.toLowerCase();\n let columnField = column?.field?.toLowerCase();\n if (column.displayField) {\n if(row.hasOwnProperty(column.displayField?.toLowerCase())){\n row[columnField] = res[valueProp ? valueProp : columnField];\n row[column.displayField?.toLowerCase()] = res[labelProp ? labelProp : column.displayField.toLowerCase()];\n }else{\n row[columnField] = {\n text: res[labelProp ? labelProp : column.displayField.toLowerCase()],\n value: res[valueProp ? valueProp : columnField],\n }\n }\n } else if (value && value.value) {\n value['field'] = columnField;\n if (labelProp || valueProp) {\n row[columnField] = {\n text: res[labelProp ? labelProp : res[labelProp]],\n value: res[valueProp ? valueProp : res[labelProp]],\n };\n } else {\n row[columnField] = value.value;\n }\n } else {\n if (labelProp || valueProp) {\n row[columnField] = {\n text: res[labelProp ? labelProp : valueProp ? valueProp : res[columnField]],\n value: res[valueProp ? valueProp : res[columnField]],\n };\n } else {\n row[columnField] = res[columnField];\n }\n }\n }\n if (typeof (row[column.field]) === \"object\") {\n row[column.field + '_obj'] = {...row[column.field + '_obj'], text: row[column.field]};\n row[column.field] = row[column.field]?.value;\n } else if(!column.displayField){\n row[column.field + '_obj'] = {...row[column.field + '_obj'], text: {text: res[column.field?.toLowerCase()], value: res[column.field?.toLowerCase()] }};\n }\n if (column.onReturn) {\n column.onReturn(res, row);\n }\n if (row[column.field] !== obj.selection) {\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n setFilterLookup(column: any) {\n this.gridService.setLookUpFilter(column, this.dialogService);\n }\n\n // set lookup value that display in readOnlyMode\n setLookupReadOnlyValue(row, column) {\n let value = '';\n if (typeof (row[column.field + '_obj']?.text) === \"object\" && (row[column.field + '_obj']?.text).hasOwnProperty('text')) {\n value = row[column.field + '_obj']?.text.text;\n } else {\n value = row[column.field];\n if (column.displayField) {\n value = row[column.displayField];\n } else {\n value = row[column.field];\n }\n }\n return value;\n }\n\n // Check calender value is changed or not\n calenderChangeEvent(column: any, row: any) {\n let valueChange: boolean = false;\n if (\n column.timeOnly &&\n this.datePipe.transform(row[column.field], 'hh:mm') !==\n this.datePipe.transform(this.calenderPreviousValue, 'hh:mm')\n ) {\n valueChange = true;\n } else if (\n column.showTime &&\n this.datePipe.transform(row[column.field], 'yyyy-MM-dd hh:mm') !==\n this.datePipe.transform(this.calenderPreviousValue, 'yyyy-MM-dd hh:mm')\n ) {\n valueChange = true;\n } else if (\n this.datePipe.transform(row[column.field], 'yyyy-MM-dd') !==\n this.datePipe.transform(this.calenderPreviousValue, 'yyyy-MM-dd')\n ) {\n valueChange = true;\n }\n if (valueChange) {\n this.browserCloseEvent(true);\n this.generateRowsDataCopy=false\n setTimeout(() => {\n this.rowsChange.emit(this.rowsData);\n }, 250);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n this.calenderPreviousValue = '';\n }\n onAutoCompleteFocusOut(e, column, row) {\n if (column.type == EGridColumnType.AUTOCOMPLETE) {\n if (column.allowAutoCompleteSave && e.target.value && !column.data.length) {\n ///check the correct format if data.contains cuz its an array of arrays with objects.\n if (confirm(`Do you want to add ${e.target.value} to the selection?`)) {\n if (column.uniqueKey) {\n var message = this.gridService\n .addAutoCompleteValue(column.uniqueKey, e.target.value, column, row)\n .then(() => {\n\n if (column.onReturn) {\n column.onReturn(e.target.value, column);\n }\n });\n }\n }\n }\n }\n }\n\n onFocusOutEvent(column: IGridColumn, row: any) {\n if (column.type !== EGridColumnType.AUTOCOMPLETE || (!column.allowAutoCompleteSave)) {\n this.gridService.checkValidity([column], row);\n if (column.type === EGridColumnType.DATE) {\n this.calenderChangeEvent(column, row);\n }\n if (column.onFocusOut) {\n column.onFocusOut(row);\n } else if (\n column.onReturn &&\n column.type !== EGridColumnType.LOOKUP_INPUT\n ) {\n column.onReturn(row);\n }\n }\n this.isCheckBoxChangeEventCalled = false;\n }\n\n setFilterFocusOut(col: any, filter?: any, event?: any) {\n if(col?.filter?.type === GridFilterControlType.LOOKUP_INPUT){\n setTimeout(() => {\n this.setGridFilter(col, filter, event);\n },250);\n }else {\n this.setGridFilter(col, filter, event);\n }\n }\n\n setGridFilter(col: IGridColumn, filter?: any, event?: any){\n this.gridFilterObj = { column: col, filter: filter, event: event };\n const newColumn: any = { ...col };\n //change filter calender format\n if (newColumn.type === 'date' && newColumn.filterValue) {\n newColumn.filterValue = this.datePipe.transform(\n col.filterValue.toString().trim(),\n 'yyyy-MM-dd'\n );\n }\n this.filterObj(newColumn);\n localStorage.setItem('applyFilter', JSON.stringify(false));\n }\n\n filterObj(col: any) {\n const obj = {\n field: col.field,\n matchMode: col.matchMode ? col.matchMode : 'startsWith',\n operator: col.operator ? col.operator : 'and',\n tableAlias: col.tableAlias ? col.tableAlias : '',\n value: col.filterValue,\n };\n this.globalFiltersArray.push(obj);\n }\n\n applyEnterEvent(filter: any, event: any, column: any) { \n this.gridService.applyFilterEvent = true;\n this.autoLoadData = true;\n this.onApplyFilter.emit();\n this.filterObj(column);\n localStorage.setItem('applyFilter', JSON.stringify(true));\n if (column?.filter?.type === this.dropDownFilter?.column?.filter?.type) {\n this.dropDownFilter.filter(this.dropDownFilter.event.target);\n } else if (filter && column.type === EGridColumnType.BOOLEAN && column?.filter?.type === GridFilterControlType.CHECKBOX && column.filtering !== false) {\n filter(event?.checked);\n } else if (filter) {\n filter(event?.target?.value);\n }\n }\n\n removeNullCalendar(column: IGridColumn, filter: any, event: any) {\n if (column.filterValue === null) {\n this.removeNullFilters(column);\n this.setFilterFocusOut(column, filter, event);\n }\n }\n\n backspaceEvent(event: any, column: any) {\n if (\n event.key === 'Backspace' &&\n (column.filterValue?.toString().length === 1 ||\n column.filterValue?.toString() === '' ||\n column.filterValue === null)\n ) {\n this.removeNullFilters(column);\n } else if (column.type === EGridColumnType.DATE && column.filterValue === null) {\n this.removeNullFilters(column);\n }\n }\n\n removeNullFilters(column: any) {\n if (this.globalFiltersArray && this.globalFiltersArray.length > 0) {\n let arr = [...this.globalFiltersArray];\n let index = arr.findIndex((i) => i.field === column.field);\n arr.splice(index, 1);\n this.globalFiltersArray = arr;\n }\n }\n\n // Removing Header Filter Value using Backspace key Event or Delete key Event.\n removingFilters(event: any, column: IGridColumn) {\n if (\n (event.key === 'Backspace' || event.key === 'Delete') &&\n column.filterValue?.toString().length === 0\n ) {\n let searchFilters;\n if (!this.softCaching && this.componentTableRef?.id) {\n searchFilters = JSON.parse(localStorage.getItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl) as any);\n } else if (this.componentTableRef?.id) {\n searchFilters = this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl];\n }\n if (searchFilters && searchFilters.filters) {\n if (searchFilters.filters.length > 0) {\n let index = searchFilters.filters.findIndex(\n (x: any) => x.field === column.field\n );\n if (index > -1) {\n if (searchFilters.filters.length === 1 && this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = [];\n localStorage.removeItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl);\n } else {\n searchFilters.filters.splice(index, 1);\n if (!this.softCaching && this.componentTableRef?.id) {\n localStorage.setItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl, JSON.stringify(searchFilters));\n } else if (this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = searchFilters;\n }\n }\n }\n }\n }\n }\n }\n\n // Add Click Button Event on Grid.\n onClickButton(column: any, row: any) {\n this.openGridDialog(column, row);\n }\n\n // Invoke onClick Event.\n onClickEvent(column: any, row: any) {\n if (column.type === EGridColumnType.LINK && (column.editLink === false || column.editLink === undefined) && column.editable !== true && column.disabled !== true) {\n if (column && column.onClick && column.disabled !== true && row[column.field + '_obj']?.action?.disabled !== true) {\n column.onClick(row);\n } else {\n let a = document.createElement('a');\n a.href = row[column.field + '_obj']?.hyperlink;\n a.target = column.target ? column.target : '_blank',\n a.click();\n }\n }\n if (column.type === EGridColumnType.DATE && row[column.field]) {\n this.calenderPreviousValue = row[column.field];\n } else if (\n !row[column.field] &&\n column.type === EGridColumnType.DATE &&\n (column.showTime || column.timeOnly) &&\n column.minutesInterval\n ) {\n this.defaultDate = new Date(setMinutesInterval(new Date()));\n }\n if (column && column.onClick && column.disabled !== true && row[column.field + '_obj']?.disabled !== true) {\n column.onClick(row);\n }\n }\n\n // set the select value of multi-select\n showOption(column, row) {\n if (row[column.field]) {\n if (typeof (row[column.field]) === \"string\" && !row[column.field]?.includes(',')) {\n row[column.field] = [row[column.field]];\n } else if (row[column.field]?.toString()?.includes(',')) {\n row[column.field] = row[column.field]?.split(',');\n }\n }\n }\n\n onClearValue(column, row) {\n if (column?.type === EGridColumnType.DROPDOWN && !row[column.field]) {\n row[column.field] = null;\n }\n }\n\n // Invoke onChange Event\n onChangeEvent(column: any, row: any) {\n // set dropdown displayField value base on optionLabel & optionValue.\n this.displayFieldDropdownValue(column, row);\n this.onClearValue(column, row);\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n this.setDropdowndataValue = false\n this.isCheckBoxChangeEventCalled = false;\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n }\n\n checkBoxChangeEvent(event: any, column: IGridColumn, row) {\n row[column.field] = event;\n if (this.rowsChange.observers?.length) {\n this.isCheckBoxChangeEventCalled = true;\n }\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n }\n\n // set dropdown displayField value base on optionLabel & optionValue.\n displayFieldDropdownValue(column: any, row: any) {\n if (\n column?.type === EGridColumnType.DROPDOWN &&\n column.displayField &&\n column.displayField?.length > 0\n ) {\n const key: any = Object.keys(row)?.find(\n (rowInfo) =>\n rowInfo?.toLowerCase() === column.displayField.toLowerCase()\n );\n const displayFieldValue = column.data.find(\n (record: any) =>\n record[column.optionValue]?.toString() ===\n row[column.field]?.toString()\n );\n if (key && displayFieldValue) {\n row[key] = displayFieldValue[column.optionLabel];\n }\n }\n }\n\n // Add autoSearch on Grid.\n autoSearch(event: any, column: any, row: any) {\n if (event && column && row) {\n column.onReturn(event.query, column, row);\n }\n }\n\n // Refresh grid\n refreshGrid() {\n this.reloadPage = interval(this.setGridRefreshTime).subscribe((x) => {\n if (this.gridfilter == undefined) {\n this.gridfilter = { filters: [], sorts: [] };\n }\n if (this.setGridRefreshTime) {\n this.handleServerSideEvents(this.gridfilter);\n }\n });\n }\n\n // Remove FilterValues\n cleargridFiltersValue() {\n const globalFilterClearValueBtn = document.getElementById(\n 'clearGlobalFilterBtn'\n );\n if (globalFilterClearValueBtn) {\n globalFilterClearValueBtn.click();\n }\n if (this.selectedColumns && this.selectedColumns.length > 0) {\n this.selectedColumns.forEach((col) => {\n col.filterValue = null;\n this.filterObj(col);\n });\n }\n }\n\n editAllRowsAtOnce() {\n if (this.editRowPermission) {\n if (this.getClassForEditAllRows('editRow')) {\n if (this.selectedColumns.some((column) => column.type === EGridColumnType.BOOLEAN && (column.filtering === true || column.filtering === undefined))) {\n this.editAllRecord = true;\n }\n this.hideEditAllRowsBtn = false;\n this.sortDisabled = true;\n }\n }\n }\n\n saveAllRowsAtOnce() {\n this.getClassForEditAllRows('saveRow');\n }\n\n // reset the grid rowsValue to orignal values\n cancelAllRowsAtOnce() {\n this.rowsData = [...this.rowsDataCopy];\n this.rowsDataCopy = JSON.parse(JSON.stringify(this.rowsData));\n this.selectedColumns?.forEach((column) => {\n if (column.type === EGridColumnType.DATE) {\n this.rowsData?.forEach((row) => {\n if (row[column.field]) {\n row[column.field] = new Date(row[column.field]);\n }\n })\n }\n\n });\n if (this.columns?.length) {\n this.columns.forEach((column) => {\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n })\n }\n this.onCancelAllRows.emit(this.rowsData);\n }\n\n getClassForEditAllRows(className: string = '') {\n let success: boolean = false;\n const getBtns: any =\n this.elementRef?.nativeElement?.getElementsByClassName(className);\n if (getBtns && getBtns.length > 0) {\n success = true;\n if (className === 'saveRow') {\n this.editAllRecord = false;\n this.saveAllRecord = true;\n const records$ = [];\n setTimeout(() => {\n for (let item of getBtns) {\n const rowSave = new Promise((resolve, reject) => {\n item.click();\n resolve(item);\n });\n records$.push(rowSave);\n }\n Promise.all(records$).then((response) => {\n if (this.checklist.length > 0) {\n this.onRowUpdate.emit(this.setRowsData(this.checklist));\n }\n else {\n this.generateRowsDataCopy = true;\n this.onRowUpdate.emit(this.saveRecordArray);\n }\n this.saveRecordArray = [];\n });\n }, 20)\n } else {\n this.saveAllRecord = false;\n for (let item of getBtns) {\n if (className == 'cancelRow') {\n setTimeout(() => {\n item.click();\n }, 50);\n } else {\n item.click();\n }\n }\n }\n }\n return success;\n }\n\n //Focused calender input on select date\n selectDate(column: any) {\n document.getElementById(column.field)?.focus();\n }\n\n //apply filter on grid when search btn clicked\n applyGirdFilterBtn() {\n this.isCheckBoxChangeEventCalled = false;\n let globalFilterApplyBtn = document.getElementById('searchGlobalFilterBtn');\n if (globalFilterApplyBtn) {\n globalFilterApplyBtn.click();\n } else {\n if (this.gridFilterObj && Object.keys(this.gridFilterObj).length > 0) {\n this.applyEnterEvent(\n this.gridFilterObj.filter,\n this.gridFilterObj.event,\n this.gridFilterObj.column\n );\n }\n }\n }\n\n // invoke multiSelection click event\n multiCheckBoxOnclick(rowInfo: any, event: any, singleSelection: boolean = false) {\n if (!singleSelection) {\n if (Array.isArray(rowInfo) && rowInfo?.length > 0 && event?.target?.ariaChecked) {\n this.checklist = [...rowInfo];\n } else if (Array.isArray(rowInfo) && event?.target?.ariaChecked == null) {\n this.checklist = [];\n }\n if (!Array.isArray(rowInfo) && event?.target?.ariaChecked && !this.checklist.some((row) => row.id == rowInfo.id)) {\n this.checklist.push(rowInfo);\n } else if (event?.target?.ariaChecked == null) {\n if (this.checklist.some((row) => row?.id == rowInfo.id)) {\n const index = this.checklist.findIndex((row) => row?.id == rowInfo?.id);\n this.checklist.splice(index, 1);\n }\n }\n this.onMultiSelectionChange.emit(this.setRowsData(this.checklist));\n } else {\n this.checklist = [rowInfo]\n this.onMultiSelectionChange.emit(this.setRowsData(rowInfo));\n }\n }\n\n setRowsData(rowsData) {\n if (Array.isArray(rowsData)) {\n rowsData.forEach((row: any) => {\n row = this.removeRowObj(row);\n row = this.gridService.setRowValue(row);\n })\n } else {\n rowsData = this.removeRowObj(rowsData);\n rowsData = this.gridService.setRowValue(rowsData);\n }\n return rowsData;\n }\n\n removeRowObj(row: any){\n const keys = Object.keys(row);\n if (keys?.length > 0) {\n keys.forEach((key) => {\n if (key.includes('_obj')) {\n delete row[key];\n }\n })\n }\n return row;\n }\n\n applyDropdownFilter(filter: any, event: any) {\n filter(event.target);\n }\n\n searchDropdownFilter(filter: any, event: any, column: any) {\n this.setFilterFocusOut(column, filter, event);\n this.dropDownFilter = { filter: filter, event: event, column: column };\n if (column.allowSearch !== true) {\n this.applyDropdownFilter(filter, event);\n }\n }\n\n lookupClearValue(column: IGridColumn, row?: any) {\n if (row) {\n column.displayField?row[column.displayField] = '':''\n row[column.field+'_obj']?.text? row[column.field+'_obj'].text='':''\n row[column.field] = '';\n } else {\n column.filterValue = '';\n this.setFilterFocusOut(column);\n }\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n \n // invoke when click header checkbox filter\n clickCheckBoxFilter(column: IGridColumn) {\n if (this.editAllRecord) {\n if (\n column.type === EGridColumnType.BOOLEAN\n &&\n column?.filter?.type === 'checkbox' && column.filtering != false\n ) {\n this.rowsData.forEach((row) => {\n if (row[column.field+'_obj']?.disabled !== true && !column.disabled) {\n row[column.field] = column.filterValue;\n }\n });\n }\n }\n this.onCheckBoxFilterClick.emit(column);\n }\n //set header checkbox value for getting all columns on stay admin\n setHeaderCheckBoxValue(value: any) {\n this.isIncludedAllColumns.emit(value);\n }\n\n // set calender 2 Or 4 digit year format\n calenderInputValue(column: any, row: any) {\n document.getElementsByClassName(column.field + row[this.dataKey])[0]?.addEventListener('keyup', (val: any) => {\n const year = val?.target?.value?.toString()?.split('/')[2];\n if (year && year.length === 4) {\n this.calendarFormat = 'mm/dd/yy';\n row[column.field] = new Date(val?.target?.value)?.toLocaleDateString(\"en-US\");\n } else if (year && year.length) {\n this.calendarFormat = 'mm/dd/y';\n }\n });\n }\n}\n\n\n\n","import { Injectable } from '@angular/core';\nimport {\n EValidator,\n IFormField,\n EFormControl,\n AddFormField,\n ISetFilter,\n IDropDownRequest,\n IListFilter,\n IReportBtn,\n IDynamicForm,\n} from '../models/form.model';\nimport { EGridSortDirection, IGridSort } from '../models/grid.model';\nimport { HyperlinkService } from '../services/hyperlink.service';\nimport { AlertService } from './alert.service';\nimport { DropdownService } from './dropdown.service';\nimport { RequestService } from './request.service';\nimport * as utilities from './utilities.service';\nimport { IDictionary } from '../models/common.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormService {\n public fieldFocusedOut:boolean = false;\n constructor(\n private hyperlinkService: HyperlinkService,\n private dropdownService: DropdownService,\n private alertService: AlertService,\n private requestService: RequestService\n ) { }\n\n checkValidity(formFields: IFormField[]): boolean {\n let isValid: boolean = true;\n\n formFields.map((item: IFormField) => {\n if (item.validations && !item.disabled) {\n let itemValue = item.control === EFormControl.LOOKUP_INPUT && item.value && typeof(item.value) === 'object' ? item.value.value : item.value\n // if(item.control === EFormControl.LOOKUP_INPUT && item.value && typeof(item.value) === 'object'){\n // item.value = item.value.value;\n // }\n item.errorMessage = '';\n item.isvalid = true;\n for (let i = 0; i < item.validations.length; i++) {\n const minMaxValidDate = utilities.calenderMinMaxValue(item, itemValue, i);\n const valid =\n item.validations && typeof item.label === 'object'\n ? item.label.name\n : item.label;\n if (\n item.validations[i].type == EValidator.REQUIRED &&\n !itemValue &&\n !item.hidden &&\n valid\n ) {\n isValid = itemValue\n ? true\n : this.setErrorMessage(item, `${valid} is required`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MINLENGTH &&\n itemValue.length < item.validations[i].expression\n ) {\n isValid =\n itemValue && itemValue.length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Minimum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MAXLENGTH &&\n itemValue.length > item.validations[i].expression\n ) {\n isValid =\n itemValue && itemValue.length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Maximum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MINIMUM &&\n isValid\n ) {\n if(item.control === EFormControl.CALENDAR){\n isValid = minMaxValidDate === 'minimum' ? this.setErrorMessage(item, `Minimum ${valid} ${item.validations[i].expression}`) : true;\n }else if(itemValue < item.validations[i].expression){\n isValid =\n itemValue && itemValue.length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Minimum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MAXIMUM &&\n isValid\n ) {\n if(item.control === EFormControl.CALENDAR){\n isValid = minMaxValidDate === 'greater' ? this.setErrorMessage(item, `Maximum ${valid} ${item.validations[i].expression}`) : true;\n }else if(itemValue > item.validations[i].expression){\n isValid =\n itemValue && itemValue.length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Maximum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.PATTERN &&\n !itemValue.match(item.validations[i].expression)\n ) {\n isValid =\n itemValue && itemValue.match(item.validations[i].expression)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.NUMERIC &&\n !itemValue.toString().match(/^(0|[-()1-9]\\d*)$/)\n ) {\n isValid =\n itemValue && itemValue?.toString()?.match(/^(0|[1-9]\\d*)$/)\n ? true\n : this.setErrorMessage(item, `Enter ${item.validations[i].type} for ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.PHONE &&\n !itemValue.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ) {\n isValid =\n itemValue && itemValue.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.DECIMAL &&\n !itemValue?.toString()?.match(/^(0|[-()1-9]\\d*)(\\.\\d+)?$/)\n ) {\n isValid =\n itemValue && itemValue.match(/^(0|[1-9]\\d*)(\\.\\d+)?$/)\n ? true\n : this.setErrorMessage(item, `Enter ${item.validations[i].type} for ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.EMAIL &&\n !itemValue.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ) {\n isValid =\n itemValue &&\n itemValue.match(\n /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/\n )\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n }\n }\n }\n });\n return isValid;\n }\n\n setErrorMessage(item: IFormField, errorMessage: string): boolean {\n item.errorMessage = errorMessage;\n item.isvalid = false;\n return false;\n }\n\n addFormField(fieldInfo: IFormField): IFormField {\n if (!fieldInfo.label) {\n fieldInfo.label = fieldInfo.field;\n }\n const formField: any = {\n label: fieldInfo.label,\n field: fieldInfo.field,\n displayField: fieldInfo.displayField,\n control: fieldInfo.control,\n showOption: fieldInfo.showOption,\n column: fieldInfo.column,\n row: fieldInfo.row,\n minutesInterval: fieldInfo.minutesInterval,\n value: fieldInfo.value,\n format: fieldInfo.format,\n hidden: fieldInfo.hidden,\n permissions: fieldInfo.permissions,\n validations: fieldInfo.validations,\n id: fieldInfo.id,\n hyperlink: fieldInfo.hyperlink,\n data: fieldInfo.data,\n lookupControl: fieldInfo.lookupControl,\n componentControl: fieldInfo.componentControl,\n optionLabel: fieldInfo.optionLabel,\n optionValue: fieldInfo.optionValue,\n saveAsString: fieldInfo.saveAsString,\n showAllValue: fieldInfo.showAllValue,\n onClick: fieldInfo.onClick,\n onReturn: fieldInfo.onReturn,\n onFocusOut: fieldInfo.onFocusOut,\n onChange: fieldInfo.onChange,\n tables: fieldInfo.tables,\n disabled: fieldInfo.disabled,\n disabledText: fieldInfo.disabledText,\n timeOnly: fieldInfo.timeOnly,\n isPassword: fieldInfo.isPassword,\n textType: fieldInfo.textType,\n monthOnly: fieldInfo.monthOnly,\n showTime: fieldInfo.showTime, // to show time as well in calendar form field\n height: fieldInfo.height,\n showBottomBorder: fieldInfo.showBottomBorder,\n allowSearch: fieldInfo.allowSearch,\n selectMultipleFiles: fieldInfo.selectMultipleFiles,\n SetfileTypes: fieldInfo.SetfileTypes,\n icon: fieldInfo.icon,\n color: fieldInfo.color,\n card: fieldInfo.card,\n uniqueKey: fieldInfo.uniqueKey,\n pathSystemConfig: fieldInfo.pathSystemConfig,\n azureContainer: fieldInfo.azureContainer,\n class: fieldInfo.class\n };\n\n return formField;\n }\n\n addCheckbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.CHECKBOX;\n return this.addFormField(fieldInfo);\n }\n\n addTextbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.INPUT;\n return this.addFormField(fieldInfo);\n }\n\n addDisplayField(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.INPUT;\n fieldInfo.disabled = true;\n fieldInfo.showBottomBorder = true;\n return this.addFormField(fieldInfo);\n }\n\n addNumericTextbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.NUMERIC;\n return this.addFormField(fieldInfo);\n }\n\n addSpaceField(fieldInfo: AddFormField): IFormField{\n fieldInfo.control = EFormControl.SPACER;\n return this.addFormField(fieldInfo);\n }\n\n addNewLine(fieldInfo: AddFormField): IFormField{\n fieldInfo.control = EFormControl.BREAK_LINE;\n return this.addFormField(fieldInfo);\n }\n\n addTextArea(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.TEXTAREA;\n return this.addFormField(fieldInfo);\n }\n \n // Adding Report button for DynamicForm\n addReportBtn(fieldInfo: IReportBtn) {\n fieldInfo.control = EFormControl.REPORT;\n return fieldInfo;\n }\n\n addNoteField(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.NOTE_FIELD;\n return this.addFormField(fieldInfo);\n }\n\n addHyperlink(fieldInfo: AddFormField) {\n if(fieldInfo.hyperlink && fieldInfo.hyperlink.component){\n fieldInfo.control = EFormControl.HYPERLINK;\n return this.addFormField(fieldInfo);\n }else{return this.hyperlinkService.buildUrl(\n fieldInfo?.hyperlink?.linkId,\n fieldInfo.hyperlink?.params\n ).then((res: any) => {\n const params = fieldInfo?.hyperlink?.params;\n const link = res;\n if(res && params){\n Object.keys(params).forEach((key)=>{\n if(res.includes('{{'+key+'}}') && params[key] && !params[key].toString()?.includes('{')){\n res = res.replace('{{'+key+'}}', params[key])\n } \n })\n }\n if (fieldInfo.hyperlink?.linkId && fieldInfo.hyperlink.linkId.length > 0) {\n fieldInfo.hyperlink.link = res;\n }\n fieldInfo.control = EFormControl.HYPERLINK;\n let obj: any = this.addFormField(fieldInfo);\n obj['orignalLink'] = link;\n return obj;\n });\n }\n}\n\n addCalendar(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.CALENDAR;\n return this.addFormField(fieldInfo);\n }\n\n // add AutoComplete for Form\n addAutoComplete(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.AUTOCOMPLETE;\n return this.addFormField(fieldInfo);\n }\n\n // Search AutoComplete Data for form\n getAutoCompleteData(formField?: any, uniqueKey?: string, filters?: any[], search: string = ''): any {\n this.requestService.get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters}).subscribe((response: any)=>{\n if(search){\n let existInRecord: boolean = response.records.some((record: any)=> record[formField.displayField] && record[formField.displayField]?.toString()?.toLowerCase() === search?.toLowerCase());\n if(!existInRecord){\n response.records.unshift ({[formField.displayField]: search});\n }\n }\n formField.data = [...response.records];\n });\n }\n\n addDropdown(fieldInfo: AddFormField, dropDownProp?: IDropDownRequest): any {\n fieldInfo.control = EFormControl.DROPDOWN;\n if (dropDownProp) {\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters: ISetFilter[] = dropDownProp.filters && dropDownProp.filters.length > 0 ? dropDownProp.filters : [];\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(fieldInfo, uniqueKey, valueProp, labelProp, filters);\n }\n } else {\n return this.addFormField(fieldInfo);\n }\n }\n\n getDropdownData(fieldInfo: AddFormField, uniqueKey: string, valueProp: string, labelProp: string, filters: any[]) {\n return this.dropdownService\n .setDropDownList(\n uniqueKey,\n valueProp,\n labelProp,\n filters\n )\n .then((res: any) => {\n fieldInfo.data = res;\n return this.addFormField(fieldInfo);\n })\n .catch((error: any) => {\n this.alertService.apiError(error);\n return this.addFormField(fieldInfo);\n });\n }\n\n addLookUp(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.LOOKUP_INPUT;\n return this.addFormField(fieldInfo);\n }\n\n addDialog(fieldInfo: AddFormField): IFormField {\n return this.addLookUp(fieldInfo);\n }\n\n addComponent(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.COMPONENT;\n return this.addFormField(fieldInfo);\n }\n\n addHeader(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.SECTION_HEADER;\n fieldInfo.class = 'form-header';\n return this.addFormField(fieldInfo);\n }\n\n addMultiSelect(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.MULTISELECT;\n return this.addFormField(fieldInfo);\n }\n\n addFileUpload(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.FILE_UPLOAD;\n return this.addFormField(fieldInfo);\n }\n\n addDisplayFile(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.DISPLAY_FILE;\n return this.addFormField(fieldInfo);\n }\n\n // Adding OnClick Button Function for DynamicForm\n addButton(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.ADD_BUTTON;\n return this.addFormField(fieldInfo);\n }\n\n // Adding Switch Function for DynamicForm\n addSwitch(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.SWITCH;\n return this.addFormField(fieldInfo);\n }\n\n // start add new card functionality\n addCard(fieldInfo: IFormField, cardData?: IListFilter): IFormField {\n fieldInfo.control = EFormControl.CARD;\n if (cardData && cardData.uniqueKey) {\n if(cardData.sorts?.length > 0){\n cardData.sorts.forEach((res) =>{\n res.direction = res.direction ? res.direction : EGridSortDirection.ASC;\n });\n } \n return this.getCardData(fieldInfo, cardData.uniqueKey, cardData.filters, cardData.sorts);\n } else {\n return this.addFormField(fieldInfo);\n }\n }\n\n getCardData(fieldInfo: any, uniqueKey: string, filters: any[] = [], sorts: any[] = []): any {\n return this.getCardList(uniqueKey, filters, sorts)\n .then((res: any) => {\n fieldInfo.card.data = res.records;\n return this.addFormField(fieldInfo);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n return this.addFormField(fieldInfo);\n });\n }\n\n // load component on form\n setAddComponentData({formSections}:IDynamicForm,id:string,value:any){\n formSections?.forEach((section)=>{\n section.fields.forEach((field:any)=>{\n if(field.control===EFormControl.COMPONENT && field.componentControl && field.componentControl?.id===id){\n let keys = Object.keys(value);\n keys.forEach((key)=>{\n field.componentControl.data = { ...field.componentControl?.data,[key] : value[key]};\n });\n utilities.changeDynamicFormState(id, field.componentControl.data);\n };\n });\n });\n }\n\n // set formfield value\n setFormFieldValue(\n { formSections }: IDynamicForm,\n field: string,\n value: any,\n displayText: string = ''\n ) {\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n if (displayText && displayText.length > 0) {\n formField.value = { text: displayText, value: value };\n } else {\n formField.value = value;\n }\n }\n });\n });\n }\n\n // set formfield property\n setFormFieldProp(\n { formSections }: IDynamicForm,\n field: string,\n props: IDictionary[]\n ) {\n return formSections?.map((section: any) => {\n return section.fields.map((formField: any): any => {\n if (\n (formField.field?.toLowerCase() === field?.toLowerCase()) ||\n (formField.label && formField.label.toString().toLowerCase() === field?.toLowerCase())\n ) {\n return props.map((prop: any) => {\n if (formField.hasOwnProperty(prop.name)) {\n if(prop.name === 'label' && typeof formField.label === 'object' && !prop.override){\n return (formField[prop.name].name = prop.value);\n }else{\n return (formField[prop.name] = prop.value);\n }\n }\n else{\n return (formField[prop.name] = prop.value);\n \n }\n });\n }\n });\n });\n }\n\n getCardList(uniqueKey: string, filters: any[] = [], sorts: any[] = []) {\n return new Promise((resolve, reject) => {\n this.requestService\n .get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters, sorts })\n .subscribe(\n (response: any) => {\n if (response) {\n return resolve(response);\n } else {\n return resolve([]);\n }\n },\n ({ error }: any) => {\n reject(error);\n }\n );\n });\n }\n // End add new card functionality\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'se-notes',\n templateUrl: './notes.component.html',\n styleUrls: ['./notes.component.scss'],\n})\nexport class NotesComponent implements OnInit {\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig\n ) { }\n\n public note: string = '';\n public disabledText: boolean = false;\n\n ngOnInit(): void {\n this.note = this.config.data.value ?? '';\n this.disabledText = this.config.data.disabledText;\n }\n\n handleCancel() {\n this.ref.close();\n }\n\n handleOk() {\n this.ref.close(this.note);\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef, ViewChildren, QueryList, ComponentFactory, ViewContainerRef, ElementRef, HostListener, } from '@angular/core';\nimport { FormService } from '../../../services/form.service';\nimport { AlertService } from '../../../services/alert.service';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { NotesComponent } from '../../shared/notes/notes.component';\nimport { EFormControl, EHyperlink, IFormField, IDynamicForm, IFormSection, EValidator, IDynamicCard, IFormButton } from '../../../models/form.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport * as utilities from '../../../services/utilities.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport { IDictionary } from '../../../models/common.model';\nimport { Router } from '@angular/router';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DatePipe } from '@angular/common';\nimport { GridService } from '../../../services/grid.service';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'se-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n})\nexport class FormComponent implements OnInit {\n @Input() stickyActions: boolean = true;\n @Input() form: IDynamicForm;\n @Input() hideSaveButton: boolean = false;\n @Input() hideCancelButton: boolean = false;\n @Input() formButtons: IFormButton[] = [];\n @Input() loading: boolean = false;\n @Input() set activeTestMode(val: any) {\n if (val === true) {\n debugger;\n }\n }\n @Output() saveForm: EventEmitter<IFormSection[]> = new EventEmitter();\n @Output() cancelForm: EventEmitter<IFormSection[]> = new EventEmitter();\n @Output() dropDownChangeEvent: EventEmitter<any> = new EventEmitter();\n @Output() sectionClickedEvent: EventEmitter<IFormSection> =\n new EventEmitter();\n @ViewChildren('dynamicComponentContainer', { read: ViewContainerRef })\n dynamicComponentContainer: QueryList<ViewContainerRef>;\n\n dynamicCase = EFormControl;\n permissionType = EPermissionType;\n roles: string[] = [];\n isFormDisabled: boolean = false;\n isFormHidden: boolean = false;\n componentsList: IDictionary[] = [];\n fileUploadUrls: any;\n showfileUploadError: boolean = false;\n cardList: IDynamicCard;\n calenderPreviousValue: string = '';\n defaultDate: string = '';\n lookupFocusOut: boolean = false;\n calendarFormat: string = 'mm/dd/yy';\n setCardData: boolean = false;\n subscription: Subscription;\n\n // apply checked/unChecked prop for CheckBox of the Form\n checked: boolean = true;\n unChecked: boolean = false;\n\n constructor(\n private authService: AuthenticationService,\n private formService: FormService,\n private alertService: AlertService,\n private sanitizer: DomSanitizer,\n public dialogService: DialogService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef,\n private router: Router,\n private el: ElementRef,\n private datePipe: DatePipe,\n private gridService: GridService,\n private pageLoggerService: PageLoggerService\n ) {}\n\n ngOnInit(): void {}\n\n // browser tab close event\n @HostListener('window:beforeunload', ['$event'])\n beforeunloadHandler(event: any) {\n if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {\n return false;\n } else {\n return true;\n }\n }\n\n ngOnChanges() {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n // start cardList reference break functionality\n let formValues = { ...this.form };\n formValues.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (field.isPassword) {\n field.textType = 'password';\n }\n // convert string time into date\n if (field?.control === EFormControl.CALENDAR && field?.onChange) {\n field['previousValue'] = field?.value;\n }\n if (\n field?.control === EFormControl.CALENDAR &&\n field?.timeOnly &&\n (field?.value?.toString().includes('AM') ||\n field?.value?.toString().includes('PM'))\n ) {\n field.value = utilities.setTimeInDate(field.value);\n }\n if (\n field?.control === EFormControl.AUTOCOMPLETE &&\n field?.value &&\n field?.value?.length > 0\n ) {\n const value = field?.value.map(\n (value: any) => value[field?.displayField]\n );\n if (\n value &&\n (value.toString()?.includes(';') ||\n value.toString()?.includes(','))\n ) {\n field.value = value\n .toString()\n .replaceAll(',', ';')\n ?.split(';')\n ?.map((val: any) => ({ [field?.displayField]: val }));\n }\n }\n // convert the multiSelect string value in array\n if (\n field?.control === EFormControl.MULTISELECT &&\n field.value &&\n !Array.isArray(field.value)\n ) {\n if (field.value?.toString()?.includes(',')) {\n field.value = field.value?.toString()?.split(',');\n } else {\n field.value = [field.value];\n }\n }\n if (field?.control === EFormControl.CARD) {\n this.form = {};\n setTimeout(() => {\n field?.card?.data?.forEach((x: any) => {\n if (\n field?.card?.formSections &&\n field?.card?.formSections?.length > 0\n ) {\n x.dynamicForm = {\n formSections: JSON.parse(\n JSON.stringify(field?.card?.formSections)\n ),\n };\n }\n });\n this.form = formValues;\n }, 500);\n }\n // End cardList reference break functionality\n if (field?.control === EFormControl.CHECKBOX) {\n field.value =\n field?.value?.toString()?.toLowerCase() === 'true' ||\n field?.value?.toString()?.toLowerCase() === 'y' ||\n field?.value?.toString() === '1'\n ? true\n : false;\n }\n });\n }\n });\n // apply user role permissions on form\n this.roles = this.authService.getUserRoles();\n this.applyUserPermissions();\n this.applyRequiredFieldValidation();\n this.removeWhiteSpaces();\n this.setHyperlinkComponentRoute();\n setTimeout(() => {\n this.setCalanderWidth();\n }, 3000);\n }\n }\n\n // set calender 2 Or 4 digit year format\n calenderInputValue(formField: IFormField) {\n document\n .getElementsByClassName(formField.field)[0]\n ?.addEventListener('keyup', (val: any) => {\n const year = val?.target?.value?.toString()?.split('/')[2];\n if (year?.length === 4) {\n this.calendarFormat = 'mm/dd/yy';\n formField.value = new Date(val.target.value).toLocaleDateString(\n 'en-US'\n );\n } else if (year?.length) {\n this.calendarFormat = 'mm/dd/y';\n }\n });\n }\n\n // set percent and decimal values\n setnumericvalues() {\n this.form?.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (field?.control === EFormControl.NUMERIC) {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field?.format?.type === 'percent') {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value * 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value * 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n } else if (field?.format?.type === 'decimal') {\n field.value = parseFloat(field.value).toFixed(\n digitsInfo ? digitsInfo : 2\n );\n }\n }\n }\n });\n }\n });\n }\n\n /**\n * Checks if form has any field with dynamic component;\n * Creates component instance using componentFactoryResolver\n * Injects component through viewRef.createComponent()\n * Passes data to component\n * Subscribes to the events passed to the components\n * Finally forces Angular to detech changes\n */\n loadDynamicComponents() {\n this.componentsList = [];\n this.form?.formSections?.forEach((formSection) => {\n formSection.fields.forEach((field: any, fieldIndex) => {\n if (field.control === EFormControl.COMPONENT) {\n const viewRef: any = this.dynamicComponentContainer.find(\n (x) =>\n x.element.nativeElement.id == `${formSection.name}-${fieldIndex}`\n );\n const {\n component: Component,\n data,\n handlers,\n } = field.componentControl;\n const componentFactory: ComponentFactory<any> =\n this.componentFactoryResolver.resolveComponentFactory(Component);\n // Passing data to component\n const componentRef = viewRef?.createComponent(componentFactory);\n if (componentRef) {\n Object.entries(data ?? {}).forEach(([key, value]) => {\n componentRef.instance[key] = value;\n });\n this.componentsList.push({\n name: field.componentControl?.id,\n value: componentRef,\n });\n // Subscribes to the events passed to the components\n if (handlers) {\n Object.entries(handlers).forEach(([event, handler]: any) => {\n (componentRef.instance[event] as EventEmitter<any>)?.subscribe(\n (response) => {\n handler(response);\n }\n );\n });\n }\n }\n // invoke change detection\n this.cdr.detectChanges();\n }\n });\n });\n }\n\n //invoke when file upload OR delete a file\n fileOnchangeEvent() {\n this.setCardData = !this.setCardData;\n // let cardControl: boolean = false;\n // this.form?.formSections?.forEach((formSection)=> {\n // if(formSection?.fields?.some((formField: any)=> formField?.control === EFormControl.CARD)){\n // cardControl = true;\n // }\n // });\n // setTimeout(() => {\n // if(cardControl){\n // this.loadDynamicComponents();\n // }\n // }, 3000);\n }\n\n ngAfterViewInit() {\n // load dynamic components if exist in form\n setTimeout(() => {\n this.setnumericvalues();\n this.onDynamicFormStateChange();\n this.loadDynamicComponents();\n this.setCardResponseId();\n }, 500);\n }\n\n setCardResponseId() {\n utilities.onDynamicCardStateChange().subscribe((res) => {\n if(res.data?.isSave){\n this.setCardIds(res.data);\n } else {\n this.setDeleteCardId(res.data?.cardData);\n }\n });\n }\n\n setDeleteCardId(updatedCardData:any){\n this.form?.formSections?.forEach((section:IFormSection)=>{\n const cardControl = section.fields.find((field:IFormField)=> field.control === EFormControl.CARD);\n if(cardControl){\n cardControl.card.data = updatedCardData;\n };\n });\n \n }\n\n setCardIds(res) {\n res.records = this.gridService.setDataFields(res.records);\n res.records?.forEach((record: any, recordIndex: any) => {\n const matchCard = res.cardsInfo?.find(\n (info, cardIndex) =>\n recordIndex === cardIndex && record[res.fieldName?.toLowerCase()]\n );\n if (matchCard && Object.keys(matchCard)?.length > 0) {\n matchCard[res.fieldName] = record[res.fieldName?.toLowerCase()];\n }\n });\n if (this.form?.formSections?.length > 0) {\n this.form?.formSections.forEach((formSection) => {\n const formField = formSection.fields?.find(\n (field) => field.control === EFormControl.CARD\n );\n if (formField) {\n if (res.cardsInfo?.length > 0) {\n res.cardsInfo?.forEach((cardId) => {\n cardId.id = null;\n });\n }\n formField.card.data = res.cardsInfo;\n }\n });\n }\n this.setCardData = !this.setCardData;\n }\n\n removeWhiteSpaces() {\n this.form?.formSections?.forEach((section) => {\n if (section.class) section.class = section.class.replace(/\\s/g, '');\n });\n }\n\n setHyperlinkComponentRoute() {\n this.form?.formSections?.forEach((formSection) => {\n formSection.fields.forEach((field) => {\n if (\n field.control === EFormControl.HYPERLINK &&\n field.hyperlink?.component\n ) {\n this.router.resetConfig([\n {\n path: 'hyperlink' + field.label,\n component: field.hyperlink.component,\n },\n ...this.router.config,\n ]);\n }\n });\n });\n }\n\n browserTabCloseEvent(event: boolean = false) {\n this.formService.fieldFocusedOut = event;\n }\n\n ngOnDestroy(){\n this.subscription?.unsubscribe();\n }\n\n /**\n * Listens any change in Dynamic Form component State\n */\n onDynamicFormStateChange() {\n this.subscription = utilities.onDynamicFormStateChange().subscribe((response) => {\n if (response.id && response.data) {\n const componentRefObj = this.componentsList.find(\n (x) => x.name === response.id\n );\n if (componentRefObj) {\n Object.entries(response.data ?? {}).forEach(([key, value]) => {\n componentRefObj.value.instance[key] = value;\n });\n componentRefObj.value.instance.ngOnInit();\n }\n }\n });\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.form && this.form.formSections) {\n let totalFields: number = 0;\n let disabledFields: number = 0;\n let hiddenFields: number = 0;\n\n this.form.formSections.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((formField) => {\n let permissions: any = formField.permissions;\n let sectionPermissions: any = [];\n if (!permissions) sectionPermissions = formSection.permissions;\n if (!permissions) permissions = this.form.permissions;\n let hasValidEditPermission = false;\n\n if (sectionPermissions && sectionPermissions.length > 0) {\n sectionPermissions.forEach((permission: any) => {\n let isValid: boolean = false;\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n\n if (permission.type === EPermissionType.VIEW) {\n if (isValid) {\n formField.disabled = true;\n } else {\n formSection.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n formField.disabled = false;\n formSection.hidden = false;\n } else {\n formSection.accordionDisabled = true;\n formSection.disabled = true;\n formField.disabled = true;\n }\n }\n });\n });\n } else if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n formField.disabled = true;\n } else {\n formField.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n formField.disabled = false;\n formField.hidden = false;\n } else {\n if (\n formField.permissions &&\n formField.permissions.length > 0\n ) {\n formSection.disabled = false;\n formSection.accordionDisabled = true;\n formField.disabled = true;\n } else {\n formSection.disabled = true;\n formSection.accordionDisabled = true;\n formField.disabled = true;\n }\n }\n }\n }\n });\n }\n\n totalFields++;\n\n if (formField.disabled) {\n disabledFields++;\n }\n\n if (formField.hidden) {\n hiddenFields++;\n }\n });\n }\n });\n\n this.isFormDisabled = totalFields > 0 && totalFields === disabledFields;\n this.isFormHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n\n /**\n * Open IFrame in hyperlink Control\n */\n sectionDisabled(formSection: IFormSection) {\n if (formSection.disabled) {\n formSection.fields.map((field: IFormField) => {\n field.disabled = true;\n });\n return formSection;\n } else {\n return formSection;\n }\n }\n\n loadIFrame(formField: IFormField) {\n this.handleClickEvent(formField);\n const ref = this.dialogService.open(IframeComponent, {\n header: 'Hyperlink',\n width: formField.hyperlink?.width ? formField.hyperlink.width : '90%',\n height: formField.hyperlink?.height ? formField.hyperlink.height : '80%',\n data: { value: formField.hyperlink?.link, iFrameId: formField.label },\n });\n utilities.draggableDialog(formField?.field);\n ref.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n }\n\n /**\n * open Dialog in hyperlink Control\n */\n hyperlinkDialog(formField: IFormField) {\n if (formField.hyperlink?.target === EHyperlink.BLANK) {\n var value = formField.hyperlink.params;\n window.open('hyperlink' + formField.label);\n } else if (formField.hyperlink?.target === EHyperlink.SELF) {\n this.router.navigate(['hyperlink' + formField.label], {\n queryParams: formField.hyperlink.params,\n });\n } else if (formField.hyperlink?.target === EHyperlink.DIALOG) {\n this.onClickEvent(formField);\n const dialog = this.dialogService.open(formField.hyperlink.component, {\n header: formField.hyperlink.data?.header\n ? formField.hyperlink.data?.header\n : '',\n width: formField.hyperlink.width ? formField.hyperlink.width : '',\n style: formField.hyperlink.width?'': {'max-width':'fit-content'},\n height: formField.hyperlink.height ? formField.hyperlink.height : '80%',\n data: formField.hyperlink.params \n });\n const componentName = formField.hyperlink?.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n componentName\n );\n }\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n dialog.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n }\n }\n\n /**\n * open Iframe on Label\n */\n loadLabelControlIFrame(formField: any) {\n const ref = this.dialogService.open(IframeComponent, {\n header: formField.label.name,\n width: formField.label.labelControl.hyperlink.width\n ? formField.hyperlink.width\n : '90%',\n height: formField.label.labelControl.hyperlink?.height\n ? formField.hyperlink.height\n : '80%',\n data: {\n value: formField.label.labelControl.hyperlink?.link\n ? formField.label.labelControl.hyperlink.link\n : '',\n iFrameId: formField.label.name,\n },\n });\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n 'IframeComponent'\n );\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n if (formField && formField.onClick) {\n formField.onClick();\n }\n }\n\n /**\n * find the required field in form\n */\n applyRequiredFieldValidation() {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n this.form.formSections.forEach((section) => {\n section.fields.forEach((field) => {\n if (field.validations && field.validations.length > 0) {\n field.validations.forEach((valid) => {\n if (valid.type === EValidator.REQUIRED) {\n field.requiredField = true;\n }\n });\n }\n });\n });\n }\n }\n\n setFileUrls(fileUrls: any) {\n if (fileUrls && fileUrls.length > 0) {\n this.fileUploadUrls = fileUrls;\n this.showfileUploadError = false;\n }\n }\n\n onSaveForm() {\n let validity = true;\n let errorMessageDetails = '';\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n if (!this.formService.checkValidity(formSection.fields)) {\n formSection.fields?.forEach((formField: any) => {\n if (formField.errorMessage) {\n errorMessageDetails = errorMessageDetails\n ? errorMessageDetails + ' , ' + formField.errorMessage\n : formField.errorMessage;\n }\n });\n let field = formSection.fields.some(\n (field) => field.requiredField && field.errorMessage && !field.value\n );\n if (validity && field) {\n this.alertService.error(\n errorMessageDetails,\n 5000,\n 'REQUIRED FIELD'\n );\n } else {\n this.alertService.error(errorMessageDetails, 5000, 'INVALID FIELD');\n }\n validity = false;\n }\n\n formSection.fields.forEach((field: any) => {\n // set uploadFile URL in FormField in case of FILE_UPLOAD\n if (field.control === EFormControl.FILE_UPLOAD) {\n field.value = this.fileUploadUrls;\n\n if (field.validations && field.validations.length > 0) {\n field.validations.forEach((x: any) => {\n if (x.type === EValidator.REQUIRED && !field.value) {\n this.showfileUploadError = true;\n }\n });\n }\n }\n\n if (field.control === EFormControl.CARD) {\n if (field.card && field.card.data?.length > 0) {\n let selectedData = field.card.data.filter(\n (x: any) => x.selectedCard && x.selectedCard.length > 0\n );\n if (selectedData && selectedData.length > 0) {\n field.card.data = selectedData;\n }\n }\n }\n });\n }\n });\n if (validity) {\n // Save grid on formSave Button\n const saveAllGrid = document.getElementById('saveAllGridValues');\n const getBtns: any =\n this.el?.nativeElement?.getElementsByClassName('saveRow');\n let customComponent: boolean = false;\n let tempValue: any = [];\n // set value as 1 or 0 in case of checkbox\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields && validity) {\n formSection.fields.forEach((field: any) => {\n if (field.value === '' || field.value === undefined) {\n field.value = null;\n }\n //convert date into time as string\n if (\n field.control === EFormControl.CALENDAR &&\n field.timeOnly &&\n field.saveAsString &&\n !field.value?.toString()?.includes('AM') &&\n !field.value?.toString()?.includes('PM')\n ) {\n field.value = this.datePipe.transform(field.value, 'hh:mm a');\n }\n if (field?.control === EFormControl.NUMERIC) {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field?.format?.type === 'percent') {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value / 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value / 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n }\n }\n }\n\n // set value of autoComplete as strings\n if (\n field.control === EFormControl.AUTOCOMPLETE &&\n !field.showAllValue &&\n field.value &&\n field.value.length > 0\n ) {\n const value = field.value.map(\n (value: any) => value[field.displayField]\n );\n if (\n value &&\n (value.toString()?.includes(';') ||\n value.toString()?.includes(','))\n ) {\n tempValue = value;\n field.value = value.toString().replaceAll(',', ';');\n }\n }\n // convert multiSelect array into string\n if (\n field.control === EFormControl.MULTISELECT &&\n field.value &&\n Array.isArray(field.value) &&\n field.saveAsString !== false\n ) {\n field.value = field.value?.toString();\n }\n if (field.control === EFormControl.CHECKBOX) {\n field.value = field.value ? 1 : 0;\n }\n // Save grid on formSave Button\n if (field.control === EFormControl.COMPONENT && !customComponent) {\n customComponent = true;\n if (saveAllGrid) {\n saveAllGrid.click();\n } else if (getBtns && getBtns.length > 0) {\n for (let btn of getBtns) {\n btn?.click();\n }\n }\n }\n });\n }\n });\n this.browserTabCloseEvent(false);\n setTimeout(\n () => {\n this.saveForm.emit(this.form.formSections);\n },\n saveAllGrid ? 80 : 0\n );\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (\n field.control === EFormControl.AUTOCOMPLETE &&\n !field.showAllValue\n ) {\n field.value = tempValue\n .toString()\n .replaceAll(',', ';')\n ?.split(';')\n ?.map((val: any) => ({ [field.displayField]: val }));\n }\n if (field.control === EFormControl.CHECKBOX) {\n field.value = field.value === 1 ? true : false;\n }\n if (field?.format?.type === 'percent') {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value * 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value * 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n }\n \n }\n });\n }\n });\n }\n }\n\n onCancelForm() {\n if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {\n this.alertService\n .confirm({\n key: 'cancelButton',\n message: 'You have unsaved changes. Would you like to continue?',\n })\n .then((res) => {\n if (res[0].detail === 'Yes') {\n this.browserTabCloseEvent(false);\n this.gridService.columnFocusedOut = false;\n this.cancelForm.emit(this.form.formSections);\n utilities.removeActiveIconClass();\n }\n });\n } else {\n this.cancelForm.emit(this.form.formSections);\n utilities.removeActiveIconClass();\n }\n }\n\n lookupClearValue(formField: IFormField) {\n if (formField.value) {\n formField.value = '';\n this.browserTabCloseEvent(true);\n }\n if (formField.onChange) {\n formField.onChange(formField);\n }\n this.formService.checkValidity([formField]);\n }\n\n /**\n * set calender width\n */\n setCalanderWidth() {\n const calanderElement = document.querySelectorAll('.p-calendar');\n let form: any = document.querySelector('form');\n let width = form?.clientWidth;\n calanderElement?.forEach((calander: any) => {\n const calanderOfsetLeft = calander.offsetLeft;\n if (calanderOfsetLeft <= width / 2) {\n calander.classList.add('open-right-side');\n }\n });\n }\n\n /**\n * set the dynamic dialog data\n */\n setDialogData(formField: IFormField, data: any): any {\n if (data && formField) {\n let value: any;\n data = utilities.objConvertToLower(data);\n let selection: string = '';\n if (formField.value && typeof formField.value === 'object') {\n if (\n formField.value &&\n formField.value.text &&\n formField.value.text.toString().trim()\n ) {\n selection = formField.value.text?.toString()?.trim();\n if (formField.displayField) {\n value = formField.value?.value?.toString()?.trim();\n }\n }\n } else if (formField.value && formField.value.toString().trim()) {\n selection = formField.value?.toString()?.trim();\n }\n const componentName = data.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n componentName\n );\n }\n return this.dialogService.open(data.component, {\n ...data.data,\n data: {\n selection: selection,\n field: formField.field,\n value: value,\n valueField: data.data?.valueField,\n ...data.data.data,\n },\n });\n }\n }\n\n tabFocusEvent(formField: any) {\n const className = this.el.nativeElement.querySelector(\n '.' + formField.field\n );\n if (className) {\n className.click();\n }\n }\n\n onClickEvent(formField: IFormField) {\n if (formField.onClick && formField.disabled !== true) {\n formField.onClick(formField);\n }\n }\n\n /**\n * open dialog on lookupControl label\n */\n selectLookupLabel(formField: any) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl\n ) {\n const ref: any = this.setDialogData(\n formField,\n formField.label.labelControl.lookupControl\n );\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (res) {\n formField.value = utilities.setDialogResponse(\n formField,\n formField?.label.labelControl.lookupControl,\n res\n );\n }\n this.onFocusOutEvent(formField);\n if (formField.label.onReturn)\n formField.label.onReturn(formField.value);\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n this.onClickEvent(formField);\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(formField: IFormField) {\n if (formField.lookupControl) {\n this.lookupFocusOut = true;\n let value = formField.value;\n const ref = this.setDialogData(formField, formField.lookupControl);\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (formField.field) {\n document.getElementById(formField.field)?.focus();\n }\n if (res) {\n formField.value = utilities.setDialogResponse(\n formField,\n formField.lookupControl,\n res\n );\n this.lookupFocusOut = false;\n if (formField.onReturn) formField.onReturn(formField.value, res);\n }\n this.onFocusOutEvent(formField);\n const formFieldValue =\n typeof formField.value === 'object'\n ? formField.value.text\n : formField.value;\n value = typeof value === 'object' ? value.text : value;\n if (formFieldValue !== value) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.onChange(formField);\n }\n }\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n }\n\n /**\n * onClick event invoked && open Dialog on lookupControl field/label\n */\n handleClickEvent(formField: IFormField) {\n this.onClickEvent(formField);\n if (formField && formField.lookupControl) {\n this.selectLookupLabel(formField);\n this.selectLookupField(formField);\n }\n }\n\n /**\n * set Calender Date Format && set Date Minute interval\n */\n setCalenderDate(formField: IFormField) {\n if (formField.control === EFormControl.CALENDAR) {\n // convert time into date format\n if (\n formField.timeOnly &&\n (formField.value?.toString().includes('AM') ||\n formField.value?.toString().includes('PM'))\n ) {\n formField.value = utilities.setTimeInDate(formField.value);\n }\n if (\n (formField.showTime || formField.timeOnly) &&\n formField.value &&\n formField.minutesInterval\n ) {\n formField.value = new Date(\n utilities.setMinutesInterval(formField.value)\n );\n } else if (\n (formField.showTime || formField.timeOnly) &&\n !formField.value &&\n formField.minutesInterval\n ) {\n formField.value = new Date(utilities.setMinutesInterval(new Date()));\n }\n this.calenderPreviousValue = formField.value;\n }\n }\n calendarChangeValue(formField: any) {\n if (formField.value !== formField.previousValue) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.previousValue = formField.value;\n formField.onChange(formField);\n }\n }\n }\n\n /**\n * invoked section Clicked event\n */\n clickedSection(section: IFormSection) {\n this.sectionClickedEvent.emit(section);\n }\n\n /**\n * open dialog in Note_Field conrtrol\n */\n handleNoteFieldDialog(formfield: IFormField) {\n const dialogRef = this.dialogService.open(NotesComponent, {\n header: formfield.label as string,\n width: '50%',\n data: {\n value: formfield.value,\n disabledText: formfield.disabledText,\n },\n });\n utilities.draggableDialog(\n formfield?.field ? formfield?.field : formfield?.label\n );\n dialogRef.onClose.subscribe(\n (data: any) => {\n if (data && formfield.onReturn) {\n formfield.onReturn(data);\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n setClassName(formField: IFormField): string {\n if (formField.hidden) return ' hidden';\n else return '';\n }\n\n autoSearch(event: any, formField: any) {\n if (formField && event) {\n formField.onReturn(event.query, formField);\n }\n }\n\n /**\n * invoked onFocusOut Event\n */\n onFocusOutEvent(formField: IFormField) {\n let record: any = {};\n this.form.formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field) {\n record[formField.field] = formField.value;\n }\n });\n });\n utilities.setHyperlinkParamValue(record, this.form);\n this.formService.checkValidity([formField]);\n if (formField && formField.onFocusOut && this.lookupFocusOut === false) {\n formField.onFocusOut(formField);\n }\n }\n\n onBackSpaceEvent(formField: IFormField) {\n if (typeof formField.value === 'object') {\n formField.value.text = formField.value.text.substring(\n 0,\n formField.value.text.length - 1\n );\n if (formField.value.text.length === 1) {\n formField.value = undefined;\n this.formService.checkValidity([formField]);\n }\n }\n if (formField.value && formField.value.length === 1) {\n formField.value = undefined;\n this.formService.checkValidity([formField]);\n }\n }\n\n /**\n * clear the dropdown value when click on x\n */\n onClearValue(formField: IFormField, event: any) {\n this.formService.checkValidity([formField]);\n this.onChangeEvent(formField);\n this.dropDownChangeEvent.emit(formField);\n if (!event.value) {\n this.onFocusOutEvent(formField);\n }\n }\n\n clearDropdownValue(formField: any) {\n this.onClickEvent(formField);\n }\n\n /**\n * Invoke onChange Event when Value Changed\n */\n onChangeEvent(formField: IFormField) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.onChange(formField);\n }\n }\n\n typeOf(value: any) {\n return typeof value;\n }\n\n /**\n * convert unSafe link into safe link\n */\n sanitizeUrl(url: string) {\n let linkUrl: any = url;\n if (linkUrl) {\n linkUrl = this.sanitizer.bypassSecurityTrustUrl(linkUrl);\n }\n return linkUrl;\n }\n\n /**\n * invoke on dynamic buttons click\n */\n onNewButtonClick(button) {\n button.func();\n }\n\n selectedCardClickEvent(data: any) {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n this.form.formSections.forEach((section: any) => {\n section.fields.forEach((field: any) => {\n if (field.control === EFormControl.CARD) {\n if (field.card && field.card.data?.length > 0) {\n let obj = field.card.data[data.index];\n if (obj) {\n if (obj.selectedCard) {\n delete obj.selectedCard;\n } else {\n obj['selectedCard'] = 'card-active';\n }\n }\n }\n }\n });\n });\n }\n if (data.selectedCard) {\n data['selectedCard'] = '';\n } else {\n data['selectedCard'] = 'card-active';\n }\n }\n\n changePasswordType(formField) {\n if (formField.textType == 'text') {\n formField.textType = 'password';\n } else {\n formField.textType = 'text';\n }\n }\n onLinkClick(link, formSection){\n if(!link.disabled && !formSection.disabled){\n link.onClick();\n }\n }\n}\n\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { ISelectItem } from '../../../models/grid.model';\n\n@Component({\n selector: 'se-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnChanges {\n @Input() options: ISelectItem[] = [];\n @Input() value: ISelectItem;\n @Output() valueChange: EventEmitter<string> = new EventEmitter();\n public selectedOption: any;\n\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.options.length) {\n if (this.value) {\n this.selectedOption = changes['value'].currentValue.toString().trim();\n } else {\n this.selectedOption = this.options[0];\n this.valueChange.emit(this.selectedOption.value);\n }\n }\n }\n\n handleValueChange(event: { value: string }) {\n this.valueChange.emit(event.value);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'se-gallery',\n templateUrl: './image-gallery.component.html',\n styleUrls: ['./image-gallery.component.css']\n})\nexport class GalleryComponent {\n \n @Input() galleryImage: any;\n @Input() width: string;\n\n responsiveOptions: any[] = [\n {\n breakpoint: '1024px',\n numVisible: 5\n },\n {\n breakpoint: '768px',\n numVisible: 3\n },\n {\n breakpoint: '560px',\n numVisible: 1\n }\n ];\n\n constructor() { }\n}","import { Directive, Input, HostListener } from '@angular/core';\nimport { Table } from 'primeng/table';\n\n@Directive({\n selector: '[pAddRow]',\n})\nexport class AddRowDirective {\n @Input() table: Table;\n @Input() newRow: any;\n @Input() id: string;\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n // Insert a new row\n if (this.table && this.table.value) {\n this.table.value.unshift({\n ...this.newRow,\n [this.id]: Date.now(),\n isNew: true,\n });\n }\n\n // Set the new row in edit mode\n this.table.initRowEdit({\n ...this.newRow,\n [this.id]: Date.now(),\n isNew: true,\n });\n\n event.preventDefault();\n }\n}\n","import { IMenuFilter, GridFilterControlType } from '../../../models/grid.model';\n\nexport const MenuFilters: IMenuFilter = {\n [GridFilterControlType.INPUT]: [\n { label: 'Starts with', value: 'startsWith' },\n { label: 'Contains', value: 'contains' },\n { label: 'Not contains', value: 'notContains' },\n { label: 'Ends With', value: 'endsWith' },\n { label: 'Equals', value: 'equals' },\n { label: 'Not equals', value: 'notEquals' },\n ],\n [GridFilterControlType.NUMERICINPUT]: [\n { label: 'Equals', value: 'equals' },\n { label: 'Not equals', value: 'notEquals' },\n { label: 'Less than', value: 'lt' },\n { label: 'Less than or equal to', value: 'lte' },\n { label: 'Greater than', value: 'gt' },\n { label: 'Greater than or equal to', value: 'gte' },\n ],\n [GridFilterControlType.CALENDAR]: [\n { label: 'Date is', value: 'dateIs' },\n { label: 'Date is not', value: 'dateIsNot' },\n { label: 'Date is before', value: 'dateBefore' },\n { label: 'Date is after', value: 'dateAfter' },\n ],\n};\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IGlobalFilter, ISelectItem, MenuFilterControls } from '../../../models/grid.model';\nimport { MenuFilters } from '../../base/grid/grid.constant';\n\n@Component({\n selector: 'se-filter-menu',\n templateUrl: './filter-menu.component.html',\n styleUrls: ['./filter-menu.component.scss'],\n})\nexport class AppFilterMenuComponent implements OnInit {\n public isMenuOpen: boolean = false;\n public filterOptions: ISelectItem[] = [];\n\n @Input() globalFilter: IGlobalFilter;\n constructor() { }\n\n ngOnInit(): void {\n this.filterOptions = MenuFilters[this.globalFilter.type as MenuFilterControls];\n }\n\n toggleMenu() {\n this.isMenuOpen = !this.isMenuOpen;\n }\n\n handleFilterSelection({ value }: ISelectItem) {\n this.isMenuOpen = false;\n this.globalFilter.matchMode = value;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\nimport { IMenu } from '../../../models/menu.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'se-menu-bar',\n templateUrl: './menu-bar.component.html',\n styleUrls: ['./menu-bar.component.scss'],\n})\nexport class MenuBarComponent implements OnInit {\n @Input() hiddenPanelMenu: boolean = true;\n @Input() toolTip: string;\n // @Input() menuBackColor: string;\n @Input() menuItemsTop: IMenu[];\n @Input() menuItemsBottom: IMenu[];\n @Input() menuFooter: string;\n @Input() menuTitle: string;\n @Output() onClickEvent: EventEmitter<any> = new EventEmitter();\n\n public menuBarItemsTop: MenuItem[] = [];\n public menuBarItemsBottom: MenuItem[] = [];\n public menuBarItems: MenuItem[] = [];\n public totalItems:number=0\n public hiddenItems:number=0\n toggleMenu: boolean = false;\n roles: string[] = [];\n isMenubarHidden: boolean = false;\n\n constructor(\n private authService: AuthenticationService,\n private cookieService: CookieService,\n public router: Router,\n ) { }\n\n ngOnInit(): void { }\n\n ngOnChanges() {\n const toggleMenu = localStorage.getItem('toggleMenu');\n const cookieValue = this.cookieService.get('toggleMenu');\n\n if (toggleMenu) {\n this.toggleMenu = JSON.parse(toggleMenu);\n } else if (cookieValue) {\n this.toggleMenu = JSON.parse(cookieValue);\n }\n\n this.roles = this.authService.getUserRoles();\n\n // apply user role permissions\n this.applyUserPermissions();\n\n this.menuBarItemsTop = this.menuItemsTop.map((x) => ({\n ...x,\n style: x.hidden ? { display: 'none' } : x.style,\n }));\n\n this.menuBarItemsBottom = this.menuItemsBottom?.map((x) => ({\n ...x,\n style: x.hidden ? { display: 'none' } : x.style,\n }));\n }\n\n toggleSidebar() {\n this.toggleMenu = !this.toggleMenu;\n localStorage.setItem('toggleMenu', JSON.stringify(this.toggleMenu));\n this.cookieService.set('toggleMenu', JSON.stringify(this.toggleMenu));\n }\n\n clickEvent() {\n this.onClickEvent.emit();\n }\n\n // apply user role permissions\n applyUserPermissions() {\n\n\n\n if (this.menuItemsTop || this.menuBarItemsBottom) { \n this.menuItemsTop? this.setUserPermissionsBasedOnMenuItemsList(this.menuItemsTop):'' \n this.menuItemsBottom? this.setUserPermissionsBasedOnMenuItemsList(this.menuItemsBottom):'' \n this.isMenubarHidden = this.totalItems > 0 && this.totalItems ===this.hiddenItems;\n }\n }\n\n setUserPermissionsBasedOnMenuItemsList(menuItems: IMenu[]){\n \n\n menuItems.forEach((menu) => {\n if (menu.items) {\n menu.items.forEach((item) => {\n let permissions: any = item.permissions;\n if (!permissions) permissions = menu.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (permission.type === EPermissionType.VIEW) {\n if (isValid) {\n hasValidEditPermission = true;\n item.disabled = false;\n item.hidden = false;\n } else {\n item.hidden = true;\n }\n } \n }\n });\n }\n\n this.totalItems++;\n\n if (item.hidden) {\n item.style = { display: 'none' };\n this.hiddenItems++;\n }\n });\n\n // if all items of menu is hidden then hide menu as well\n menu.hidden =\n menu.items.length === menu.items.filter((x) => x.hidden).length;\n }\n }); \n }\n}","import { Type } from '@angular/core';\nimport { IPermission } from './user-info.model';\n\nexport const ESideBar = {\n LEFT: 'left-sidebar',\n RIGHT: 'right-sidebar',\n};\n\nexport interface ISidebar {\n icon: string;\n label?: string;\n action?: string;\n section: string;\n component?: Type<any>;\n data?: IData;\n onReturn?: (data: any) => any;\n onClick?: (value: any) => void;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n id?: string;\n tooltip?: string\n iFrame?: IFrame;\n linkId?:string;\n params?: {[key: string]: any};\n\n}\n\nexport enum ESidebarAction {\n NAVIGATION = 'navigation',\n OPENDIALOG = 'dialog',\n IFRAME = '_iframe',\n}\n\nexport interface IFrame {\n link?: string;\n linkId?: string;\n width?: string;\n height?: string;\n}\n\nexport interface IData {\n header?: string;\n width?: string;\n height?: string;\n data?: any;\n scrollable?: boolean;\n}\n","import { Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ESidebarAction, ISidebar } from '../../../models/sidebar.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { HyperlinkService } from '../../../services/hyperlink.service';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport * as utilities from '../../../services/utilities.service';\nimport { AlertService } from '../../../services/alert.service';\n\n@Component({\n selector: 'se-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnInit {\n toggleMenu: boolean = false;\n loadComponentName = '';\n openDialogs: any = [];\n globalListenFunc: Function;\n @Input() navHidden: boolean = false;\n @Input() collapseSidebar: boolean = false;\n @Input() menuTitle: string;\n @Input() set sidebarItems(newSidebarItems: ISidebar[]) {\n if (newSidebarItems) {\n this.sidebarItemsList = newSidebarItems;\n this.initializeSideBar();\n }\n }\n\n public sidebarItemsList: ISidebar[] = [];\n public menuItems: MenuItem[] = [];\n roles: string[] = [];\n isSidebarHidden: boolean = false;\n\n constructor(\n private instance: Renderer2,\n private authService: AuthenticationService,\n public dialogService: DialogService,\n private router: Router,\n private route: ActivatedRoute,\n private pageLoggerService: PageLoggerService,\n private hyperlinkService: HyperlinkService,\n private alertService: AlertService\n ) { }\n\n ngOnInit(): void {}\n\n initializeSideBar() {\n this.roles = this.authService.getUserRoles();\n // apply user role permissions\n this.applyUserPermissions();\n this.menuItems = this.sidebarItemsList.map((x: any) => ({\n label: x.label,\n icon: x.icon,\n id: x.id,\n section: x.section,\n expanded: x.expanded,\n action: x.action,\n items: x.items && x.items.length > 0 ? this.setMenuItems(x) : [],\n title: this.setMenuTitle(x),\n command: ({ item }) => {\n if (x.action && x.action === ESidebarAction.NAVIGATION) {\n this.navigateToSection(x, item);\n } else if (x.action && x.action === ESidebarAction.OPENDIALOG) {\n this.openDialog(x, item);\n } else if (x.action && x.action === ESidebarAction.IFRAME) {\n this.loadIFrame(x, item);\n } else {\n this.handleActiveItem(item);\n }\n },\n style: {\n borderBottom: '', // '1px solid #e9ecef',\n display: x.hidden ? 'none' : '',\n },\n onClick: x.onClick,\n onReturn: x.onReturn,\n disabled: x.disabled,\n }));\n }\n\n setMenuTitle(x: any): string {\n return x.tooltip ? x.tooltip : !x.label ? x.section : '';\n }\n\n setMenuItems(x: any): any {\n return x.items.map((menu: any) => ({\n label: menu.label,\n icon: menu.icon,\n id: menu.id,\n section: menu.section,\n expanded: menu.expanded,\n action: menu.action,\n title: this.setMenuTitle(x),\n command: ({ item }: any) => {\n if (x.action && x.action === ESidebarAction.NAVIGATION) {\n this.navigateToSection(menu, item);\n } else if (menu.action && menu.action === ESidebarAction.OPENDIALOG) {\n this.openDialog(menu, item);\n } else if (menu.action && menu.action === ESidebarAction.IFRAME) {\n this.loadIFrame(menu, x);\n }\n this.handleActiveItem(item);\n },\n style: {\n borderBottom: '', // '1px solid #e9ecef',\n display: menu.hidden ? 'none' : '',\n },\n onClick: menu.onClick,\n onReturn: menu.onReturn,\n disabled: menu.disabled,\n }))\n }\n\n loadIFrame(menu: any, item: any) {\n if(menu.iFrame.linkId){\n this.hyperlinkService.buildUrl(menu.iFrame.linkId, menu?.params).then((res)=>{\n if(res){\n menu.iFrame['link'] = res;\n this.loadIFrameData(menu, item);\n }else{\n this.alertService.error(\"No Link Found Against this linkId\");\n }\n })\n }else{\n this.loadIFrameData(menu, item);\n }\n }\n\n loadIFrameData(menu: ISidebar, item: any) {\n if (menu) {\n const dialogRef = this.dialogService.open(IframeComponent, {\n header: menu['data']?.header ? menu['data']?.header : menu.section ,\n width: menu.iFrame?.width ? menu.iFrame.width : '90%',\n height: menu.iFrame?.height ? menu.iFrame.height : '80%',\n data: { value: menu.iFrame?.link, iFrameId: menu.section },\n });\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), 'IframeComponent');\n\n this.handleActiveItem(item);\n utilities.draggableDialog(menu.label)\n dialogRef.onClose.subscribe((data: any) => {\n this.handleActiveItem(item, false);\n if (data && menu.onReturn) {\n menu.onReturn(data);\n }\n });\n }\n }\n\n toggleSidebar() {\n this.toggleMenu = !this.toggleMenu;\n localStorage.setItem('toggleMenu', JSON.stringify(this.toggleMenu));\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.sidebarItemsList) {\n let totalItems: number = 0;\n let hiddenItems: number = 0;\n\n this.sidebarItemsList.forEach((item, index) => {\n let permissions: any = item.permissions;\n let hasValidEditPermission = false;\n\n item.id = index.toString();\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n item.disabled = true;\n } else {\n item.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n item.disabled = false;\n item.hidden = false;\n } else {\n item.disabled = true;\n }\n }\n }\n });\n }\n\n totalItems++;\n\n if (item.hidden) {\n hiddenItems++;\n }\n });\n\n this.isSidebarHidden = totalItems > 0 && totalItems === hiddenItems;\n }\n }\n\n /**\n *\n * @ param menu\n * @ param item\n * Passes the sidebar array to contain all ISidebar property like\n * Passes the event of the menu\n */\n\n openDialog(menu: ISidebar, item: any): void {\n let ctrl: string = '';\n this.globalListenFunc = this.instance.listen('document', 'keydown', e => {\n ctrl = e.key;\n });\n setTimeout(() => {\n if (ctrl === 'Control') {\n //open component on new tab\n this.openComponentInTab(menu)\n } else {\n //open component in dialog\n this.openComponentInDialog(menu, item)\n }\n }, 250);\n }\n \n openComponentInTab(menu: ISidebar) {\n let route: any = {}\n this.router.config.forEach((parentRoute) => {\n if (parentRoute.component?.name === menu.component?.name) {\n route = parentRoute;\n } else if (parentRoute.children) {\n parentRoute?.children?.forEach((childRoute) => {\n if (childRoute.component?.name === menu.component?.name) {\n route = childRoute;\n }\n })\n }\n })\n if (route) {\n let params = {};\n this.route.queryParams.subscribe((param: any) => {\n if (param && Object.keys(param)?.length > 0) {\n params = param\n }\n })\n const url = this.router.serializeUrl(this.router.createUrlTree([route?.path], { queryParams: params }));\n window.open(url, '_blank');\n }\n }\n \n openComponentInDialog(menu:ISidebar, item:any){\n const menuData:any = menu.data ? menu.data : menu;\n menuData.style ={background: '#fff'}\n if(menuData.scrollable == false){\n menuData.styleClass = \"small-model\";\n }else{\n menuData.styleClass = \"sidebar-datepicker\";\n }\n if (menu.component) {\n const dialogRef = this.dialogService.open(menu.component, menuData);\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), menu.component?.name);\n this.openDialogs.push(dialogRef);\n this.handleActiveItem(item);\n\n if (this.openDialogs && this.openDialogs.length > 1) {\n this.openDialogs[0].close();\n this.openDialogs.shift();\n }\n utilities.draggableDialog(menu.label)\n dialogRef.onClose.subscribe((data: any) => {\n this.handleActiveItem(item, false);\n if (data && menu.onReturn) {\n menu.onReturn(data);\n }\n });\n }\n }\n\n /**\n *\n * @ param x\n * @ param item\n * Passes the sidebar array to contain all ISidebar property like\n * Passes the event of the menu\n */\n\n navigateToSection(x: ISidebar, item: any): void {\n this.instance?.selectRootElement(`.${x.section?.replace(/\\s/g, \"\")}`, true)?.scrollIntoView({ behavior: 'smooth' });\n this.handleActiveItem(item);\n }\n\n /**\n *\n * @param item\n * Passes the event of the menu\n */\n handleActiveItem({ icon }: any, closeDialog: boolean = true): void {\n this.menuItems = this.menuItems.map((x) =>\n x.icon === icon && closeDialog\n ? { ...x, styleClass: 'active-icon' }\n : {\n ...x,\n styleClass: '',\n style: {\n borderBottom: '1px solid #e9ecef',\n display: x.style?.display === 'none' ? 'none' : '',\n },\n }\n );\n }\n\n clickedMenu(menu: MenuItem[]) {\n menu.map((item: any) => {\n const matchedItem: any = this.sidebarItemsList.find((x) => x.id == item.id);\n if (\n item.styleClass === 'active-icon' &&\n matchedItem &&\n matchedItem.onClick\n ) {\n this.hyperlinkService\n .addHyperlinks(matchedItem)\n .then((response: any) => {\n if (matchedItem.linkId) {\n this.hyperlinkService.setSidebarLink(\n response,\n this.sidebarItemsList\n );\n } else {\n matchedItem.onClick(item);\n }\n });\n }\n });\n }\n \n}","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { IHeader } from '../../../models/header.model';\nimport { EFormControl } from '../../../models/form.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'se-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit, OnChanges {\n @Input() headers: IHeader;\n\n dynamicCase = EFormControl;\n roles: string[] = [];\n isHeaderHidden: boolean = false;\n\n constructor(private authService: AuthenticationService, public datepipe: DatePipe) {}\n\n ngOnInit(): void {\n this.roles = this.authService.getUserRoles();\n // apply user role permissions on form\n this.applyUserPermissions();\n }\n\n ngOnChanges(): void {\n if(this.headers && this.headers.fields){\n this.headers.fields.forEach((x) => {\n if (!x.showTime && !x.timeOnly && x.value?.toString().match(/[0-9]+-\\s?/g)) {\n x.value = this.datepipe.transform(x.value, 'yyyy-MM-dd');\n }\n if (x.value?.toString().includes(':') && x.timeOnly) {\n const index = x.value.indexOf(':');\n const time = x.value.substring(index - 2, index + 6);\n x.value = time;\n }\n });\n }\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.headers) {\n let totalFields: number = 0;\n let hiddenFields: number = 0;\n\n this.headers.fields.forEach((headerField) => {\n let permissions: any = headerField.permissions;\n if (!permissions) permissions = this.headers.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n headerField.disabled = true;\n } else {\n headerField.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n headerField.disabled = false;\n headerField.hidden = false;\n } else {\n headerField.disabled = true;\n }\n }\n }\n });\n }\n\n totalFields++;\n\n if (headerField.hidden) {\n hiddenFields++;\n }\n });\n\n this.isHeaderHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n loaderState = new Subject<any>();\n\n constructor() {}\n\n /**\n * Shows loader\n */\n showLoader(isDarkBackground = true) {\n this.loaderState.next({ loading: true, isDarkBackground });\n }\n\n /**\n * Hides loader\n */\n hideLoader() {\n this.loaderState.next({ loading: false });\n }\n\n /**\n * Fires on loader state changed.\n * @returns {Observable<any>}\n */\n onLoaderStateChange(): Observable<any> {\n return this.loaderState.asObservable();\n }\n}\n","import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoaderService } from '../../../services/loader.service';\n\n@Component({\n selector: 'se-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnInit, OnDestroy {\n isLoading = false;\n isDarkBackground = true;\n loaderSubscription$: Subscription = new Subscription();\n\n constructor(\n public loaderService: LoaderService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.loaderSubscription$ = this.loaderService\n .onLoaderStateChange()\n .subscribe((state: any) => {\n this.isLoading = state.loading ? true : false;\n this.isDarkBackground = state.isDarkBackground ? true : false;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.loaderSubscription$) {\n this.loaderSubscription$.unsubscribe();\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ESelectFileType, IFormField } from '../../../models/form.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { RequestService } from '../../../services/request.service';\n@Component({\n selector: 'se-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class FileUploadComponent implements OnInit {\n @Input() acceptFileTypes: any;\n @Input() allowMultiple: boolean = false;\n @Input() fields: any;\n @Output() fileUrl: EventEmitter<any> = new EventEmitter();\n @Output() uploadFileOnReturn: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private requestService: RequestService,\n private alertService: AlertService\n ) {}\n\n ngOnInit(): void {}\n\n uploadFile(files: any) {\n let fileData = new FormData(); \n let chooseFile:boolean = false;\n for (let i = 0; i < files.length; i++) {\n if (files[i]) {\n chooseFile = true;\n fileData.append(files[i].name, files[i]);\n }\n }\n\n if (fileData && chooseFile) {\n if (this.fields && this.fields.uniqueKey?.length > 0) {\n fileData.append('uniqueKey', this.fields?.uniqueKey);\n }else if(this.fields && this.fields.pathSystemConfig?.length > 0){\n fileData.append('azureContainer', this.fields.pathSystemConfig);\n }\n this.requestService.get<any[], any>('/Upload', fileData).subscribe(\n (data: any) => {\n if (data) {\n this.alertService.success('File Upload Successfully.');\n if (this.fields?.onReturn) {\n this.fields.onReturn(data.results);\n this.uploadFileOnReturn.emit();\n }\n this.fileUrl.emit(data.results);\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n if (this.fields.onReturn) {\n this.fields.onReturn(error);\n this.uploadFileOnReturn.emit();\n }\n }\n );\n }\n }\n onClickEvent() {\n if (this.fields && this.fields.onClick) {\n this.fields.onClick();\n }\n } \n}\n","import { Component, EventEmitter, OnInit, Optional, Output } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { EValidator, IDynamicForm } from '../../../models/form.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { FormService } from '../../../services/form.service';\nimport { RequestService } from '../../../services/request.service';\nimport * as utilities from '../../../services/utilities.service';\n\n@Component({\n selector: 'se-caption',\n templateUrl: './caption.component.html',\n styleUrls: ['./caption.component.scss'],\n})\nexport class CaptionComponent implements OnInit {\n dynamicForm: IDynamicForm;\n id: number;\n caption: string;\n\n constructor(\n private formService: FormService,\n private requestService: RequestService,\n private alertService: AlertService,\n @Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef\n ) {}\n\n ngOnInit(): void {\n if (this.config.data) {\n this.id = this.config.data.id;\n this.caption = this.config.data.caption;\n }\n this.initilizeForm();\n }\n\n initilizeForm() {\n this.dynamicForm = {\n formSections: [\n {\n fields: [\n this.formService.addTextbox({\n field: 'fileCaption',\n label: 'Caption',\n value: this.caption,\n column: 12,\n validations: [{ type: EValidator.REQUIRED }]\n }),\n ],\n },\n ],\n };\n }\n\n saveForm(formFiels: any) {\n this.requestService\n .get<any[], any>('/AzureUpload/UpdateCaption', {\n Id: this.id,\n fileCaption: utilities.getFormFieldValue(\n this.dynamicForm,\n 'fileCaption'\n ),\n })\n .subscribe(\n (response: any) => {\n if (response) {\n this.alertService.success('Caption added successfully.');\n this.ref.close(response);\n }\n },\n ({ error }) => {\n this.ref.close();\n this.alertService.apiError(error);\n }\n );\n }\n cancelForm(event: any) {\n //console.log('CancelForm: ', event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { IDynamicCard, IDynamicForm, IViewCardProp } from '../../../models/form.model';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { GridService } from '../../../services/grid.service';\nimport * as utilities from '../../../services/utilities.service';\nimport { ConfirmationService } from 'primeng/api';\n\n@Component({\n selector: 'se-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit {\n @Output() selectedCard: EventEmitter<any> = new EventEmitter();\n // @Output() onDeleteCard: EventEmitter<any> = new EventEmitter();\n @Input() data: any = [];\n @Input() width: string = '';\n @Input() height: string = '';\n @Input() card: any;\n @Input() setCardData: boolean;\n dynamicForm: IDynamicForm;\n showFiles: boolean = false;\n displayCardInfo: IViewCardProp;\n\n constructor(\n public dialogService: DialogService,\n private gridService: GridService,\n private confirmationService: ConfirmationService\n ) {}\n\n ngOnInit(): void {}\n\n ngOnChanges() {\n if (this.card) {\n let { data, formSections, cardInfo }: any = this.card;\n if(cardInfo && Object.keys(cardInfo).length){\n this.displayCardInfo = cardInfo;\n data = this.gridService.setDataFields(data);\n const newArr = [];\n data?.forEach((record)=>{\n if(!Object.keys(record)?.includes('azurecontainerid')){\n newArr.push({...record, blobfileurl: record[cardInfo.url?.toLowerCase()], filecaption: record[cardInfo.caption?.toLowerCase()], fileextension: record[cardInfo.extension?.toLowerCase()]});\n } else {\n newArr.push(record);\n }\n });\n this.data = newArr;\n } else {\n this.data = this.gridService.setDataFields(data);\n }\n this.dynamicForm = { formSections };\n // set the default value of allowDelete, allowEditableCaption and allowDownload\n this.setCardPropValue('allowDownload');\n this.setCardPropValue('allowDelete');\n this.setCardPropValue('allowEditableCaption');\n //files.allowEditableCaption = this.setCardPropValue(files.allowEditableCaption);\n /** In case of when we are using this component for stand alone then if formSection is exist in\n the this.card and then add in the data array.\n */\n if (this.data) {\n this.data.forEach((x: any) => {\n if (!x.dynamicform) {\n x.dynamicform = JSON.parse(JSON.stringify(this.dynamicForm));\n }\n utilities.setCardFieldsData(x);\n });\n }\n }\n }\n\n // set the default value of allowDelete, allowEditableCaption and allowDownload\n setCardPropValue(prop:string){\n if(!this.card[prop]?.toString()?.length) {\n this.card[prop]= true;\n }\n }\n\n dragAndDrop(event: any) {\n moveItemInArray(this.data, event.previousIndex, event.currentIndex);\n event.item?.element?.nativeElement;\n this.card.data = this.data;\n this.card['change'] = true;\n if (this.card && this.card.onSort) {\n this.card.onSort(this.data);\n }\n }\n\n deleteImage(event: any) {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this Image?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handlecolumnActions',\n accept: () => {\n if (this.data && event) {\n let arr = [...this.data];\n const index = arr.findIndex(\n (i) => i.blobfileurl === event.blobfileurl\n );\n let obj = arr[index];\n arr.splice(index, 1);\n this.data = [...arr];\n\n if (this.card && this.card.onDelete) {\n obj = this.replacePropName(obj);\n this.card.onDelete(obj);\n // this.onDeleteCard.emit();\n }\n }\n this.confirmationService.close();\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n\n replacePropName(cardInfo:any){\n if(this.displayCardInfo && Object.keys(this.displayCardInfo).length > 0){\n const cardProp = {...this.displayCardInfo};\n const obj = {...cardInfo,[cardProp.url]: cardInfo.blobfileurl,[cardProp.caption]: cardInfo.filecaption,[cardProp.extension]: cardInfo.fileextension};\n return obj;\n } else {\n return cardInfo;\n }\n }\n\n saveCaption(event: any) {\n if (this.data && event) {\n let arr = [...this.data];\n const index = arr.findIndex((i) => i.blobfileurl === event.blobfileurl);\n let obj = arr[index];\n if (index !== -1) {\n obj.filecaption = event.caption;\n arr.splice(index, 1, obj);\n this.card.data = arr;\n this.card['change'] = true;\n }\n if (this.card && this.card?.onCaptionSave) {\n obj = this.replacePropName(obj);\n this.card.onCaptionSave(obj);\n }\n }\n }\n\n onClickEvent(data: any, index: number){\n data['index'] = index;\n this.selectedCard.emit(data);\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ConfirmationService } from 'primeng/api';\nimport { ESelectFileType } from '../../../models/form.model';\n\n@Component({\n selector: 'se-file',\n templateUrl: './file.component.html',\n styleUrls: ['./file.component.scss'],\n})\nexport class fileComponent implements OnInit {\n @Input() url: string = '';\n @Input() caption: string = '';\n @Input() width: string = '';\n @Input() height: string = '200px';\n @Output() onDeleteEvent: EventEmitter<any> = new EventEmitter();\n @Output() onSaveEvent: EventEmitter<any> = new EventEmitter();\n @Input() id: number;\n @Input() name: string = '';\n @Input() type: any;\n @Input() allowDownloadFile: boolean = true;\n @Input() allowEditableCaption: boolean = true;\n @Input() allowDeleteFile: boolean = true;\n editableCaption: boolean = false;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n ngOnInit(): void {\n this.checkFileExtension();\n }\n\n checkFileExtension() {\n switch (this.type) {\n case 'png':\n case 'jpeg':\n case 'jfif':\n case 'jpg': {\n this.type = '.image';\n break;\n }\n case 'xlsx':\n case 'xls':\n case 'xlsm':\n case 'txt': {\n this.type = ESelectFileType.EXCEL;\n break;\n }\n case 'pdf':\n case 'html': {\n this.type = ESelectFileType.PDF;\n break;\n }\n case 'doc':\n case 'docx': {\n this.type = ESelectFileType.DOCUMENT;\n break;\n }\n }\n }\n\n downloadFile(url: string) {\n const link: any = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.click();\n }\n\n captionClickEvent() {\n if (this.allowEditableCaption) {\n this.editableCaption = true;\n }\n }\n\n captionSave(\n id: number,\n name: string,\n url: string,\n type: any,\n caption: string\n ) {\n let obj = {\n id: id,\n name: name,\n blobfileurl: url,\n type: type,\n caption: caption,\n };\n if(caption !== null){\n this.caption = caption;\n this.editableCaption = false;\n this.onSaveEvent.emit(obj);\n }\n }\n\n onDeleteFile(\n id: number,\n name: string,\n url: string,\n type: any,\n caption: string\n ) {\n let obj = {\n id: id,\n name: name,\n blobfileurl: url,\n type: type,\n caption: caption,\n };\n this.onDeleteEvent.emit(obj);\n }\n\n cancel() {\n this.editableCaption = false;\n }\n}\n","import { Component, Input, OnInit, Optional } from '@angular/core';\nimport { RequestService } from '../../../../../services/request.service';\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\nimport { EFormControl, IDynamicForm, IFormField } from '../../../../../models/form.model';\nimport { AlertService } from '../../../../../services/alert.service';\nimport { FormService } from '../../../../../services/form.service';\n\n\n@Component({\n selector: 'se-report-filter',\n templateUrl: './report-filter.component.html',\n styleUrls: ['./report-filter.component.scss']\n})\nexport class ReportFilterComponent implements OnInit {\n dynamicForm:IDynamicForm;\n formFields: IFormField[] = [];\n\n constructor(@Optional() public config: DynamicDialogConfig,private requestService: RequestService, private formService:FormService, private alertService: AlertService) { }\n\n ngOnInit(): void {\n this.createDynamicFields();\n \n }\n initializeForm(){\n this.dynamicForm = {\n formSections:[\n {\n fields: [\n ...this.formFields,\n {\n label: 'Download Report',\n control: EFormControl.ADD_BUTTON,\n hidden: this.config?.data?.hideGenerateReportBtn,\n onClick: () => {\n this.downloadReport();\n },\n }\n ]\n }\n ]\n \n }\n }\n createDynamicFields() {\n this.requestService.getOne<Response, any>('/ReportConfig/ById',this.config.data?.Id).subscribe(\n (data: any) => {\n const reportJson = JSON.parse(data?.report);\n this.formFields = reportJson?.FormFields;\n this.setParamFieldValue();\n this.initializeForm();\n // set dropdown data based on matched field.\n this.setDropDownData(reportJson);\n },\n (error) => {\n this.initializeForm();\n this.alertService.error(error);\n }\n );\n }\n setParamFieldValue(){\n if(this.config.data && this.config.data.param?.length > 0){\n this.config.data.param.forEach((param: any)=>{\n this.formFields.forEach((field)=>{\n const matchKey = Object.keys(param)?.find((key)=> key?.toLowerCase() === field.field?.toLowerCase());\n if(matchKey && matchKey.length > 0){\n field.value = param[matchKey];\n }\n });\n });\n }\n }\n\n setDropDownData(reportJson: any) {\n reportJson.Parameters?.forEach((record: any) => {\n if(record.isuniquekey){\n this.requestService.get<any[], any>('/Data/Fetch', {\n uniqueKey: record.isuniquekey,\n filters: []\n }).subscribe((response:any)=>{\n this.formService.setFormFieldProp(this.dynamicForm, record.paramname, [\n { name: 'data', value: response.records }, \n ]); \n },(error) => {\n this.alertService.apiError(error);\n })\n }\n });\n }\n getFilters(){\n let filters: any = [];\n this.dynamicForm?.formSections?.forEach((section)=>{\n section.fields?.forEach((field)=>{\n if(field && field.value){\n filters.push({field: field.field, matchMode: 'equal', operator:'and', value: field.value});\n };\n });\n }); \n return filters;\n }\n \n downloadReport(){ \n const filters:any = this.getFilters(); \n this.requestService.download('/Report/Generate', { Id: this.config?.data?.Id, filters: filters })\n .subscribe(\n (response) => {\n var newBlob = new Blob([response.body], { type: 'application/pdf' });\n const data = window.URL.createObjectURL(newBlob);\n const a = document.createElement('a');\n a.href = data;\n const header = response?.headers?.get('Content-Disposition');\n const fileName = header?.split('filename=')?.[1]?.split(\";\")[0]?.replaceAll(/\\\"/g, '');\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n (error) => {\n this.alertService.apiError(error);\n \n }\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EFormControl, IDynamicForm, IFormField } from '../models/form.model';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ReportFilterComponent } from '../components/base/report/report-Filter/report-filter/report-filter.component';\nimport { RequestService } from './request.service';\nimport { AlertService } from './alert.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReportService {\n formFields: IFormField[] = [];\n paramsCopy: any = [];\n constructor(public dialogService: DialogService,\n private requestService: RequestService,\n private alertService: AlertService,) { }\n\n downloadReport(repId: number, params: any, showDialog: boolean = false, form: IDynamicForm = {}) {\n params?.forEach((p) => {\n this.paramsCopy.push(Object.assign({}, p));\n });\n this.createDynamicFields(repId, params, showDialog, form);\n }\n\n createDynamicFields(repId, params, showDialog, form) {\n this.requestService\n .getOne<Response, any>('/ReportConfig/ById', repId)\n .subscribe(\n (data: any) => {\n if (data) {\n const reportJson = JSON.parse(data?.report);\n this.formFields = reportJson?.FormFields;\n }\n this.generateReport(repId, params, showDialog, form)\n },\n (error) => {\n this.alertService.error(error);\n }\n );\n }\n\n generateReport(repId: any, params: any, showDialog: boolean = false, form: IDynamicForm = {}) {\n this.getFormFieldValues(form, params);\n if (\n (this.formFields.some((field) => !field.hidden) &&\n showDialog === undefined) ||\n showDialog === true\n ) {\n this.dialogService.open(ReportFilterComponent, {\n width: '80%',\n height: '100%',\n header: 'Generate Report',\n style: {background: '#fff'},\n data: { Id: repId, param: params },\n });\n } else {\n this.downloadQuickReport(params, repId);\n }\n }\n\n\n getFormFieldValues(form: IDynamicForm, params: any) {\n if (this.paramsCopy?.length > 0) {\n this.paramsCopy.forEach((paramCopy) => {\n var key = Object.keys(paramCopy)[0];\n if (paramCopy[key] === '' || !paramCopy[key]) {\n form?.formSections?.forEach((section) => {\n section.fields.forEach((field) => {\n if (key.toString().toLowerCase() === field.field?.toLowerCase()) {\n params.forEach((origParam) => {\n var origKey = Object.keys(origParam)[0];\n if (origKey == key) {\n //origParam[origKey] = field.value;\n if (field.control == EFormControl.CALENDAR) {\n origParam[origKey] = field.value ? field.value.toLocaleDateString() : null;\n } else {\n origParam[origKey] = field.value;\n }\n }\n });\n }\n });\n });\n } else if (\n paramCopy[key].toString().includes('{') &&\n paramCopy[key].toString().includes('}')\n ) {\n var newValue = paramCopy[key].replace('{', '').replace('}', '');\n form?.formSections?.forEach((section) => {\n section.fields.forEach((field) => {\n if (\n newValue.toString().toLowerCase() === field.field?.toLowerCase()\n ) {\n params.forEach((origParam) => {\n var origKey = Object.keys(origParam)[0];\n if (origKey == key) {\n if (field.control == EFormControl.CALENDAR) {\n origParam[origKey] = field.value ? field.value.toLocaleDateString() : null;\n } else {\n origParam[origKey] = field.value;\n }\n }\n });\n }\n });\n });\n }\n });\n }\n }\n\n downloadQuickReport(params, repId) {\n let filters: any[] = [];\n if (params && params.length > 0) {\n params.forEach((param) => {\n Object.keys(param).map((key) =>\n filters.push({\n field: key,\n matchMode: 'equal',\n operator: 'and',\n value: param[key],\n })\n );\n });\n } else {\n filters = this.getFilters();\n }\n\n this.requestService\n .download('/Report/Generate', { Id: repId, filters: filters })\n .subscribe(\n (response) => {\n var newBlob = new Blob([response.body], { type: 'application/pdf' });\n const data = window.URL.createObjectURL(newBlob);\n const a = document.createElement('a');\n a.href = data;\n const header = response?.headers?.get('Content-Disposition');\n const fileName = header\n ?.split('filename=')?.[1]\n ?.split(';')[0]\n ?.replaceAll(/\\\"/g, '');\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n (error) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n getFilters() {\n let filters: any[] = [];\n this.formFields.forEach((field) => {\n if (field && field.value?.toString()?.length > 0) {\n filters.push({\n field: field.field,\n matchMode: 'equal',\n operator: 'and',\n value: field.value,\n });\n }\n });\n return filters;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IFormField, EFormControl, IDynamicForm } from '../../../../../models/form.model';\nimport { ReportService } from '../../../../../services/report.service';\n\n\n\n@Component({\n selector: 'se-generate-report-btn',\n templateUrl: './generate-report-btn.component.html',\n styleUrls: ['./generate-report-btn.component.scss']\n})\nexport class GenerateReportBtnComponent implements OnInit {\n @Input() repId: any;\n @Input() label: string;\n @Input() params: any;\n @Input() showDialog: boolean;\n @Input() form: IDynamicForm;\n constructor(\n private reportService: ReportService\n ) {}\n\n ngOnInit(): void {\n }\n\n reportClickEvent() {\n this.reportService.downloadReport(this.repId, this.params, this.showDialog, this.form)\n }\n}","import { DatePipe } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Optional, Output, ViewChild } from '@angular/core';\nimport { DynamicDialogRef, DynamicDialogConfig, DialogService } from 'primeng/dynamicdialog';\nimport {\n IGlobalFilter,\n GridFilterControlType,\n EGridColumnType,\n addGlobalFilter,\n EDayRange,\n EFilterValidator,\n} from '../../../models/grid.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { GridService } from '../../../services/grid.service';\n\n@Component({\n selector: 'se-global-filters',\n templateUrl: './global-filters.component.html',\n styleUrls: ['./global-filters.component.scss'],\n})\nexport class SeGlobalFilterComponent implements OnInit {\n @ViewChild('rangeCalendar') datePicker: any;\n @Input() globalFilters: IGlobalFilter[] = [];\n @Input() searchGlobalFilterBtn: boolean = false;\n @Input() clearGlobalFilterBtn: boolean = false;\n @Output() filtersApplied: EventEmitter<any> = new EventEmitter();\n @Input() set activeTestMode (val:any) { if(val === true) { debugger }}\n\n public fiterTypes = GridFilterControlType;\n public columnType = EGridColumnType;\n public showDialog: boolean = false;\n public startDate: Date;\n public endDate: Date;\n\n showInput: boolean = false;\n filter: any = '';\n hideClearFilterBtn: boolean = true;\n calendarFormat:string = 'mm/dd/yy';\n\n constructor(\n public datepipe: DatePipe,\n @Optional() public ref: DynamicDialogRef,\n @Optional() public config: DynamicDialogConfig,\n private gridService: GridService,\n public dialogService: DialogService,\n private alertService: AlertService,\n private el: ElementRef,\n ) { }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void {\n if(this.config && this.config.data){\n this.showDialog = this.config.data.openDialog;\n if(this.config.data.globalFilters){\n this.globalFilters = this.config?.data.globalFilters as IGlobalFilter[];\n }\n \n // set By Defualt Calender Range\n this.setDefualtCalendarRange(false);\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n // spliting date range value and assign to value and valueTwo in Date_Range Control\n const dateRangeFilter = this.globalFilters.filter((filter)=> filter.type === GridFilterControlType.DATE_RANGE); \n dateRangeFilter?.forEach((dateRange)=>{\n if(dateRange.value && dateRange.valueTwo){\n if(typeof(dateRange.value)==='object'){\n dateRange.value=dateRange.value.toLocaleDateString();\n }\n if(typeof(dateRange.valueTwo)==='object'){\n dateRange.valueTwo=dateRange.valueTwo.toLocaleDateString();\n }\n dateRange.value = (dateRange.value + \"-\" + dateRange.valueTwo)?.toString()?.split('-'); \n this.setDateRangeFilterValue(dateRange);\n } else if(dateRange.value && !dateRange.valueTwo){\n this.matchSameFields(dateRange.fromField,dateRange.value,'gte');\n } else if(!dateRange.value && dateRange.valueTwo){\n this.matchSameFields(dateRange.fromField,dateRange.valueTwo,'gte');\n }\n })\n // Filtring Numeric Range controls on global filter \n const numerRangeFilter = this.globalFilters.filter((filter)=> filter.type === GridFilterControlType.NUMERIC_RANGE);\n numerRangeFilter.forEach((numericRange) =>{\n if(numericRange){\n this.setNumericRangeValueFrom(numericRange);\n this.setNumericRangeValueTwo(numericRange);\n }\n })\n if(!(this.globalFilters.some((filter)=> filter.type === GridFilterControlType.CALENDAR_RANGE)) &&\n (this.globalFilters.some((filter)=> filter.value))\n ){\n this.applyFilters(false);\n }\n }, 500);\n }\n\n setDateRangeFilterValue(dateRange){\n if(dateRange?.value?.length > 1){\n dateRange.value[0] = new Date(dateRange.value[0]);\n dateRange.value[1] = new Date(dateRange.value[1]);\n this.selectDate(dateRange, false);\n }\n }\n \n containsWhitespace(str) {\n return str.includes(' ');\n }\n\n addSpacesatfirst(x) {\n return \" \" + x;\n }\n\n addSpacesatlast(x) {\n return x + \" \"\n }\n\n // change calendar format on run time if user type date on the calendar field.\n calendarFocusEvent(globalFilter:IGlobalFilter, event?: any){\n document.getElementsByClassName(globalFilter.displayText)[0]?.addEventListener('keyup', (a: any) => {\n let year = a?.target?.value?.toString()?.split('/')[2];\n year = year?.toString().split(\" \")[0];\n\n let dateRangeValue = a?.target?.value?.includes('-') ? a?.target?.value?.split('-') : '';\n // adding space between from and to date in date range filter\n if (dateRangeValue.length == 2 && dateRangeValue[1].split('/').length == 3 && (!this.containsWhitespace(dateRangeValue[0]) || !this.containsWhitespace(dateRangeValue[1]))) {\n if (!this.containsWhitespace(dateRangeValue[0])) {\n let fromDate = this.addSpacesatlast(dateRangeValue[0]);\n dateRangeValue[0] = fromDate;\n }\n if (!this.containsWhitespace(dateRangeValue[1])) {\n let toDate = this.addSpacesatfirst(dateRangeValue[1]);\n dateRangeValue[1] = toDate;\n }\n let alue = dateRangeValue[0] + '-' + dateRangeValue[1]\n a.target.value = alue;\n }\n if(year?.length === 4){\n this.calendarFormat = 'mm/dd/yy';\n if(globalFilter.type === GridFilterControlType.CALENDAR){\n globalFilter.value = new Date(a.target.value).toLocaleDateString(\"en-US\");\n }\n } else if(year?.length){\n this.calendarFormat = 'mm/dd/y';\n }\n });\n let yearValue = event?.target?.value?.toString()?.split('/')[4];\n if((!globalFilter.value || yearValue == undefined || yearValue?.toString()?.length === 1) && globalFilter.type === GridFilterControlType.DATE_RANGE){\n this.setDateRangeValue(globalFilter, true);\n }\n }\n\n checkFilterValidation(removeError:boolean = false):boolean{\n let valid:boolean = false;\n if(this.globalFilters && this.globalFilters.length > 0){\n this.globalFilters.forEach((filter)=>{\n if(filter.validations && filter.validations.length > 0 && filter.validations[0].type === EFilterValidator.REQUIRED && !filter.value && !removeError){\n valid = true;\n filter.errorMessage = filter.displayText+\" is required\";\n filter.requiredField = true;\n } else {\n filter.errorMessage = '';\n }\n })\n }\n return valid;\n }\n\n ngOnChanges(){\n this.checkFilterValidation();\n this.globalFilters?.forEach((filter)=>{\n if(filter.value && (filter.hidden === false || filter.hidden === undefined)){\n this.applyFiltersEvent(filter);\n }\n })\n // set By Defualt Calender Range\n this.setDefualtCalendarRange(false);\n const girdClearFilterBtn = document.getElementById(\n 'clearGridFilterValuesButton'\n );\n if(girdClearFilterBtn){\n if(girdClearFilterBtn.classList.contains('hide-clear-filter-button')){\n this.hideClearFilterBtn = true;\n }else{\n this.hideClearFilterBtn = false;\n }\n }else{\n this.hideClearFilterBtn = true;\n }\n }\n\n setNumericRangeValueTwo(globalFilter: IGlobalFilter, sendRequest:boolean = false){\n if(globalFilter.toField){\n this.matchSameFields(globalFilter.toField, globalFilter.valueTwo,'lte', globalFilter);\n }\n if(sendRequest){\n this.applyFilters();\n }\n }\n\n matchSameFields(field: string,value:any, operator:string, numerRangeFilter: any = {}){\n if(field){\n if(numerRangeFilter && numerRangeFilter?.format?.type === 'decimal' && value){\n const digitInfo = numerRangeFilter?.format?.formatParams?.digitsInfo;\n if(digitInfo){\n value = parseFloat(value)?.toFixed(digitInfo);\n }else{\n value = parseFloat(value)?.toFixed(2);\n }\n }\n const index = this.globalFilters.findIndex((filter)=> field === filter.field);\n if(index > -1){\n this.globalFilters[index] = {field: field, matchMode:'and', operator: operator, value: value}; \n } else {\n this.globalFilters.push({field: field, matchMode:'and', operator: operator, value: value});\n }\n }\n }\n\n setNumericRangeValueFrom(globalFilter: IGlobalFilter, sendRequest:boolean = false) {\n if(globalFilter.type === GridFilterControlType.NUMERIC_RANGE && globalFilter.fromField){ \n this.matchSameFields(globalFilter.fromField,globalFilter.value,'gte', globalFilter);\n if(sendRequest){\n this.applyFilters();\n }\n }\n \n }\n\n setDateRangeValue(globalFilter: any, clearValue: boolean =false) {\n if(globalFilter.value?.length > 0){\n const fromDateValue = this.datepipe.transform(\n globalFilter.value[0],\n globalFilter.format ? globalFilter.format : 'MM/dd/yyyy'\n );\n const toDateValue = this.datepipe.transform(\n globalFilter.value[1],\n globalFilter.format ? globalFilter.format : 'MM/dd/yyyy'\n );\n if (fromDateValue && toDateValue && globalFilter.fromField && globalFilter.toField) {\n this.matchSameFields(globalFilter.fromField,fromDateValue,'gte');\n this.matchSameFields(globalFilter.toField,toDateValue,'lte');\n }\n }else if(clearValue){\n this.matchSameFields(globalFilter.fromField, null, 'gte');\n this.matchSameFields(globalFilter.toField, null, 'lte');\n }\n }\n\n\n onFocusOutEvent(globalFilter: IGlobalFilter){\n if (globalFilter && globalFilter.onFocusOut) {\n globalFilter.onFocusOut(globalFilter);\n }\n setTimeout(() => {\n localStorage.setItem('applyFilter', JSON.stringify(false));\n this.gridService.applyFilterEvent = false;\n this.filtersApplied.emit(this.globalFilters);\n },globalFilter.type === GridFilterControlType.LOOKUP_INPUT ? 250 : 0);\n }\n\n applyFiltersEvent(globalFilter: IGlobalFilter){\n setTimeout(() => {\n localStorage.setItem('applyFilter', JSON.stringify(false));\n this.gridService.applyFilterEvent = false;\n this.filtersApplied.emit(this.globalFilters);\n },globalFilter.type === GridFilterControlType.LOOKUP_INPUT ? 250 : 0);\n }\n\n /**\n * Apply selected filters\n */\n applyFilters(filterEvent: boolean= true, globalFilter:any = {}) {\n if(globalFilter.type === GridFilterControlType.DATE_RANGE){\n this.setDateRangeFilterValue(globalFilter);\n } \n this.gridService.applyFilterEvent = filterEvent;\n const globalFilters = this.globalFilters.filter((x) => x.field);\n const index = globalFilters.findIndex((filter)=> filter.field && filter.type === GridFilterControlType.DATE_RANGE )\n if(index > -1){\n globalFilters.splice(index, 1);\n }\n localStorage.setItem('applyFilter', JSON.stringify(true));\n if (this.showDialog) {\n this.ref.close(globalFilters);\n } else \n if(!this.checkFilterValidation()){\n this.checkFilterValidation(true);\n this.filtersApplied.emit(globalFilters);\n }\n }\n\n // set By Defualt Calender Range \n setDefualtCalendarRange(check: boolean = true){\n if(this.globalFilters && this.globalFilters.length > 0){\n this.globalFilters.forEach((filter)=>{\n if(filter.type === GridFilterControlType.CALENDAR_RANGE){\n setTimeout(() => {\n this.showNext(filter, check);\n }, 100);\n }\n });\n }\n }\n\n showNext(filter: IGlobalFilter, check: boolean = true): string {\n let nextValue: string;\n let dayRange: EDayRange = filter.dayRange\n ? filter.dayRange\n : EDayRange.WEEK;\n switch (dayRange) {\n case EDayRange.DAY:\n nextValue = this.setDayFilter(filter, true);\n break;\n case EDayRange.MONTH:\n nextValue = this.setMonthFilter(filter, true);\n break;\n case EDayRange.YEAR:\n nextValue = this.setYearFilter(filter, true);\n break;\n default:\n // week\n nextValue = this.setWeekFilter(filter, true);\n break;\n }\n localStorage.setItem('applyFilter', JSON.stringify(true));\n this.gridService.applyFilterEvent = check;\n this.filtersApplied.emit(this.globalFilters);\n return nextValue;\n }\n\n showPrevious(filter: IGlobalFilter): string {\n let previousValue: string;\n let dayRange: EDayRange = filter.dayRange\n ? filter.dayRange\n : EDayRange.WEEK;\n switch (dayRange) {\n case EDayRange.DAY:\n previousValue = this.setDayFilter(filter, false);\n break;\n case EDayRange.MONTH:\n previousValue = this.setMonthFilter(filter, false);\n break;\n case EDayRange.YEAR:\n previousValue = this.setYearFilter(filter, false);\n break;\n default:\n // week\n previousValue = this.setWeekFilter(filter, false);\n break;\n }\n this.gridService.applyFilterEvent = true;\n localStorage.setItem('applyFilter', JSON.stringify(true));\n this.filtersApplied.emit(this.globalFilters);\n return previousValue;\n }\n\n setCalendarRangeFilterValue(filter: IGlobalFilter): string {\n return (filter.value =\n this.datepipe.transform(\n this.startDate,\n filter.format ? filter.format : 'MM/dd/yyyy'\n ) +\n '|' +\n this.datepipe.transform(\n this.endDate,\n filter.format ? filter.format : 'MM/dd/yyyy'\n ));\n }\n\n setDateValue(filter: any) {\n let value: Date;\n if (filter.value) {\n value = new Date(filter.value.split('|')[0]);\n return new Date(value.setMonth(value.getMonth()));\n } else {\n return new Date();\n }\n }\n\n setDayFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() + 1\n )\n : currentDate;\n } else {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() - 1\n )\n : currentDate;\n }\n\n this.endDate = new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() + 1\n );\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setYearFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n var firstDateOfYear = new Date(currentDate.getFullYear(), 0, 1);\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(this.startDate.getFullYear() + 1, 0, 1)\n : firstDateOfYear;\n } else {\n this.startDate = this.startDate\n ? new Date(this.startDate.getFullYear() - 1, 0, 1)\n : firstDateOfYear;\n }\n\n this.endDate = new Date(this.startDate.getFullYear(), 11, 31);\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setMonthFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n var firstDateOfMonth = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n 1\n );\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() + 1,\n 1\n )\n : firstDateOfMonth;\n } else {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() - 1,\n 1\n )\n : firstDateOfMonth;\n }\n\n this.endDate = new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() + 1,\n 0\n );\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setWeekFilter(filter: IGlobalFilter, isNext: boolean): string {\n let currentDate = this.setDateValue(filter);\n let firstDay = new Date(currentDate.setDate(filter.value ? currentDate.getDate() : currentDate.getDate() - currentDate.getDay() + 1));\n let weekSeconds = 7 * 24 * 60 * 60 * 1000;\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(this.startDate.getTime() + weekSeconds)\n : new Date(firstDay.getTime());\n } else {\n this.startDate = this.startDate\n ? new Date(this.startDate.getTime() - weekSeconds)\n : new Date(firstDay.getTime() - weekSeconds);\n }\n\n this.endDate = new Date(this.startDate.getTime() + 6 * 24 * 60 * 60 * 1000);\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(globalFilters: IGlobalFilter) { \n this.gridService.setLookUpFilter(globalFilters, this.dialogService, true);\n }\n\n /**\n * Clear all filter values\n */\n clearFilters() {\n this.globalFilters.map((item: any) => (item.value = null));\n const clearGridFilter = document.getElementById('clearGridFilterValuesButton')\n if(clearGridFilter){\n clearGridFilter.click();\n }\n }\n\n /**\n * Clear values of Date Range Filter\n */\n clearDateRangeValue(filter: any){\n this.setDateRangeValue(filter, true)\n }\n\n /**\n * Close dialog without applying filters\n */\n cancel() {\n this.clearFilters();\n this.ref.close();\n }\n rangeDateclose(globalFilter: any) {\n this.datePicker.hideOverlay();\n this.datePicker.overlayVisible = false;\n this.datePicker.datepickerClick = true;\n const id: any = document.getElementById(globalFilter.displayText);\n id.focus();\n this.datePicker.overlayVisible = false;\n this.datePicker.datepickerClick = true;\n\n }\n\n filterInput() {\n this.showInput = !this.showInput;\n }\n\n /**\n * Focused the calender input\n */\n selectDate(globalFilter: any, focused: boolean = false){\n if(globalFilter.value?.length > 1 && globalFilter.value[1] !== null){\n this.setDateRangeValue(globalFilter);\n if(focused ==true){\n this.rangeDateclose(globalFilter); \n }\n }\n if(focused){\n document.getElementById(globalFilter.field)?.focus();\n }\n }\n tabFocusEvent(globalFilter: any) {\n const className = this.el.nativeElement.querySelector(\n '.'+globalFilter.field\n );\n if (className) {\n className.click();\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { SeGlobalFilterComponent } from '../../shared/global-filters/global-filters.component';\nimport { IGlobalFilter } from '../../../models/grid.model';\n\n@Component({\n selector: 'se-filter',\n templateUrl: './filter.component.html',\n})\nexport class SeFilterComponent implements OnInit {\n @Input() globalFilters: IGlobalFilter[];\n @Input() showDialogFilter: boolean = false;\n @Input() clearGlobalFilterBtn: boolean = false;\n @Input() searchGlobalFilterBtn: boolean = false;\n @Output() filtersApplied: EventEmitter<any> = new EventEmitter();\n\n constructor(public dialogService: DialogService) { }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void { }\n\n /**\n * Opens the filter dialog\n */\n openFilters() {\n const ref = this.dialogService.open(SeGlobalFilterComponent, {\n header: 'Choose Filters',\n width: '70%',\n styleClass: 'global-filter-visible',\n data: { globalFilters: this.globalFilters, openDialog: true},\n });\n\n // Modal response\n ref.onClose.subscribe((res) => {\n if (res) {\n this.filtersApplied.emit(res);\n }\n });\n }\n\n globalFiltersApplied(event: any){\n this.filtersApplied.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'se-grid-row-actions',\n templateUrl: './grid-row-actions.component.html',\n styleUrls: ['./grid-row-actions.component.scss']\n})\nexport class GridRowActionsComponent implements OnInit {\n @Input() editing: boolean;\n\n @Input() editRowPermission: boolean;\n\n @Input() deleteRowPermission: boolean;\n\n @Input() hideDeleteBtn: boolean = false;\n\n @Input() hideEditBtn: boolean = false;\n\n @Input() editAllRows: boolean = false;\n\n @Input() row: any;\n\n @Output() onRowEditInitBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() deleteRecordBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowEditSaveBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowEditCancelBtn: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onRowEditInit(row: any) {\n this.onRowEditInitBtn.emit(row);\n }\n\n deleteRecord(row: any) {\n this.deleteRecordBtn.emit(row);\n }\n\n onRowEditSave(row: any) {\n this.onRowEditSaveBtn.emit(row);\n }\n\n onRowEditCancel(row: any) {\n this.onRowEditCancelBtn.emit(row);\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { GridComponent } from './components/base/grid/grid.component';\nimport { FormComponent } from './components/base/form/form.component';\nimport { DropdownComponent } from './components/shared/dropdown/dropdown.component';\nimport { GalleryComponent } from './components/base/image-gallery/image-gallery.component';\nimport { IframeComponent } from './components/base/iframe/iframe.component';\n\n// Library\nimport { TableModule } from 'primeng/table';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TabViewModule } from 'primeng/tabview';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { AddRowDirective } from './directive/add-row.directive';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NotesComponent } from './components/shared/notes/notes.component';\nimport { PanelMenuModule } from 'primeng/panelmenu';\nimport { AppFilterMenuComponent } from './components/shared/filter-menu/filter-menu.component';\nimport { ToastrModule } from 'ngx-toastr';\nimport { RequestService } from './services/request.service';\nimport { Environment } from './models/response.model';\nimport { MenuBarComponent } from './components/base/menu-bar/menu-bar.component';\nimport { SidebarComponent } from './components/base/sidebar/sidebar.component';\nimport { HeaderComponent } from './components/base/header/header.component';\nimport { MenuModule } from 'primeng/menu';\nimport { GalleriaModule } from 'primeng/galleria';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { AccordionModule } from 'primeng/accordion';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { MessagesModule } from 'primeng/messages';\nimport { LoaderComponent } from './components/base/loader/loader.component';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\nimport {AvatarModule} from 'primeng/avatar';\nimport { CardModule } from 'primeng/card';\nimport { FileUploadComponent } from './components/base/file-upload/file-upload.component';\nimport { CaptionComponent } from './components/base/caption/caption.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CardComponent } from './components/base/cards/card.component';\nimport { fileComponent } from './components/base/file/file.component';\nimport {InputSwitchModule} from 'primeng/inputswitch';\nimport { AlertService } from './services/alert.service';\nimport { GenerateReportBtnComponent } from './components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component';\nimport { ReportFilterComponent } from './components/base/report/report-Filter/report-filter/report-filter.component';\nimport { SeGlobalFilterComponent } from './components/shared/global-filters/global-filters.component';\nimport { SeFilterComponent } from './components/base/filter/filter.component';\nimport { GridRowActionsComponent } from './components/base/grid-row-actions/grid-row-actions.component';\nimport { AlertPopUpComponent } from './components/base/alert-pop-up/alert-pop-up.component';\n\n\nexport const toasterModuleforRoot = ToastrModule.forRoot();\n\n@NgModule({\n declarations: [\n GridComponent,\n GridRowActionsComponent,\n DropdownComponent,\n AddRowDirective,\n FormComponent,\n NotesComponent,\n AppFilterMenuComponent,\n MenuBarComponent,\n SidebarComponent,\n HeaderComponent,\n GalleryComponent,\n IframeComponent,\n LoaderComponent,\n FileUploadComponent,\n CaptionComponent,\n CardComponent,\n fileComponent,\n GenerateReportBtnComponent,\n ReportFilterComponent,\n SeGlobalFilterComponent,\n SeFilterComponent,\n AlertPopUpComponent\n ],\n\n providers: [DialogService,AlertService,DecimalPipe,DatePipe,RequestService],\n imports: [\n CommonModule,\n TableModule,\n PanelMenuModule,\n MenuModule,\n MultiSelectModule,\n FormsModule,\n BrowserAnimationsModule,\n TabViewModule,\n DropdownModule,\n CalendarModule,\n CheckboxModule,\n ButtonModule,\n ProgressSpinnerModule,\n RippleModule,\n InputTextModule,\n TriStateCheckboxModule,\n InputTextareaModule,\n TooltipModule,\n BrowserModule,\n GalleriaModule,\n AutoCompleteModule,\n AccordionModule,\n ConfirmDialogModule,\n MessagesModule,\n InputNumberModule,\n AvatarModule,\n CardModule,\n DragDropModule,\n InputSwitchModule,\n toasterModuleforRoot\n ],\n exports: [\n GridComponent,\n GridRowActionsComponent,\n FormComponent,\n MenuBarComponent,\n SidebarComponent,\n HeaderComponent,\n GalleryComponent,\n LoaderComponent,\n FileUploadComponent,\n CaptionComponent,\n CardComponent,\n fileComponent,\n GenerateReportBtnComponent,\n ReportFilterComponent,\n SeFilterComponent,\n SeGlobalFilterComponent\n ],\n})\nexport class SEToolkitModule {\n public static forRoot(environment: Environment): ModuleWithProviders<any> {\n return {\n ngModule: SEToolkitModule,\n providers: [\n RequestService,\n {\n provide: 'env',\n useValue: environment\n }\n ]\n };\n }\n}\n","import { EFormControl, IHyperlink } from './form.model';\nimport { IPermission } from './user-info.model';\n\nexport interface IHeader {\n fields: IHeaderField[];\n column?: number;\n permissions?: IPermission[];\n}\n\nexport interface IHeaderField {\n label?: string;\n value?: any;\n control?: EFormControl;\n data?: any[];\n onClick?: () => void;\n class?: string;\n column?: number;\n hyperlink?: IHyperlink;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n format?: IHeaderFormat;\n showTime?: boolean;\n timeOnly?: boolean;\n}\n\nexport enum EButtonClass {\n NORMAL = 'p-button-sm',\n SUCCESS = 'p-button-success p-button-sm',\n INFO = 'p-button-info p-button-sm',\n WARNING = 'p-button-warning p-button-sm',\n HELP = 'p-button-help p-button-sm',\n DANGER = 'p-button-danger p-button-sm',\n}\n\nexport interface AddHeaderField {\n control?: EFormControl;\n label?: string;\n value?: string;\n column?: number;\n data?: any;\n class?: string;\n onClick?: (() => void) | any;\n hyperlink?: IHyperlink;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n format?: IHeaderFormat;\n showTime?: boolean;\n timeOnly?: boolean;\n}\n\nexport interface IHeaderFormat {\n type: EHeaderFormatType | any;\n formatParams?:IFormatParams\n | IDateFormatParams\n | INumberFormatParams\n | ICurrencyFormatParams;\n formatter?: (value: any) => any;\n}\n\nexport interface IFormatParams {\n locale?: string;\n}\n\nexport interface IDateFormatParams extends IFormatParams {\n format?: string;\n}\n\nexport interface INumberFormatParams extends IFormatParams {\n digitsInfo?: string;\n}\n\nexport interface ICurrencyFormatParams extends INumberFormatParams {\n currency: string;\n}\n\nexport enum EHeaderFormatType {\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'M d, yy',\n LONGDATE = 'MM d, yy',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IMenu } from '../models/menu.model';\nimport { ISidebar } from '../models/sidebar.model';\nimport { IDictionary } from '../models/common.model';\nimport * as utilities from './utilities.service';\nimport { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SideBarService {\n styleSheetElement:any;\n constructor(\n private injector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver,\n private applicationRef: ApplicationRef\n ) { }\n\n /**\n * Checks parent menu and expands it if current route exists in its child menus.\n * @param menuLabel\n * @returns {boolean}\n */\n isMenuExpanded(\n currentRoute: string,\n items: IMenu[],\n menuLabel: string\n ): boolean {\n if (items && items.length) {\n // check currentRoute contains loadDataForEdit or not\n currentRoute = currentRoute.includes('?') ? currentRoute.split('?')[0] : currentRoute;\n let detailPage = '';\n if(currentRoute?.toString()?.includes(\"list\")){\n detailPage = currentRoute.replace('list', 'detail');\n } \n const currentIndex = items.findIndex((menu) => menu.label?.toLowerCase() === menuLabel?.toLowerCase());\n let matchedItems = [];\n if(currentIndex > -1){\n matchedItems = items[currentIndex]?.items;\n }\n return matchedItems.length > 0 ? matchedItems.some((item: any) => item.routerLink && (currentRoute === item.routerLink[0] || currentRoute === detailPage)) : false; \n }\n return false;\n }\n\n setSidebarPropValues(\n sidebar: ISidebar[],\n section: string,\n props: IDictionary[]\n ) {\n sidebar.map((sidebarItem: any) => {\n if (sidebarItem.section?.toLowerCase() === section.toLowerCase()) {\n props.map((prop) => {\n if (prop.name?.toLowerCase() === 'data' && sidebarItem.data?.data) {\n sidebarItem.data.data = prop.value;\n } else {\n utilities.setPropValue(sidebarItem, prop);\n }\n });\n }\n });\n sidebar=[...sidebar]\n return sidebar\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EFormControl } from '../models/form.model';\nimport { AddHeaderField, IHeaderField } from '../models/header.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HeaderService {\n constructor() {}\n\n addHeaderField(headerInfo: AddHeaderField): IHeaderField {\n if (!headerInfo.column) {\n headerInfo.column = 3;\n }\n\n const headerField: IHeaderField = {\n label: headerInfo.label,\n control: headerInfo.control,\n value: headerInfo.value,\n column: headerInfo.column,\n data: headerInfo.data,\n class: headerInfo.class,\n onClick: headerInfo.onClick,\n hyperlink: headerInfo.hyperlink,\n disabled: headerInfo.disabled,\n hidden: headerInfo.hidden,\n permissions: headerInfo.permissions,\n format: headerInfo.format,\n showTime: headerInfo.showTime,\n timeOnly: headerInfo.timeOnly,\n };\n return headerField;\n }\n\n addLabel(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.LABEL;\n return this.addHeaderField(headerInfo);\n }\n \n addDropdown(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.DROPDOWN;\n return this.addHeaderField(headerInfo);\n }\n\n addButton(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.BUTTON;\n return this.addHeaderField(headerInfo);\n }\n\n addCheckbox(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.CHECKBOX;\n return this.addHeaderField(headerInfo);\n }\n\n addHyperlink(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.HYPERLINK;\n return this.addHeaderField(headerInfo);\n }\n\n addCalendar(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.CALENDAR;\n return this.addHeaderField(headerInfo);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { EFormControl, IDynamicForm } from '../models/form.model';\nimport { AlertService } from './alert.service';\nimport { RequestService } from './request.service';\nimport * as utilities from '../../lib/services/utilities.service';\nimport { Environment } from '../models/response.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CardService {\n\n constructor(\n private requestService: RequestService,\n private alertService: AlertService,\n @Inject('env') private env: Environment\n ) { }\n\n deleteImage(imageInfo: any, uniqueKey: string, dynamicForm: IDynamicForm, cardId: string) {\n let imageToDelete =\n imageInfo.id && imageInfo.id > 0\n ? { RecordId: imageInfo.id }\n : { UniqueKey: uniqueKey, RecordId: imageInfo.recordId };\n this.requestService.get('/Upload/Delete', imageToDelete).subscribe(\n (response: any) => {\n this.deleteFile(imageInfo, dynamicForm, cardId);\n if (imageInfo.tables) {\n this.deleteImageFromTables(imageInfo.tables, uniqueKey);\n } else {\n this.alertService.success('Image deleted successfully.');\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n deleteImageFromTables(tables: any[], uniqueKey: string) {\n this.requestService\n .get('/Data/BulkDelete', {\n UniqueKey: uniqueKey,\n tables: tables,\n })\n .subscribe(\n (response) => {\n this.alertService.success('Image deleted successfully.');\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n getCardData(formSections: any, id: string): any {\n let arr = {};\n formSections?.forEach((formSection: any) => {\n formSection.fields?.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.id && field.id === id && field.card.data) {\n arr = { data: field.card.data, change: field.card.change, url: field.card?.cardInfo?.url };\n }\n });\n });\n return arr;\n }\n\n setFileUploadData(response: any, dynamicForm: any, id: string, containerName: string, uploadImgBaseUrlDev: string) {\n if (response) {\n response.forEach((res)=>{\n if(res.fileExtension !== \".mrt\" && containerName && uploadImgBaseUrlDev){\n res['blobFileUrl'] = (uploadImgBaseUrlDev+'/'+containerName+'/'+res.actualFileName)?.toLowerCase()\n }\n });\n dynamicForm.formSections?.forEach((x: any) => {\n x.fields.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.id && field.id === id) {\n field.card?.data?.unshift(...response);\n }\n });\n });\n }\n }\n\n deleteFile(cardInfo: any, dynamicForm: IDynamicForm, id: string) {\n const fieldInfo = this.getCardData(\n dynamicForm.formSections,\n id\n );\n let cardData = fieldInfo.data;\n cardData = [...this.deleteFromArray(cardData, cardInfo, fieldInfo?.url)];\n utilities.changeDynamicCardState({cardData: cardData});\n }\n\n deleteFromArray(arr: any[] = [], cardInfo: any, deleteMatchKey: string = '') {\n arr = utilities.setDataFields(arr);\n cardInfo = utilities.objConvertToLower(cardInfo);\n \n const index = arr.findIndex((i) => (i[deleteMatchKey] && i[deleteMatchKey] === cardInfo[deleteMatchKey]) || (i.blobfileurl === cardInfo.blobfileurl));\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\nsetResponseId(response:any, cardsInfo:any[], fieldName:string,dynamicForm?:IDynamicForm){\n utilities.changeDynamicCardState({records: response.records, cardsInfo: cardsInfo, fieldName: fieldName, isSave: true});\n }\n}\n","/*\n * Public API Surface of se-ui-toolkit\n */\nexport * from 'primeng/api';\n\n/**\n * Exported Modules\n */\n\nexport * from './lib/se-ui-toolkit.module';\n\n/**\n * Exported Components\n */\nexport * from './lib/components/base/form/form.component';\nexport * from './lib/components/base/grid/grid.component';\nexport * from './lib/components/base/menu-bar/menu-bar.component';\nexport * from './lib/components/base/sidebar/sidebar.component';\nexport * from './lib/components/base/header/header.component';\nexport * from './lib/components/base/image-gallery/image-gallery.component';\nexport * from './lib/components/base/iframe/iframe.component';\nexport * from './lib/components/base/loader/loader.component';\nexport * from './lib/components/base/file-upload/file-upload.component';\nexport * from './lib/components/base/caption/caption.component';\nexport * from './lib/components/base/cards/card.component';\nexport * from './lib/components/base/file/file.component';\nexport * from './lib/components/base/report/report-Filter/report-filter/report-filter.component';\nexport * from './lib/components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component';\nexport * from './lib/components/shared/global-filters/global-filters.component';\nexport * from './lib/components/base/grid-row-actions/grid-row-actions.component';\nexport * from './lib/components/base/filter/filter.component';\n\n/**\n * Exported Type Definitions\n */\nexport * from './lib/models/form.model';\nexport * from './lib/models/grid.model';\nexport * from './lib/models/response.model';\nexport * from './lib/models/request.model';\nexport * from './lib/models/header.model';\nexport * from './lib/models/sidebar.model';\nexport * from './lib/models/user-info.model';\nexport * from './lib/models/menu.model';\nexport * from './lib/models/common.model';\n\n/**\n * Exported Services\n */\nexport * from './lib/services/alert.service';\nexport * from './lib/services/form.service';\nexport * from './lib/services/grid.service';\nexport * from './lib/services/dropdown.service';\nexport * from './lib/services/page-logger.service';\nexport * from './lib/services/authentication.service';\nexport * from './lib/services/utilities.service';\nexport * from './lib/services/request.service';\nexport * from './lib/services/sidebar.service';\nexport * from './lib/services/hyperlink.service';\nexport * from './lib/services/header.service';\nexport * from './lib/services/loader.service';\nexport * from './lib/services/card.service';\nexport * from './lib/services/report.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AlertPopUpComponent as ɵe} from './lib/components/base/alert-pop-up/alert-pop-up.component';\nexport {DropdownComponent as ɵa} from './lib/components/shared/dropdown/dropdown.component';\nexport {AppFilterMenuComponent as ɵd} from './lib/components/shared/filter-menu/filter-menu.component';\nexport {NotesComponent as ɵc} from './lib/components/shared/notes/notes.component';\nexport {AddRowDirective as ɵb} from './lib/directive/add-row.directive';"],"names":["__rest","__awaiter","EGridAggregate","EAggregateFormat","EGridlink","EGridFormatter","GridFilterControlType","EDayRange","EGridSortDirection","EGridColumnType","EGridFormatType","EGlobalFilterFormatType","EGridSelectionType","EFilterValidator","EGridRowAction","EGridRowPropName","EGridValidator","Component","DynamicDialogConfig","Optional","DynamicDialogRef","Injectable","ToastrService","DialogService","ConfirmationService","HttpClient","Inject","ESelectFileType","EValidator","EFormControl","EOperator","EMatchMode","EFormatType","EHyperlink","Subject","formatDate","utilities.calenderMinMaxValue","utilities.objConvertToLower","utilities.setDialogResponse","utilities.findKeysAndValue","utilities.setHyperlink","DatePipe","ActivatedRoute","EPermissionType","DomSanitizer","EventEmitter","jsPDF","saveAs","interval","ElementRef","DecimalPipe","ChangeDetectorRef","Router","ViewChildren","Output","Input","ViewChild","HostListener","utilities.changeDynamicFormState","utilities.setTimeInDate","utilities.onDynamicCardStateChange","utilities.onDynamicFormStateChange","utilities.draggableDialog","utilities.removeActiveIconClass","utilities.setMinutesInterval","utilities.setHyperlinkParamValue","ComponentFactoryResolver","ViewContainerRef","Directive","CookieService","ESidebarAction","Renderer2","Subscription","utilities.getFormFieldValue","utilities.setCardFieldsData","moveItemInArray","ToastrModule","NgModule","CommonModule","TableModule","PanelMenuModule","MenuModule","MultiSelectModule","FormsModule","BrowserAnimationsModule","TabViewModule","DropdownModule","CalendarModule","CheckboxModule","ButtonModule","ProgressSpinnerModule","RippleModule","InputTextModule","TriStateCheckboxModule","InputTextareaModule","TooltipModule","BrowserModule","GalleriaModule","AutoCompleteModule","AccordionModule","ConfirmDialogModule","MessagesModule","InputNumberModule","AvatarModule","CardModule","DragDropModule","InputSwitchModule","EButtonClass","EHeaderFormatType","utilities.setPropValue","Injector","ApplicationRef","utilities.changeDynamicCardState","utilities.setDataFields"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"churchillliving-se-ui-toolkit.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../projects/se-ui-toolkit/src/lib/models/grid.model.ts","../../../projects/se-ui-toolkit/src/lib/components/base/alert-pop-up/alert-pop-up.component.ts","../../../projects/se-ui-toolkit/src/lib/services/alert.service.ts","../../../projects/se-ui-toolkit/src/lib/services/request.service.ts","../../../projects/se-ui-toolkit/src/lib/services/dropdown.service.ts","../../../projects/se-ui-toolkit/src/lib/services/hyperlink.service.ts","../../../projects/se-ui-toolkit/src/lib/models/form.model.ts","../../../projects/se-ui-toolkit/src/lib/services/utilities.service.ts","../../../projects/se-ui-toolkit/src/lib/services/grid.service.ts","../../../projects/se-ui-toolkit/src/lib/models/user-info.model.ts","../../../projects/se-ui-toolkit/src/lib/services/authentication.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/iframe/iframe.component.ts","../../../projects/se-ui-toolkit/src/lib/services/page-logger.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid/grid.component.ts","../../../projects/se-ui-toolkit/src/lib/services/form.service.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/notes/notes.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/form/form.component.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/dropdown/dropdown.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/image-gallery/image-gallery.component.ts","../../../projects/se-ui-toolkit/src/lib/directive/add-row.directive.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid/grid.constant.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/filter-menu/filter-menu.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/menu-bar/menu-bar.component.ts","../../../projects/se-ui-toolkit/src/lib/models/sidebar.model.ts","../../../projects/se-ui-toolkit/src/lib/components/base/sidebar/sidebar.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/header/header.component.ts","../../../projects/se-ui-toolkit/src/lib/services/loader.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/loader/loader.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/file-upload/file-upload.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/caption/caption.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/cards/card.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/file/file.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/report/report-Filter/report-filter/report-filter.component.ts","../../../projects/se-ui-toolkit/src/lib/services/report.service.ts","../../../projects/se-ui-toolkit/src/lib/components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component.ts","../../../projects/se-ui-toolkit/src/lib/components/shared/global-filters/global-filters.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/filter/filter.component.ts","../../../projects/se-ui-toolkit/src/lib/components/base/grid-row-actions/grid-row-actions.component.ts","../../../projects/se-ui-toolkit/src/lib/se-ui-toolkit.module.ts","../../../projects/se-ui-toolkit/src/lib/models/header.model.ts","../../../projects/se-ui-toolkit/src/lib/services/sidebar.service.ts","../../../projects/se-ui-toolkit/src/lib/services/header.service.ts","../../../projects/se-ui-toolkit/src/lib/services/card.service.ts","../../../projects/se-ui-toolkit/src/public-api.ts","../../../projects/se-ui-toolkit/src/churchillliving-se-ui-toolkit.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","import { IPermission } from './user-info.model';\nimport { Type } from '@angular/core';\nimport { IAutoCompleteSave, IDropDownRequest, IReportBtn } from './form.model';\n\nexport interface IGridColumn {\n component?: Type<any>;\n allowToggle?: boolean;\n allowSearch?: boolean;\n allowEdit?: boolean;\n allowAutoCompleteSave?:boolean;\n uniqueKey?: IAutoCompleteSave;\n target?: EGridlink;\n header?: string;\n field?: string;\n displayField?: string;\n showOption?: boolean;\n type?: EGridColumnType;\n hidden?: boolean;\n hyperlink?: string;\n sorting?: boolean;\n filtering?: boolean;\n filter?: IGridFilterType;\n format?: string | EGridFormatType | IGridFormat; // For more format options. visit https://angular.io/api/common/DatePipe\n data?: any;\n style?: string;\n permissions?: IPermission[];\n value?: any;\n filterValue?: any;\n tableAlias?: string;\n linkId?: string;\n params?: {[key: string]: any};\n minutesInterval?: number;\n showTime?: boolean;\n timeOnly?: boolean;\n displayText?: string;\n disabled?: boolean;\n editable?: boolean;\n editLink?: boolean;\n allowSave?: boolean;\n validations?: IGridValidation[];\n errorMessage?: string;\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (value?: any, column?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n aggregate?: IGridAggregate[];\n formatter?: EGridFormatter;\n optionLabel?: string;\n optionValue?: string;\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n}\n\nexport interface IGridLookupControl {\n component?: any;\n data?: IGridLookupData;\n}\n\nexport declare type IGridLookupData = {\n header?: string;\n height?: string;\n width?: string;\n labelProp?: string;\n valueProp?: string;\n data?: {[key: string]: any};\n}\n\nexport enum EGridAggregate {\n SUM = 'sum',\n AVERAGE = 'average',\n COUNT = 'count',\n}\n\nexport interface IGridAggregate {\n type: EGridAggregate;\n caption?: string;\n displayField?: string;\n aggrValue?:string;\n format?: IAggregateFormat;\n}\nexport interface IAggregateFormat {\n type: EAggregateFormat;\n digitsInfo?: number;\n}\n\nexport enum EAggregateFormat {\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n}\n\nexport enum EGridlink {\n BLANK = '_blank',\n SELF = '_self',\n}\n\nexport interface IGridDataExport {\n rows: any[];\n headings: string[];\n}\n\nexport interface ISelectItem {\n label: string;\n value: string;\n}\n\nexport interface IGridFilterType {\n type?: GridFilterControlType;\n data?: ISelectItem[];\n tableAlias?: string;\n showFilter?: boolean;\n}\n\nexport interface IAlertPopUpBtn {\n buttonLabel: string;\n buttonClass?: string;\n}\n\nexport interface IAlertPopUp {\n message: string;\n header?: string;\n buttons: IAlertPopUpBtn[];\n height?: string;\n width?: string;\n icon?: string;\n}\n\nexport enum EGridFormatter {\n BOOLEAN = 'boolean',\n CHAR = 'char',\n NUMERIC = 'numeric'\n}\n\nexport enum GridFilterControlType {\n INPUT = 'input',\n DROPDOWN = 'dropdown',\n CHECKBOX = 'checkbox',\n CALENDAR = 'calendar',\n CALENDAR_RANGE = 'calender_range',\n MULTISELECT = 'multi-select',\n NUMERICINPUT = 'numeric_input',\n NUMERIC_RANGE = 'numeric_range',\n DATE_RANGE = 'date_range',\n LOOKUP_INPUT = 'lookup_input',\n SPACER = 'spacer'\n}\n\nexport enum EDayRange {\n DAY = 'Day',\n WEEK = 'Week',\n MONTH = 'Month',\n YEAR = 'Year',\n}\n\nexport enum EGridSortDirection {\n ASC = 'asc',\n DESC = 'desc',\n}\n\nexport enum EGridColumnType {\n LINK = 'link',\n IFRAME = 'iframe',\n DIALOG = 'dialog',\n TEXT = 'text',\n NUMERIC = 'numeric',\n DATE = 'date',\n BOOLEAN = 'boolean',\n DROPDOWN = 'dropdown',\n LOOKUP_INPUT = 'lookup_input',\n ADD_BUTTON = 'add_button',\n AUTOCOMPLETE = 'AutoComplete',\n MULTISELECT = 'multi-select',\n REPORT = 'report',\n}\n\nexport interface IGlobalFilter extends IGridFilterType, IGridFilter {\n displayText?: string;\n onFocusOut?: (value: any) => any;\n onReturn?: (value: any) => any;\n optionLabel?: string;\n optionValue?: string;\n dayRange?: EDayRange;\n fromField?: string;\n toField?: string;\n format?: string | EGridFormatType | EGlobalFilterFormatType;\n lookupControl?: ILookupControlFilter;\n allowSearch?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n color?: string;\n validations?: IGridValidation[];\n errorMessage?:string;\n requiredField?: boolean;\n}\n\nexport interface ILookupControlFilter {\n component?: any;\n data?: ILookupFilterData;\n}\n\nexport declare type ILookupFilterData = {\n header: string;\n width?: string;\n labelProp?: string;\n valueProp?: string;\n data: any;\n} & {\n [key: string]: any;\n};\n\nexport interface IPrimeNgSort {\n multisortmeta: { field: string; order: number };\n}\n\nexport interface IPrimeNgFilterItem {\n matchMode: string;\n operator: string;\n value: string | number | boolean | Date | any;\n}\n\nexport interface IPrimeNgFilter {\n filteredValue: any[];\n filters: Record<string, IPrimeNgFilterItem[] | IPrimeNgFilterItem>;\n}\n\nexport interface IGridFilter {\n field?: string;\n matchMode?: string;\n operator?: string;\n filtering?: boolean;\n value?: any;\n valueTwo?: any;\n tableAlias?: string;\n column?: string;\n}\n\nexport interface IGridSort {\n field?: string;\n direction?: EGridSortDirection;\n priority: number;\n tableAlias?: string;\n}\n\nexport class IGridServerSideEvent {\n filters?: IGridFilter[];\n sorts?: IGridSort[];\n page?: number;\n pageSize?: number;\n}\n\nexport interface IGridPaginationEvent {\n first: number;\n rows: number;\n}\n\nexport interface IGridColumnAction {\n icon: string; // Uses primeng/font-awesome icons. Example: 'pi pi-check'\n tooltip: string;\n width?: string;\n confirmDialog?: boolean;\n onClick: (row: any) => void;\n}\n\nexport interface IGridRowAction {\n title: string;\n class?: string;\n onClick: (row: any) => void;\n}\n\nexport enum EGridFormatType {\n SMALLDATE = 'mm/dd/y',\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'm d, yy',\n PERIOD = 'mm/y',\n LONGDATE = 'mm/dd/yy, h:mm a',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}\n\nexport enum EGlobalFilterFormatType {\n SMALLDATE = 'mm/dd/y',\n SHORTDATE = 'mm/dd/yy',\n}\n\nexport enum EGridSelectionType {\n SINGLE = 'single',\n MULTIPLE = 'multiple',\n}\n\nexport type MenuFilterControls =\n | GridFilterControlType.INPUT\n | GridFilterControlType.NUMERICINPUT\n | GridFilterControlType.CALENDAR;\n\nexport type IMenuFilter = Record<MenuFilterControls, ISelectItem[]>;\n\nexport interface addColumn {\n allowToggle?: boolean;\n target?: EGridlink;\n allowEdit?: boolean;\n component?: Type<any>;\n control?: EGridColumnType;\n field?: string;\n displayField?: string;\n header?: string;\n showOption?: boolean;\n style?: string;\n type?: EGridColumnType;\n format?: string | EGridFormatType | IGridFormat;\n data?: any;\n filtering?: boolean;\n showTime?: boolean;\n timeOnly?: boolean;\n hidden?: boolean;\n hyperlink?: string;\n allowSearch?: boolean;\n allowAutoCompleteSave?:boolean;\n uniqueKey?:IAutoCompleteSave;\n minutesInterval?: number;\n sorting?: boolean;\n filter?: IGridFilterType;\n tableAlias?: string;\n linkId?: string;\n editable?: boolean;\n editLink?: boolean;\n params?: {[key: string]: any};\n displayText?: string;\n disabled?: boolean;\n allowSave?: boolean;\n errorMessage?: string;\n validations?: IGridValidation[];\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (value?: any, column?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n aggregate?: IGridAggregate[];\n formatter?: EGridFormatter;\n permissions?: IPermission[];\n optionLabel?: string;\n optionValue?: string;\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n value?: any;\n filterValue?: any;\n}\n\nexport interface IDialogColumn {\n component?: Type<any>;\n control?: EGridColumnType;\n field?: string;\n displayField?: string;\n header?: string;\n style?: string;\n type?: EGridColumnType;\n format?: string | EGridFormatType | IGridFormat;\n data?: any;\n filtering?: boolean;\n hidden?: boolean;\n sorting?: boolean;\n aggregate?: IGridAggregate[];\n filter?: IGridFilterType;\n tableAlias?: string;\n filterValue?: any,\n editable?: boolean;\n showOption?: boolean;\n editLink?: boolean;\n displayText?: string;\n disabled?: boolean;\n allowSave?: boolean;\n errorMessage?: string;\n validations?: IGridValidation[];\n isvalid?: boolean;\n saveAsString?: boolean;\n onClick?: (row: any) => void;\n onReturn?: (res?: any, row?: any) => void;\n onFocusOut?: (value: any) => any;\n onChange?: (row: any) => void;\n formatter?: EGridFormatter;\n permissions?: IPermission[];\n dropDownProp?: IDropDownRequest;\n lookupControl?: IGridLookupControl;\n icon?: string;\n color?: string;\n id?: number;\n value?: any;\n}\n\nexport interface addFilterColumn {\n control?: GridFilterControlType;\n field?: string;\n header?: string;\n filter?: GridFilterControlType;\n filtering?: boolean;\n hidden?: boolean;\n style?: string;\n showTime?: boolean;\n timeOnly?: boolean;\n format?: string;\n tableAlias?: string;\n validations?: IGridValidation[] | any;\n errorMessage?: string;\n isvalid?: boolean;\n disabled?: boolean;\n allowSave?: boolean;\n permissions?: IPermission[];\n component?: Type<any>;\n type?: EGridColumnType;\n data?: any;\n}\n\nexport interface IGridValidation {\n type: EGridValidator | EFilterValidator;\n expression?: any;\n}\nexport enum EFilterValidator {\n REQUIRED = \"required\",\n}\nexport interface IGridReportBtn extends IReportBtn{\n type?: EGridColumnType.REPORT;\n}\nexport interface IGridRowProp{\n propName: EGridRowPropName | string; //IGridColumnPropName;\n propValue: any;\n field?: string;\n action?: EGridRowAction;\n}\n\nexport enum EGridRowAction {\n DELETEBTN = 'delete_btn',\n EDITBTN = 'edit_btn',\n}\n\nexport enum EGridRowPropName {\n DISPLAYTEXT = 'displayText',\n DISABLED = 'disabled',\n DISPLAYFIELD = 'displayField',\n HIDDEN = 'hidden',\n ICON = 'icon',\n LOOKUPCONTROL='lookupControl', \n HIDEFIELDVALUE='hideFieldValue'\n}\n\nexport enum EGridValidator {\n REQUIRED = 'required',\n MINLENGTH = 'minlength',\n MAXLENGTH = 'maxlength',\n PATTERN = 'pattern',\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n EMAIL = 'email',\n PHONE = 'phone',\n MAXOPTIONS='maxOptions'\n}\n\nexport interface addGlobalFilter {\n field?: string;\n validations?: IGridValidation[];\n displayText?: string;\n type?: GridFilterControlType;\n data?: any;\n value?: any;\n valueTwo?: any;\n matchMode?: string;\n operator?: string;\n tableAlias?: string;\n optionLabel?: string;\n optionValue?: string;\n format?: EGlobalFilterFormatType | IGridFormat | any;\n column?: string;\n onFocusOut?: (value: any) => any;\n onReturn?: (value: any) => any;\n filtering?: boolean;\n dayRange?: EDayRange;\n fromField?: string;\n toField?: string;\n lookupControl?: ILookupControlFilter;\n allowSearch?: boolean;\n disabled?: boolean;\n labelText?: string;\n prefix?: boolean;\n hidden?: boolean;\n color?: string;\n}\n\nexport interface IGridFormat {\n type: EGridFormatType;\n formatParams?:\n | IGridFormatParam\n | IGridDateFormatParam\n | IGridNumberFormatParam\n | IGridCurrencyFormatParam\n | IGridallowcalculateFormatParam;\n\n formatter?: (value: any) => any;\n}\n\nexport interface IGridFormatParam {\n locale?: string;\n}\n\nexport interface IGridDateFormatParam extends IGridFormatParam {\n format?: string;\n}\n\nexport interface IGridNumberFormatParam extends IGridFormatParam {\n digitsInfo?: string;\n}\n\nexport interface IGridallowcalculateFormatParam extends IGridFormatParam {\n allowCalculate?: boolean;\n}\n\nexport interface IGridCurrencyFormatParam extends IGridNumberFormatParam {\n currency: string;\n}\n\nexport interface IGridProp {\n name: string;\n value: any;\n field?: string;\n}\n\nexport interface IGridPropFilter {\n field: string;\n value: any;\n}\n\nexport interface IGridFilterInfo {\n [key:string]:any;\n}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'lib-alert-pop-up',\n templateUrl: './alert-pop-up.component.html',\n styleUrls: ['./alert-pop-up.component.css']\n})\nexport class AlertPopUpComponent implements OnInit {\n buttons: any[]\n message: string;\n icon: string;\n\n constructor(@Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef,) { }\n\n ngOnInit(): void {\n if(this.config?.data){\n this.message = this.config.data?.alertPopInfo?.message;\n this.buttons = this.config.data?.alertPopInfo?.buttons;\n this.icon = this.config.data?.alertPopInfo?.icon;\n }\n }\n\n clickedBtn(button: any){\n const closeBtn = document.querySelectorAll(\".alertPopUp button\")[0] as HTMLButtonElement;\n if(closeBtn){\n closeBtn?.click();\n this.ref.close(button);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmationService } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { AlertPopUpComponent } from '../components/base/alert-pop-up/alert-pop-up.component';\nimport { IAlertPopUp, } from '../models/grid.model';\n\n@Injectable()\nexport class AlertService {\n \n constructor(\n private toastr: ToastrService,\n public dialogService: DialogService,\n private confirmationService: ConfirmationService\n ) { }\n\n success(message: string, time: number = 5000) {\n this.toastr.success(message, \"\", { closeButton: true, timeOut: time });\n }\n\n info(message: string, time: number = 5000) {\n this.toastr.info(message, \"\", { closeButton: true, timeOut: time });\n }\n\n warning(message: string, time: number = 5000) {\n this.toastr.warning(message, \"\", { closeButton: true, timeOut: time });\n }\n\n error(error: string, time: number = 5000, message?: string,) {\n this.toastr.error(error, message, { closeButton: true, timeOut: time });\n }\n\n apiError(error: any, time: number = 5000) {\n if (typeof error === 'string' || typeof error.error === 'string') {\n typeof error.error === 'string' ? this.error(error.error, time) : this.error(error, time);\n } else if (error && error.error && error.error.errorDetails) {\n const [responseError] = error.error.errorDetails;\n this.error(responseError.errorMessage, time);\n }\n else if(error && error.headers && error.status !== 401) {\n this.error('something went wrong during api request', time);\n }\n }\n\n \n confirm({\n message = \"Are you sure that you want to proceed?\",\n header = \"Confirmation\",\n icon = \"pi pi-exclamation-triangle\",\n key= '',\n } = {}): Promise<any> {\n return new Promise(resolve => {\n this.confirmationService.confirm({\n message,\n header,\n icon,\n key,\n accept: () => {\n resolve([{ severity: \"info\", summary: \"Confirmed:\", detail: \"Yes\" }]);\n this.confirmationService.close();\n },\n reject: () => {\n resolve([{ severity: \"info\", summary: \"Rejected:\", detail: \"No\" }]);\n this.confirmationService.close();\n }\n })\n });\n }\n\n popUp({message ='', header = 'Alert PopUp', icon = '', buttons = [{buttonLabel: '', buttonClass: 'p-button-success'}], width = '55%', height = '30%'}: IAlertPopUp): Promise<any> {\n return new Promise(resolve => {\n const ref = this.dialogService.open(AlertPopUpComponent, {\n styleClass: 'alertPopUp',\n header: header,\n width: width,\n height: height,\n data: { alertPopInfo: {message, icon, buttons}},\n });\n ref.onClose.subscribe((res) => {\n if (res) {\n resolve(res.buttonLabel);\n }\n });\n });\n }\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Response } from '../models/response.model';\nimport { Environment } from '../models/response.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RequestService {\n\n constructor(private http: HttpClient, @Inject('env') private env: Environment) { \n }\n download(endpoint: string, data: any, baseUrl: string = this.env.baseUrl): Observable<any> {\n return this.http.post(`${baseUrl}${endpoint}`, data, { responseType: 'blob', observe: 'response' });\n }\n\n get<T, K>(endpoint: string, data: K, baseUrl: string = this.env.baseUrl): Observable<Response<T>> {\n return this.http.post<Response<T>>(`${baseUrl}${endpoint}${this.getCurrentRoute()}`, data);\n }\n\n getRequest<T, K>(endpoint: string) {\n return this.http.get<Response<T>>(`${this.env.baseUrl}${endpoint}${this.getCurrentRoute()}`);\n }\n\n getAuth<T, K>(endpoint: string, data: K): Observable<Response<T>> {\n return this.http.post<Response<T>>(`${this.env.baseAuthUrl}${endpoint}${this.getCurrentRoute()}`, data);\n }\n\n getOne<T, K>(endpoint: string, id: string): Observable<Response<T>> {\n return this.http.get<Response<T>>(`${this.env.baseUrl}${endpoint}/${id}`);\n }\n\n delete<T, K>(endpoint: string, id: number): Observable<Response<T>> {\n return this.http.delete<Response<T>>(`${this.env.baseUrl}${endpoint}/${id}`);\n }\n\n getCurrentRoute(): any{\n let route = window.location.href;\n if(route && route.includes('/')){\n let currentRoute = route.split('/');\n route = currentRoute[currentRoute.length-1];\n const source = `?source=${route}`;\n return source;\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { RequestService } from './request.service';\nimport { ISelectItem } from '../models/grid.model';\nimport { GridService } from './grid.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DropdownService {\n constructor(\n private requestService: RequestService,\n ) {}\n\n /**\n * Function to set the values for dropdown\n * @param response array of data\n * @param valueProp property name for value\n * @param labelProp property name for label\n */\n\n setDropDownList(uniqueKey: any, valueProp: string, labelProp: string, filters: any[] = [], sorts:any[]=[]) {//add sort here\n let dropdownvalues: ISelectItem[] = [];\n return new Promise((resolve, reject) => {\n this.requestService.get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters, sorts }).subscribe((response) => {\n if (response) {\n dropdownvalues = this.setDropDown(response, valueProp.toLowerCase(), labelProp.toLowerCase())\n return resolve(dropdownvalues);\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n })\n });\n }\n\n setDropDown(response: any, valueProp: string, labelProp: string) {\n if (valueProp) valueProp = valueProp.toLowerCase();\n if (labelProp) labelProp = labelProp.toLowerCase();\n let dropdownvalues: ISelectItem[] = [];\n if (response.records) {\n this.setDataFields(response.records).forEach((record: any) => {\n if (\n record.hasOwnProperty(valueProp && labelProp) &&\n record[valueProp] &&\n record[labelProp]\n ) {\n dropdownvalues.push({\n label: record[labelProp].toString().trim(),\n value: record[valueProp].toString().trim(),\n });\n }\n });\n }\n return dropdownvalues;\n }\n\n setDataFields(response: any[]) {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any) => {\n const result = Object.keys(x).reduce(\n (prev, current) => ({ ...prev, [current.toLowerCase()]: x[current] }),\n {}\n );\n data.push(result);\n });\n }\n return data;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EGridColumnType } from '../models/grid.model';\nimport { ISidebar } from '../models/sidebar.model';\nimport { RequestService } from './request.service';\nimport { IDynamicForm } from '../models/form.model';\nimport { IDictionary } from '../models/common.model';\n@Injectable({\n providedIn: 'root',\n})\nexport class HyperlinkService {\n constructor(private requestService: RequestService) { }\n\n buildUrl(linkIds: any, params: { [key: string]: string }) {\n return new Promise((resolve, reject) => {\n if (Array.isArray(linkIds)) {\n this.requestService\n .get<any, any>('/Link/ByLinkIds', { linkIds: linkIds })\n .subscribe(\n (res: any) => {\n if (res) {\n return resolve(res);\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n }\n );\n } else {\n this.requestService\n .getOne<any, any>('/Link/ByLinkId', linkIds)\n .subscribe(\n (response) => {\n if (response) {\n return resolve(this.setUrl(params, response));\n } else {\n return resolve('');\n }\n },\n ({ error }) => {\n reject(error);\n }\n );\n }\n });\n }\n\n setUrl(params: { [key: string]: string }, response: any) {\n let url: string = response.url;\n for (let paramKey in params) {\n const lowerKey = paramKey.toLowerCase();\n const paramValue = params[paramKey];\n if (\n url &&\n url.search &&\n url.search(lowerKey) > 0 &&\n paramValue &&\n paramValue.length > 0\n ) {\n url = url.replace('{{'+lowerKey+'}}', params[paramKey]);\n }\n }\n return url;\n }\n\n async addHyperlinks(columns: any) {\n let linkIds: any[] = [];\n let params: any;\n if (columns && Array.isArray(columns)) {\n columns.forEach((column) => {\n if (\n (column.type === EGridColumnType.LINK ||\n column.type === EGridColumnType.IFRAME||\n column.type === EGridColumnType.LOOKUP_INPUT) &&\n column.linkId &&\n column.params\n ) {\n linkIds.push(column.linkId);\n params = column.params;\n }\n });\n return await this.buildUrl(linkIds, params).then((res: any) => {\n return res;\n });\n } else if (columns.linkId) {\n linkIds.push(columns.linkId);\n params = columns.params;\n return await this.buildUrl(linkIds, params).then((res: any) => {\n return res;\n });\n }\n }\n\n setLinkParamValues(\n { formSections }: IDynamicForm,\n field: string,\n params: any[]\n ) {\n return formSections?.map((section: any) => {\n return section.fields.map((formField: any): any => {\n const isLabelLink =\n formField.label && typeof formField.label === 'object';\n if (\n formField.field?.toLowerCase() === field?.toLowerCase() || \n (isLabelLink && formField.label?.name?.toLowerCase() === field?.toLowerCase()) ||\n (formField.label && typeof formField.label === 'string' && formField.label?.toLowerCase() === field?.toLowerCase())\n ) {\n let newLink: string = isLabelLink\n ? formField.label?.labelControl?.orignalLink\n : formField.orignalLink ? formField.orignalLink : formField.hyperlink?.link;\n \n if (newLink && newLink.length > 0) {\n return params.map((paramObj: IDictionary): any => {\n if (\n (typeof paramObj.value === 'object' && paramObj.value) ||\n (typeof paramObj.value === 'string' && paramObj.value?.length > 0)\n ) {\n // removing https:// or http:// from hyperlink param value\n if (\n (paramObj.value?.toString().includes('https://') || paramObj.value?.toString().includes('http://')) && \n (newLink.includes('https://') || newLink.includes('http://')) \n ) {\n paramObj.value = paramObj.value.replace('https://', '').replace('http://', '');\n }\n const paramName: string = paramObj.name.toLowerCase();\n const paramFormat: string = !paramObj.value\n ? '{{' + paramName + '}}'\n : paramName;\n \n if (newLink.localeCompare(paramFormat)) {\n let setLink =\n paramFormat !== '{{' + paramFormat + '}}'\n ? '{{' + paramFormat + '}}'\n : paramFormat;\n \n newLink = newLink.replace(\n new RegExp(setLink, 'ig'),\n (paramObj.value)?.trim()\n );\n // if (newLink && !newLink.startsWith('http'))\n // {\n // newLink = \"http://\" + newLink;\n // }\n }\n return isLabelLink\n ? (formField.label.labelControl.hyperlink.link = newLink)\n : (formField.hyperlink.link = newLink);\n }\n });\n }\n }\n });\n });\n }\n\n setSidebarLink(response: any, sidebar: ISidebar[]) {\n response.forEach((res: any) => {\n sidebar.forEach((item) => {\n if (item.onClick && item.linkId && item.linkId === res.linkId) {\n item.onClick(res.url);\n }\n });\n });\n }\n\n}\n","import { Type } from '@angular/core';\nimport { IGridSort, ISelectItem } from './grid.model';\nimport { IPermission } from './user-info.model';\n\nexport interface IDynamicForm {\n formSections?: IFormSection[];\n column?: number;\n permissions?: IPermission[];\n}\n\nexport interface ILabel {\n name: string;\n disabled?: boolean;\n labelControl?: IFormField;\n onReturn?: (value: any) => void;\n onClick?: () => void;\n}\n\nexport interface IDropDownRequest {\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters?: ISetFilter[]\n sorts?:IGridSort[] \n}\n\nexport interface IAutoCompleteSave {\n name:string,\n values:IAutoCompleteValueSave[],\n}\n\nexport interface IAutoCompleteValueSave{\n name:string,\n value?:any\n}\n\nexport interface ISetFilter {\n field?: string,\n value?: any,\n matchMode?: string,\n operator?: string,\n valueField?: string;\n}\n\nexport interface IFormSection {\n name?: string;\n fields: IFormField[];\n icon?: string;\n class?: string;\n links?: ILabel[];\n permissions?: IPermission[];\n hidden?: boolean;\n accordionDisabled?: boolean;\n showAccordion?: boolean;\n expanded?: boolean;\n disabled?: boolean;\n disabledText?: boolean;\n}\n\nexport interface IFormField {\n label?: string | ILabel;\n class?: string;\n card?: IDynamicCard;\n control?: EFormControl;\n field?: string;\n displayField?: string;\n showOption?: boolean;\n value?: any | ILookupInputValue;\n data?: any[];\n validations?: IValidation[];\n errorMessage?: string;\n minutesInterval?: number;\n id?: string;\n required?: boolean;\n disabled?: boolean;\n disabledText?: boolean;\n lookupControl?: ILookupControlField;\n tables?: string[];\n componentControl?: IFormComponentField;\n column?: number;\n row?: number;\n hyperlink?: IHyperlink;\n format?: IFormat;\n permissions?: IPermission[];\n hidden?: boolean;\n optionLabel?: string;\n optionValue?: string;\n saveAsString?: boolean;\n showAllValue?: boolean;\n onClick?: (value?: any) => any;\n onReturn?: (value?: any, selectedRow?: any) => void;\n onFocusOut?: (value: any) => void;\n onChange?: (value: any) => any;\n isvalid?: boolean;\n timeOnly?: boolean\n monthOnly?: boolean;\n showTime?: boolean; // to show time as well in calendar form field\n requiredField?: boolean;\n height?: string;\n showBottomBorder?: boolean;\n allowSearch?: boolean;\n isPassword?:boolean\n textType?:string;\n selectMultipleFiles?: boolean;\n SetfileTypes?: ESelectFileType;\n icon?: string;\n color?: string;\n uniqueKey?: string;\n azureContainer?: string;\n pathSystemConfig?: string;\n}\nexport interface IFormButton{\n icon?:string;\n label:string;\n hidden?:boolean;\n func:Function;\n disabled?:boolean;\n}\nexport interface IDynamicCard {\n id?: number;\n name?: string;\n data?: any[];\n orderByField?: string;\n formSections?: IFormSection[];\n onSort?: (value: any) => any;\n allowDelete?: boolean;\n allowDownload?: boolean;\n url?: string;\n caption?: string;\n width?: string;\n height?: string;\n allowEditableCaption?: boolean;\n onCaptionSave?: (value: any) => any;\n onDelete?: (value: any) => any;\n class?: string;\n cardInfo?: IViewCardProp;\n}\n\nexport interface IViewCardProp {\n url?: string;\n caption?: string;\n extension?: string;\n}\n\nexport interface IViewCardProp {\n url?: string;\n caption?: string;\n extension?: string;\n}\nexport interface IReportBtn{\n reportId: number;\n label?: string;\n control?: EFormControl.REPORT;\n params?: any[];\n showDialog?: boolean;\n}\n\nexport interface IListFilter {\n uniqueKey: string;\n filters?: ISetFilter[];\n sorts?: IGridSort[];\n}\n\nexport interface IFormComponentField {\n component: Type<any>;\n id?:string;\n data?: {\n [key: string]: any;\n };\n handlers?: {\n [key: string]: Function;\n };\n}\n\nexport interface ILookupInputValue {\n text: any;\n value: any;\n}\n\nexport interface ILookupControlField {\n component: any;\n data: ILookupFieldData;\n id?: string;\n}\n\nexport declare type ILookupFieldData = {\n header?: string;\n height?: string;\n width?: string;\n data?: {[key: string]: any};\n labelProp?: string;\n valueProp?: string;\n} \n\nexport interface IValidation {\n type: EValidator;\n expression?: any;\n}\n\nexport enum ESelectFileType {\n EXCEL = '.excel',\n IMAGE = '.image, .jpg, .png, .jpeg, .gif',\n DOCUMENT = '.document',\n PDF = '.pdf',\n MRT = '.mrt',\n}\n\nexport enum EValidator {\n REQUIRED = 'required',\n MINLENGTH = 'minlength',\n MAXLENGTH = 'maxlength',\n PATTERN = 'pattern',\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n NUMERIC = 'numeric',\n DECIMAL = 'decimal',\n EMAIL = 'email',\n PHONE = 'phone',\n}\n\nexport enum EFormControl {\n BUTTON = 'button',\n LABEL = 'label',\n INPUT = 'input',\n CHECKBOX = 'checkbox',\n DROPDOWN = 'dropdown',\n CALENDAR = 'calender',\n NUMERIC = 'number',\n MULTISELECT = 'multi-select',\n TEXTAREA = 'text-area',\n HYPERLINK = 'hyperlink',\n LOOKUP_INPUT = 'lookup_input',\n NOTE_FIELD = 'note_field',\n COMPONENT = 'component',\n PASSWORD = 'password',\n AUTOCOMPLETE = 'AutoComplete',\n SPACER = 'spacer',\n SECTION_HEADER = 'section_header',\n FILE_UPLOAD = 'file_upload',\n CARD = 'card',\n DISPLAY_FILE = 'display_file',\n ADD_BUTTON = 'add_button',\n BREAK_LINE = 'break_line',\n SWITCH = 'switch',\n REPORT = 'report'\n}\n\nexport enum EOperator {\n AND = 'and',\n OR = 'or',\n}\n\nexport enum EMatchMode {\n EQUALS = 'equals',\n STARTSWITH = 'startsWith',\n CONTAINS ='contains',\n IN = 'in',\n ENDSWITH = 'endsWith',\n NOTEQUALS = 'notEquals',\n ISNOT = 'isNot',\n DATEISNOT = 'dateIsNot',\n NOTCONTAINS ='notContains',\n LT = 'lt',\n BEFORE = 'before',\n DATEBEFORE = 'dateBefore',\n LTE = 'lte',\n GT = 'gt',\n AFTER = 'after',\n DATEAFTER = 'dateAfter',\n GTE = 'gte',\n}\n\nexport interface IFormat {\n type: EFormatType;\n formatParams?:\n | IFormatParam\n | IDateFormatParam\n | INumberFormatParam\n | IallowCalculateFormatParam\n | ICurrencyFormatParam;\n formatter?: (value: any) => any;\n}\n\nexport interface IFormatParam {\n locale?: string;\n}\n\nexport interface IDateFormatParam extends IFormatParam {\n format?: string;\n}\n\nexport interface IallowCalculateFormatParam extends IFormatParam {\n allowCalculate?: boolean;\n}\n\nexport interface INumberFormatParam extends IFormatParam {\n digitsInfo?: string;\n}\n\nexport interface ICurrencyFormatParam extends INumberFormatParam {\n currency: string;\n}\n\nexport enum EFormatType {\n SMALLDATE = 'mm/d/y',\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'M d, yy',\n LONGDATE = 'MM d, yy',\n MONTHONLY = 'mm/yy',\n PERIOD = 'mm/y',\n BOOLEAN_YN = 'BOOLEAN_YN',\n CUSTOM = 'custom',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}\n\nexport interface IHyperlink {\n target?: EHyperlink;\n link?: string;\n linkId?: string;\n params?: any;\n width?:string;\n height?:string;\n component?: any;\n data?: ILookupFieldData;\n}\n\nexport enum EHyperlink {\n BLANK = '_blank',\n SELF = '_self',\n PARENT = '_parent',\n TOP = '_top',\n IFRAME = '_iframe',\n DIALOG = '_dialog'\n}\n\nexport interface AddFormField {\n control?: EFormControl;\n field?: string;\n class?: string;\n displayField?: string;\n showOption?: boolean;\n label?: string | ILabel;\n value?: string | any;\n format?: IFormat;\n permissions?: IPermission[];\n id?: string;\n hidden?: boolean;\n validations?: IValidation[] | any;\n hyperlink?: IHyperlink;\n lookupControl?: ILookupControlField;\n tables?: string[];\n minutesInterval?: number;\n disabled?: boolean | any;\n disabledText?: boolean;\n column?: number;\n row?: number;\n componentControl?: IFormComponentField;\n data?: ISelectItem[];\n optionLabel?: string;\n optionValue?: string;\n timeOnly?: boolean;\n monthOnly?: boolean;\n showTime?: boolean; // to show time as well in calendar form field\n saveAsString?: boolean;\n showAllValue?: boolean;\n onClick?: (value?: any) => any;\n onReturn?: (value?: any, selectedRow?:any) => void;\n onFocusOut?: (value: any) => void;\n onChange?: (value: any) => any;\n height?: string;\n showBottomBorder?: boolean;\n allowSearch?: boolean;\n isPassword?:boolean\n textType?:string;\n selectMultipleFiles?: boolean;\n SetfileTypes?: ESelectFileType;\n icon?: string;\n color?: string;\n card?: IDynamicCard;\n}\n","import { formatDate } from '@angular/common';\n\nimport { IDictionary, IFilterDictionary } from '../models/common.model';\nimport {\n EFormatType,\n EFormControl,\n EHyperlink,\n EMatchMode,\n EOperator,\n IDynamicCard,\n IDynamicForm,\n IFormat,\n IFormField,\n IFormSection,\n} from '../models/form.model';\nimport { addGlobalFilter, EGridColumnType, IGlobalFilter, IGridColumn, IGridFilter } from '../models/grid.model';\nimport { Subject } from 'rxjs';\n\n/* #region public methods */\n\n/**\n *\n * @param value : any\n * Function receives the value and expects the value to be formated.\n * Do not use fat arrow function as they do not preserve the context.\n * this.value refers to the value of IFormField Object\n * Modify this.value directly to receive effect\n */\n\n var formstate = new Subject<any>();\n var cardState = new Subject<any>();\n\n export function changeDynamicFormState(id: any, data: any) {\n formstate.next({ id, data });\n}\n \n export function onDynamicFormStateChange() {\n return formstate.asObservable();\n }\n\n export function onDynamicCardStateChange() {\n return cardState.asObservable();\n }\n\n export function changeDynamicCardState(data: any) {\n cardState.next({ data });\n}\n\n export function closeIFrame(){\n let close = window.parent.document.querySelector('.p-dialog-header-icon')as HTMLElement\n if(close) {\n close.click();\n }\n}\n\nexport function toDecimal(value: any): any {\n if (value) {\n return parseFloat(value.toString()).toFixed(2);\n }\n}\n\nexport function toBoolean(value: any) {\n return value?.toLowerCase() === 'y' ? true : false;\n}\n\nexport function toShortDate(value: any, format?: IFormat) {\n if (value && value !== '') {\n if (\n format &&\n (format.type === EFormatType.LONGDATE ||\n format.type === EFormatType.MEDIUMDATE)\n ) {\n return value;\n } else {\n return formatDate(value, 'MM/dd/yyyy', 'en-US');\n }\n } else {\n return null;\n }\n}\n\nexport function toShortDateTime(value: any, format?: IFormat) {\n if (value && value !== '' && value?.toString() != \"Invalid Date\") {\n if (\n format &&\n (format.type === EFormatType.LONGDATE ||\n format.type === EFormatType.MEDIUMDATE)\n ) {\n return value;\n } else {\n return formatDate(value, 'MM/dd/yyyy hh:mm a', 'en-US');\n }\n } else {\n return null;\n }\n}\n\nexport function setDialogData(columns:IGridColumn[], fieldName:string, value:any){\n columns?.forEach((column)=>{\n if(column.field?.toLowerCase() === fieldName?.toLowerCase() && column.component){\n let keys=Object.keys(value);\n keys.forEach((key)=>{\n column.data.data={...column.data?.data, [key]:value[key]};\n })\n }\n })\n}\n\nexport function toTrim(text: any) {\n if (typeof text === 'string') {\n return text.trim();\n } else {\n return text;\n }\n}\n\nexport function getMatchKey(obj: any, propName: string): string {\n if (!obj || !propName) {\n return '';\n }\n\n let matchedKey = '';\n if (Array.isArray(obj)) {\n obj.forEach((row) => {\n const keys: any[] = Object.keys(row);\n if (!matchedKey || matchedKey.length === 0) {\n matchedKey = keys.find(\n (x) => x.toLowerCase() === propName.toLowerCase()\n );\n }\n });\n } else {\n const keys: any[] = Object.keys(obj);\n matchedKey = keys.find((x) => x.toLowerCase() === propName.toLowerCase());\n }\n\n return matchedKey;\n}\n\nexport function formatFormFieldValue(formField: IFormField, value: any): any {\n let formattedValue: any = value;\n if (formField.format) {\n switch (formField.format.type) {\n case EFormatType.DECIMAL:\n formattedValue = toDecimal(value);\n break;\n case EFormatType.BOOLEAN_YN:\n formattedValue = toBoolean(value);\n break;\n case EFormatType.SHORTDATE:\n formattedValue = toShortDate(value);\n break;\n case EFormatType.CUSTOM:\n if (formField.format.formatter) {\n formattedValue = formField.format.formatter(value);\n }\n break;\n default:\n break;\n }\n }\n return formattedValue;\n}\n\nexport function setFormField (\n { formSections }: IDynamicForm,\n formFieldObj: IFormField\n) {\n return formSections?.map((section) => {\n return (section.fields = section.fields.map((formField: IFormField) => {\n if (\n formField.field?.toLowerCase() === formFieldObj.field?.toLowerCase() ||\n (formField.label && formField.label === formFieldObj.label)\n ) {\n formField = formFieldObj;\n }\n return formField;\n }));\n });\n}\n\nexport function setHyperlinkComponentData (\n { formSections }: IDynamicForm,\n label: string,\n data: any\n){\n formSections?.forEach((section) => {\n let field=section.fields.find((field)=> field.label && field.label===label)\n if(field && field.hyperlink) field.hyperlink.params = data;\n});\n}\n\nexport function setAutoCompleteData(\n values: any[],\n uniqueId: any,\n labelKey: string,\n ValueKey: string,\n){\n if(values?.length > 0){\n values = values?.map((rowValue) => ({[labelKey]: rowValue, [ValueKey]: uniqueId}));\n }\n return values;\n}\n\nexport function setLookupData(\n { formSections }: IDynamicForm,\n field: string,\n data: any\n) {\n formSections?.map((section: IFormSection) => {\n section.fields.map((formField: any) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl &&\n formField.label.labelControl.lookupControl.data &&\n data\n ) {\n formField.label.labelControl.lookupControl.data.data = data;\n }\n if (formField.lookupControl && formField.lookupControl.data && data) {\n formField.lookupControl.data.data = data;\n }\n }\n });\n });\n return formSections;\n}\n\nexport function setSidebarLinkParamValues(link: string, params: any[]): string {\n let newLink: string = link;\n if (params && params.length > 0) {\n params.map((param) => {\n const url = param.name ? '{{' + param.name + '}}' : '';\n if (newLink.localeCompare(url)) {\n newLink = newLink.replace(new RegExp(url, 'ig'), toTrim(param.value));\n }\n });\n }\n return newLink;\n}\n\nexport function addNewFieldInForm(dynamicForm: IDynamicForm, sectionName:string, formField:IFormField){\n const section = dynamicForm?.formSections?.find((section)=> section.name === sectionName);\n if(section){\n section.fields.push(formField);\n }\n return dynamicForm;\n}\n\nexport function setFormFields(\n { formSections }: IDynamicForm,\n formFields: IFormField[]\n) {\n return formSections?.map((section) => {\n return (section.fields = section.fields.map((formField) => {\n let matchedField = formFields.find(\n (x) => x.field?.toLowerCase() == formField.field?.toLowerCase()\n );\n if (matchedField) {\n formField = matchedField;\n }\n return formField;\n }));\n });\n}\n\nexport function getGlobalFilters(\n globalFilters: addGlobalFilter[],\n field: string,\n) {\n let formFieldObj: any;\n globalFilters.map((filter)=>{\n if (filter.field?.toLowerCase() === field?.toLowerCase()) {\n formFieldObj = filter;\n }\n });\n return formFieldObj;\n}\n\nexport function getFormFields(\n { formSections }: IDynamicForm,\n formControl: EFormControl\n): IFormField[] {\n let formFields: IFormField[] = [];\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.control === formControl) {\n if (typeof(formField.value) === 'object' && formField.value?.text && typeof(formField.value.text) === 'string')\n {\n formField.value = formField.value.text.trim();\n }\n else if (formField.value && typeof(formField.value) === 'string')\n {\n formField.value = formField.value.trim();\n }\n formFields.push(formField);\n }\n });\n });\n return formFields;\n}\n\nexport function getFormField(\n { formSections }: IDynamicForm,\n field: string\n): IFormField {\n let formFieldObj: any;\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n formFieldObj = formField;\n }\n });\n });\n return formFieldObj;\n}\n\n// this function is always return a value of the field. If returnDisplayFieldValue is true and displayField\n// exist in the field then always return a displayField value.\nexport function getFormFieldValue(\n { formSections }: IDynamicForm,\n field: string,\n returnDisplayFieldValue:boolean = false\n) {\n let value;\n for (const section of formSections as any) {\n section.fields.forEach((formField: any) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n let isValid = typeof formField.value === 'object' && formField.control !== EFormControl.CALENDAR && returnDisplayFieldValue;\n if (\n (formField.control === EFormControl.LOOKUP_INPUT || formField.control === EFormControl.INPUT) &&\n formField.displayField\n ) {\n value = isValid ? formField.value?.text : formField.value?.value;\n } else {\n value = isValid\n ? formField.value?.text\n : typeof formField.value === 'object' && formField.control !== EFormControl.CALENDAR && formField.control !== EFormControl.MULTISELECT\n ? formField.value?.value\n : formField.value;\n }\n }\n });\n }\n return value;\n}\n\nexport function getFormFieldValueAsString(dynamicForm:IDynamicForm,field:string):string{\n let value:any = getFormFieldValue(dynamicForm,field, true);\n if (value){\n value = value.toString();\n }\n return value;\n}\n\nexport function getSectionFieldValue(\n formSections: IFormSection[],\n field: string\n) {\n let form: IDynamicForm = { formSections };\n return getFormFieldValue(form, field, true);\n}\n\nexport function setSaveFormValues(\n formSections: IFormSection[],\n tables?: string[]\n) {\n let response: any = {};\n if (tables && tables.length > 0) {\n tables.forEach((tableName) => {\n formSections.forEach((formSection) => {\n const sectionFields = formSection.fields?.filter(x => x.control !== EFormControl.CARD);\n\n sectionFields?.forEach((field) => {\n const table = field.tables?.map((table) => table.toLowerCase());\n\n if (table && table.includes(tableName.toLowerCase())) {\n if (!response[tableName]) {\n response[tableName] = {};\n }\n\n if (field.field && field.field.length > 0) {\n response[tableName][field.field] = formatFormFieldCValue(field);\n }\n }\n });\n });\n });\n } else {\n formSections.forEach((formSection) => {\n const sectionFields = formSection.fields?.filter(x => x.control !== EFormControl.CARD);\n sectionFields?.forEach((field) => {\n if (field.field && field.field.length > 0) {\n response[field.field] = formatFormFieldCValue(field);\n }\n });\n });\n }\n\n return response;\n}\n\nexport function setSaveCardValues(\n formSections: IFormSection[],\n tables?: string[]\n) {\n let values: IFormField[] = [];\n formSections?.forEach((section) => {\n section.fields?.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.card.data) {\n field.card.data.forEach((cardData: any) => {\n if (cardData.dynamicForm.formSections) {\n values.push(\n setSaveFormValues(cardData.dynamicForm.formSections, tables)\n );\n }\n });\n }\n });\n });\n return values;\n}\n\nexport function setEditFormFields(data: any, dynamicForm: IDynamicForm) {\n if (data && data.length > 0 && Array.isArray(data)) {\n data.forEach((dataRow) => {\n setEditFormFieldsInfo(dataRow, dynamicForm, data);\n });\n } else {\n setEditFormFieldsInfo(data, dynamicForm);\n }\n}\n\nexport function setFilter(\n field: string,\n value: any,\n matchMode: EMatchMode = EMatchMode.EQUALS,\n operator: EOperator = EOperator.AND,\n) {\n const filter: any = {\n field: field,\n matchMode: matchMode,\n operator: operator,\n value: typeof value === 'object' && (value?.value || value?.text) ? value?.value : value,\n };\n return filter;\n}\n\nexport function setAndFilter(field: string, value: any) {\n return setFilter(field, value, EMatchMode.EQUALS, EOperator.AND)\n}\n\nexport function getOrigDataFieldValue(data: any, propName: string): any {\n let value: any;\n if (data) {\n if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n value = getPropertyValue(data[i], propName);\n if (value) {\n return value;\n }\n }\n } else {\n value = getPropertyValue(data, propName);\n }\n }\n return value;\n}\n\nexport function getOrigDataFieldValueAsString(\n data: any,\n propName: string\n): string {\n let value = getOrigDataFieldValue(data, propName);\n if (value) {\n return value.toString();\n } else {\n return '';\n }\n}\n\nexport function setSectionPropValues(\n { formSections }: IDynamicForm,\n sectionName: string,\n props: IDictionary[]\n) {\n formSections?.map((section) => {\n if (section.name?.toLowerCase() === sectionName.toLowerCase()) {\n props.map((prop) => {\n return setPropValue(section, prop);\n });\n }\n });\n}\n\n/* #endregion */\n\n/* #region private methods */\n\nfunction setEditFormFieldsInfo(data: any, dynamicForm: IDynamicForm | IDynamicCard, allData: any[] = []) {\n if (data.records && data.records.length > 0) {\n data.records.forEach((record: any) => {\n const keys: string[] = Object.keys(record);\n dynamicForm.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((formField: any) => {\n const matchedKey: any = keys.find(\n (x) => x.toLowerCase() === formField.field?.toLowerCase()\n );\n\n if (matchedKey) {\n // set label hyperlink\n setLabelHyperlink(formField, record, keys, allData);\n }\n\n if (\n formField.control === EFormControl.HYPERLINK &&\n formField.hyperlink &&\n ((formField.hyperlink.linkId && formField.hyperlink.params) ||\n formField.hyperlink.link)\n ) {\n let params = formField.hyperlink.params;\n let paramKeys: string[] = [];\n\n if (\n !params &&\n formField.hyperlink.link &&\n formField.hyperlink.link.includes('}}')\n ) {\n paramKeys = formField.hyperlink.link.split('}}');\n paramKeys = paramKeys.map((paramKey) => {\n paramKey = paramKey.replace('{{', '').trim();\n return paramKey;\n });\n paramKeys = paramKeys.filter((x) => x.length > 0);\n } else {\n if(params){\n paramKeys = Object.keys(params);\n }\n }\n\n formField.hyperlink.link = setHyperlink(\n keys,\n record,\n formField.hyperlink.link,\n paramKeys,\n formField.hyperlink.params,\n allData\n );\n } else {\n if (formField.control === EFormControl.CALENDAR && matchedKey) {\n formField.value = formField.timeOnly ? record[matchedKey] : record[matchedKey]\n ? new Date(record[matchedKey] as string)\n : '';\n } else if (formField.control === EFormControl.CARD) {\n if (formField.card && formField.card.formSections) {\n if (!formField.card.data) {\n formField.card.data = data;\n }\n \n setEditFormFieldsInfo(data, formField.card);\n }\n } else if (\n formField.control === EFormControl.AUTOCOMPLETE &&\n matchedKey\n ) {\n let arrayValue = [];\n if (record[matchedKey] && formField.displayField) {\n arrayValue.push({[formField.displayField] : record[matchedKey]});\n }\n formField.value = arrayValue;\n } else if (formField.control === EFormControl.LOOKUP_INPUT || formField.control === EFormControl.INPUT) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl &&\n formField.label.labelControl.lookupControl.data\n ) {\n const obj = autoSetLookupData(\n formField.label.labelControl.lookupControl.data.data,\n record\n );\n if (obj) {\n formField.label.labelControl.lookupControl.data.data = obj;\n }\n }\n\n if (\n formField.lookupControl &&\n formField.lookupControl.data &&\n formField.lookupControl.data.data\n ) {\n const obj = autoSetLookupData(\n formField.lookupControl.data.data,\n record\n );\n if (obj) {\n formField.lookupControl.data.data = obj;\n }\n }\n if(record[matchedKey]){\n formField.value = toTrim(record[matchedKey]);\n }\n if (\n formField.displayField &&\n formField.displayField.length > 0\n ) {\n const matchDisplayField = getMatchKey(\n record,\n formField.displayField\n );\n if (matchDisplayField) {\n formField.value = {\n text: toTrim(record[matchDisplayField]),\n value: formField.value?.value,\n };\n }\n\n const matchValueField = getMatchKey(record, formField.field);\n if (matchValueField) {\n formField.value = {\n text: formField.value?.text,\n value: toTrim(record[matchValueField]),\n };\n }\n }\n } else if (\n formField.control === EFormControl.COMPONENT &&\n formField.componentControl?.data\n ) {\n formField.componentControl.data = findKeysAndValue(\n formField.componentControl.data,\n record\n );\n changeDynamicFormState(\n formField.componentControl.id,\n formField.componentControl?.data\n );\n } else if (\n formField.control === EFormControl.NUMERIC &&\n formField.label?.labelControl?.lookupControl?.data?.data\n ) {\n let setData = formField.label.labelControl.lookupControl;\n setData.data.data = findKeysAndValue(setData.data.data, record);\n changeDynamicFormState(setData.id, setData.data.data);\n } else if (formField.control === EFormControl.HYPERLINK \n && formField.hyperlink?.target === EHyperlink.DIALOG \n && formField.hyperlink.params\n ) {\n formField.hyperlink.params = findKeysAndValue(formField.hyperlink.params, record);\n } else if (matchedKey) {\n if (formField.format) {\n formField.value = formatFormFieldValue(\n formField,\n record[matchedKey]\n );\n } else if (formField.control === EFormControl.CHECKBOX) {\n formField.value =\n record[matchedKey] &&\n (record[matchedKey].toString() === '1' ||\n record[matchedKey].toString() === 'true')\n ? true\n : false;\n }else if (formField.control === EFormControl.DROPDOWN) {\n let dropValue = record[matchedKey];\n formField.value = dropValue\n ? dropValue.toString()\n : dropValue;\n } else {\n formField.value = toTrim(record[matchedKey]);\n }\n }\n }\n });\n }\n });\n });\n }\n}\n\n//set hyperlink param value as field value\nexport function setHyperlinkParamValue(record:any, dynamicForm: IDynamicForm) {\n let keys: string[] = [];\n let link: string ='';\n let paramKeys: string[] = [];\n let param: any;\n let fieldInfo: any;\n dynamicForm.formSections?.forEach((section: any) => {\n section.fields.forEach((formField: any) => {\n if(formField.label && formField.label.labelControl && formField.label.labelControl.hyperlink?.link){\n keys = Object.keys(record);\n if(formField?.label?.labelControl?.orignalLink){\n link = formField.label.labelControl.orignalLink;\n }\n\n if(formField?.label?.labelControl?.hyperlink?.params){\n param = formField.label.labelControl.hyperlink.params;\n paramKeys = Object.keys(param);\n }\n fieldInfo = formField;\n if(record && keys && link && paramKeys && param && fieldInfo){\n fieldInfo.label.labelControl.hyperlink.link = setHyperlink(keys, record, link, paramKeys, param);\n }\n }\n });\n });\n}\n\nexport function objConvertToLower(obj: any) {\n return Object.keys(obj).reduce((accumulator: any, key) => {\n accumulator[key.toLowerCase()] = obj[key];\n return accumulator;\n }, {});\n}\n\nexport function clickSectionHighlight(value: any) {\n document.querySelectorAll('.left-sideBar .p-panelmenu .p-panelmenu-panel');\n const title = document.body?.querySelector('[title = \"'+ value?.name +'\"]');\n const allMenuItems = document.body?.querySelectorAll('.left-sideBar .p-panelmenu-panel');\n allMenuItems?.forEach((menauItem: any) => {\n menauItem?.setAttribute('class', 'p-panelmenu-panel');\n })\n title?.parentElement?.parentElement?.setAttribute('class', 'p-panelmenu-panel active');\n title?.parentElement?.setAttribute('class', 'p-element p-component p-panelmenu-header p-highlight');\n\n const activeIcon = document.body?.querySelectorAll('.active-icon');\n activeIcon?.forEach((icon: any, index: any) => {\n icon?.setAttribute('class', 'p-element p-component p-panelmenu-header p-highlight');\n });\n}\n\nexport function removeActiveIconClass() {\n const activeIcon = document.body?.querySelectorAll('.active-icon');\n if (activeIcon && activeIcon.length > 0) {\n activeIcon?.forEach((icon: any, index: any) => {\n icon?.setAttribute('class','p-element p-component p-panelmenu-header p-highlight');\n });\n }\n}\n\nexport function highlightLeftSidebar(){\n document.querySelector(\".form-container\")?.addEventListener(\"wheel\", () =>{\n const scrollTopPosition: any = document.querySelector(\".form-container\")?.scrollTop;\n const allIconElements: any = document.body.querySelectorAll(\".left-sideBar .p-panelmenu .p-panelmenu-panel\");\n\n allIconElements?.forEach((icon: any, index: any) => {\n icon?.setAttribute('tabIndex', 'section' + index);\n });\n removeActiveIconClass();\n document.querySelectorAll('.form-container .card')?.forEach((card: any, index: any) => {\n const currentId = \"section\" + index;\n if (scrollTopPosition >= card.offsetTop && scrollTopPosition <= card.offsetTop + card.offsetHeight){\n return document.body?.querySelector('[tabIndex='+ currentId + ']')?.setAttribute('class', 'p-panelmenu-panel active');\n } else{\n return document.body?.querySelector('[tabIndex='+ currentId + ']')?.setAttribute('class', 'p-panelmenu-panel'); \n }\n });\n });\n }\n\nexport function findKeysAndValue(data: any, record: any) {\n let valueKey: string = '';\n Object.keys(data).forEach((dataKey) => {\n let valueContainsKey: boolean = false;\n if(data[dataKey] && data[dataKey]?.toString()?.includes('{')){\n valueContainsKey = true;\n valueKey = data[dataKey]?.toString()?.replace(\"{\", \"\")?.replace(\"}\", \"\")\n }\n let key = Object.keys(record).find((key) => valueContainsKey ? (valueKey.toLowerCase() === key.toLowerCase()) : (dataKey.toLowerCase() === key.toLowerCase()));\n if (key && key.length > 0) {\n data = { ...data, [dataKey]: record[key] };\n }\n });\n return data;\n}\n\nexport function setPropValue(obj: any, prop: IDictionary) {\n const matchedKey: string = getMatchKey(obj, prop.name);\n if (matchedKey) {\n return (obj[matchedKey] = prop.value);\n }\n else{\n return( obj[prop.name]=prop.value)\n }\n}\n\nexport function hasRole(role: string): boolean {\n let storage = localStorage.getItem('CurrentUserInfo');\n if (storage) {\n let currentUser = JSON.parse(storage);\n if (currentUser && currentUser.roles && currentUser.roles.length > 0) {\n return currentUser.roles.some((item: any) => item.code.toString().toLowerCase() === role.toLowerCase());\n }\n }\n return false;\n}\n\nfunction setLabelHyperlink(item: any, record: any, keys: string[], allData: any[] = []) {\n if (\n item.label &&\n item.label.labelControl &&\n item.label.labelControl.hyperlink &&\n item.label.labelControl.hyperlink.params\n ) {\n const paramKeys = Object.keys(item.label.labelControl.hyperlink.params);\n const link = item.label.labelControl.hyperlink.link;\n if (item.label.labelControl.hyperlink.link) {\n item.label.labelControl.hyperlink.link = setHyperlink(\n keys,\n record,\n link,\n paramKeys,\n item.label.labelControl.hyperlink.params,\n allData\n );\n }\n }\n}\n\nexport function setHyperlink(\n keys: string[],\n record: any,\n link: string,\n paramKeys: string[],\n params: any,\n allData: any[] = []\n): string {\n let newLink: string = link;\n record = objConvertToLower(record);\n paramKeys.forEach((paramkey) => {\n const param: string = '{{' + paramkey.toLowerCase() + '}}';\n const isParamMatched = newLink.localeCompare(param);\n const paramInRecord = setParamKeyValue(record, allData, paramkey);\n\n if (isParamMatched) {\n let paramValue = params ? params[paramkey] : null;\n if(paramValue === '' && paramInRecord){\n paramValue = '{'+paramkey+'}';\n }\n if (paramValue) {\n const propName = paramValue.toString().replace('{', '').replace('}', '');\n let propValue = record[propName.toLowerCase()];\n \n // in case of prop not found in record then try to find prop in all data array, to get its value \n if (!propValue && allData && allData.length > 0)\n {\n allData.forEach((data)=>{\n //const value = data.records.find((x)=> x[propName]);\n data.records.forEach((allRecord: any)=>{\n let keys = Object.keys(allRecord);\n let matchKey = keys.find((x)=> x.toLowerCase() === propName.toLowerCase());\n if (matchKey){\n propValue = allRecord[matchKey];\n }\n });\n });\n }\n newLink = newLink.replace(new RegExp(param, 'ig'), toTrim(paramValue.toString().includes('{') ? propValue : paramValue));\n \n } else {\n // get param value from api response, if param key exists in it\n const matchedKey: any = keys.find(\n (x) => x.toLowerCase() === paramkey.toLowerCase()\n );\n\n if (matchedKey) {\n paramValue = record[matchedKey];\n if (paramValue) {\n newLink = newLink.replace(\n new RegExp(param, 'ig'),\n toTrim(paramValue)\n );\n } else {\n newLink = newLink.replace(new RegExp(param, 'ig'), toTrim(''));\n }\n }\n }\n }\n });\n // replace the {{param}} with empty\n if(newLink && newLink.includes(\"{{\") && newLink.includes(\"}}\")){\n newLink = newLink?.replace(/{+.*?}+/g, \"\");\n }\n return newLink;\n}\n\n// its checking if there is no value in hyperlink param then it set key as a paramValue\nfunction setParamKeyValue(record: any, allData: any[] = [], paramkey: any){\n let paramValue: boolean = false;\n if(allData && allData.length > 0){\n allData.forEach((data: any)=>{\n if(data.records && data.records.length > 0){\n data.records.forEach((allRecord: any) =>{\n if(paramValue === false){\n paramValue = Object.keys(allRecord).some((record)=> record.toLowerCase() === paramkey.toLowerCase());\n };\n });\n };\n });\n }else{\n paramValue = Object.keys(record).some((x)=> x === paramkey.toLowerCase());\n }\n return paramValue;\n}\n\nfunction getPropertyValue(data: any, propName: string) {\n let propValue: any;\n data.records?.forEach((record: any) => {\n for (const [key, value] of Object.entries(record)) {\n if (key && propName && key.toLowerCase() === propName.toLowerCase()) {\n propValue = value;\n }\n }\n });\n return propValue;\n}\n\nfunction formatFormFieldCValue(field: any) {\n if (\n field.format?.type === EFormatType.BOOLEAN_YN &&\n field.format?.formatter?.name === 'toBoolean'\n ) {\n return (field.value === 1 || field.value === true) ? 'Y' : 'N';\n } else if (\n field.control === EFormControl.CALENDAR &&\n (field.value || field.value === '')\n ) {\n if(field.timeOnly && field.saveAsString){\n field.value = field.value;\n }else{\n field.value =\n field.showTime === true\n ? toShortDateTime(field.value, field.format)\n : toShortDate(field.value, field.format)\n }\n return field.value;\n } else if (\n (field.control === EFormControl.LOOKUP_INPUT || field.control === EFormControl.INPUT) &&\n field.value &&\n typeof field.value === 'object'\n ) {\n return field.value.value == undefined ? null : field.value.value;\n } else if (\n field.label &&\n field.label.labelControl &&\n field.label.labelControl.control === EFormControl.LOOKUP_INPUT &&\n field.value &&\n typeof field.value === 'object'\n ) {\n return field.value.value;\n } else {\n field.value = field.value == undefined ? null : field.value;\n return field.value;\n }\n}\n\nexport function autoSetLookupData(\n fieldData: any,\n response: any\n) {\n let obj = {};\n let record = setDataFields([response]);\n if (record && record.length > 0) {\n record.forEach((x: any) => {\n record = x;\n });\n }\n if (fieldData && record) {\n Object.entries(fieldData).forEach(([dataKey, dataValue]: any) => {\n let rowKeys = Object.keys(record);\n let key = rowKeys?.find((x) => x?.toLowerCase() === dataKey?.toString()?.toLowerCase());\n let value = rowKeys?.find(\n (x) => dataValue && dataValue?.toString().includes('{') && x?.toLowerCase() === dataValue?.toString()?.toLowerCase()?.replace(\"{\", \"\")?.replace(\"}\", \"\")\n );\n if (value && value.length > 0) {\n obj = { ...obj, [dataKey]: record[value.toLowerCase()] };\n } else if (key && key.length > 0) {\n obj = { ...obj, [dataKey]: record[key.toLowerCase()] };\n } else {\n obj = { ...obj, [dataKey]: dataValue };\n }\n });\n return obj;\n } else {\n return null;\n }\n}\n\nexport function setGridLookupData(column: IGridColumn[], field: string, data: any){\n let obj = column.find((x)=> x.field?.toLowerCase() === field.toLowerCase());\n if(obj && obj.lookupControl?.data){\n obj.lookupControl.data.data = data;\n }\n}\n\nexport function setDataFields(response: any[]) {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any, index: number) => {\n const result = Object.keys(x).reduce(\n (prev, current) => ({ ...prev, [current.toLowerCase()]: x[current] }),\n {}\n );\n\n data.push(result);\n });\n }\n return data;\n}\n\nexport function setDialogResponse(\n formField: any,\n formData: any,\n response: any\n) {\n let value: any;\n if (response) {\n // if selectedValue does not exist then consider valueField as selectedValue\n if (\n formData &&\n formData.data &&\n formData.data.labelProp &&\n !formData.data.valueProp\n ) {\n formData.data.valueProp = formData.data.labelProp;\n }\n else if (\n formData &&\n formData.data &&\n formData.data.valueProp &&\n !formData.data.labelProp\n ) {\n formData.data.labelProp = formData.data.valueProp;\n }\n\n const matchValueKey: string = getMatchKey(\n response,\n formData?.data?.valueProp\n );\n const matchFieldKey: string = getMatchKey(\n response,\n formData?.data?.labelProp\n );\n\n if (\n formData?.data &&\n formData?.data.valueProp &&\n formData?.data.labelProp\n ) {\n let valueProp = response[matchValueKey];\n let matchText = response[matchFieldKey];\n if (typeof valueProp === 'string' && typeof matchText === 'string') {\n valueProp = valueProp.trim();\n matchText = matchText.trim();\n }\n value = { text: matchText, value: valueProp };\n } else {\n const FieldKey: string = getMatchKey(response, formField.field);\n let value = response[FieldKey];\n if (value) {\n value = value?.toString()?.trim();\n }\n }\n }\n return value;\n}\n\nexport function currentUrl():string{\n let currentRoute: string = '';\n let url = window.location.href;\n if(url){\n let arr = url.split('/');\n currentRoute = arr[arr.length-1]\n } \n return currentRoute;\n}\n\nexport function getGridFilters(){\n let filters: any = [];\n let gridFilters = currentUrl();\n if(gridFilters && gridFilters.length > 0){\n const localFilter = JSON.parse(localStorage.getItem('SetFilters-'+gridFilters) as any);\n filters = localFilter?.filters;\n }\n return filters;\n}\n\n//update the hidden or disabled and value based off other global filters.\nexport function setGlobalFilterPropValues(\n globalFilter: IGlobalFilter[],\n field: string,\n props: IFilterDictionary[],\n) {\n return globalFilter.map((filter: any) => {\n if (\n (filter.field && filter.field.toLowerCase() === field?.toLowerCase()) ||\n (filter.displayText &&\n filter.displayText.toLowerCase() === field?.toLowerCase())\n ) {\n props?.map((prop: IFilterDictionary) => {\n if (filter.hasOwnProperty(prop.propName)) {\n return (filter[prop.propName] = prop.propValue);\n } else if (prop.propValue && prop.propValue.length > 0) {\n return (filter.value = prop.propValue);\n }\n });\n }\n });\n}\n\nexport function setCardFieldsData(form: any) {\n if (form && form.dynamicform) {\n const { dynamicform, ...newData } = form;\n dynamicform?.formSections?.forEach((section: any) => {\n section.fields?.forEach((field: any) => {\n if (newData) {\n setEditFormFields({ records: [newData] }, dynamicform);\n }\n });\n });\n }\n}\n\n// disable Grid EditableRow Column\nexport function disableEditRowColumn(columns: IGridColumn[], field: string): IGridColumn[] {\n if (field && columns && columns.length > 0) {\n let obj = columns.find((x) => x.field?.toLowerCase() === field.toLowerCase());\n let disableObj = { ...obj, disabled: true };\n const index = columns.findIndex((i: any) => i.field.toLowerCase() === field.toLowerCase());\n if (index !== -1) columns[index] = disableObj;\n }\n return columns;\n}\n\n// enabled Grid EditableRow Column\nexport function enabledEditRowColumn(columns: IGridColumn[], field: string): IGridColumn[] {\n if (field && columns && columns.length > 0) {\n let obj = columns.find((x) => x.field?.toLowerCase() === field?.toLowerCase());\n let enableObj = { ...obj, disabled: false };\n const index = columns.findIndex((i: any) => i.field?.toLowerCase() === field?.toLowerCase());\n if (index !== -1) columns[index] = enableObj;\n }\n return columns;\n}\n\n // check the Minutes Interval\n export function setMinutesInterval(value: any){\n if (value) {\n const min = value.getMinutes().toString();\n if (min) {\n value = value.setMinutes(0);\n }\n }\n return value;\n}\n\n // update the response records\n export function setUpdatedRecord(records: any[], rowData: any, dataKey: string): any[]{\n const index = records?.findIndex((record)=> record[dataKey?.toLowerCase()] == rowData[dataKey?.toLowerCase()]);\n if(index > -1){\n records[index] = rowData;\n }else{\n records.push(rowData);\n }\n return records;\n}\n\n//convert the time into date\nexport function setTimeInDate(time: any) {\n const convertTime12to24 = (time12h: any) => {\n const [time, modifier] = time12h?.toString()?.split(' ');\n let [hours, minutes] = time?.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (modifier === 'PM') {\n hours = parseInt(hours, 10) + 12;\n }\n return `${hours}:${minutes}`;\n };\n const date = convertTime12to24(time);\n const tempDate = new Date('July 1, 1999, ' + date + ':00');\n const futureDate = new Date();\n futureDate.setTime(tempDate.getTime());\n return futureDate;\n}\n\n// return the data of the field \nexport function getFieldData({ formSections }: any, field: string){\n let data: any = []\n if(formSections?.length > 0 && field){\n formSections.forEach((section: any)=>{\n if(section.fields.some((formField:any)=> formField.field?.toLowerCase() == field.toLowerCase())){\n data=section.fields.find((formField:any)=> formField.field?.toLowerCase() == field.toLowerCase())?.data\n }\n })\n }\n return data;\n}\n\nexport function setAllFormFieldsValues(\n { formSections }: IDynamicForm,\n props: IFilterDictionary[]\n) {\n formSections?.map((section: IFormSection) => {\n if (section) {\n section.fields.map((formField: any) => {\n return props.map((prop: IFilterDictionary) => {\n if (formField) {\n return (formField[prop.propName] = prop.propValue);\n }\n });\n });\n }\n });\n}\n\n// returns the response header fileName\nexport function getResponseHeaderFileName(response){\n const header = response?.headers?.get('Content-Disposition');\n return header?.split('filename=')?.[1]?.split(\";\")[0]?.replaceAll(/\\\"/g, '');\n}\n\n export function draggableDialog(id:any){\n setTimeout(() => {\n const dialog = document.getElementsByClassName('p-dialog')\n dialog[0]?.setAttribute('id','mydiv' + id)\n const dialogheader = document.getElementsByClassName('p-dialog-header')\n dialogheader[0]?.setAttribute('id','mydivheader' + id)\n const elmnt = document.getElementById('mydiv' + id);\n\n let pos1 = 0,\n pos2 = 0,\n pos3 = 0,\n pos4 = 0;\n \n const dragMouseDown = (e) => {\n e = e || window.event;\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n document.onmousemove = elementDrag;\n };\n \n const elementDrag = (e) => {\n e = e || window.event;\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n elmnt.style.top = elmnt?.offsetTop - pos2 + 'px';\n elmnt.style.left = elmnt?.offsetLeft - pos1 + 'px';\n };\n \n const closeDragElement = () => {\n document.onmouseup = null;\n document.onmousemove = null;\n };\n \n if (document.getElementById('mydivheader' + id)) {\n document.getElementById('mydivheader' + id).onmousedown = dragMouseDown;\n } else {\n elmnt.onmousedown = dragMouseDown;\n }\n }, 100);\n } \nexport function calenderMinMaxValue(item: any,value: any, index){\n let validation: string = 'equal';\n var validDate = new Date(item.validations[index].expression);\n var currentDate = new Date(value);\n if (validDate.getTime() < currentDate.getTime()){\n validation = 'greater';\n }\n else if (validDate.getTime() > currentDate.getTime()){\n validation = 'minimum';\n }\n return validation;\n}\n/* #endregion */\n","import { Injectable } from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport { IAutoCompleteSave, IDropDownRequest } from '../models/form.model';\nimport { DatePipe } from '@angular/common';\nimport {\n EGridSortDirection,\n GridFilterControlType,\n IGlobalFilter,\n IGridFilter,\n IGridSort,\n EGridColumnType,\n addColumn,\n addFilterColumn,\n addGlobalFilter,\n IGridColumn,\n EGridValidator,\n IGridProp,\n IGridPropFilter,\n IGridRowProp,\n IGridReportBtn,\n EGridRowAction,\n IDialogColumn,\n EGridFormatter,\n} from '../models/grid.model';\nimport { AlertService } from './alert.service';\nimport { DropdownService } from './dropdown.service';\nimport { HyperlinkService } from './hyperlink.service';\nimport * as utilities from './utilities.service';\nimport { RequestService } from './request.service';\nimport { IDictionary } from '../models/common.model';\nimport { ActivatedRoute } from '@angular/router';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridService {\n softCachingFilters: any = {};\n applyFilterEvent: boolean = true;\n public columnFocusedOut: boolean = false;\n constructor(\n public datepipe: DatePipe,\n private hyperlinkService: HyperlinkService,\n private dropdownService: DropdownService,\n private alertService: AlertService,\n private requestService: RequestService,\n private route: ActivatedRoute,\n ) {}\n\n /**\n *\n * @param event\n * Receives lazy event and returns after proper mapping\n */\n getGridFilters(event: LazyLoadEvent, columns: IGridColumn[]): IGridFilter[] {\n const filters = this.mapFilters(event, columns);\n return this.handleMultiFilterField(filters);\n }\n\n /**\n * @param filters\n * Receives filters and returns array after removing duplicates\n * and creating comma separated values for same filters\n */\n handleMultiFilterField(filters: IGridFilter[]): IGridFilter[] {\n return filters\n .map((x, i, arr) =>\n arr.some(\n (y, idx) =>\n y.field?.toLowerCase() === x.field?.toLowerCase() && i !== idx\n )\n ? {\n ...x,\n value: arr\n .filter(\n (z) => z.field?.toLowerCase() === x.field?.toLowerCase()\n )\n .map((a) => a.value)\n .join(),\n }\n : x\n )\n .filter((f, i, arr) => arr.findIndex((x) => x.value === f.value) === i);\n }\n\n // Prepare basic grid filters\n prepareBasicFilters(\n event: LazyLoadEvent,\n columns: IGridColumn[]\n ): IGridFilter[] {\n return this.mapFilters(event, columns);\n }\n\n /**\n * Checks if filters has values then converts global filter values type into IGridFilter.\n */\n prepareGlobalFilters(globalFilters: IGlobalFilter[]): IGridFilter[] {\n const globalData: IGridFilter[] = [];\n\n globalFilters?.forEach((filter: IGlobalFilter) => {\n if (\n ((typeof filter.value === 'string' || Array.isArray(filter.value)) &&\n filter.value.length) ||\n (typeof filter.value !== 'string' &&\n !Array.isArray(filter.value) &&\n filter.value) ||\n (typeof filter.value === 'boolean' && filter.value !== null) ||\n filter.type === GridFilterControlType.CALENDAR_RANGE\n ) {\n if (\n filter.type === GridFilterControlType.CALENDAR_RANGE &&\n filter.value?.toString()?.includes('|')\n ) {\n // add filter for start date\n globalData.push({\n field: this.setGlobalFilterField(filter),\n matchMode: filter.matchMode ? filter.matchMode : 'gte',\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter),\n tableAlias: filter.tableAlias,\n });\n\n // add filter for end date\n globalData.push({\n field: this.setGlobalFilterField(filter, false),\n matchMode: filter.matchMode ? filter.matchMode : 'lte',\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter, false),\n tableAlias: filter.tableAlias,\n });\n } else if (filter.type !== GridFilterControlType.CALENDAR_RANGE) {\n globalData.push({\n field: this.setGlobalFilterField(filter),\n matchMode:\n filter.type === GridFilterControlType.MULTISELECT\n ? 'in'\n : filter.matchMode,\n operator: filter.operator ? filter.operator : 'and',\n value: this.setGlobalFilterValue(filter),\n tableAlias: filter.tableAlias,\n });\n }\n }\n });\n return globalData;\n }\n\n setGlobalFilterField(filter: any, isStartDate: boolean = true): string {\n if (filter.type === GridFilterControlType.CALENDAR_RANGE) {\n if (isStartDate) {\n return filter.fromField;\n } else {\n return filter.toField;\n }\n } else {\n return filter.field;\n }\n }\n\n // set global filter value\n setGlobalFilterValue(\n filter: IGlobalFilter,\n isStartDate: boolean = true\n ): string | number | Date | boolean {\n switch (filter.type) {\n case GridFilterControlType.MULTISELECT:\n return (filter.value as any[]).join(',');\n case GridFilterControlType.CALENDAR:\n return this.getFormattedDate(filter.value as Date);\n case GridFilterControlType.CALENDAR_RANGE:\n let dateValues: string[] = filter.value\n ? filter.value.toString().split('|')\n : [];\n if (dateValues && dateValues.length == 2) {\n let dateValue: Date = isStartDate\n ? new Date(dateValues[0])\n : new Date(dateValues[1]);\n return this.getFormattedDate(dateValue);\n } else {\n return '';\n }\n case GridFilterControlType.CHECKBOX:\n return filter.value ? true : false;\n default:\n return filter.value as string;\n }\n }\n\n checkValidity(columns: IGridColumn[], row: any) {\n let isValid: boolean = true;\n columns.map((item: any) => {\n if (item.validations && !item.disabled) {\n item.errorMessage = '';\n item.isvalid = true;\n for (let i = 0; i < item.validations.length; i++) {\n const minMaxValidDate = utilities.calenderMinMaxValue(\n item,\n row[item.field],\n i\n );\n const valid = item.validations && item.header;\n if (\n item.validations[i].type == EGridValidator.REQUIRED &&\n !row[item.field] &&\n !item.hidden &&\n valid\n ) {\n isValid = row[item.field]\n ? true\n : this.setErrorMessage(item, `${valid} is required`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MINLENGTH &&\n row[item.field].length < item.validations[i].expression\n ) {\n isValid =\n row[item.field] &&\n row[item.field].length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Minimum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXLENGTH &&\n row[item.field].length > item.validations[i].expression\n ) {\n isValid =\n row[item.field] &&\n row[item.field].length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Maximum ${item.validations[i].expression} characters`\n );\n break;\n } \n else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXOPTIONS \n\n ) {\n var options:number=1;\n var value=row[item.field];\n for (var x = 0; x < value.length - 1; x++) {\n if (value[x] == ';') {\n options++;\n }\n }\n //blue;red;green max=3\n isValid =\n // row[item.field] &&\n options <= item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} maximum ${item.validations[i].expression} option${item.validations[i].expression>1?'s':''}`\n );\n break;\n }\n \n else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MINIMUM &&\n isValid\n ) {\n if (item.type === EGridColumnType.DATE) {\n isValid =\n minMaxValidDate === 'minimum'\n ? this.setErrorMessage(\n item,\n `Minimum ${valid} ${item.validations[i].expression}`\n )\n : true;\n } else if (row[item.field] < item.validations[i].expression) {\n isValid =\n row[item.field] &&\n row[item.field].length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Minimum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.MAXIMUM &&\n isValid\n ) {\n if (item.type === EGridColumnType.DATE) {\n isValid =\n minMaxValidDate === 'greater'\n ? this.setErrorMessage(\n item,\n `Maximum ${valid} ${item.validations[i].expression}`\n )\n : true;\n } else if (row[item.field] > item.validations[i].expression) {\n isValid =\n row[item.field] &&\n row[item.field].length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.header} Maximum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.PATTERN &&\n !row[item.field].match(item.validations[i].expression)\n ) {\n isValid =\n row[item.field] &&\n row[item.field].match(item.validations[i].expression)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.NUMERIC &&\n !row[item.field].toString().match(/^(0|[-()1-9]\\d*)$/)\n ) {\n isValid =\n row[item.field] && row[item.field].match(/^(0|[1-9]\\d*)$/)\n ? true\n : this.setErrorMessage(\n item,\n `Enter ${item.validations[i].type} for ${valid}`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.PHONE &&\n !row[item.field]?.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]?.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.DECIMAL &&\n !row[item.field]?.toString().match(/^(0|[-()1-9]\\d*)(\\.\\d+)?$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]?.toString().match(/^(0|[1-9]\\d*)(\\.\\d+)?$/)\n ? true\n : this.setErrorMessage(\n item,\n `Enter ${item.validations[i].type} for ${valid}`\n );\n break;\n } else if (\n row[item.field] &&\n item.validations[i].type == EGridValidator.EMAIL &&\n !row[item.field]\n ?.toString()\n .match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ) {\n isValid =\n row[item.field] &&\n row[item.field]\n ?.toString()\n .match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n }\n }\n }\n });\n return isValid;\n }\n\n setErrorMessage(item: IGridColumn, errorMessage: string): boolean {\n item.errorMessage = errorMessage;\n item.isvalid = false;\n return false;\n }\n\n // set basic filter value\n setBasicFilterValue(filter: any): any {\n if (filter instanceof Date) {\n return this.getFormattedDate(filter);\n } else if (typeof filter === 'boolean') {\n return filter ? 1 : 0;\n } else {\n return filter;\n }\n }\n\n /**\n *\n * @param param\n * Receives lazy event and returns sort array\n */\n getGridSorts(\n { multiSortMeta }: LazyLoadEvent,\n columns: IGridColumn[]\n ): IGridSort[] {\n return (multiSortMeta || []).map(({ field, order }, i): any => ({\n field,\n direction: order > 0 ? EGridSortDirection.ASC : EGridSortDirection.DESC,\n priority: i + 1,\n tableAlias: this.setTableAlias(field, columns),\n }));\n }\n\n /**\n *\n * @param event\n * Handles default and lookup filters\n */\n mapFilters(event: any, columns: IGridColumn[]): IGridFilter[] {\n const filters: IGridFilter[] = [];\n Object.entries(event.filters).forEach(([field, value]: any) => {\n if (Array.isArray(value)) {\n (value as IGridFilter[]).forEach(\n ({ matchMode, operator, value: filter }) => {\n if (filter !== null) {\n filters.push({\n field,\n matchMode,\n operator,\n value: this.setBasicFilterValue(filter),\n tableAlias: this.setTableAlias(field, columns),\n });\n }\n }\n );\n } else {\n if (value.value !== '') {\n switch (typeof value.value) {\n case 'boolean':\n filters.push({\n field,\n matchMode: 'equals',\n operator: 'and',\n value: value.value ? true : false,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'string':\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'number':\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n break;\n case 'object':\n if (value.value instanceof Date) {\n filters.push({\n field,\n matchMode: 'equal',\n operator: 'and',\n value:\n value.value instanceof Date\n ? this.getFormattedDate(value.value)\n : value.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n } else {\n (value.value || []).forEach((x: any) => {\n filters.push({\n field,\n matchMode: value.matchMode,\n operator: 'and',\n value: x.value,\n tableAlias: this.setTableAlias(field, columns),\n });\n });\n }\n break;\n default:\n null;\n }\n }\n }\n });\n return filters;\n }\n\n /**\n *\n * @param event\n * Receives lazy event and returns page number\n */\n getGridPagination(event: any): number {\n return isNaN(event.first / event.rows) ? 1 : event.first / event.rows + 1;\n }\n\n // get formatted date\n getFormattedDate(value: Date): string {\n return new Date(`${value} Z`).toISOString().slice(0, 10);\n }\n\n // change row key and value when using setGridRowPropValue function\n setRowValue(rowData: any) {\n Object.keys(rowData)?.forEach((row) => {\n const rowObj = row+'_obj';\n if(row === EGridRowAction.DELETEBTN || row === EGridRowAction.EDITBTN){\n delete rowData[row];\n }\n else if (\n rowData[rowObj] &&\n typeof(rowData[rowObj]) === 'object'\n ) {\n delete rowData[rowObj];\n }\n });\n return rowData;\n }\n\n // convert row actions object into simple value\n setGridRowData(rowData){\n if(Array.isArray(rowData)){\n rowData.forEach((row)=>{\n row = this.setRowValue(row);\n })\n } else {\n rowData = this.setRowValue(rowData);\n }\n return rowData;\n }\n\n // get allowSave true row list\n getAllowSaveRowlist(rowsData: any[] = [], columns: IGridColumn[]) {\n rowsData = this.setDataFields(rowsData);\n columns.forEach((column: IGridColumn) => {\n let field = column?.field?.toLowerCase();\n rowsData.forEach((row)=>{\n row = this.removeRowObj(row, field, columns);\n })\n if (column.allowSave === false) {\n rowsData.forEach((row) => {\n let obj = Object.keys(row);\n if (obj?.length > 0) {\n obj.forEach((x) => {\n if (x.includes('_obj') && typeof row[x] === 'object') {\n delete row[x];\n }\n })\n }\n delete row[field];\n row = this.setRowValue(row);\n })\n } else if (column.formatter && column.type === EGridColumnType.BOOLEAN) {\n rowsData.forEach((row) => {\n let value = row[field]\n if (column.formatter === EGridFormatter.CHAR) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? 'Y' : 'N';\n } else if (column.formatter === EGridFormatter.NUMERIC) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? '1' : '0';\n } else if (column.formatter === EGridFormatter.BOOLEAN) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? true : false;\n }\n })\n } else if (column.type === EGridColumnType.DATE) {\n //convert date into time format\n rowsData.forEach((row) => {\n if (column.timeOnly && column.saveAsString) {\n row[field] = this.datepipe.transform(row[field], 'hh:mm a');\n } else if (!column.timeOnly && column.showTime) {\n row[field] = this.datepipe.transform(row[field], 'yyyy-MM-dd HH:mm:ss');\n } else if (row[field] && !column.timeOnly && column.saveAsString) {\n row[field] = row[field].toLocaleDateString();\n }\n })\n }\n })\n return rowsData;\n }\n\n // get allowSave true || undefine row\n getAllowSaveRow(rowInfo: {} = {}, columns: IGridColumn[]) {\n let row = { ...rowInfo };\n row = utilities.objConvertToLower(row);\n row = this.setRowValue(row);\n columns.forEach((column) => {\n let field = column?.field?.toLowerCase();\n row = this.removeRowObj(row, field, columns);\n if (column.allowSave == false) {\n const keys = Object.keys(row)\n keys.forEach((x) => {\n if (x.includes('_obj') && typeof row[x] === 'object') {\n delete row[x];\n }\n })\n const key = keys.find((x) => x.toLowerCase() === column.field?.toLowerCase());\n if (key) {\n delete row[key];\n }\n } else if (column.formatter && column.type === EGridColumnType.BOOLEAN) {\n let value = row[field]\n if (column.formatter === EGridFormatter.CHAR) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? 'Y' : 'N';\n } else if (column.formatter === EGridFormatter.NUMERIC) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? '1' : '0';\n } else if (column.formatter === EGridFormatter.BOOLEAN) {\n row[field] = value === true || value?.toString() === 'Y' || value?.toString() === '1' ? true : false;\n }\n } else if (column.type === EGridColumnType.DATE) {\n //convert date into time format\n if (column.timeOnly && column.saveAsString) {\n row[field] = this.datepipe.transform(row[field], 'hh:mm a');\n } else if (!column.timeOnly && column.showTime) {\n row[field] = this.datepipe.transform(row[field], 'yyyy-MM-dd HH:mm:ss');\n } else if (row[field] && !column.timeOnly && column.saveAsString) {\n row[field] = row[field].toLocaleDateString();\n }\n }\n })\n return row;\n }\n\n // remove obj, data and secondtype data from row\n removeRowObj(row, field, columns: IGridColumn[]){\n let keys = Object.keys(row);\n if(keys?.length > 0){\n keys.forEach((key)=>{\n if(key === field + '-data' || key === field + '_secondType' || key === field + '_obj'){\n delete row[key];\n }\n })\n }\n row = this.removeExtraNewRowObj(row, columns)\n return row;\n }\n\n removeExtraNewRowObj(row, columns: IGridColumn[]){\n const keys = Object.keys(row);\n if(columns?.length > 0 && keys?.length > 0){\n keys.forEach((key)=>{\n const matchKey = columns.some((column)=> column.field?.toLowerCase() === key?.toLowerCase())\n if(!matchKey){\n delete row[key];\n }\n })\n }\n return row;\n }\n\n // add simple grid column without\n addColumn(columnInfo: addColumn): IGridColumn {\n if (columnInfo.type === EGridColumnType.DROPDOWN) {\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n } else if (columnInfo.type === EGridColumnType.DIALOG) {\n if (!columnInfo.filtering && !columnInfo.filter) {\n columnInfo.filtering = false;\n }\n if (columnInfo.params && !columnInfo.data) {\n columnInfo.data = columnInfo.params;\n }\n }\n const column: IGridColumn = {\n allowToggle: columnInfo.allowToggle || false,\n allowSearch: columnInfo.allowSearch,\n allowAutoCompleteSave: columnInfo.allowAutoCompleteSave,\n uniqueKey: columnInfo.uniqueKey,\n field: columnInfo.field,\n header: columnInfo.header,\n style: columnInfo.style,\n type: columnInfo.type,\n format: columnInfo.format,\n data: columnInfo.data,\n filterValue:columnInfo.filterValue,\n filtering: columnInfo.filtering,\n hidden: columnInfo.hidden,\n sorting: columnInfo.sorting,\n filter: columnInfo.filter,\n hyperlink: columnInfo.hyperlink,\n tableAlias: columnInfo.tableAlias,\n linkId: columnInfo.linkId,\n minutesInterval: columnInfo.minutesInterval,\n params: columnInfo.params,\n showOption: columnInfo.showOption,\n displayText: columnInfo.displayText,\n target: columnInfo.target,\n disabled: columnInfo.disabled,\n allowSave: columnInfo.allowSave,\n allowEdit: columnInfo.allowEdit,\n editable: columnInfo.editable,\n editLink: columnInfo.editLink,\n saveAsString: columnInfo.saveAsString,\n component: columnInfo.component,\n onClick: columnInfo.onClick,\n onReturn: columnInfo.onReturn,\n onFocusOut: columnInfo.onFocusOut,\n onChange: columnInfo.onChange,\n aggregate: columnInfo.aggregate,\n formatter: columnInfo.formatter,\n permissions: columnInfo.permissions,\n optionLabel: columnInfo.optionLabel,\n optionValue: columnInfo.optionValue,\n dropDownProp: columnInfo.dropDownProp,\n showTime: columnInfo.showTime,\n timeOnly: columnInfo.timeOnly,\n lookupControl: columnInfo.lookupControl,\n displayField: columnInfo.displayField,\n icon: columnInfo.icon,\n color: columnInfo.color,\n id: columnInfo.id,\n value: columnInfo.value,\n validations: columnInfo.validations,\n };\n\n return column;\n }\n\n // Adding Report Button Function for Grid\n addReportBtn(columnInfo: IGridReportBtn) {\n columnInfo.type = EGridColumnType.REPORT;\n return columnInfo;\n }\n\n // add simple input grid column\n addInputColumn(\n filterColumnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n filterColumnInfo.filter = {\n type: GridFilterControlType.INPUT,\n showFilter: this.showFilterIcon(filterColumnInfo),\n };\n }\n return this.addColumn(filterColumnInfo);\n }\n\n // add simple numeric grid column without\n addNumericColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.NUMERICINPUT,\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n columnInfo.type = EGridColumnType.NUMERIC;\n return this.addColumn(columnInfo);\n }\n\n // add simple calendar grid column without\n addCalendarColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.CALENDAR,\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n columnInfo.type = columnInfo.type ? columnInfo.type : EGridColumnType.DATE;\n return this.addColumn(columnInfo);\n }\n\n setconfigdata(config: any) {\n let configData: any = {};\n if (config?.data && Object.keys(config?.data)?.length > 0) {\n configData = config;\n } else {\n this.route.queryParams.subscribe((param: any) => {\n if (param && Object.keys(param)?.length > 0) {\n configData['data'] = param;\n }\n })\n }\n return configData;\n }\n \n\n // add simple boolean grid column without\n addBooleanColumn(\n columnInfo: addColumn,\n showFilter: boolean = true\n ): IGridColumn {\n if (showFilter) {\n (columnInfo.type = EGridColumnType.BOOLEAN),\n (columnInfo.filter = {\n type: GridFilterControlType.CHECKBOX,\n showFilter: this.showFilterIcon(columnInfo),\n });\n }\n return this.addColumn(columnInfo);\n }\n\n // add LookUp column for Grid\n addLookUpColumn(columnInfo: IDialogColumn, showFilter: boolean = true): IGridColumn {\n if (showFilter) {\n columnInfo.filter = { type: GridFilterControlType.LOOKUP_INPUT, showFilter: this.showFilterIcon(columnInfo) };\n }\n columnInfo.type = EGridColumnType.LOOKUP_INPUT;\n return this.addColumn(columnInfo);\n}\n\n// add dialog column for Grid\n addDialogColumn(columnInfo: IDialogColumn, showFilter: boolean = true): IGridColumn {\n if (showFilter) {\n columnInfo.filter = { type: GridFilterControlType.INPUT, showFilter: this.showFilterIcon(columnInfo) };\n }\n columnInfo.type = EGridColumnType.DIALOG;\n return this.addColumn(columnInfo);\n }\n\n // add Button for grid column\n addButtonColumn(columnInfo: addColumn): IGridColumn {\n columnInfo.type = EGridColumnType.ADD_BUTTON;\n if (!columnInfo.field) {\n columnInfo.field = columnInfo.value ? columnInfo.value : columnInfo.icon;\n }\n return this.addColumn(columnInfo);\n }\n\n // add AutoComplete for grid column\n addAutoComplete(columnInfo: addColumn): IGridColumn {\n columnInfo.type = EGridColumnType.AUTOCOMPLETE;\n return this.addColumn(columnInfo);\n }\n\n // Search AutoComplete Data for Grid\n getAutoCompleteData(\n column?: any,\n uniqueKey?: string,\n filters?: any[],\n search: string = ''\n ): any {\n this.requestService\n .get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters })\n .subscribe((response: any) => {\n if (search) {\n let existInRecord = response.records?.some(\n (record) =>\n record[column.displayField] &&\n record[column.displayField]?.toString()?.toLowerCase() ===\n search?.toLowerCase()\n );\n if (!existInRecord) {\n response.records.unshift({ [column.displayField]: search });\n }\n }\n column.data = this.setDataFields(response.records);\n });\n }\n async addAutoCompleteValue(uniqueKey: IAutoCompleteSave, value:any, column:any, row:any) {\n let newValue = {}\n\n for(var i =0;i<uniqueKey.values.length; i++){\n if(uniqueKey.values[i].name.toLowerCase()==column.field?.toLowerCase()||uniqueKey.values[i].name.toLowerCase()==column.displayField?.toLowerCase()){\n newValue[uniqueKey.values[i].name]=value;\n \n }else{\n newValue[uniqueKey.values[i].name]=this.getSoftCodingValue(uniqueKey.values[i].value, row)\n } \n }\n\n\n this.requestService\n .get<any[], any>('/Data/Save', { uniqueKey:uniqueKey.name, values: newValue })\n .subscribe((response: any) => {\n ({error})=>{\n return error\n }\n return 'success';\n });\n }\n getSoftCodingValue(value, row){\n let returnValue;\n if(value.toString().includes('{')&&value.toString().includes('}')){\n value=value.replace(\"{\",\"\").replace(\"}\",\"\");\n let rowKeys = Object.keys(row);\n let key = rowKeys?.find((x) => x?.toLowerCase() === value?.toString()?.toLowerCase());\n returnValue=row[key];\n }else{\n returnValue=value\n }\n return returnValue;\n }\n\n // add simple dropdown grid column without\n addDropdownColumn(\n columnInfo: addColumn,\n showFilter: boolean = true,\n dropDownProp?: IDropDownRequest\n ): IGridColumn {\n columnInfo.type = EGridColumnType.DROPDOWN;\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.DROPDOWN,\n data:\n !columnInfo?.filter?.data && !dropDownProp && columnInfo.data\n ? columnInfo.data\n : columnInfo?.filter?.data\n ? columnInfo?.filter?.data\n : [],\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n if (dropDownProp) {\n columnInfo.dropDownProp = dropDownProp;\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters = dropDownProp.filters;\n if (uniqueKey && valueProp && labelProp) {\n return this.setDropdownData(\n columnInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters\n );\n }\n } else {\n return this.addColumn(columnInfo);\n }\n }\n // add MultiSelectDropDown grid column\n addMultiSelectDropDownColumn(\n columnInfo: addColumn,\n showFilter: boolean = true,\n multiSelectProp?: IDropDownRequest\n ): IGridColumn {\n columnInfo.optionLabel = columnInfo.optionLabel\n ? columnInfo.optionLabel\n : 'label';\n columnInfo.optionValue = columnInfo.optionValue\n ? columnInfo.optionValue\n : 'value';\n columnInfo.type = EGridColumnType.MULTISELECT;\n if (showFilter) {\n columnInfo.filter = {\n type: GridFilterControlType.MULTISELECT,\n data:\n !columnInfo?.filter?.data && !multiSelectProp && columnInfo.data\n ? columnInfo.data\n : columnInfo?.filter?.data\n ? columnInfo?.filter?.data\n : [],\n showFilter: this.showFilterIcon(columnInfo),\n };\n }\n if (multiSelectProp) {\n columnInfo.dropDownProp = multiSelectProp;\n let uniqueKey = multiSelectProp.uniqueKey;\n let valueProp = multiSelectProp.valueProp;\n let labelProp = multiSelectProp.labelProp;\n let filters = multiSelectProp.filters;\n if (uniqueKey && valueProp && labelProp) {\n return this.setDropdownData(\n columnInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters\n );\n }\n } else {\n return this.addColumn(columnInfo);\n }\n }\n\n showFilterIcon(columnInfo: addColumn) {\n if (columnInfo.filter && columnInfo.filter.showFilter) {\n return true;\n } else {\n return false;\n }\n }\n\n setDropdownData(\n column: IGridColumn,\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters: any[],\n row?: { [key: string]: any }\n ): Promise<any> | any {\n return this.dropdownService\n .setDropDownList(uniqueKey, valueProp, labelProp, filters)\n .then((res: any) => {\n if (row) {\n row[column.field + '_data'] = res;\n } else {\n column.data = res;\n if (column.filter && column.filter.type === 'dropdown') {\n column.filter.data = res;\n }\n }\n return this.addColumn(column);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n });\n }\n\n // add grid column with built-in filter\n addFilterColumn(filterColumnInfo: addFilterColumn): IGridColumn {\n const column: any = {\n field: filterColumnInfo.field,\n header: filterColumnInfo.header,\n filter: { type: filterColumnInfo.filter },\n filtering: filterColumnInfo.filtering,\n hidden: filterColumnInfo.hidden,\n style: filterColumnInfo.style,\n tableAlias: filterColumnInfo.tableAlias,\n permissions: filterColumnInfo.permissions,\n };\n\n return column;\n }\n\n // add date grid column with built-in filter\n addDateColumn(dateColumnInfo: addFilterColumn): IGridColumn {\n const column: IGridColumn = {\n field: dateColumnInfo.field,\n header: dateColumnInfo.header,\n type: dateColumnInfo.type ? dateColumnInfo.type : EGridColumnType.DATE,\n filtering: dateColumnInfo.filtering,\n filter: { type: GridFilterControlType.CALENDAR },\n format: dateColumnInfo.format,\n style: dateColumnInfo.style,\n tableAlias: dateColumnInfo.tableAlias,\n disabled: dateColumnInfo.disabled,\n allowSave: dateColumnInfo.allowSave,\n permissions: dateColumnInfo.permissions,\n component: dateColumnInfo.component,\n showTime: dateColumnInfo.showTime,\n timeOnly: dateColumnInfo.timeOnly,\n data: dateColumnInfo.data,\n hidden: dateColumnInfo.hidden,\n };\n return column;\n }\n\n setLookUpFilter(column: any, dialogService: any, globalFilterLookup: boolean = false) {\n if (column.lookupControl) {\n let dataValue: any[] = [];\n let dataKey: any[] = [];\n let data = column.lookupControl?.data?.data;\n const keys = Object.keys(data);\n if (data && keys?.length > 0) {\n keys.forEach((key) => {\n if (data[key].toString().includes('{')) {\n dataValue.unshift(data[key]);\n dataKey.unshift(key);\n data[key] = '';\n }\n });\n }\n const ref = dialogService.open(\n column.lookupControl.component,\n column.lookupControl.data\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (column.onReturn) {\n column.onReturn(res);\n }\n if (dataKey?.length > 0 && dataValue?.length > 0) {\n dataKey.forEach((key, keyIndex) => {\n dataValue.forEach((value, valueIndex) => {\n if (keyIndex === valueIndex) {\n data[key] = value;\n }\n });\n });\n }\n if (res) {\n document.getElementById('lookUp_filter')?.focus();\n let field = column.field;\n let value = utilities.setDialogResponse(\n column,\n column?.lookupControl,\n res\n );\n if(globalFilterLookup){\n if(typeof(value) === 'object'){\n column.valueTwo = value; \n }\n column.value = value?.value\n ? value.value\n : res[field.toLowerCase()];\n const globalFilterLookupInput = document.getElementById(column.field);\n globalFilterLookupInput.focus();\n }else{\n column.filterValue = value?.value\n ? value.value\n : res[field.toLowerCase()];\n }\n }\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n }\n\n // Set Hyperlink field as a param Value\n setFieldAsLinkParam(columns: any, field: string, response: any) {\n if (\n columns &&\n columns.length > 0 &&\n field &&\n response.records &&\n response.records.length > 0\n ) {\n this.setDataFields(response.records).forEach((res: any) => {\n let obj = columns.find((x: any) => x.field === field);\n if (obj && obj.params) {\n const keys = Object.keys(obj.params);\n keys.forEach((key: any) => {\n if (obj.params[key] && obj.params[key].toString().includes('{')) {\n let value = obj.params[key]\n .replace('{', '')\n .replace('}', '')\n .toLowerCase();\n obj.params[key] = res[value];\n }\n });\n }\n });\n }\n }\n\n hasAnyLinkColumn(columns: IGridColumn[]): boolean {\n return (\n columns &&\n columns.some(\n (x) =>\n x.type == EGridColumnType.LINK ||\n x.type == EGridColumnType.IFRAME ||\n x.type == EGridColumnType.DIALOG ||\n (x.linkId && x.type == EGridColumnType.LOOKUP_INPUT)\n )\n );\n }\n\n setHyperlinks(fetchResponse: any, columns: IGridColumn[]): any {\n let records: any = [];\n let data =\n fetchResponse && fetchResponse.records.length > 0\n ? this.setDataFields(fetchResponse.records)\n : [];\n let newRow: any;\n\n return this.hyperlinkService\n .addHyperlinks(columns)\n .then((linksResponse: any) => {\n data.forEach((row: any) => {\n newRow = { ...row };\n columns.forEach((col: any) => {\n let keys = Object.keys(row);\n if (col.type === EGridColumnType.DIALOG) {\n let field = col.field?.toLowerCase() + '_obj';\n newRow[field] = { ...col };\n newRow[field].displayText = col.displayText\n ? row[col.displayText.toLowerCase()]\n : row[col.field.toLowerCase()];\n if (col.data && col.data.data) {\n newRow[field].dialogData = utilities.findKeysAndValue(\n col.data.data,\n row\n );\n }\n }\n linksResponse.forEach((linkResponse: any) => {\n if (\n (col.type === EGridColumnType.LINK ||\n col.type === EGridColumnType.IFRAME ||\n col.type === EGridColumnType.LOOKUP_INPUT) &&\n col.linkId &&\n col.params &&\n col.linkId === linkResponse.linkId\n ) {\n const paramKeys: string[] = Object.keys(col.params);\n const link: any = utilities.setHyperlink(\n keys,\n row,\n linkResponse.url,\n paramKeys,\n col.params\n );\n\n let field = col.field?.toLowerCase() + '_obj';\n newRow[field] = { ...col };\n newRow[field].hyperlink = link;\n newRow[field].displayText = col.displayText\n ? row[col.displayText.toLowerCase()]\n : row[col.field.toLowerCase()];\n }\n });\n });\n records.push(newRow);\n });\n return records;\n });\n }\n\n // add grid global filter with built-in filter\n addGlobalFilter(globelFilterInfo: addGlobalFilter) {\n const column: addGlobalFilter = {\n field: globelFilterInfo.field,\n displayText: globelFilterInfo.displayText,\n validations: globelFilterInfo.validations,\n type: globelFilterInfo.type,\n data: globelFilterInfo.data,\n value: globelFilterInfo.value,\n valueTwo: globelFilterInfo.valueTwo,\n matchMode: globelFilterInfo.matchMode,\n operator: globelFilterInfo.operator,\n tableAlias: globelFilterInfo.tableAlias,\n optionLabel: globelFilterInfo.optionLabel,\n optionValue: globelFilterInfo.optionValue,\n onFocusOut: globelFilterInfo.onFocusOut,\n onReturn: globelFilterInfo.onReturn,\n filtering: globelFilterInfo.filtering,\n column: globelFilterInfo.column,\n dayRange: globelFilterInfo.dayRange,\n fromField: globelFilterInfo.fromField,\n toField: globelFilterInfo.toField,\n lookupControl: globelFilterInfo.lookupControl,\n allowSearch: globelFilterInfo.allowSearch,\n disabled: globelFilterInfo.disabled,\n hidden: globelFilterInfo.hidden,\n labelText: globelFilterInfo.labelText,\n prefix: globelFilterInfo.prefix,\n color: globelFilterInfo.color,\n format: globelFilterInfo.format,\n };\n return column;\n }\n\n // add global input filter\n addGlobalInputFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.INPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add global dropdown filter\n addGlobalDropdownFilter(\n globelFilterInfo: IGlobalFilter,\n dropDownProp?: IDropDownRequest\n ): any {\n globelFilterInfo.type = GridFilterControlType.DROPDOWN;\n if (dropDownProp) {\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters = dropDownProp.filters;\n let sorts = dropDownProp.sorts;\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(\n globelFilterInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters,\n sorts\n );\n }\n } else {\n return this.addGlobalFilter(globelFilterInfo);\n }\n }\n // add global MultiSelect dropdown filter\n addGlobalMultiSelectDropDownFilter(\n globelFilterInfo: IGlobalFilter,\n multiSelectProp?: IDropDownRequest\n ): any {\n globelFilterInfo.type = GridFilterControlType.MULTISELECT;\n if (multiSelectProp) {\n let uniqueKey = multiSelectProp.uniqueKey;\n let valueProp = multiSelectProp.valueProp;\n let labelProp = multiSelectProp.labelProp;\n let filters = multiSelectProp.filters;\n let sorts = multiSelectProp.sorts;\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(\n globelFilterInfo,\n uniqueKey,\n valueProp,\n labelProp,\n filters,\n sorts\n );\n }\n } else {\n return this.addGlobalFilter(globelFilterInfo);\n }\n }\n\n getDropdownData(\n fieldInfo: any,\n uniqueKey: string,\n valueProp: string,\n labelProp: string,\n filters: any,\n sorts: IGridSort[] = []\n ) {\n return this.dropdownService\n .setDropDownList(uniqueKey, valueProp, labelProp, filters, sorts)\n .then((res: any) => {\n fieldInfo.data = res;\n return this.addGlobalFilter(fieldInfo);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n return this.addGlobalFilter(fieldInfo);\n });\n }\n \n // add global filter Space Field\n addGlobalFilterSpaceField(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.SPACER;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add global boolean filter\n addGlobalBooleanFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.CHECKBOX;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add Range Filter for global Filter\n addRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.CALENDAR_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add Range Filter for global Filter\n addGlobalDateRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.DATE_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n \n // add Numeric Range Filter for global Filter\n addGlobalNumericRangeFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.NUMERIC_RANGE;\n return this.addGlobalFilter(globelFilterInfo);\n }\n // add Numeric input for global Filter\n addGlobalNumericInput(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.NUMERICINPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n // add LookUp Field for global Filter\n addGlobalLookupFilter(globelFilterInfo: addGlobalFilter) {\n globelFilterInfo.type = GridFilterControlType.LOOKUP_INPUT;\n return this.addGlobalFilter(globelFilterInfo);\n }\n\n //add calendar filter for global filter\n addGlobalDateFilter(globalFilterInfo: addGlobalFilter){\n globalFilterInfo.type=GridFilterControlType.CALENDAR;\n return this.addGlobalFilter(globalFilterInfo);\n }\n\n setDataFields(response: any, dataKey: string = \"\") {\n let data: any = [];\n if (response && response.length > 0) {\n response.map((x: any, index: number) => {\n if (Object.keys(x ?? {})?.length > 0) {\n const result: any = Object.keys(x)?.reduce(\n (prev, current) => ({\n ...prev,\n [current.toLowerCase()]: x[current],\n }),\n {}\n );\n if (\n dataKey &&\n dataKey.length > 0 &&\n !Object.keys(result)?.includes(dataKey)\n ) {\n result[dataKey] = index;\n }\n\n data.push(result);\n }\n });\n }\n return data;\n }\n\n setColumnFields(columns: any[]) {\n let column: any = [];\n if (columns && columns.length > 0) {\n columns.map((col: any) => {\n column.push({ ...col, field: col?.field?.toLowerCase() });\n });\n return column;\n }\n }\n\n // change linkId in edit mode, if changeLink is true then it change the edited row hyperlink value\n setLinkId(\n columns: IGridColumn[],\n field: string,\n linkId: string,\n record: any,\n users: any,\n params: any = null,\n changeLink: boolean = false\n ): any {\n if (columns && columns.length > 0) {\n columns.forEach((column: any) => {\n if (column.field?.toLowerCase() === field.toLowerCase()) {\n column.linkId = linkId;\n if (params) {\n column.params = params;\n }\n }\n });\n }\n\n this.setHyperlinks({ records: [record] }, columns).then((res: any) => {\n if (changeLink) {\n delete res[0][field.toLowerCase() + '_obj'];\n let index = users.findIndex(\n (i: any) => i[field.toLowerCase()] === record[field.toLowerCase()]\n );\n if (index !== -1) {\n if (users[index][field + '_obj']) {\n users[index][field + '_obj'].hyperlink =\n res[0][field + '_obj'].hyperlink;\n }\n }\n }\n });\n }\n\n // set grid data and set selected row based on selection value\n setDataWithSelectedRow(records: any, configData: any) {\n if ((configData?.valueProp || configData?.labelProp) && configData.data.selection) {\n records.forEach((record: any) => {\n Object.keys(record)?.forEach((key) => {\n if (key.toLowerCase() === configData.labelProp ? configData.labelProp?.toLowerCase() : configData.valueProp?.toLowerCase()) {\n if (\n configData.data.value &&\n record[key] === configData.data.value\n ) {\n record['highlightRow'] = true;\n } else if (record[key]?.toString() === configData.data.selection?.toString()) {\n record['highlightRow'] = true;\n }\n }\n });\n });\n }\n\n return records;\n }\n\n setTableAlias(field: string, columns: IGridColumn[]) {\n if (columns && columns.length > 0) {\n const column = columns.find(\n (x: any) => x.field?.toLowerCase() == field?.toLowerCase()\n );\n\n if (column != null && column.tableAlias && column.tableAlias.length > 0) {\n return column.tableAlias;\n }\n }\n\n return '';\n }\n\n setGridPropValues(\n columns: IGridColumn[],\n props: IGridProp[],\n filter?: IGridPropFilter,\n records?: any[]\n ) {\n if (columns && columns.length > 0 && props && props.length > 0) {\n let isMatched: boolean = false;\n if (filter && filter.field && records && records.length > 0) {\n isMatched = records.some(\n (x) =>\n utilities.objConvertToLower(x)[filter.field.toLowerCase()] ===\n filter.value\n );\n }\n props.map((prop: IGridProp) => {\n let col: any = {};\n if (prop.field && !isMatched && !filter?.field) {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === prop.field?.toLowerCase()\n );\n } else if (isMatched) {\n if (prop.field) {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === prop.field?.toLowerCase()\n );\n } else {\n col = columns.find(\n (column) =>\n column.field?.toLowerCase() === filter?.field?.toLowerCase()\n );\n }\n }\n if (col && col.hasOwnProperty(prop.name)) {\n col[prop.name] = prop.value;\n }\n });\n }\n }\n\n // set grid row propValues\n setGridRowPropValue(row: { [key: string]: any }, props: IGridRowProp[], columns: IGridColumn[] = []) {\n props?.forEach((prop) => {\n if (prop.propName && (prop.propValue || prop.propValue === false || prop.propValue === '')) {\n if (prop.field) {\n let fieldName = Object.keys(row)?.find((key) => key?.toLowerCase() === prop?.field?.toLowerCase());\n let fieldNameObj = fieldName?.includes('_obj') ? fieldName?.toLowerCase() : fieldName?.toLowerCase() + '_obj';\n if (!fieldName) {\n const rowObj = prop?.field?.toLowerCase() + '_obj';\n fieldNameObj = Object.keys(row)?.find((key: any) => (key?.toLowerCase() === rowObj) && (row[rowObj]?.type === EGridColumnType.DIALOG || row[rowObj]?.type === EGridColumnType.IFRAME || row[rowObj]?.type === EGridColumnType.LINK));\n if (fieldNameObj) {\n fieldName = fieldNameObj;\n }\n }\n if (fieldName) {\n if (Object.keys(row)?.includes(fieldNameObj)) {\n row[fieldNameObj] = { ...row[fieldNameObj], text: row[fieldName], [prop.propName]: prop.propValue };\n } else {\n row[fieldNameObj] = { text: row[fieldName], [prop.propName]: prop.propValue };\n }\n } else if (columns?.some((column) => column.field?.toLowerCase() === prop?.field?.toLowerCase())) {\n const propField = prop.field?.toLowerCase();\n const propFieldObj = propField + '_obj';\n if (Object.keys(row)?.includes(fieldNameObj)) {\n row[propFieldObj] = { ...row[propFieldObj], text: row[prop.field], [prop.propName]: prop.propValue };\n } else {\n row[propFieldObj] = { text: row[prop.field], [prop.propName]: prop.propValue };\n }\n };\n } else {\n if (prop?.action === EGridRowAction.DELETEBTN) {\n row[prop.action] = prop.propValue;\n }\n else if (prop?.action === EGridRowAction.EDITBTN) {\n row[prop.action] = prop.propValue;\n }\n }\n }\n });\n return row;\n }\n\n // remove the rowActions from the records\n removeRowActions(records) {\n if (records?.length > 0) {\n records.forEach((row) => {\n if (row.rowAction) {\n delete row['rowAction'];\n }\n });\n }\n return records;\n }\n}","export interface IUserInfo {\n id: number;\n username: string;\n isADUser: boolean;\n token: string;\n activities: string[];\n roles: IUserRole[];\n }\n \n export interface IUserRole {\n id: number;\n code: string;\n name: string;\n description: string;\n }\n \n export interface IPermission {\n type: EPermissionType;\n roles: string[];\n }\n \n export enum EPermissionType {\n EDIT = 'edit',\n VIEW = 'view',\n DELETE = 'delete',\n ADDROW = 'addRow',\n CRUD = 'crud',\n }\n ","import { Injectable } from '@angular/core';\nimport { IUserInfo } from '../models/user-info.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n userInfoKey: string = 'CurrentUserInfo';\n\n login(response: any): boolean {\n if (response) {\n localStorage.setItem(this.userInfoKey, JSON.stringify(response.data));\n return true;\n } else {\n return false;\n }\n }\n\n getUserInfo() {\n return JSON.parse((localStorage.getItem(this.userInfoKey)) as any);\n }\n\n getUserRoles() {\n let roles: any = [];\n let userInfo: IUserInfo = this.getUserInfo();\n if (userInfo && userInfo.roles && userInfo.roles.length > 0) {\n roles = userInfo.roles.map((x) => x.name);\n }\n return roles;\n }\n\n isAuthenticated(): boolean {\n return this.getUserInfo() ? true : false;\n }\n\n logout() {\n // setting Function for removing the Grid Filters When User logout. \n let keys = Object.keys(localStorage);\n if(keys && keys.length > 0){\n keys.forEach((key)=>{\n if(key.includes('SetFilters-')){\n localStorage.removeItem(key);\n }\n });\n }\n // removing the UserName & Password When User logout.\n localStorage.removeItem(this.userInfoKey);\n }\n}\n","import { Component, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'se-iframe',\n templateUrl: './iframe.component.html',\n styleUrls: ['./iframe.component.scss']\n})\nexport class IframeComponent implements OnInit,OnDestroy {\n url: any;\n id:string='';\n\n constructor(\n private sanitizer: DomSanitizer,\n @Optional() public ref: DynamicDialogRef,\n @Optional() public config: DynamicDialogConfig\n ) {}\n\n ngOnInit(): void {\n this.loadIFrameData();\n }\n\n ngOnDestroy() {\n if(this.id){\n const url: any = document.getElementById(this.id);\n this.ref.close(url.contentWindow.location.href);\n }\n }\n\n loadIFrameData(){\n if (this.config.data && this.config.data.value && this.config.data.iFrameId) {\n this.url = this.sanitizer.bypassSecurityTrustResourceUrl(\n this.config.data.value\n );\n this.id = this.config.data.iFrameId;\n\n }\n }\n\n iframeLoaded(){\n let iframeEl: any = document.querySelector(\".p-dialog-content iframe\");\n\n if(iframeEl){\n iframeEl.contentWindow.document.body.classList.add(\"v-scrollbar\");\n }\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { RequestService } from './request.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PageLoggerService {\n\n constructor(private requestService: RequestService) { }\n \n // save page logger info\n savePageLoggerInfo(currentRoute, componentName: string = '') {\n this.requestService\n .get<any[], any>(\"/PageLogger/Save\", { pageName: componentName, Url: currentRoute })\n .subscribe(\n (data) => {\n return data;\n },\n (error) => {}\n );\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnChanges,\n Optional,\n ElementRef,\n ViewChildren,\n QueryList,\n SimpleChanges,\n ViewChild,\n HostListener,\n OnDestroy,\n} from '@angular/core';\nimport { ConfirmationService } from 'primeng/api';\nimport {\n DynamicDialogRef,\n DynamicDialogConfig,\n DialogService,\n} from 'primeng/dynamicdialog';\nimport { saveAs } from 'file-saver';\nimport jsPDF from 'jspdf';\nimport { GridService } from '../../../services/grid.service';\nimport {\n IGridColumn,\n IGridSort,\n IGridServerSideEvent,\n IGridPaginationEvent,\n IGlobalFilter,\n IGridFilter,\n IGridColumnAction,\n IGridRowAction,\n EGridSelectionType,\n EGridColumnType,\n EGridSortDirection,\n IGridDataExport,\n EGridAggregate,\n EGridFormatType,\n IGridFilterInfo,\n EGridRowAction,\n EGridValidator,\n GridFilterControlType,\n} from '../../../models/grid.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { AlertService } from '../../../services/alert.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport { WorkSheet } from 'xlsx';\nimport { DatePipe, DecimalPipe } from '@angular/common';\nimport { autoSetLookupData, currentUrl, draggableDialog, objConvertToLower, setDialogResponse, setMinutesInterval, setTimeInDate } from '../../../services/utilities.service';\nimport { Table } from 'primeng/table';\nimport { EFormatType } from '../../../models/form.model';\nimport { Router } from '@angular/router';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { Subscription, interval } from 'rxjs';\n\n@Component({\n selector: 'se-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n})\nexport class GridComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChildren('gridRow') gridRow: QueryList<ElementRef>;\n @Output() inlineRowCancel = new EventEmitter();\n @Input() set activeTestMode(val: any) {\n if (val === true) {\n debugger;\n }\n }\n serverFilters: IGridServerSideEvent = {};\n rowsData: any[] = [];\n rowsDataCopy: any[] = [];\n roles: string[] = [];\n isColumnHidden: boolean = false;\n rowClickData: IGridColumn;\n componentTableRef: any;\n lookupFilterObj: any;\n checklist: any[] = []\n lookupBlur: boolean = true;\n globalFiltersArray: any[] = [];\n checkAction: boolean = false;\n calenderPreviousValue: string = '';\n gridFilterObj: IGridFilterInfo;\n defaultDate: any;\n gridfilter: any;\n dropDownFilter: any = {};\n dropdownInput: boolean = false;\n saveAllRecord: boolean = false;\n generateRowsDataCopy: boolean = true;\n editAllRecord: boolean = false;\n cancelAllRecords: boolean = false;\n addNewRowCheck: boolean = false;\n inEditMode: boolean = false;\n saveRecordArray: any[] = [];\n disabledSaveBtn: boolean = false;\n isCheckBoxChangeEventCalled: boolean = false;\n isSelectedAllRows: boolean = false;\n Checked: boolean = true\n unChecked: boolean = false\n editModeChecked: boolean = true;\n editModeunCkecked: boolean = false;\n calendarFormat: string = 'mm/dd/y';\n setDropdownFilter: boolean = true;\n reloadPage: Subscription;\n setDropdowndataValue: boolean = true;\n showFilterbtn: boolean = false;\n \n hideEditAllRowsBtn: boolean = true;\n\n //apply Add/Delete/Edit prop for the grid permission\n addRowPermission: boolean = true;\n deleteRowPermission: boolean = true;\n editRowPermission: boolean = true;\n\n // Apply prop setAggregateFooter on Footer of the Table for aggregate.\n setAggregateFooter: string = '';\n\n // Boolean prop to allow Hide Aggregate Footer When Aggregate not Apply on Table.\n aggregateFooter: boolean = false;\n\n // Maintains previous state of rows being edited\n editRowsRecords: { [key: string]: any } = {};\n\n // Maintains record of rows being edited\n editingRowKeys: { [key: string]: any } = {};\n currentUrl: string = currentUrl();\n\n @ViewChild('dt') table: Table;\n\n // Selects items in the grid based on passed on data\n @Input() selectedRows: any = [];\n\n @Input() setGridRefreshTime: number = 0;\n\n @Input() addDataKeyValue = false;\n\n private globalData: IGridFilter[] = [];\n\n sortDisabled: boolean = false;\n\n @Input() public showRefreshBtn: boolean = false;\n\n @Input() public hideRefreshBtn: boolean = true;\n\n // Stores selected columns\n private _selectedColumns: IGridColumn[] = [];\n visibleColumns: IGridColumn[] = [];\n // Boolean prop to allow horizontal Scroll on Table.\n @Input() horizontalScroll: boolean = false;\n\n // Boolean prop to hide the delete row button.\n @Input() hideDeleteBtn = false;\n\n // Boolean prop to hide the edit row button.\n @Input() hideEditBtn = false;\n\n // Boolean prop to hide the add row button.\n @Input() hideAddBtn = false;\n\n // Prop to handle loader of grid\n @Input() public loading = false;\n\n //this property is used to handle server side event by default it is true when it false server side event will not be called\n @Input() autoLoadData: boolean = true;\n\n // Boolean prop to check where selected is allowed or not.\n @Input() allowSelection = false;\n\n // Set column width of selected row.\n @Input() selectionColumnWidth: string = '80px';\n\n // set selection checkBox header\n @Input() allowSelectionHeader: string = '';\n\n // Boolean prop to hide the save button on top of grid.\n @Input() hideGridSaveButton = false;\n\n // Boolean prop to hide the save button on top of grid.\n @Input() hideGridCancelButton = false;\n\n // Boolean prop to allow export to pdf.\n @Input() allowExportToPdf = false;\n\n // Boolean prop to allow export to excel.\n @Input() allowExportToExcel = false;\n\n // Boolean prop to set the action column as first column.\n @Input() setActionColumnAsFirst = false;\n\n // If true, enables options to perform CRUD using inline row functionality\n @Input() useInlineCRUD = false;\n\n // Array of row actions\n @Input() rowActions: IGridRowAction[] = [];\n\n // Sets selection type i.e: single/multiple selection\n @Input() selectionType: EGridSelectionType = EGridSelectionType.SINGLE;\n\n // Unique key requires for built-in row selection of primeNg grid\n @Input() dataKey: string = 'id';\n\n // Flag for clear filter values button\n @Input() clearGridFilter = true;\n\n // Flag for search filter values button\n @Input() searchGridFilter = true;\n\n // Flag in case table is scrollable\n @Input() scrollable = true;\n\n // Sets scroll height for the table\n @Input() scrollHeight = '80vh';\n\n // Boolean prop to allow to wrap or unWrap the grid.\n @Input() wordWrap: boolean = false;\n\n @Input() newGridRow: any = {};\n\n @Input() filtering = true;\n\n @Input() reportButtons: any[] = [];\n\n @Input() rowHover: boolean = false;\n\n @Input() hideFilterOptions: boolean = false;\n\n // Sets pagenation for the table Data.\n @Input() setPaginationLength: any[] = [5, 10, 15, { showAll: 'All' }];\n\n // set the change in the rowData\n @Output() rowsChange: EventEmitter<any> = new EventEmitter();\n\n /**\n * Stops the loader and sets the data to grid\n * Clears the editing stack\n * Scrolls to selected element if selection found\n */\n @Input() set rows(data: any[]) {\n this.loading = false;\n if (!this.isCheckBoxChangeEventCalled) {\n if (data && data.length > 0) {\n if (!this.dataKey) {\n this.dataKey = 'id';\n }\n if (data?.length > 50 && !this.pagination) {\n const rowsData = this.gridService.setDataFields(data, this.dataKey);\n const initializeData = [...rowsData];\n this.rowsData = initializeData.splice(1, 40);\n setTimeout(() => {\n this.rowsData = rowsData;\n }, 100);\n } else {\n this.rowsData = this.gridService.setDataFields(data, this.dataKey);\n }\n this.editRowsRecords = {};\n\n if (this.selectedRows) {\n setTimeout(() => {\n const selectedElementRef = this.gridRow.find(\n (x) => x.nativeElement.id === this.selectedRows[this.dataKey]\n );\n selectedElementRef &&\n (\n selectedElementRef.nativeElement as HTMLTableRowElement\n ).scrollIntoView({ behavior: 'smooth' });\n }, 0);\n }\n\n //manipulate checkbox string value to true and false.\n this.changeCheckboxStringValue();\n } else {\n this.rowsData = [];\n }\n }\n }\n\n // Global filter server request\n @Input() set globalFilterData(globalFilters: IGlobalFilter[]) {\n this.globalData = this.gridService\n .prepareGlobalFilters(globalFilters)\n ?.filter((x) => x?.value !== false);\n const serverFilterValues = JSON.parse(JSON.stringify(this.serverFilters));\n serverFilterValues.filters = this.serverFilters.filters\n ? this.serverFilters.filters.concat(this.globalData)\n : this.globalData;\n\n if (localStorage.getItem('applyFilter') === 'false') {\n this.globalFiltersArray = this.globalFiltersArray?.length > 0\n ? this.globalFiltersArray.concat([...serverFilterValues.filters])\n : this.globalFiltersArray;\n }\n if (localStorage.getItem('applyFilter') === 'true') {\n globalFilters.forEach((globalFilter) => {\n this.globalFiltersArray.forEach((filterArray) => {\n if (\n filterArray.field === globalFilter.field &&\n globalFilter.value &&\n filterArray.value !== globalFilter.value\n ) {\n filterArray.value = globalFilter.value;\n }\n const findIndex = this.globalFiltersArray.findIndex(\n (index) => index.field === globalFilter.field && !globalFilter.value\n );\n if (findIndex !== -1) {\n this.globalFiltersArray.splice(findIndex, 1);\n }\n });\n });\n\n this.loading = this.autoLoadData;\n // setTimeout(() => {\n if (this.gridService.applyFilterEvent || this.autoLoadData) {\n this.onApplyFilter.emit();\n }\n if (this.globalFiltersArray && this.globalFiltersArray.length > 0) {\n serverFilterValues.filters = serverFilterValues.filters.concat(\n this.globalFiltersArray\n );\n }\n serverFilterValues.filters = Array.from(\n new Set(\n serverFilterValues.filters\n .reverse()\n .map((filter: any) => filter.field)\n )\n ).map((field) => {\n return serverFilterValues.filters.find((x: any) => x.field === field);\n });\n serverFilterValues.filters = serverFilterValues.filters.filter(\n (obj: any) =>\n obj?.value && obj.value?.toString()?.length > 0 && obj.field\n );\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = serverFilterValues;\n if (this.gridService.applyFilterEvent || this.autoLoadData === true) {\n // setting pagination page as first\n serverFilterValues.page = 1;\n this.autoLoadData = true;\n if (this.defaultRows && this.pagination) {\n serverFilterValues.pageSize = this.defaultRows;\n }\n if (this.gridService.applyFilterEvent) {\n this.isCheckBoxChangeEventCalled = false;\n this.onServerSideEventChange.emit(serverFilterValues)\n }\n localStorage.removeItem('applyFilter');\n // setting pagination page number UI\n this.table._first = 0;\n }\n // }, 300);\n }\n }\n\n // Input decorator to receive columns to be displayed in header\n @Input() columns: IGridColumn[] = [];\n\n @Input() permissions: IPermission[] = [];\n\n // Optional prop to handle toggling of columns\n @Input() allowColumnToggle = false;\n\n // Optional prop to hide filtering of columns\n @Input() hideFilter = false;\n\n // Optional prop to handle lookup filters\n @Input() lookupFilters = false;\n\n // Optional prop to handle pagination\n @Input() pagination = false;\n\n // Optional prop to handle show CurrentPage Report\n @Input() showCurrentPageReport = false;\n\n // Displays total number of records\n @Input() totalRecords = 0;\n\n // Displays aggregate that fetch from records\n @Input() aggregatedResult: any[] = [];\n\n @Input() showconfirmDialog: boolean = true;\n\n @Input() saveAllData: boolean = false;\n\n // Sets number of rows to be shown the grid\n @Input() defaultRows:number = 0;\n \n @Input() columnActions: IGridColumnAction[] = [];\n\n // Decides the grid's behavior either for client side or server side events\n @Input() useServerSideEvents = false;\n\n // Output event to handle row click\n @Output() onRowClick: EventEmitter<any> = new EventEmitter();\n\n // Output event emit when click on grid checkbox filter\n @Output() onCheckBoxFilterClick: EventEmitter<any> = new EventEmitter();\n\n // Output event to handle row CheckBox\n @Output() onRowCheckBox: EventEmitter<any> = new EventEmitter();\n\n // Output event to trigger on sort change\n @Output() onSortChange: EventEmitter<IGridSort> = new EventEmitter();\n\n // Output event to trigger on filter change\n @Output() onFilterChange: EventEmitter<any> = new EventEmitter();\n\n // Output event to invoke the multiSelection click event\n @Output() onMultiSelectionChange: EventEmitter<any> = new EventEmitter();\n\n // Calls whenever a grid and globalFilters called\n @Output() onApplyFilter: EventEmitter<any> = new EventEmitter();\n\n //set header checkbox value for getting all columns on stay admin\n @Output() isIncludedAllColumns: EventEmitter<any> = new EventEmitter();\n\n // Calls whenever a lazy event is dispatched\n @Output()\n onServerSideEventChange: EventEmitter<IGridServerSideEvent> =\n new EventEmitter();\n\n // Output event to trigger on pagination\n @Output()\n onPageChange: EventEmitter<IGridPaginationEvent> = new EventEmitter();\n\n // Dispatch output event trigger on edit row\n @Output() onRowUpdate = new EventEmitter();\n\n // Dispatch output event trigger cancel all rows\n @Output() onCancelAllRows = new EventEmitter();\n\n // Dispatch output event trigger on delete row\n @Output() onRowDelete = new EventEmitter();\n\n //Dispatch output event trigger on add row\n @Output() onRowAdd = new EventEmitter();\n\n //Dispatch output event trigger on add, update and delete row\n @Output() onGridRowActions = new EventEmitter();\n\n // set property allowCaching for LocalStorage\n @Input() allowCaching: boolean;\n\n // set property softCaching for setting the values of gridFilter\n @Input() softCaching: boolean = true;\n\n @Input() editAllRows: boolean = false;\n\n // set the row When Edit the row on Grid\n @Output() onGridRowEdit = new EventEmitter();\n\n // set the row When adding the new Row on Grid\n @Output() onGridRowAdd = new EventEmitter();\n\n isGridHidden: boolean = false;\n \n rowsPerPageOptions: any[] = [5, 10, 15, { showAll: 'All' }];\n\n constructor(\n public dialogService: DialogService,\n private gridService: GridService,\n private alertService: AlertService,\n private authService: AuthenticationService,\n private elementRef: ElementRef,\n public decimalPipe: DecimalPipe,\n private pageLoggerService: PageLoggerService,\n private cd: ChangeDetectorRef,\n private router: Router,\n private datePipe: DatePipe,\n public confirmationService: ConfirmationService,\n @Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef\n ) { }\n\n get selectedColumns(): IGridColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: IGridColumn[]) {\n this._selectedColumns = this.columns?.filter((col) => val.includes(col));\n }\n\n // browser close event\n @HostListener('window:beforeunload', ['$event'])\n beforeunloadHandler(event: any) {\n if (this.gridService.columnFocusedOut) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void {\n // automatically reload grid after 9 seconds.\n if (this.setGridRefreshTime) {\n this.refreshGrid();\n }\n\n if (this.onRowUpdate?.observers?.length == 0) {\n this.hideEditBtn = true;\n }\n\n if (this.editAllRows && this.onRowDelete.observers.length == 0) {\n this.disabledSaveBtn = true;\n }\n\n this.componentTableRef = this.table;\n setTimeout(() => {\n this.setNumericValues();\n }, 500);\n }\n\n ngOnDestroy() {\n this.refreshGridTerminator()\n }\n\n // apply user role permissions on grid columns\n applyColumnsPermissions() {\n if (this.columns) {\n let totalFields: number = 0;\n let hiddenFields: number = 0;\n\n this.columns.forEach((column: IGridColumn) => {\n let permissions: IPermission[] = column.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n column.disabled = true;\n } else {\n column.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n column.hidden = false;\n column.disabled = false;\n }\n }\n }\n });\n }\n totalFields++;\n if (column.hidden) {\n hiddenFields++;\n }\n });\n\n this.isColumnHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n\n // apply global permissions on entire grid\n applyGridPermissions() {\n if (this.permissions && this.permissions.length > 0) {\n let hasValidEditPermission = false;\n\n // check if any column has any permission\n let hasColumnPermissions = this.columns?.some(\n (x) => x?.permissions && x.permissions.length > 0\n );\n\n this.permissions.forEach((permission) => {\n let isValid: boolean = false;\n\n permission.roles.forEach((role) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n\n if (permission.type === EPermissionType.CRUD && !isValid) {\n this.useInlineCRUD = false;\n }\n else if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n this.useInlineCRUD = true;\n if (!isValid && !hasColumnPermissions) {\n this.isGridHidden = true;\n this.useInlineCRUD = false;\n }\n } else if (permission.type === EPermissionType.EDIT && !isValid) {\n this.isGridHidden = false;\n hasValidEditPermission = true;\n this.editRowPermission = false;\n } else if (permission.type === EPermissionType.DELETE && !isValid) {\n this.deleteRowPermission = false;\n } else if (permission.type === EPermissionType.ADDROW && !isValid) {\n this.addRowPermission = false;\n }\n });\n }\n if (this.onRowAdd.observers.length == 0) this.addRowPermission = false;\n if (this.onRowDelete.observers.length == 0) this.deleteRowPermission = false;\n }\n\n ngOnChanges(change: SimpleChanges) {\n if (!this.isCheckBoxChangeEventCalled) {\n if (this.allowCaching !== false && this.pagination) {\n this.allowCaching = this.pagination;\n } else if (this.componentTableRef?.id) {\n localStorage.removeItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl);\n }\n // add defaultRow in pagination array\n if (!this.setPaginationLength.includes(this.defaultRows)) {\n this.setPaginationLength.unshift(this.defaultRows);\n }\n const hasColumns: boolean = this.columns && this.columns.length > 0;\n if (hasColumns) {\n this.columns = this.gridService.setColumnFields(this.columns)\n // this.columns = this.gridService.setColumnFields(this.columns?.filter((x) => (!x.hidden || x.allowToggle)));\n }\n\n this.roles = this.authService.getUserRoles();\n\n // apply user role permissions on grid columns\n this.applyColumnsPermissions();\n\n // apply global permissions on entire grid\n this.applyGridPermissions();\n this._selectedColumns = this.columns?.filter((x) => !x.hidden)// || x.allowToggle);\n this.cd.detectChanges();\n\n if (hasColumns) {\n this.columns = this.gridService.setColumnFields(this.columns);\n // checking filter exist or not\n const filter = this._selectedColumns.some(\n (column) => column.filtering === undefined || column.filtering === true\n );\n if (filter === false) {\n this.hideFilter = true;\n }\n\n\n this.columns.forEach((column: any) => {\n // set isRequired true for required column to show astric in column header\n if (column.validations?.find(validation => validation.type == EGridValidator.REQUIRED)) {\n column.isRequired = true;\n }\n // set numeric null or undefine data default value\n if ((column.type === EGridColumnType.NUMERIC || column.type === EGridColumnType.BOOLEAN || column.type === EGridColumnType.TEXT || column.type === undefined || column.type === EGridColumnType.DATE || column.type === EGridColumnType.DROPDOWN) && column.value && this.rowsData?.length > 0) {\n this.rowsData.forEach((row) => {\n if (column.value && (row[column.field] === null || row[column.field] === undefined)) {\n row[column.field] = column.value;\n }\n })\n }\n\n // convert string time into the date\n if (column.type === EGridColumnType.DATE) {\n if (column.timeOnly === true) {\n this.rowsData.forEach((row) => {\n if (\n row[column.field] &&\n (row[column.field].toString().includes('PM') ||\n row[column.field].toString().includes('AM'))\n ) {\n row[column.field] = setTimeInDate(row[column.field]);\n }\n });\n } else if (!column.minutesInterval) {\n this.rowsData.forEach((row: any) => {\n if (row[column.field]) {\n row[column.field] = new Date(row[column.field] as string);\n }\n });\n }\n }\n // set filter value\n if (column.filter && column.filterValue && column.filtering !== false) {\n this.setFilterFocusOut(column);\n }\n\n // set DisplayText when value is in curly brackets.\n this.setDisplayTextValue(column);\n\n //Aggregate scenario\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n\n let searchFilters;\n if (!this.softCaching && this.componentTableRef?.id) {\n searchFilters = JSON.parse(\n localStorage.getItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl) as any\n );\n } else if (this.componentTableRef?.id) {\n searchFilters = this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl];\n }\n if (\n !this.hideFilter &&\n searchFilters &&\n searchFilters.filters &&\n searchFilters.filters?.length > 0\n ) {\n searchFilters.filters.forEach((x: any) => {\n if (x.field === column.field) {\n if (column?.filter?.type === 'calendar' && x.value) {\n column.filterValue = new Date(this.datePipe.transform(x.value, 'MM-dd-YY') as string);\n } else if (column.type === EGridColumnType.BOOLEAN) {\n column.filterValue = x.value;\n } else if (x.value) {\n column.filterValue = x.value;\n }\n }\n });\n }\n // converting displayField toLowercase\n if (column.displayField) {\n column.displayField = column.displayField.toLowerCase();\n }\n // set AutoComplete Data\n if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n this.rowsData &&\n this.rowsData?.length > 0\n ) {\n this.rowsData.forEach((row) => {\n // convert string that contains comma into arrays\n if (row[column.field]?.toString().includes(';')) {\n row[column.field] = row[column.field]\n ?.toString()\n .split(';')\n ?.map((value: any) => ({ [column.displayField?.toLowerCase()]: row[column.displayField], [column.optionLabel?.toLowerCase()]: value, [column.field?.toLowerCase()]: value }));\n }\n const key: any = Object.keys(row).find((x) => x === column.field.toLowerCase());\n // convert simple string into array\n if (!Array.isArray(row[key]) && row[key]) {\n if (column.displayField) {\n row[key] = [{ [column.displayField?.toLowerCase()]: row[column.displayField], [column.field?.toLowerCase()]: row[key] }];\n } else {\n if (column.optionLabel) {\n row[key] = [{ [column.field?.toLowerCase()]: row[key], [column.optionLabel?.toLowerCase()]: row[key] }];\n } else {\n row[key] = [{ [column.field?.toLowerCase()]: row[key] }];\n }\n }\n }\n });\n }\n\n //when we add a new row, it set the default value\n if (column.value) {\n let key = Object.keys(this.newGridRow).find((x) => x?.toLowerCase() === column.field?.toLowerCase())\n if (!key) {\n this.newGridRow[column.field] = column.value;\n }\n }\n });\n\n // Searching scenario\n if (change.rows?.currentValue && change.columns?.currentValue) {\n // Checks either column value is changes (i.e., column hidden scenario)\n if (\n JSON.stringify(change.columns.currentValue).toLowerCase() !==\n JSON.stringify(this.columns).toLowerCase()\n ) {\n this._selectedColumns = [];\n this.columns.forEach((x, i) => {\n if (!x.hidden) {\n if (this.selectedColumns[i]) {\n x.value = this.selectedColumns[i].value;\n }\n this._selectedColumns.push(x);\n }\n });\n }\n } else {\n this._selectedColumns = [];\n this.columns.forEach((x, i) => {\n if (!x.hidden) {\n if (this.selectedColumns[i]) {\n x.value = this.selectedColumns[i].value;\n }\n this._selectedColumns.push(x);\n }\n });\n }\n\n setTimeout(() => {\n const globalFilterBtn = document.getElementById('searchGlobalFilterBtn');\n if(globalFilterBtn){\n this.showFilterbtn = true;\n }\n const classElement = document.getElementsByClassName('highlighted-row');\n if (classElement.length > 0) {\n classElement[0].scrollIntoView();\n }\n\n if (this.editAllRows && this.rowsData?.length > 0 && this.columns?.length > 0) {\n this.editAllRowsAtOnce();\n }\n }, 500);\n }\n this.setDropdowndataValue = true;\n const globalSearchbtn = document.getElementById('globalSearchbtn');\n if (globalSearchbtn) {\n this.searchGridFilter = false;\n }\n if (this.rowsData?.length > 0 && this.generateRowsDataCopy) {\n this.rowsDataCopy = JSON.parse(JSON.stringify(this.rowsData));\n }\n }\n\n this.isCheckBoxChangeEventCalled = false;\n }\n\n autoCompleteSelectedValue(row: any, column: IGridColumn, value) {\n if (column.optionLabel) {\n const valueKey = column.optionValue ? column.optionValue : column.field;\n row[column.field] = [...row[column.field], {\n [column.optionLabel?.toLowerCase()]: value[column.optionLabel?.toLowerCase()], [valueKey?.toLowerCase()]: value[valueKey?.toLowerCase()],\n [column.field?.toLowerCase()]: value[valueKey?.toLowerCase()]\n }];\n const index = row[column.field]?.findIndex((x) => JSON.stringify(x) === JSON.stringify(value));\n row[column.field].splice(index, 1);\n }\n }\n\n // set DisplayText when value is in curly brackets.\n setDisplayTextValue(column: IGridColumn) {\n this.rowsData?.forEach((row) => {\n if (\n column.type === EGridColumnType.LINK ||\n EGridColumnType.DIALOG ||\n EGridColumnType.IFRAME\n ) {\n const field = row[column.field + '_obj'];\n if (column.displayText && column.displayText.includes('{')) {\n const displayText = column.displayText\n .replace('{', '')\n .replace('}', '');\n if (displayText && field) {\n field.displayText = row[displayText.toLowerCase()];\n }\n } else if (column.displayText && field) {\n field.displayText = column.displayText;\n }\n }\n });\n }\n\n setNumericMinMxFraction(column: any) {\n let digitInfo = '2';\n if (column?.format.type === 'percent' && !column?.format?.formatParams?.digitsInfo) {\n digitInfo = '0'\n } else if (column?.format?.formatParams?.digitsInfo) {\n digitInfo = column.format.formatParams.digitsInfo;\n }\n return digitInfo;\n }\n\n // set the format of currency && number && decimal && percent\n setNumericFormat(column: any, row: any) {\n row = objConvertToLower(row);\n let value: any = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.displayField?.toLowerCase()]\n ? row[column.displayField.toLowerCase()]\n : (row[column.field?.toLowerCase() + '_obj']?.text || row[column.field?.toLowerCase() + '_obj']?.text === 0 || row[column.field?.toLowerCase() + '_obj']?.text === null)\n ? row[column.field?.toLowerCase() + '_obj']?.text : row[column.field?.toLowerCase()];\n if (this.typeOf(value) === 'number' && value === 0) {\n value = value.toString();\n }\n let formatParams = column.format?.formatParams;\n let digitsInfo = formatParams?.digitsInfo;\n if (column.format && value) {\n switch (column.format?.type) {\n case EGridFormatType.CURRENCY:\n value = new Intl.NumberFormat(\n formatParams?.locale ? formatParams.locale : 'en-US',\n {\n style: 'currency',\n currency: formatParams?.currency ? formatParams.currency : 'USD',\n minimumFractionDigits: digitsInfo ? digitsInfo : '2',\n }\n )?.format(value);\n break;\n case EGridFormatType.DECIMAL:\n value = parseFloat(value).toFixed(digitsInfo ? digitsInfo : '2');\n break;\n case EGridFormatType.PERCENT:\n value = value + '%';\n break;\n }\n }\n return value;\n }\n\n //Change dropdown vlue based on option label and optionvalue\n setDropdownValue(column: IGridColumn, selectedRow?: any, change?: boolean) {\n if (this.rowsData && this.rowsData.length > 0) {\n this.rowsData.forEach((row) => {\n if (Object.keys(row)?.find((key) => key === column.field)) {\n if (column) {\n column.optionLabel = column.optionLabel\n ? column.optionLabel\n : 'label';\n column.optionValue = column.optionValue\n ? column.optionValue\n : 'value';\n }\n const value = column.data?.find(\n (record: any) =>\n record[column.optionValue]?.toString() ===\n row[column.field]?.toString()\n );\n const editedRow = selectedRow && Object.keys(selectedRow).length > 0 ? selectedRow[this.dataKey] === row[this.dataKey] : false;\n if (value && editedRow) {\n row[column.field] = value[column.optionValue];\n } else if (value && change === false) {\n row[column.field] = value[column.optionLabel];\n }\n }\n });\n }\n }\n\n //manipulate checkbox string value to true and false.\n changeCheckboxStringValue() {\n if (\n this.columns &&\n this.rowsData &&\n this.rowsData.length > 0 &&\n this.columns.length > 0\n ) {\n this.columns.forEach((column: any) => {\n if (column.type === EGridColumnType.DROPDOWN && this.setDropdowndataValue) {\n this.setDropdownValue(column, {}, false);\n }\n this.rowsData.forEach((row: any) => {\n if (column.type === EGridColumnType.BOOLEAN) {\n if (\n (typeof (row[column.field] === 'string') &&\n (row[column.field] === '1' || row[column.field] === '0')) ||\n row[column.field] === 'Y' ||\n row[column.field] === 'N'\n ) {\n row[column.field] =\n row[column.field] === '1' || row[column.field] === 'Y'\n ? true\n : false;\n }\n }\n });\n });\n }\n }\n\n /**\n *\n * @param rowData\n * Passes data of clicked row to parent\n */\n handleRowClick(rowData: any) {\n this.rowClickData = rowData;\n if(!this.editAllRows){\n this.onRowClick.emit(rowData);\n }\n }\n\n /**\n *\n * @param columnData\n * Passes sorting information to parent on sort change\n */\n handleSortChange(event: any) {\n let sortDirection = null;\n let sortField: string = '';\n if (event.multisortmeta && event.multisortmeta[0].order) {\n sortDirection =\n event.multisortmeta[0].order == 1\n ? EGridSortDirection.ASC\n : EGridSortDirection.DESC;\n sortField = event.multisortmeta[0].field;\n }\n let sorts: IGridSort = {\n field: sortField,\n direction: sortDirection as EGridSortDirection,\n priority: 0,\n };\n this.onSortChange.emit(sorts);\n }\n\n /**\n *\n * @param event\n * Passes applied filters to parent on filter change\n */\n handleFilterChange(event: any) {\n this.columns.forEach((filter: any) => {\n if (!event.filters[filter.field]?.value && !filter.value) {\n filter.value = '';\n }\n });\n this.onFilterChange.emit(event);\n }\n\n /**\n *\n * @param event : Event\n * @param columnAction : IGridColumnAction\n * @param row : any\n * Stop the click event propagation to parent\n * Callbacks the row data to parent\n */\n\n /**\n * invoke onClick event & open Iframe in grid\n */\n gridIFrame(column: any, rows: any, row: any) {\n this.onClickEvent(column, row);\n const ref = this.dialogService.open(IframeComponent, {\n header: column.header,\n width: '80%',\n height: '80%',\n data: {\n value: rows,\n iFrameId: column.displayText ? column.displayText : column.field,\n },\n });\n const componentName = column.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((res) => {\n if (res && column.onReturn) {\n column.onReturn(res);\n } else if (res && column.onChange) {\n column.onChange(res);\n }\n });\n }\n\n addNewRow(row: any, addRow: boolean = false) {\n this.refreshGridTerminator()\n this.componentTableRef = this.table;\n this.columns.forEach((column) => {\n if (\n column.filter &&\n column.component &&\n column.filter.type === 'calendar'\n ) {\n if (addRow) {\n this.rowsData[0][column.field + '_secondType'] = EGridColumnType.DATE;\n } else {\n row[column.field + '_secondType'] = EGridColumnType.DATE;\n }\n }\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n });\n this.rowClickData = row;\n this.addNewRowCheck = true;\n this.dropdownInput = false;\n this.sortDisabled = true;\n this.onGridRowAdd.emit(row);\n }\n\n /**\n * open Dialog in grid\n */\n openGridDialog(column: IGridColumn | any, row: any) {\n var isDisabled = column.disabled\n ? true\n : row[column.field+'_obj']?.disabled\n ? true\n : false;\n this.onClickEvent(column, row);\n setTimeout(() => {\n this.rowClickData = row;\n if (column.data && column.data.data && row[column.field + '_obj']) {\n column.data.data = row[column.field + '_obj']?.dialogData;\n }\n\n if (column.component && column.data && this.rowClickData && !isDisabled) {\n const data = { ...column.data };\n data.data = autoSetLookupData(\n column.data.data,\n this.rowClickData\n );\n const ref = this.dialogService.open(column.component, data);\n const componentName = column.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((data: any) => {\n if (data && column.onReturn) {\n column.onReturn(data, this.rowClickData);\n } else if (data) {\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(data);\n }\n }\n });\n }\n }, 10);\n }\n\n browserCloseEvent(event: boolean = false) {\n this.gridService.columnFocusedOut = event;\n }\n\n setMultiSelectData(column: IGridColumn, selectedValue: any) {\n if (selectedValue && column.type == EGridColumnType.MULTISELECT) {\n if (selectedValue && selectedValue?.toString()?.includes(',')) {\n selectedValue = selectedValue?.toString()?.split(',')?.map((value) => column.data?.find((option) => option.value?.toString() === value?.toString())?.label)?.toString();\n } else {\n selectedValue = column.data?.find((option) => option.value?.toString() === selectedValue?.toString())?.label;\n }\n }\n return selectedValue;\n }\n\n setTextBoxReadOnlyValue(row: any, column: any){\n let value : any;\n if(column.displayText){\n value = column.displayText; \n }else if(row[column.field + '_obj']?.displayText){\n value = row[column.field + '_obj']?.displayText;\n }else if(row[column.field + '_obj']?.displayField){\n value = row[row[column.field + '_obj']?.displayField?.toLowerCase()];\n }else if(column.displayField){\n value = row[column.displayField?.toLowerCase()];\n }else {\n value = row[column.field];\n }\n return value;\n }\n\n /**\n * return conditional base value and title\n */\n setConditionBaseValue(row: any, column: any) {\n delete row['undefined'];\n let value: any;\n if (column.type == EGridColumnType.DATE) {\n let newValue: any;\n if (typeof (row[column.field + '_obj']) === \"object\" && row[column.field + '_obj']) {\n newValue = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.field?.toLowerCase() + '_obj']?.text\n } else {\n newValue = row[column.field];\n }\n\n if (newValue) {\n if (column.timeOnly) {\n value = this.setTimeFormat(newValue);\n } else {\n let format = this.setFormat(column);\n value = this.datePipe.transform(newValue?.toString() === \"Invalid Date\" ? null : newValue, format ? format : 'MM/dd/yy');\n }\n }\n } else {\n value = row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj']?.displayText\n : row[column.field + '_obj']?.displayField?.toLowerCase()\n ? row[row[column.field + '_obj']?.displayField?.toLowerCase()]\n : row[column.displayField?.toLowerCase()]\n ? row[column.displayField?.toLowerCase()]\n : row[column.field + '_obj'] &&\n row[column.field + '_obj'].displayText === null\n ? ''\n : row[column.field + '_obj']?.displayText\n ? column?.filter?.type === 'calendar' && column.timeOnly && column.type === EGridColumnType.DIALOG ?\n (row[column.field + '_obj'].displayText.toString().includes('AM') || row[column.field + '_obj'].displayText.toString().includes('PM')) ?\n row[column.field + '_obj'].displayText : this.datePipe.transform(row[column.field + '_obj'].displayText, 'hh:mm a')\n : column.format ? this.datePipe.transform(row[column.field + '_obj'].displayText, this.setFormat(column)) : row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : column.icon ? column.header\n : row[column.field];\n }\n return value;\n }\n\n setFormat(column) {\n let format = '';\n if (column?.format) {\n switch (column.format) {\n case EGridFormatType.SMALLDATE: {\n format = 'MM/dd/yy';\n break;\n }\n case EGridFormatType.SHORTDATE: {\n format = 'MM/dd/yyyy';\n break;\n }\n case EGridFormatType.MEDIUMDATE: {\n format = 'M d, yy';\n break;\n }\n case EGridFormatType.LONGDATE: {\n format = 'MM/dd/YY, h:mm a';\n break;\n }\n case EGridFormatType.PERIOD: {\n format = 'MM/yy';\n break;\n }\n default: {\n format = column.format;\n break;\n }\n }\n }\n return format\n }\n\n setDropdwonReadOnlyValue(row: any, column: any) {\n delete row['undefined'];\n const value = row[column.displayField]\n ? row[column.displayField]\n : column.data?.find(dropdownVal => dropdownVal?.value == row[column.field])\n ? column.data?.find(dropdownVal => dropdownVal?.value == row[column.field])?.label\n : row[column.field];\n return value;\n }\n\n\n /**\n * open Delete Confirmation dialog when click on delete icon in Action column\n */\n handleActionClick(event: Event, columnAction: IGridColumnAction, row: any) {\n event.stopPropagation();\n if (columnAction.tooltip.toLowerCase() === 'delete') {\n if (columnAction.confirmDialog === false) {\n columnAction.onClick(row);\n } else {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this record?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handlecolumnActions',\n accept: () => {\n columnAction.onClick(row);\n this.confirmationService.close();\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n } else {\n columnAction.onClick(row);\n }\n }\n\n /**\n *\n * @param event : LazyLoadEvent\n * Triggers everytime a server side filter is trigger\n */\n handleServerSideEvents(event: any) {\n this.gridfilter = event;\n setTimeout(() => {\n if (this.selectedColumns && this.selectedColumns.length > 0) {\n this.selectedColumns.forEach((x: any) => {\n if (event.filters[x.field]) {\n event.filters[x.field].value = x.filterValue;\n }\n });\n }\n\n this.loading = this.autoLoadData;\n this.serverFilters = {\n filters: this.lookupFilters\n ? this.gridService.getGridFilters(event, this.selectedColumns)\n : this.gridService.prepareBasicFilters(event, this.selectedColumns),\n sorts: this.gridService.getGridSorts(event, this.selectedColumns),\n ...(this.pagination && {\n page: this.gridService.getGridPagination(event),\n pageSize: event.rows || 10,\n }),\n };\n\n if (\n this.serverFilters?.filters &&\n this.serverFilters?.filters.length > 0 &&\n (this.allowCaching || this.softCaching)\n ) {\n if (!this.softCaching && this.componentTableRef?.id) {\n localStorage.setItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl, JSON.stringify(this.serverFilters));\n } else if (this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = this.serverFilters;\n }\n } else {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = {};\n }\n\n const serverFilterValues = JSON.parse(JSON.stringify(this.serverFilters));\n serverFilterValues.filters = (this.serverFilters.filters || []).concat(\n this.globalData\n );\n this.isCheckBoxChangeEventCalled = false;\n this.onServerSideEventChange.emit(serverFilterValues);\n }, 950);\n }\n\n /**\n * @param event\n * Passes applied pagination to parent on page change\n */\n handleServerSidePagination(event: IGridPaginationEvent) {\n this.onPageChange.emit(event);\n }\n\n selectedRow(row: any) {\n this.onRowCheckBox.emit(row);\n }\n\n // set time format\n setTimeFormat(date: any) {\n let value: any = '';\n if (date?.toString().includes('AM') || date?.toString().includes('PM')) {\n value = setTimeInDate(date);\n } else {\n value = this.datePipe.transform(date, 'hh:mm a');\n }\n return value;\n }\n\n //open hyperlink in edit case\n openLink(url: any) {\n if (url) {\n const link: any = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.click();\n }\n }\n\n /**\n *\n * @param row\n * Sets values to editable row\n * Row's data is preseved to prevent mutation\n * Row dataKey is preserved to keep the row unique and in editable state as long as not saved\n */\n\n refreshGridTerminator() {\n if (this.setGridRefreshTime) {\n this.reloadPage?.unsubscribe();\n }\n }\n\n onRowEditInit(row: any) {\n this.refreshGridTerminator()\n let selectedRow = { ...row };\n Object.entries(selectedRow).forEach(([key, value]: any) => {\n this.columns.forEach((col: any) => {\n if (this.setDropdownFilter) {\n this.setDropdownFilterValue(col, row, key);\n this.setDropdownFilter = false;\n }\n // set the autoComplete Value in edit mode\n if (\n col.type === EGridColumnType.AUTOCOMPLETE &&\n col.field?.toLowerCase() === key?.toLowerCase() &&\n value &&\n value.length > 0\n ) {\n if(col.displayField){\n selectedRow[col.field].forEach((row) => {\n row[col.field?.toLowerCase() + '_temp'] = row[col.displayField];\n row[col.displayField] = row[col.field];\n });\n }\n let newValue = value.map((x: any) => x[col.displayField]);\n if (newValue?.toString()?.includes(';')) {\n row[col.field] = newValue\n ?.toString()\n ?.replaceAll(';', ',')\n ?.split(',')\n ?.map((x: any) => ({ [col.displayField ? col.displayField : col.field]: x, [col.field+ '_temp']: value[0][col.field] }));\n }\n }\n\n if (col.type === EGridColumnType.DROPDOWN) {\n let option = col?.data?.find(\n (x: any) => x.label === row[col.field]?.toString()\n );\n if (option) {\n row[col.field] = option.value;\n }\n }\n if (\n col.field?.toLowerCase() === key?.toLowerCase() &&\n col.type === EGridColumnType.DATE\n ) {\n if (row[col.field] !== null) {\n if (row[key+'_obj'] && Object.keys(row[key+'_obj'])?.length > 0) {\n row[key+'_obj'].text = new Date(value as string);\n } else {\n row[key] = new Date(value as string);\n }\n }\n\n // check the Minutes pattern\n if (\n (col.showTime || col.timeOnly) &&\n col.minutesInterval &&\n row[key]\n ) {\n row[key] = new Date(setMinutesInterval(row[key]));\n }\n }\n if (\n col.type === EGridColumnType.DIALOG &&\n col.filter?.type === 'calendar' &&\n col.field.toLowerCase() === key.toLowerCase()\n ) {\n if (value === null) {\n row[key] = new Date();\n } else {\n row[col.field] = new Date(value);\n }\n }\n if (\n col.type === EGridColumnType.LINK &&\n col.field?.toLowerCase() === key?.toLowerCase() &&\n (col.allowSave === true || col.allowSave === undefined)\n ) {\n if (col.editLink === true) {\n row[key] = row[col.field + '_obj']?.hyperlink;\n } else if (col.editLink === false || col.editLink === undefined) {\n row[key] = value;\n }\n }\n });\n });\n\n this.editRowsRecords[row[this.dataKey]] = { ...row };\n this.editingRowKeys[row[this.dataKey]] = true;\n this.checkAction = true;\n this.dropdownInput = true;\n this.rowClickData = row;\n this.inEditMode = true;\n this.cancelAllRecords = false;\n this.saveAllRecord = false;\n this.sortDisabled = true;\n this.onGridRowEdit.emit(row);\n }\n\n typeOf(value: any) {\n return typeof value;\n }\n\n /**\n * set dropdown filter value\n */\n setDropdownFilterValue(col: any, row: any, key: string) {\n if (col.type === EGridColumnType.DROPDOWN && col.dropDownProp) {\n if (Object.values(col).some((value) => value == key)) {\n let obj = col.dropDownProp;\n let newFilters: any = [];\n if (obj.filters && obj.filters.length > 0) {\n obj.filters.forEach((filter: any) => {\n let newFilter = { ...filter };\n let filterKey = Object.keys(row).find((key) => {\n let matchKey: string = '';\n if (\n filter.value?.includes('{') &&\n key.toLowerCase() ===\n filter.value\n ?.toString()\n ?.toLowerCase()\n .replace('{', '')\n .replace('}', '')\n ) {\n matchKey = key;\n }\n return matchKey;\n });\n if (filterKey) {\n newFilter.value = row[filterKey];\n }\n newFilters.push(newFilter);\n });\n }\n\n this.gridService.setDropdownData(\n col,\n obj.uniqueKey,\n obj.valueProp,\n obj.labelProp,\n newFilters,\n row\n );\n\n let option = col.data.find(\n (x: any) => x.label === row[col.field]?.toString()\n );\n if (option) {\n row[col.field] = option.value;\n }\n }\n }\n }\n\n /**\n *\n * @param row\n * Passes the edited or newly created data to parent\n * In case of newly created data, dataKey and isNew prop is removed\n */\n onRowEditSave(selectedRow: any) {\n let automCompleteTempData = [];\n let lookupInfo: any = {};\n this.selectedColumns.forEach((column: any) => {\n delete selectedRow[column.field + '-data'];\n delete selectedRow[column.field + '_secondType'];\n if (\n column.type === EGridColumnType.LOOKUP_INPUT &&\n (column.allowSave === true || column.allowSave === undefined)\n ) {\n if(typeof (selectedRow[column.field]) === 'object'){\n selectedRow[column.field] = selectedRow[column.field]?.value;\n }\n if(selectedRow[column.field + '_obj']?.text){\n lookupInfo[column.field] = selectedRow[column.field + '_obj'].text;\n }\n }\n\n if (column.formatter) {\n let value: any = selectedRow[column.field];\n if (column.formatter === 'char') {\n value = value === true ? 'Y' : 'N';\n } else if (column.formatter === 'numeric') {\n value = value === true ? '1' : '0';\n }\n selectedRow = { ...selectedRow, [column.field]: value };\n }\n\n //convert date into time format\n if (\n column.type === EGridColumnType.DATE\n ) {\n if (column.timeOnly && column.saveAsString) {\n selectedRow[column.field] = this.datePipe.transform(selectedRow[column.field], 'hh:mm a');\n }\n else if (!column.timeOnly && column.showTime) {\n selectedRow[column.field] = this.datePipe.transform(selectedRow[column.field], 'yyyy-MM-dd HH:mm:ss');\n } else if (selectedRow[column.field] && !column.timeOnly && column.saveAsString) {\n selectedRow[column.field] = selectedRow[column.field].toLocaleDateString();\n }\n }\n // if allowCalculate=true, divide the percent by 100\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n if (column.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n selectedRow[column.field] = parseFloat((selectedRow[column.field] / 100)?.toString()).toFixed(digitsInfo);\n } else {\n selectedRow[column.field] = selectedRow[column.field] / 100;\n }\n }\n }\n }\n\n //convert multiselect array into string\n if (\n column.type === EGridColumnType.MULTISELECT && selectedRow[column.field]\n ) {\n selectedRow[column.field] = selectedRow[column.field]?.toString();\n }\n\n // Saving AutoComplete Data\n if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n column.displayField &&\n selectedRow[column.field]?.length > 0\n ) {\n automCompleteTempData = [...selectedRow[column.field]];\n selectedRow[column.field] = selectedRow[column.field]?.map((row) => column?.optionValue && row[column.optionValue?.toLowerCase()] ?\n row[column.optionValue?.toLowerCase()] : row[column.field?.toLowerCase()])?.toString()?.replaceAll(',', ';');\n }\n });\n\n let row: any = { ...selectedRow };\n let keys = Object.keys(row);\n keys.forEach((key) => {\n if (key.includes('_obj')) {\n let obj: any = row[key]\n if (this.checkAction === false && obj?.type && (obj.type === 'link' || obj.type === 'iframe' || obj.type === 'dialog')) {\n row = { ...row, [key.split('_')[0]]: row[key].displayText };\n this.checkAction = true;\n }\n if (\n obj &&\n (obj.type === 'link' ||\n obj.type === 'iframe' ||\n obj.type === 'dialog')\n ) {\n delete row[key];\n }\n }\n });\n /**\n * just emit those fields who exist in the table\n */\n row = this.gridService.setRowValue(row);\n let obj: any = {};\n this.columns.forEach((column: any) => {\n if (\n (column.allowSave === true || column.allowSave === undefined || this.saveAllData)\n ) {\n obj[column.field] = row[column.field];\n if (\n column.type === EGridColumnType.DIALOG &&\n column.filter?.type === 'calendar'\n ) {\n obj[column.field] = this.datePipe.transform(\n obj[column.field],\n 'yyyy-MM-ddT00:00:00.000Z'\n );\n }\n\n //Set Decimal Fraction Value\n if (\n column.format &&\n column.format.type === EFormatType.DECIMAL &&\n row[column.field] &&\n !row[column.field].toString().includes('.')\n ) {\n let digitsInfo = '.00';\n let zero = '0';\n const formatParams = column.format?.formatParams;\n const fracDigits = column?.format?.formatParams?.digitsInfo;\n if (fracDigits) {\n for (let i = 1; i < fracDigits; i++) {\n zero = zero + '0';\n }\n digitsInfo = '.' + zero;\n }\n obj[column.field] = row[column.field] + digitsInfo;\n }\n } else if (\n row.isNew &&\n (column.allowSave === false || column.editable === false || !this.saveAllData)\n ) {\n delete row[column.field];\n }\n });\n delete selectedRow['undefined'];\n this.gridService.checkValidity(this.columns, row);\n const isValid = this.gridValidation(this.columns, row);\n if (isValid) {\n // set the grid updated/inserted data\n this.rowActionEvents(selectedRow);\n this.browserCloseEvent(false);\n if (row.isNew || row.isnew) {\n let { isNew, isnew, ...newRowObj } = row;\n newRowObj = this.gridService.removeExtraNewRowObj(newRowObj, this.columns);\n if (!this.addDataKeyValue) {\n delete newRowObj[this.dataKey];\n }\n newRowObj = this.setRowsData(newRowObj);\n if (this.saveAllRecord) {\n this.saveRecordArray.push(newRowObj);\n } else {\n this.onRowAdd.emit(newRowObj);\n }\n } else {\n if (this.saveAllRecord) {\n this.saveRecordArray.push(obj);\n } else {\n if (this.checklist.length > 0)\n this.onRowUpdate.emit(this.setRowsData(this.checklist));\n else {\n this.onRowUpdate.emit(obj);\n }\n }\n }\n this.editingRowKeys[row[this.dataKey]] = this.editAllRows;\n } else {\n this.editingRowKeys[row[this.dataKey]] = true;\n }\n // if all rows in read only mode then show editAllRows button. \n if (Object.values(this.editingRowKeys).every((value) => !value)) {\n this.inEditMode = false;\n this.hideEditAllRowsBtn = true;\n this.sortDisabled = false;\n }\n this.selectedColumns.forEach((column: any) => {\n // convert date into time\n if (\n selectedRow[column.field] &&\n (selectedRow[column.field]?.toString()?.includes('PM') ||\n selectedRow[column.field]?.toString()?.includes('AM'))\n ) {\n selectedRow[column.field] = setTimeInDate(row[column.field]);\n }\n\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n if (column.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n selectedRow[column.field] = parseFloat((selectedRow[column.field] * 100)?.toString()).toFixed(digitsInfo);\n } else {\n selectedRow[column.field] = selectedRow[column.field] * 100;\n }\n }\n }\n } else if (\n column.type === EGridColumnType.AUTOCOMPLETE &&\n selectedRow[column.field]\n ) {\n // set autocompelet array data after save row\n selectedRow[column.field] = automCompleteTempData;\n } else if (\n column.type === EGridColumnType.LOOKUP_INPUT &&\n selectedRow[column.field] && (column.allowSave === true || column.allowSave === undefined)\n ) {\n // set LOOKUP_INPUT data after save row\n if (lookupInfo[column.field]) {\n selectedRow[column.field] = lookupInfo[column.field];\n }\n } else if (\n column.type === EGridColumnType.DROPDOWN &&\n column.optionLabel &&\n column.optionValue\n ) {\n this.setDropdownValue(column, selectedRow);\n }\n });\n this.addNewRowCheck = false;\n if (Object.values(this.editingRowKeys).every((value) => !value) && this.setGridRefreshTime) {\n this.refreshGrid();\n }\n this.isCheckBoxChangeEventCalled = false;\n }\n\n // check the validation of the field\n gridValidation(columns: any, row: any): boolean {\n if (!this.gridService.checkValidity(columns, row)) {\n let errorMessageDetails: string = '';\n columns?.forEach((column) => {\n if (column.errorMessage) {\n errorMessageDetails = errorMessageDetails ? errorMessageDetails + ' , ' + column.errorMessage : column.errorMessage;\n }\n })\n let isRequired = columns.some(\n (column: any) => column.errorMessage && !row[column.field]\n );\n if (isRequired) {\n this.alertService.error(\n errorMessageDetails,\n 5000,\n 'REQUIRED FIELD'\n );\n } else {\n this.alertService.error(errorMessageDetails, 5000, 'INVALID FIELD');\n }\n return false;\n } else {\n return true;\n }\n }\n\n /**\n *\n * @param row : any\n * @param index : number\n * Clears out the edit row and replace with readable one\n */\n onRowEditCancel(row: any, index: number) {\n let rowInEditMode: boolean = Object.values(this.editingRowKeys).every((value) => !value);\n if (row?.isNew) {\n this.rowsData.splice(index, 1);\n } else {\n this.rowsData[index] = this.editRowsRecords[row[this.dataKey]];\n delete this.editRowsRecords[row[this.dataKey]];\n }\n delete this.editingRowKeys[row[this.dataKey]];\n this.columns.forEach((column) => {\n if (column.type === EGridColumnType.DROPDOWN) {\n this.setDropdownValue(column, row);\n } else if (column.type === EGridColumnType.LOOKUP_INPUT && column.displayField) {\n this.rowsData[index][column.field] = row[column.field]?.value;\n }\n });\n this.inEditMode = false;\n if (rowInEditMode) {\n this.sortDisabled = false;\n }\n this.addNewRowCheck = false;\n this.inlineRowCancel.emit(row);\n setTimeout(() => {\n if (rowInEditMode && this.setGridRefreshTime) {\n this.refreshGrid();\n }\n }, 50);\n }\n\n /**\n * \n *\n *\n * @param row\n * Sends the row payload to parent for deletions\n */\n\n /**\n *set the gridData on row actions events\n */\n rowActionEvents(rowInfo, deleteRow: boolean = false) {\n let action: string = '';\n let gridRowsData: any[] = [...this.rowsData];\n const index = gridRowsData.findIndex((rowData) => rowInfo[this.dataKey] === rowData[this.dataKey]);\n if (index > -1) {\n if (deleteRow) {\n gridRowsData.splice(index, 1);\n this.rowsData = [...gridRowsData];\n action = 'delete';\n } else {\n if (this.addNewRowCheck) {\n action = 'insert';\n } else {\n action = 'update';\n }\n if (this.onGridRowActions.observers.length !== 0) {\n rowInfo['rowAction'] = action;\n }\n gridRowsData[index] = rowInfo;\n }\n }\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n this.onGridRowActions.emit(gridRowsData);\n }\n\n /**\n * open Delete confirmation dialog when trying to delete row\n */\n deleteRecord(row: any) {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this record?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handleInlineCRUD',\n accept: () => {\n if (this.useServerSideEvents) {\n this.loading = true;\n }\n // set the grid deleted data \n this.rowActionEvents(row, true);\n this.onRowDelete.emit(row);\n this.confirmationService.close();\n this.inEditMode = false;\n this.loading = false;\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n\n /**\n * To set disabled the control\n */\n allowDisabled(column: any, row: any): boolean {\n let value: boolean = false;\n if (row[column.field + '_obj'] && typeof (row[column.field + '_obj']) === 'object') {\n if (\n Object.keys(row[column.field + '_obj'])?.includes('disabled') && row[column.field + '_obj']?.disabled === true\n ) {\n value = true;\n }\n } else if (column.disabled) {\n value = true;\n }\n return value;\n }\n\n /**\n * To set aggregate in grid footer\n */\n setAggregateText(column: IGridColumn) {\n if (column?.aggregate) {\n column.aggregate.forEach((col: any) => {\n if (this.rowsData && this.rowsData.length > 0) {\n let columnType: EGridAggregate = col.type;\n if (columnType === EGridAggregate.COUNT) {\n let count = this.rowsData.length;\n count = this.setFetchAggregatedValue(column, count, 1);\n col.aggrValue = this.setAggregateFooterText(col, count, 'Count');\n }\n\n if (\n columnType === EGridAggregate.SUM ||\n columnType === EGridAggregate.AVERAGE\n ) {\n const colValues: number[] = this.getColumnValues(column);\n if (colValues && colValues.length > 0) {\n let sum = colValues.reduce((acc, cur) => acc + cur, 0);\n if (columnType === EGridAggregate.SUM) {\n sum = this.setFetchAggregatedValue(column, sum, 2);\n col.aggrValue = this.setAggregateFooterText(col, sum, 'Sum');\n }\n if (columnType === EGridAggregate.AVERAGE) {\n let average = sum / colValues.length || 0;\n average = this.setFetchAggregatedValue(column, sum, 3);\n col.aggrValue = this.setAggregateFooterText(\n col,\n average,\n 'Avg'\n );\n }\n }\n }\n } else {\n col.aggrValue = '';\n }\n });\n }\n }\n\n // set the aggregataion value that coming from fetch\n setFetchAggregatedValue(column, aggregateValue, aggregateAction){\n if(this.aggregatedResult?.length > 0){\n const aggregatedColumn = this.aggregatedResult.find((aggregate)=> aggregate.field?.toLowerCase() === column.field?.toLowerCase() && aggregate.aggregationOperation === aggregateAction);\n if(aggregatedColumn){\n aggregateValue = aggregatedColumn?.value;\n }\n }\n return aggregateValue;\n }\n\n /**\n * set grid Aggregate values\n */\n setAggregateFooterText(column: any, value: number, defaultCaption: string) {\n const isDecimalFormat: boolean = column.format?.type === 'decimal';\n const digitsInfo = column.format?.digitsInfo;\n const caption: string =\n column.caption?.length > 0 ? column.caption : defaultCaption;\n\n const decimalPoint = isDecimalFormat\n ? value?.toFixed(digitsInfo ? digitsInfo : 2)\n : value?.toFixed(0);\n return `${caption} ${decimalPoint\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')} </br>`;\n }\n\n /**\n * set decimat and numeric values\n */\n setNumericValues() {\n if (this.columns?.length > 0 && this.rowsData?.length > 0) {\n this.columns.forEach((column: any) => {\n if (column.type === EGridColumnType.NUMERIC) {\n const digitsInfo = column?.format?.formatParams?.digitsInfo;\n this.rowsData.forEach((row) => {\n if (column?.format?.type === 'percent') {\n if (column.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n row[column.field] = parseFloat((row[column.field] * 100)?.toString()).toFixed(digitsInfo); //THESE COMMENTED OUT LINES SHOULD RUN ON SAVE\n } else {\n row[column.field] = row[column.field] * 100;\n }\n } else if (digitsInfo) {\n row[column.field] = parseFloat(row[column.field]).toFixed(digitsInfo);\n }\n } else if (column?.format?.type === 'decimal') {\n row[column.field] = parseFloat(row[column.field]).toFixed(digitsInfo ? digitsInfo : 2);\n }\n });\n }\n })\n }\n }\n\n /**\n * get column value based on column field\n */\n getColumnValues(column: IGridColumn) {\n let arr: any = [];\n this.rowsData.forEach((row) => {\n let keys = Object.keys(row);\n keys.map((key) => {\n if (column.field === key) {\n arr.push(row[key]);\n }\n });\n });\n return arr;\n }\n\n /**\n *\n * Export to PDF\n */\n exportPdf() {\n var exportData = this.setExportData([...this.rowsData], true);\n let doc = new jsPDF('p', 'pt');\n doc.table(1, 1, exportData.rows, exportData.headings, { autoSize: true });\n doc.save('Export.pdf');\n }\n\n /**\n * Sub-function to set rows for export to Pdf, and Excel\n * @rows param for rows\n * @isExcel param for export to excel indication\n */\n setExportData(rows: any[] = [], isPdf: boolean = false): IGridDataExport {\n const headings: any = this.columns.map((column) => column.field);\n rows.forEach((row) => {\n for (var prop in row) {\n if (!headings.includes(prop)) {\n delete row[prop];\n }\n if (isPdf) {\n row[prop] =\n !row[prop] && typeof row[prop] !== 'boolean'\n ? ''\n : row[prop].toString();\n }\n }\n });\n return { rows, headings };\n }\n\n /**\n *\n * Export to Excel\n */\n exportExcel() {\n let exportData: any = this.exportDataToExcel();\n import('xlsx').then((xlsx) => {\n const worksheet: WorkSheet = xlsx.utils.json_to_sheet(exportData);\n let rowIndex = 0;\n exportData.forEach((row: any) => {\n let colIndex = 0;\n this.selectedColumns.forEach((col: any) => {\n const cellValue: string = row[col.header];\n if (cellValue && cellValue.length > 0 && cellValue.indexOf('|') > 0) {\n const linkText: string = cellValue.split('|')[0];\n let linkUrl: string = cellValue.split('|')[1];\n if (linkUrl && !linkUrl.startsWith('http')) {\n if (!linkUrl.startsWith('/')) {\n linkUrl = '/' + linkUrl;\n }\n linkUrl =\n window.location.protocol +\n '//' +\n window.location.hostname +\n linkUrl;\n }\n const cellAddress = xlsx.utils.encode_cell({\n c: colIndex,\n r: rowIndex + 1,\n });\n\n worksheet[cellAddress] = {\n f: `=HYPERLINK(\"${linkUrl}\", \"${linkText}\")`,\n };\n }\n\n colIndex++;\n });\n\n rowIndex++;\n });\n const workbook = {\n Sheets: { sheet1: worksheet },\n SheetNames: ['sheet1'],\n };\n const excelBuffer: any = xlsx.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n this.saveAsExcelFile(excelBuffer, 'Export.xlsx');\n });\n }\n\n exportDataToExcel() {\n let arr: any = [];\n this.rowsData.forEach((row: any) => {\n let obj: any = {};\n this.selectedColumns.forEach((column: any) => {\n const gridHeader = column.header;\n if (column.type === EGridColumnType.LINK) {\n const linkObj = row[column.displayText?.toLowerCase() + '_obj'];\n obj[gridHeader] = row[column.field] + '|' + linkObj?.hyperlink;\n } else {\n obj[gridHeader] = row[column.field];\n }\n });\n\n arr.push(obj);\n });\n return arr;\n }\n\n /**\n *\n * Export to excel (sub-method)\n */\n saveAsExcelFile(buffer: any, fileName: string): void {\n import('file-saver').then((FileSaver) => {\n let EXCEL_TYPE =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n saveAs(data, fileName);\n });\n }\n\n /**\n *set config data of lookup control dialog\n */\n setLookupDialogConfig(row: any, column: any, data: any) {\n let selection: string = '';\n if (row[column.field] && typeof row[column.field] === 'object') {\n selection = row[column.field].text;\n } else if (column.displayField && row[column.displayField]) {\n selection = row[column.displayField];\n } else {\n selection = row[column.field];\n }\n\n if (column.field && typeof row[column.field] === 'object') {\n const newRow = { ...row };\n newRow[column.field] = newRow[column.field]?.value;\n row = { ...newRow };\n }\n\n if (column.type === EGridColumnType.LOOKUP_INPUT && data) {\n let obj = autoSetLookupData(data, row);\n row[column.field + '-data'] = obj;\n }\n return {\n rowData: row[column.field + '-data'],\n selection: selection,\n column: column,\n };\n }\n\n /**\n * open link on lookupControl control in read only mode when editLink set true\n */\n openLookupHyperlink(column: IGridColumn, row: any) {\n if (column.editLink === true && column.component) {\n let obj: any = this.setLookupDialogConfig(row, column, column.data?.data);\n obj['component'] = column.component;\n const ref = this.openLookupDialog(obj);\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe((res) => {\n if (res && column.onReturn) {\n column.onReturn(res);\n }\n });\n }\n }\n\n /**\n * open lookup Dialog\n */\n openLookupDialog(column?: any, row: any = {}) {\n const columnData = column.column?.lookupControl?.data ? column.column.lookupControl.data : column.column.data;\n if (row[column.column.field?.toLowerCase() + '_obj']?.lookupControl) {\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.header ? columnData.header = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.header : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.width ? columnData.width = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.width : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.height ? columnData.height = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.height : ''\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.valueProp ? columnData.valueProp = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.valueProp : \"\"\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.labelProp ? columnData.labelProp = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.labelProp : \"\"\n row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.data ? columnData.data = row[column.column.field?.toLowerCase() + '_obj']?.lookupControl?.data?.data : ''\n }\n const ref = this.dialogService.open(column.component, {\n ...columnData,\n data: {\n selection: column.selection,\n field: column.column.field,\n labelProp: column.column.lookupControl?.data?.labelProp,\n ...column.rowData,\n },\n });\n const componentName = row[column.column.field]?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), componentName);\n }\n return ref;\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(column: any, row?: any) {\n this.onClickEvent(column, row);\n let obj: any = this.setLookupDialogConfig(\n row,\n column,\n row[column.field + '_obj']?.lookupControl?.data?.data\n ? row[column.field + '_obj']?.lookupControl?.data?.data : column?.lookupControl?.data?.data\n );\n\n obj['component'] = row[column.field + '_obj']?.lookupControl?.component ? row[column.field + '_obj']?.lookupControl?.component : column.lookupControl?.component;\n const ref = this.openLookupDialog(obj, row);\n draggableDialog(column?.field ? column?.field : column?.header)\n ref.onClose.subscribe(\n (res) => {\n if (res) {\n let value = setDialogResponse(\n column,\n column.lookupControl,\n res\n );\n res = objConvertToLower(res);\n let labelProp = column?.lookupControl?.data?.labelProp?.toLowerCase();\n let valueProp = column?.lookupControl?.data?.valueProp?.toLowerCase();\n let columnField = column?.field?.toLowerCase();\n if (column.displayField) {\n if(row.hasOwnProperty(column.displayField?.toLowerCase())){\n row[columnField] = res[valueProp ? valueProp : columnField];\n row[column.displayField?.toLowerCase()] = res[labelProp ? labelProp : column.displayField.toLowerCase()];\n }else{\n row[columnField] = {\n text: res[labelProp ? labelProp : column.displayField.toLowerCase()],\n value: res[valueProp ? valueProp : columnField],\n }\n }\n } else if (value && value.value) {\n value['field'] = columnField;\n if (labelProp || valueProp) {\n row[columnField] = {\n text: res[labelProp ? labelProp : res[labelProp]],\n value: res[valueProp ? valueProp : res[labelProp]],\n };\n } else {\n row[columnField] = value.value;\n }\n } else {\n if (labelProp || valueProp) {\n row[columnField] = {\n text: res[labelProp ? labelProp : valueProp ? valueProp : res[columnField]],\n value: res[valueProp ? valueProp : res[columnField]],\n };\n } else {\n row[columnField] = res[columnField];\n }\n }\n }\n if (typeof (row[column.field]) === \"object\") {\n row[column.field + '_obj'] = {...row[column.field + '_obj'], text: row[column.field]};\n row[column.field] = row[column.field]?.value;\n } else if(column.displayField){\n if(row[column.field + '_obj']){\n row[column.field + '_obj'] = {...row[column.field + '_obj'], text: {text: row[column.displayField?.toLowerCase()], value: row[column.field?.toLowerCase()] }};\n }else{\n row[column.field + '_obj'] = {text: {text: row[column.displayField?.toLowerCase()], value: row[column.field?.toLowerCase()] }};\n }\n }else{\n row[column.field + '_obj'] = {...row[column.field + '_obj'], text: {text: res[column.field?.toLowerCase()], value: res[column.field?.toLowerCase()] }};\n }\n if (column.onReturn) {\n column.onReturn(res, row);\n }\n if (row[column.field] !== obj.selection) {\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n setFilterLookup(column: any) {\n this.gridService.setLookUpFilter(column, this.dialogService);\n }\n\n // set lookup value that display in readOnlyMode\n setLookupReadOnlyValue(row, column) {\n let value = '';\n if (typeof (row[column.field + '_obj']?.text) === \"object\" && (row[column.field + '_obj']?.text).hasOwnProperty('text')) {\n value = row[column.field + '_obj']?.text.text;\n } else {\n value = row[column.field];\n if (column.displayField) {\n value = row[column.displayField];\n } else {\n value = row[column.field];\n }\n }\n return value;\n }\n\n // Check calender value is changed or not\n calenderChangeEvent(column: any, row: any) {\n let valueChange: boolean = false;\n if (\n column.timeOnly &&\n this.datePipe.transform(row[column.field], 'hh:mm') !==\n this.datePipe.transform(this.calenderPreviousValue, 'hh:mm')\n ) {\n valueChange = true;\n } else if (\n column.showTime &&\n this.datePipe.transform(row[column.field], 'yyyy-MM-dd hh:mm') !==\n this.datePipe.transform(this.calenderPreviousValue, 'yyyy-MM-dd hh:mm')\n ) {\n valueChange = true;\n } else if (\n this.datePipe.transform(row[column.field], 'yyyy-MM-dd') !==\n this.datePipe.transform(this.calenderPreviousValue, 'yyyy-MM-dd')\n ) {\n valueChange = true;\n }\n if (valueChange) {\n this.browserCloseEvent(true);\n this.generateRowsDataCopy=false\n setTimeout(() => {\n this.rowsChange.emit(this.rowsData);\n }, 250);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n this.calenderPreviousValue = '';\n }\n onAutoCompleteFocusOut(e, column, row) {\n if (column.type == EGridColumnType.AUTOCOMPLETE) {\n if (column.allowAutoCompleteSave && e.target.value && !column.data.length) {\n ///check the correct format if data.contains cuz its an array of arrays with objects.\n if (confirm(`Do you want to add ${e.target.value} to the selection?`)) {\n if (column.uniqueKey) {\n var message = this.gridService\n .addAutoCompleteValue(column.uniqueKey, e.target.value, column, row)\n .then(() => {\n\n if (column.onReturn) {\n column.onReturn(e.target.value, column);\n }\n });\n }\n }\n }\n }\n }\n\n onFocusOutEvent(column: IGridColumn, row: any) {\n if (column.type !== EGridColumnType.AUTOCOMPLETE || (!column.allowAutoCompleteSave)) {\n this.gridService.checkValidity([column], row);\n if (column.type === EGridColumnType.DATE) {\n this.calenderChangeEvent(column, row);\n }\n if (column.onFocusOut) {\n column.onFocusOut(row);\n } else if (\n column.onReturn &&\n column.type !== EGridColumnType.LOOKUP_INPUT\n ) {\n column.onReturn(row);\n }\n }\n this.isCheckBoxChangeEventCalled = false;\n }\n\n setFilterFocusOut(col: any, filter?: any, event?: any) {\n if(col?.filter?.type === GridFilterControlType.LOOKUP_INPUT){\n setTimeout(() => {\n this.setGridFilter(col, filter, event);\n },250);\n }else {\n this.setGridFilter(col, filter, event);\n }\n }\n\n setGridFilter(col: IGridColumn, filter?: any, event?: any){\n this.gridFilterObj = { column: col, filter: filter, event: event };\n const newColumn: any = { ...col };\n //change filter calender format\n if (newColumn.type === 'date' && newColumn.filterValue) {\n newColumn.filterValue = this.datePipe.transform(\n col.filterValue.toString().trim(),\n 'yyyy-MM-dd'\n );\n }\n this.filterObj(newColumn);\n localStorage.setItem('applyFilter', JSON.stringify(false));\n }\n\n filterObj(col: any) {\n const obj = {\n field: col.field,\n matchMode: col.matchMode ? col.matchMode : 'startsWith',\n operator: col.operator ? col.operator : 'and',\n tableAlias: col.tableAlias ? col.tableAlias : '',\n value: col.filterValue,\n };\n this.globalFiltersArray.push(obj);\n }\n\n applyEnterEvent(filter: any, event: any, column: any) { \n this.gridService.applyFilterEvent = true;\n this.autoLoadData = true;\n this.onApplyFilter.emit();\n this.filterObj(column);\n localStorage.setItem('applyFilter', JSON.stringify(true));\n if (column?.filter?.type === this.dropDownFilter?.column?.filter?.type) {\n this.dropDownFilter.filter(this.dropDownFilter.event.target);\n } else if (filter && column.type === EGridColumnType.BOOLEAN && column?.filter?.type === GridFilterControlType.CHECKBOX && column.filtering !== false) {\n filter(event?.checked);\n } else if (filter) {\n filter(event?.target?.value);\n }\n }\n\n removeNullCalendar(column: IGridColumn, filter: any, event: any) {\n if (column.filterValue === null) {\n this.removeNullFilters(column);\n this.setFilterFocusOut(column, filter, event);\n }\n }\n\n backspaceEvent(event: any, column: any) {\n if (\n event.key === 'Backspace' &&\n (column.filterValue?.toString().length === 1 ||\n column.filterValue?.toString() === '' ||\n column.filterValue === null)\n ) {\n this.removeNullFilters(column);\n } else if (column.type === EGridColumnType.DATE && column.filterValue === null) {\n this.removeNullFilters(column);\n }\n }\n\n removeNullFilters(column: any) {\n if (this.globalFiltersArray && this.globalFiltersArray.length > 0) {\n let arr = [...this.globalFiltersArray];\n let index = arr.findIndex((i) => i.field === column.field);\n arr.splice(index, 1);\n this.globalFiltersArray = arr;\n }\n }\n\n // Removing Header Filter Value using Backspace key Event or Delete key Event.\n removingFilters(event: any, column: IGridColumn) {\n if (\n (event.key === 'Backspace' || event.key === 'Delete') &&\n column.filterValue?.toString().length === 0\n ) {\n let searchFilters;\n if (!this.softCaching && this.componentTableRef?.id) {\n searchFilters = JSON.parse(localStorage.getItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl) as any);\n } else if (this.componentTableRef?.id) {\n searchFilters = this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl];\n }\n if (searchFilters && searchFilters.filters) {\n if (searchFilters.filters.length > 0) {\n let index = searchFilters.filters.findIndex(\n (x: any) => x.field === column.field\n );\n if (index > -1) {\n if (searchFilters.filters.length === 1 && this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = [];\n localStorage.removeItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl);\n } else {\n searchFilters.filters.splice(index, 1);\n if (!this.softCaching && this.componentTableRef?.id) {\n localStorage.setItem('SetFilters-' + this.componentTableRef?.id + this.currentUrl, JSON.stringify(searchFilters));\n } else if (this.componentTableRef?.id) {\n this.gridService.softCachingFilters[this.componentTableRef?.id + this.currentUrl] = searchFilters;\n }\n }\n }\n }\n }\n }\n }\n\n // Add Click Button Event on Grid.\n onClickButton(column: any, row: any) {\n this.openGridDialog(column, row);\n }\n\n // Invoke onClick Event.\n onClickEvent(column: any, row: any) {\n if (column.type === EGridColumnType.LINK && (column.editLink === false || column.editLink === undefined) && column.editable !== true && column.disabled !== true) {\n if (column && column.onClick && column.disabled !== true && row[column.field + '_obj']?.action?.disabled !== true) {\n column.onClick(row);\n } else {\n let a = document.createElement('a');\n a.href = row[column.field + '_obj']?.hyperlink;\n a.target = column.target ? column.target : '_blank',\n a.click();\n }\n }\n if (column.type === EGridColumnType.DATE && row[column.field]) {\n this.calenderPreviousValue = row[column.field];\n } else if (\n !row[column.field] &&\n column.type === EGridColumnType.DATE &&\n (column.showTime || column.timeOnly) &&\n column.minutesInterval\n ) {\n this.defaultDate = new Date(setMinutesInterval(new Date()));\n }\n if (column && column.onClick && column.disabled !== true && row[column.field + '_obj']?.disabled !== true) {\n column.onClick(row);\n }\n }\n\n // set the select value of multi-select\n showOption(column, row) {\n if (row[column.field]) {\n if (typeof (row[column.field]) === \"string\" && !row[column.field]?.includes(',')) {\n row[column.field] = [row[column.field]];\n } else if (row[column.field]?.toString()?.includes(',')) {\n row[column.field] = row[column.field]?.split(',');\n }\n }\n }\n\n onClearValue(column, row) {\n if (column?.type === EGridColumnType.DROPDOWN && !row[column.field]) {\n row[column.field] = null;\n }\n }\n\n // Invoke onChange Event\n onChangeEvent(column: any, row: any) {\n // set dropdown displayField value base on optionLabel & optionValue.\n this.displayFieldDropdownValue(column, row);\n this.onClearValue(column, row);\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n this.setDropdowndataValue = false\n this.isCheckBoxChangeEventCalled = false;\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n }\n\n checkBoxChangeEvent(event: any, column: IGridColumn, row) {\n row[column.field] = event;\n if (this.rowsChange.observers?.length) {\n this.isCheckBoxChangeEventCalled = true;\n }\n this.generateRowsDataCopy=false\n this.rowsChange.emit(this.rowsData);\n }\n\n // set dropdown displayField value base on optionLabel & optionValue.\n displayFieldDropdownValue(column: any, row: any) {\n if (\n column?.type === EGridColumnType.DROPDOWN &&\n column.displayField &&\n column.displayField?.length > 0\n ) {\n const key: any = Object.keys(row)?.find(\n (rowInfo) =>\n rowInfo?.toLowerCase() === column.displayField.toLowerCase()\n );\n const displayFieldValue = column.data.find(\n (record: any) =>\n record[column.optionValue]?.toString() ===\n row[column.field]?.toString()\n );\n if (key && displayFieldValue) {\n row[key] = displayFieldValue[column.optionLabel];\n }\n }\n }\n\n // Add autoSearch on Grid.\n autoSearch(event: any, column: any, row: any) {\n if (event && column && row) {\n column.onReturn(event.query, column, row);\n }\n }\n\n // Refresh grid\n refreshGrid() {\n this.reloadPage = interval(this.setGridRefreshTime).subscribe((x) => {\n if (this.gridfilter == undefined) {\n this.gridfilter = { filters: [], sorts: [] };\n }\n if (this.setGridRefreshTime) {\n this.handleServerSideEvents(this.gridfilter);\n }\n });\n }\n\n // Remove FilterValues\n cleargridFiltersValue() {\n const globalFilterClearValueBtn = document.getElementById(\n 'clearGlobalFilterBtn'\n );\n if (globalFilterClearValueBtn) {\n globalFilterClearValueBtn.click();\n }\n if (this.selectedColumns && this.selectedColumns.length > 0) {\n this.selectedColumns.forEach((col) => {\n col.filterValue = null;\n this.filterObj(col);\n });\n }\n }\n\n editAllRowsAtOnce() {\n if (this.editRowPermission) {\n if (this.getClassForEditAllRows('editRow')) {\n if (this.selectedColumns.some((column) => column.type === EGridColumnType.BOOLEAN && (column.filtering === true || column.filtering === undefined))) {\n this.editAllRecord = true;\n }\n this.hideEditAllRowsBtn = false;\n this.sortDisabled = true;\n }\n }\n }\n\n saveAllRowsAtOnce() {\n this.getClassForEditAllRows('saveRow');\n }\n\n // reset the grid rowsValue to orignal values\n cancelAllRowsAtOnce() {\n this.rowsData = [...this.rowsDataCopy];\n this.rowsDataCopy = JSON.parse(JSON.stringify(this.rowsData));\n this.selectedColumns?.forEach((column) => {\n if (column.type === EGridColumnType.DATE) {\n this.rowsData?.forEach((row) => {\n if (row[column.field]) {\n row[column.field] = new Date(row[column.field]);\n }\n })\n }\n\n });\n if (this.columns?.length) {\n this.columns.forEach((column) => {\n if (column.aggregate && column.aggregate.length > 0) {\n this.aggregateFooter = true;\n this.setAggregateText(column);\n }\n })\n }\n this.onCancelAllRows.emit(this.rowsData);\n }\n\n getClassForEditAllRows(className: string = '') {\n let success: boolean = false;\n const getBtns: any =\n this.elementRef?.nativeElement?.getElementsByClassName(className);\n if (getBtns && getBtns.length > 0) {\n success = true;\n if (className === 'saveRow') {\n this.editAllRecord = false;\n this.saveAllRecord = true;\n const records$ = [];\n setTimeout(() => {\n for (let item of getBtns) {\n const rowSave = new Promise((resolve, reject) => {\n item.click();\n resolve(item);\n });\n records$.push(rowSave);\n }\n Promise.all(records$).then((response) => {\n if (this.checklist.length > 0) {\n this.onRowUpdate.emit(this.setRowsData(this.checklist));\n }\n else {\n this.generateRowsDataCopy = true;\n this.onRowUpdate.emit(this.saveRecordArray);\n }\n this.saveRecordArray = [];\n });\n }, 20)\n } else {\n this.saveAllRecord = false;\n for (let item of getBtns) {\n if (className == 'cancelRow') {\n setTimeout(() => {\n item.click();\n }, 50);\n } else {\n item.click();\n }\n }\n }\n }\n return success;\n }\n\n //Focused calender input on select date\n selectDate(column: any) {\n document.getElementById(column.field)?.focus();\n }\n\n //apply filter on grid when search btn clicked\n applyGirdFilterBtn() {\n this.isCheckBoxChangeEventCalled = false;\n let globalFilterApplyBtn = document.getElementById('searchGlobalFilterBtn');\n if (globalFilterApplyBtn) {\n globalFilterApplyBtn.click();\n } else {\n if (this.gridFilterObj && Object.keys(this.gridFilterObj).length > 0) {\n this.applyEnterEvent(\n this.gridFilterObj.filter,\n this.gridFilterObj.event,\n this.gridFilterObj.column\n );\n }\n }\n }\n\n // invoke multiSelection click event\n multiCheckBoxOnclick(rowInfo: any, event: any, singleSelection: boolean = false) {\n if (!singleSelection) {\n if (Array.isArray(rowInfo) && rowInfo?.length > 0 && event?.target?.ariaChecked) {\n this.checklist = [...rowInfo];\n } else if (Array.isArray(rowInfo) && event?.target?.ariaChecked == null) {\n this.checklist = [];\n }\n if (!Array.isArray(rowInfo) && event?.target?.ariaChecked && !this.checklist.some((row) => row.id == rowInfo.id)) {\n this.checklist.push(rowInfo);\n } else if (event?.target?.ariaChecked == null) {\n if (this.checklist.some((row) => row?.id == rowInfo.id)) {\n const index = this.checklist.findIndex((row) => row?.id == rowInfo?.id);\n this.checklist.splice(index, 1);\n }\n }\n this.onMultiSelectionChange.emit(this.setRowsData(this.checklist));\n } else {\n this.checklist = [rowInfo]\n this.onMultiSelectionChange.emit(this.setRowsData(rowInfo));\n }\n }\n\n setRowsData(rowsData) {\n if (Array.isArray(rowsData)) {\n rowsData.forEach((row: any) => {\n row = this.removeRowObj(row);\n row = this.gridService.setRowValue(row);\n })\n } else {\n rowsData = this.removeRowObj(rowsData);\n rowsData = this.gridService.setRowValue(rowsData);\n }\n return rowsData;\n }\n\n removeRowObj(row: any){\n const keys = Object.keys(row);\n if (keys?.length > 0) {\n keys.forEach((key) => {\n if (key.includes('_obj')) {\n delete row[key];\n }\n })\n }\n return row;\n }\n\n applyDropdownFilter(filter: any, event: any) {\n filter(event.target);\n }\n\n searchDropdownFilter(filter: any, event: any, column: any) {\n this.setFilterFocusOut(column, filter, event);\n this.dropDownFilter = { filter: filter, event: event, column: column };\n if (column.allowSearch !== true) {\n this.applyDropdownFilter(filter, event);\n }\n }\n\n lookupClearValue(column: IGridColumn, row?: any) {\n if (row) {\n column.displayField?row[column.displayField] = '':''\n row[column.field+'_obj']?.text? row[column.field+'_obj'].text='':''\n row[column.field] = '';\n } else {\n column.filterValue = '';\n this.setFilterFocusOut(column);\n }\n this.browserCloseEvent(true);\n if (column.onChange) {\n column.onChange(row);\n }\n }\n \n // invoke when click header checkbox filter\n clickCheckBoxFilter(column: IGridColumn) {\n if (this.editAllRecord) {\n if (\n column.type === EGridColumnType.BOOLEAN\n &&\n column?.filter?.type === 'checkbox' && column.filtering != false\n ) {\n this.rowsData.forEach((row) => {\n if (row[column.field+'_obj']?.disabled !== true && !column.disabled) {\n row[column.field] = column.filterValue;\n }\n });\n }\n }\n this.onCheckBoxFilterClick.emit(column);\n }\n //set header checkbox value for getting all columns on stay admin\n setHeaderCheckBoxValue(value: any) {\n this.isIncludedAllColumns.emit(value);\n }\n\n // set calender 2 Or 4 digit year format\n calenderInputValue(column: any, row: any) {\n document.getElementsByClassName(column.field + row[this.dataKey])[0]?.addEventListener('keyup', (val: any) => {\n const year = val?.target?.value?.toString()?.split('/')[2];\n if (year && year.length === 4) {\n this.calendarFormat = 'mm/dd/yy';\n row[column.field] = new Date(val?.target?.value)?.toLocaleDateString(\"en-US\");\n } else if (year && year.length) {\n this.calendarFormat = 'mm/dd/y';\n }\n });\n }\n}\n\n\n\n","import { Injectable } from '@angular/core';\nimport {\n EValidator,\n IFormField,\n EFormControl,\n AddFormField,\n ISetFilter,\n IDropDownRequest,\n IListFilter,\n IReportBtn,\n IDynamicForm,\n} from '../models/form.model';\nimport { EGridSortDirection, IGridSort } from '../models/grid.model';\nimport { HyperlinkService } from '../services/hyperlink.service';\nimport { AlertService } from './alert.service';\nimport { DropdownService } from './dropdown.service';\nimport { RequestService } from './request.service';\nimport * as utilities from './utilities.service';\nimport { IDictionary } from '../models/common.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormService {\n public fieldFocusedOut:boolean = false;\n constructor(\n private hyperlinkService: HyperlinkService,\n private dropdownService: DropdownService,\n private alertService: AlertService,\n private requestService: RequestService\n ) { }\n\n checkValidity(formFields: IFormField[]): boolean {\n let isValid: boolean = true;\n\n formFields.map((item: IFormField) => {\n if (item.validations && !item.disabled) {\n let itemValue = item.control === EFormControl.LOOKUP_INPUT && item.value && typeof(item.value) === 'object' ? item.value.value : item.value\n // if(item.control === EFormControl.LOOKUP_INPUT && item.value && typeof(item.value) === 'object'){\n // item.value = item.value.value;\n // }\n item.errorMessage = '';\n item.isvalid = true;\n for (let i = 0; i < item.validations.length; i++) {\n const minMaxValidDate = utilities.calenderMinMaxValue(item, itemValue, i);\n const valid =\n item.validations && typeof item.label === 'object'\n ? item.label.name\n : item.label;\n if (\n item.validations[i].type == EValidator.REQUIRED &&\n !itemValue &&\n !item.hidden &&\n valid\n ) {\n isValid = itemValue\n ? true\n : this.setErrorMessage(item, `${valid} is required`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MINLENGTH &&\n itemValue.length < item.validations[i].expression\n ) {\n isValid =\n itemValue && itemValue.length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Minimum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MAXLENGTH &&\n itemValue.length > item.validations[i].expression\n ) {\n isValid =\n itemValue && itemValue.length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Maximum ${item.validations[i].expression} characters`\n );\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MINIMUM &&\n isValid\n ) {\n if(item.control === EFormControl.CALENDAR){\n isValid = minMaxValidDate === 'minimum' ? this.setErrorMessage(item, `Minimum ${valid} ${item.validations[i].expression}`) : true;\n }else if(itemValue < item.validations[i].expression){\n isValid =\n itemValue && itemValue.length > item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Minimum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.MAXIMUM &&\n isValid\n ) {\n if(item.control === EFormControl.CALENDAR){\n isValid = minMaxValidDate === 'greater' ? this.setErrorMessage(item, `Maximum ${valid} ${item.validations[i].expression}`) : true;\n }else if(itemValue > item.validations[i].expression){\n isValid =\n itemValue && itemValue.length < item.validations[i].expression\n ? true\n : this.setErrorMessage(\n item,\n `${item.label} Maximum ${valid} ${item.validations[i].expression}`\n );\n }\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.PATTERN &&\n !itemValue.match(item.validations[i].expression)\n ) {\n isValid =\n itemValue && itemValue.match(item.validations[i].expression)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.NUMERIC &&\n !itemValue.toString().match(/^(0|[-()1-9]\\d*)$/)\n ) {\n isValid =\n itemValue && itemValue?.toString()?.match(/^(0|[1-9]\\d*)$/)\n ? true\n : this.setErrorMessage(item, `Enter ${item.validations[i].type} for ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.PHONE &&\n !itemValue.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ) {\n isValid =\n itemValue && itemValue.toString().match(/^(?=.*[0-9])[-()0-9\\s]+$/)\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.DECIMAL &&\n !itemValue?.toString()?.match(/^(0|[-()1-9]\\d*)(\\.\\d+)?$/)\n ) {\n isValid =\n itemValue && itemValue.match(/^(0|[1-9]\\d*)(\\.\\d+)?$/)\n ? true\n : this.setErrorMessage(item, `Enter ${item.validations[i].type} for ${valid}`);\n break;\n } else if (\n itemValue &&\n item.validations[i].type == EValidator.EMAIL &&\n !itemValue.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)\n ) {\n isValid =\n itemValue &&\n itemValue.match(\n /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/\n )\n ? true\n : this.setErrorMessage(item, `Enter valid ${valid}`);\n break;\n }\n }\n }\n });\n return isValid;\n }\n\n setErrorMessage(item: IFormField, errorMessage: string): boolean {\n item.errorMessage = errorMessage;\n item.isvalid = false;\n return false;\n }\n\n addFormField(fieldInfo: IFormField): IFormField {\n if (!fieldInfo.label) {\n fieldInfo.label = fieldInfo.field;\n }\n const formField: any = {\n label: fieldInfo.label,\n field: fieldInfo.field,\n displayField: fieldInfo.displayField,\n control: fieldInfo.control,\n showOption: fieldInfo.showOption,\n column: fieldInfo.column,\n row: fieldInfo.row,\n minutesInterval: fieldInfo.minutesInterval,\n value: fieldInfo.value,\n format: fieldInfo.format,\n hidden: fieldInfo.hidden,\n permissions: fieldInfo.permissions,\n validations: fieldInfo.validations,\n id: fieldInfo.id,\n hyperlink: fieldInfo.hyperlink,\n data: fieldInfo.data,\n lookupControl: fieldInfo.lookupControl,\n componentControl: fieldInfo.componentControl,\n optionLabel: fieldInfo.optionLabel,\n optionValue: fieldInfo.optionValue,\n saveAsString: fieldInfo.saveAsString,\n showAllValue: fieldInfo.showAllValue,\n onClick: fieldInfo.onClick,\n onReturn: fieldInfo.onReturn,\n onFocusOut: fieldInfo.onFocusOut,\n onChange: fieldInfo.onChange,\n tables: fieldInfo.tables,\n disabled: fieldInfo.disabled,\n disabledText: fieldInfo.disabledText,\n timeOnly: fieldInfo.timeOnly,\n isPassword: fieldInfo.isPassword,\n textType: fieldInfo.textType,\n monthOnly: fieldInfo.monthOnly,\n showTime: fieldInfo.showTime, // to show time as well in calendar form field\n height: fieldInfo.height,\n showBottomBorder: fieldInfo.showBottomBorder,\n allowSearch: fieldInfo.allowSearch,\n selectMultipleFiles: fieldInfo.selectMultipleFiles,\n SetfileTypes: fieldInfo.SetfileTypes,\n icon: fieldInfo.icon,\n color: fieldInfo.color,\n card: fieldInfo.card,\n uniqueKey: fieldInfo.uniqueKey,\n pathSystemConfig: fieldInfo.pathSystemConfig,\n azureContainer: fieldInfo.azureContainer,\n class: fieldInfo.class\n };\n\n return formField;\n }\n\n addCheckbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.CHECKBOX;\n return this.addFormField(fieldInfo);\n }\n\n addTextbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.INPUT;\n return this.addFormField(fieldInfo);\n }\n\n addDisplayField(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.INPUT;\n fieldInfo.disabled = true;\n fieldInfo.showBottomBorder = true;\n return this.addFormField(fieldInfo);\n }\n\n addNumericTextbox(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.NUMERIC;\n return this.addFormField(fieldInfo);\n }\n\n addSpaceField(fieldInfo: AddFormField): IFormField{\n fieldInfo.control = EFormControl.SPACER;\n return this.addFormField(fieldInfo);\n }\n\n addNewLine(fieldInfo: AddFormField): IFormField{\n fieldInfo.control = EFormControl.BREAK_LINE;\n return this.addFormField(fieldInfo);\n }\n\n addTextArea(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.TEXTAREA;\n return this.addFormField(fieldInfo);\n }\n \n // Adding Report button for DynamicForm\n addReportBtn(fieldInfo: IReportBtn) {\n fieldInfo.control = EFormControl.REPORT;\n return fieldInfo;\n }\n\n addNoteField(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.NOTE_FIELD;\n return this.addFormField(fieldInfo);\n }\n\n addHyperlink(fieldInfo: AddFormField) {\n if(fieldInfo.hyperlink && fieldInfo.hyperlink.component){\n fieldInfo.control = EFormControl.HYPERLINK;\n return this.addFormField(fieldInfo);\n }else{return this.hyperlinkService.buildUrl(\n fieldInfo?.hyperlink?.linkId,\n fieldInfo.hyperlink?.params\n ).then((res: any) => {\n const params = fieldInfo?.hyperlink?.params;\n const link = res;\n if(res && params){\n Object.keys(params).forEach((key)=>{\n if(res.includes('{{'+key+'}}') && params[key] && !params[key].toString()?.includes('{')){\n res = res.replace('{{'+key+'}}', params[key])\n } \n })\n }\n if (fieldInfo.hyperlink?.linkId && fieldInfo.hyperlink.linkId.length > 0) {\n fieldInfo.hyperlink.link = res;\n }\n fieldInfo.control = EFormControl.HYPERLINK;\n let obj: any = this.addFormField(fieldInfo);\n obj['orignalLink'] = link;\n return obj;\n });\n }\n}\n\n addCalendar(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.CALENDAR;\n return this.addFormField(fieldInfo);\n }\n\n // add AutoComplete for Form\n addAutoComplete(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.AUTOCOMPLETE;\n return this.addFormField(fieldInfo);\n }\n\n // Search AutoComplete Data for form\n getAutoCompleteData(formField?: any, uniqueKey?: string, filters?: any[], search: string = ''): any {\n this.requestService.get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters}).subscribe((response: any)=>{\n if(search){\n let existInRecord: boolean = response.records.some((record: any)=> record[formField.displayField] && record[formField.displayField]?.toString()?.toLowerCase() === search?.toLowerCase());\n if(!existInRecord){\n response.records.unshift ({[formField.displayField]: search});\n }\n }\n formField.data = [...response.records];\n });\n }\n\n addDropdown(fieldInfo: AddFormField, dropDownProp?: IDropDownRequest): any {\n fieldInfo.control = EFormControl.DROPDOWN;\n if (dropDownProp) {\n let uniqueKey = dropDownProp.uniqueKey;\n let valueProp = dropDownProp.valueProp;\n let labelProp = dropDownProp.labelProp;\n let filters: ISetFilter[] = dropDownProp.filters && dropDownProp.filters.length > 0 ? dropDownProp.filters : [];\n if (uniqueKey && valueProp && labelProp) {\n return this.getDropdownData(fieldInfo, uniqueKey, valueProp, labelProp, filters);\n }\n } else {\n return this.addFormField(fieldInfo);\n }\n }\n\n getDropdownData(fieldInfo: AddFormField, uniqueKey: string, valueProp: string, labelProp: string, filters: any[]) {\n return this.dropdownService\n .setDropDownList(\n uniqueKey,\n valueProp,\n labelProp,\n filters\n )\n .then((res: any) => {\n fieldInfo.data = res;\n return this.addFormField(fieldInfo);\n })\n .catch((error: any) => {\n this.alertService.apiError(error);\n return this.addFormField(fieldInfo);\n });\n }\n\n addLookUp(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.LOOKUP_INPUT;\n return this.addFormField(fieldInfo);\n }\n\n addDialog(fieldInfo: AddFormField): IFormField {\n return this.addLookUp(fieldInfo);\n }\n\n addComponent(fieldInfo: AddFormField): IFormField {\n fieldInfo.control = EFormControl.COMPONENT;\n return this.addFormField(fieldInfo);\n }\n\n addHeader(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.SECTION_HEADER;\n fieldInfo.class = 'form-header';\n return this.addFormField(fieldInfo);\n }\n\n addMultiSelect(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.MULTISELECT;\n return this.addFormField(fieldInfo);\n }\n\n addFileUpload(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.FILE_UPLOAD;\n return this.addFormField(fieldInfo);\n }\n\n addDisplayFile(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.DISPLAY_FILE;\n return this.addFormField(fieldInfo);\n }\n\n // Adding OnClick Button Function for DynamicForm\n addButton(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.ADD_BUTTON;\n return this.addFormField(fieldInfo);\n }\n\n // Adding Switch Function for DynamicForm\n addSwitch(fieldInfo: IFormField): IFormField {\n fieldInfo.control = EFormControl.SWITCH;\n return this.addFormField(fieldInfo);\n }\n\n // start add new card functionality\n addCard(fieldInfo: IFormField, cardData?: IListFilter): IFormField {\n fieldInfo.control = EFormControl.CARD;\n if (cardData && cardData.uniqueKey) {\n if(cardData.sorts?.length > 0){\n cardData.sorts.forEach((res) =>{\n res.direction = res.direction ? res.direction : EGridSortDirection.ASC;\n });\n } \n return this.getCardData(fieldInfo, cardData.uniqueKey, cardData.filters, cardData.sorts);\n } else {\n return this.addFormField(fieldInfo);\n }\n }\n\n getCardData(fieldInfo: any, uniqueKey: string, filters: any[] = [], sorts: any[] = []): any {\n return this.getCardList(uniqueKey, filters, sorts)\n .then((res: any) => {\n fieldInfo.card.data = res.records;\n return this.addFormField(fieldInfo);\n })\n .catch((error) => {\n this.alertService.apiError(error);\n return this.addFormField(fieldInfo);\n });\n }\n\n // load component on form\n setAddComponentData({formSections}:IDynamicForm,id:string,value:any){\n formSections?.forEach((section)=>{\n section.fields.forEach((field:any)=>{\n if(field.control===EFormControl.COMPONENT && field.componentControl && field.componentControl?.id===id){\n let keys = Object.keys(value);\n keys.forEach((key)=>{\n field.componentControl.data = { ...field.componentControl?.data,[key] : value[key]};\n });\n utilities.changeDynamicFormState(id, field.componentControl.data);\n };\n });\n });\n }\n\n // set formfield value\n setFormFieldValue(\n { formSections }: IDynamicForm,\n field: string,\n value: any,\n displayText: string = ''\n ) {\n formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field?.toLowerCase() === field?.toLowerCase()) {\n if (displayText && displayText.length > 0) {\n formField.value = { text: displayText, value: value };\n } else {\n formField.value = value;\n }\n }\n });\n });\n }\n\n // set formfield property\n setFormFieldProp(\n { formSections }: IDynamicForm,\n field: string,\n props: IDictionary[]\n ) {\n return formSections?.map((section: any) => {\n return section.fields.map((formField: any): any => {\n if (\n (formField.field?.toLowerCase() === field?.toLowerCase()) ||\n (formField.label && formField.label.toString().toLowerCase() === field?.toLowerCase())\n ) {\n return props.map((prop: any) => {\n if (formField.hasOwnProperty(prop.name)) {\n if(prop.name === 'label' && typeof formField.label === 'object' && !prop.override){\n return (formField[prop.name].name = prop.value);\n }else{\n return (formField[prop.name] = prop.value);\n }\n }\n else{\n return (formField[prop.name] = prop.value);\n \n }\n });\n }\n });\n });\n }\n\n getCardList(uniqueKey: string, filters: any[] = [], sorts: any[] = []) {\n return new Promise((resolve, reject) => {\n this.requestService\n .get<any[], any>('/Data/Fetch', { uniqueKey: uniqueKey, filters, sorts })\n .subscribe(\n (response: any) => {\n if (response) {\n return resolve(response);\n } else {\n return resolve([]);\n }\n },\n ({ error }: any) => {\n reject(error);\n }\n );\n });\n }\n // End add new card functionality\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';\n\n@Component({\n selector: 'se-notes',\n templateUrl: './notes.component.html',\n styleUrls: ['./notes.component.scss'],\n})\nexport class NotesComponent implements OnInit {\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig\n ) { }\n\n public note: string = '';\n public disabledText: boolean = false;\n\n ngOnInit(): void {\n this.note = this.config.data.value ?? '';\n this.disabledText = this.config.data.disabledText;\n }\n\n handleCancel() {\n this.ref.close();\n }\n\n handleOk() {\n this.ref.close(this.note);\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef, ViewChildren, QueryList, ComponentFactory, ViewContainerRef, ElementRef, HostListener, } from '@angular/core';\nimport { FormService } from '../../../services/form.service';\nimport { AlertService } from '../../../services/alert.service';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { NotesComponent } from '../../shared/notes/notes.component';\nimport { EFormControl, EHyperlink, IFormField, IDynamicForm, IFormSection, EValidator, IDynamicCard, IFormButton } from '../../../models/form.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport * as utilities from '../../../services/utilities.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport { IDictionary } from '../../../models/common.model';\nimport { Router } from '@angular/router';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DatePipe } from '@angular/common';\nimport { GridService } from '../../../services/grid.service';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'se-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n})\nexport class FormComponent implements OnInit {\n @Input() stickyActions: boolean = true;\n @Input() form: IDynamicForm;\n @Input() hideSaveButton: boolean = false;\n @Input() hideCancelButton: boolean = false;\n @Input() formButtons: IFormButton[] = [];\n @Input() loading: boolean = false;\n @Input() set activeTestMode(val: any) {\n if (val === true) {\n debugger;\n }\n }\n @Output() saveForm: EventEmitter<IFormSection[]> = new EventEmitter();\n @Output() cancelForm: EventEmitter<IFormSection[]> = new EventEmitter();\n @Output() dropDownChangeEvent: EventEmitter<any> = new EventEmitter();\n @Output() sectionClickedEvent: EventEmitter<IFormSection> =\n new EventEmitter();\n @ViewChildren('dynamicComponentContainer', { read: ViewContainerRef })\n dynamicComponentContainer: QueryList<ViewContainerRef>;\n\n dynamicCase = EFormControl;\n permissionType = EPermissionType;\n roles: string[] = [];\n isFormDisabled: boolean = false;\n isFormHidden: boolean = false;\n componentsList: IDictionary[] = [];\n fileUploadUrls: any;\n showfileUploadError: boolean = false;\n cardList: IDynamicCard;\n calenderPreviousValue: string = '';\n defaultDate: string = '';\n lookupFocusOut: boolean = false;\n calendarFormat: string = 'mm/dd/yy';\n setCardData: boolean = false;\n subscription: Subscription;\n\n // apply checked/unChecked prop for CheckBox of the Form\n checked: boolean = true;\n unChecked: boolean = false;\n\n constructor(\n private authService: AuthenticationService,\n private formService: FormService,\n private alertService: AlertService,\n private sanitizer: DomSanitizer,\n public dialogService: DialogService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef,\n private router: Router,\n private el: ElementRef,\n private datePipe: DatePipe,\n private gridService: GridService,\n private pageLoggerService: PageLoggerService\n ) {}\n\n ngOnInit(): void {}\n\n // browser tab close event\n @HostListener('window:beforeunload', ['$event'])\n beforeunloadHandler(event: any) {\n if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {\n return false;\n } else {\n return true;\n }\n }\n\n ngOnChanges() {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n // start cardList reference break functionality\n let formValues = { ...this.form };\n formValues.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (field.isPassword) {\n field.textType = 'password';\n }\n // convert string time into date\n if (field?.control === EFormControl.CALENDAR && field?.onChange) {\n field['previousValue'] = field?.value;\n }\n if (\n field?.control === EFormControl.CALENDAR &&\n field?.timeOnly &&\n (field?.value?.toString().includes('AM') ||\n field?.value?.toString().includes('PM'))\n ) {\n field.value = utilities.setTimeInDate(field.value);\n }\n if (\n field?.control === EFormControl.AUTOCOMPLETE &&\n field?.value &&\n field?.value?.length > 0\n ) {\n const value = field?.value.map(\n (value: any) => value[field?.displayField]\n );\n if (\n value &&\n (value.toString()?.includes(';') ||\n value.toString()?.includes(','))\n ) {\n field.value = value\n .toString()\n .replaceAll(',', ';')\n ?.split(';')\n ?.map((val: any) => ({ [field?.displayField]: val }));\n }\n }\n // convert the multiSelect string value in array\n if (\n field?.control === EFormControl.MULTISELECT &&\n field.value &&\n !Array.isArray(field.value)\n ) {\n if (field.value?.toString()?.includes(',')) {\n field.value = field.value?.toString()?.split(',');\n } else {\n field.value = [field.value];\n }\n }\n if (field?.control === EFormControl.CARD) {\n this.form = {};\n setTimeout(() => {\n field?.card?.data?.forEach((x: any) => {\n if (\n field?.card?.formSections &&\n field?.card?.formSections?.length > 0\n ) {\n x.dynamicForm = {\n formSections: JSON.parse(\n JSON.stringify(field?.card?.formSections)\n ),\n };\n }\n });\n this.form = formValues;\n }, 500);\n }\n // End cardList reference break functionality\n if (field?.control === EFormControl.CHECKBOX) {\n field.value =\n field?.value?.toString()?.toLowerCase() === 'true' ||\n field?.value?.toString()?.toLowerCase() === 'y' ||\n field?.value?.toString() === '1'\n ? true\n : false;\n }\n });\n }\n });\n // apply user role permissions on form\n this.roles = this.authService.getUserRoles();\n this.applyUserPermissions();\n this.applyRequiredFieldValidation();\n this.removeWhiteSpaces();\n this.setHyperlinkComponentRoute();\n setTimeout(() => {\n this.setCalanderWidth();\n }, 3000);\n }\n }\n\n // set calender 2 Or 4 digit year format\n calenderInputValue(formField: IFormField) {\n document\n .getElementsByClassName(formField.field)[0]\n ?.addEventListener('keyup', (val: any) => {\n const year = val?.target?.value?.toString()?.split('/')[2];\n if (year?.length === 4) {\n this.calendarFormat = 'mm/dd/yy';\n formField.value = new Date(val.target.value).toLocaleDateString(\n 'en-US'\n );\n } else if (year?.length) {\n this.calendarFormat = 'mm/dd/y';\n }\n });\n }\n\n // set percent and decimal values\n setnumericvalues() {\n this.form?.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (field?.control === EFormControl.NUMERIC) {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field?.format?.type === 'percent') {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value * 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value * 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n } else if (field?.format?.type === 'decimal') {\n field.value = parseFloat(field.value).toFixed(\n digitsInfo ? digitsInfo : 2\n );\n }\n }\n }\n });\n }\n });\n }\n\n /**\n * Checks if form has any field with dynamic component;\n * Creates component instance using componentFactoryResolver\n * Injects component through viewRef.createComponent()\n * Passes data to component\n * Subscribes to the events passed to the components\n * Finally forces Angular to detech changes\n */\n loadDynamicComponents() {\n this.componentsList = [];\n this.form?.formSections?.forEach((formSection) => {\n formSection.fields.forEach((field: any, fieldIndex) => {\n if (field.control === EFormControl.COMPONENT) {\n const viewRef: any = this.dynamicComponentContainer.find(\n (x) =>\n x.element.nativeElement.id == `${formSection.name}-${fieldIndex}`\n );\n const {\n component: Component,\n data,\n handlers,\n } = field.componentControl;\n const componentFactory: ComponentFactory<any> =\n this.componentFactoryResolver.resolveComponentFactory(Component);\n // Passing data to component\n const componentRef = viewRef?.createComponent(componentFactory);\n if (componentRef) {\n Object.entries(data ?? {}).forEach(([key, value]) => {\n componentRef.instance[key] = value;\n });\n this.componentsList.push({\n name: field.componentControl?.id,\n value: componentRef,\n });\n // Subscribes to the events passed to the components\n if (handlers) {\n Object.entries(handlers).forEach(([event, handler]: any) => {\n (componentRef.instance[event] as EventEmitter<any>)?.subscribe(\n (response) => {\n handler(response);\n }\n );\n });\n }\n }\n // invoke change detection\n this.cdr.detectChanges();\n }\n });\n });\n }\n\n //invoke when file upload OR delete a file\n fileOnchangeEvent() {\n this.setCardData = !this.setCardData;\n // let cardControl: boolean = false;\n // this.form?.formSections?.forEach((formSection)=> {\n // if(formSection?.fields?.some((formField: any)=> formField?.control === EFormControl.CARD)){\n // cardControl = true;\n // }\n // });\n // setTimeout(() => {\n // if(cardControl){\n // this.loadDynamicComponents();\n // }\n // }, 3000);\n }\n\n ngAfterViewInit() {\n // load dynamic components if exist in form\n setTimeout(() => {\n this.setnumericvalues();\n this.onDynamicFormStateChange();\n this.loadDynamicComponents();\n this.setCardResponseId();\n }, 500);\n }\n\n setCardResponseId() {\n utilities.onDynamicCardStateChange().subscribe((res) => {\n if(res.data?.isSave){\n this.setCardIds(res.data);\n } else {\n this.setDeleteCardId(res.data?.cardData);\n }\n });\n }\n\n setDeleteCardId(updatedCardData:any){\n this.form?.formSections?.forEach((section:IFormSection)=>{\n const cardControl = section.fields.find((field:IFormField)=> field.control === EFormControl.CARD);\n if(cardControl){\n cardControl.card.data = updatedCardData;\n };\n });\n \n }\n\n setCardIds(res) {\n res.records = this.gridService.setDataFields(res.records);\n res.records?.forEach((record: any, recordIndex: any) => {\n const matchCard = res.cardsInfo?.find(\n (info, cardIndex) =>\n recordIndex === cardIndex && record[res.fieldName?.toLowerCase()]\n );\n if (matchCard && Object.keys(matchCard)?.length > 0) {\n matchCard[res.fieldName] = record[res.fieldName?.toLowerCase()];\n }\n });\n if (this.form?.formSections?.length > 0) {\n this.form?.formSections.forEach((formSection) => {\n const formField = formSection.fields?.find(\n (field) => field.control === EFormControl.CARD\n );\n if (formField) {\n if (res.cardsInfo?.length > 0) {\n res.cardsInfo?.forEach((cardId) => {\n cardId.id = null;\n });\n }\n formField.card.data = res.cardsInfo;\n }\n });\n }\n this.setCardData = !this.setCardData;\n }\n\n removeWhiteSpaces() {\n this.form?.formSections?.forEach((section) => {\n if (section.class) section.class = section.class.replace(/\\s/g, '');\n });\n }\n\n setHyperlinkComponentRoute() {\n this.form?.formSections?.forEach((formSection) => {\n formSection.fields.forEach((field) => {\n if (\n field.control === EFormControl.HYPERLINK &&\n field.hyperlink?.component\n ) {\n this.router.resetConfig([\n {\n path: 'hyperlink' + field.label,\n component: field.hyperlink.component,\n },\n ...this.router.config,\n ]);\n }\n });\n });\n }\n\n browserTabCloseEvent(event: boolean = false) {\n this.formService.fieldFocusedOut = event;\n }\n\n ngOnDestroy(){\n this.subscription?.unsubscribe();\n }\n\n /**\n * Listens any change in Dynamic Form component State\n */\n onDynamicFormStateChange() {\n this.subscription = utilities.onDynamicFormStateChange().subscribe((response) => {\n if (response.id && response.data) {\n const componentRefObj = this.componentsList.find(\n (x) => x.name === response.id\n );\n if (componentRefObj) {\n Object.entries(response.data ?? {}).forEach(([key, value]) => {\n componentRefObj.value.instance[key] = value;\n });\n componentRefObj.value.instance.ngOnInit();\n }\n }\n });\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.form && this.form.formSections) {\n let totalFields: number = 0;\n let disabledFields: number = 0;\n let hiddenFields: number = 0;\n\n this.form.formSections.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((formField) => {\n let permissions: any = formField.permissions;\n let sectionPermissions: any = [];\n if (!permissions) sectionPermissions = formSection.permissions;\n if (!permissions) permissions = this.form.permissions;\n let hasValidEditPermission = false;\n\n if (sectionPermissions && sectionPermissions.length > 0) {\n sectionPermissions.forEach((permission: any) => {\n let isValid: boolean = false;\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n\n if (permission.type === EPermissionType.VIEW) {\n if (isValid) {\n formField.disabled = true;\n } else {\n formSection.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n formField.disabled = false;\n formSection.hidden = false;\n } else {\n formSection.accordionDisabled = true;\n formSection.disabled = true;\n formField.disabled = true;\n }\n }\n });\n });\n } else if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n formField.disabled = true;\n } else {\n formField.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n formField.disabled = false;\n formField.hidden = false;\n } else {\n if (\n formField.permissions &&\n formField.permissions.length > 0\n ) {\n formSection.disabled = false;\n formSection.accordionDisabled = true;\n formField.disabled = true;\n } else {\n formSection.disabled = true;\n formSection.accordionDisabled = true;\n formField.disabled = true;\n }\n }\n }\n }\n });\n }\n\n totalFields++;\n\n if (formField.disabled) {\n disabledFields++;\n }\n\n if (formField.hidden) {\n hiddenFields++;\n }\n });\n }\n });\n\n this.isFormDisabled = totalFields > 0 && totalFields === disabledFields;\n this.isFormHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n\n /**\n * Open IFrame in hyperlink Control\n */\n sectionDisabled(formSection: IFormSection) {\n if (formSection.disabled) {\n return this.disabledSectionFields(formSection, true);\n } else {\n return this.disabledSectionFields(formSection, false);\n }\n }\n\n disabledSectionFields(formSection: IFormSection, disabled: boolean){\n formSection.fields.map((field: IFormField) => {\n field.disabled = disabled;\n });\n return formSection;\n }\n\n loadIFrame(formField: IFormField) {\n this.handleClickEvent(formField);\n const ref = this.dialogService.open(IframeComponent, {\n header: 'Hyperlink',\n width: formField.hyperlink?.width ? formField.hyperlink.width : '90%',\n height: formField.hyperlink?.height ? formField.hyperlink.height : '80%',\n data: { value: formField.hyperlink?.link, iFrameId: formField.label },\n });\n utilities.draggableDialog(formField?.field);\n ref.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n }\n\n /**\n * open Dialog in hyperlink Control\n */\n hyperlinkDialog(formField: IFormField) {\n if (formField.hyperlink?.target === EHyperlink.BLANK) {\n var value = formField.hyperlink.params;\n window.open('hyperlink' + formField.label);\n } else if (formField.hyperlink?.target === EHyperlink.SELF) {\n this.router.navigate(['hyperlink' + formField.label], {\n queryParams: formField.hyperlink.params,\n });\n } else if (formField.hyperlink?.target === EHyperlink.DIALOG) {\n this.onClickEvent(formField);\n const dialog = this.dialogService.open(formField.hyperlink.component, {\n header: formField.hyperlink.data?.header\n ? formField.hyperlink.data?.header\n : '',\n width: formField.hyperlink.width ? formField.hyperlink.width : '',\n style: formField.hyperlink.width?'': {'max-width':'fit-content'},\n height: formField.hyperlink.height ? formField.hyperlink.height : '80%',\n data: formField.hyperlink.params \n });\n const componentName = formField.hyperlink?.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n componentName\n );\n }\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n dialog.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n }\n }\n\n /**\n * open Iframe on Label\n */\n loadLabelControlIFrame(formField: any) {\n const ref = this.dialogService.open(IframeComponent, {\n header: formField.label.name,\n width: formField.label.labelControl.hyperlink.width\n ? formField.hyperlink.width\n : '90%',\n height: formField.label.labelControl.hyperlink?.height\n ? formField.hyperlink.height\n : '80%',\n data: {\n value: formField.label.labelControl.hyperlink?.link\n ? formField.label.labelControl.hyperlink.link\n : '',\n iFrameId: formField.label.name,\n },\n });\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n 'IframeComponent'\n );\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe((res) => {\n if (res) {\n if (formField.onReturn) {\n formField.onReturn(res);\n }\n }\n });\n if (formField && formField.onClick) {\n formField.onClick();\n }\n }\n\n /**\n * find the required field in form\n */\n applyRequiredFieldValidation() {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n this.form.formSections.forEach((section) => {\n section.fields.forEach((field) => {\n if (field.validations && field.validations.length > 0) {\n field.validations.forEach((valid) => {\n if (valid.type === EValidator.REQUIRED) {\n field.requiredField = true;\n }\n });\n }\n });\n });\n }\n }\n\n setFileUrls(fileUrls: any) {\n if (fileUrls && fileUrls.length > 0) {\n this.fileUploadUrls = fileUrls;\n this.showfileUploadError = false;\n }\n }\n\n onSaveForm() {\n let validity = true;\n let errorMessageDetails = '';\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n if (!this.formService.checkValidity(formSection.fields)) {\n formSection.fields?.forEach((formField: any) => {\n if (formField.errorMessage) {\n errorMessageDetails = errorMessageDetails\n ? errorMessageDetails + ' , ' + formField.errorMessage\n : formField.errorMessage;\n }\n });\n let field = formSection.fields.some(\n (field) => field.requiredField && field.errorMessage && !field.value\n );\n if (validity && field) {\n this.alertService.error(\n errorMessageDetails,\n 5000,\n 'REQUIRED FIELD'\n );\n } else {\n this.alertService.error(errorMessageDetails, 5000, 'INVALID FIELD');\n }\n validity = false;\n }\n\n formSection.fields.forEach((field: any) => {\n // set uploadFile URL in FormField in case of FILE_UPLOAD\n if (field.control === EFormControl.FILE_UPLOAD) {\n field.value = this.fileUploadUrls;\n\n if (field.validations && field.validations.length > 0) {\n field.validations.forEach((x: any) => {\n if (x.type === EValidator.REQUIRED && !field.value) {\n this.showfileUploadError = true;\n }\n });\n }\n }\n\n if (field.control === EFormControl.CARD) {\n if (field.card && field.card.data?.length > 0) {\n let selectedData = field.card.data.filter(\n (x: any) => x.selectedCard && x.selectedCard.length > 0\n );\n if (selectedData && selectedData.length > 0) {\n field.card.data = selectedData;\n }\n }\n }\n });\n }\n });\n if (validity) {\n // Save grid on formSave Button\n const saveAllGrid = document.getElementById('saveAllGridValues');\n const getBtns: any =\n this.el?.nativeElement?.getElementsByClassName('saveRow');\n let customComponent: boolean = false;\n let tempValue: any = [];\n // set value as 1 or 0 in case of checkbox\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields && validity) {\n formSection.fields.forEach((field: any) => {\n if (field.value === '' || field.value === undefined) {\n field.value = null;\n }\n //convert date into time as string\n if (\n field.control === EFormControl.CALENDAR &&\n field.timeOnly &&\n field.saveAsString &&\n !field.value?.toString()?.includes('AM') &&\n !field.value?.toString()?.includes('PM')\n ) {\n field.value = this.datePipe.transform(field.value, 'hh:mm a');\n }\n if (field?.control === EFormControl.NUMERIC) {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field?.format?.type === 'percent') {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value / 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value / 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n }\n }\n }\n\n // set value of autoComplete as strings\n if (\n field.control === EFormControl.AUTOCOMPLETE &&\n !field.showAllValue &&\n field.value &&\n field.value.length > 0\n ) {\n const value = field.value.map(\n (value: any) => value[field.displayField]\n );\n if (\n value &&\n (value.toString()?.includes(';') ||\n value.toString()?.includes(','))\n ) {\n tempValue = value;\n field.value = value.toString().replaceAll(',', ';');\n }\n }\n // convert multiSelect array into string\n if (\n field.control === EFormControl.MULTISELECT &&\n field.value &&\n Array.isArray(field.value) &&\n field.saveAsString !== false\n ) {\n field.value = field.value?.toString();\n }\n if (field.control === EFormControl.CHECKBOX) {\n field.value = field.value ? 1 : 0;\n }\n // Save grid on formSave Button\n if (field.control === EFormControl.COMPONENT && !customComponent) {\n customComponent = true;\n if (saveAllGrid) {\n saveAllGrid.click();\n } else if (getBtns && getBtns.length > 0) {\n for (let btn of getBtns) {\n btn?.click();\n }\n }\n }\n });\n }\n });\n this.browserTabCloseEvent(false);\n setTimeout(\n () => {\n this.saveForm.emit(this.form.formSections);\n },\n saveAllGrid ? 80 : 0\n );\n this.form.formSections?.forEach((formSection) => {\n if (formSection.fields) {\n formSection.fields.forEach((field: any) => {\n if (\n field.control === EFormControl.AUTOCOMPLETE &&\n !field.showAllValue\n ) {\n field.value = tempValue\n .toString()\n .replaceAll(',', ';')\n ?.split(';')\n ?.map((val: any) => ({ [field.displayField]: val }));\n }\n if (field.control === EFormControl.CHECKBOX) {\n field.value = field.value === 1 ? true : false;\n }\n if (field?.format?.type === 'percent') {\n const digitsInfo = field?.format?.formatParams?.digitsInfo;\n if (field.value) {\n if (field.format?.formatParams?.allowCalculate) {\n if (digitsInfo) {\n field.value = parseFloat(\n (field.value * 100)?.toString()\n ).toFixed(digitsInfo);\n } else {\n field.value = field.value * 100;\n }\n } else if (digitsInfo) {\n field.value = parseFloat(field.value).toFixed(digitsInfo);\n }\n }\n \n }\n });\n }\n });\n }\n }\n\n onCancelForm() {\n if (this.formService.fieldFocusedOut || this.gridService.columnFocusedOut) {\n this.alertService\n .confirm({\n key: 'cancelButton',\n message: 'You have unsaved changes. Would you like to continue?',\n })\n .then((res) => {\n if (res[0].detail === 'Yes') {\n this.browserTabCloseEvent(false);\n this.gridService.columnFocusedOut = false;\n this.cancelForm.emit(this.form.formSections);\n utilities.removeActiveIconClass();\n }\n });\n } else {\n this.cancelForm.emit(this.form.formSections);\n utilities.removeActiveIconClass();\n }\n }\n\n lookupClearValue(formField: IFormField) {\n if (formField.value) {\n formField.value = '';\n this.browserTabCloseEvent(true);\n }\n if (formField.onChange) {\n formField.onChange(formField);\n }\n this.formService.checkValidity([formField]);\n }\n\n /**\n * set calender width\n */\n setCalanderWidth() {\n const calanderElement = document.querySelectorAll('.p-calendar');\n let form: any = document.querySelector('form');\n let width = form?.clientWidth;\n calanderElement?.forEach((calander: any) => {\n const calanderOfsetLeft = calander.offsetLeft;\n if (calanderOfsetLeft <= width / 2) {\n calander.classList.add('open-right-side');\n }\n });\n }\n\n /**\n * set the dynamic dialog data\n */\n setDialogData(formField: IFormField, data: any): any {\n if (data && formField) {\n let value: any;\n data = utilities.objConvertToLower(data);\n let selection: string = '';\n if (formField.value && typeof formField.value === 'object') {\n if (\n formField.value &&\n formField.value.text &&\n formField.value.text.toString().trim()\n ) {\n selection = formField.value.text?.toString()?.trim();\n if (formField.displayField) {\n value = formField.value?.value?.toString()?.trim();\n }\n }\n } else if (formField.value && formField.value.toString().trim()) {\n selection = formField.value?.toString()?.trim();\n }\n const componentName = data.component?.name;\n if (componentName) {\n this.pageLoggerService.savePageLoggerInfo(\n this.router.url?.substring(1),\n componentName\n );\n }\n return this.dialogService.open(data.component, {\n ...data.data,\n data: {\n selection: selection,\n field: formField.field,\n value: value,\n valueField: data.data?.valueField,\n ...data.data.data,\n },\n });\n }\n }\n\n tabFocusEvent(formField: any) {\n const className = this.el.nativeElement.querySelector(\n '.' + formField.field\n );\n if (className) {\n className.click();\n }\n }\n\n onClickEvent(formField: IFormField) {\n if (formField.onClick && formField.disabled !== true) {\n formField.onClick(formField);\n }\n }\n\n /**\n * open dialog on lookupControl label\n */\n selectLookupLabel(formField: any) {\n if (\n formField.label &&\n formField.label.labelControl &&\n formField.label.labelControl.lookupControl\n ) {\n const ref: any = this.setDialogData(\n formField,\n formField.label.labelControl.lookupControl\n );\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (res) {\n formField.value = utilities.setDialogResponse(\n formField,\n formField?.label.labelControl.lookupControl,\n res\n );\n }\n this.onFocusOutEvent(formField);\n if (formField.label.onReturn)\n formField.label.onReturn(formField.value);\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n this.onClickEvent(formField);\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(formField: IFormField) {\n if (formField.lookupControl) {\n this.lookupFocusOut = true;\n let value = formField.value;\n const ref = this.setDialogData(formField, formField.lookupControl);\n utilities.draggableDialog(\n formField?.field ? formField?.field : formField?.label\n );\n ref.onClose.subscribe(\n (res: any) => {\n if (formField.field) {\n document.getElementById(formField.field)?.focus();\n }\n if (res) {\n formField.value = utilities.setDialogResponse(\n formField,\n formField.lookupControl,\n res\n );\n this.lookupFocusOut = false;\n if (formField.onReturn) formField.onReturn(formField.value, res);\n }\n this.onFocusOutEvent(formField);\n const formFieldValue =\n typeof formField.value === 'object'\n ? formField.value.text\n : formField.value;\n value = typeof value === 'object' ? value.text : value;\n if (formFieldValue !== value) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.onChange(formField);\n }\n }\n },\n ({ error }: any) => {\n this.alertService.apiError(error);\n }\n );\n }\n }\n\n /**\n * onClick event invoked && open Dialog on lookupControl field/label\n */\n handleClickEvent(formField: IFormField) {\n this.onClickEvent(formField);\n if (formField && formField.lookupControl) {\n this.selectLookupLabel(formField);\n this.selectLookupField(formField);\n }\n }\n\n /**\n * set Calender Date Format && set Date Minute interval\n */\n setCalenderDate(formField: IFormField) {\n if (formField.control === EFormControl.CALENDAR) {\n // convert time into date format\n if (\n formField.timeOnly &&\n (formField.value?.toString().includes('AM') ||\n formField.value?.toString().includes('PM'))\n ) {\n formField.value = utilities.setTimeInDate(formField.value);\n }\n if (\n (formField.showTime || formField.timeOnly) &&\n formField.value &&\n formField.minutesInterval\n ) {\n formField.value = new Date(\n utilities.setMinutesInterval(formField.value)\n );\n } else if (\n (formField.showTime || formField.timeOnly) &&\n !formField.value &&\n formField.minutesInterval\n ) {\n formField.value = new Date(utilities.setMinutesInterval(new Date()));\n }\n this.calenderPreviousValue = formField.value;\n }\n }\n calendarChangeValue(formField: any) {\n if (formField.value !== formField.previousValue) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.previousValue = formField.value;\n formField.onChange(formField);\n }\n }\n }\n\n /**\n * invoked section Clicked event\n */\n clickedSection(section: IFormSection) {\n this.sectionClickedEvent.emit(section);\n }\n\n /**\n * open dialog in Note_Field conrtrol\n */\n handleNoteFieldDialog(formfield: IFormField) {\n const dialogRef = this.dialogService.open(NotesComponent, {\n header: formfield.label as string,\n width: '50%',\n data: {\n value: formfield.value,\n disabledText: formfield.disabledText,\n },\n });\n utilities.draggableDialog(\n formfield?.field ? formfield?.field : formfield?.label\n );\n dialogRef.onClose.subscribe(\n (data: any) => {\n if (data && formfield.onReturn) {\n formfield.onReturn(data);\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n setClassName(formField: IFormField): string {\n if (formField.hidden) return ' hidden';\n else return '';\n }\n\n autoSearch(event: any, formField: any) {\n if (formField && event) {\n formField.onReturn(event.query, formField);\n }\n }\n\n /**\n * invoked onFocusOut Event\n */\n onFocusOutEvent(formField: IFormField) {\n let record: any = {};\n this.form.formSections?.forEach((section) => {\n section.fields.forEach((formField) => {\n if (formField.field) {\n record[formField.field] = formField.value;\n }\n });\n });\n utilities.setHyperlinkParamValue(record, this.form);\n this.formService.checkValidity([formField]);\n if (formField && formField.onFocusOut && this.lookupFocusOut === false) {\n formField.onFocusOut(formField);\n }\n }\n\n onBackSpaceEvent(formField: IFormField) {\n if (typeof formField.value === 'object') {\n formField.value.text = formField.value.text.substring(\n 0,\n formField.value.text.length - 1\n );\n if (formField.value.text.length === 1) {\n formField.value = undefined;\n this.formService.checkValidity([formField]);\n }\n }\n if (formField.value && formField.value.length === 1) {\n formField.value = undefined;\n this.formService.checkValidity([formField]);\n }\n }\n\n /**\n * clear the dropdown value when click on x\n */\n onClearValue(formField: IFormField, event: any) {\n this.formService.checkValidity([formField]);\n this.onChangeEvent(formField);\n this.dropDownChangeEvent.emit(formField);\n if (!event.value) {\n this.onFocusOutEvent(formField);\n }\n }\n\n clearDropdownValue(formField: any) {\n this.onClickEvent(formField);\n }\n\n /**\n * Invoke onChange Event when Value Changed\n */\n onChangeEvent(formField: IFormField) {\n this.browserTabCloseEvent(true);\n if (formField.onChange) {\n formField.onChange(formField);\n }\n }\n\n typeOf(value: any) {\n return typeof value;\n }\n\n /**\n * convert unSafe link into safe link\n */\n sanitizeUrl(url: string) {\n let linkUrl: any = url;\n if (linkUrl) {\n linkUrl = this.sanitizer.bypassSecurityTrustUrl(linkUrl);\n }\n return linkUrl;\n }\n\n /**\n * invoke on dynamic buttons click\n */\n onNewButtonClick(button) {\n button.func();\n }\n\n selectedCardClickEvent(data: any) {\n if (\n this.form &&\n this.form.formSections &&\n this.form.formSections.length > 0\n ) {\n this.form.formSections.forEach((section: any) => {\n section.fields.forEach((field: any) => {\n if (field.control === EFormControl.CARD) {\n if (field.card && field.card.data?.length > 0) {\n let obj = field.card.data[data.index];\n if (obj) {\n if (obj.selectedCard) {\n delete obj.selectedCard;\n } else {\n obj['selectedCard'] = 'card-active';\n }\n }\n }\n }\n });\n });\n }\n if (data.selectedCard) {\n data['selectedCard'] = '';\n } else {\n data['selectedCard'] = 'card-active';\n }\n }\n\n changePasswordType(formField) {\n if (formField.textType == 'text') {\n formField.textType = 'password';\n } else {\n formField.textType = 'text';\n }\n }\n onLinkClick(link, formSection){\n if(!link.disabled && !formSection.disabled){\n link.onClick();\n }\n }\n}\n\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { ISelectItem } from '../../../models/grid.model';\n\n@Component({\n selector: 'se-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnChanges {\n @Input() options: ISelectItem[] = [];\n @Input() value: ISelectItem;\n @Output() valueChange: EventEmitter<string> = new EventEmitter();\n public selectedOption: any;\n\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.options.length) {\n if (this.value) {\n this.selectedOption = changes['value'].currentValue.toString().trim();\n } else {\n this.selectedOption = this.options[0];\n this.valueChange.emit(this.selectedOption.value);\n }\n }\n }\n\n handleValueChange(event: { value: string }) {\n this.valueChange.emit(event.value);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'se-gallery',\n templateUrl: './image-gallery.component.html',\n styleUrls: ['./image-gallery.component.css']\n})\nexport class GalleryComponent {\n \n @Input() galleryImage: any;\n @Input() width: string;\n\n responsiveOptions: any[] = [\n {\n breakpoint: '1024px',\n numVisible: 5\n },\n {\n breakpoint: '768px',\n numVisible: 3\n },\n {\n breakpoint: '560px',\n numVisible: 1\n }\n ];\n\n constructor() { }\n}","import { Directive, Input, HostListener } from '@angular/core';\nimport { Table } from 'primeng/table';\n\n@Directive({\n selector: '[pAddRow]',\n})\nexport class AddRowDirective {\n @Input() table: Table;\n @Input() newRow: any;\n @Input() id: string;\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n // Insert a new row\n if (this.table && this.table.value) {\n this.table.value.unshift({\n ...this.newRow,\n [this.id]: Date.now(),\n isNew: true,\n });\n }\n\n // Set the new row in edit mode\n this.table.initRowEdit({\n ...this.newRow,\n [this.id]: Date.now(),\n isNew: true,\n });\n\n event.preventDefault();\n }\n}\n","import { IMenuFilter, GridFilterControlType } from '../../../models/grid.model';\n\nexport const MenuFilters: IMenuFilter = {\n [GridFilterControlType.INPUT]: [\n { label: 'Starts with', value: 'startsWith' },\n { label: 'Contains', value: 'contains' },\n { label: 'Not contains', value: 'notContains' },\n { label: 'Ends With', value: 'endsWith' },\n { label: 'Equals', value: 'equals' },\n { label: 'Not equals', value: 'notEquals' },\n ],\n [GridFilterControlType.NUMERICINPUT]: [\n { label: 'Equals', value: 'equals' },\n { label: 'Not equals', value: 'notEquals' },\n { label: 'Less than', value: 'lt' },\n { label: 'Less than or equal to', value: 'lte' },\n { label: 'Greater than', value: 'gt' },\n { label: 'Greater than or equal to', value: 'gte' },\n ],\n [GridFilterControlType.CALENDAR]: [\n { label: 'Date is', value: 'dateIs' },\n { label: 'Date is not', value: 'dateIsNot' },\n { label: 'Date is before', value: 'dateBefore' },\n { label: 'Date is after', value: 'dateAfter' },\n ],\n};\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IGlobalFilter, ISelectItem, MenuFilterControls } from '../../../models/grid.model';\nimport { MenuFilters } from '../../base/grid/grid.constant';\n\n@Component({\n selector: 'se-filter-menu',\n templateUrl: './filter-menu.component.html',\n styleUrls: ['./filter-menu.component.scss'],\n})\nexport class AppFilterMenuComponent implements OnInit {\n public isMenuOpen: boolean = false;\n public filterOptions: ISelectItem[] = [];\n\n @Input() globalFilter: IGlobalFilter;\n constructor() { }\n\n ngOnInit(): void {\n this.filterOptions = MenuFilters[this.globalFilter.type as MenuFilterControls];\n }\n\n toggleMenu() {\n this.isMenuOpen = !this.isMenuOpen;\n }\n\n handleFilterSelection({ value }: ISelectItem) {\n this.isMenuOpen = false;\n this.globalFilter.matchMode = value;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\nimport { IMenu } from '../../../models/menu.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'se-menu-bar',\n templateUrl: './menu-bar.component.html',\n styleUrls: ['./menu-bar.component.scss'],\n})\nexport class MenuBarComponent implements OnInit {\n @Input() hiddenPanelMenu: boolean = true;\n @Input() toolTip: string;\n // @Input() menuBackColor: string;\n @Input() menuItemsTop: IMenu[];\n @Input() menuItemsBottom: IMenu[];\n @Input() menuFooter: string;\n @Input() menuTitle: string;\n @Output() onClickEvent: EventEmitter<any> = new EventEmitter();\n\n public menuBarItemsTop: MenuItem[] = [];\n public menuBarItemsBottom: MenuItem[] = [];\n public menuBarItems: MenuItem[] = [];\n public totalItems:number=0\n public hiddenItems:number=0\n toggleMenu: boolean = false;\n roles: string[] = [];\n isMenubarHidden: boolean = false;\n\n constructor(\n private authService: AuthenticationService,\n private cookieService: CookieService,\n public router: Router,\n ) { }\n\n ngOnInit(): void { }\n\n ngOnChanges() {\n const toggleMenu = localStorage.getItem('toggleMenu');\n const cookieValue = this.cookieService.get('toggleMenu');\n\n if (toggleMenu) {\n this.toggleMenu = JSON.parse(toggleMenu);\n } else if (cookieValue) {\n this.toggleMenu = JSON.parse(cookieValue);\n }\n\n this.roles = this.authService.getUserRoles();\n\n // apply user role permissions\n this.applyUserPermissions();\n\n this.menuBarItemsTop = this.menuItemsTop.map((x) => ({\n ...x,\n style: x.hidden ? { display: 'none' } : x.style,\n }));\n\n this.menuBarItemsBottom = this.menuItemsBottom?.map((x) => ({\n ...x,\n style: x.hidden ? { display: 'none' } : x.style,\n }));\n }\n\n toggleSidebar() {\n this.toggleMenu = !this.toggleMenu;\n localStorage.setItem('toggleMenu', JSON.stringify(this.toggleMenu));\n this.cookieService.set('toggleMenu', JSON.stringify(this.toggleMenu));\n }\n\n clickEvent() {\n this.onClickEvent.emit();\n }\n\n // apply user role permissions\n applyUserPermissions() {\n\n\n\n if (this.menuItemsTop || this.menuBarItemsBottom) { \n this.menuItemsTop? this.setUserPermissionsBasedOnMenuItemsList(this.menuItemsTop):'' \n this.menuItemsBottom? this.setUserPermissionsBasedOnMenuItemsList(this.menuItemsBottom):'' \n this.isMenubarHidden = this.totalItems > 0 && this.totalItems ===this.hiddenItems;\n }\n }\n\n setUserPermissionsBasedOnMenuItemsList(menuItems: IMenu[]){\n \n\n menuItems.forEach((menu) => {\n if (menu.items) {\n menu.items.forEach((item) => {\n let permissions: any = item.permissions;\n if (!permissions) permissions = menu.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (permission.type === EPermissionType.VIEW) {\n if (isValid) {\n hasValidEditPermission = true;\n item.disabled = false;\n item.hidden = false;\n } else {\n item.hidden = true;\n }\n } \n }\n });\n }\n\n this.totalItems++;\n\n if (item.hidden) {\n item.style = { display: 'none' };\n this.hiddenItems++;\n }\n });\n\n // if all items of menu is hidden then hide menu as well\n menu.hidden =\n menu.items.length === menu.items.filter((x) => x.hidden).length;\n }\n }); \n }\n}","import { Type } from '@angular/core';\nimport { IPermission } from './user-info.model';\n\nexport const ESideBar = {\n LEFT: 'left-sidebar',\n RIGHT: 'right-sidebar',\n};\n\nexport interface ISidebar {\n icon: string;\n label?: string;\n action?: string;\n section: string;\n component?: Type<any>;\n data?: IData;\n onReturn?: (data: any) => any;\n onClick?: (value: any) => void;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n id?: string;\n tooltip?: string\n iFrame?: IFrame;\n linkId?:string;\n params?: {[key: string]: any};\n\n}\n\nexport enum ESidebarAction {\n NAVIGATION = 'navigation',\n OPENDIALOG = 'dialog',\n IFRAME = '_iframe',\n}\n\nexport interface IFrame {\n link?: string;\n linkId?: string;\n width?: string;\n height?: string;\n}\n\nexport interface IData {\n header?: string;\n width?: string;\n height?: string;\n data?: any;\n scrollable?: boolean;\n}\n","import { Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ESidebarAction, ISidebar } from '../../../models/sidebar.model';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { HyperlinkService } from '../../../services/hyperlink.service';\nimport { PageLoggerService } from '../../../services/page-logger.service';\nimport { IframeComponent } from '../iframe/iframe.component';\nimport * as utilities from '../../../services/utilities.service';\nimport { AlertService } from '../../../services/alert.service';\n\n@Component({\n selector: 'se-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnInit {\n toggleMenu: boolean = false;\n loadComponentName = '';\n openDialogs: any = [];\n globalListenFunc: Function;\n @Input() navHidden: boolean = false;\n @Input() collapseSidebar: boolean = false;\n @Input() menuTitle: string;\n @Input() set sidebarItems(newSidebarItems: ISidebar[]) {\n if (newSidebarItems) {\n this.sidebarItemsList = newSidebarItems;\n this.initializeSideBar();\n }\n }\n\n public sidebarItemsList: ISidebar[] = [];\n public menuItems: MenuItem[] = [];\n roles: string[] = [];\n isSidebarHidden: boolean = false;\n\n constructor(\n private instance: Renderer2,\n private authService: AuthenticationService,\n public dialogService: DialogService,\n private router: Router,\n private route: ActivatedRoute,\n private pageLoggerService: PageLoggerService,\n private hyperlinkService: HyperlinkService,\n private alertService: AlertService\n ) { }\n\n ngOnInit(): void {}\n\n initializeSideBar() {\n this.roles = this.authService.getUserRoles();\n // apply user role permissions\n this.applyUserPermissions();\n this.menuItems = this.sidebarItemsList.map((x: any) => ({\n label: x.label,\n icon: x.icon,\n id: x.id,\n section: x.section,\n expanded: x.expanded,\n action: x.action,\n items: x.items && x.items.length > 0 ? this.setMenuItems(x) : [],\n title: this.setMenuTitle(x),\n command: ({ item }) => {\n if (x.action && x.action === ESidebarAction.NAVIGATION) {\n this.navigateToSection(x, item);\n } else if (x.action && x.action === ESidebarAction.OPENDIALOG) {\n this.openDialog(x, item);\n } else if (x.action && x.action === ESidebarAction.IFRAME) {\n this.loadIFrame(x, item);\n } else {\n this.handleActiveItem(item);\n }\n },\n style: {\n borderBottom: '', // '1px solid #e9ecef',\n display: x.hidden ? 'none' : '',\n },\n onClick: x.onClick,\n onReturn: x.onReturn,\n disabled: x.disabled,\n }));\n }\n\n setMenuTitle(x: any): string {\n return x.tooltip ? x.tooltip : !x.label ? x.section : '';\n }\n\n setMenuItems(x: any): any {\n return x.items.map((menu: any) => ({\n label: menu.label,\n icon: menu.icon,\n id: menu.id,\n section: menu.section,\n expanded: menu.expanded,\n action: menu.action,\n title: this.setMenuTitle(x),\n command: ({ item }: any) => {\n if (x.action && x.action === ESidebarAction.NAVIGATION) {\n this.navigateToSection(menu, item);\n } else if (menu.action && menu.action === ESidebarAction.OPENDIALOG) {\n this.openDialog(menu, item);\n } else if (menu.action && menu.action === ESidebarAction.IFRAME) {\n this.loadIFrame(menu, x);\n }\n this.handleActiveItem(item);\n },\n style: {\n borderBottom: '', // '1px solid #e9ecef',\n display: menu.hidden ? 'none' : '',\n },\n onClick: menu.onClick,\n onReturn: menu.onReturn,\n disabled: menu.disabled,\n }))\n }\n\n loadIFrame(menu: any, item: any) {\n if(menu.iFrame.linkId){\n this.hyperlinkService.buildUrl(menu.iFrame.linkId, menu?.params).then((res)=>{\n if(res){\n menu.iFrame['link'] = res;\n this.loadIFrameData(menu, item);\n }else{\n this.alertService.error(\"No Link Found Against this linkId\");\n }\n })\n }else{\n this.loadIFrameData(menu, item);\n }\n }\n\n loadIFrameData(menu: ISidebar, item: any) {\n if (menu) {\n const dialogRef = this.dialogService.open(IframeComponent, {\n header: menu['data']?.header ? menu['data']?.header : menu.section ,\n width: menu.iFrame?.width ? menu.iFrame.width : '90%',\n height: menu.iFrame?.height ? menu.iFrame.height : '80%',\n data: { value: menu.iFrame?.link, iFrameId: menu.section },\n });\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), 'IframeComponent');\n\n this.handleActiveItem(item);\n utilities.draggableDialog(menu.label)\n dialogRef.onClose.subscribe((data: any) => {\n this.handleActiveItem(item, false);\n if (data && menu.onReturn) {\n menu.onReturn(data);\n }\n });\n }\n }\n\n toggleSidebar() {\n this.toggleMenu = !this.toggleMenu;\n localStorage.setItem('toggleMenu', JSON.stringify(this.toggleMenu));\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.sidebarItemsList) {\n let totalItems: number = 0;\n let hiddenItems: number = 0;\n\n this.sidebarItemsList.forEach((item, index) => {\n let permissions: any = item.permissions;\n let hasValidEditPermission = false;\n\n item.id = index.toString();\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n item.disabled = true;\n } else {\n item.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n item.disabled = false;\n item.hidden = false;\n } else {\n item.disabled = true;\n }\n }\n }\n });\n }\n\n totalItems++;\n\n if (item.hidden) {\n hiddenItems++;\n }\n });\n\n this.isSidebarHidden = totalItems > 0 && totalItems === hiddenItems;\n }\n }\n\n /**\n *\n * @ param menu\n * @ param item\n * Passes the sidebar array to contain all ISidebar property like\n * Passes the event of the menu\n */\n\n openDialog(menu: ISidebar, item: any): void {\n let ctrl: string = '';\n this.globalListenFunc = this.instance.listen('document', 'keydown', e => {\n ctrl = e.key;\n });\n setTimeout(() => {\n if (ctrl === 'Control') {\n //open component on new tab\n this.openComponentInTab(menu)\n } else {\n //open component in dialog\n this.openComponentInDialog(menu, item)\n }\n }, 250);\n }\n \n openComponentInTab(menu: ISidebar) {\n let route: any = {}\n this.router.config.forEach((parentRoute) => {\n if (parentRoute.component?.name === menu.component?.name) {\n route = parentRoute;\n } else if (parentRoute.children) {\n parentRoute?.children?.forEach((childRoute) => {\n if (childRoute.component?.name === menu.component?.name) {\n route = childRoute;\n }\n })\n }\n })\n if (route) {\n let params = {};\n this.route.queryParams.subscribe((param: any) => {\n if (param && Object.keys(param)?.length > 0) {\n params = param\n }\n })\n const url = this.router.serializeUrl(this.router.createUrlTree([route?.path], { queryParams: params }));\n window.open(url, '_blank');\n }\n }\n \n openComponentInDialog(menu:ISidebar, item:any){\n const menuData:any = menu.data ? menu.data : menu;\n menuData.style ={background: '#fff'}\n if(menuData.scrollable == false){\n menuData.styleClass = \"small-model\";\n }else{\n menuData.styleClass = \"sidebar-datepicker\";\n }\n if (menu.component) {\n const dialogRef = this.dialogService.open(menu.component, menuData);\n this.pageLoggerService.savePageLoggerInfo(this.router.url?.substring(1), menu.component?.name);\n this.openDialogs.push(dialogRef);\n this.handleActiveItem(item);\n\n if (this.openDialogs && this.openDialogs.length > 1) {\n this.openDialogs[0].close();\n this.openDialogs.shift();\n }\n utilities.draggableDialog(menu.label)\n dialogRef.onClose.subscribe((data: any) => {\n this.handleActiveItem(item, false);\n if (data && menu.onReturn) {\n menu.onReturn(data);\n }\n });\n }\n }\n\n /**\n *\n * @ param x\n * @ param item\n * Passes the sidebar array to contain all ISidebar property like\n * Passes the event of the menu\n */\n\n navigateToSection(x: ISidebar, item: any): void {\n this.instance?.selectRootElement(`.${x.section?.replace(/\\s/g, \"\")}`, true)?.scrollIntoView({ behavior: 'smooth' });\n this.handleActiveItem(item);\n }\n\n /**\n *\n * @param item\n * Passes the event of the menu\n */\n handleActiveItem({ icon }: any, closeDialog: boolean = true): void {\n this.menuItems = this.menuItems.map((x) =>\n x.icon === icon && closeDialog\n ? { ...x, styleClass: 'active-icon' }\n : {\n ...x,\n styleClass: '',\n style: {\n borderBottom: '1px solid #e9ecef',\n display: x.style?.display === 'none' ? 'none' : '',\n },\n }\n );\n }\n\n clickedMenu(menu: MenuItem[]) {\n menu.map((item: any) => {\n const matchedItem: any = this.sidebarItemsList.find((x) => x.id == item.id);\n if (\n item.styleClass === 'active-icon' &&\n matchedItem &&\n matchedItem.onClick\n ) {\n this.hyperlinkService\n .addHyperlinks(matchedItem)\n .then((response: any) => {\n if (matchedItem.linkId) {\n this.hyperlinkService.setSidebarLink(\n response,\n this.sidebarItemsList\n );\n } else {\n matchedItem.onClick(item);\n }\n });\n }\n });\n }\n \n}","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { IHeader } from '../../../models/header.model';\nimport { EFormControl } from '../../../models/form.model';\nimport { AuthenticationService } from '../../../services/authentication.service';\nimport { EPermissionType, IPermission } from '../../../models/user-info.model';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'se-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit, OnChanges {\n @Input() headers: IHeader;\n\n dynamicCase = EFormControl;\n roles: string[] = [];\n isHeaderHidden: boolean = false;\n\n constructor(private authService: AuthenticationService, public datepipe: DatePipe) {}\n\n ngOnInit(): void {\n this.roles = this.authService.getUserRoles();\n // apply user role permissions on form\n this.applyUserPermissions();\n }\n\n ngOnChanges(): void {\n if(this.headers && this.headers.fields){\n this.headers.fields.forEach((x) => {\n if (!x.showTime && !x.timeOnly && x.value?.toString().match(/[0-9]+-\\s?/g)) {\n x.value = this.datepipe.transform(x.value, 'yyyy-MM-dd');\n }\n if (x.value?.toString().includes(':') && x.timeOnly) {\n const index = x.value.indexOf(':');\n const time = x.value.substring(index - 2, index + 6);\n x.value = time;\n }\n });\n }\n }\n\n // apply user role permissions\n applyUserPermissions() {\n if (this.headers) {\n let totalFields: number = 0;\n let hiddenFields: number = 0;\n\n this.headers.fields.forEach((headerField) => {\n let permissions: any = headerField.permissions;\n if (!permissions) permissions = this.headers.permissions;\n let hasValidEditPermission = false;\n\n if (permissions && permissions.length > 0) {\n permissions.forEach((permission: any) => {\n let isValid: boolean = false;\n if (permission.roles && permission.roles.length > 0) {\n permission.roles.forEach((role: any) => {\n if (!isValid && this.roles && this.roles.includes(role)) {\n isValid = true;\n }\n });\n if (\n permission.type === EPermissionType.VIEW &&\n !hasValidEditPermission\n ) {\n if (isValid) {\n headerField.disabled = true;\n } else {\n headerField.hidden = true;\n }\n } else if (permission.type === EPermissionType.EDIT) {\n if (isValid) {\n hasValidEditPermission = true;\n headerField.disabled = false;\n headerField.hidden = false;\n } else {\n headerField.disabled = true;\n }\n }\n }\n });\n }\n\n totalFields++;\n\n if (headerField.hidden) {\n hiddenFields++;\n }\n });\n\n this.isHeaderHidden = totalFields > 0 && totalFields === hiddenFields;\n }\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n loaderState = new Subject<any>();\n\n constructor() {}\n\n /**\n * Shows loader\n */\n showLoader(isDarkBackground = true) {\n this.loaderState.next({ loading: true, isDarkBackground });\n }\n\n /**\n * Hides loader\n */\n hideLoader() {\n this.loaderState.next({ loading: false });\n }\n\n /**\n * Fires on loader state changed.\n * @returns {Observable<any>}\n */\n onLoaderStateChange(): Observable<any> {\n return this.loaderState.asObservable();\n }\n}\n","import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoaderService } from '../../../services/loader.service';\n\n@Component({\n selector: 'se-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnInit, OnDestroy {\n isLoading = false;\n isDarkBackground = true;\n loaderSubscription$: Subscription = new Subscription();\n\n constructor(\n public loaderService: LoaderService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.loaderSubscription$ = this.loaderService\n .onLoaderStateChange()\n .subscribe((state: any) => {\n this.isLoading = state.loading ? true : false;\n this.isDarkBackground = state.isDarkBackground ? true : false;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.loaderSubscription$) {\n this.loaderSubscription$.unsubscribe();\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ESelectFileType, IFormField } from '../../../models/form.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { RequestService } from '../../../services/request.service';\n@Component({\n selector: 'se-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class FileUploadComponent implements OnInit {\n @Input() acceptFileTypes: any;\n @Input() allowMultiple: boolean = false;\n @Input() fields: any;\n @Output() fileUrl: EventEmitter<any> = new EventEmitter();\n @Output() uploadFileOnReturn: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private requestService: RequestService,\n private alertService: AlertService\n ) {}\n\n ngOnInit(): void {}\n\n uploadFile(files: any) {\n let fileData = new FormData(); \n let chooseFile:boolean = false;\n for (let i = 0; i < files.length; i++) {\n if (files[i]) {\n chooseFile = true;\n fileData.append(files[i].name, files[i]);\n }\n }\n\n if (fileData && chooseFile) {\n if (this.fields && this.fields.uniqueKey?.length > 0) {\n fileData.append('uniqueKey', this.fields?.uniqueKey);\n }else if(this.fields && this.fields.pathSystemConfig?.length > 0){\n fileData.append('azureContainer', this.fields.pathSystemConfig);\n }\n this.requestService.get<any[], any>('/Upload', fileData).subscribe(\n (data: any) => {\n if (data) {\n this.alertService.success('File Upload Successfully.');\n if (this.fields?.onReturn) {\n this.fields.onReturn(data.results);\n this.uploadFileOnReturn.emit();\n }\n this.fileUrl.emit(data.results);\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n if (this.fields.onReturn) {\n this.fields.onReturn(error);\n this.uploadFileOnReturn.emit();\n }\n }\n );\n }\n }\n onClickEvent() {\n if (this.fields && this.fields.onClick) {\n this.fields.onClick();\n }\n } \n}\n","import { Component, EventEmitter, OnInit, Optional, Output } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { EValidator, IDynamicForm } from '../../../models/form.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { FormService } from '../../../services/form.service';\nimport { RequestService } from '../../../services/request.service';\nimport * as utilities from '../../../services/utilities.service';\n\n@Component({\n selector: 'se-caption',\n templateUrl: './caption.component.html',\n styleUrls: ['./caption.component.scss'],\n})\nexport class CaptionComponent implements OnInit {\n dynamicForm: IDynamicForm;\n id: number;\n caption: string;\n\n constructor(\n private formService: FormService,\n private requestService: RequestService,\n private alertService: AlertService,\n @Optional() public config: DynamicDialogConfig,\n @Optional() public ref: DynamicDialogRef\n ) {}\n\n ngOnInit(): void {\n if (this.config.data) {\n this.id = this.config.data.id;\n this.caption = this.config.data.caption;\n }\n this.initilizeForm();\n }\n\n initilizeForm() {\n this.dynamicForm = {\n formSections: [\n {\n fields: [\n this.formService.addTextbox({\n field: 'fileCaption',\n label: 'Caption',\n value: this.caption,\n column: 12,\n validations: [{ type: EValidator.REQUIRED }]\n }),\n ],\n },\n ],\n };\n }\n\n saveForm(formFiels: any) {\n this.requestService\n .get<any[], any>('/AzureUpload/UpdateCaption', {\n Id: this.id,\n fileCaption: utilities.getFormFieldValue(\n this.dynamicForm,\n 'fileCaption'\n ),\n })\n .subscribe(\n (response: any) => {\n if (response) {\n this.alertService.success('Caption added successfully.');\n this.ref.close(response);\n }\n },\n ({ error }) => {\n this.ref.close();\n this.alertService.apiError(error);\n }\n );\n }\n cancelForm(event: any) {\n //console.log('CancelForm: ', event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { IDynamicCard, IDynamicForm, IViewCardProp } from '../../../models/form.model';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { GridService } from '../../../services/grid.service';\nimport * as utilities from '../../../services/utilities.service';\nimport { ConfirmationService } from 'primeng/api';\n\n@Component({\n selector: 'se-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit {\n @Output() selectedCard: EventEmitter<any> = new EventEmitter();\n // @Output() onDeleteCard: EventEmitter<any> = new EventEmitter();\n @Input() data: any = [];\n @Input() width: string = '';\n @Input() height: string = '';\n @Input() card: any;\n @Input() setCardData: boolean;\n dynamicForm: IDynamicForm;\n showFiles: boolean = false;\n displayCardInfo: IViewCardProp;\n\n constructor(\n public dialogService: DialogService,\n private gridService: GridService,\n private confirmationService: ConfirmationService\n ) {}\n\n ngOnInit(): void {}\n\n ngOnChanges() {\n if (this.card) {\n let { data, formSections, cardInfo }: any = this.card;\n if(cardInfo && Object.keys(cardInfo).length){\n this.displayCardInfo = cardInfo;\n data = this.gridService.setDataFields(data);\n const newArr = [];\n data?.forEach((record)=>{\n if(!Object.keys(record)?.includes('azurecontainerid')){\n newArr.push({...record, blobfileurl: record[cardInfo.url?.toLowerCase()], filecaption: record[cardInfo.caption?.toLowerCase()], fileextension: record[cardInfo.extension?.toLowerCase()]});\n } else {\n newArr.push(record);\n }\n });\n this.data = newArr;\n } else {\n this.data = this.gridService.setDataFields(data);\n }\n this.dynamicForm = { formSections };\n // set the default value of allowDelete, allowEditableCaption and allowDownload\n this.setCardPropValue('allowDownload');\n this.setCardPropValue('allowDelete');\n this.setCardPropValue('allowEditableCaption');\n //files.allowEditableCaption = this.setCardPropValue(files.allowEditableCaption);\n /** In case of when we are using this component for stand alone then if formSection is exist in\n the this.card and then add in the data array.\n */\n if (this.data) {\n this.data.forEach((x: any) => {\n if (!x.dynamicform) {\n x.dynamicform = JSON.parse(JSON.stringify(this.dynamicForm));\n }\n utilities.setCardFieldsData(x);\n });\n }\n }\n }\n\n // set the default value of allowDelete, allowEditableCaption and allowDownload\n setCardPropValue(prop:string){\n if(!this.card[prop]?.toString()?.length) {\n this.card[prop]= true;\n }\n }\n\n dragAndDrop(event: any) {\n moveItemInArray(this.data, event.previousIndex, event.currentIndex);\n event.item?.element?.nativeElement;\n this.card.data = this.data;\n this.card['change'] = true;\n if (this.card && this.card.onSort) {\n this.card.onSort(this.data);\n }\n }\n\n deleteImage(event: any) {\n this.confirmationService.confirm({\n message: 'Are you sure that you want to delete this Image?',\n header: 'Delete Confirmation',\n icon: 'pi pi-exclamation-triangle',\n key: 'handlecolumnActions',\n accept: () => {\n if (this.data && event) {\n let arr = [...this.data];\n const index = arr.findIndex(\n (i) => i.blobfileurl === event.blobfileurl\n );\n let obj = arr[index];\n arr.splice(index, 1);\n this.data = [...arr];\n\n if (this.card && this.card.onDelete) {\n obj = this.replacePropName(obj);\n this.card.onDelete(obj);\n // this.onDeleteCard.emit();\n }\n }\n this.confirmationService.close();\n },\n reject: () => {\n this.confirmationService.close();\n },\n });\n }\n\n replacePropName(cardInfo:any){\n if(this.displayCardInfo && Object.keys(this.displayCardInfo).length > 0){\n const cardProp = {...this.displayCardInfo};\n const obj = {...cardInfo,[cardProp.url]: cardInfo.blobfileurl,[cardProp.caption]: cardInfo.filecaption,[cardProp.extension]: cardInfo.fileextension};\n return obj;\n } else {\n return cardInfo;\n }\n }\n\n saveCaption(event: any) {\n if (this.data && event) {\n let arr = [...this.data];\n const index = arr.findIndex((i) => i.blobfileurl === event.blobfileurl);\n let obj = arr[index];\n if (index !== -1) {\n obj.filecaption = event.caption;\n arr.splice(index, 1, obj);\n this.card.data = arr;\n this.card['change'] = true;\n }\n if (this.card && this.card?.onCaptionSave) {\n obj = this.replacePropName(obj);\n this.card.onCaptionSave(obj);\n }\n }\n }\n\n onClickEvent(data: any, index: number){\n data['index'] = index;\n this.selectedCard.emit(data);\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ConfirmationService } from 'primeng/api';\nimport { ESelectFileType } from '../../../models/form.model';\n\n@Component({\n selector: 'se-file',\n templateUrl: './file.component.html',\n styleUrls: ['./file.component.scss'],\n})\nexport class fileComponent implements OnInit {\n @Input() url: string = '';\n @Input() caption: string = '';\n @Input() width: string = '';\n @Input() height: string = '200px';\n @Output() onDeleteEvent: EventEmitter<any> = new EventEmitter();\n @Output() onSaveEvent: EventEmitter<any> = new EventEmitter();\n @Input() id: number;\n @Input() name: string = '';\n @Input() type: any;\n @Input() allowDownloadFile: boolean = true;\n @Input() allowEditableCaption: boolean = true;\n @Input() allowDeleteFile: boolean = true;\n editableCaption: boolean = false;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n ngOnInit(): void {\n this.checkFileExtension();\n }\n\n checkFileExtension() {\n switch (this.type) {\n case 'png':\n case 'jpeg':\n case 'jfif':\n case 'jpg': {\n this.type = '.image';\n break;\n }\n case 'xlsx':\n case 'xls':\n case 'xlsm':\n case 'txt': {\n this.type = ESelectFileType.EXCEL;\n break;\n }\n case 'pdf':\n case 'html': {\n this.type = ESelectFileType.PDF;\n break;\n }\n case 'doc':\n case 'docx': {\n this.type = ESelectFileType.DOCUMENT;\n break;\n }\n }\n }\n\n downloadFile(url: string) {\n const link: any = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.click();\n }\n\n captionClickEvent() {\n if (this.allowEditableCaption) {\n this.editableCaption = true;\n }\n }\n\n captionSave(\n id: number,\n name: string,\n url: string,\n type: any,\n caption: string\n ) {\n let obj = {\n id: id,\n name: name,\n blobfileurl: url,\n type: type,\n caption: caption,\n };\n if(caption !== null){\n this.caption = caption;\n this.editableCaption = false;\n this.onSaveEvent.emit(obj);\n }\n }\n\n onDeleteFile(\n id: number,\n name: string,\n url: string,\n type: any,\n caption: string\n ) {\n let obj = {\n id: id,\n name: name,\n blobfileurl: url,\n type: type,\n caption: caption,\n };\n this.onDeleteEvent.emit(obj);\n }\n\n cancel() {\n this.editableCaption = false;\n }\n}\n","import { Component, Input, OnInit, Optional } from '@angular/core';\nimport { RequestService } from '../../../../../services/request.service';\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\nimport { EFormControl, IDynamicForm, IFormField } from '../../../../../models/form.model';\nimport { AlertService } from '../../../../../services/alert.service';\nimport { FormService } from '../../../../../services/form.service';\n\n\n@Component({\n selector: 'se-report-filter',\n templateUrl: './report-filter.component.html',\n styleUrls: ['./report-filter.component.scss']\n})\nexport class ReportFilterComponent implements OnInit {\n dynamicForm:IDynamicForm;\n formFields: IFormField[] = [];\n\n constructor(@Optional() public config: DynamicDialogConfig,private requestService: RequestService, private formService:FormService, private alertService: AlertService) { }\n\n ngOnInit(): void {\n this.createDynamicFields();\n \n }\n initializeForm(){\n this.dynamicForm = {\n formSections:[\n {\n fields: [\n ...this.formFields,\n {\n label: 'Download Report',\n control: EFormControl.ADD_BUTTON,\n hidden: this.config?.data?.hideGenerateReportBtn,\n onClick: () => {\n this.downloadReport();\n },\n }\n ]\n }\n ]\n \n }\n }\n createDynamicFields() {\n this.requestService.getOne<Response, any>('/ReportConfig/ById',this.config.data?.Id).subscribe(\n (data: any) => {\n const reportJson = JSON.parse(data?.report);\n this.formFields = reportJson?.FormFields;\n this.setParamFieldValue();\n this.initializeForm();\n // set dropdown data based on matched field.\n this.setDropDownData(reportJson);\n },\n (error) => {\n this.initializeForm();\n this.alertService.error(error);\n }\n );\n }\n setParamFieldValue(){\n if(this.config.data && this.config.data.param?.length > 0){\n this.config.data.param.forEach((param: any)=>{\n this.formFields.forEach((field)=>{\n const matchKey = Object.keys(param)?.find((key)=> key?.toLowerCase() === field.field?.toLowerCase());\n if(matchKey && matchKey.length > 0){\n field.value = param[matchKey];\n }\n });\n });\n }\n }\n\n setDropDownData(reportJson: any) {\n reportJson.Parameters?.forEach((record: any) => {\n if(record.isuniquekey){\n this.requestService.get<any[], any>('/Data/Fetch', {\n uniqueKey: record.isuniquekey,\n filters: []\n }).subscribe((response:any)=>{\n this.formService.setFormFieldProp(this.dynamicForm, record.paramname, [\n { name: 'data', value: response.records }, \n ]); \n },(error) => {\n this.alertService.apiError(error);\n })\n }\n });\n }\n getFilters(){\n let filters: any = [];\n this.dynamicForm?.formSections?.forEach((section)=>{\n section.fields?.forEach((field)=>{\n if(field && field.value){\n filters.push({field: field.field, matchMode: 'equal', operator:'and', value: field.value});\n };\n });\n }); \n return filters;\n }\n \n downloadReport(){ \n const filters:any = this.getFilters(); \n this.requestService.download('/Report/Generate', { Id: this.config?.data?.Id, filters: filters })\n .subscribe(\n (response) => {\n var newBlob = new Blob([response.body], { type: 'application/pdf' });\n const data = window.URL.createObjectURL(newBlob);\n const a = document.createElement('a');\n a.href = data;\n const header = response?.headers?.get('Content-Disposition');\n const fileName = header?.split('filename=')?.[1]?.split(\";\")[0]?.replaceAll(/\\\"/g, '');\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n (error) => {\n this.alertService.apiError(error);\n \n }\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EFormControl, IDynamicForm, IFormField } from '../models/form.model';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ReportFilterComponent } from '../components/base/report/report-Filter/report-filter/report-filter.component';\nimport { RequestService } from './request.service';\nimport { AlertService } from './alert.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReportService {\n formFields: IFormField[] = [];\n paramsCopy: any = [];\n constructor(public dialogService: DialogService,\n private requestService: RequestService,\n private alertService: AlertService,) { }\n\n downloadReport(repId: number, params: any, showDialog: boolean = false, form: IDynamicForm = {}) {\n params?.forEach((p) => {\n this.paramsCopy.push(Object.assign({}, p));\n });\n this.createDynamicFields(repId, params, showDialog, form);\n }\n\n createDynamicFields(repId, params, showDialog, form) {\n this.requestService\n .getOne<Response, any>('/ReportConfig/ById', repId)\n .subscribe(\n (data: any) => {\n if (data) {\n const reportJson = JSON.parse(data?.report);\n this.formFields = reportJson?.FormFields;\n }\n this.generateReport(repId, params, showDialog, form)\n },\n (error) => {\n this.alertService.error(error);\n }\n );\n }\n\n generateReport(repId: any, params: any, showDialog: boolean = false, form: IDynamicForm = {}) {\n this.getFormFieldValues(form, params);\n if (\n (this.formFields.some((field) => !field.hidden) &&\n showDialog === undefined) ||\n showDialog === true\n ) {\n this.dialogService.open(ReportFilterComponent, {\n width: '80%',\n height: '100%',\n header: 'Generate Report',\n style: {background: '#fff'},\n data: { Id: repId, param: params },\n });\n } else {\n this.downloadQuickReport(params, repId);\n }\n }\n\n\n getFormFieldValues(form: IDynamicForm, params: any) {\n if (this.paramsCopy?.length > 0) {\n this.paramsCopy.forEach((paramCopy) => {\n var key = Object.keys(paramCopy)[0];\n if (paramCopy[key] === '' || !paramCopy[key]) {\n form?.formSections?.forEach((section) => {\n section.fields.forEach((field) => {\n if (key.toString().toLowerCase() === field.field?.toLowerCase()) {\n params.forEach((origParam) => {\n var origKey = Object.keys(origParam)[0];\n if (origKey == key) {\n //origParam[origKey] = field.value;\n if (field.control == EFormControl.CALENDAR) {\n origParam[origKey] = field.value ? field.value.toLocaleDateString() : null;\n } else {\n origParam[origKey] = field.value;\n }\n }\n });\n }\n });\n });\n } else if (\n paramCopy[key].toString().includes('{') &&\n paramCopy[key].toString().includes('}')\n ) {\n var newValue = paramCopy[key].replace('{', '').replace('}', '');\n form?.formSections?.forEach((section) => {\n section.fields.forEach((field) => {\n if (\n newValue.toString().toLowerCase() === field.field?.toLowerCase()\n ) {\n params.forEach((origParam) => {\n var origKey = Object.keys(origParam)[0];\n if (origKey == key) {\n if (field.control == EFormControl.CALENDAR) {\n origParam[origKey] = field.value ? field.value.toLocaleDateString() : null;\n } else {\n origParam[origKey] = field.value;\n }\n }\n });\n }\n });\n });\n }\n });\n }\n }\n\n downloadQuickReport(params, repId) {\n let filters: any[] = [];\n if (params && params.length > 0) {\n params.forEach((param) => {\n Object.keys(param).map((key) =>\n filters.push({\n field: key,\n matchMode: 'equal',\n operator: 'and',\n value: param[key],\n })\n );\n });\n } else {\n filters = this.getFilters();\n }\n\n this.requestService\n .download('/Report/Generate', { Id: repId, filters: filters })\n .subscribe(\n (response) => {\n var newBlob = new Blob([response.body], { type: 'application/pdf' });\n const data = window.URL.createObjectURL(newBlob);\n const a = document.createElement('a');\n a.href = data;\n const header = response?.headers?.get('Content-Disposition');\n const fileName = header\n ?.split('filename=')?.[1]\n ?.split(';')[0]\n ?.replaceAll(/\\\"/g, '');\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n (error) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n getFilters() {\n let filters: any[] = [];\n this.formFields.forEach((field) => {\n if (field && field.value?.toString()?.length > 0) {\n filters.push({\n field: field.field,\n matchMode: 'equal',\n operator: 'and',\n value: field.value,\n });\n }\n });\n return filters;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IFormField, EFormControl, IDynamicForm } from '../../../../../models/form.model';\nimport { ReportService } from '../../../../../services/report.service';\n\n\n\n@Component({\n selector: 'se-generate-report-btn',\n templateUrl: './generate-report-btn.component.html',\n styleUrls: ['./generate-report-btn.component.scss']\n})\nexport class GenerateReportBtnComponent implements OnInit {\n @Input() repId: any;\n @Input() label: string;\n @Input() params: any;\n @Input() showDialog: boolean;\n @Input() form: IDynamicForm;\n constructor(\n private reportService: ReportService\n ) {}\n\n ngOnInit(): void {\n }\n\n reportClickEvent() {\n this.reportService.downloadReport(this.repId, this.params, this.showDialog, this.form)\n }\n}","import { DatePipe } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Optional, Output, ViewChild } from '@angular/core';\nimport { DynamicDialogRef, DynamicDialogConfig, DialogService } from 'primeng/dynamicdialog';\nimport {\n IGlobalFilter,\n GridFilterControlType,\n EGridColumnType,\n addGlobalFilter,\n EDayRange,\n EFilterValidator,\n} from '../../../models/grid.model';\nimport { AlertService } from '../../../services/alert.service';\nimport { GridService } from '../../../services/grid.service';\n\n@Component({\n selector: 'se-global-filters',\n templateUrl: './global-filters.component.html',\n styleUrls: ['./global-filters.component.scss'],\n})\nexport class SeGlobalFilterComponent implements OnInit {\n @ViewChild('rangeCalendar') datePicker: any;\n @Input() globalFilters: IGlobalFilter[] = [];\n @Input() searchGlobalFilterBtn: boolean = false;\n @Input() clearGlobalFilterBtn: boolean = false;\n @Output() filtersApplied: EventEmitter<any> = new EventEmitter();\n @Input() set activeTestMode (val:any) { if(val === true) { debugger }}\n\n public fiterTypes = GridFilterControlType;\n public columnType = EGridColumnType;\n public showDialog: boolean = false;\n public startDate: Date;\n public endDate: Date;\n\n showInput: boolean = false;\n filter: any = '';\n hideClearFilterBtn: boolean = true;\n calendarFormat:string = 'mm/dd/yy';\n\n constructor(\n public datepipe: DatePipe,\n @Optional() public ref: DynamicDialogRef,\n @Optional() public config: DynamicDialogConfig,\n private gridService: GridService,\n public dialogService: DialogService,\n private alertService: AlertService,\n private el: ElementRef,\n ) { }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void {\n if(this.config && this.config.data){\n this.showDialog = this.config.data.openDialog;\n if(this.config.data.globalFilters){\n this.globalFilters = this.config?.data.globalFilters as IGlobalFilter[];\n }\n \n // set By Defualt Calender Range\n this.setDefualtCalendarRange(false);\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n // spliting date range value and assign to value and valueTwo in Date_Range Control\n const dateRangeFilter = this.globalFilters.filter((filter)=> filter.type === GridFilterControlType.DATE_RANGE); \n dateRangeFilter?.forEach((dateRange)=>{\n if(dateRange.value && dateRange.valueTwo){\n if(typeof(dateRange.value)==='object'){\n dateRange.value=dateRange.value.toLocaleDateString();\n }\n if(typeof(dateRange.valueTwo)==='object'){\n dateRange.valueTwo=dateRange.valueTwo.toLocaleDateString();\n }\n dateRange.value = (dateRange.value + \"-\" + dateRange.valueTwo)?.toString()?.split('-'); \n this.setDateRangeFilterValue(dateRange);\n } else if(dateRange.value && !dateRange.valueTwo){\n this.matchSameFields(dateRange.fromField,dateRange.value,'gte');\n } else if(!dateRange.value && dateRange.valueTwo){\n this.matchSameFields(dateRange.fromField,dateRange.valueTwo,'gte');\n }\n })\n // Filtring Numeric Range controls on global filter \n const numerRangeFilter = this.globalFilters.filter((filter)=> filter.type === GridFilterControlType.NUMERIC_RANGE);\n numerRangeFilter.forEach((numericRange) =>{\n if(numericRange){\n this.setNumericRangeValueFrom(numericRange);\n this.setNumericRangeValueTwo(numericRange);\n }\n })\n if(!(this.globalFilters.some((filter)=> filter.type === GridFilterControlType.CALENDAR_RANGE)) &&\n (this.globalFilters.some((filter)=> filter.value))\n ){\n this.applyFilters(false);\n }\n }, 500);\n }\n\n setDateRangeFilterValue(dateRange){\n if(dateRange?.value?.length > 1){\n dateRange.value[0] = new Date(dateRange.value[0]);\n dateRange.value[1] = new Date(dateRange.value[1]);\n this.selectDate(dateRange, false);\n }\n }\n \n containsWhitespace(str) {\n return str.includes(' ');\n }\n\n addSpacesatfirst(x) {\n return \" \" + x;\n }\n\n addSpacesatlast(x) {\n return x + \" \"\n }\n\n // change calendar format on run time if user type date on the calendar field.\n calendarFocusEvent(globalFilter:IGlobalFilter, event?: any){\n document.getElementsByClassName(globalFilter.displayText)[0]?.addEventListener('keyup', (a: any) => {\n let year = a?.target?.value?.toString()?.split('/')[2];\n year = year?.toString().split(\" \")[0];\n\n let dateRangeValue = a?.target?.value?.includes('-') ? a?.target?.value?.split('-') : '';\n // adding space between from and to date in date range filter\n if (dateRangeValue.length == 2 && dateRangeValue[1].split('/').length == 3 && (!this.containsWhitespace(dateRangeValue[0]) || !this.containsWhitespace(dateRangeValue[1]))) {\n if (!this.containsWhitespace(dateRangeValue[0])) {\n let fromDate = this.addSpacesatlast(dateRangeValue[0]);\n dateRangeValue[0] = fromDate;\n }\n if (!this.containsWhitespace(dateRangeValue[1])) {\n let toDate = this.addSpacesatfirst(dateRangeValue[1]);\n dateRangeValue[1] = toDate;\n }\n let alue = dateRangeValue[0] + '-' + dateRangeValue[1]\n a.target.value = alue;\n }\n if(year?.length === 4){\n this.calendarFormat = 'mm/dd/yy';\n if(globalFilter.type === GridFilterControlType.CALENDAR){\n globalFilter.value = new Date(a.target.value).toLocaleDateString(\"en-US\");\n }\n } else if(year?.length){\n this.calendarFormat = 'mm/dd/y';\n }\n });\n let yearValue = event?.target?.value?.toString()?.split('/')[4];\n if((!globalFilter.value || yearValue == undefined || yearValue?.toString()?.length === 1) && globalFilter.type === GridFilterControlType.DATE_RANGE){\n this.setDateRangeValue(globalFilter, true);\n }\n }\n\n checkFilterValidation(removeError:boolean = false):boolean{\n let valid:boolean = false;\n if(this.globalFilters && this.globalFilters.length > 0){\n this.globalFilters.forEach((filter)=>{\n if(filter.validations && filter.validations.length > 0 && filter.validations[0].type === EFilterValidator.REQUIRED && !filter.value && !removeError){\n valid = true;\n filter.errorMessage = filter.displayText+\" is required\";\n filter.requiredField = true;\n } else {\n filter.errorMessage = '';\n }\n })\n }\n return valid;\n }\n\n ngOnChanges(){\n this.checkFilterValidation();\n this.globalFilters?.forEach((filter)=>{\n if(filter.value && (filter.hidden === false || filter.hidden === undefined)){\n this.applyFiltersEvent(filter);\n }\n })\n // set By Defualt Calender Range\n this.setDefualtCalendarRange(false);\n const girdClearFilterBtn = document.getElementById(\n 'clearGridFilterValuesButton'\n );\n if(girdClearFilterBtn){\n if(girdClearFilterBtn.classList.contains('hide-clear-filter-button')){\n this.hideClearFilterBtn = true;\n }else{\n this.hideClearFilterBtn = false;\n }\n }else{\n this.hideClearFilterBtn = true;\n }\n }\n\n setNumericRangeValueTwo(globalFilter: IGlobalFilter, sendRequest:boolean = false){\n if(globalFilter.toField){\n this.matchSameFields(globalFilter.toField, globalFilter.valueTwo,'lte', globalFilter);\n }\n if(sendRequest){\n this.applyFilters();\n }\n }\n\n matchSameFields(field: string,value:any, operator:string, numerRangeFilter: any = {}){\n if(field){\n if(numerRangeFilter && numerRangeFilter?.format?.type === 'decimal' && value){\n const digitInfo = numerRangeFilter?.format?.formatParams?.digitsInfo;\n if(digitInfo){\n value = parseFloat(value)?.toFixed(digitInfo);\n }else{\n value = parseFloat(value)?.toFixed(2);\n }\n }\n const index = this.globalFilters.findIndex((filter)=> field === filter.field);\n if(index > -1){\n this.globalFilters[index] = {field: field, matchMode:'and', operator: operator, value: value}; \n } else {\n this.globalFilters.push({field: field, matchMode:'and', operator: operator, value: value});\n }\n }\n }\n\n setNumericRangeValueFrom(globalFilter: IGlobalFilter, sendRequest:boolean = false) {\n if(globalFilter.type === GridFilterControlType.NUMERIC_RANGE && globalFilter.fromField){ \n this.matchSameFields(globalFilter.fromField,globalFilter.value,'gte', globalFilter);\n if(sendRequest){\n this.applyFilters();\n }\n }\n \n }\n\n setDateRangeValue(globalFilter: any, clearValue: boolean =false) {\n if(globalFilter.value?.length > 0){\n const fromDateValue = this.datepipe.transform(\n globalFilter.value[0],\n globalFilter.format ? globalFilter.format : 'MM/dd/yyyy'\n );\n const toDateValue = this.datepipe.transform(\n globalFilter.value[1],\n globalFilter.format ? globalFilter.format : 'MM/dd/yyyy'\n );\n if (fromDateValue && toDateValue && globalFilter.fromField && globalFilter.toField) {\n this.matchSameFields(globalFilter.fromField,fromDateValue,'gte');\n this.matchSameFields(globalFilter.toField,toDateValue,'lte');\n }\n }else if(clearValue){\n this.matchSameFields(globalFilter.fromField, null, 'gte');\n this.matchSameFields(globalFilter.toField, null, 'lte');\n }\n }\n\n\n onFocusOutEvent(globalFilter: IGlobalFilter){\n if (globalFilter && globalFilter.onFocusOut) {\n globalFilter.onFocusOut(globalFilter);\n }\n setTimeout(() => {\n localStorage.setItem('applyFilter', JSON.stringify(false));\n this.gridService.applyFilterEvent = false;\n this.filtersApplied.emit(this.globalFilters);\n },globalFilter.type === GridFilterControlType.LOOKUP_INPUT ? 250 : 0);\n }\n\n applyFiltersEvent(globalFilter: IGlobalFilter){\n setTimeout(() => {\n localStorage.setItem('applyFilter', JSON.stringify(false));\n this.gridService.applyFilterEvent = false;\n this.filtersApplied.emit(this.globalFilters);\n },globalFilter.type === GridFilterControlType.LOOKUP_INPUT ? 250 : 0);\n }\n\n /**\n * Apply selected filters\n */\n applyFilters(filterEvent: boolean= true, globalFilter:any = {}) {\n if(globalFilter.type === GridFilterControlType.DATE_RANGE){\n this.setDateRangeFilterValue(globalFilter);\n } \n this.gridService.applyFilterEvent = filterEvent;\n const globalFilters = this.globalFilters.filter((x) => x.field);\n const index = globalFilters.findIndex((filter)=> filter.field && filter.type === GridFilterControlType.DATE_RANGE )\n if(index > -1){\n globalFilters.splice(index, 1);\n }\n localStorage.setItem('applyFilter', JSON.stringify(true));\n if (this.showDialog) {\n this.ref.close(globalFilters);\n } else \n if(!this.checkFilterValidation()){\n this.checkFilterValidation(true);\n this.filtersApplied.emit(globalFilters);\n }\n }\n\n // set By Defualt Calender Range \n setDefualtCalendarRange(check: boolean = true){\n if(this.globalFilters && this.globalFilters.length > 0){\n this.globalFilters.forEach((filter)=>{\n if(filter.type === GridFilterControlType.CALENDAR_RANGE){\n setTimeout(() => {\n this.showNext(filter, check);\n }, 100);\n }\n });\n }\n }\n\n showNext(filter: IGlobalFilter, check: boolean = true): string {\n let nextValue: string;\n let dayRange: EDayRange = filter.dayRange\n ? filter.dayRange\n : EDayRange.WEEK;\n switch (dayRange) {\n case EDayRange.DAY:\n nextValue = this.setDayFilter(filter, true);\n break;\n case EDayRange.MONTH:\n nextValue = this.setMonthFilter(filter, true);\n break;\n case EDayRange.YEAR:\n nextValue = this.setYearFilter(filter, true);\n break;\n default:\n // week\n nextValue = this.setWeekFilter(filter, true);\n break;\n }\n localStorage.setItem('applyFilter', JSON.stringify(true));\n this.gridService.applyFilterEvent = check;\n this.filtersApplied.emit(this.globalFilters);\n return nextValue;\n }\n\n showPrevious(filter: IGlobalFilter): string {\n let previousValue: string;\n let dayRange: EDayRange = filter.dayRange\n ? filter.dayRange\n : EDayRange.WEEK;\n switch (dayRange) {\n case EDayRange.DAY:\n previousValue = this.setDayFilter(filter, false);\n break;\n case EDayRange.MONTH:\n previousValue = this.setMonthFilter(filter, false);\n break;\n case EDayRange.YEAR:\n previousValue = this.setYearFilter(filter, false);\n break;\n default:\n // week\n previousValue = this.setWeekFilter(filter, false);\n break;\n }\n this.gridService.applyFilterEvent = true;\n localStorage.setItem('applyFilter', JSON.stringify(true));\n this.filtersApplied.emit(this.globalFilters);\n return previousValue;\n }\n\n setCalendarRangeFilterValue(filter: IGlobalFilter): string {\n return (filter.value =\n this.datepipe.transform(\n this.startDate,\n filter.format ? filter.format : 'MM/dd/yyyy'\n ) +\n '|' +\n this.datepipe.transform(\n this.endDate,\n filter.format ? filter.format : 'MM/dd/yyyy'\n ));\n }\n\n setDateValue(filter: any) {\n let value: Date;\n if (filter.value) {\n value = new Date(filter.value.split('|')[0]);\n return new Date(value.setMonth(value.getMonth()));\n } else {\n return new Date();\n }\n }\n\n setDayFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() + 1\n )\n : currentDate;\n } else {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() - 1\n )\n : currentDate;\n }\n\n this.endDate = new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth(),\n this.startDate.getDate() + 1\n );\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setYearFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n var firstDateOfYear = new Date(currentDate.getFullYear(), 0, 1);\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(this.startDate.getFullYear() + 1, 0, 1)\n : firstDateOfYear;\n } else {\n this.startDate = this.startDate\n ? new Date(this.startDate.getFullYear() - 1, 0, 1)\n : firstDateOfYear;\n }\n\n this.endDate = new Date(this.startDate.getFullYear(), 11, 31);\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setMonthFilter(filter: IGlobalFilter, isNext: boolean): string {\n var currentDate = this.setDateValue(filter);\n var firstDateOfMonth = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n 1\n );\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() + 1,\n 1\n )\n : firstDateOfMonth;\n } else {\n this.startDate = this.startDate\n ? new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() - 1,\n 1\n )\n : firstDateOfMonth;\n }\n\n this.endDate = new Date(\n this.startDate.getFullYear(),\n this.startDate.getMonth() + 1,\n 0\n );\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n setWeekFilter(filter: IGlobalFilter, isNext: boolean): string {\n let currentDate = this.setDateValue(filter);\n let firstDay = new Date(currentDate.setDate(filter.value ? currentDate.getDate() : currentDate.getDate() - currentDate.getDay() + 1));\n let weekSeconds = 7 * 24 * 60 * 60 * 1000;\n\n if (isNext) {\n this.startDate = this.startDate\n ? new Date(this.startDate.getTime() + weekSeconds)\n : new Date(firstDay.getTime());\n } else {\n this.startDate = this.startDate\n ? new Date(this.startDate.getTime() - weekSeconds)\n : new Date(firstDay.getTime() - weekSeconds);\n }\n\n this.endDate = new Date(this.startDate.getTime() + 6 * 24 * 60 * 60 * 1000);\n\n return this.setCalendarRangeFilterValue(filter);\n }\n\n /**\n * open dialog on lookupControl field\n */\n selectLookupField(globalFilters: IGlobalFilter) { \n this.gridService.setLookUpFilter(globalFilters, this.dialogService, true);\n }\n\n /**\n * Clear all filter values\n */\n clearFilters() {\n this.globalFilters.map((item: any) => (item.value = null));\n const clearGridFilter = document.getElementById('clearGridFilterValuesButton')\n if(clearGridFilter){\n clearGridFilter.click();\n }\n }\n\n /**\n * Clear values of Date Range Filter\n */\n clearDateRangeValue(filter: any){\n this.setDateRangeValue(filter, true)\n }\n\n /**\n * Close dialog without applying filters\n */\n cancel() {\n this.clearFilters();\n this.ref.close();\n }\n rangeDateclose(globalFilter: any) {\n this.datePicker.hideOverlay();\n this.datePicker.overlayVisible = false;\n this.datePicker.datepickerClick = true;\n const id: any = document.getElementById(globalFilter.displayText);\n id.focus();\n this.datePicker.overlayVisible = false;\n this.datePicker.datepickerClick = true;\n\n }\n\n filterInput() {\n this.showInput = !this.showInput;\n }\n\n /**\n * Focused the calender input\n */\n selectDate(globalFilter: any, focused: boolean = false){\n if(globalFilter.value?.length > 1 && globalFilter.value[1] !== null){\n this.setDateRangeValue(globalFilter);\n if(focused ==true){\n this.rangeDateclose(globalFilter); \n }\n }\n if(focused){\n document.getElementById(globalFilter.field)?.focus();\n }\n }\n tabFocusEvent(globalFilter: any) {\n const className = this.el.nativeElement.querySelector(\n '.'+globalFilter.field\n );\n if (className) {\n className.click();\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { SeGlobalFilterComponent } from '../../shared/global-filters/global-filters.component';\nimport { IGlobalFilter } from '../../../models/grid.model';\n\n@Component({\n selector: 'se-filter',\n templateUrl: './filter.component.html',\n})\nexport class SeFilterComponent implements OnInit {\n @Input() globalFilters: IGlobalFilter[];\n @Input() showDialogFilter: boolean = false;\n @Input() clearGlobalFilterBtn: boolean = false;\n @Input() searchGlobalFilterBtn: boolean = false;\n @Output() filtersApplied: EventEmitter<any> = new EventEmitter();\n\n constructor(public dialogService: DialogService) { }\n\n /**\n * Assignment of selected columns on page load\n */\n ngOnInit(): void { }\n\n /**\n * Opens the filter dialog\n */\n openFilters() {\n const ref = this.dialogService.open(SeGlobalFilterComponent, {\n header: 'Choose Filters',\n width: '70%',\n styleClass: 'global-filter-visible',\n data: { globalFilters: this.globalFilters, openDialog: true},\n });\n\n // Modal response\n ref.onClose.subscribe((res) => {\n if (res) {\n this.filtersApplied.emit(res);\n }\n });\n }\n\n globalFiltersApplied(event: any){\n this.filtersApplied.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'se-grid-row-actions',\n templateUrl: './grid-row-actions.component.html',\n styleUrls: ['./grid-row-actions.component.scss']\n})\nexport class GridRowActionsComponent implements OnInit {\n @Input() editing: boolean;\n\n @Input() editRowPermission: boolean;\n\n @Input() deleteRowPermission: boolean;\n\n @Input() hideDeleteBtn: boolean = false;\n\n @Input() hideEditBtn: boolean = false;\n\n @Input() editAllRows: boolean = false;\n\n @Input() row: any;\n\n @Output() onRowEditInitBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() deleteRecordBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowEditSaveBtn: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowEditCancelBtn: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onRowEditInit(row: any) {\n this.onRowEditInitBtn.emit(row);\n }\n\n deleteRecord(row: any) {\n this.deleteRecordBtn.emit(row);\n }\n\n onRowEditSave(row: any) {\n this.onRowEditSaveBtn.emit(row);\n }\n\n onRowEditCancel(row: any) {\n this.onRowEditCancelBtn.emit(row);\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { GridComponent } from './components/base/grid/grid.component';\nimport { FormComponent } from './components/base/form/form.component';\nimport { DropdownComponent } from './components/shared/dropdown/dropdown.component';\nimport { GalleryComponent } from './components/base/image-gallery/image-gallery.component';\nimport { IframeComponent } from './components/base/iframe/iframe.component';\n\n// Library\nimport { TableModule } from 'primeng/table';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TabViewModule } from 'primeng/tabview';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { AddRowDirective } from './directive/add-row.directive';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NotesComponent } from './components/shared/notes/notes.component';\nimport { PanelMenuModule } from 'primeng/panelmenu';\nimport { AppFilterMenuComponent } from './components/shared/filter-menu/filter-menu.component';\nimport { ToastrModule } from 'ngx-toastr';\nimport { RequestService } from './services/request.service';\nimport { Environment } from './models/response.model';\nimport { MenuBarComponent } from './components/base/menu-bar/menu-bar.component';\nimport { SidebarComponent } from './components/base/sidebar/sidebar.component';\nimport { HeaderComponent } from './components/base/header/header.component';\nimport { MenuModule } from 'primeng/menu';\nimport { GalleriaModule } from 'primeng/galleria';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { AccordionModule } from 'primeng/accordion';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { MessagesModule } from 'primeng/messages';\nimport { LoaderComponent } from './components/base/loader/loader.component';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\nimport {AvatarModule} from 'primeng/avatar';\nimport { CardModule } from 'primeng/card';\nimport { FileUploadComponent } from './components/base/file-upload/file-upload.component';\nimport { CaptionComponent } from './components/base/caption/caption.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CardComponent } from './components/base/cards/card.component';\nimport { fileComponent } from './components/base/file/file.component';\nimport {InputSwitchModule} from 'primeng/inputswitch';\nimport { AlertService } from './services/alert.service';\nimport { GenerateReportBtnComponent } from './components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component';\nimport { ReportFilterComponent } from './components/base/report/report-Filter/report-filter/report-filter.component';\nimport { SeGlobalFilterComponent } from './components/shared/global-filters/global-filters.component';\nimport { SeFilterComponent } from './components/base/filter/filter.component';\nimport { GridRowActionsComponent } from './components/base/grid-row-actions/grid-row-actions.component';\nimport { AlertPopUpComponent } from './components/base/alert-pop-up/alert-pop-up.component';\n\n\nexport const toasterModuleforRoot = ToastrModule.forRoot();\n\n@NgModule({\n declarations: [\n GridComponent,\n GridRowActionsComponent,\n DropdownComponent,\n AddRowDirective,\n FormComponent,\n NotesComponent,\n AppFilterMenuComponent,\n MenuBarComponent,\n SidebarComponent,\n HeaderComponent,\n GalleryComponent,\n IframeComponent,\n LoaderComponent,\n FileUploadComponent,\n CaptionComponent,\n CardComponent,\n fileComponent,\n GenerateReportBtnComponent,\n ReportFilterComponent,\n SeGlobalFilterComponent,\n SeFilterComponent,\n AlertPopUpComponent\n ],\n\n providers: [DialogService,AlertService,DecimalPipe,DatePipe,RequestService],\n imports: [\n CommonModule,\n TableModule,\n PanelMenuModule,\n MenuModule,\n MultiSelectModule,\n FormsModule,\n BrowserAnimationsModule,\n TabViewModule,\n DropdownModule,\n CalendarModule,\n CheckboxModule,\n ButtonModule,\n ProgressSpinnerModule,\n RippleModule,\n InputTextModule,\n TriStateCheckboxModule,\n InputTextareaModule,\n TooltipModule,\n BrowserModule,\n GalleriaModule,\n AutoCompleteModule,\n AccordionModule,\n ConfirmDialogModule,\n MessagesModule,\n InputNumberModule,\n AvatarModule,\n CardModule,\n DragDropModule,\n InputSwitchModule,\n toasterModuleforRoot\n ],\n exports: [\n GridComponent,\n GridRowActionsComponent,\n FormComponent,\n MenuBarComponent,\n SidebarComponent,\n HeaderComponent,\n GalleryComponent,\n LoaderComponent,\n FileUploadComponent,\n CaptionComponent,\n CardComponent,\n fileComponent,\n GenerateReportBtnComponent,\n ReportFilterComponent,\n SeFilterComponent,\n SeGlobalFilterComponent\n ],\n})\nexport class SEToolkitModule {\n public static forRoot(environment: Environment): ModuleWithProviders<any> {\n return {\n ngModule: SEToolkitModule,\n providers: [\n RequestService,\n {\n provide: 'env',\n useValue: environment\n }\n ]\n };\n }\n}\n","import { EFormControl, IHyperlink } from './form.model';\nimport { IPermission } from './user-info.model';\n\nexport interface IHeader {\n fields: IHeaderField[];\n column?: number;\n permissions?: IPermission[];\n}\n\nexport interface IHeaderField {\n label?: string;\n value?: any;\n control?: EFormControl;\n data?: any[];\n onClick?: () => void;\n class?: string;\n column?: number;\n hyperlink?: IHyperlink;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n format?: IHeaderFormat;\n showTime?: boolean;\n timeOnly?: boolean;\n}\n\nexport enum EButtonClass {\n NORMAL = 'p-button-sm',\n SUCCESS = 'p-button-success p-button-sm',\n INFO = 'p-button-info p-button-sm',\n WARNING = 'p-button-warning p-button-sm',\n HELP = 'p-button-help p-button-sm',\n DANGER = 'p-button-danger p-button-sm',\n}\n\nexport interface AddHeaderField {\n control?: EFormControl;\n label?: string;\n value?: string;\n column?: number;\n data?: any;\n class?: string;\n onClick?: (() => void) | any;\n hyperlink?: IHyperlink;\n permissions?: IPermission[];\n disabled?: boolean;\n hidden?: boolean;\n format?: IHeaderFormat;\n showTime?: boolean;\n timeOnly?: boolean;\n}\n\nexport interface IHeaderFormat {\n type: EHeaderFormatType | any;\n formatParams?:IFormatParams\n | IDateFormatParams\n | INumberFormatParams\n | ICurrencyFormatParams;\n formatter?: (value: any) => any;\n}\n\nexport interface IFormatParams {\n locale?: string;\n}\n\nexport interface IDateFormatParams extends IFormatParams {\n format?: string;\n}\n\nexport interface INumberFormatParams extends IFormatParams {\n digitsInfo?: string;\n}\n\nexport interface ICurrencyFormatParams extends INumberFormatParams {\n currency: string;\n}\n\nexport enum EHeaderFormatType {\n SHORTDATE = 'mm/dd/yy',\n MEDIUMDATE = 'M d, yy',\n LONGDATE = 'MM d, yy',\n CURRENCY = 'currency',\n PERCENT = 'percent',\n DECIMAL = 'decimal',\n}","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IMenu } from '../models/menu.model';\nimport { ISidebar } from '../models/sidebar.model';\nimport { IDictionary } from '../models/common.model';\nimport * as utilities from './utilities.service';\nimport { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SideBarService {\n styleSheetElement:any;\n constructor(\n private injector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver,\n private applicationRef: ApplicationRef\n ) { }\n\n /**\n * Checks parent menu and expands it if current route exists in its child menus.\n * @param menuLabel\n * @returns {boolean}\n */\n isMenuExpanded(\n currentRoute: string,\n items: IMenu[],\n menuLabel: string\n ): boolean {\n if (items && items.length) {\n // check currentRoute contains loadDataForEdit or not\n currentRoute = currentRoute.includes('?') ? currentRoute.split('?')[0] : currentRoute;\n let detailPage = '';\n if(currentRoute?.toString()?.includes(\"list\")){\n detailPage = currentRoute.replace('list', 'detail');\n } \n const currentIndex = items.findIndex((menu) => menu.label?.toLowerCase() === menuLabel?.toLowerCase());\n let matchedItems = [];\n if(currentIndex > -1){\n matchedItems = items[currentIndex]?.items;\n }\n return matchedItems.length > 0 ? matchedItems.some((item: any) => item.routerLink && (currentRoute === item.routerLink[0] || currentRoute === detailPage)) : false; \n }\n return false;\n }\n\n setSidebarPropValues(\n sidebar: ISidebar[],\n section: string,\n props: IDictionary[]\n ) {\n sidebar.map((sidebarItem: any) => {\n if (sidebarItem.section?.toLowerCase() === section.toLowerCase()) {\n props.map((prop) => {\n if (prop.name?.toLowerCase() === 'data' && sidebarItem.data?.data) {\n sidebarItem.data.data = prop.value;\n } else {\n utilities.setPropValue(sidebarItem, prop);\n }\n });\n }\n });\n sidebar=[...sidebar]\n return sidebar\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EFormControl } from '../models/form.model';\nimport { AddHeaderField, IHeaderField } from '../models/header.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HeaderService {\n constructor() {}\n\n addHeaderField(headerInfo: AddHeaderField): IHeaderField {\n if (!headerInfo.column) {\n headerInfo.column = 3;\n }\n\n const headerField: IHeaderField = {\n label: headerInfo.label,\n control: headerInfo.control,\n value: headerInfo.value,\n column: headerInfo.column,\n data: headerInfo.data,\n class: headerInfo.class,\n onClick: headerInfo.onClick,\n hyperlink: headerInfo.hyperlink,\n disabled: headerInfo.disabled,\n hidden: headerInfo.hidden,\n permissions: headerInfo.permissions,\n format: headerInfo.format,\n showTime: headerInfo.showTime,\n timeOnly: headerInfo.timeOnly,\n };\n return headerField;\n }\n\n addLabel(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.LABEL;\n return this.addHeaderField(headerInfo);\n }\n \n addDropdown(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.DROPDOWN;\n return this.addHeaderField(headerInfo);\n }\n\n addButton(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.BUTTON;\n return this.addHeaderField(headerInfo);\n }\n\n addCheckbox(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.CHECKBOX;\n return this.addHeaderField(headerInfo);\n }\n\n addHyperlink(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.HYPERLINK;\n return this.addHeaderField(headerInfo);\n }\n\n addCalendar(headerInfo: AddHeaderField): IHeaderField {\n headerInfo.control = EFormControl.CALENDAR;\n return this.addHeaderField(headerInfo);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { EFormControl, IDynamicForm } from '../models/form.model';\nimport { AlertService } from './alert.service';\nimport { RequestService } from './request.service';\nimport * as utilities from '../../lib/services/utilities.service';\nimport { Environment } from '../models/response.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CardService {\n\n constructor(\n private requestService: RequestService,\n private alertService: AlertService,\n @Inject('env') private env: Environment\n ) { }\n\n deleteImage(imageInfo: any, uniqueKey: string, dynamicForm: IDynamicForm, cardId: string) {\n let imageToDelete =\n imageInfo.id && imageInfo.id > 0\n ? { RecordId: imageInfo.id }\n : { UniqueKey: uniqueKey, RecordId: imageInfo.recordId };\n this.requestService.get('/Upload/Delete', imageToDelete).subscribe(\n (response: any) => {\n this.deleteFile(imageInfo, dynamicForm, cardId);\n if (imageInfo.tables) {\n this.deleteImageFromTables(imageInfo.tables, uniqueKey);\n } else {\n this.alertService.success('Image deleted successfully.');\n }\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n deleteImageFromTables(tables: any[], uniqueKey: string) {\n this.requestService\n .get('/Data/BulkDelete', {\n UniqueKey: uniqueKey,\n tables: tables,\n })\n .subscribe(\n (response) => {\n this.alertService.success('Image deleted successfully.');\n },\n ({ error }) => {\n this.alertService.apiError(error);\n }\n );\n }\n\n getCardData(formSections: any, id: string): any {\n let arr = {};\n formSections?.forEach((formSection: any) => {\n formSection.fields?.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.id && field.id === id && field.card.data) {\n arr = { data: field.card.data, change: field.card.change, url: field.card?.cardInfo?.url };\n }\n });\n });\n return arr;\n }\n\n setFileUploadData(response: any, dynamicForm: any, id: string, containerName: string, uploadImgBaseUrlDev: string) {\n if (response) {\n response.forEach((res)=>{\n if(res.fileExtension !== \".mrt\" && containerName && uploadImgBaseUrlDev){\n res['blobFileUrl'] = (uploadImgBaseUrlDev+'/'+containerName+'/'+res.actualFileName)?.toLowerCase()\n }\n });\n dynamicForm.formSections?.forEach((x: any) => {\n x.fields.forEach((field: any) => {\n if (field.control === EFormControl.CARD && field.id && field.id === id) {\n field.card?.data?.unshift(...response);\n }\n });\n });\n }\n }\n\n deleteFile(cardInfo: any, dynamicForm: IDynamicForm, id: string) {\n const fieldInfo = this.getCardData(\n dynamicForm.formSections,\n id\n );\n let cardData = fieldInfo.data;\n cardData = [...this.deleteFromArray(cardData, cardInfo, fieldInfo?.url)];\n utilities.changeDynamicCardState({cardData: cardData});\n }\n\n deleteFromArray(arr: any[] = [], cardInfo: any, deleteMatchKey: string = '') {\n arr = utilities.setDataFields(arr);\n cardInfo = utilities.objConvertToLower(cardInfo);\n \n const index = arr.findIndex((i) => (i[deleteMatchKey] && i[deleteMatchKey] === cardInfo[deleteMatchKey]) || (i.blobfileurl === cardInfo.blobfileurl));\n if (index > -1) {\n arr.splice(index, 1);\n }\n return arr;\n }\n\nsetResponseId(response:any, cardsInfo:any[], fieldName:string,dynamicForm?:IDynamicForm){\n utilities.changeDynamicCardState({records: response.records, cardsInfo: cardsInfo, fieldName: fieldName, isSave: true});\n }\n}\n","/*\n * Public API Surface of se-ui-toolkit\n */\nexport * from 'primeng/api';\n\n/**\n * Exported Modules\n */\n\nexport * from './lib/se-ui-toolkit.module';\n\n/**\n * Exported Components\n */\nexport * from './lib/components/base/form/form.component';\nexport * from './lib/components/base/grid/grid.component';\nexport * from './lib/components/base/menu-bar/menu-bar.component';\nexport * from './lib/components/base/sidebar/sidebar.component';\nexport * from './lib/components/base/header/header.component';\nexport * from './lib/components/base/image-gallery/image-gallery.component';\nexport * from './lib/components/base/iframe/iframe.component';\nexport * from './lib/components/base/loader/loader.component';\nexport * from './lib/components/base/file-upload/file-upload.component';\nexport * from './lib/components/base/caption/caption.component';\nexport * from './lib/components/base/cards/card.component';\nexport * from './lib/components/base/file/file.component';\nexport * from './lib/components/base/report/report-Filter/report-filter/report-filter.component';\nexport * from './lib/components/base/report/reportGenerateBtn/generate-report-btn/generate-report-btn.component';\nexport * from './lib/components/shared/global-filters/global-filters.component';\nexport * from './lib/components/base/grid-row-actions/grid-row-actions.component';\nexport * from './lib/components/base/filter/filter.component';\n\n/**\n * Exported Type Definitions\n */\nexport * from './lib/models/form.model';\nexport * from './lib/models/grid.model';\nexport * from './lib/models/response.model';\nexport * from './lib/models/request.model';\nexport * from './lib/models/header.model';\nexport * from './lib/models/sidebar.model';\nexport * from './lib/models/user-info.model';\nexport * from './lib/models/menu.model';\nexport * from './lib/models/common.model';\n\n/**\n * Exported Services\n */\nexport * from './lib/services/alert.service';\nexport * from './lib/services/form.service';\nexport * from './lib/services/grid.service';\nexport * from './lib/services/dropdown.service';\nexport * from './lib/services/page-logger.service';\nexport * from './lib/services/authentication.service';\nexport * from './lib/services/utilities.service';\nexport * from './lib/services/request.service';\nexport * from './lib/services/sidebar.service';\nexport * from './lib/services/hyperlink.service';\nexport * from './lib/services/header.service';\nexport * from './lib/services/loader.service';\nexport * from './lib/services/card.service';\nexport * from './lib/services/report.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AlertPopUpComponent as ɵe} from './lib/components/base/alert-pop-up/alert-pop-up.component';\nexport {DropdownComponent as ɵa} from './lib/components/shared/dropdown/dropdown.component';\nexport {AppFilterMenuComponent as ɵd} from './lib/components/shared/filter-menu/filter-menu.component';\nexport {NotesComponent as ɵc} from './lib/components/shared/notes/notes.component';\nexport {AddRowDirective as ɵb} from './lib/directive/add-row.directive';"],"names":["__rest","__awaiter","EGridAggregate","EAggregateFormat","EGridlink","EGridFormatter","GridFilterControlType","EDayRange","EGridSortDirection","EGridColumnType","EGridFormatType","EGlobalFilterFormatType","EGridSelectionType","EFilterValidator","EGridRowAction","EGridRowPropName","EGridValidator","Component","DynamicDialogConfig","Optional","DynamicDialogRef","Injectable","ToastrService","DialogService","ConfirmationService","HttpClient","Inject","ESelectFileType","EValidator","EFormControl","EOperator","EMatchMode","EFormatType","EHyperlink","Subject","formatDate","utilities.calenderMinMaxValue","utilities.objConvertToLower","utilities.setDialogResponse","utilities.findKeysAndValue","utilities.setHyperlink","DatePipe","ActivatedRoute","EPermissionType","DomSanitizer","EventEmitter","jsPDF","saveAs","interval","ElementRef","DecimalPipe","ChangeDetectorRef","Router","ViewChildren","Output","Input","ViewChild","HostListener","utilities.changeDynamicFormState","utilities.setTimeInDate","utilities.onDynamicCardStateChange","utilities.onDynamicFormStateChange","utilities.draggableDialog","utilities.removeActiveIconClass","utilities.setMinutesInterval","utilities.setHyperlinkParamValue","ComponentFactoryResolver","ViewContainerRef","Directive","CookieService","ESidebarAction","Renderer2","Subscription","utilities.getFormFieldValue","utilities.setCardFieldsData","moveItemInArray","ToastrModule","NgModule","CommonModule","TableModule","PanelMenuModule","MenuModule","MultiSelectModule","FormsModule","BrowserAnimationsModule","TabViewModule","DropdownModule","CalendarModule","CheckboxModule","ButtonModule","ProgressSpinnerModule","RippleModule","InputTextModule","TriStateCheckboxModule","InputTextareaModule","TooltipModule","BrowserModule","GalleriaModule","AutoCompleteModule","AccordionModule","ConfirmDialogModule","MessagesModule","InputNumberModule","AvatarModule","CardModule","DragDropModule","InputSwitchModule","EButtonClass","EHeaderFormatType","utilities.setPropValue","Injector","ApplicationRef","utilities.changeDynamicCardState","utilities.setDataFields"],"mappings":"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"}
|