{"version":3,"sources":["tigereye/app/services/notificationCenter/helpers/notification-center-helper.service.ts","tigereye/app/services/fileManagement/fileManagement.service.ts","common_libraries/Services/validation/validation.service.ts","common_libraries/controls/form-throbber-button/form-throbber-button.component.ts","common_libraries/controls/form-throbber-button/form-throbber-button.component.html","common_libraries/controls/validation-notification/model/validation-notification.model.ts","common_libraries/controls/validation-notification/validation-notification.component.ts","common_libraries/controls/validation-notification/validation-notification.component.html","common_libraries/helpers/pipes/form-control.pipe.ts","node_modules/src/app/components/icons/timescircle/timescircle.ts","node_modules/src/app/components/icons/timescircle/primeng-icons-timescircle.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\nimport {NotificationCenterComponent} from '@pageControls/notification-center/notification-center.component';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationCenterHelperService {\n private ncSubject = new Subject();\n public ncObservable = this.ncSubject.pipe(shareReplay(1));\n private ncReceiverSubject = new Subject();\n public ncReceiverObservable = this.ncReceiverSubject.pipe(shareReplay(1));\n\n constructor() { }\n\n public initProcessHelper() {\n\n }\n public refreshNCReceiverSubject(component: any) {\n this.ncReceiverSubject.next(component);\n }\n\n public refreshNCSubject(component: NotificationCenterComponent) {\n this.ncSubject.next(component);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ServiceLibrary } from '@common_libraries/helpers/ServiceLibrary';\nimport {Observable, Subject, BehaviorSubject } from 'rxjs';\nimport { Dictionary } from '@common_libraries/helpers/Dictionary';\nimport {shareReplay} from 'rxjs/operators';\n@Injectable({providedIn: 'root'})\nexport class FileManagementService {\n\n constructor(private servLib: ServiceLibrary) { }\n\n PrepareUpload(assembledFileName: string, TotalChunks: number, TotalFileSize: number, UniqueFileIdentifierKey: string) {\n const parameters: Dictionary = new Dictionary([]);\n parameters.addOrUpdate('AssembledFileName', assembledFileName);\n parameters.addOrUpdate('TotalChunks', TotalChunks);\n parameters.addOrUpdate('TotalFileSize', TotalFileSize);\n parameters.addOrUpdate('UniqueIdentifier', UniqueFileIdentifierKey);\n\n return this.servLib.HttpPost('/v1/api/File/PrepareUpload', ServiceLibrary.ContentType.JSON, parameters);\n }\n\n LogFileUploadError(Message: string, ExtraDetails: string) {\n const parameters: Dictionary = new Dictionary([]);\n parameters.addOrUpdate('Message', Message);\n parameters.addOrUpdate('ExtraDetails', ExtraDetails);\n\n return this.servLib.HttpPost('/v1/api/File/LogFileUploadError', ServiceLibrary.ContentType.JSON, parameters);\n }\n\n GetFileUploadTokenProcessingStatuses(TokenList: string[]) {\n const parameters: Dictionary = new Dictionary([]);\n parameters.addOrUpdate('TokenList', TokenList);\n if(TokenList.length === 0){\n const subj = new BehaviorSubject(false);\n\n return subj;\n }else {\n return this.servLib.HttpPostPolling('/v1/api/File/GetFileUploadTokenProcessingStatuses', ServiceLibrary.ContentType.JSON, parameters);\n }\n }\n\n\n}\n","import { Injectable, numberAttribute } from '@angular/core';\nimport { ValidatorFn, ValidationErrors, FormGroup, AbstractControl } from '@angular/forms';\n\n@Injectable({providedIn: 'root'})\nexport class ValidationService {\n\n static getValidatorErrorMessage(validatorName: string, validatorValue?: any) {\n const config = {\n 'required': 'Required',\n 'invalidCreditCard': 'Is invalid credit card number',\n 'invalidEmailAddress': 'Invalid email address (name@example.com)',\n 'invalidPassword': 'Password must be at least 8 characters long, contain at least one lower case letter, one upper case letter, one digit, one special character and cannot have spaces.',\n 'passwordConfirm': 'Password and Confirm Password do not match.',\n 'nameDuplicate': 'Name is already taken.',\n 'emailValidatorDuplicate': 'Email address is already taken.',\n 'minlength': `Minimum length is ${validatorValue ? validatorValue.requiredLength : ''}`,\n 'maxlength': `Maximum length is ${validatorValue ? validatorValue.requiredLength : ''}`,\n 'commaDelimitedNumbers': 'Value must be comma separated numbers without spaces',\n 'commaSpacePipesNewLinesDelimitedNumbers': 'Value must be one or more numerical IDs sperated by comma, pipe, space or tab, or one per line',\n 'LettersNumbersCommaUnderscore': 'Value must be letters, numbers, hyphen or underscore only and may not end with a space.',\n 'nonNegativeDecimal100': 'Value must be a decimal between 0 and 100',\n 'positiveDecimal100': 'Value must be a decimal greater than 0 and less than or equal to 100',\n 'percent': 'Value must be a number between 0 and 100',\n 'rmLowHigh': 'Risk Measure Lower Bound must be lower than Risk Measure Upper Bound',\n 'lowHigh': 'Lower Bound must be lower than Upper Bound',\n 'minMaxLoss': 'Min Loss must be lower than Max Loss',\n 'positiveInt': 'Value must be a positive integer',\n 'positiveDecimal': 'Value must be a positive decimal',\n 'positiveDecimalGreaterThan1': 'Value must be an decimal greater than 1',\n 'cantEndWithPeriod': 'Value cannot end with a decimal point',\n 'maxInt': 'Value must be less than or equal to 2147483647',\n 'RequiredCustom_NotJustSpaces' : 'Required',\n 'Decimal': 'Value must be a valid decimal',\n 'optGoodHigher': 'Good value must be greater than bad value for this metric',\n 'optBadHigher': 'Bad value must be greater than good value for this metric',\n 'seasonalityTotal100': 'Seasonality total must equal 100%',\n 'dropDownNotEqualTo': 'Please choose a valid value',\n 'unlimitedText': 'Value must be Unlimited or a valid positive decimal',\n 'basisRiskMultiple': 'Duplicate Basis Risk',\n 'liveCatEvents': 'Events for Live Cat report must be comma delimited list of numeric EventIDs',\n 'analysisItemReservedWord': 'Analysis Item Name can not be \"Subject\", \"Ceded\" or \"Loss\"',\n 'analysisItemNameUnique': 'Analysis Item Names must be unique',\n 'analysisDeterministicNameUnique': 'Deterministic Trial Names must be unique',\n 'lessThanNonillion': 'Numbers exceeding 1 Nonillion (1 with 30 zeros) may cause Excel exports to fail to load correctly.',\n 'unlimitedOccRequiresAgg': 'Unlimted Occ Limit requires Aggregate Limit to be greater than 0.',\n 'unlimitedReinstatementsRequiresAgg': 'Unlimted Reinstatements requires Aggregate Limit to be greater than 0.',\n 'contractGreaterThanOneYear': 'Total contract date cannot exceed 1 calendar year',\n 'inceptionDateLessThanExpirationDate': 'Inception Date must be before Expiration Date',\n 'inceptionDateWhenExpirationDate': 'Inception Date must exist when updating the Expiration Date',\n 'expirationDateWhenInceptionDate': 'Expiration Date must exist when updating the Inception Date',\n 'positiveInt365': 'Value must be an integer between 1 and 365',\n 'marginalIDs': 'Marginal requires either a Loss File ID or Portfolio ID',\n 'marginalLossID': 'Marginal Loss File details requires a Loss File ID',\n 'marginalPortID': 'Marginal Portfolio details requires a Portfolio ID',\n 'uniqueFeatureSetName': 'Must be unique',\n 'wholeNumber': 'Value must be a positive or negative whole number',\n 'noSpecialCharacters': 'Field cannot contain special characters',\n 'noSpecialCharactersWorkSheet': 'Field cannot contain characters /, \\\\, ?, :, *, [ or ]',\n 'noFileNameWindowsInvalidCharacters': 'Files names cannot contain the same invalid characters as windows',\n 'SubjectCededLoss': 'Field cannot contain only the words Subject, Ceded, or Loss',\n '15NumberDecimalLengthWithoutCommasOrDecimals': 'Maximum length is 15 numbers',\n 'Decimal2Precision': 'Value must be a valid decimal with no more than 2 precision.',\n 'Decimal4Precision': 'Value must be a valid decimal with no more than 4 precision.',\n 'Decimal12Precision': 'Value must be a valid decimal less than 1000 with no more than 12 precision.',\n 'Percentage12PrecisionWithZero': 'Value must be a valid percentage (0% - 100%) with no more than 12 precision.',\n 'Percentage2PrecisionWithZero': 'Value must be a valid percentage (0% - 100%) with no more than 2 precision.',\n 'Percentage2PrecisionWithZeroAddPercentageSign': 'Value must be a valid percentage (0% - 100%) with no more than 2 precision.',\n 'CorrelationRequiresClient': 'Policy Correlation requires a client to be selected.',\n 'CorrelationRequiresIndependent': 'Line of Business and Region Correlation requires a independent allocation to be selected.',\n 'max': `Number must be equal to or less than ${validatorValue ? validatorValue.max : '' }.`,\n 'min': `Number must be equal to or greater than ${validatorValue ? validatorValue.min : '' }.`,\n 'companyNameExists': 'Name is already taken',\n 'todayOrFutureDate': 'Date must be today or later.'\n };\n\n return config[validatorName];\n }\n\n static uniqueFeatureSetName(compareList: any[], currentName: string) {\n\n return function(control) {\n if (control.value === null || control.value === '') {\n return null;\n } else {\n if (currentName !== null && currentName.toLowerCase() === control.value.toLowerCase()) {\n return null;\n }\n\n const find = compareList.find( x => x.name.toLowerCase() === control.value.toLowerCase());\n\n if (find === undefined) {\n return null;\n } else {\n return { 'uniqueFeatureSetName': true };\n }\n }\n };\n }\n\n static creditCardValidator(control) {\n if (control.value == null) { return null; }\n // Visa, MasterCard, American Express, Diners Club, Discover, JCB\n if (control.value.match(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/)) {\n return null;\n } else {\n return { 'invalidCreditCard': true };\n }\n }\n\n static emailValidator(control) {\n if (control.value == null) { return null; }\n // RFC 2822 compliant regex\n if (control.value.match(/[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/)) {\n return null;\n } else {\n return { 'invalidEmailAddress': true };\n }\n }\n\n static Decimal4Precision(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[1-9]\\d*(\\.\\d{1,4})?\\s*$/)) {\n return null;\n } else {\n return { 'Decimal4Precision': true };\n }\n }\n\n static Decimal4PrecisionWithZero(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,4})?\\s*$/)) {\n return null;\n } else {\n return { 'Decimal4Precision': true };\n }\n }\n\n static Decimal2PrecisionWithZero(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,2})?\\s*$/)) {\n return null;\n } else {\n return { 'Decimal2Precision': true };\n }\n }\n\n static Decimal2PrecisionWithZeroAddComma(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n\n if (val.match(/^\\s*-?[0-9]\\d*(\\.\\d{1,2})?\\s*$/)) {\n const num = Number(val);\n if (isNaN(num) || num < 0) {\n return { 'Decimal2Precision': true };\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\n if (control.value !== parts.join(\".\")) {\n setTimeout(() => {\n control.setValue(parts.join(\".\"));\n }, 0);\n }\n\n return null;\n }\n } else {\n return { 'Decimal2Precision': true };\n }\n } \n\n static Decimal12PrecisionWithZero(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,12})?\\s*$/)) {\n if (+control.value < 1000) {\n return null;\n } else {\n return { 'Decimal12Precision': true };\n }\n } else {\n return { 'Decimal12Precision': true };\n }\n }\n\n static Percentage12PrecisionWithZero(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,12})?\\s*$/)) {\n if (+control.value >= 0 && +control.value < 1000) {\n return null;\n } else {\n return { 'Percentage12PrecisionWithZero': true };\n }\n } else {\n return { 'Percentage12PrecisionWithZero': true };\n }\n }\n\n static Percentage2PrecisionWithZero(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n // RFC 2822 compliant regex\n if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,2})?\\s*$/)) {\n if (+control.value >= 0 && +control.value < 1000) {\n return null;\n } else {\n return { 'Percentage2PrecisionWithZero': true };\n }\n } else {\n return { 'Percentage2PrecisionWithZero': true };\n }\n }\n\n static Percentage2PrecisionWithZeroAddPercentageSign(control) {\n let error: any;\n\n if (control.value == null || control.value.toString().length === 0) {\n return null;\n } else if (control.value && control.value.toString().length > 0 && control.value.toString().trim() === '%') {\n setTimeout(() => {\n control.setValue(null);\n }, 0); \n return null;\n }\n\n const removepercval = control.value.toString().trim().toLowerCase().replace(/,/g, '').replace(/%/g, '');\n\n const val = removepercval.length == 0? '0' + removepercval : removepercval;\n\n // RFC 2822 compliant regex\n if (val.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,2})?\\s*$/)) {\n if (+val >= 0 && +val < 1000) {\n error = null;\n } else {\n error = { 'Percentage2PrecisionWithZeroAddPercentageSign': true };\n }\n } else {\n error = { 'Percentage2PrecisionWithZeroAddPercentageSign': true };\n }\n\n if (control.value.toString().indexOf('%') === -1 || control.value.toString().indexOf('%') !== control.value.toString().length - 1) {\n setTimeout(() => {\n control.setValue(control.value.toString().trim().toLowerCase().replace(/%/g, '') + '%');\n }, 0); \n } \n\n return error;\n } \n\n static Percentage12PrecisionWithZeroAddPercentageSign(control) {\n let error: any;\n\n if (control.value == null || control.value.toString().length === 0) {\n return null;\n } else if (control.value && control.value.toString().length > 0 && control.value.toString().trim() === '%') {\n setTimeout(() => {\n control.setValue(null);\n }, 0); \n return null;\n }\n\n const removepercval = control.value.toString().trim().toLowerCase().replace(/%/g, '');\n\n const val = removepercval.length == 0? '0' + removepercval : removepercval;\n // RFC 2822 compliant regex\n if (val.match(/^\\s*-?[0-9]\\d*(\\.\\d{1,12})?\\s*$/)) {\n if (+val >= 0 && +val < 1000) {\n error = null;\n } else {\n error = { 'Percentage12PrecisionWithZero': true };\n }\n } else {\n error = { 'Percentage12PrecisionWithZero': true };\n }\n\n if (control.value.toString().indexOf('%') === -1 || control.value.toString().indexOf('%') !== control.value.toString().length - 1) {\n setTimeout(() => {\n control.setValue(control.value.toString().trim().toLowerCase().replace(/%/g, '') + '%');\n }, 0); \n } \n\n return error;\n }\n\n static Percentage12PrecisionWithZeroAddPercentageSignNoLimit(control) {\n let error: any;\n\n if (control.value == null || control.value.toString().length === 0) {\n return null;\n } else if (control.value && control.value.toString().length > 0 && control.value.toString().trim() === '%') {\n setTimeout(() => {\n control.setValue(null);\n }, 0); \n return null;\n }\n\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/%/g, '');\n\n // RFC 2822 compliant regex\n if (val.match(/^\\s*-?[0-9]\\d*(\\.\\d{1,12})?\\s*$/)) {\n } else {\n error = { 'Percentage12PrecisionWithZero': true };\n }\n\n if (control.value.toString().indexOf('%') === -1 || control.value.toString().indexOf('%') !== control.value.toString().length - 1) {\n setTimeout(() => {\n control.setValue(control.value.toString().trim().toLowerCase().replace(/%/g, '') + '%');\n }, 0); \n } \n\n return error;\n }\n\n // static Percentage2PrecisionWithZero(control) {\n // if (control.value == null || control.value.length === 0) { return null; }\n // // RFC 2822 compliant regex\n // if (control.value.toString().match(/^\\s*-?[0-9]\\d*(\\.\\d{1,2})?\\s*$/)) {\n // if (+control.value >= 0 && +control.value <= 100) {\n // return null;\n // } else {\n // return { 'Percentage2PrecisionWithZero': true };\n // }\n // } else {\n // return { 'Percentage2PrecisionWithZero': true };\n // }\n // }\n\n static passwordValidator(control) {\n if (control.value == null) { return null; }\n // {6,100} - Assert password is between 6 and 100 characters\n // (?=.*[0-9]) - Assert a string has at least one number\n // from tigereye ^((?=^[\\S])(?=.{8,})(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!\\u0022#$%&'()*+,./:;<=>?@[\\]\\^_`{|}~-]).*)[\\S]$\n // ^(?! )(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}[\\S]$\n // min 8 chars, 1 number, 1 upper, 1 lower, 1 special ^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{8,}\n // (?!.*\\s)\n if (control.value.match(/^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[#?!@$%^&*-])[A-Za-z\\d#?!@$%^&*-](?!.*\\s)/)) {\n return null;\n } else {\n return { 'invalidPassword': true };\n }\n }\n\n static noSpecialCharacters(control) {\n if (control.value == null) { return null; }\n if (control.value.match(/^[a-zA-Z0-9\\s\\-]*$/)) {\n return null;\n } else {\n return { 'noSpecialCharacters': true };\n }\n }\n\n static noFileNameWindowsInvalidCharacters(control) {\n if (control.value == null) { return null; }\n if (!control.value.match(/[<>:\"/\\|?*]/g)) {\n return null;\n } else {\n return { 'noFileNameWindowsInvalidCharacters': true };\n }\n }\n\n static validWorkSheetName(control) {\n if (control.value == null) { return null; }\n if (!/[*\\[\\]\\\\/:\\?]/g.test(control.value)) {\n return null;\n } else {\n return { 'noSpecialCharactersWorkSheet': true };\n }\n }\n\n static passwordConfirmValidator(control) {\n const v = control.value;\n\n return { 'passwordConfirm': true };\n\n }\n static commaDelimitedNumbers(allowNull = false) {\n\n return function(control) {\n if ((control.value == null || control.value === '') && allowNull === true) {\n return { 'commaDelimitedNumbers': true };\n }\n\n if (control.value == null && allowNull === false) { return null; }\n\n if (control.value.match(/^([0-9])+(,[0-9]+)*$/)) {\n return null;\n } else {\n return { 'commaDelimitedNumbers': true };\n }\n };\n }\n\n static commaSpacePipesNewLinesDelimitedNumbers(allowNull = false) {\n\n return function(control) {\n if ((control.value == null || control.value === '') && allowNull === true) {\n return { 'commaSpacePipesNewLinesDelimitedNumbers': true };\n }\n\n if (control.value == null && allowNull === false) { return null; }\n \n if (control.value.match(/^[0-9,| \\t\\r\\n]*$/)) {\n return null;\n } else {\n return { 'commaSpacePipesNewLinesDelimitedNumbers': true };\n }\n };\n }\n\n static LettersNumbersCommaUnderscore(control) {\n if (control.value == null) { return null; }\n\n try {\n if (control.value.match(/^[a-zA-Z0-9_ -]+( [a-zA-Z0-9_ -]+)*$/)) {\n return null;\n } else {\n return { 'LettersNumbersCommaUnderscore': true };\n }\n } catch (e) {\n return null;\n }\n }\n\n static SubjectCededLoss(control) {\n if (control.value == null) { return null; }\n\n try {\n if (control.value.toLowerCase().trim() === 'subject' || control.value.toLowerCase().trim() === 'ceded' || control.value.toLowerCase().trim() === 'loss') {\n return { 'SubjectCededLoss': true };\n } else {\n return null;\n }\n } catch (e) {\n return null;\n }\n }\n\n static RequiredCustom_NotJustSpaces(control) {\n if (control.value == null) { return null; }\n\n if (/\\S/.test(control.value) || control.value.length === 0) {\n return null;\n } else {\n return { 'RequiredCustom_NotJustSpaces': true };\n }\n }\n\n static positiveInt(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n\n if ((parseFloat(control.value) === parseInt(control.value, 10)) && !isNaN(control.value)) {\n if (parseInt(control.value, 10) >= 0) {\n return null;\n } else {\n return { 'positiveInt': true };\n }\n } else {\n return { 'positiveInt': true };\n }\n }\n\n static todayOrFutureDate(control) {\n if (control.value == null) { return null; }\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n const dateToCompare = new Date(control.value);\n dateToCompare.setHours(0, 0, 0, 0);\n\n if (dateToCompare < today) {\n return { 'todayOrFutureDate': true };\n }\n }\n\n static dropdownNotEqualTo = (exclusion: string) => {\n return (control) => {\n if (control.value == null || control.value.length === 0) { return null; }\n\n if (control.value.toString() === exclusion) {\n return { 'dropDownNotEqualTo': true};\n } else {\n return null;\n }\n };\n };\n\n static positiveDecimal(control) {\n if (control.value == null) { return null; }\n\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && val.charAt(val.length - 1) === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number(val);\n if (isNaN(num) || num < 0) {\n return { 'positiveDecimal': true };\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n control.value = parts.join(\".\");\n\n return null;\n }\n } else {\n return { 'positiveDecimal': true };\n }\n }\n\n static positiveDecimalEmptyAsNull(control) {\n if (control.value == null) { return null; }\n\n if (control.value.length === 0)\n {\n control.value = null;\n return null;\n }\n\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && val.charAt(val.length - 1) === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number(val);\n if (isNaN(num) || num < 0) {\n return { 'positiveDecimal': true };\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n control.value = parts.join(\".\");\n\n return null;\n }\n } else {\n return { 'positiveDecimal': true };\n }\n }\n\n static positiveDecimalStripCommas(control) {\n if (control.value == null) { return null; }\n\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && val.charAt(val.length - 1) === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number(val);\n if (isNaN(num) || num < 0) {\n return { 'positiveDecimal': true };\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n control.value = parts.join(\".\").replace(/,/g, '');\n\n return null;\n }\n } else {\n return { 'positiveDecimal': true };\n }\n }\n\n static positiveDecimalGreaterThan1(control) {\n if (control.value == null) { return null; }\n\n const val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && val.charAt(val.length - 1) === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number(val);\n if (isNaN(num) || num < 1) {\n return { 'positiveDecimalGreaterThan1': true };\n } else {\n const value = Number(num);\n let returnVal = value.toString();\n const res = num.toString().split('.');\n if (res.length === 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n const parts = returnVal.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n control.value = parts.join('.');\n return null;\n }\n } else {\n return { 'positiveDecimalGreaterThan1': true };\n }\n }\n\n static positiveDecimalWithKMBT(control) {\n if (control.value == null) { return null; }\n control.value = '0' + control.value.toString().trim();\n let val = control.value.toString().trim().toLowerCase().replace(/,/g, '');\n const lastChar = val.substr(val.length - 1);\n const charAry = ['', 'k', 'm', 'b', 't'];\n const charIndex = charAry.indexOf(lastChar);\n\n if (charIndex > 0) {\n val = val.substr(0, val.length - 1);\n }\n val = '0' + val;\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && val.charAt(val.length - 1) === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number('0' + val);\n if (isNaN(num) || num < 0) {\n return { 'positiveDecimal': true };\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n if (charIndex > 0) {\n returnVal = returnVal + charAry[charIndex];\n }\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n control.value = parts.join(\".\");\n return null;\n }\n } else {\n return { 'positiveDecimal': true };\n }\n }\n\n static maxNumericalLength(maxLength: number) {\n return (control) => {\n if (maxLength > 0) {\n if (control.value == null) { return null; }\n const val = control.value.toString().trim().toLowerCase().replace(/,/g, '');\n const fixedVal = val.replace(/\\./g, '');\n if (fixedVal.length > maxLength) {\n return { '15NumberDecimalLengthWithoutCommasOrDecimals': true };\n } else {\n return null;\n }\n }\n };\n }\n\n static liveCatEventIDs(control) {\n if (control.value == null) { return null; }\n const eventIDs = control.value.split(',');\n let eventsInvalid = false;\n eventIDs.forEach((id) => {\n if (isNaN(id.trim())) {\n eventsInvalid = true;\n }\n const num = Number(id.trim());\n if (Number.isNaN(num)|| num < 0) {\n eventsInvalid = true;\n }\n });\n if (!eventsInvalid) {\n return null;\n } else {\n return { 'liveCatEvents': true };\n }\n\n }\n\n static unlimitedText(control) {\n if (control.value == null || control.value === 'Unlimited') { return null; }\n\n let val = '0' + control.value.toString().trim().toLowerCase().replace(/,/g, '');\n const lastChar = val.substr(val.length - 1);\n\n // check if the last number of the entry is a \".\" and if it is, error it out\n if (val.length > 1 && lastChar === '.') {\n return { 'cantEndWithPeriod': true };\n }\n\n const charAry = ['', 'k', 'm', 'b', 't'];\n const charIndex = charAry.indexOf(lastChar);\n\n if (charIndex > 0) {\n val = val.substr(0, val.length - 1);\n }\n\n\n if (val.match(/^[0-9e]+(\\.[0-9e]*){0,1}$/g)) {\n const num = Number(val);\n if (isNaN(num) || num < 0) {\n return {'unlimitedText': true};\n } else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n if (charIndex > 0) {\n returnVal = returnVal + charAry[charIndex];\n }\n //handle commas and decimals\n var parts = returnVal.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n control.value = parts.join(\".\");\n return null;\n }\n } else if (val !== '-1') {\n return {'unlimitedText': true};\n }\n }\n\n static maxInt(control) {\n if (control.value == null || control.value.length === 0) { return null; }\n\n if (parseInt(control.value, 10) <= 2147483647) {\n return null;\n } else {\n return { 'maxInt': true };\n }\n }\n\n static wholeNumber(allowNull: boolean = false) {\n return (control) => {\n if (allowNull && (control.value == null || control.value === '')) {\n return { 'wholeNumber': true };\n }\n\n if (!allowNull && control.value == null) { return null; }\n\n if (control.value.toString().match(/^-?(\\d+|\\d{1,3}(,\\d{3})*)(\\.\\d+)?$/)) {\n return null;\n }\n\n return { 'wholeNumber': true };\n\n };\n }\n\n static nonNegativeDecimal100(control) {\n if (control.value == null) { return null; }\n control.value = '0' + control.value.toString().trim();\n if (control.value.toString().match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number('0' + control.value);\n if (num > 100) {\n return { 'nonNegativeDecimal100': true };\n }else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n control.value = returnVal;\n return null;\n }\n\n\n } else {\n return { 'nonNegativeDecimal100': true };\n }\n }\n\n static positiveDecimal100(control) {\n if (control.value == null) { return null; }\n control.value = '0' + control.value.toString().trim();\n if (control.value.toString().match(/^[0-9]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number('0' + control.value);\n if (num <= 0 || num > 100) {\n return { 'positiveDecimal100': true };\n }\n else {\n let value = Number(num);\n let returnVal = value.toString();\n let res = num.toString().split(\".\");\n if(res.length == 1 && (res[1] !== undefined && res[1].length < 2)) {\n returnVal = value.toFixed(2);\n }\n control.value = returnVal;\n return null;\n }\n\n } else {\n return { 'positiveDecimal100': true };\n }\n }\n\n static percent() {\n\n return function(control) {\n\n if (control.value == null || control.value === '') {\n return null;\n }\n const num = Number(control.value);\n if (isNaN(num)) {\n\n return {'percent': true};\n } else {\n if (num < 0 || num > 100) {\n\n return {'percent': true};\n }\n return null;\n }\n }\n\n\n }\n\n static lessThanNonillion(control) {\n if (control.value == null) { return null; }\n\n const val = control.value.toString().replace(/,/g, '');\n if (val.match(/^[0-9eE]+(\\.[0-9]*){0,1}$/g)) {\n const num = Number(val);\n if ( num > 1E30) {\n return { 'lessThanNonillion': true };\n }\n return null;\n } else {\n return null;\n }\n }\n\n static positiveInt100(control) {\n if (control.value == null) { return null; }\n\n if (control.value.toString().match(/^(?:100|[1-9]?[0-9])$/g) ) {\n const num = Number(control.value);\n if (num <= 0 || num > 100) {\n return { 'positiveInt100': true };\n }\n return null;\n } else {\n return { 'positiveInt100': true };\n }\n }\n\n static positiveInt365(control) {\n if (control.value == null) { return null; }\n\n if (control.value.toString().match(/^(?:36[0-5]|3[0-5][0-9]|[12][0-9][0-9]|[1-9][0-9]|[1-9])$/g) ) {\n const num = Number(control.value);\n if (num <= 0 || num > 365) {\n return { 'positiveInt365': true };\n }\n return null;\n } else {\n return { 'positiveInt365': true };\n }\n }\n\n static decimal(control) {\n if (control.value == null) { return null; }\n const num = Number(control.value.toString().replace(/,/g , ''));\n if (Number.isNaN(num)) {\n return { 'Decimal': true };\n } else {\n return null\n }\n }\n\n static rmLowHigh(group) {\n const controlLow = group.get('lower');\n const controlUpper = group.get('upper');\n if (controlLow.value == null || controlUpper.value == null) { return null; }\n\n const numLow = Number(controlLow.value);\n const numHigh = Number(controlUpper.value);\n if (numLow < numHigh) {\n return null;\n }\n return { 'rmLowHigh': true };\n }\n\n static lowHigh(group) {\n const controlLow = group.get('lower');\n const controlUpper = group.get('upper');\n if (controlLow.value == null || controlUpper.value == null) { return null; }\n\n const numLow = Number(controlLow.value);\n const numHigh = Number(controlUpper.value);\n if (numLow < numHigh) {\n return null;\n }\n return { 'lowHigh': true };\n }\n\n static minMaxLoss(group) {\n const controlLow = group.get('sevDistMinLoss');\n const controlUpper = group.get('sevDistMaxLoss');\n if (controlLow.value == null || controlUpper.value == null) { return null; }\n\n const numLow = Number(controlLow.value.toString().replace(/,/g, ''));\n const numHigh = Number(controlUpper.value.toString().replace(/,/g, ''));\n if (numLow < numHigh) {\n return null;\n }\n return { 'minMaxLoss': true };\n }\n\n static lowHighUnlimited(group) {\n const controlLow = group.get('lower');\n const controlUpper = group.get('upper');\n if (controlLow.value == null || controlUpper.value == null || controlUpper.value === 'Unlimited' || controlUpper.value === '-1') { return null; }\n\n const numLow = Number(controlLow.value.toString().replace(/,/g, ''));\n const numHigh = Number(controlUpper.value.toString().replace(/,/g, ''));\n if (numLow < numHigh) {\n return null;\n }\n return { 'lowHigh': true };\n }\n\n static optGoodHigher(group) {\n const controlGood = group.get('goodValue');\n const controlBad = group.get('badValue');\n\n if (controlGood.value === '' || controlBad.value === '' || controlGood.value === null || controlBad.value === null) { return null; }\n\n const numGood = Number(controlGood.value);\n const numBad = Number(controlBad.value);\n if (Number.isNaN(numGood) || Number.isNaN(numBad)) { return null; }\n if (numGood > numBad) {\n return null;\n }\n return { 'optGoodHigher': true };\n }\n\n static optBadHigher(group) {\n const controlGood = group.get('goodValue');\n const controlBad = group.get('badValue');\n\n if (controlGood.value === '' || controlBad.value === '' || controlGood.value === null || controlBad.value === null) { return null; }\n\n const numGood = Number(controlGood.value);\n const numBad = Number(controlBad.value);\n if (Number.isNaN(numGood) || Number.isNaN(numBad)) { return null; }\n if (numGood < numBad) {\n return null;\n }\n return { 'optBadHigher': true };\n }\n\n static seasonalityTotal100(group) {\n let total = 0;\n Object.getOwnPropertyNames(group.controls).forEach((name: string) => {\n if (name.indexOf('seasonDist') === 0) {\n const num = Number(group.get(name).value);\n if (!isNaN(num)) {\n total += num;\n }\n }\n });\n\n if (total >= 99.999 && total <= 100.001) {\n return null;\n }\n return { 'seasonalityTotal100': true };\n }\n\n static updateSeasonalityTotal100(group) {\n let total = 0;\n Object.getOwnPropertyNames(group.controls).forEach((name: string) => {\n if (name.includes('Pct')) {\n const num = Number(group.get(name).value);\n if (!isNaN(num)) {\n total += num;\n }\n }\n });\n\n if (total >= 99.999 && total <= 100.001) {\n return null;\n }\n return { 'updateSeasonalityTotal100': true };\n }\n\n static analysisItemReservedWord(control) {\n if (control.value == null) { return null; }\n\n const val = control.value.toLowerCase();\n if (val === 'subject' || val === 'ceded' || val === 'loss') {\n return { 'analysisItemReservedWord': true };\n } else {\n return null;\n }\n }\n\n static analysisItemNameUnique(model: any, layer: any): ValidatorFn {\n return (control) => {\n const myName = control.value;\n if (model.layers.filter((item: any) => { return item.values.analysisItemID !== layer.values.analysisItemID; })\n .filter((item2: any) => { return item2.values.analysisItemName.toLowerCase() === myName.toLowerCase(); }).length > 0) {\n return {'analysisItemNameUnique': true}\n } else {\n return null;\n }\n }\n }\n\n static analysisDeterministicNameUnique(model: any, trial: any): ValidatorFn {\n return (control) => {\n const myName = control.value;\n if (model.trials.filter((t: any) => { return t.trialID !== trial.trialID; })\n .filter((t2: any) => { return t2.name === myName; }).length > 0) {\n return {'analysisDeterministicNameUnique': true}\n } else {\n return null;\n }\n }\n }\n\n static unlimitedOccRequiresAgg(group) {\n const controlOcc = group.get('limit');\n const controlAgg = group.get('aggregateLimit');\n if (controlOcc.value == null || controlAgg.value == null) { return null; }\n\n const numHigh = Number(controlAgg.value.toString().replace(/,/g, ''));\n if (controlOcc.value === 'Unlimited' && numHigh <= 0) {\n return { 'unlimitedOccRequiresAgg': true };\n }\n return null;\n }\n\n static unlimitedReinstatementsRequiresAgg(group) {\n const controlOcc = group.get('riString');\n const controlAgg = group.get('aggregateLimit');\n if (controlOcc.value == null || controlAgg.value == null) { return null; }\n\n const numHigh = Number(controlAgg.value.toString().replace(/,/g, ''));\n if (controlOcc.value === '-1@0' && numHigh <= 0) {\n return { 'unlimitedReinstatementsRequiresAgg': true };\n }\n return null;\n }\n\n static contractGreaterThanOneYear(group) {\n const controlInception = group.get('inceptionDate');\n const controlExpiration = group.get('expirationDate');\n if (controlInception.value == null || controlExpiration.value == null) { \n return null; \n }\n\n const id = new Date(controlInception.value);\n const maxDt = new Date(id.getFullYear() + 1, id.getMonth(), id.getDate() - 1);\n const ed = new Date(controlExpiration.value);\n if (ed > maxDt) {\n return { 'contractGreaterThanOneYear': true };\n }\n return null;\n }\n\n static inceptionBeforeExpiration(group) {\n const controlInception = group.get('inceptionDate');\n const controlExpiration = group.get('expirationDate');\n\n const id = new Date(controlInception.value);\n const ed = new Date(controlExpiration.value);\n\n //if both good dates check them. Forms should have other validation to account for dates being good\n if (!isNaN(id.getTime()) && !isNaN(ed.getTime()) && id.getTime() > 0 && ed.getTime() > 0) {\n if (ed <= id) {\n return { 'inceptionDateLessThanExpirationDate': true };\n }\n }\n return null;\n }\n\n static inceptionWhenExpiration(group) {\n const controlInception = group.get('inceptionDate');\n const controlExpiration = group.get('expirationDate');\n\n const id = new Date(controlInception.value);\n const ed = new Date(controlExpiration.value);\n\n //if one or the other is null or undefined, that's not ok, return the error\n if ((id.getTime() === 0 || isNaN(id.getTime())) && (!isNaN(ed.getTime()) && ed.getTime() !== 0)) {\n return { 'inceptionDateWhenExpirationDate': true };\n }\n\n if ((ed.getTime() === 0 || isNaN(ed.getTime())) && (!isNaN(id.getTime()) && id.getTime() !== 0)) {\n return { 'expirationDateWhenInceptionDate': true };\n }\n //if both are good dates or both empty dates then we are good\n return null;\n }\n\n static marginalLossPortfolioIDReq(group) {\n const lossFileID = group.get('lossFileID');\n const portfolioID = group.get('portfolioID');\n const lossPeril = group.get('lossPeril');\n const lossRegion = group.get('lossRegion');\n const lossLOB = group.get('lossLOB');\n const useAdjusted = group.get('useAdjusted');\n const includeCeded = group.get('includeCeded');\n const portPeril = group.get('portPeril');\n const portRegion = group.get('portRegion');\n const portLOB = group.get('portLOB');\n const ccrmLower = group.get('ccrmLower');\n const ccrmUpper = group.get('ccrmUpper');\n if (lossFileID.value == null && portfolioID.value == null) {\n if (\n lossPeril.value == null &&\n lossRegion.value == null &&\n lossLOB.value == null &&\n useAdjusted.value == null &&\n includeCeded.value == null &&\n portPeril.value == null &&\n portRegion.value == null &&\n portLOB.value == null &&\n ccrmLower.value == null &&\n ccrmUpper.value == null\n ) {\n return null;\n } else {\n return {'marginalIDs': true};\n }\n }\n /*else if (lossFileID.value == null) {\n if(\n lossPeril.value == null &&\n lossRegion.value == null &&\n lossLOB.value == null\n ) {\n return null;\n }else {\n return {'marginalLossID': true};\n }\n }else if (portfolioID.value == null) {\n if (\n portPeril.value == null &&\n portRegion.value == null &&\n portLOB.value == null\n ) {\n return null;\n } else {\n return {'marginalPortID': true};\n }\n }*/\n return null;\n\n\n }\n\n static CorrelationRequiresClient(eltForm): ValidatorFn {\n \n return (control: AbstractControl): ValidationErrors | null => {\n \n let correlation: boolean = control.value;\n\n if (correlation && +eltForm.controls.ClientID.value === -1) {\n return { 'CorrelationRequiresClient': true };\n }\n return null;\n }\n\n }\n\n static CorrelationRequiresIndependent(control) {\n \n const correlation = control.value;\n\n if ((correlation !== null && correlation) && +control.parent.controls.AllocateLosses.value !== 0) {\n return { 'CorrelationRequiresIndependent': true };\n }\n return null;\n }\n\n constructor() { }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UntypedFormArray, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\n\n\n@Component({\n selector: 'app-form-throbber-button',\n templateUrl: './form-throbber-button.component.html',\n styleUrls: ['./form-throbber-button.component.scss'],\n standalone: true,\n imports: []\n})\nexport class FormThrobberButtonComponent {\n @Input() throbbingFlag: boolean;\n @Input() buttonText: string;\n @Input() throbbingButtonText: string;\n @Input() buttonClass: string = 'btn-default';\n @Input() enabled: boolean;\n @Input() form: UntypedFormGroup;\n @Output() SubmitFormEvent: EventEmitter = new EventEmitter();\n constructor() { }\n\n public submitForm(form: UntypedFormGroup) {\n if (form === undefined || form.valid) {\n this.SubmitFormEvent.emit();\n } else {\n this.markAsDirty(form);\n }\n }\n\n private markAsDirty(group: UntypedFormGroup | UntypedFormArray) {\n group.markAsDirty();\n for (const i in group.controls) {\n if (group.controls.hasOwnProperty(i)) {\n if (group.controls[i] instanceof UntypedFormControl) {\n group.controls[i].markAsDirty();\n group.controls[i].markAsTouched();\n } else {\n this.markAsDirty(group.controls[i]);\n }\n }\n }\n }\n\n}\n\n/****\n * Usage:\n *\n * In a form\n *\n *
\n * Form Controls...\n * \n * \n *\n *\n * Outside a form or general button with async call:\n *\n *
\n * Form Controls...\n *
\n * <--this can bind to any function for the parent component\n * \n */\n","@if (!throbbingFlag) {\n \n \n \n}\n\n@if (throbbingFlag) {\n \n \n \n}\n","import { Injectable, Input, Directive } from '@angular/core';\nimport {UntypedFormControl} from '@angular/forms';\nimport { ValidationService } from '@common_libraries/Services/validation/validation.service';\n\n@Directive()\n@Injectable()\nexport class ValidationNotificationModel {\n @Input() control: UntypedFormControl;\n @Input() isSubmitted: boolean = true;\n\n constructor() { }\n\n public setControl(formControl: UntypedFormControl) {\n this.control = formControl;\n }\n\n public setIsSubmitted(isSubmitted: boolean) {\n this.isSubmitted = isSubmitted;\n } \n\n public getErrorMessage(): string {\n for (const propertyName in this.control.errors) {\n if (this.control.errors.hasOwnProperty(propertyName) && this.control.touched && this.isSubmitted) {\n return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);\n }\n }\n return null;\n }\n}\n","import {Component, Input, OnChanges, OnInit} from '@angular/core';\nimport { ValidationNotificationModel } from './model/validation-notification.model';\nimport {UntypedFormControl} from '@angular/forms';\n\n@Component({\n selector: 'app-validation-notification',\n templateUrl: './validation-notification.component.html',\n styleUrls: ['./validation-notification.component.scss'],\n providers: [ValidationNotificationModel],\n standalone: true\n})\nexport class ValidationNotificationComponent implements OnInit, OnChanges {\n @Input() control: UntypedFormControl;\n @Input() isSubmitted: boolean = true;\n\n constructor(public model: ValidationNotificationModel) { }\n\n ngOnInit() {\n this.model.setControl(this.control);\n this.model.setIsSubmitted(this.isSubmitted);\n }\n\n ngOnChanges() {\n this.model.setControl(this.control);\n this.model.setIsSubmitted(this.isSubmitted);\n }\n\n}\n","{{model.getErrorMessage()}}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl, FormControl} from \"@angular/forms\";\r\n\r\n@Pipe({\r\n name: 'formControl',\r\n standalone: true\r\n})\r\nexport class FormControlPipe implements PipeTransform {\r\n transform(value: AbstractControl): FormControl {\r\n return value as FormControl;\r\n }\r\n}","import { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nimport { UniqueComponentId } from 'primeng/utils';\n\n@Component({\n selector: 'TimesCircleIcon',\n standalone: true,\n imports: [BaseIcon],\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n})\nexport class TimesCircleIcon extends BaseIcon {\n pathId: string;\n\n ngOnInit() {\n this.pathId = 'url(#' + UniqueComponentId() + ')';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"mappings":"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","names":["NotificationCenterHelperService","constructor","ncSubject","Subject","ncObservable","pipe","shareReplay","ncReceiverSubject","ncReceiverObservable","initProcessHelper","refreshNCReceiverSubject","component","next","refreshNCSubject","factory","ɵfac","providedIn","_NotificationCenterHelperService","FileManagementService","constructor","servLib","PrepareUpload","assembledFileName","TotalChunks","TotalFileSize","UniqueFileIdentifierKey","parameters","Dictionary","addOrUpdate","HttpPost","ServiceLibrary","ContentType","JSON","LogFileUploadError","Message","ExtraDetails","GetFileUploadTokenProcessingStatuses","TokenList","length","BehaviorSubject","HttpPostPolling","ɵɵinject","factory","ɵfac","providedIn","_FileManagementService","ValidationService","getValidatorErrorMessage","validatorName","validatorValue","requiredLength","max","min","uniqueFeatureSetName","compareList","currentName","control","value","toLowerCase","find","x","name","undefined","creditCardValidator","match","emailValidator","Decimal4Precision","length","toString","Decimal4PrecisionWithZero","Decimal2PrecisionWithZero","Decimal2PrecisionWithZeroAddComma","val","trim","replace","num","Number","isNaN","returnVal","res","split","toFixed","parts","join","setTimeout","setValue","Decimal12PrecisionWithZero","Percentage12PrecisionWithZero","Percentage2PrecisionWithZero","Percentage2PrecisionWithZeroAddPercentageSign","error","removepercval","indexOf","Percentage12PrecisionWithZeroAddPercentageSign","Percentage12PrecisionWithZeroAddPercentageSignNoLimit","passwordValidator","noSpecialCharacters","noFileNameWindowsInvalidCharacters","validWorkSheetName","test","passwordConfirmValidator","v","commaDelimitedNumbers","allowNull","commaSpacePipesNewLinesDelimitedNumbers","LettersNumbersCommaUnderscore","SubjectCededLoss","RequiredCustom_NotJustSpaces","positiveInt","parseFloat","parseInt","todayOrFutureDate","today","Date","setHours","dateToCompare","positiveDecimal","charAt","positiveDecimalEmptyAsNull","positiveDecimalStripCommas","positiveDecimalGreaterThan1","positiveDecimalWithKMBT","lastChar","substr","charAry","charIndex","maxNumericalLength","maxLength","liveCatEventIDs","eventIDs","eventsInvalid","forEach","id","unlimitedText","maxInt","wholeNumber","nonNegativeDecimal100","positiveDecimal100","percent","lessThanNonillion","positiveInt100","positiveInt365","decimal","rmLowHigh","group","controlLow","get","controlUpper","numLow","numHigh","lowHigh","minMaxLoss","lowHighUnlimited","optGoodHigher","controlGood","controlBad","numGood","numBad","optBadHigher","seasonalityTotal100","total","Object","getOwnPropertyNames","controls","updateSeasonalityTotal100","includes","analysisItemReservedWord","analysisItemNameUnique","model","layer","myName","layers","filter","item","values","analysisItemID","item2","analysisItemName","analysisDeterministicNameUnique","trial","trials","t","trialID","t2","unlimitedOccRequiresAgg","controlOcc","controlAgg","unlimitedReinstatementsRequiresAgg","contractGreaterThanOneYear","controlInception","controlExpiration","maxDt","getFullYear","getMonth","getDate","inceptionBeforeExpiration","ed","getTime","inceptionWhenExpiration","marginalLossPortfolioIDReq","lossFileID","portfolioID","lossPeril","lossRegion","lossLOB","useAdjusted","includeCeded","portPeril","portRegion","portLOB","ccrmLower","ccrmUpper","CorrelationRequiresClient","eltForm","ClientID","CorrelationRequiresIndependent","correlation","parent","AllocateLosses","constructor","_ValidationService","dropdownNotEqualTo","exclusion","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","submitForm","form","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMapInterpolate1","buttonClass","ɵɵproperty","enabled","ɵɵtextInterpolate","buttonText","_r3","ɵɵelement","ɵɵclassMap","ɵɵtextInterpolate1","throbbingButtonText","FormThrobberButtonComponent","constructor","SubmitFormEvent","EventEmitter","undefined","valid","emit","markAsDirty","group","i","controls","hasOwnProperty","UntypedFormControl","markAsTouched","selectors","inputs","throbbingFlag","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FormThrobberButtonComponent_Conditional_0_Template","FormThrobberButtonComponent_Conditional_1_Template","ɵɵconditional","_FormThrobberButtonComponent","ValidationNotificationModel","constructor","isSubmitted","setControl","formControl","control","setIsSubmitted","getErrorMessage","propertyName","errors","hasOwnProperty","touched","ValidationService","getValidatorErrorMessage","inputs","factory","ɵfac","_ValidationNotificationModel","ValidationNotificationComponent","constructor","model","isSubmitted","ngOnInit","setControl","control","setIsSubmitted","ngOnChanges","ɵɵdirectiveInject","ValidationNotificationModel","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","getErrorMessage","_ValidationNotificationComponent","FormControlPipe","transform","value","pure","standalone","_FormControlPipe","TimesCircleIcon","BaseIcon","pathId","ngOnInit","UniqueComponentId","t","ɵcmp","ɵɵdefineComponent","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature"],"x_google_ignoreList":[9,10]}