{"version":3,"file":"ClaimsApi-wKHiwwEd.js","sources":["../../Client/legacy/Claims/Models.ts","../../Client/api/ClaimsApi.ts"],"sourcesContent":["import { ProductLine } from '@business/CommonSets';\r\nimport * as Constants from '@shared/Constants';\r\nimport { IPhysicalAddressWithBuildingNumber, Serializable } from '@shared/Models';\r\nimport { Rules, Value } from '@webkit/index';\r\nimport dayjs from 'dayjs';\r\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\r\n\r\ndayjs.extend(isSameOrAfter);\r\n\r\nexport interface IPhysicalAddressWithCounty extends IPhysicalAddressWithBuildingNumber {\r\n    CountyName: string;\r\n}\r\n\r\nexport interface IPhysicalAddressWithIds extends IPhysicalAddressWithCounty {\r\n    NetRatePremisesId: number | null;\r\n    ImsLocationId: number | null;\r\n}\r\n\r\nexport class Claim extends Serializable {\r\n    dateOfLoss: Value<dayjs.Dayjs | null>;\r\n    timeOfLoss: Value<dayjs.Dayjs>;\r\n    verified: boolean;\r\n    type: ClaimPolicyType;\r\n    policyNumberVerificationFailed: boolean;\r\n    addressVerificationFailed: boolean;\r\n    existingClaims: ExistingClaimInfo[];\r\n\r\n    state: State;\r\n    product: number;\r\n    verification: Verification;\r\n    insured: Insured;\r\n    contact: Contact;\r\n    reporter: Reporter;\r\n    info: Info;\r\n    origin: ClaimOrigin;\r\n    exteriorPropertyModeling: ExteriorPropertyModeling;\r\n\r\n    constructor(origin?: ClaimOrigin, json?: string | null) {\r\n        super();\r\n\r\n        this.dateOfLoss = new Value<dayjs.Dayjs | null>('date of loss', null, [\r\n            Rules.required(),\r\n            Rules.before(dayjs().add(1, 'd').startOf('d')),\r\n            Rules.after(dayjs('2016-01-01', 'YYYY-MM-DD').add(-1, 's')),\r\n        ]);\r\n        this.timeOfLoss = new Value<dayjs.Dayjs>('time of loss', dayjs().startOf('d'), [Rules.required()]);\r\n        this.verified = false;\r\n        this.policyNumberVerificationFailed = false;\r\n        this.addressVerificationFailed = false;\r\n        this.origin = origin || ClaimOrigin.Web;\r\n\r\n        this.state = new State();\r\n        this.product = ProductLine.Homeowner.key;\r\n        this.verification = new Verification();\r\n        this.insured = new Insured();\r\n        this.contact = new Contact();\r\n        this.reporter = new Reporter();\r\n        this.info = new Info();\r\n        this.type = ClaimPolicyType.Unknown;\r\n        this.exteriorPropertyModeling = new ExteriorPropertyModeling();\r\n\r\n        if (json) this.fromJson(JSON.parse(json));\r\n    }\r\n\r\n    fromJson(parsed: any) {\r\n        super.fromJson(parsed);\r\n\r\n        this.dateOfLoss.set(this.dateOfLoss.content ? dayjs(this.dateOfLoss.content).startOf('d') : null);\r\n        // this.timeOfLoss.set(this.timeOfLoss.content ? dayjs(this.timeOfLoss.content) : dayjs().startOf('d'));\r\n    }\r\n\r\n    askTriageQuestions(): boolean {\r\n        let accidentType = this.info.accidentType.content,\r\n            dayGracePeriod: number;\r\n\r\n        if (['RoofLeak', 'Hurricane', 'Windstorm'].indexOf(accidentType?.name || '') > -1) dayGracePeriod = 21;\r\n        else if (accidentType?.name === 'Hail') dayGracePeriod = 10;\r\n        else dayGracePeriod = 5;\r\n\r\n        return (\r\n            accidentType?.triageQuestions.length !== 0 &&\r\n            this.verified &&\r\n            this.contact.type.content !== ContactType.PublicAdjuster &&\r\n            this.contact.type.content !== ContactType.Attorney &&\r\n            this.contact.type.content !== ContactType.Contractor &&\r\n            dayjs(this.dateOfLoss.content).isSameOrAfter(dayjs().subtract(dayGracePeriod, 'days'))\r\n        );\r\n    }\r\n}\r\n\r\nexport enum VerificationType {\r\n    PolicyNumber = 'policy-number',\r\n    Address = 'address',\r\n}\r\n\r\nexport class Verification extends Serializable {\r\n    type: VerificationType;\r\n    policyNumber: Value<string>;\r\n    policyZip: Value<string>;\r\n    address: Value<string>;\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.type = VerificationType.Address;\r\n        this.policyNumber = new Value<string>('policy number', '', [Rules.required()]);\r\n        this.policyZip = new Value<string>('zip code', '', [Rules.required(), Rules.zip()]);\r\n        this.address = new Value<string>('address', '', [Rules.required()]);\r\n    }\r\n}\r\n\r\nexport class Insured extends Serializable {\r\n    firstName: Value<string>;\r\n    lastName: Value<string>;\r\n    commercialName: Value<string>;\r\n    phone: Value<string>;\r\n    email: Value<string>;\r\n    unverifiedUnderwritingLocation: Value<string>;\r\n    verifiedUnderwritingLocation: Value<IPhysicalAddressWithIds | null>;\r\n    underwritingLocations: IPhysicalAddressWithBuildingNumber[];\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.firstName = new Value<string>('firstName', '', [Rules.required()]);\r\n        this.lastName = new Value<string>('lastName', '', [Rules.required()]);\r\n        this.commercialName = new Value<string>('commercialName', '', [Rules.required()]);\r\n        this.phone = new Value<string>('phone number', '', [Rules.required(), Rules.phone()]);\r\n        this.email = new Value<string>('email address', '', [Rules.required(), Rules.email()]);\r\n        this.unverifiedUnderwritingLocation = new Value<string>('address', '', [Rules.required()]);\r\n        this.verifiedUnderwritingLocation = new Value<IPhysicalAddressWithIds | null>('address', null, [\r\n            Rules.required(),\r\n        ]);\r\n        this.underwritingLocations = [];\r\n    }\r\n\r\n    static fromRaw(raw: any): Insured {\r\n        const insured = new Insured();\r\n        insured.firstName.set(raw.InsuredFirstName || '');\r\n        insured.lastName.set(raw.InsuredLastName || '');\r\n        insured.commercialName.set(raw.InsuredCommercialName || '');\r\n        insured.phone.set(raw.InsuredPhone || '');\r\n        insured.email.set(raw.InsuredEmail || '');\r\n        insured.underwritingLocations = raw.UnderwritingLocations;\r\n\r\n        if (raw.UnderwritingLocations.length) insured.verifiedUnderwritingLocation.set(raw.UnderwritingLocations[0]);\r\n\r\n        return insured;\r\n    }\r\n\r\n    isValid(): boolean {\r\n        if (this.underwritingLocations.length) this.verifiedUnderwritingLocation.validate();\r\n        else this.unverifiedUnderwritingLocation.validate();\r\n\r\n        this.phone.validate();\r\n        this.email.validate();\r\n\r\n        let valid =\r\n            (this.underwritingLocations.length\r\n                ? this.verifiedUnderwritingLocation.valid\r\n                : this.unverifiedUnderwritingLocation.valid) &&\r\n            this.phone.valid &&\r\n            this.email.valid;\r\n\r\n        if (this.commercialName && this.commercialName.content !== '') {\r\n            this.commercialName.validate();\r\n            valid = valid && this.commercialName.valid;\r\n        } else {\r\n            this.firstName.validate();\r\n            this.lastName.validate();\r\n            valid = valid && this.firstName.valid && this.lastName.valid;\r\n        }\r\n        return valid;\r\n    }\r\n}\r\n\r\nexport class State extends Serializable {\r\n    stateCode: string;\r\n    isSwyfft: boolean;\r\n    isCore: boolean;\r\n\r\n    constructor(stateCode?: string, isSwyfft?: boolean, isCore?: boolean) {\r\n        super();\r\n\r\n        this.stateCode = stateCode || '';\r\n        this.isSwyfft = isSwyfft || false;\r\n        this.isCore = isCore || false;\r\n    }\r\n\r\n    static fromRaw(raw: any): State {\r\n        return new State(raw.StateCode, raw.IsSwyfft, raw.IsCore);\r\n    }\r\n}\r\n\r\nexport enum ContactType {\r\n    Policyholder = 'Policyholder',\r\n    InsuranceAgent = 'Insurance Agent',\r\n    PublicAdjuster = 'Public Adjuster',\r\n    Attorney = 'Attorney',\r\n    Bank = 'Bank',\r\n    Contractor = 'Contractor',\r\n    Family = 'Family',\r\n    Friend = 'Friend',\r\n    Neighbor = 'Neighbor',\r\n    Other = 'Other',\r\n}\r\n\r\nexport class Contact extends Serializable {\r\n    type: Value<ContactType>;\r\n    firstName: Value<string>;\r\n    lastName: Value<string>;\r\n    commercialName: Value<string>;\r\n    email: Value<string>;\r\n    phone: Value<string>;\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.type = new Value<ContactType>('type', ContactType.Policyholder, [Rules.required()]);\r\n        this.firstName = new Value<string>('first name', '', [Rules.required()]);\r\n        this.lastName = new Value<string>('last name', '', [Rules.required()]);\r\n        this.commercialName = new Value<string>('name', '', [Rules.required()]);\r\n        this.email = new Value<string>('email address', '', [Rules.required(), Rules.email()]);\r\n        this.phone = new Value<string>('phone number', '', [Rules.required(), Rules.phone()]);\r\n    }\r\n\r\n    isValid(): boolean {\r\n        this.phone.validate();\r\n        this.email.validate();\r\n        this.type.validate();\r\n        let valid = this.phone.valid && this.email.valid && this.type.valid;\r\n        if (this.commercialName && this.commercialName.content !== '') {\r\n            this.commercialName.validate();\r\n            valid = valid && this.commercialName.valid;\r\n        } else {\r\n            this.firstName.validate();\r\n            this.lastName.validate();\r\n            valid = valid && this.firstName.valid && this.lastName.valid;\r\n        }\r\n        return valid;\r\n    }\r\n}\r\n\r\nexport class Reporter extends Serializable {\r\n    type: Value<string>;\r\n    firstName: Value<string>;\r\n    lastName: Value<string>;\r\n    email: Value<string>;\r\n    phone: Value<string>;\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.type = new Value<string>('type', ContactType.Policyholder, [Rules.required()]);\r\n        this.firstName = new Value<string>('first name', '', [Rules.required()]);\r\n        this.lastName = new Value<string>('last name', '', [Rules.required()]);\r\n        this.email = new Value<string>('email address', '', [Rules.required(), Rules.email()]);\r\n        this.phone = new Value<string>('phone number', '', [Rules.required(), Rules.phone()]);\r\n    }\r\n\r\n    isValid(): boolean {\r\n        this.firstName.validate();\r\n        this.lastName.validate();\r\n        this.email.validate();\r\n        this.phone.validate();\r\n\r\n        return this.firstName.valid && this.lastName.valid && this.email.valid && this.phone.valid;\r\n    }\r\n}\r\n\r\nexport class Info extends Serializable {\r\n    category: Value<Category | null>;\r\n    lossType: Value<LossType | null>;\r\n    accidentType: Value<AccidentType | null>;\r\n    description: Value<string>;\r\n    files: Value<FileProgress[]>;\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.category = new Value<Category | null>('category', null, [Rules.required()]);\r\n        this.lossType = new Value<LossType | null>('type', null, [Rules.required()]);\r\n        this.accidentType = new Value<AccidentType | null>('accident', null, [Rules.required()]);\r\n        this.description = new Value<string>('description', '', [Rules.required()]);\r\n        this.files = new Value<FileProgress[]>('files', [], [Rules.fileTypes(Constants.fileTypeValidations.pdfFiles)]);\r\n    }\r\n\r\n    fromJson(parsed: any) {\r\n        super.fromJson(parsed);\r\n\r\n        this.files.set([]);\r\n    }\r\n}\r\n\r\nexport class VerifyPolicyRequest {\r\n    LossDate: string;\r\n    LossDateOffsetMinutes: number;\r\n    PolicyNumber: string;\r\n    ZipCode: string;\r\n    Address: string;\r\n    ProductLineId: number;\r\n\r\n    static fromClaim(claim: Claim): VerifyPolicyRequest {\r\n        const request = new VerifyPolicyRequest();\r\n\r\n        request.PolicyNumber = claim.verification.policyNumber.content;\r\n        request.ZipCode = claim.verification.policyZip.content;\r\n        request.Address = claim.verification.address.content;\r\n        request.ProductLineId = claim.product;\r\n\r\n        const date = dayjs(claim.dateOfLoss.content).toDate(),\r\n            time = claim.timeOfLoss.content;\r\n\r\n        if (time) {\r\n            date.setHours(time.hour());\r\n            date.setMinutes(time.hour());\r\n        }\r\n\r\n        request.LossDate = date.toISOString();\r\n        request.LossDateOffsetMinutes = date.getTimezoneOffset();\r\n\r\n        return request;\r\n    }\r\n}\r\n\r\nexport class SubmitClaimRequest {\r\n    PolicyNumber: string;\r\n    ControlNo: number;\r\n    LossLocation: AddressRequest;\r\n    InsuredFirstName: string;\r\n    InsuredLastName: string;\r\n    InsuredCommercialName: string;\r\n    InsuredPhoneNo: string;\r\n    InsuredEmail: string;\r\n    ClaimantFirstName: string;\r\n    ClaimantLastName: string;\r\n    ClaimantPhoneNo: string;\r\n    ClaimantEmail: string;\r\n    ClaimantRelationship: string;\r\n    ReporterFirstName: string;\r\n    ReporterLastName: string;\r\n    ReporterEmail: string;\r\n    ReporterPhoneNo: string;\r\n    ReporterRelationship: string;\r\n    UnverifiedAddress: string;\r\n    HomeownerLossTypeName: string | null;\r\n    HomeownerAccidentTypeName: string | null;\r\n    CommercialLossTypeName: string | null;\r\n    CommercialAccidentTypeName: string | null;\r\n    LossDate: Date;\r\n    LossDateOffsetMinutes: number;\r\n    Comments: string;\r\n    ProductLineId: number;\r\n    Origin: string;\r\n    PolicyType: ClaimPolicyType;\r\n    TriageQuestions: TriageQuestion[];\r\n    BoardingNeeded: boolean;\r\n    NoElectrical: boolean;\r\n    HouseUnsafe: boolean;\r\n    DamageTo3Areas: boolean;\r\n    WaterDamageTo4Areas: boolean;\r\n    StillWet: boolean;\r\n    LightningHvacDamage: boolean;\r\n    RoofHoles: boolean;\r\n    TreeRemoval: boolean;\r\n    ClothingOrElectronicsDamaged: boolean;\r\n    IsHurricaneDamage: boolean;\r\n    Verified: boolean;\r\n    HoverOptIn: boolean;\r\n\r\n    static fromClaim(claim: Claim): SubmitClaimRequest {\r\n        const request = new SubmitClaimRequest();\r\n\r\n        request.Verified = claim.verified;\r\n        if (claim.verified) {\r\n            request.PolicyNumber = claim.verification.policyNumber.content;\r\n            request.PolicyType = claim.type;\r\n            request.LossLocation = AddressRequest.fromInsured(claim.insured);\r\n        }\r\n\r\n        request.UnverifiedAddress = claim.insured.unverifiedUnderwritingLocation.content;\r\n\r\n        request.InsuredFirstName = claim.insured.firstName.content;\r\n        request.InsuredLastName = claim.insured.lastName.content;\r\n        request.InsuredCommercialName = claim.insured.commercialName.content;\r\n        request.InsuredPhoneNo = claim.insured.phone.content;\r\n        request.InsuredEmail = claim.insured.email.content;\r\n\r\n        request.ClaimantFirstName = claim.contact.firstName.content;\r\n        request.ClaimantLastName = claim.contact.lastName.content;\r\n        request.ClaimantPhoneNo = claim.contact.phone.content;\r\n        request.ClaimantEmail = claim.contact.email.content;\r\n        request.ClaimantRelationship = ContactType[claim.contact.type.content as ContactType];\r\n\r\n        request.ReporterFirstName = claim.reporter.firstName.content;\r\n        request.ReporterLastName = claim.reporter.lastName.content;\r\n        request.ReporterEmail = claim.reporter.email.content;\r\n        request.ReporterPhoneNo = claim.reporter.phone.content;\r\n        request.ReporterRelationship = claim.reporter.type.content;\r\n\r\n        const date = dayjs(claim.dateOfLoss.content).toDate();\r\n        request.LossDate = date;\r\n        request.LossDateOffsetMinutes = date.getTimezoneOffset();\r\n        request.Comments = claim.info.description.content;\r\n        request.ProductLineId = claim.product as number;\r\n\r\n        const time = claim.timeOfLoss.content as dayjs.Dayjs;\r\n        request.LossDate.setHours(time.hour());\r\n        request.LossDate.setMinutes(time.minute());\r\n\r\n        request.Origin = claim.origin.name;\r\n\r\n        const loss: LossType = claim.info.lossType.content as LossType,\r\n            accidentType: AccidentType = claim.info.accidentType.content as AccidentType;\r\n        if (ProductLine.matches(claim.product, ProductLine.Homeowner)) {\r\n            request.HomeownerLossTypeName = loss.name;\r\n            request.HomeownerAccidentTypeName = accidentType.id.toString() || null;\r\n        } else if (ProductLine.matches(claim.product, ProductLine.Commercial)) {\r\n            request.CommercialLossTypeName = loss.name;\r\n            request.CommercialAccidentTypeName = accidentType.id.toString() || null;\r\n        }\r\n\r\n        (request.TriageQuestions = accidentType.triageQuestions).forEach(\r\n            (question: TriageQuestion) => (request[question.type] = question.answer)\r\n        );\r\n\r\n        const epm = claim.exteriorPropertyModeling;\r\n        request.HoverOptIn = !!epm.optIn && !!epm.smartPhoneAccess && !!epm.canTakePhotos;\r\n\r\n        return request;\r\n    }\r\n}\r\n\r\nexport class AddressRequest implements IPhysicalAddressWithIds {\r\n    Street1: string;\r\n    Street2?: string | null | undefined;\r\n    City: string;\r\n    StateCode: string;\r\n    Zip: string;\r\n    CountyName: string;\r\n    PhysicalBuildingNo: string;\r\n    NetRatePremisesId: number | null;\r\n    ImsLocationId: number | null;\r\n\r\n    static fromInsured(insured: Insured): AddressRequest {\r\n        const underwritingLocation = insured.verifiedUnderwritingLocation.content,\r\n            request = new AddressRequest();\r\n\r\n        if (underwritingLocation === null)\r\n            throw new Error('Unable to generate address request due to missing verified underwriting location.');\r\n\r\n        request.Street1 = underwritingLocation.Street1;\r\n        request.City = underwritingLocation.City;\r\n        request.StateCode = underwritingLocation.StateCode;\r\n        request.CountyName = underwritingLocation.CountyName;\r\n        request.Zip = underwritingLocation.Zip;\r\n        request.PhysicalBuildingNo = underwritingLocation.PhysicalBuildingNo;\r\n        request.NetRatePremisesId = underwritingLocation.NetRatePremisesId;\r\n        request.ImsLocationId = underwritingLocation.ImsLocationId;\r\n\r\n        return request;\r\n    }\r\n}\r\n\r\nexport class ClaimResult {\r\n    UnverifiedPolicyClaimResult: UnverifiedClaimResult | null;\r\n    VerifiedPolicyClaimResult: VerifiedClaimResult | null;\r\n    PolicyType: ClaimPolicyType;\r\n    InProgress: boolean;\r\n}\r\n\r\nexport class UnverifiedClaimResult {\r\n    ZenDeskTicketId: string;\r\n}\r\n\r\nexport class VerifiedClaimResult {\r\n    ImsClaimNumber: string;\r\n    AssignedVendors: string[] | null;\r\n    Adjuster: Adjuster | null;\r\n}\r\n\r\nexport class Adjuster {\r\n    Name: string;\r\n    Email: string;\r\n    Phone: string;\r\n    PhoneExtension: string;\r\n}\r\n\r\nexport enum Category {\r\n    PolicyLocation = 'policy-location',\r\n    DamageOthers = 'damage-others',\r\n    InjuryOthers = 'injury-others',\r\n}\r\n\r\nexport class LossType {\r\n    id: number;\r\n    name: string;\r\n    description: string;\r\n    isLiability: boolean;\r\n    isDamageToOthers: boolean;\r\n    isInjuryToOthers: boolean;\r\n    accidentTypes: AccidentType[];\r\n\r\n    constructor(name: string, id: number, description: string, isLiability: boolean, accidentTypes: AccidentType[]) {\r\n        this.name = name;\r\n        this.id = id;\r\n        this.description = description;\r\n        this.isLiability = isLiability;\r\n        this.accidentTypes = accidentTypes;\r\n    }\r\n}\r\n\r\nexport class TriageQuestion {\r\n    type: string;\r\n    question: string;\r\n    answer?: boolean;\r\n\r\n    constructor(type: string, question: string) {\r\n        this.type = type;\r\n        this.question = question;\r\n    }\r\n}\r\n\r\nexport class AccidentType {\r\n    id: number;\r\n    name: string;\r\n    description: string;\r\n    mappedDescription: string | null;\r\n    explanation: string;\r\n    lossType: LossType;\r\n    triageQuestions: TriageQuestion[];\r\n    isHoverEligible: boolean;\r\n\r\n    constructor(id: number, name: string, questions: TriageQuestion[]) {\r\n        this.id = id;\r\n        this.name = name;\r\n        this.triageQuestions = questions;\r\n    }\r\n}\r\n\r\nexport class FileProgress extends File {\r\n    started: boolean;\r\n    progress: number;\r\n}\r\n\r\nexport class ClaimOrigin {\r\n    public static GyroChat = new ClaimOrigin('GyroChat', '/gc');\r\n    public static Web = new ClaimOrigin('Web', '/web');\r\n    public static ExternalPhone = new ClaimOrigin('External Phone', '/external-phone');\r\n    public static InternalPhone = new ClaimOrigin('Internal Phone', '/internal-phone');\r\n    name: string;\r\n    fragment: string;\r\n\r\n    constructor(name: string, fragment: string) {\r\n        this.name = name;\r\n        this.fragment = fragment;\r\n    }\r\n}\r\n\r\nexport enum ClaimPolicyType {\r\n    Swyfft = 'Swyfft',\r\n    Core = 'Core',\r\n    Vave = 'Vave',\r\n    Hiscox = 'Hiscox',\r\n    Brit = 'Brit',\r\n    Unknown = 'Unknown',\r\n}\r\n\r\nexport class ExteriorPropertyModeling extends Serializable {\r\n    exteriorDamage: boolean | undefined;\r\n    optIn: boolean | undefined;\r\n    smartPhoneAccess: boolean | undefined;\r\n    canTakePhotos: boolean | undefined;\r\n\r\n    fromJson(json: any) {\r\n        this.exteriorDamage = json.exteriorDamage;\r\n        this.optIn = json.optIn;\r\n        this.smartPhoneAccess = json.smartPhoneAccess;\r\n        this.canTakePhotos = json.canTakePhotos;\r\n    }\r\n}\r\n\r\nexport class ClaimPolicyInfo {\r\n    EffectiveDuringLoss: boolean;\r\n    IsHandledBySwyfft: boolean;\r\n    PolicyNumber: string;\r\n    UnderwritingLocations: IPhysicalAddressWithBuildingNumber[];\r\n    Product: number;\r\n    PolicyType: ClaimPolicyType;\r\n    ExistingClaims: ExistingClaimInfo[];\r\n}\r\n\r\nexport class ExistingClaimInfo {\r\n    ClaimId: number;\r\n    ClaimNumber: string;\r\n    Comments: string;\r\n    LossDate: string;\r\n    LossTypeDescription: string;\r\n}\r\n","import * as ApiCaller from './ApiCaller';\r\n\r\nimport { CatCode } from '@app/Views/CatCodes/Models';\r\nimport { ClaimVendor, SingleCountyVendorAssignment } from '@legacy/Admin-Pages/ClaimVendorManagement/Models';\r\nimport { Claim, ClaimPolicyInfo, ClaimResult, SubmitClaimRequest, VerifyPolicyRequest } from '@legacy/Claims/Models';\r\nimport { TableParams } from '@legacy/Components/FormGroups/Table';\r\nimport { TableRequest } from '@shared/Models';\r\n\r\nconst PREFIX = 'api/claim';\r\n\r\nexport function getPolicyByPolicyNumber(claim: Claim): Promise<ClaimPolicyInfo> {\r\n    return ApiCaller.$get(\r\n        `${PREFIX}/get-policy-by-policy-number`,\r\n        null,\r\n        'claims - verify policy by policy number',\r\n        VerifyPolicyRequest.fromClaim(claim)\r\n    );\r\n}\r\n\r\nexport function getPolicyByAddress(claim: Claim): Promise<ClaimPolicyInfo> {\r\n    return ApiCaller.$get(\r\n        `${PREFIX}/get-policy-by-address`,\r\n        null,\r\n        'claims - verify policy by address',\r\n        VerifyPolicyRequest.fromClaim(claim)\r\n    );\r\n}\r\n\r\nexport function submitClaim(claim: Claim): Promise<ClaimResult> {\r\n    return ApiCaller.$post(`${PREFIX}/submit-claim`, SubmitClaimRequest.fromClaim(claim), null, 'submit claim');\r\n}\r\n\r\nexport function getCatCodes(request: TableRequest): Promise<CatCode[]> {\r\n    return ApiCaller.$get(`api/claim/cat-codes?Start=${request.Start}&Count=${request.Count}&Search=${request.Search}`);\r\n}\r\n\r\nexport function updateCatCode(request: CatCode) {\r\n    return ApiCaller.$put('api/claim/cat-code', request);\r\n}\r\n\r\nexport function addCatCode(request: CatCode) {\r\n    return ApiCaller.$post('api/claim/cat-code', request);\r\n}\r\n\r\nexport function deleteCatCode(request: CatCode) {\r\n    return ApiCaller.$delete('api/claim/cat-code', request);\r\n}\r\n\r\nexport function getVendors(params?: TableParams) {\r\n    if (!params) params = { start: 0, count: 1000, search: '' };\r\n    return ApiCaller.$get(`api/claim/vendors?start=${params.start}&count=${params.count}&search=${params.search}`);\r\n}\r\n\r\nexport function addVendor(vendor: ClaimVendor) {\r\n    return ApiCaller.$post(`api/claim/vendors`, vendor);\r\n}\r\n\r\nexport function updateVendor(vendor: ClaimVendor) {\r\n    return ApiCaller.$put(`api/claim/vendors`, vendor);\r\n}\r\n\r\nexport function deleteVendor(vendor: ClaimVendor) {\r\n    return ApiCaller.$delete(`api/claim/vendors`, vendor);\r\n}\r\n\r\nexport function getVendorAssignments(params: TableParams) {\r\n    return ApiCaller.$get(\r\n        `api/claim/vendor-assignments?start=${params.start}&count=${params.count}&search=${params.search}`\r\n    );\r\n}\r\n\r\nexport function addVendorAssignments(vendorAssignments: SingleCountyVendorAssignment[]) {\r\n    return ApiCaller.$post(`api/claim/vendor-assignments`, vendorAssignments);\r\n}\r\n\r\nexport function updateVendorAssignments(vendorAssignments: SingleCountyVendorAssignment[]) {\r\n    return ApiCaller.$put(`api/claim/vendor-assignments`, vendorAssignments);\r\n}\r\n\r\nexport function deleteVendorAssignment(vendorAssignments: SingleCountyVendorAssignment[]) {\r\n    return ApiCaller.$delete(`api/claim/vendor-assignments`, vendorAssignments);\r\n}\r\n\r\nexport function uploadDocument(\r\n    policyNumber: string,\r\n    claimNumber: string,\r\n    document: File,\r\n    onProgress: (progress: number) => void\r\n): Promise<void> {\r\n    const formData = new FormData();\r\n    formData.append(document.name, document);\r\n    return new Promise((resolve, reject) => {\r\n        const xhr = new XMLHttpRequest();\r\n        xhr.open('POST', `/api/claim/upload?claimNumber=${claimNumber}&policyNumber=${policyNumber}`);\r\n        xhr.onreadystatechange = () => {\r\n            if (xhr.readyState === 4) {\r\n                if (xhr.status === 200) {\r\n                    onProgress(100);\r\n                    resolve();\r\n                } else reject(xhr);\r\n            }\r\n        };\r\n        xhr.onprogress = e => {\r\n            if (e.lengthComputable) onProgress(Math.min((e.loaded / e.total) * 100, 100));\r\n        };\r\n        xhr.send(formData);\r\n    });\r\n}\r\n"],"names":["dayjs","isSameOrAfter","Claim","Serializable","origin","json","__publicField","Value","Rules.required","Rules.before","Rules.after","ClaimOrigin","State","ProductLine","Verification","Insured","Contact","Reporter","Info","ExteriorPropertyModeling","parsed","accidentType","dayGracePeriod","VerificationType","Rules.zip","Rules.phone","Rules.email","raw","insured","valid","stateCode","isSwyfft","isCore","ContactType","Rules.fileTypes","Constants.fileTypeValidations","VerifyPolicyRequest","claim","request","date","time","SubmitClaimRequest","AddressRequest","loss","question","epm","underwritingLocation","Category","_ClaimOrigin","name","fragment","ClaimPolicyType","PREFIX","getPolicyByPolicyNumber","ApiCaller.$get","getPolicyByAddress","submitClaim","ApiCaller.$post","getCatCodes","updateCatCode","ApiCaller.$put","addCatCode","deleteCatCode","ApiCaller.$delete","getVendors","params","addVendor","vendor","updateVendor","deleteVendor","getVendorAssignments","addVendorAssignments","vendorAssignments","updateVendorAssignments","deleteVendorAssignment","uploadDocument","policyNumber","claimNumber","document","onProgress","formData","resolve","reject","xhr","e"],"mappings":"4qBAOAA,EAAM,OAAOC,CAAa,EAWnB,MAAMC,WAAcC,CAAa,CAmBpC,YAAYC,EAAsBC,EAAsB,CAC9C,MAAA,EAnBVC,EAAA,mBACAA,EAAA,mBACAA,EAAA,iBACAA,EAAA,aACAA,EAAA,uCACAA,EAAA,kCACAA,EAAA,uBAEAA,EAAA,cACAA,EAAA,gBACAA,EAAA,qBACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,iBACAA,EAAA,aACAA,EAAA,eACAA,EAAA,iCAKI,KAAK,WAAa,IAAIC,EAA0B,eAAgB,KAAM,CAClEC,EAAe,EACfC,EAAaT,EAAQ,EAAA,IAAI,EAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,EAC7CU,EAAYV,EAAM,aAAc,YAAY,EAAE,IAAI,GAAI,GAAG,CAAC,CAAA,CAC7D,EACD,KAAK,WAAa,IAAIO,EAAmB,eAAgBP,IAAQ,QAAQ,GAAG,EAAG,CAACQ,EAAgB,CAAA,CAAC,EACjG,KAAK,SAAW,GAChB,KAAK,+BAAiC,GACtC,KAAK,0BAA4B,GAC5B,KAAA,OAASJ,GAAUO,EAAY,IAE/B,KAAA,MAAQ,IAAIC,EACZ,KAAA,QAAUC,EAAY,UAAU,IAChC,KAAA,aAAe,IAAIC,EACnB,KAAA,QAAU,IAAIC,EACd,KAAA,QAAU,IAAIC,EACd,KAAA,SAAW,IAAIC,EACf,KAAA,KAAO,IAAIC,EAChB,KAAK,KAAO,UACP,KAAA,yBAA2B,IAAIC,EAEhCd,GAAW,KAAA,SAAS,KAAK,MAAMA,CAAI,CAAC,CAAA,CAG5C,SAASe,EAAa,CAClB,MAAM,SAASA,CAAM,EAErB,KAAK,WAAW,IAAI,KAAK,WAAW,QAAUpB,EAAM,KAAK,WAAW,OAAO,EAAE,QAAQ,GAAG,EAAI,IAAI,CAAA,CAIpG,oBAA8B,CAC1B,IAAIqB,EAAe,KAAK,KAAK,aAAa,QACtCC,EAEA,MAAA,CAAC,WAAY,YAAa,WAAW,EAAE,SAAQD,GAAA,YAAAA,EAAc,OAAQ,EAAE,EAAI,GAAqBC,EAAA,IAC3FD,GAAA,YAAAA,EAAc,QAAS,OAAyBC,EAAA,GACnCA,EAAA,GAGlBD,GAAA,YAAAA,EAAc,gBAAgB,UAAW,GACzC,KAAK,UACL,KAAK,QAAQ,KAAK,UAAY,mBAC9B,KAAK,QAAQ,KAAK,UAAY,YAC9B,KAAK,QAAQ,KAAK,UAAY,cAC9BrB,EAAM,KAAK,WAAW,OAAO,EAAE,cAAcA,EAAM,EAAE,SAASsB,EAAgB,MAAM,CAAC,CAAA,CAGjG,CAEY,IAAAC,GAAAA,IACRA,EAAA,aAAe,gBACfA,EAAA,QAAU,UAFFA,IAAAA,GAAA,CAAA,CAAA,EAKL,MAAMT,UAAqBX,CAAa,CAM3C,aAAc,CACJ,MAAA,EANVG,EAAA,aACAA,EAAA,qBACAA,EAAA,kBACAA,EAAA,gBAKI,KAAK,KAAO,UACP,KAAA,aAAe,IAAIC,EAAc,gBAAiB,GAAI,CAACC,EAAe,CAAC,CAAC,EAC7E,KAAK,UAAY,IAAID,EAAc,WAAY,GAAI,CAACC,EAAM,EAAYgB,EAAU,CAAC,CAAC,EAC7E,KAAA,QAAU,IAAIjB,EAAc,UAAW,GAAI,CAACC,EAAe,CAAC,CAAC,CAAA,CAE1E,CAEO,MAAMO,UAAgBZ,CAAa,CAUtC,aAAc,CACJ,MAAA,EAVVG,EAAA,kBACAA,EAAA,iBACAA,EAAA,uBACAA,EAAA,cACAA,EAAA,cACAA,EAAA,uCACAA,EAAA,qCACAA,EAAA,8BAKS,KAAA,UAAY,IAAIC,EAAc,YAAa,GAAI,CAACC,EAAe,CAAC,CAAC,EACjE,KAAA,SAAW,IAAID,EAAc,WAAY,GAAI,CAACC,EAAe,CAAC,CAAC,EAC/D,KAAA,eAAiB,IAAID,EAAc,iBAAkB,GAAI,CAACC,EAAe,CAAC,CAAC,EAChF,KAAK,MAAQ,IAAID,EAAc,eAAgB,GAAI,CAACC,EAAM,EAAYiB,EAAY,CAAC,CAAC,EACpF,KAAK,MAAQ,IAAIlB,EAAc,gBAAiB,GAAI,CAACC,EAAM,EAAYkB,EAAY,CAAC,CAAC,EAChF,KAAA,+BAAiC,IAAInB,EAAc,UAAW,GAAI,CAACC,EAAe,CAAC,CAAC,EACzF,KAAK,6BAA+B,IAAID,EAAsC,UAAW,KAAM,CAC3FC,EAAe,CAAA,CAClB,EACD,KAAK,sBAAwB,CAAC,CAAA,CAGlC,OAAO,QAAQmB,EAAmB,CACxB,MAAAC,EAAU,IAAIb,EACpB,OAAAa,EAAQ,UAAU,IAAID,EAAI,kBAAoB,EAAE,EAChDC,EAAQ,SAAS,IAAID,EAAI,iBAAmB,EAAE,EAC9CC,EAAQ,eAAe,IAAID,EAAI,uBAAyB,EAAE,EAC1DC,EAAQ,MAAM,IAAID,EAAI,cAAgB,EAAE,EACxCC,EAAQ,MAAM,IAAID,EAAI,cAAgB,EAAE,EACxCC,EAAQ,sBAAwBD,EAAI,sBAEhCA,EAAI,sBAAsB,QAAQC,EAAQ,6BAA6B,IAAID,EAAI,sBAAsB,CAAC,CAAC,EAEpGC,CAAA,CAGX,SAAmB,CACX,KAAK,sBAAsB,OAAQ,KAAK,6BAA6B,SAAS,EAC7E,KAAK,+BAA+B,SAAS,EAElD,KAAK,MAAM,SAAS,EACpB,KAAK,MAAM,SAAS,EAEpB,IAAIC,GACC,KAAK,sBAAsB,OACtB,KAAK,6BAA6B,MAClC,KAAK,+BAA+B,QAC1C,KAAK,MAAM,OACX,KAAK,MAAM,MAEf,OAAI,KAAK,gBAAkB,KAAK,eAAe,UAAY,IACvD,KAAK,eAAe,SAAS,EACrBA,EAAAA,GAAS,KAAK,eAAe,QAErC,KAAK,UAAU,SAAS,EACxB,KAAK,SAAS,SAAS,EACvBA,EAAQA,GAAS,KAAK,UAAU,OAAS,KAAK,SAAS,OAEpDA,CAAA,CAEf,CAEO,MAAMjB,UAAcT,CAAa,CAKpC,YAAY2B,EAAoBC,EAAoBC,EAAkB,CAC5D,MAAA,EALV1B,EAAA,kBACAA,EAAA,iBACAA,EAAA,eAKI,KAAK,UAAYwB,GAAa,GAC9B,KAAK,SAAWC,GAAY,GAC5B,KAAK,OAASC,GAAU,EAAA,CAG5B,OAAO,QAAQL,EAAiB,CAC5B,OAAO,IAAIf,EAAMe,EAAI,UAAWA,EAAI,SAAUA,EAAI,MAAM,CAAA,CAEhE,CAEY,IAAAM,GAAAA,IACRA,EAAA,aAAe,eACfA,EAAA,eAAiB,kBACjBA,EAAA,eAAiB,kBACjBA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,MAAQ,QAVAA,IAAAA,GAAA,CAAA,CAAA,EAaL,MAAMjB,UAAgBb,CAAa,CAQtC,aAAc,CACJ,MAAA,EARVG,EAAA,aACAA,EAAA,kBACAA,EAAA,iBACAA,EAAA,uBACAA,EAAA,cACAA,EAAA,cAKS,KAAA,KAAO,IAAIC,EAAmB,OAAQ,eAA0B,CAACC,EAAe,CAAC,CAAC,EAClF,KAAA,UAAY,IAAID,EAAc,aAAc,GAAI,CAACC,EAAe,CAAC,CAAC,EAClE,KAAA,SAAW,IAAID,EAAc,YAAa,GAAI,CAACC,EAAe,CAAC,CAAC,EAChE,KAAA,eAAiB,IAAID,EAAc,OAAQ,GAAI,CAACC,EAAe,CAAC,CAAC,EACtE,KAAK,MAAQ,IAAID,EAAc,gBAAiB,GAAI,CAACC,EAAM,EAAYkB,EAAY,CAAC,CAAC,EACrF,KAAK,MAAQ,IAAInB,EAAc,eAAgB,GAAI,CAACC,EAAM,EAAYiB,EAAY,CAAC,CAAC,CAAA,CAGxF,SAAmB,CACf,KAAK,MAAM,SAAS,EACpB,KAAK,MAAM,SAAS,EACpB,KAAK,KAAK,SAAS,EACf,IAAAI,EAAQ,KAAK,MAAM,OAAS,KAAK,MAAM,OAAS,KAAK,KAAK,MAC9D,OAAI,KAAK,gBAAkB,KAAK,eAAe,UAAY,IACvD,KAAK,eAAe,SAAS,EACrBA,EAAAA,GAAS,KAAK,eAAe,QAErC,KAAK,UAAU,SAAS,EACxB,KAAK,SAAS,SAAS,EACvBA,EAAQA,GAAS,KAAK,UAAU,OAAS,KAAK,SAAS,OAEpDA,CAAA,CAEf,CAEO,MAAMZ,UAAiBd,CAAa,CAOvC,aAAc,CACJ,MAAA,EAPVG,EAAA,aACAA,EAAA,kBACAA,EAAA,iBACAA,EAAA,cACAA,EAAA,cAKS,KAAA,KAAO,IAAIC,EAAc,OAAQ,eAA0B,CAACC,EAAe,CAAC,CAAC,EAC7E,KAAA,UAAY,IAAID,EAAc,aAAc,GAAI,CAACC,EAAe,CAAC,CAAC,EAClE,KAAA,SAAW,IAAID,EAAc,YAAa,GAAI,CAACC,EAAe,CAAC,CAAC,EACrE,KAAK,MAAQ,IAAID,EAAc,gBAAiB,GAAI,CAACC,EAAM,EAAYkB,EAAY,CAAC,CAAC,EACrF,KAAK,MAAQ,IAAInB,EAAc,eAAgB,GAAI,CAACC,EAAM,EAAYiB,EAAY,CAAC,CAAC,CAAA,CAGxF,SAAmB,CACf,YAAK,UAAU,SAAS,EACxB,KAAK,SAAS,SAAS,EACvB,KAAK,MAAM,SAAS,EACpB,KAAK,MAAM,SAAS,EAEb,KAAK,UAAU,OAAS,KAAK,SAAS,OAAS,KAAK,MAAM,OAAS,KAAK,MAAM,KAAA,CAE7F,CAEO,MAAMP,UAAaf,CAAa,CAOnC,aAAc,CACJ,MAAA,EAPVG,EAAA,iBACAA,EAAA,iBACAA,EAAA,qBACAA,EAAA,oBACAA,EAAA,cAKS,KAAA,SAAW,IAAIC,EAAuB,WAAY,KAAM,CAACC,EAAe,CAAC,CAAC,EAC1E,KAAA,SAAW,IAAID,EAAuB,OAAQ,KAAM,CAACC,EAAe,CAAC,CAAC,EACtE,KAAA,aAAe,IAAID,EAA2B,WAAY,KAAM,CAACC,EAAe,CAAC,CAAC,EAClF,KAAA,YAAc,IAAID,EAAc,cAAe,GAAI,CAACC,EAAe,CAAC,CAAC,EAC1E,KAAK,MAAQ,IAAID,EAAsB,QAAS,GAAI,CAAC2B,EAAgBC,EAA8B,QAAQ,CAAC,CAAC,CAAA,CAGjH,SAASf,EAAa,CAClB,MAAM,SAASA,CAAM,EAEhB,KAAA,MAAM,IAAI,EAAE,CAAA,CAEzB,CAEO,MAAMgB,CAAoB,CAA1B,cACH9B,EAAA,iBACAA,EAAA,8BACAA,EAAA,qBACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,sBAEA,OAAO,UAAU+B,EAAmC,CAC1C,MAAAC,EAAU,IAAIF,EAEZE,EAAA,aAAeD,EAAM,aAAa,aAAa,QAC/CC,EAAA,QAAUD,EAAM,aAAa,UAAU,QACvCC,EAAA,QAAUD,EAAM,aAAa,QAAQ,QAC7CC,EAAQ,cAAgBD,EAAM,QAExB,MAAAE,EAAOvC,EAAMqC,EAAM,WAAW,OAAO,EAAE,SACzCG,EAAOH,EAAM,WAAW,QAE5B,OAAIG,IACKD,EAAA,SAASC,EAAK,MAAM,EACpBD,EAAA,WAAWC,EAAK,MAAM,GAGvBF,EAAA,SAAWC,EAAK,YAAY,EAC5BD,EAAA,sBAAwBC,EAAK,kBAAkB,EAEhDD,CAAA,CAEf,CAEO,MAAMG,CAAmB,CAAzB,cACHnC,EAAA,qBACAA,EAAA,kBACAA,EAAA,qBACAA,EAAA,yBACAA,EAAA,wBACAA,EAAA,8BACAA,EAAA,uBACAA,EAAA,qBACAA,EAAA,0BACAA,EAAA,yBACAA,EAAA,wBACAA,EAAA,sBACAA,EAAA,6BACAA,EAAA,0BACAA,EAAA,yBACAA,EAAA,sBACAA,EAAA,wBACAA,EAAA,6BACAA,EAAA,0BACAA,EAAA,8BACAA,EAAA,kCACAA,EAAA,+BACAA,EAAA,mCACAA,EAAA,iBACAA,EAAA,8BACAA,EAAA,iBACAA,EAAA,sBACAA,EAAA,eACAA,EAAA,mBACAA,EAAA,wBACAA,EAAA,uBACAA,EAAA,qBACAA,EAAA,oBACAA,EAAA,uBACAA,EAAA,4BACAA,EAAA,iBACAA,EAAA,4BACAA,EAAA,kBACAA,EAAA,oBACAA,EAAA,qCACAA,EAAA,0BACAA,EAAA,iBACAA,EAAA,mBAEA,OAAO,UAAU+B,EAAkC,CACzC,MAAAC,EAAU,IAAIG,EAEpBH,EAAQ,SAAWD,EAAM,SACrBA,EAAM,WACEC,EAAA,aAAeD,EAAM,aAAa,aAAa,QACvDC,EAAQ,WAAaD,EAAM,KAC3BC,EAAQ,aAAeI,EAAe,YAAYL,EAAM,OAAO,GAG3DC,EAAA,kBAAoBD,EAAM,QAAQ,+BAA+B,QAEjEC,EAAA,iBAAmBD,EAAM,QAAQ,UAAU,QAC3CC,EAAA,gBAAkBD,EAAM,QAAQ,SAAS,QACzCC,EAAA,sBAAwBD,EAAM,QAAQ,eAAe,QACrDC,EAAA,eAAiBD,EAAM,QAAQ,MAAM,QACrCC,EAAA,aAAeD,EAAM,QAAQ,MAAM,QAEnCC,EAAA,kBAAoBD,EAAM,QAAQ,UAAU,QAC5CC,EAAA,iBAAmBD,EAAM,QAAQ,SAAS,QAC1CC,EAAA,gBAAkBD,EAAM,QAAQ,MAAM,QACtCC,EAAA,cAAgBD,EAAM,QAAQ,MAAM,QAC5CC,EAAQ,qBAAuBL,EAAYI,EAAM,QAAQ,KAAK,OAAsB,EAE5EC,EAAA,kBAAoBD,EAAM,SAAS,UAAU,QAC7CC,EAAA,iBAAmBD,EAAM,SAAS,SAAS,QAC3CC,EAAA,cAAgBD,EAAM,SAAS,MAAM,QACrCC,EAAA,gBAAkBD,EAAM,SAAS,MAAM,QACvCC,EAAA,qBAAuBD,EAAM,SAAS,KAAK,QAEnD,MAAME,EAAOvC,EAAMqC,EAAM,WAAW,OAAO,EAAE,OAAO,EACpDC,EAAQ,SAAWC,EACXD,EAAA,sBAAwBC,EAAK,kBAAkB,EAC/CD,EAAA,SAAWD,EAAM,KAAK,YAAY,QAC1CC,EAAQ,cAAgBD,EAAM,QAExB,MAAAG,EAAOH,EAAM,WAAW,QAC9BC,EAAQ,SAAS,SAASE,EAAK,KAAA,CAAM,EACrCF,EAAQ,SAAS,WAAWE,EAAK,OAAA,CAAQ,EAEjCF,EAAA,OAASD,EAAM,OAAO,KAExB,MAAAM,EAAiBN,EAAM,KAAK,SAAS,QACvChB,EAA6BgB,EAAM,KAAK,aAAa,QACrDxB,EAAY,QAAQwB,EAAM,QAASxB,EAAY,SAAS,GACxDyB,EAAQ,sBAAwBK,EAAK,KACrCL,EAAQ,0BAA4BjB,EAAa,GAAG,SAAc,GAAA,MAC3DR,EAAY,QAAQwB,EAAM,QAASxB,EAAY,UAAU,IAChEyB,EAAQ,uBAAyBK,EAAK,KACtCL,EAAQ,2BAA6BjB,EAAa,GAAG,SAAc,GAAA,OAGtEiB,EAAQ,gBAAkBjB,EAAa,iBAAiB,QACpDuB,GAA8BN,EAAQM,EAAS,IAAI,EAAIA,EAAS,MACrE,EAEA,MAAMC,EAAMR,EAAM,yBACV,OAAAC,EAAA,WAAa,CAAC,CAACO,EAAI,OAAS,CAAC,CAACA,EAAI,kBAAoB,CAAC,CAACA,EAAI,cAE7DP,CAAA,CAEf,CAEO,MAAMI,CAAkD,CAAxD,cACHpC,EAAA,gBACAA,EAAA,gBACAA,EAAA,aACAA,EAAA,kBACAA,EAAA,YACAA,EAAA,mBACAA,EAAA,2BACAA,EAAA,0BACAA,EAAA,sBAEA,OAAO,YAAYsB,EAAkC,CACjD,MAAMkB,EAAuBlB,EAAQ,6BAA6B,QAC9DU,EAAU,IAAII,EAElB,GAAII,IAAyB,KACnB,MAAA,IAAI,MAAM,mFAAmF,EAEvG,OAAAR,EAAQ,QAAUQ,EAAqB,QACvCR,EAAQ,KAAOQ,EAAqB,KACpCR,EAAQ,UAAYQ,EAAqB,UACzCR,EAAQ,WAAaQ,EAAqB,WAC1CR,EAAQ,IAAMQ,EAAqB,IACnCR,EAAQ,mBAAqBQ,EAAqB,mBAClDR,EAAQ,kBAAoBQ,EAAqB,kBACjDR,EAAQ,cAAgBQ,EAAqB,cAEtCR,CAAA,CAEf,CA0BY,IAAAS,GAAAA,IACRA,EAAA,eAAiB,kBACjBA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBAHPA,IAAAA,GAAA,CAAA,CAAA,EAyDL,MAAMC,EAAN,MAAMA,CAAY,CAQrB,YAAYC,EAAcC,EAAkB,CAH5C5C,EAAA,aACAA,EAAA,iBAGI,KAAK,KAAO2C,EACZ,KAAK,SAAWC,CAAA,CAExB,EAXI5C,EADS0C,EACK,WAAW,IAAIA,EAAY,WAAY,KAAK,GAC1D1C,EAFS0C,EAEK,MAAM,IAAIA,EAAY,MAAO,MAAM,GACjD1C,EAHS0C,EAGK,gBAAgB,IAAIA,EAAY,iBAAkB,iBAAiB,GACjF1C,EAJS0C,EAIK,gBAAgB,IAAIA,EAAY,iBAAkB,iBAAiB,GAJ9E,IAAMrC,EAANqC,EAcK,IAAAG,GAAAA,IACRA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,QAAU,UANFA,IAAAA,GAAA,CAAA,CAAA,EASL,MAAMhC,UAAiChB,CAAa,CAApD,kCACHG,EAAA,uBACAA,EAAA,cACAA,EAAA,yBACAA,EAAA,sBAEA,SAASD,EAAW,CAChB,KAAK,eAAiBA,EAAK,eAC3B,KAAK,MAAQA,EAAK,MAClB,KAAK,iBAAmBA,EAAK,iBAC7B,KAAK,cAAgBA,EAAK,aAAA,CAElC,CC5jBA,MAAM+C,EAAS,YAER,SAASC,GAAwBhB,EAAwC,CAC5E,OAAOiB,EACH,GAAGF,CAAM,+BACT,KACA,0CACAhB,EAAoB,UAAUC,CAAK,CACvC,CACJ,CAEO,SAASkB,GAAmBlB,EAAwC,CACvE,OAAOiB,EACH,GAAGF,CAAM,yBACT,KACA,oCACAhB,EAAoB,UAAUC,CAAK,CACvC,CACJ,CAEO,SAASmB,GAAYnB,EAAoC,CACrD,OAAAoB,EAAgB,GAAGL,CAAM,gBAAiBX,EAAmB,UAAUJ,CAAK,EAAG,KAAM,cAAc,CAC9G,CAEO,SAASqB,GAAYpB,EAA2C,CAC5D,OAAAgB,EAAe,6BAA6BhB,EAAQ,KAAK,UAAUA,EAAQ,KAAK,WAAWA,EAAQ,MAAM,EAAE,CACtH,CAEO,SAASqB,GAAcrB,EAAkB,CACrC,OAAAsB,EAAe,qBAAsBtB,CAAO,CACvD,CAEO,SAASuB,GAAWvB,EAAkB,CAClC,OAAAmB,EAAgB,qBAAsBnB,CAAO,CACxD,CAEO,SAASwB,GAAcxB,EAAkB,CACrC,OAAAyB,EAAkB,qBAAsBzB,CAAO,CAC1D,CAEO,SAAS0B,GAAWC,EAAsB,CACzC,OAACA,IAAiBA,EAAA,CAAE,MAAO,EAAG,MAAO,IAAM,OAAQ,EAAG,GACnDX,EAAe,2BAA2BW,EAAO,KAAK,UAAUA,EAAO,KAAK,WAAWA,EAAO,MAAM,EAAE,CACjH,CAEO,SAASC,GAAUC,EAAqB,CACpC,OAAAV,EAAgB,oBAAqBU,CAAM,CACtD,CAEO,SAASC,GAAaD,EAAqB,CACvC,OAAAP,EAAe,oBAAqBO,CAAM,CACrD,CAEO,SAASE,GAAaF,EAAqB,CACvC,OAAAJ,EAAkB,oBAAqBI,CAAM,CACxD,CAEO,SAASG,GAAqBL,EAAqB,CACtD,OAAOX,EACH,sCAAsCW,EAAO,KAAK,UAAUA,EAAO,KAAK,WAAWA,EAAO,MAAM,EACpG,CACJ,CAEO,SAASM,GAAqBC,EAAmD,CAC7E,OAAAf,EAAgB,+BAAgCe,CAAiB,CAC5E,CAEO,SAASC,GAAwBD,EAAmD,CAChF,OAAAZ,EAAe,+BAAgCY,CAAiB,CAC3E,CAEO,SAASE,GAAuBF,EAAmD,CAC/E,OAAAT,EAAkB,+BAAgCS,CAAiB,CAC9E,CAEO,SAASG,GACZC,EACAC,EACAC,EACAC,EACa,CACP,MAAAC,EAAW,IAAI,SACZ,OAAAA,EAAA,OAAOF,EAAS,KAAMA,CAAQ,EAChC,IAAI,QAAQ,CAACG,EAASC,IAAW,CAC9B,MAAAC,EAAM,IAAI,eAChBA,EAAI,KAAK,OAAQ,iCAAiCN,CAAW,iBAAiBD,CAAY,EAAE,EAC5FO,EAAI,mBAAqB,IAAM,CACvBA,EAAI,aAAe,IACfA,EAAI,SAAW,KACfJ,EAAW,GAAG,EACNE,EAAA,KACEE,CAAG,EAEzB,EACAA,EAAI,WAAkBC,GAAA,CACdA,EAAE,kBAAkBL,EAAW,KAAK,IAAKK,EAAE,OAASA,EAAE,MAAS,IAAK,GAAG,CAAC,CAChF,EACAD,EAAI,KAAKH,CAAQ,CAAA,CACpB,CACL"}