diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/BlockedEmojis.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/BlockedEmojis.json new file mode 100644 index 0000000000..45013ece3e --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/BlockedEmojis.json @@ -0,0 +1,24 @@ +[ + "beer", + "beers", + "wine_glass", + "cocktail", + "tropical_drink", + "tumbler_glass", + "smoking", + "middle_finger", + "wink", + "stuck_out_tongue_winking_eye", + "kissing_heart", + "kissing", + "kissing_closed_eyes", + "kissing_smiling_eyes", + "tongue", + "eggplant", + "peach", + "dancers", + "men-with-bunny-ears-partying", + "women-with-bunny-ears-partying", + "syringe", + "pill" +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CallTypeButtons.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CallTypeButtons.json new file mode 100644 index 0000000000..a1b955404f --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CallTypeButtons.json @@ -0,0 +1,32 @@ +[ + { + "name": "child", + "label": "Inbound", + "type": "button", + "category": "data" + }, + { + "name": "silent", + "label": "Silent", + "type": "button", + "category": "non-data" + }, + { + "name": "hangup", + "label": "Hang up", + "type": "button", + "category": "non-data" + }, + { + "name": "wrongNumber", + "label": "Wrong Number", + "type": "button", + "category": "non-data" + }, + { + "name": "questions", + "label": "Questions/Resources", + "type": "button", + "category": "non-data" + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CannedResponses.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CannedResponses.json new file mode 100644 index 0000000000..da14d606b5 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CannedResponses.json @@ -0,0 +1,50 @@ +[ + { + "label": "Thank you for contacting.", + "text": "Thank you for contacting PRN's Warm Line. We are here to support you. My name is XXX and I am a peer support specialist on the warm line." + }, + { + "label": "Chat Support Time Guidelines", + "text": "Have you talked with us before? If not, I did want to make you aware of the following time constraints: We have 30 minutes together for right now. After t" + }, + { + "label": "Curious Conversation Starter", + "text": "Was there something on your mind today that you wanted to explore together?" + }, + { + "label": "What is peer support?", + "text": "Peer support is a voluntary, non-clinical form of support rooted in shared lived experience. It focuses on mutual understanding, empathy, and connection rather than treatment or diagnosis. Unlike traditional services, peer support centers choice, autonomy, and personal recovery. It offers support through listening, validation, and shared perspective to help individuals feel understood and empowered." + }, + { + "label": "What is a warm line?", + "text": "A Warm Line is a non-crisis support option for people who want to talk before things reach an emergency level. It offers peer-based, recovery-focused support through listening, validation, and connection—without emergency response or intervention. Unlike 988 or crisis services, Warm Lines are voluntary, non-clinical, and focused on prevention rather than stabilization. They provide a supportive space to talk through stress, loneliness, or life challenges early." + }, + { + "label": "What is Promise Resource Network?", + "text": "Promise Resource Network is an organization based in North Carolina. We have many programs like our warm line, our respites in Charlotte and Raleigh, classes, and more. Please check out https://promiseresourcenetwork.org/our-initiatives/ to learn more!" + }, + { + "label": "Peer Support Boundaries", + "text": "It seems your last message contained information or details that do not align with the boundaries of peer support or the boundaries of support for our warm line. However, we can explore emotional impacts and the heaviness together, but please be mindful of the boundaries I stated above. " + }, + { + "label": "What is a respite?", + "text": "A respite is a voluntary, short-term alternative to hospitals or institutional settings, offering a safe, supportive, non-clinical space to rest and regain balance. It is recovery-focused and person-centered, emphasizing choice, autonomy, and peer support rather than treatment or confinement. Respite provides a supportive pause during times of increased stress to help prevent escalation while honoring dignity and self-direction." + }, + { + "label": "Other warm line resources", + "text": "Other resources similar to this one can be found at warmline.org." + }, + { + "label": "Inappropriate behavior", + "text": "Abuse and Misuse of the Warm Line may include using the Warm Line for other purposes than what it’s designed to be used for; abusive or inappropriate behavior from the caller; repeated violations of call limitations; repeated failure to follow redirection. If this should continue then it could lead to a block." + }, + { + "label": "PRN Respite information", + "text": "Pending" + }, + { + "label": "PRN Program information", + "text": "Pending" + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseFilters.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseFilters.json new file mode 100644 index 0000000000..fb452ea6f5 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseFilters.json @@ -0,0 +1,9 @@ +{ + "status": { "component": "generate-status-filter", "position": "left" }, + "counselor": { "component": "generate-counselor-filter", "position": "left" }, + "operatingArea": { "searchable": true, "type": "multi-select", "position": "left" }, + + "createdDate": { "component": "generate-created-date-filter", "position": "right" }, + "updatedDate": { "component": "generate-updated-date-filter", "position": "right" }, + "followUpDate": { "type": "date-input", "allowFutureDates": true, "position": "right" } +} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseSections.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseSections.json new file mode 100644 index 0000000000..1c697b6aa7 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseSections.json @@ -0,0 +1,30 @@ +{ + "note": { + "label": "Note", + "formPath": "caseForms/NoteForm.json" + }, + "referral": { + "label": "Referral", + "formPath": "caseForms/ReferralForm.json" + }, + "household": { + "label": "Household Member", + "formPath": "caseForms/HouseholdForm.json" + }, + "perpetrator": { + "label": "Perpetrator", + "formPath": "caseForms/PerpetratorForm.json" + }, + "incident": { + "label": "Incident", + "formPath": "caseForms/IncidentForm.json" + }, + "document": { + "label": "Document", + "formPath": "caseForms/DocumentForm.json" + }, + "chicken": { + "label": "Chicken", + "formPath": "caseForms/ChickenForm.json" + } +} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseStatus.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseStatus.json new file mode 100644 index 0000000000..5c43d75a0d --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/CaseStatus.json @@ -0,0 +1,20 @@ +{ + "open": { + "value": "open", + "label": "Open", + "color": "green", + "transitions": ["inProgress", "closed"] + }, + "closed": { + "value": "closed", + "label": "Closed", + "color": "red", + "transitions": ["inProgress"] + }, + "inProgress": { + "value": "inProgress", + "label": "In Progress", + "color": "blue", + "transitions": ["closed"] + } +} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/FlexUiLocales.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/FlexUiLocales.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/FlexUiLocales.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/HelplineInformation.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/HelplineInformation.json new file mode 100644 index 0000000000..f7c91e2224 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/HelplineInformation.json @@ -0,0 +1,15 @@ +{ + "label": "Promise Resource Network", + "helplines": [ + { + "label": "Promise Resource Network", + "value": "Promise Resource Network", + "default": true, + "kmsUrl": "http://www.google.com", + "manager": { + "name": "Helpline Manager", + "phone": "+123 45 678", + "email": "supervisor@helpline.org" + } + } + ]} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/LayoutDefinitions.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/LayoutDefinitions.json new file mode 100644 index 0000000000..cf45b838c4 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/LayoutDefinitions.json @@ -0,0 +1,150 @@ +{ + "contact": { + "callerInformation": { + }, + "childInformation": { + "splitFormAt": 8 + }, + "caseInformation": { + "splitFormAt": 3 + } + }, + "case": { + "sectionTypes": { + "household": { + "splitFormAt": 7, + "caseHomeOrder": 1, + "printOrder": 1, + "previewFields": [ + "name", + "gender", + "age", + "relationshipToChild" + ], + "layout": { + "name": { + "widthRatio": 1.5, + "labelTemplateCode": "Case-PerpetratorName", + "valueTemplateCode": "Case-SectionList-PreviewNameValue" + }, + "age": { + "labelTemplateCode": "Case-PerpetratorAge" + }, + "gender": { + "labelTemplateCode": "Case-PerpetratorGender" + }, + "relationshipToChild": { + "labelTemplateCode": "Case-PerpetratorRelationship" + } + } + }, + "perpetrator": { + "splitFormAt": 7, + "caseHomeOrder": 2, + "printOrder": 2, + "previewFields": [ + "name", + "gender", + "age", + "relationshipToChild" + ], + "layout": { + "name": { + "labelTemplateCode": "Case-PerpetratorName", + "valueTemplateCode": "Case-SectionList-PreviewNameValue" + }, + "age": { + "labelTemplateCode": "Case-PerpetratorAge" + }, + "gender": { + "labelTemplateCode": "Case-PerpetratorGender" + }, + "relationshipToChild": { + "labelTemplateCode": "Case-PerpetratorRelationship" + } + } + }, + "incident": { + "previewFields": [ + "date", + "duration", + "location" + ], + "layout": { + "date": { + "includeLabel": false, + "format": "date" + }, + "duration": { + "includeLabel": true + }, + "location": { + "includeLabel": true + } + }, + "caseHomeOrder": 3, + "printOrder": 3, + "splitFormAt": 3 + }, + "referral": { + "previewFields": [ + "referredTo" + ], + "layout": { + "referredTo": {} + }, + "splitFormAt": 2, + "printOrder": 4, + "caseHomeLocation": "timeline" + }, + "document": { + "splitFormAt": 1, + "caseHomeOrder": 5, + "printFormat": "hidden", + "previewFields": [ + "createdAt", + "fileName", + "comments" + ], + "layout": { + "createdAt": { + "labelTemplateCode": "Case-DocumentFileName", + "format": "date" + }, + "fileName": { + "labelTemplateCode": "Case-DocumentDate", + "format": "file", + "widthRatio": 2 + }, + "comments": { + "labelTemplateCode": "Case-DocumentComments", + "widthRatio": 2 + } + } + }, + "note": { + "printOrder": 6, + "caseHomeLocation": "timeline", + "printFormat": "list", + "previewFields": ["note"], + "layout": { + "note": {} + } + }, + "chicken": { + "previewFields": [ + "boc" + ], + "layout": { + "boc": { + "includeLabel": true + } + }, + "caseHomeOrder": 2, + "splitFormAt": 2, + "printOrder": 0, + "printFormat": "list" + } + } + } +} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/CaseOverview.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/CaseOverview.json new file mode 100644 index 0000000000..297658c72c --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/CaseOverview.json @@ -0,0 +1,64 @@ +[ + { + "name": "status", + "label": "Case Status", + "type": "select", + "isPII": false + }, + { + "name": "childIsAtRisk", + "label": "Child is at risk", + "type": "checkbox", + "isPII": false + }, + { + "name": "followUpDate", + "label": "Follow Up Date", + "type": "date-input", + "isPII": false + }, + + { + "name": "reportDate", + "label": "Date of Report", + "type": "date-input", + "isPII": false + }, + { + "name": "summary", + "label": "Case Summary", + "placeholder": "No case summary", + "type": "textarea", + "rows": 5, + "width": 300, + "isPII": true + }, + { + "name": "operatingArea", + "label": "Operating Area", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "East", "label": "East" }, + { "value": "Harbor", "label": "Harbor" }, + { "value": "Hollywood", "label": "Hollywood" }, + { "value": "Metro", "label": "Metro" }, + { "value": "Pacific", "label": "Pacific" }, + { "value": "South LA", "label": "South LA" }, + { "value": "Valley", "label": "Valley" } + ], + "isPII": false + }, + { + "name": "priority", + "label": "Priority", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "High", "label": "High" }, + { "value": "Medium", "label": "Medium" }, + { "value": "Low", "label": "Low" } + ], + "isPII": false + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ChickenForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ChickenForm.json new file mode 100644 index 0000000000..3de1c598a2 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ChickenForm.json @@ -0,0 +1,21 @@ +[ + { + "name": "boc", + "label": "Boc", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Boc", "label": "Boc" }, + { "value": "Bwaaaaak", "label": "Bwaaaaak" }, + { "value": "BocARGHHH", "label": "BocARGHHH" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + } +] + + + + + + diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/DocumentForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/DocumentForm.json new file mode 100644 index 0000000000..0271e2011c --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/DocumentForm.json @@ -0,0 +1,22 @@ +[ + { + "name": "fileName", + "type": "file-upload", + "label": "Document", + "description": "Accepted file formats: Word, PDFs, or JPGs.\nFile size not to exceed 5MB", + "required": { + "value": true, + "message": "RequiredFieldError" + }, + "isPII": true + }, + { + "name": "comments", + "label": "Comments", + "type": "textarea", + "placeholder": "", + "rows": 20, + "width": 289, + "isPII": true + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/HouseholdForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/HouseholdForm.json new file mode 100644 index 0000000000..81666ebb60 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/HouseholdForm.json @@ -0,0 +1,185 @@ +[ + { + "name": "firstName", + "type": "input", + "label": "First Name", + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": true + }, + { + "name": "lastName", + "type": "input", + "label": "Last Name", + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": true + }, + { + "name": "relationshipToChild", + "type": "select", + "label": "Relationship to Child", + "options": [ + { "value": "", "label": "" }, + { "value": "Peer", "label": "Peer" }, + { "value": "Caregiver", "label": "Caregiver" }, + { "value": "Partner", "label": "Partner" }, + { "value": "OtherAdultKnownToChild", "label": "Other adult known to the child" }, + { "value": "Sibling", "label": "Sibling(s)" }, + { "value": "Stranger", "label": "Stranger" }, + { "value": "Person in a position of responsibility", "label": "Person in a position of responsibility" }, + { "value": "Other", "label": "Other" }, + { "value": "Unknown", "label": "Unknown" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "streetAddress", + "label": "Street Address", + "type": "input", + "isPII": true + }, + { + "name": "province", + "label": "Province", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Northern", "label": "Northern" }, + { "value": "Eastern", "label": "Eastern" }, + { "value": "Western", "label": "Western" }, + { "value": "Southern", "label": "Southern" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "district", + "label": "District", + "type": "dependent-select", + "dependsOn": "province", + "defaultOption": { "value": "", "label": "" }, + "options": { + "Northern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Eastern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Western": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Southern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ] + }, + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "postalCode", + "label": "Postal Code", + "type": "input", + "isPII": false + }, + { + "name": "phone1", + "label": "Phone #1", + "type": "input", + "isPII": true + }, + { + "name": "phone2", + "label": "Phone #2", + "type": "input", + "isPII": true + }, + { + "name": "gender", + "label": "Gender", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Boy", "label": "Boy" }, + { "value": "Girl", "label": "Girl" }, + { "value": "Non-Binary", "label": "Non-Binary" }, + { "value": "Unknown", "label": "Unknown" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "age", + "label": "Age", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Unborn", "label": "Unborn" }, + { "value": "0", "label": "0" }, + { "value": "01", "label": "1" }, + { "value": "02", "label": "2" }, + { "value": "03", "label": "3" }, + { "value": "04", "label": "4" }, + { "value": "05", "label": "5" }, + { "value": "06", "label": "6" }, + { "value": "07", "label": "7" }, + { "value": "08", "label": "8" }, + { "value": "09", "label": "9" }, + { "value": "10", "label": "10" }, + { "value": "11", "label": "11" }, + { "value": "12", "label": "12" }, + { "value": "13", "label": "13" }, + { "value": "14", "label": "14" }, + { "value": "15", "label": "15" }, + { "value": "16", "label": "16" }, + { "value": "17", "label": "17" }, + { "value": "18", "label": "18" }, + { "value": "19", "label": "19" }, + { "value": "20", "label": "20" }, + { "value": "21", "label": "21" }, + { "value": "22", "label": "22" }, + { "value": "23", "label": "23" }, + { "value": "24", "label": "24" }, + { "value": "25", "label": "25" }, + { "value": ">25", "label": ">25" }, + { "value": "Unknown", "label": "Unknown" }, + { "value": "Other", "label": "Other" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "language", + "label": "Language", + "type": "select", + "options": [ + { "value": "Unknown", "label": "" }, + { "value": "Hausa", "label": "Hausa" }, + { "value": "English", "label": "English" }, + { "value": "Xhosa", "label": "Xhosa" }, + { "value": "Bemba", "label": "Bemba" }, + { "value": "Other", "label": "Other" } + ] , + "isPII": false + }, + { + "name": "ethnicity", + "label": "Ethnicity", + "type": "input", + "isPII": false + }, + { + "name": "copyToPerpetrator", + "label": "This household member is also a perpetrator", + "type": "copy-to", + "target": "perpetrator", + "isPII": false + } +] diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/IncidentForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/IncidentForm.json new file mode 100644 index 0000000000..3892f06a25 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/IncidentForm.json @@ -0,0 +1,70 @@ +[ + { + "name": "date", + "type": "date-input", + "label": "Date of Incident", + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "duration", + "label": "Duration", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Ongoing", "label": "Ongoing" }, + { "value": "Once Off", "label": "Once Off" }, + { "value": "Other", "label": "Other" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "location", + "label": "Location", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "HomeOwn", "label": "Home (own)" }, + { "value": "HomeOther", "label": "Home (other)" }, + { "value": "EducationalEstablishment", "label": "Educational establishment" }, + { "value": "Institution", "label": "Institution" }, + { "value": "Public place", "label": "Public place" }, + { "value": "Online", "label": "Online" }, + { "value": "Other", "label": "Other" }, + { "value": "Unknown", "label": "Unknown" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "isCaregiverAware", + "label": "Is caregiver aware?", + "type": "mixed-checkbox", + "isPII": false + }, + { + "name": "incidentWitnessed", + "label": "Was the incident witnessed by anyone?", + "type": "mixed-checkbox", + "isPII": false + }, + { + "name": "abuseReportedElsewhere", + "label": "Has abuse been reported elsewhere?", + "type": "mixed-checkbox", + "isPII": false + }, + { + "name": "whereElseBeenReported", + "label": "Where else the incident has been reported?", + "type": "input", + "isPII": false + } +] + + + + + + diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/NoteForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/NoteForm.json new file mode 100644 index 0000000000..3d3d910e9d --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/NoteForm.json @@ -0,0 +1,11 @@ +[ + { + "name": "note", + "label": "Note", + "type": "textarea", + "placeholder": "Type here to add note...", + "rows": 20, + "width": 500, + "isPII": false + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/PerpetratorForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/PerpetratorForm.json new file mode 100644 index 0000000000..0b6044343a --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/PerpetratorForm.json @@ -0,0 +1,219 @@ +[ + { + "name": "firstName", + "type": "input", + "label": "First Name", + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": true + }, + { + "name": "lastName", + "type": "input", + "label": "Last Name", + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": true + }, + { + "name": "relationshipToChild", + "type": "select", + "label": "Relationship to child", + "options": [ + { "value": "", "label": "" }, + { "value": "Peer", "label": "Peer" }, + { "value": "Caregiver", "label": "Caregiver" }, + { "value": "Partner", "label": "Partner" }, + { "value": "OtherAdultKnownToTheChild", "label": "Other adult known to the child" }, + { "value": "Sibling", "label": "Sibling(s)" }, + { "value": "Stranger", "label": "Stranger" }, + { "value": "Person in a position of responsibility", "label": "Person in a position of responsibility" }, + { "value": "Other", "label": "Other" }, + { "value": "Unknown", "label": "Unknown" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "streetAddress", + "label": "Street Address", + "type": "input", + "isPII": true + }, + { + "name": "province", + "label": "Province", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Northern", "label": "Northern" }, + { "value": "Eastern", "label": "Eastern" }, + { "value": "Western", "label": "Western" }, + { "value": "Southern", "label": "Southern" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "district", + "label": "District", + "type": "dependent-select", + "dependsOn": "province", + "defaultOption": { "value": "", "label": "" }, + "options": { + "Northern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Eastern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Western": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ], + "Southern": [ + { "value": "District A", "label": "District A" }, + { "value": "District B", "label": "District B" }, + { "value": "District C", "label": "District C" } + ] + }, + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "postalCode", + "label": "Postal Code", + "type": "input", + "isPII": false + }, + { + "name": "phone1", + "label": "Phone #1", + "type": "input", + "isPII": true + }, + { + "name": "phone2", + "label": "Phone #2", + "type": "input", + "isPII": true + }, + { + "name": "gender", + "label": "Gender", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "Boy", "label": "Boy" }, + { "value": "Girl", "label": "Girl" }, + { "value": "Non-Binary", "label": "Non-Binary" }, + { "value": "Unknown", "label": "Unknown" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "age", + "label": "Age", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "0", "label": "0" }, + { "value": "01", "label": "1" }, + { "value": "02", "label": "2" }, + { "value": "03", "label": "3" }, + { "value": "04", "label": "4" }, + { "value": "05", "label": "5" }, + { "value": "06", "label": "6" }, + { "value": "07", "label": "7" }, + { "value": "08", "label": "8" }, + { "value": "09", "label": "9" }, + { "value": "10", "label": "10" }, + { "value": "11", "label": "11" }, + { "value": "12", "label": "12" }, + { "value": "13", "label": "13" }, + { "value": "14", "label": "14" }, + { "value": "15", "label": "15" }, + { "value": "16", "label": "16" }, + { "value": "17", "label": "17" }, + { "value": "18", "label": "18" }, + { "value": "19", "label": "19" }, + { "value": "20", "label": "20" }, + { "value": "21", "label": "21" }, + { "value": "22", "label": "22" }, + { "value": "23", "label": "23" }, + { "value": "24", "label": "24" }, + { "value": "25", "label": "25" }, + { "value": "26", "label": "26" }, + { "value": "27", "label": "27" }, + { "value": "28", "label": "28" }, + { "value": "29", "label": "29" }, + { "value": "30", "label": "30" }, + { "value": "31", "label": "31" }, + { "value": "32", "label": "32" }, + { "value": "33", "label": "33" }, + { "value": "34", "label": "34" }, + { "value": "35", "label": "35" }, + { "value": "36", "label": "36" }, + { "value": "37", "label": "37" }, + { "value": "38", "label": "38" }, + { "value": "39", "label": "39" }, + { "value": "40", "label": "40" }, + { "value": "41", "label": "41" }, + { "value": "42", "label": "42" }, + { "value": "43", "label": "43" }, + { "value": "44", "label": "44" }, + { "value": "45", "label": "45" }, + { "value": "46", "label": "46" }, + { "value": "47", "label": "47" }, + { "value": "48", "label": "48" }, + { "value": "49", "label": "49" }, + { "value": "50", "label": "50" }, + { "value": "51", "label": "51" }, + { "value": "52", "label": "52" }, + { "value": "53", "label": "53" }, + { "value": "54", "label": "54" }, + { "value": "55", "label": "55" }, + { "value": "56", "label": "56" }, + { "value": "57", "label": "57" }, + { "value": "58", "label": "58" }, + { "value": "59", "label": "59" }, + { "value": "60", "label": "60" }, + { "value": ">60", "label": ">60" }, + { "value": "Unknown", "label": "Unknown" }, + { "value": "Other", "label": "Other" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "language", + "label": "Language", + "type": "select", + "options": [ + { "value": "Unknown", "label": "" }, + { "value": "Hausa", "label": "Hausa" }, + { "value": "English", "label": "English" }, + { "value": "Xhosa", "label": "Xhosa" }, + { "value": "Bemba", "label": "Bemba" }, + { "value": "Other", "label": "Other" } + ] , + "isPII": false + }, + { + "name": "ethnicity", + "label": "Ethnicity", + "type": "input", + "isPII": false + }, + { + "name": "copyToHousehold", + "label": "This perpetrator is also a household member", + "type": "copy-to", + "target": "household", + "isPII": false + } +] diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ReferralForm.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ReferralForm.json new file mode 100644 index 0000000000..7fee5f18f6 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/caseForms/ReferralForm.json @@ -0,0 +1,42 @@ +[ + { + "name": "date", + "type": "date-input", + "label": "Date", + "required": { "value": true, "message": "RequiredFieldError" }, + "metadata": { + "eventTimestampSource": true + }, + "isPII": false + }, + { + "name": "referredTo", + "label": "Referred To", + "type": "select", + "options": [ + { "value": "", "label": "" }, + { "value": "OSC", "label": "OSC" }, + { "value": "DREAMS", "label": "DREAMS" }, + { "value": "Clinic", "label": "Clinic" }, + { "value": "Hospital", "label": "Hospital" }, + { "value": "Social Welfare", "label": "Social Welfare" }, + { "value": "National Prosecutions Authority", "label": "National Prosecutions Authority" }, + { "value": "Police (CPU)", "label": "Police (CPU)" }, + { "value": "Police (VSU)", "label": "Police (VSU)" }, + { "value": "Chief/Head man", "label": "Chief/Head man" }, + { "value": "Head teacher", "label": "Head teacher" }, + { "value": "Religious leader", "label": "Religious leader" }, + { "value": "Other", "label": "Other" } + ], + "required": { "value": true, "message": "RequiredFieldError" }, + "isPII": false + }, + { + "name": "comments", + "label": "Comments", + "type": "textarea", + "rows": 25, + "width": 300, + "isPII": false + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Messages.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Messages.json new file mode 100644 index 0000000000..370228b530 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Messages.json @@ -0,0 +1,10 @@ +{ + "en": { + "WelcomeMsg": "Hi, you're connected with a Peer Supporter at the Promise Resource Network NC Warm Line. I'm glad you reached out. How can I support you today?", + "GoodbyeMsg": "Thank you for spending this time with the Promise Resource Network NC Warm Line. We appreciate you reaching out today. Please take care and know you're welcome to connect with us again.", + "EndChatMsg": "It looks like the chat has ended. Thank you for reaching out to the Promise Resource Network NC Warm Line. If you need support again, you're always welcome to reconnect after two hours has passed.", + "ClosedOutOfShift": "The helpline is out of shift, please reach us later.", + "ClosedHolidays": "The helpline is closed due to a holiday.", + "UnsupportedMediaErrorMsg": "Sorry, the message you just sent is unsupported and could not be delivered." + } +} diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Substitutions.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Substitutions.json new file mode 100644 index 0000000000..778186b21e --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/customStrings/Substitutions.json @@ -0,0 +1,648 @@ +{ + "en": { + "TaskHeaderLineTwitter": "@{{task.attributes.twitterUserHandle}}", + "ChatWelcomeText": "Conversation started", + "TaskHeaderEndCall": "Hang Up", + "TaskHeaderEndChat": "End Chat", + "TranslateButtonAriaLabel": "Change language", + "CloseButton": "Close", + "EditButton": "Edit", + "CancelButton": "Cancel", + "CallSummary-None": "- No call summary -", + "CallSummary-ViewFull": "See full record", + "CallSummary-MoreNotes": "more notes", + "CallSummary-ContactDate": "Contact Date", + "CallSummary-CallerName": "Help Seeker Name", + "CallSummary-Counselor": "Supporter: ", + "CallType-child": "Help Seeker calling about self", + "CallType-caller": "Someone calling about a help seeker", + "CallType-silent": "Silent", + "CallType-blank": "Blank", + "CallType-joke": "Joke", + "CallType-hangup": "Hang up", + "CallType-wrongnumber": "Wrong Number", + "CallType-abusive": "Abusive", + "CallType-CloseContact": "Close Contact", + "CallTypeButtons-Categorize": "categorize this contact", + "CallTypeButtons-Or": "Or was this contact…", + "ConnectDialog-Child": "Copy help seeker information from this record to new contact?", + "ConnectDialog-Caller": "Copy help seeker information from this record to new contact?", + "QueueCard-WaitLabel": "Longest wait time:", + "QueueCard-None": "none", + "QueueCard-LessThanMinute": "less than a minute", + "QueueCard-OneMinute": "1 minute", + "QueueCard-Minutes": " minutes", + "QueueCard-Name": "Queue name", + "QueueIndex-ContactsWaiting": "Contacts waiting", + "AddButtons-Header": "Add...", + "OfflineContacts-Header": "Offline Contacts", + "NonDataCallTypeDialog-CloseConfirm": "Are you sure?", + "GeneralizedSearchForm-OptionalFilters": "Optional Filters", + "GeneralizedSearchForm-SearchTerm": "Search Term", + "GeneralizedSearchForm-Counselor": "Supporter", + "GeneralizedSearchForm-DateFrom": "Date From", + "GeneralizedSearchForm-DateTo": "Date To", + "SearchContactsAndCases-Title": "Search", + "SearchContactsAndCases-TitleExistingCase": "Search for Cases", + "SearchForm-Name": "Name", + "SearchForm-First": "First", + "SearchForm-Last": "Last", + "SearchForm-Counselor": "Supporter", + "SearchForm-DateRange": "Date Range", + "SearchForm-Start": "Start Date", + "SearchForm-End": "End Date", + "SearchForm-Phone": "Phone", + "SearchForm-Office": "Office", + "SearchForm-Button": "Search", + "SearchResultsIndex-Back": "Return to Search Criteria", + "SearchResultsIndex-BackToResults": "Return to Search Results", + "SearchResultsIndex-Result": " result", + "SearchResultsIndex-Results": " results", + "SearchResultsIndex-NonDataContacts": "Non-Data Contacts", + "SearchResultsIndex-Contacts": "Contacts", + "SearchResultsIndex-Cases": "Cases", + "SearchResultsIndex-ClosedCases": "Closed Cases", + "SearchResultsIndex-ViewContacts": "View Contacts", + "SearchResultsIndex-ViewCases": "View Cases", + "Contact-ViewButton": "View", + "SearchResultsIndex-SelectCase": "Select Case", + "SearchResultsIndex-NoCasesFound": "No Cases Found", + "SearchResultsIndex-NoContactsFound": "No Contacts Found", + "SearchResultsIndex-SearchAgainForCase": "Search again for a case", + "SearchResultsIndex-SearchAgainForContact": "Search again for a contact", + "SearchResultsIndex-SaveToNewCase": "save this contact to a new case", + "SearchResultsIndex-Or": "or", + "SearchResults-CounselorName": "Supporter Name:", + "SearchResults-FirstName": "First Name:", + "SearchResults-LastName": "Last Name:", + "SearchResults-PhoneNumber": "Phone Number:", + "SearchResults-DateFrom": "Date From:", + "SearchResults-DateTo": "Date To:", + "SearchResults-Contact": "1 Contact", + "SearchResults-Contacts": " Contacts", + "SearchResults-Case": "1 Case", + "SearchResults-Cases": " Cases", + "SearchResults-For": " for", + "StandaloneSearch-SideNav": "Search", + "CaseHeader-Opened": "Opened", + "CaseHeader-Updated": "Updated", + "CaseHeader-Closed": "Closed", + "CaseHeader-FollowUpDate": "Follow Up By", + "CaseHeader-Status": "Status", + "CaseHeader-ViewCase": "View Case", + "CaseHeader-ConnectToTaskContact": "Add to Case", + "CaseHeader-TaskContactConnected": "Added to Case", + "CaseHeader-CopyChildInfo": "Copy Help Seeker Information into Current Contact", + "CaseHeader-Copy": "Yes, copy", + "CaseHeader-Cancel": "Cancel", + "CaseHeader-Voided": "VOIDED", + "CaseHeader-NoData": "No Data", + "CaseHeader-Counsellor": "Supporter", + "ReadMore": "see more", + "ReadLess": "see less", + "CaseSummary-NoSummaryProvided": "No Summary provided", + "CaseSummary-None": "- No case summary -", + "SectionEntry-Yes": "Yes", + "SectionEntry-No": "No", + "SharedStateSaveFormError": "The information stored in the form couldn't be saved. Task will be transferred anyway.", + "SharedStateLoadFormError": "The information stored in the form by previous supporter couldn't be retrieved. Starting current task with clear contact form.", + "SharedStateSaveContactError": "Could not save pending contact at the Shared State.", + "TaskInfoPanel-AdditionalTaskContext": "Additional Task context", + "Transfer-TransferButton": "Transfer", + "Transfer-RefreshButton": "Refresh", + "Transfer-ErrorLoadingMessages": "Error loading messages. To retry loading them, refresh your browser", + "Transfer-AcceptTransferButton": "Accept Transfer", + "Transfer-RejectTransferButton": "Reject Transfer", + "TaskLineCallTransferWorker": "Transfer from {{task.incomingTransferObject.worker.fullName}} (direct)", + "TaskLineCallTransferQueue": "Transfer from {{task.incomingTransferObject.worker.fullName}} ({{task.incomingTransferObject.queue.name}})", + "Transfer-TaskLineCallReserved": "transfer from", + "Transfer-TaskLineChatReserved": "transfer from", + "Transfer-TaskLineChatLineReserved": "transfer from", + "Transfer-TaskLineChatMessengerReserved": "transfer from", + "Transfer-TaskLineChatSmsReserved": "transfer from", + "Transfer-TaskLineChatWhatsAppReserved": "transfer from", + "Transfer-Cold": "Cold", + "Transfer-Warm": "Warm", + "Transfer-FormNotEditable": "Form locked until transfer is completed.", + "Transfer-ChatWarmNotAllowed": "Warm transfer for chats is currently not supported.", + "Transfer-CannotTransferTooManyParticipants": "Cannot transfer while there are 3 or more participants", + "Transfer-Notifications-CantHangTransferInProgress": "Can't leave the call until the transfer is accepted or rejected.", + "BottomBar-Next": "Next", + "BottomBar-SaveAndAddToCase": "Save and Add to Case...", + "BottomBar-SaveContact": "Save", + "BottomBar-SaveCaseContact": "Save Contact", + "BottomBar-AddContactToNewCase": "Add to Case", + "BottomBar-AddedToCase": "Added to Case", + "BottomBar-OpenNewCase": "Open New Case", + "BottomBar-Cancel": "Cancel", + "BottomBar-CancelNewCaseAndClose": "Cancel Case and Return to Contact", + "BottomBar-SaveAndEnd": "Save and End", + "CaseSection-BottomBar-SaveAndAddAnother/note": "Save and Add Another Note", + "CaseSection-BottomBar-Save/note": "Save Note", + "CaseSection-BottomBar-SaveAndAddAnother/referral": "Save and Add Another Referral", + "CaseSection-BottomBar-Save/referral": "Save Referral", + "CaseSection-BottomBar-SaveAndAddAnother/perpetrator": "Save and Add Another Perpetrator", + "CaseSection-BottomBar-Save/perpetrator": "Save Perpetrator", + "CaseSection-BottomBar-SaveAndAddAnother/household": "Save and Add Another Member", + "CaseSection-BottomBar-Save/household": "Save Member", + "CaseSection-BottomBar-SaveAndAddAnother/incident": "Save and Add Another Incident", + "CaseSection-BottomBar-Save/incident": "Save Incident", + "BottomBar-SaveCaseSummary": "Save", + "CaseSection-BottomBar-SaveAndAddAnother/document": "Save and Upload Another Document", + "CaseSection-BottomBar-Save/document": "Save Document", + "CaseSection-BottomBar-SaveAndAddAnother/chicken": "boc boc!", + "CaseSection-BottomBar-Save/chicken": "boc!", + "BottomBar-Close": "Close", + "BottomBar-Update": "Update", + "Categories-Title": "Categorize this contact", + "TabbedForms-AddCallerInfoTab": "Help Seeker", + "TabbedForms-AddChildInfoTab": "Help Seeker", + "TabbedForms-CategoriesTab": "Categories", + "TabbedForms-AddCaseInfoTab": "Summary", + "TabbedForms-AddContactInfoTab": "Contact", + "TabbedForms-BackButton": "Categorize Contact Type", + "TabbedForms-CSAMReportButton": "CSAM Report", + "TabbedForms-CSAMFileReportButton": "File CSAM Report", + "TabbedForms-CSAMResources": "Resources", + "TabbedForms-ExternalReports": "External Reports", + "TabbedForms-ReportsChildLink": "Create link for help seeker", + "TabbedForms-ReportsCounselorReport": "Report as supporter", + "TabbedForms-NewCase": "New Case", + "TabbedForms-ExistingCase": "Existing Case", + "TabbedForms-ContactNotLoaded-Header": "Contact not loaded, no data can be recorded", + "TabbedForms-ContactNotLoaded-Retry": "Retry", + "TabbedForms-ContactNotLoaded-Finish": "End Without Saving", + "NotImplemented": "Not implemented yet!", + "Error-Backend": "Error from backend system.", + "Error-ContinueWithoutRecording": "Error from backend system. Are you sure you want to end the task without recording?", + "Error-Form": "There is a problem with your submission. Please check the form for errors.", + "Error-CategoryRequired": "Required #{{minSelections}} category minimum, #{{maxSelections}} categories maximum", + "Error-Unexpected": "Unexpected error has occurred", + "Forms-FileUpload-InvalidFileTypeError": "Invalid file type. Only PNG, JPG, JPEG, PDF, DOC, and DOCX files are allowed.", + "Forms-FileUpload-FileSizeError": "File exceeds max size.", + "Case-CaseNumber": "Case #", + "Case-Timeline-RecentTitle": "Recent Timeline", + "Case-Timeline-Title": "Timeline", + "Case-Timeline-PaginationDescription": "Showing {{from}}-{{to}} of {{total}}", + "Case-Timeline-OpenFullTimelineButton": "See All Timeline Items", + "Case-Timeline-DraftContactSummaryPlaceholder": "In Progress", + "Case-Timeline-ModalTitle": "Case #{{caseId}} Timeline", + "Case-SectionList-Title/perpetrator": "Perpetrators", + "Case-SectionList-Title/incident": "Incidents", + "Case-SectionList-Title/household": "Household Information", + "Case-SectionList-Title/document": "Documents", + "Case-SectionList-Title/chicken": "Chickens", + "Case-CaseSummarySection": "Case Summary", + "Case-CaseDetailsChildName": "Help Seeker Name", + "Case-CaseDetailsOwner": "Supporter", + "Case-CaseDetailsDateOpened": "Opened", + "Case-CaseDetailsLastUpdated": "Last Updated / Closed", + "Case-CaseDetailsFollowUpDate": "Follow Up Date", + "Case-CaseDetailsStatusLabel": "Case Status", + "Case-CaseOverviewLabel": "Case Overview", + "Case-CaseDetailsStatusOpen": "Open", + "Case-SectionList-Add/referral": "Referral", + "Case-SectionList-Add/household": "Household Member", + "Case-SectionList-Add/perpetrator": "Perpetrator", + "Case-SectionList-Add/incident": "Incident", + "Case-SectionList-Add/document": "Document", + "Case-SectionList-Add/chicken": "Chicken", + "CaseSection-Add/note": "Add Note", + "CaseSection-Add/referral": "Add Referral", + "CaseSection-Add/household": "Add Household Member", + "CaseSection-Add/perpetrator": "Add Perpetrator", + "CaseSection-Add/incident": "Add Incident", + "CaseSection-Add/document": "Add Document", + "CaseSection-Add/chicken": "Add Chicken", + "CaseSection-Edit/note": "Edit Note", + "Case-DeleteDocument": "Delete", + "CaseSection-Edit/referral": "Edit Referral", + "CaseSection-Edit/household": "Edit Household Member", + "CaseSection-Edit/perpetrator": "Edit Perpetrator", + "CaseSection-Edit/incident": "Edit Incident", + "CaseSection-Edit/document": "Edit Document", + "CaseSection-Edit/chicken": "Bwaaak bocboc", + "Case-EditCaseSummary": "Edit Case Information", + "Case-EditCaseOverview": "Edit Case Overview", + "Case-AddNoteTypeHere": "Type here to add note...", + "Case-AddCaseSummaryHere": "Add case summary here...", + "Case-ActionHeaderAdded": "Added on {{date}} at {{time}} by {{counsellor}}", + "CSAMCLC-ActionHeaderAdded": "Added {{date}} at {{time}}    Supporter: {{counsellor}}", + "Case-ActionHeaderUpdated": "Updated on {{date}} at {{time}} by {{counsellor}}", + "Case-ActionHeaderCounselor": "Supporter:", + "Case-EditSummary-EditHistory-StatusUpdated": "Status updated from {{previousStatus}} to {{updatedStatus}} on {{date}} at {{time}} by {{counsellor}}", + "Case-CloseButton": "Close", + "Case-EditButton": "Edit", + "Case-PerpetratorName": "Name: ", + "Case-PerpetratorGender": "Gender: ", + "Case-PerpetratorAge": "Age: ", + "Case-PerpetratorRelationship": "Relationship to help seeker: ", + "Case-SectionList-NoItems/perpetrator": "No Perpetrators Listed", + "Case-SectionList-NoItems/incident": "No Incidents Listed", + "Case-SectionList-Add/note": "Note", + "Case-SectionList-NoItems/household": "No Household Members Listed", + "Case-SectionList-NoItems/document": "No Documents Listed", + "Case-SectionList-NoItems/chicken": "No Chickens!", + "Case-SectionList-PreviewNameLabel": "Name", + "Case-SectionList-PreviewNameValue": "{{firstName}} {{lastName}}", + "Case-DocumentDate": "Date", + "Case-DocumentFileName": "File Name", + "Case-DocumentComments": "Comments", + "Case-Contact": "Contact", + "CaseSection-View-Title/household": "View Household Member", + "CaseSection-View-Title/incident": "View Incident", + "CaseSection-View-Title/perpetrator": "View Perpetrator", + "CaseSection-View-Title/document": "View Document", + "CaseSection-View-Title/chicken": "Boc!", + "CaseSection-View-Title/referral": "View Referral", + "CaseSection-View-Title/note": "View Note", + "Case-ReferralDate": "Date", + "Case-ReferralReferredTo": "Referred To...", + "Case-ReferralComments": "Comments", + "Case-Counsellor": "Supporter", + "Case-ChildIsAtRisk": "Help Seeker is at risk", + "Case-CaseDetails": "Case Details", + "Case-CaseStatus": "Case Status", + "Case-CaseManager": "Case Manager", + "Case-Notes": "Notes", + "Case-ViewButton": "View", + "SideNavCaseList": "Case List", + "CaseList-Cases": "Cases", + "CaseList-NoCases": "No cases found.", + "CaseList-Filters-CaseCount-Singular": "{{count}} case", + "CaseList-Filters-CaseCount-Plural": "{{count}} cases", + "CaseList-THCase": "Case", + "CaseList-THChildName": "Help Seeker", + "CaseList-THSummary": "Summary", + "CaseList-THCounselor": "Supporter", + "CaseList-THOpened": "Opened", + "CaseList-THUpdated": "Updated", + "CaseList-THFollowUp": "Follow Up", + "CaseList-THCategory": "Category", + "CaseList-ExpandButton": "Open case details", + "CaseList-PrevPage": "Previous page", + "CaseList-NextPage": "Next page", + "Table-FilterBy": "Filter by", + "CaseList-Filters-Status": "Status", + "CaseList-Filters-Counselor": "Supporter", + "CaseList-Filters-Categories": "Categories", + "CaseList-Filters-SearchForCounselor": "Search for supporter by name", + "CaseList-Filters-SearchByCategory": "Search by category", + "CaseList-Filters-ResetAllFilters": "Reset All Filters", + "CaseList-Filters-Apply": "Apply", + "CaseList-Filters-Clear": "Clear", + "CaseList-SomethingWentWrong": "Something went wrong while loading cases list. Please retry in a moment.", + "CaseList-Filters-DialogTitlePrefix": "Filter by:", + "CaseList-Filters-DateFiltersLabel": "Date Filters", + "CaseList-Filters-DateFilter-CreatedAt": "Opened", + "CaseList-Filters-DateFilter-UpdatedAt": "Updated", + "CaseList-Filters-DateFilter-FollowUpDate": "Follow Up", + "CaseList-Filters-DateFilter-CustomRange": "to", + "CaseList-Filters-DateFilter-CustomDateFrom": "Start Date", + "CaseList-Filters-DateFilter-CustomDateTo": "End Date", + "CaseList-Filters-DateFilterOptions-Today": "Today", + "CaseList-Filters-DateFilterOptions-Yesterday": "Yesterday", + "CaseList-Filters-DateFilterOptions-PastXDays": "Past {{days}} days", + "CaseList-Filters-DateFilterOptions-Tomorrow": "Tomorrow", + "CaseList-Filters-DateFilterOptions-NextXDays": "Next {{days}} days", + "CaseList-Filters-DateFilterOptions-WithoutDate": "No {{labelKey}}", + "CaseList-Filters-DateFilterOptions-CustomRange": "Custom", + "ContactPreview-CopyButton": "Copy information", + "ContactPreview-ExpandButton": "Open case details", + "ContactPreview-MoreOptionsButton": "More options", + "CallerForm-FirstName": "First name", + "CallerForm-LastName": "Last name", + "CallerForm-RelationshipToChild": "Relationship to Help Seeker", + "CallerForm-Gender": "Gender", + "CallerForm-Age": "Age", + "CallerForm-Language": "Language", + "CallerForm-Nationality": "Nationality", + "CallerForm-Ethnicity": "Ethnicity", + "CallerForm-StreetAddress": "Street address", + "CallerForm-City": "City", + "CallerForm-State/County": "State/County", + "CallerForm-PostalCode": "Postal code", + "CallerForm-Phone#1": "Phone #1", + "CallerForm-Phone#2": "Phone #2", + "CallerSection-Name": "Name", + "CallerSection-RelationshipToChild": "Relationship to Help Seeker", + "CallerSection-Address": "Address", + "CallerSection-Phone#1": "Phone #1", + "CallerSection-Phone#2": "Phone #2", + "CallerSection-Gender": "Gender", + "CallerSection-AgeRange": "Age Range", + "CallerSection-Language": "Language", + "CallerSection-Nationality": "Nationality", + "CallerSection-Ethnicity": "Ethnicity", + "ContactDetails-GeneralDetails": "General Details", + "ContactDetails-GeneralDetails-Channel": "Channel", + "ContactDetails-GeneralDetails-PhoneNumber": "Phone Number", + "ContactDetails-GeneralDetails-Email": "Email", + "ContactDetails-GeneralDetails-ConversationDuration": "Conversation Duration", + "ContactDetails-GeneralDetails-Counselor": "Supporter", + "ContactDetails-GeneralDetails-DateTime": "Date/Time", + "ContactDetails-GeneralDetails-AddedBy": "Added By", + "ContactDetails-GeneralDetails-HangUpBy": "Who Hung Up", + "ContactDetails-GeneralDetails-HangUpBy/Customer": "Service User", + "ContactDetails-GeneralDetails-HangUpBy/Agent": "Supporter", + "ContactDetails-GeneralDetails-HangUpBy/Consult": "Consulting Supporter", + "ContactDetails-GeneralDetails-HangUpBy/Warm Transfer": "Transfer", + "ContactDetails-GeneralDetails-HangUpBy/Cold Transfer": "Transfer", + "ContactDetails-GeneralDetails-ContactSummary": "Contact Summary", + "ContactDetails-GeneralDetails-RepeatCaller": "Repeat Help Seeker?", + "ContactDetails-GeneralDetails-ReferredTo": "Referred To", + "ContactDetails-GeneralDetails-ChildHearAboutUs": "How did the help seeker hear about us?", + "ContactDetails-GeneralDetails-KeepConfidential": "Keep Confidential?", + "ContactDetails-GeneralDetails-OKToCall": "May social worker call/SMS?", + "ContactDetails-GeneralDetails-DiscussRights": "Did you discuss rights with the help seeker?", + "ContactDetails-GeneralDetails-SolvedProblem": "Did the help seeker feel we solved their problem?", + "ContactDetails-GeneralDetails-WouldRecommend": "Would the help seeker recommend us to a friend?", + "ContactDetails-GeneralDetails-externalReport": "Add CSAM Report", + "ContactDetails-GeneralDetails-ExternalReportsFiled": "External Report(s) Filed", + "ContactDetails-GeneralDetails-ResourcesReferrals": "Resource(s) Shared", + "ContactDetails-Transcript": "Transcript", + "ContactDetails-LoadTranscript-Button": "Load Transcript", + "ContactDetails-Recording": "Recording", + "ContactDetails-LoadRecording-Button": "Load Audio Recording", + "ContactDetails-ActionHeaderAdded": "Added on {{date}} at {{time}} by {{counsellor}}", + "ContactDetails-ActionHeaderUpdated": "Updated on {{date}} at {{time}} by {{counsellor}}", + "ContactDetails-NoCategoryProvided": "No category provided", + "ContactDetails-UnsavedContact": "Unsaved Contact", + "ContactDetails-NoConversationMediaNotification": "Transcript/Recording is not available. Transcript/Recording expire after 30 days for privacy and security reasons.", + "SectionName-CallerInformation": "Help Seeker Information {{sectionNo}} of {{sectionCount}}", + "SectionName-ChildInformation": "Help Seeker Information {{sectionNo}} of {{sectionCount}}", + "SectionName-Contact": "Contact", + "CasePrint-TabularSection-Header/household": "Household Member {{sectionNo}} of {{sectionCount}}", + "CasePrint-TabularSection-Header/perpetrator": "Perpetrator {{sectionNo}} of {{sectionCount}}", + "CasePrint-TabularSection-Header/incident": "Incident {{sectionNo}} of {{sectionCount}}", + "CasePrint-TabularSection-Header/referral": "Referral {{sectionNo}} of {{sectionCount}}", + "CasePrint-TabularSection-Header/chicken": "Chicken {{sectionNo}} of {{sectionCount}}", + "SectionName-Generic": "{{sectionLabel}} {{sectionNo}} of {{sectionCount}}", + "SectionName-Notes": "Notes", + "SectionName-CaseSummary": "Case Summary", + "TranscriptSection-PermanentError": "Something went wrong on our end. Please contact your support team or supervisor.", + "TranscriptSection-TemporaryError": "Something went wrong on our end. Please check again in a few minutes.", + "TranscriptSection-TranscriptNotAvailableCheckLater": "Transcript is not available. Please check back later.", + "Contact-EditCaller": "Edit Help Seeker Information", + "Contact-EditChild": "Edit Help Seeker Information", + "Contact-EditCategories": "Edit Categories", + "Contact-EditSummary": "Edit Summary", + "Contact-ExternalReport": "File External Report", + "Contact-DraftStatus": "In Progress", + "Contact-ResolvedStatus": "Contact has been saved", + "Contact-ConfirmFinalizeContactDialog-ConfirmButton": "Save and End Contact", + "Contact-ConfirmFinalizeContactDialog-Header": "Save and End Contact", + "Contact-ConfirmFinalizeContactDialog-Content": "Save contact and complete any ongoing task associated with it?", + "Contact-ConfirmRemoveTaskDialog-ConfirmButton": "Remove Task", + "Contact-ConfirmRemoveTaskDialog-Header": "Remove Task", + "Contact-ConfirmRemoveTaskDialog-Content": "An error occurred trying to complete the task associated with this contact. Do you want to try to remove the task instead? This will clear the task from the supporters list but the data for this contact will not get stored in the insights reporting system if you do.", + "ContactCopyButton": "Copy", + "ManualPullButtonText": "Another Task", + "NoTaskAssignableNotification": "No task assignable to you at the moment.", + "OfflineContactButtonText": "Offline Contact Record", + "ResumeContactButtonText": "Resume Offline Contact", + "CancelOfflineContact": "Cancel Offline Contact", + "YouMustBeAvailableToPerformThisOp": "You must be available to perform this operation.", + "RequiredFieldError": "This field is required.", + "NotURLFieldError": "This field only accepts URLs.", + "DateCantBeGreaterThanToday": "Date can't be greater than today.", + "DateCantBeLesserThanEpoch": "Date can't be lesser than 00:00:00 UTC on 1 January 1970.", + "DateToCantBeGreaterThanFrom": "End date can't be before start date.", + "TimeCantBeGreaterThanNow": "Time can't be greater than now.", + "NoCaseSummary": "No case summary", + "CannedResponses": "Canned Responses", + "OfflineContactFirstLine": "Offline Contact", + "OfflineContactSecondLine": "In progress", + "TaskList-AddOfflineContact-CreateError": "Error creating new offline contact", + "Category": "Category", + "Unknown": "Unknown", + "Anonymous": "Anonymous", + "PreviousContacts-ThereAre": "There are", + "PreviousContacts-ThereIs": "There is", + "PreviousContacts-Returned": "returned in this search.", + "PreviousContacts-PreviousContacts": "contacts", + "PreviousContacts-PreviousContact": "contact", + "PreviousContacts-Contact": "contact", + "PreviousContacts-Contacts": "contacts", + "PreviousContacts-Case": "case", + "PreviousContacts-Cases": "cases", + "PreviousContacts-Has": "has", + "PreviousContacts-And": "and", + "PreviousContacts-IPAddress": "IP address", + "PreviousContacts-EmailAddress": "email", + "PreviousContacts-PhoneNumber": "phone number", + "PreviousContacts-WhatsappNumber": "Whatsapp number", + "PreviousContacts-FacebookUser": "Facebook user", + "PreviousContacts-TelegramUser": "Telegram user", + "PreviousContacts-InstagramUser": "Instagram user", + "PreviousContacts-LineUser": "Line user", + "PreviousContacts-OnlyShowRecordsFrom": "Only show records from", + "Profile-Title": "Client Profile", + "Profile-ClientTab": "Client", + "Profile-DetailsHeader-Overview": "Overview", + "Profile-DetailsHeader-Notes": "Notes", + "Profile-IdentifiersHeader": "Identifiers", + "Profile-NoIdentifiersFound": "No identifiers found", + "Profile-StatusHeader": "Status", + "Profile-NoStatusesListed": "None listed", + "Profile-EditHeader": "Edit Profile", + "Profile-EditNoteHeader": "Edit Note", + "Profile-EditButton": "Edit", + "Profile-Notes-No": "No", + "Profile-FlagEditHeader": "Edit Status and Blocking", + "Profile-NoContactsFound": "No Contacts Found", + "Profile-NoCasesFound": "No Cases Found", + "Profile-ViewClient": "View Client", + "Profile-ValidUntil": "until", + "SideNavProfileList": "Client Profiles", + "Profile-Singular-Client": "client", + "ProfileList-Clients": "Clients", + "ProfileList-Count-Singular": "{{count}} client", + "ProfileList-Count-Plural": "{{count}} clients", + "ProfileList-THClient": "Client", + "ProfileList-THClientName": "Name", + "ProfileList-THStatus": "Status", + "ProfileList-THIdentifier": "Identifier(s)", + "ProfileList-THSummary": "Summary", + "ProfileList-NoClients": "No clients found.", + "ProfileList-Summary-None": "- No profile summary -", + "ProfileList-Status-None": "- No status -", + "ProfileList-ClientName-None": "- No name -", + "UploadFile-ButtonText": "Upload File", + "DownloadFile-ButtonText": "Download File", + "CSAMReportForm-Header": "File a Report: Help Seeker Sexual Abuse Material", + "CSAMReportForm-WebsiteDetails": "Website details", + "CSAMReportForm-WebsiteDetailsDescription": "Please provide details where the material was discovered.
To report more than one website do a separate report.", + "CSAMReportForm-ContactDetails": "Contact details", + "CSAMReportForm-ContactDetailsDescription": "Reports can be filed anonymously or with contact details if the help seeker would like to follow up or be available to provide further details to IWF.", + "CSAMReportForm-LearnMore": "Learn more", + "CSAMReportForm-ContactDetailsInfo": "Contact details will be recorded on the IWF database for 3 months, and then will then be deleted in accordance with the UK Data Protection Act.", + "CSAMReportForm-ReportSent": "CSAM Report Sent!", + "CSAMReportForm-CopyCode": "Copy confirmation code for sharing", + "CSAMReportForm-Counsellor-Attachment": "CSAM report was filled", + "CSAMReportForm-Self-Attachment": "CSAM self-report link was generated", + "CSAMReportForm-ReportsSubmitted": "Reports Submitted", + "CSAMReportForm-SelectReportType": "Select CSAM report type", + "CSAMCLCReportForm-Header": "File External Report: CSAM - Create Link for Help Seeker", + "CSAMCLCReportForm-ChildAge": "What is help seeker's age?", + "CSAMCLCReportForm-AgeVerified": "Has age of help seeker been verified?", + "CSAMCLCReportForm-CopyLink": "Copy link to share with help seeker. Link expires in 24 hours.", + "CSAMCLCReportForm-LinkReady": "CSAM self-report link is ready", + "SpecifyIfAnonymousOrNot": "Specify if this report is either anonymous or not", + "BottomBar-CreateLink": "Create Link", + "BottomBar-SendAnotherLink": "Create Another Link", + "BottomBar-SendReport": "Send Report", + "BottomBar-SendAnotherReport": "Send Another Report", + "BottomBar-CloseView": "Close View", + "CopyCode": "Copy Code", + "CopyLink": "Copy Link", + "Copied": "Copied!", + "BottomBar-SaveOnClose": "Save Changes?", + "BottomBar-DontSave": "No, Don't Save", + "BottomBar-Save": "Yes, Save", + "Toolkit-ConfirmTextOne": "You will be redirected to an external knowledge management system.", + "Toolkit-ConfirmTextTwo": "Are you sure you want to continue?", + "MaskIdentifiers": "XXXXXX", + "UnmaskPhoneNumber": "Phone Number Revealed", + "RecordingSection-Error": "Something went wrong on our end. Please contact your support team or supervisor.", + "ReferrableResource-SideNav": "Resources", + "Resources-LoadResourceError": "Something went wrong trying to load this resource.", + "Resources-Search-FormTitle": "Resources", + "Resources-Search-ResultsTitle": "Search Results", + "Resources-Search-ResultsDescription": "Showing {{count}} results", + "Resources-Search-ResultsDescription-GeneralSearchTerm": " for \"{{generalSearchTerm}}\".", + "Resources-Search-ResultsDescription-MinimumAge": "Ages {{minEligibleAge}} or over.", + "Resources-Search-ResultsDescription-MaximumAge": "Ages {{maxEligibleAge}} or under.", + "Resources-Search-ResultsDescription-AgeRange": "Ages {{minEligibleAge}}-{{maxEligibleAge}}.", + "Resources-Search-ResultsDescription-InterpretationTranslationServicesAvailable": "Only with Interpretation / Translation Services Available.", + "Resources-Search-ResultsDescription-FeeStructure": "Cost: {{selections}}.", + "Resources-Search-ResultsDescription-HowServiceIsOffered": "Offered as {{selections}}.", + "Resources-Search-ResultsDescription-Location": "Located in {{location}}.", + "Search-ClearFormButton": "Clear", + "Resources-ResourceSearchError": "Something went wrong trying to search for resources.", + "Resources-Search-SearchTermHeader": "Search resource names, populations, services, languages served, etc.", + "Resources-Search-FilterHeader": "... and/or Filter", + "Resources-Search-Location": "Location", + "Resources-Search-Location-Province": "Province", + "Resources-Search-Location-Region": "Region", + "Resources-Search-Location-City": "City", + "Resources-Search-Age-Range": "Age Range", + "Resources-Search-Age-Range-Min": "Youngest", + "Resources-Search-Age-Range-Max": "Oldest", + "Resources-Search-InterpretationTranslationServicesAvailable": "Interpretation / Translation Services Available?", + "Resources-Search-InterpretationTranslationServicesAvailable-Checkbox": "Yes", + "Resources-Search-howServiceIsOffered": "How is this service offered?", + "Resources-Search-feeStructure": "Fee Structure", + "Resources-Search-targetPopulations": "Target Populations", + "Resources-Search-Preview-PrimaryAddress": "Primary Address", + "Resources-Search-Preview-AgesServed": "Ages Served", + "Resources-Search-Preview-OperatingHours": "Hours", + "Resources-View-ContactInfo": "Contact Info", + "Resources-View-MissingProperty": "Not Listed", + "Resources-View-OperatingHours": "Hours of Operation", + "Resources-View-Website": "Website", + "Resources-View-Details": "Details", + "Resources-View-Notes": "Notes", + "Resources-View-RecordType": "Record Type", + "Resources-View-Taxonomies": "Taxonomy Names", + "Resources-View-Sites": " ", + "Resources-View-PrivateInformationWarning": "This information is private. Do not share with help seeker.", + "Resources-View-PrimaryAddress": "Primary Address", + "Resources-View-247": "Is Open 24/7?", + "Resources-View-TranslationServicesAvailable": "Interpretation/ Translation Services Available?", + "Resources-View-AgesServed": "Ages Served", + "Resources-View-TargetPopulation": "Target Population", + "Resources-View-FeeStructure": "Fee Structure", + "Resources-View-HowToAccessSupport": "How to Access Support", + "Resources-View-Accessibility": "Accessibility", + "Resources-View-ApplicationProcess": "Application Process", + "Resources-View-HowIsServiceOffered": "How is Service Offered", + "Resources-View-DocumentsRequired": "Documents Required", + "Resources-View-LanguagesServiced": "Languages Serviced", + "Resources-View-Coverage": "Coverage", + "Resources-View-Coverage-SeeSites": "(see individual sites)", + "Resources-View-Eligibility": "Eligibility", + "Resources-CopyId": "Copy ID", + "Resources-IdCopied": "Copied!", + "Forms-ResourceReferralsList-Add": "Add", + "Forms-ResourceReferralsList-Delete": "Delete", + "Conference-AddConferenceCallParticipant": "Add Conference Call Participant", + "Conference-EnterPhoneNumber": "Enter phone number", + "Conference-DialButton": "Dial", + "Conference-Actions-Leave": "Leave Call", + "Conference-Actions-Hangup": "Hang Up", + "Conference-Actions-Mute": "Mute", + "Conference-Actions-Unmute": "Unmute", + "Conference-Actions-Add": "Conference", + "Conference-Actions-Dial": "Dial", + "Conference-Participant-Remove": "Remove Participant", + "Conference-Participant-Hold": "Hold Participant", + "Conference-Wrapping-HangupBy/Customer": "Call Ended by Service User", + "Conference-Wrapping-HangupBy/Agent": "Call Ended by Supporter", + "Conference-Wrapping-HangupBy/Consult": "Call Ended by Consulting Supporter", + "Conference-Wrapping-HangupBy/Warm Transfer": "Call Ended by Transfer", + "Conference-Wrapping-HangupBy/Cold Transfer": "Call Ended by Transfer", + "Conference-Notifications-UnholdParticipants": "Can't leave conference because some participants are on hold. Please unhold and try again.", + "Conference-Notifications-ErrorAddingParticipant": "Something went wrong trying to add participant to the call, please try again.", + "Conference-Notifications-ErrorUpdatingParticipant": "Something went wrong trying to update the participant, please try again.", + "HangupCallLeaveTooltip": "Leave Call", + "NavigableContainer-BackButton": "Back", + "NavigableContainer-CloseButton": "Close", + "CaseMerging-ContactAddedTo": "Contact added to", + "CaseMerging-AddContactToCase": "Add Contact to Case?", + "CaseMerging-RemoveFromCase": "Remove from Case", + "CaseMerging-ContactRemovedFromCase": "Contact removed from case", + "CaseMerging-CaseCreatedAndContactAdded": "Case #{{caseId}} created and contact added", + "CaseMerging-ContactAddedToExistingCase": "Contact added to Case #{{caseId}}", + "CaseMerging-CancelCase": "Cancel Case", + "CaseMerging-ContactUndoRemovedFromCase": "Undo", + "TeamsView-NoSkills": "- No skills listed -", + "TeamsView-SkillsColumnTitle": "Skills", + "TeamsView-SkillsActionsButtonTitle": "Actions", + "TeamsView-EnableSkills": "Enable Skills...", + "TeamsView-DisableSkills": "Disable Skills...", + "TeamsView-AssignSkills": "Assign Skills...", + "TeamsView-UnassignSkills": "Unassign Skills...", + "TeamsView-ModalContinueButton": "Continue with these changes?", + "TeamsView-Enable": "enable", + "TeamsView-Disable": "disable", + "TeamsView-Assign": "assign", + "TeamsView-Unassign": "unassign", + "TeamsView-EnableFor": "enable for", + "TeamsView-DisableFor": "disable for", + "TeamsView-AssignFor": "assign for", + "TeamsView-UnassignFor": "unassign for", + "TeamsView-SelectSkillsHeader": "Select skills to", + "TeamsView-SelectSkillsPrimaryButton": "Next", + "TeamsView-ConfirmUpdateHeader": "Confirm and Save", + "TeamsView-ConfirmUpdatePrimaryButton": "Confirm and Save", + "TeamsView-Counsellor": "supporter", + "TeamsView-Counsellors": "supporters", + "TeamsView-CancelDialogHeader": "Discard changes?", + "TeamsView-CancelDialogContent": "Your changes will be discarded.", + "MainHeader-Translator-RefreshRequiredNotification": "Refresh page to apply", + "MainHeader-Translator-SelectionNotification": "You have selected {{localeSelection}}", + "MainHeader-Translator-RefreshWarningNotification": "Refreshing will disconnect any active voice and video calls.", + "MainHeader-Translator-MenuTitle": "Language Preference", + "Switchboard-NoQueuesSwitchboarded": "No queues are currently being switchboarded", + "Switchboard-QueueSwitchboardedStatus": "{{queueName}} queue is currently being switchboarded by {{supervisorName}} since {{startDate}} at {{startTime}}", + "Switchboard-SelectQueueModalTitle": "Select queue to switchboard", + "Switchboard-StatusActive": "Switchboarding: In Progress", + "Switchboard-StatusInactive": "Switchboarding: Off", + "Switchboard-ConfirmTurnOffSwitchboard": "Are you sure you want to turn off switchboarding?", + "Switchboard-ActivateSwitchboarding": "Activate switchboarding", + "Switchboard-ModalTitleTurnOffSwitchboard": "Turn Off Switchboarding", + "Switchboard-ButtonTurnOffSwitchboard": "Turn Off", + "Switchboard-PleaseSelectQueue": "Please select a queue first", + "ContactForms-TextArea-GenerateSummary": "Generate Summary", + "ContactForms-TextArea-LoadingSummary": "Loading", + "LlmAssistant-Notifications-SummaryGenerationError": "There was an error generating the summary: {{errorMessage}}", + "AgentDesktop-KeyboardShortcuts-ToggleDialpad": "Toggle Dialpad", + "Modals-ConfirmDialog-ConfirmButton": "OK", + "Modals-CloseDialog-CancelButton": "Cancel", + "Modals-CloseDialog-DiscardButton": "Discard", + "BrowserNotification-ChatMessage-MaskedTitle": "New message", + "AsV1-ChildInformationTab-FirstName-Title": "First Name description", + "AsV1-ChildInformationTab-FirstName-Content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } +} diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToManyConfigSpecs.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToManyConfigSpecs.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToManyConfigSpecs.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToOneConfigSpec.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToOneConfigSpec.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/insights/oneToOneConfigSpec.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/FlagDurations.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/FlagDurations.json new file mode 100644 index 0000000000..9a9b75ad4d --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/FlagDurations.json @@ -0,0 +1,12 @@ +[ + { + "flag": "blocked", + "label": "Short Term Block (24 Hours)", + "durationInHours": "24" + }, + { + "flag": "blocked", + "label": "Long Term Block (5 Years)", + "durationInHours": "43848" + } +] diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/Sections.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/Sections.json new file mode 100644 index 0000000000..77e3d44f06 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/profileForms/Sections.json @@ -0,0 +1,32 @@ +[ + { + "name": "summary", + "label": "Summary", + "editLabel": "Edit Summary", + "type": "textarea", + "rows": 20, + "width": 500, + "placeholder": "Enter a summary of the client", + "isPII": true + }, + { + "name": "recommendedApproach", + "label": "Recommended Approach", + "editLabel": "Edit Recommended Approach", + "type": "textarea", + "rows": 20, + "width": 500, + "placeholder": "Enter recommended approach", + "isPII": true + }, + { + "name": "details", + "label": "Details", + "editLabel": "Edit Details", + "type": "textarea", + "rows": 20, + "width": 500, + "placeholder": "Enter Details", + "isPII": true + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CallerInformationTab.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CallerInformationTab.json new file mode 100644 index 0000000000..06da5271b8 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CallerInformationTab.json @@ -0,0 +1,314 @@ +[ + { + "name": "firstName", + "label": "First Name", + "type": "input", + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "lastName", + "label": "Last Name", + "type": "input", + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "relationshipToChild", + "label": "Relationship to child", + "type": "select", + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Caregiver", + "label": "Caregiver" + }, + { + "value": "Friend", + "label": "Friend" + }, + { + "value": "Grandparent", + "label": "Grandparent" + }, + { + "value": "Neighbour", + "label": "Neighbour" + }, + { + "value": "Parent", + "label": "Parent" + }, + { + "value": "Partner", + "label": "Partner" + }, + { + "value": "Person in a position of responsibility", + "label": "Person in a position of responsibility" + }, + { + "value": "Sibling", + "label": "Sibling" + }, + { + "value": "Stranger", + "label": "Stranger" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "streetAddress", + "label": "Street Address", + "type": "input" + }, + { + "name": "province", + "label": "Province", + "type": "select", + "options": [ + { + "value": "", + "label": "" + }, + { + "value": "Central", + "label": "Central" + }, + { + "value": "Unknown", + "label": "Unknown" + } + ], + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "district", + "label": "District", + "type": "dependent-select", + "dependsOn": "province", + "defaultOption": { + "value": "", + "label": "" + }, + "options": { + "District1": [ + { + "value": "Subdistrict1", + "label": "Subdistrict1" + }, + { + "value": "Unknown", + "label": "Unknown" + } + ], + "District2": [ + { + "value": "Subdistrict1", + "label": "Subdistrict1" + }, + { + "value": "Unknown", + "label": "Unknown" + } + ] + }, + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "phone1", + "label": "Phone #1", + "type": "input", + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "gender", + "label": "Gender", + "type": "select", + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Boy", + "label": "Boy" + }, + { + "value": "Girl", + "label": "Girl" + }, + { + "value": "Non-Binary", + "label": "Non-Binary" + } + ] + }, + { + "name": "age", + "label": "Age", + "type": "select", + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "0", + "label": "0" + }, + { + "value": "1", + "label": "1" + }, + { + "value": "2", + "label": "2" + }, + { + "value": "3", + "label": "3" + }, + { + "value": "4", + "label": "4" + }, + { + "value": "5", + "label": "5" + }, + { + "value": "6", + "label": "6" + }, + { + "value": "7", + "label": "7" + }, + { + "value": "8", + "label": "8" + }, + { + "value": "9", + "label": "9" + }, + { + "value": "10", + "label": "10" + }, + { + "value": "11", + "label": "11" + }, + { + "value": "12", + "label": "12" + }, + { + "value": "13", + "label": "13" + }, + { + "value": "14", + "label": "14" + }, + { + "value": "15", + "label": "15" + }, + { + "value": "16", + "label": "16" + }, + { + "value": "17", + "label": "17" + }, + { + "value": "18", + "label": "18" + }, + { + "value": "19", + "label": "19" + }, + { + "value": "20", + "label": "20" + }, + { + "value": "21", + "label": "21" + }, + { + "value": "22", + "label": "22" + }, + { + "value": "23", + "label": "23" + }, + { + "value": "24", + "label": "24" + }, + { + "value": "25", + "label": "25" + }, + { + "value": ">25", + "label": ">25" + }, + { + "value": "Unknown", + "label": "Unknown" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "language", + "label": "Language", + "type": "select", + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "language1", + "label": "language1" + } + ] + }, + { + "name": "ethnicity", + "label": "Ethnicity", + "type": "input" + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CaseInformationTab.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CaseInformationTab.json new file mode 100644 index 0000000000..0df0c79e27 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/CaseInformationTab.json @@ -0,0 +1,192 @@ +[ + { + "name": "contactSummary", + "label": "Contact Summary", + "type": "textarea", + "isPII": false, + "rows": 10, + "width": 250 + }, + { + "name": "repeatCaller", + "label": "Repeat Caller?", + "type": "checkbox", + "isPII": false + }, + { + "name": "actionTaken", + "label": "Action Taken", + "type": "listbox-multiselect", + "isPII": false, + "options": [ + { + "value": "Active listening", + "label": "Active listening" + }, + { + "value": "Validation", + "label": "Validation" + }, + { + "value": "Empathy", + "label": "Empathy" + }, + { + "value": "Reflective responding", + "label": "Reflective responding" + }, + { + "value": "Normalization", + "label": "Normalization" + }, + { + "value": "Open-ended questions", + "label": "Open-ended questions" + }, + { + "value": "Strengths identification", + "label": "Strengths identification" + }, + { + "value": "Emotional containment", + "label": "Emotional containment" + }, + { + "value": "Supportive silence", + "label": "Supportive silence" + }, + { + "value": "Encouragement", + "label": "Encouragement" + }, + { + "value": "Sharing Information", + "label": "Sharing Information" + }, + { + "value": "Boundary setting", + "label": "Boundary setting" + }, + { + "value": "Hope-oriented language", + "label": "Hope-oriented language" + }, + { + "value": "Collaborative problem exploration", + "label": "Collaborative problem exploration" + }, + { + "value": "Respecting autonomy", + "label": "Respecting autonomy" + }, + { + "value": "Sharing resources", + "label": "Sharing resources" + }, + { + "value": "Other", + "label": "Other" + } + ], + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "howDidYouHearAboutTheWarmLine", + "label": "How did you hear about the Warm Line?", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Previously contacted", + "label": "Previously contacted" + }, + { + "value": "Another Warm/Crisis Line", + "label": "Another Warm/Crisis Line" + }, + { + "value": "Social Service Agency", + "label": "Social Service Agency" + }, + { + "value": "Hospital/Health Practitioner", + "label": "Hospital/Health Practitioner" + }, + { + "value": "Mental Health Provider", + "label": "Mental Health Provider" + }, + { + "value": "Family/Friend", + "label": "Family/Friend" + }, + { + "value": "Internet Search", + "label": "Internet Search" + }, + { + "value": "Social Media", + "label": "Social Media" + }, + { + "value": "Printed Materials", + "label": "Printed Materials" + }, + { + "value": "Radio/TV/Billboard", + "label": "Radio/TV/Billboard" + }, + { + "value": "Other", + "label": "Other" + }, + { + "value": "Does Not Apply N/A", + "label": "Does Not Apply N/A" + } + ] + }, + { + "name": "doWeHaveTheirPermissionToLiveMonitorCalls", + "label": "Do we have their permission to live monitor calls.", + "type": "checkbox", + "isPII": false + }, + { + "name": "doWeHaveTheirPermissionToCallBack", + "label": "Do we have their permission to call back?", + "type": "checkbox", + "isPII": false + }, + { + "name": "wasTheIndividualAbusive", + "label": "Was the individual abusive?", + "type": "checkbox", + "isPII": false + }, + { + "name": "didTheIndividualWantToFileAComplaint", + "label": "Did the individual want to file a complaint?", + "type": "checkbox", + "isPII": false + }, + { + "name": "isTheIndividualAMinor", + "label": "Is the individual a minor?", + "type": "checkbox", + "isPII": false + }, + { + "name": "isTheIndividualOutOfState", + "label": "Is the individual out of state?", + "type": "checkbox", + "isPII": false + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/ChildInformationTab.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/ChildInformationTab.json new file mode 100644 index 0000000000..605a56c228 --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/ChildInformationTab.json @@ -0,0 +1,1570 @@ +[ + { + "name": "name", + "label": "Name", + "type": "input", + "isPII": true, + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "city", + "label": "City", + "type": "select", + "isPII": true, + "options": [ + { + "value": "", + "label": "" + }, + { + "value": "Aberdeen", + "label": "Aberdeen" + }, + { + "value": "Advance", + "label": "Advance" + }, + { + "value": "Ahoskie", + "label": "Ahoskie" + }, + { + "value": "Alamance", + "label": "Alamance" + }, + { + "value": "Albemarle", + "label": "Albemarle" + }, + { + "value": "Albertson", + "label": "Albertson" + }, + { + "value": "Alexander", + "label": "Alexander" + }, + { + "value": "Alexis", + "label": "Alexis" + }, + { + "value": "Alliance", + "label": "Alliance" + }, + { + "value": "Almond", + "label": "Almond" + }, + { + "value": "Altamahaw", + "label": "Altamahaw" + }, + { + "value": "Andrews", + "label": "Andrews" + }, + { + "value": "Angier", + "label": "Angier" + }, + { + "value": "Ansonville", + "label": "Ansonville" + }, + { + "value": "Apex", + "label": "Apex" + }, + { + "value": "Arapahoe", + "label": "Arapahoe" + }, + { + "value": "Ararat", + "label": "Ararat" + }, + { + "value": "Arden", + "label": "Arden" + }, + { + "value": "Ash", + "label": "Ash" + }, + { + "value": "Asheboro", + "label": "Asheboro" + }, + { + "value": "Asheville", + "label": "Asheville" + }, + { + "value": "Askewville", + "label": "Askewville" + }, + { + "value": "Atkinson", + "label": "Atkinson" + }, + { + "value": "Atlantic", + "label": "Atlantic" + }, + { + "value": "Atlantic Beach", + "label": "Atlantic Beach" + }, + { + "value": "Aulander", + "label": "Aulander" + }, + { + "value": "Aurora", + "label": "Aurora" + }, + { + "value": "Autryville", + "label": "Autryville" + }, + { + "value": "Ayden", + "label": "Ayden" + }, + { + "value": "Badin", + "label": "Badin" + }, + { + "value": "Bailey", + "label": "Bailey" + }, + { + "value": "Bakersville", + "label": "Bakersville" + }, + { + "value": "Banner Elk", + "label": "Banner Elk" + }, + { + "value": "Bath", + "label": "Bath" + }, + { + "value": "Bayboro", + "label": "Bayboro" + }, + { + "value": "Beaufort", + "label": "Beaufort" + }, + { + "value": "Belhaven", + "label": "Belhaven" + }, + { + "value": "Belmont", + "label": "Belmont" + }, + { + "value": "Benson", + "label": "Benson" + }, + { + "value": "Bermuda Run", + "label": "Bermuda Run" + }, + { + "value": "Bessemer City", + "label": "Bessemer City" + }, + { + "value": "Bethania", + "label": "Bethania" + }, + { + "value": "Bethel", + "label": "Bethel" + }, + { + "value": "Beulaville", + "label": "Beulaville" + }, + { + "value": "Biltmore Forest", + "label": "Biltmore Forest" + }, + { + "value": "Biscoe", + "label": "Biscoe" + }, + { + "value": "Black Creek", + "label": "Black Creek" + }, + { + "value": "Black Mountain", + "label": "Black Mountain" + }, + { + "value": "Bladenboro", + "label": "Bladenboro" + }, + { + "value": "Blowing Rock", + "label": "Blowing Rock" + }, + { + "value": "Boiling Spring Lakes", + "label": "Boiling Spring Lakes" + }, + { + "value": "Boiling Springs", + "label": "Boiling Springs" + }, + { + "value": "Bolivia", + "label": "Bolivia" + }, + { + "value": "Bolton", + "label": "Bolton" + }, + { + "value": "Boone", + "label": "Boone" + }, + { + "value": "Boonville", + "label": "Boonville" + }, + { + "value": "Bostic", + "label": "Bostic" + }, + { + "value": "Brevard", + "label": "Brevard" + }, + { + "value": "Bridgeton", + "label": "Bridgeton" + }, + { + "value": "Broadway", + "label": "Broadway" + }, + { + "value": "Brookford", + "label": "Brookford" + }, + { + "value": "Bryson City", + "label": "Bryson City" + }, + { + "value": "Buies Creek", + "label": "Buies Creek" + }, + { + "value": "Bunn", + "label": "Bunn" + }, + { + "value": "Burgaw", + "label": "Burgaw" + }, + { + "value": "Burlington", + "label": "Burlington" + }, + { + "value": "Burnsville", + "label": "Burnsville" + }, + { + "value": "Butner", + "label": "Butner" + }, + { + "value": "Calabash", + "label": "Calabash" + }, + { + "value": "Calypso", + "label": "Calypso" + }, + { + "value": "Cameron", + "label": "Cameron" + }, + { + "value": "Candor", + "label": "Candor" + }, + { + "value": "Canton", + "label": "Canton" + }, + { + "value": "Cape Carteret", + "label": "Cape Carteret" + }, + { + "value": "Carolina Beach", + "label": "Carolina Beach" + }, + { + "value": "Carolina Shores", + "label": "Carolina Shores" + }, + { + "value": "Carrboro", + "label": "Carrboro" + }, + { + "value": "Carthage", + "label": "Carthage" + }, + { + "value": "Cary", + "label": "Cary" + }, + { + "value": "Casar", + "label": "Casar" + }, + { + "value": "Cashiers", + "label": "Cashiers" + }, + { + "value": "Castalia", + "label": "Castalia" + }, + { + "value": "Catawba", + "label": "Catawba" + }, + { + "value": "Cedar Point", + "label": "Cedar Point" + }, + { + "value": "Cerro Gordo", + "label": "Cerro Gordo" + }, + { + "value": "Chadbourn", + "label": "Chadbourn" + }, + { + "value": "Chapel Hill", + "label": "Chapel Hill" + }, + { + "value": "Charlotte", + "label": "Charlotte" + }, + { + "value": "Cherryville", + "label": "Cherryville" + }, + { + "value": "China Grove", + "label": "China Grove" + }, + { + "value": "Chocowinity", + "label": "Chocowinity" + }, + { + "value": "Claremont", + "label": "Claremont" + }, + { + "value": "Clarkton", + "label": "Clarkton" + }, + { + "value": "Clayton", + "label": "Clayton" + }, + { + "value": "Clemmons", + "label": "Clemmons" + }, + { + "value": "Clinton", + "label": "Clinton" + }, + { + "value": "Clyde", + "label": "Clyde" + }, + { + "value": "Coats", + "label": "Coats" + }, + { + "value": "Colerain", + "label": "Colerain" + }, + { + "value": "Columbia", + "label": "Columbia" + }, + { + "value": "Columbus", + "label": "Columbus" + }, + { + "value": "Concord", + "label": "Concord" + }, + { + "value": "Conetoe", + "label": "Conetoe" + }, + { + "value": "Connelly Springs", + "label": "Connelly Springs" + }, + { + "value": "Conover", + "label": "Conover" + }, + { + "value": "Conway", + "label": "Conway" + }, + { + "value": "Cooleemee", + "label": "Cooleemee" + }, + { + "value": "Cornelius", + "label": "Cornelius" + }, + { + "value": "Cove City", + "label": "Cove City" + }, + { + "value": "Cramerton", + "label": "Cramerton" + }, + { + "value": "Creedmoor", + "label": "Creedmoor" + }, + { + "value": "Creswell", + "label": "Creswell" + }, + { + "value": "Crossnore", + "label": "Crossnore" + }, + { + "value": "Cullowhee", + "label": "Cullowhee" + }, + { + "value": "Dallas", + "label": "Dallas" + }, + { + "value": "Danbury", + "label": "Danbury" + }, + { + "value": "Davidson", + "label": "Davidson" + }, + { + "value": "Denton", + "label": "Denton" + }, + { + "value": "Denver", + "label": "Denver" + }, + { + "value": "Dobson", + "label": "Dobson" + }, + { + "value": "Dover", + "label": "Dover" + }, + { + "value": "Drexel", + "label": "Drexel" + }, + { + "value": "Dublin", + "label": "Dublin" + }, + { + "value": "Dunn", + "label": "Dunn" + }, + { + "value": "Durham", + "label": "Durham" + }, + { + "value": "Earl", + "label": "Earl" + }, + { + "value": "Eden", + "label": "Eden" + }, + { + "value": "Edenton", + "label": "Edenton" + }, + { + "value": "Elizabeth City", + "label": "Elizabeth City" + }, + { + "value": "Elizabethtown", + "label": "Elizabethtown" + }, + { + "value": "Elkin", + "label": "Elkin" + }, + { + "value": "Elon", + "label": "Elon" + }, + { + "value": "Emerald Isle", + "label": "Emerald Isle" + }, + { + "value": "Enfield", + "label": "Enfield" + }, + { + "value": "Erwin", + "label": "Erwin" + }, + { + "value": "Etowah", + "label": "Etowah" + }, + { + "value": "Eureka", + "label": "Eureka" + }, + { + "value": "Fair Bluff", + "label": "Fair Bluff" + }, + { + "value": "Fairmont", + "label": "Fairmont" + }, + { + "value": "Farmville", + "label": "Farmville" + }, + { + "value": "Fayetteville", + "label": "Fayetteville" + }, + { + "value": "Flat Rock", + "label": "Flat Rock" + }, + { + "value": "Fletcher", + "label": "Fletcher" + }, + { + "value": "Forest City", + "label": "Forest City" + }, + { + "value": "Four Oaks", + "label": "Four Oaks" + }, + { + "value": "Franklin", + "label": "Franklin" + }, + { + "value": "Franklinton", + "label": "Franklinton" + }, + { + "value": "Fremont", + "label": "Fremont" + }, + { + "value": "Fuquay-Varina", + "label": "Fuquay-Varina" + }, + { + "value": "Garland", + "label": "Garland" + }, + { + "value": "Garner", + "label": "Garner" + }, + { + "value": "Gastonia", + "label": "Gastonia" + }, + { + "value": "Gibson", + "label": "Gibson" + }, + { + "value": "Gibsonville", + "label": "Gibsonville" + }, + { + "value": "Glen Alpine", + "label": "Glen Alpine" + }, + { + "value": "Goldsboro", + "label": "Goldsboro" + }, + { + "value": "Graham", + "label": "Graham" + }, + { + "value": "Granite Falls", + "label": "Granite Falls" + }, + { + "value": "Greensboro", + "label": "Greensboro" + }, + { + "value": "Greenville", + "label": "Greenville" + }, + { + "value": "Grifton", + "label": "Grifton" + }, + { + "value": "Havelock", + "label": "Havelock" + }, + { + "value": "Haw River", + "label": "Haw River" + }, + { + "value": "Hayesville", + "label": "Hayesville" + }, + { + "value": "Henderson", + "label": "Henderson" + }, + { + "value": "Hendersonville", + "label": "Hendersonville" + }, + { + "value": "Hertford", + "label": "Hertford" + }, + { + "value": "Hickory", + "label": "Hickory" + }, + { + "value": "High Point", + "label": "High Point" + }, + { + "value": "Highlands", + "label": "Highlands" + }, + { + "value": "Hillsborough", + "label": "Hillsborough" + }, + { + "value": "Holly Ridge", + "label": "Holly Ridge" + }, + { + "value": "Hope Mills", + "label": "Hope Mills" + }, + { + "value": "Huntersville", + "label": "Huntersville" + }, + { + "value": "Iredell", + "label": "Iredell" + }, + { + "value": "Indian Beach", + "label": "Indian Beach" + }, + { + "value": "Jacksonville", + "label": "Jacksonville" + }, + { + "value": "Jamestown", + "label": "Jamestown" + }, + { + "value": "Jamesville", + "label": "Jamesville" + }, + { + "value": "Kannapolis", + "label": "Kannapolis" + }, + { + "value": "Kernersville", + "label": "Kernersville" + }, + { + "value": "Kill Devil Hills", + "label": "Kill Devil Hills" + }, + { + "value": "King", + "label": "King" + }, + { + "value": "Kings Mountain", + "label": "Kings Mountain" + }, + { + "value": "Kinston", + "label": "Kinston" + }, + { + "value": "La Grange", + "label": "La Grange" + }, + { + "value": "Lake Lure", + "label": "Lake Lure" + }, + { + "value": "Landis", + "label": "Landis" + }, + { + "value": "Leland", + "label": "Leland" + }, + { + "value": "Lexington", + "label": "Lexington" + }, + { + "value": "Lincolnton", + "label": "Lincolnton" + }, + { + "value": "Littleton", + "label": "Littleton" + }, + { + "value": "Louisburg", + "label": "Louisburg" + }, + { + "value": "Lowell", + "label": "Lowell" + }, + { + "value": "Lumberton", + "label": "Lumberton" + }, + { + "value": "Maggie Valley", + "label": "Maggie Valley" + }, + { + "value": "Maiden", + "label": "Maiden" + }, + { + "value": "Manteo", + "label": "Manteo" + }, + { + "value": "Marion", + "label": "Marion" + }, + { + "value": "Marshall", + "label": "Marshall" + }, + { + "value": "Matthews", + "label": "Matthews" + }, + { + "value": "Mayodan", + "label": "Mayodan" + }, + { + "value": "Mebane", + "label": "Mebane" + }, + { + "value": "Middlesex", + "label": "Middlesex" + }, + { + "value": "Midland", + "label": "Midland" + }, + { + "value": "Milton", + "label": "Milton" + }, + { + "value": "Mocksville", + "label": "Mocksville" + }, + { + "value": "Monroe", + "label": "Monroe" + }, + { + "value": "Montreat", + "label": "Montreat" + }, + { + "value": "Morehead City", + "label": "Morehead City" + }, + { + "value": "Morrisville", + "label": "Morrisville" + }, + { + "value": "Mount Airy", + "label": "Mount Airy" + }, + { + "value": "Mount Holly", + "label": "Mount Holly" + }, + { + "value": "Mount Olive", + "label": "Mount Olive" + }, + { + "value": "Murfreesboro", + "label": "Murfreesboro" + }, + { + "value": "Nags Head", + "label": "Nags Head" + }, + { + "value": "Nashville", + "label": "Nashville" + }, + { + "value": "New Bern", + "label": "New Bern" + }, + { + "value": "New London", + "label": "New London" + }, + { + "value": "Newport", + "label": "Newport" + }, + { + "value": "Newton", + "label": "Newton" + }, + { + "value": "Norlina", + "label": "Norlina" + }, + { + "value": "North Wilkesboro", + "label": "North Wilkesboro" + }, + { + "value": "Oak Island", + "label": "Oak Island" + }, + { + "value": "Oakboro", + "label": "Oakboro" + }, + { + "value": "Ocean Isle Beach", + "label": "Ocean Isle Beach" + }, + { + "value": "Old Fort", + "label": "Old Fort" + }, + { + "value": "Oriental", + "label": "Oriental" + }, + { + "value": "Oxford", + "label": "Oxford" + }, + { + "value": "Pinehurst", + "label": "Pinehurst" + }, + { + "value": "Pine Level", + "label": "Pine Level" + }, + { + "value": "Pinetops", + "label": "Pinetops" + }, + { + "value": "Pittsboro", + "label": "Pittsboro" + }, + { + "value": "Plain View", + "label": "Plain View" + }, + { + "value": "Plymouth", + "label": "Plymouth" + }, + { + "value": "Polkton", + "label": "Polkton" + }, + { + "value": "Princeton", + "label": "Princeton" + }, + { + "value": "Raleigh", + "label": "Raleigh" + }, + { + "value": "Ramseur", + "label": "Ramseur" + }, + { + "value": "Red Springs", + "label": "Red Springs" + }, + { + "value": "Reidsville", + "label": "Reidsville" + }, + { + "value": "Rex", + "label": "Rex" + }, + { + "value": "Roanoke Rapids", + "label": "Roanoke Rapids" + }, + { + "value": "Robbins", + "label": "Robbins" + }, + { + "value": "Rockingham", + "label": "Rockingham" + }, + { + "value": "Rockwell", + "label": "Rockwell" + }, + { + "value": "Rocky Mount", + "label": "Rocky Mount" + }, + { + "value": "Rolesville", + "label": "Rolesville" + }, + { + "value": "Roxboro", + "label": "Roxboro" + }, + { + "value": "Rutherfordton", + "label": "Rutherfordton" + }, + { + "value": "Salem", + "label": "Salem" + }, + { + "value": "Salisbury", + "label": "Salisbury" + }, + { + "value": "Sanford", + "label": "Sanford" + }, + { + "value": "Scotland Neck", + "label": "Scotland Neck" + }, + { + "value": "Seagrove", + "label": "Seagrove" + }, + { + "value": "Selma", + "label": "Selma" + }, + { + "value": "Shallotte", + "label": "Shallotte" + }, + { + "value": "Shelby", + "label": "Shelby" + }, + { + "value": "Smithfield", + "label": "Smithfield" + }, + { + "value": "Southern Pines", + "label": "Southern Pines" + }, + { + "value": "Southport", + "label": "Southport" + }, + { + "value": "Sparta", + "label": "Sparta" + }, + { + "value": "Spring Hope", + "label": "Spring Hope" + }, + { + "value": "Spruce Pine", + "label": "Spruce Pine" + }, + { + "value": "Stallings", + "label": "Stallings" + }, + { + "value": "Stanley", + "label": "Stanley" + }, + { + "value": "Statesville", + "label": "Statesville" + }, + { + "value": "Stokesdale", + "label": "Stokesdale" + }, + { + "value": "Stoneville", + "label": "Stoneville" + }, + { + "value": "Summerfield", + "label": "Summerfield" + }, + { + "value": "Sunset Beach", + "label": "Sunset Beach" + }, + { + "value": "Surf City", + "label": "Surf City" + }, + { + "value": "Swansboro", + "label": "Swansboro" + }, + { + "value": "Sylva", + "label": "Sylva" + }, + { + "value": "Tarboro", + "label": "Tarboro" + }, + { + "value": "Taylorsville", + "label": "Taylorsville" + }, + { + "value": "Thomasville", + "label": "Thomasville" + }, + { + "value": "Trenton", + "label": "Trenton" + }, + { + "value": "Trinity", + "label": "Trinity" + }, + { + "value": "Troy", + "label": "Troy" + }, + { + "value": "Tryon", + "label": "Tryon" + }, + { + "value": "Unionville", + "label": "Unionville" + }, + { + "value": "Valdese", + "label": "Valdese" + }, + { + "value": "Vanceboro", + "label": "Vanceboro" + }, + { + "value": "Wadesboro", + "label": "Wadesboro" + }, + { + "value": "Wake Forest", + "label": "Wake Forest" + }, + { + "value": "Wallace", + "label": "Wallace" + }, + { + "value": "Walnut Cove", + "label": "Walnut Cove" + }, + { + "value": "Warsaw", + "label": "Warsaw" + }, + { + "value": "Washington", + "label": "Washington" + }, + { + "value": "Waynesville", + "label": "Waynesville" + }, + { + "value": "Weaverville", + "label": "Weaverville" + }, + { + "value": "Wendell", + "label": "Wendell" + }, + { + "value": "Whiteville", + "label": "Whiteville" + }, + { + "value": "Whitsett", + "label": "Whitsett" + }, + { + "value": "Wilkesboro", + "label": "Wilkesboro" + }, + { + "value": "Williamston", + "label": "Williamston" + }, + { + "value": "Wilmington", + "label": "Wilmington" + }, + { + "value": "Wilson", + "label": "Wilson" + }, + { + "value": "Windsor", + "label": "Windsor" + }, + { + "value": "Winterville", + "label": "Winterville" + }, + { + "value": "Woodfin", + "label": "Woodfin" + }, + { + "value": "Yadkinville", + "label": "Yadkinville" + }, + { + "value": "Youngsville", + "label": "Youngsville" + }, + { + "value": "Zebulon", + "label": "Zebulon" + } + ], + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "988Referral", + "label": "988 Referral", + "type": "checkbox", + "isPII": false, + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "race", + "label": "Race", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "White", + "label": "White" + }, + { + "value": "Black/African American", + "label": "Black/African American" + }, + { + "value": "Asian", + "label": "Asian" + }, + { + "value": "American Indian", + "label": "American Indian" + }, + { + "value": "Native Hawaiian or Other Pacific Islander", + "label": "Native Hawaiian or Other Pacific Islander" + }, + { + "value": "Two or More Races", + "label": "Two or More Races" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "ethnicity", + "label": "Ethnicity", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Unknown", + "label": "" + } + ] + }, + { + "name": "ageRange", + "label": "Age Range", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "18-24", + "label": "18-24" + }, + { + "value": "25-34", + "label": "25-34" + }, + { + "value": "35-44", + "label": "35-44" + }, + { + "value": "45-54", + "label": "45-54" + }, + { + "value": "55+", + "label": "55+" + } + ] + }, + { + "name": "gender", + "label": "Gender", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Male", + "label": "Male" + }, + { + "value": "Female", + "label": "Female" + }, + { + "value": "Non-binary", + "label": "Non-binary" + }, + { + "value": "Two-Spirit", + "label": "Two-Spirit" + }, + { + "value": "TransMasc", + "label": "TransMasc" + }, + { + "value": "TransFemme", + "label": "TransFemme" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "pronouns", + "label": "Pronouns", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "He/Him/His", + "label": "He/Him/His" + }, + { + "value": "She/Her/Hers", + "label": "She/Her/Hers" + }, + { + "value": "They/Them/Theirs", + "label": "They/Them/Theirs" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "militaryStatus", + "label": "Military Status", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Active Duty", + "label": "Active Duty" + }, + { + "value": "Retired", + "label": "Retired" + }, + { + "value": "Veteran (non-career)", + "label": "Veteran (non-career)" + }, + { + "value": "Non-Military", + "label": "Non-Military" + }, + { + "value": "National Guard/Reserves", + "label": "National Guard/Reserves" + }, + { + "value": "Military Partner", + "label": "Military Partner" + }, + { + "value": "Military Family Member", + "label": "Military Family Member" + } + ] + }, + { + "name": "livingSituation", + "label": "Living Situation", + "type": "select", + "isPII": false, + "options": [ + { + "value": "Unknown", + "label": "" + }, + { + "value": "Living independently", + "label": "Living independently" + }, + { + "value": "Living with family/friends", + "label": "Living with family/friends" + }, + { + "value": "Homeless or marginally housed", + "label": "Homeless or marginally housed" + }, + { + "value": "Supportive Housing", + "label": "Supportive Housing" + }, + { + "value": "Senior Facility", + "label": "Senior Facility" + }, + { + "value": "Hospice", + "label": "Hospice" + }, + { + "value": "Group Residential Facility", + "label": "Group Residential Facility" + }, + { + "value": "Safety-restricted Environment", + "label": "Safety-restricted Environment" + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "vulnerableGroups", + "label": "Vulnerable Groups", + "type": "listbox-multiselect", + "isPII": false, + "options": [ + { + "value": "Justice Involved", + "label": "Justice Involved" + }, + { + "value": "Experiencing financial insecurity", + "label": "Experiencing financial insecurity" + }, + { + "value": "Ethnic, racial, or religious minority", + "label": "Ethnic, racial, or religious minority" + }, + { + "value": "Experiencing homelessness", + "label": "Experiencing homelessness" + }, + { + "value": "Disability", + "label": "Disability" + }, + { + "value": "Involuntarily hospitalized", + "label": "Involuntarily hospitalized" + }, + { + "value": "LGBTQI+/SOGIESC ", + "label": "LGBTQI+/SOGIESC " + }, + { + "value": "Other", + "label": "Other" + } + ] + }, + { + "name": "otherVulnerableGroup", + "label": "Other Vulnerable Group", + "type": "input", + "isPII": false + }, + { + "name": "phone1", + "label": "Phone #1", + "type": "input", + "isPII": true, + "required": { + "value": true, + "message": "RequiredFieldError" + } + }, + { + "name": "phone2", + "label": "Phone #2", + "type": "input", + "isPII": false + }, + { + "name": "phone3", + "label": "Phone #3", + "type": "input", + "isPII": false + } +] \ No newline at end of file diff --git a/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/IssueCategorizationTab.json b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/IssueCategorizationTab.json new file mode 100644 index 0000000000..bf44bb3fde --- /dev/null +++ b/lambdas/packages/hrm-form-definitions/form-definitions/usnc/v1/tabbedForms/IssueCategorizationTab.json @@ -0,0 +1,301 @@ +{ + "Promise Resource Network": { + "maxSelections": 10, + "categories": { + "Emotional/Mental": { + "color": "#085f63", + "subcategories": [ + { + "label": "Anxiety, depression, low mood" + }, + { + "label": "Coping skills and self care" + }, + { + "label": "Emotional regulation (anger, frustration, mood swings)" + }, + { + "label": "Feeling emotionally unsupported" + }, + { + "label": "Grief, loss, sadness" + }, + { + "label": "Motivation, hope, and outlook" + }, + { + "label": "Seeking or accepting support" + }, + { + "label": "Stress, overwhelm, or burnout" + }, + { + "label": "Unspecified/Other - EM" + } + ] + }, + "Environmental": { + "color": "#14919b", + "subcategories": [ + { + "label": "Access to basic needs (food, utilities, transportation)" + }, + { + "label": "Community or neighborhood stressors" + }, + { + "label": "Connection to nature, pets, or animals" + }, + { + "label": "Environmental stressors or triggers" + }, + { + "label": "Housing or living situation" + }, + { + "label": "Justice or system involvement" + }, + { + "label": "Safety or stability concerns" + }, + { + "label": "Social or peer environment challenges" + }, + { + "label": "Weather or external disruptions" + }, + { + "label": "Unspecified/Other - E" + } + ] + }, + "Financial": { + "color": "#fac05e", + "subcategories": [ + { + "label": "Benefits or financial assistance (SSI, SSDI, Veterans, SNAP, etc.)" + }, + { + "label": "Budgeting, bills, or expenses" + }, + { + "label": "Employment-related financial strain" + }, + { + "label": "Financial stress or uncertainty " + }, + { + "label": "Financial gains or rewards" + }, + { + "label": "Food insecurity or essential needs" + }, + { + "label": "Income loss or unemployment" + }, + { + "label": "Planning for the future" + }, + { + "label": "Spending or shopping concerns" + }, + { + "label": "Unspecified/Other - F" + } + ] + }, + "Intellectual": { + "color": "#f79d8f", + "subcategories": [ + { + "label": "Creative outlets or hobbies" + }, + { + "label": "Feeling mentally 'stuck'" + }, + { + "label": "Foucs, concentration, or memory challenges" + }, + { + "label": "Learning, curiosity, or personal growth" + }, + { + "label": "Media consumption (TV, sports, current events)" + }, + { + "label": "Mental boredom or feeling 'stuck'" + }, + { + "label": "Problem solving or decision making" + }, + { + "label": "Research, reading, or mental engagemnet" + }, + { + "label": "School or academic concerns" + }, + { + "label": "Unspecified/Other - I" + } + ] + }, + "Occupational": { + "color": "#f0817c", + "subcategories": [ + { + "label": "Career goals or professional growth" + }, + { + "label": "Caregiving or unpaid labor responsibilities" + }, + { + "label": "Feeling undervalued or unrecognized" + }, + { + "label": "Job dissatisfaction or lack of fulfillment" + }, + { + "label": "Job seeking or unemployment" + }, + { + "label": "Sense of purpose or contribution" + }, + { + "label": "Work stress or burnout" + }, + { + "label": "Work-life balance challenges" + }, + { + "label": "Workplace conflict or dynamics" + }, + { + "label": "Unspecified/Other - O" + } + ] + }, + "Physical": { + "color": "#4d92c2", + "subcategories": [ + { + "label": "Exercise or physical activity" + }, + { + "label": "Fatigue or low energy" + }, + { + "label": "Health related stress or anxiety" + }, + { + "label": "Medication related concerns" + }, + { + "label": "Nutrition or eating concerns" + }, + { + "label": "Pain, illness, or chronic conditions" + }, + { + "label": "Physical discomfort or limitations" + }, + { + "label": "Physical workload or labor strain" + }, + { + "label": "Sleep concerns" + }, + { + "label": "Unspecified/Other - P" + } + ] + }, + "Social": { + "color": "#c99f7d", + "subcategories": [ + { + "label": "Boundary-setting with others or self" + }, + { + "label": "Communication challenges" + }, + { + "label": "Feeling disconnected or excluded" + }, + { + "label": "Lack of support" + }, + { + "label": "Loneliness or isolation" + }, + { + "label": "Relationship challenges (family or friends)" + }, + { + "label": "Romantic or intimate relationships" + }, + { + "label": "Sense of belonging or connection" + }, + { + "label": "Social engagement or events" + }, + { + "label": "Unspecified/Other - S" + } + ] + }, + "Spiritual": { + "color": "#db7a34", + "subcategories": [ + { + "label": "Existential concerns (mortality, freedom, responsibility, etc.)" + }, + { + "label": "Feeling ungrounded or disconnected" + }, + { + "label": "Identity or self-understanding" + }, + { + "label": "Life transitions or reflection" + }, + { + "label": "Living according to one's values and beliefs" + }, + { + "label": "Loss of hope or faith" + }, + { + "label": "Meaning, purpose, or direction" + }, + { + "label": "Religion/Spirituality practices (attending services/events, etc.)" + }, + { + "label": "Values or belief struggles" + }, + { + "label": "Unspecified/Other - SP" + } + ] + }, + "Does not apply": { + "color": "#e7c582", + "subcategories": [ + { + "label": "Academic issues" + }, + { + "label": "Problems at work" + }, + { + "label": "Teacher and school problems" + }, + { + "label": "Unspecified/Other - NA" + } + ] + } + } + } +} diff --git a/twilio-iac/helplines/templates/studio-flows/voice-blocking-no-op-hours-sd.tftpl b/twilio-iac/helplines/templates/studio-flows/voice-blocking-no-op-hours-sd.tftpl new file mode 100644 index 0000000000..cf51f9db91 --- /dev/null +++ b/twilio-iac/helplines/templates/studio-flows/voice-blocking-no-op-hours-sd.tftpl @@ -0,0 +1,215 @@ +${ + jsonencode({ + "description": "${flow_description}", + "states": [ + { + "name": "Trigger", + "type": "trigger", + "transitions": [ + { + "event": "incomingMessage" + }, + { + "next": "run_subflow_system_down", + "event": "incomingCall" + }, + { + "event": "incomingConversationMessage" + }, + { + "event": "incomingRequest" + }, + { + "event": "incomingParent" + } + ], + "properties": { + "offset": { + "x": 0, + "y": -10 + } + } + }, + + { + "name": "run_subflow_system_down", + "type": "run-subflow", + "transitions": [ + { + "next": "f_getProfileFlagsForIdentifier", + "event": "completed" + }, + { + "next": "f_getProfileFlagsForIdentifier", + "event": "failed" + } + ], + "properties": { + "flow_sid": "${system_down_studio_subflow_sid}", + "flow_revision": "LatestPublished", + "offset": { + "x": 110, + "y": -270 + }, + "parameters": [ + { + "type": "string", + "value": "true", + "key": "system_down" + } + ] + } + }, + { + "name": "f_getProfileFlagsForIdentifier", + "type": "make-http-request", + "transitions": [ + { + "next": "split_contact_routing", + "event": "success" + }, + { + "next": "play_message_voice_prequeue", + "event": "failed" + } + ], + "properties": { + "offset": { + "x": -350, + "y": -280 + }, + "method": "POST", + "content_type": "application/json;charset=utf-8", + "add_twilio_auth": false, + "body": "{ \"trigger\": {{trigger | to_json}}}", + "url": "${get_profile_flags_for_identifier_base_url}/getProfileFlagsForIdentifier" + } + }, + { + "name": "split_contact_routing", + "type": "split-based-on", + "transitions": [ + { + "next": "play_message_voice_prequeue", + "event": "noMatch" + }, + { + "next": "play_message_voice_blocked", + "event": "match", + "conditions": [ + { + "friendly_name": "If value contains blocked", + "arguments": [ + "{{widgets.f_getProfileFlagsForIdentifier.parsed.flags}}" + ], + "type": "contains", + "value": "blocked" + } + ] + } + ], + "properties": { + "input": "{{widgets.f_getProfileFlagsForIdentifier.parsed.flags}}", + "offset": { + "x": -690, + "y": -60 + } + } + }, + { + "name": "play_message_voice_blocked", + "type": "send-message", + "transitions": [ + { + "event": "sent" + }, + { + "event": "failed" + } + ], + "properties": { + "offset": { + "x": -640, + "y": 210 + }, + "service": "{{trigger.conversation.InstanceSid}}", + "channel": "{{trigger.conversation.ChannelSid}}", + "from": "${flow_vars.widget_from}", + "to": "{{contact.channel.address}}", + "body": "${flow_vars.play_message_voice_blocked}" + } + }, + { + "name": "send_to_queue", + "type": "send-to-flex", + "transitions": [ + { + "event": "callComplete" + }, + { + "name": "webhook_notify_failed_to_enqueue", + "event": "failedToEnqueue" + }, + { + "event": "callFailure" + } + ], + "properties": { + "offset": { + "x": 80, + "y": 460 + }, + "attributes": "${channel_attributes.default}", + "workflow": "${workflow_sids.master}", + "channel": "${task_channel_sids.voice}" + } + }, + { + "name": "play_message_voice_prequeue", + "type": "say-play", + "transitions": [ + { + "next": "send_to_queue", + "event": "audioComplete" + } + ], + "properties": { + "offset": { + "x": 80, + "y": 210 + }, + "loop": 1, + "say": "${channel_flow_vars.play_message_voice_prequeue}", + "language": "${channel_flow_vars.voice_ivr_language}" + } + }, + { + "name": "http_post_webhook_notify_failed_to_enqueue", + "type": "make-http-request", + "transitions": [ + { + "event": "success" + }, + { + "event": "failed" + } + ], + "properties": { + "offset": { + "x": 540, + "y": 1250 + }, + "method": "POST", + "content_type": "application/json;charset=utf-8", + "body": "{ \"text\": \"Issue detected [Failed to Enqueue] on ${short_helpline} ${short_environment} Flow SID: {{flow.flow_sid}} Execution SID: {{flow.sid}} \" }", + "url": "${webhook_url_studio_errors}" + } + } + + ], + "initial_state": "Trigger", + "flags": { + "allow_concurrent_calls": true + } +}) +} diff --git a/twilio-iac/helplines/usnc/common.hcl b/twilio-iac/helplines/usnc/common.hcl new file mode 100644 index 0000000000..1a44235699 --- /dev/null +++ b/twilio-iac/helplines/usnc/common.hcl @@ -0,0 +1,53 @@ +locals { + defaults_config_hcl = read_terragrunt_config(find_in_parent_folders("defaults.hcl")) + defaults_config = local.defaults_config_hcl.locals + config = merge(local.defaults_config, local.local_config) + + + + local_config = { + helpline = "Promise Resource Network" + task_language = "en-US" + + workflows = { + master : { + friendly_name = "Master Workflow" + templatefile = "/app/twilio-iac/helplines/templates/workflows/master.tftpl" + }, + queue_transfers : { + friendly_name = "Queue Transfers Workflow" + templatefile = "/app/twilio-iac/helplines/templates/workflows/queue-transfers.tftpl" + }, + survey : { + friendly_name = "Survey Workflow" + templatefile = "/app/twilio-iac/helplines/templates/workflows/lex.tftpl" + } + } + + task_queues = { + master : { + "target_workers" = "1==1", + "friendly_name" = "Warm Line" + }, + survey : { + "target_workers" = "1==0", + "friendly_name" = "Survey" + }, + e2e_test : { + "target_workers" = "email=='aselo-alerts+production@techmatters.org'", + "friendly_name" = "E2E Test Queue" + }, + } + + task_channels = { + default : "Default" + chat : "Programmable Chat" + voice : "Voice" + sms : "SMS" + video : "Video" + email : "Email" + survey : "Survey" + } + + } +} \ No newline at end of file diff --git a/twilio-iac/helplines/usnc/configs/service-configuration/common.json b/twilio-iac/helplines/usnc/configs/service-configuration/common.json new file mode 100644 index 0000000000..12af3f8b4f --- /dev/null +++ b/twilio-iac/helplines/usnc/configs/service-configuration/common.json @@ -0,0 +1,24 @@ +{ + "attributes": { + "contacts_waiting_channels": [ + "voice", + "web", + "sms" + ], + "enforceZeroTranscriptRetention": false, + "enableConferencing": true, + "enableUnmaskingCalls": false, + "hideAddToNewCaseButton": false, + "enableExternalRecordings": false, + "feature_flags": { + "use_prepopulate_mappings": true, + "enable_hang_up_by_hrm_saving": true, + "enable_custom_links" : false + }, + "definitionVersion": "usnc-v1", + "external_recordings_enabled": false, + "helplineLanguage": "en-US", + "permissionConfig": "usnc" + } + +} \ No newline at end of file diff --git a/twilio-iac/helplines/usnc/configs/service-configuration/staging.json b/twilio-iac/helplines/usnc/configs/service-configuration/staging.json new file mode 100644 index 0000000000..e34177ae25 --- /dev/null +++ b/twilio-iac/helplines/usnc/configs/service-configuration/staging.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "system_down" : false, + "form_definitions_base_url": "https://assets-staging.tl.techmatters.org/form-definitions/", + "resources_base_url": "", + "logo_url" : "https://aselo-logo.s3.amazonaws.com/200+transparent+background+no+TM+staging.png", + "feature_flags": { + "use_twilio_lambda_adjust_capacity": false, + "use_twilio_lambda_for_conference_functions": false, + "use_twilio_lambda_for_conversation_duration": true, + "use_twilio_lambda_for_iwf_reporting": true, + "use_twilio_lambda_for_offline_contact_tasks": true, + "use_twilio_lambda_janitor": false, + "use_twilio_lambda_transfers": false + } + } +} \ No newline at end of file diff --git a/twilio-iac/helplines/usnc/staging.hcl b/twilio-iac/helplines/usnc/staging.hcl new file mode 100644 index 0000000000..4840207084 --- /dev/null +++ b/twilio-iac/helplines/usnc/staging.hcl @@ -0,0 +1,54 @@ +locals { + common_config_hcl = read_terragrunt_config("common.hcl") + common_config = local.common_config_hcl.locals.config + config = merge(local.common_config, local.local_config) + + local_config = { + custom_task_routing_filter_expression = "channelType IN ['web','voice','sms'] OR isContactlessTask == true" + permission_config = "usnc" + + #Studio flow + flow_vars = { + widget_from = "Promise Resource Network" + chat_blocked_message = "Sorry, you're not able to contact Promise Resource Network from this device or account" + error_message = "There has been an error with your message, please try writing us again.", + play_message_voice_prequeue = "Thank you for calling the Promise Resource Network Warm Line. We provide compassionate, peer-based support to individuals across North Carolina. Important notice: Beginning May 1, our Warm Line can be reached by dialing 1-855-733-7762. The number 1-833-390-7728 will no longer be available after that date. Please remain on the line while you wait. If you hang up, you may lose your place in line. A peer listener will be with you as soon as possible to offer understanding and support based on lived experience." + play_message_voice_blocked = "Due to repeated use of the service in ways that did not align with Warm Line participation guidelines, access to the Promise Resource Network NC Warm Line has been restricted for this number/account." + } + + channels = { + webchat : { + channel_type = "web" + contact_identity = "" + templatefile = "/app/twilio-iac/helplines/templates/studio-flows/messaging-blocking-lambda.tftpl" + channel_flow_vars = {} + chatbot_unique_names = [] + }, + voice : { + channel_type = "voice" + contact_identity = "" + templatefile = "/app/twilio-iac/helplines/templates/studio-flows/voice-blocking-no-op-hours-sd.tftpl" + channel_flow_vars = { + play_message_voice_prequeue = "Thank you for calling the Promise Resource Network Warm Line. We provide compassionate, peer-based support to individuals across North Carolina. Important notice: Beginning May 1, our Warm Line can be reached by dialing 1-855-733-7762. The number 1-833-390-7728 will no longer be available after that date. Please remain on the line while you wait. If you hang up, you may lose your place in line. A peer listener will be with you as soon as possible to offer understanding and support based on lived experience." + play_message_voice_blocked = "Due to repeated use of the service in ways that did not align with Warm Line participation guidelines, access to the Promise Resource Network NC Warm Line has been restricted for this number/account." + voice_ivr_language = "en-US" + } + chatbot_unique_names = [] + }, + } + system_down_templatefile = "/app/twilio-iac/helplines/templates/studio-flows/system-down.tftpl" + enable_system_down = true + system_down_flow_vars = { + is_system_down = "false" + message = "We're sorry — we're experiencing technical difficulties and may not be able to respond right now. Your message is important and we hope to reconnect soon. If you'd like support in the meantime, you can call or text 988, or call 911 if you are in immediate danger. Thank you for your patience." + voice_message = "Hello. You have reached the North Carolina Warm Line. Unfortunately, we are experiencing technical difficulties and cannot take your call right now. We're sorry for the inconvenience. If you would like immediate support, you can call or text 988 to reach the Suicide & Crisis Lifeline, or call 911 if you are in immediate danger. Please try again later. Thank you for your understanding." + send_studio_message_function_sid = "ZHda5f23152bb1a843c303049674007b87" + call_action = "message" + forward_number = "+123" + recording_url = "https://.mp3" + } + + get_profile_flags_for_identifier_base_url = "https://hrm-staging.tl.techmatters.org/lambda/twilio/account-scoped" + + } +} \ No newline at end of file diff --git a/webchat/configurations/usnc-staging.ts b/webchat/configurations/usnc-staging.ts new file mode 100644 index 0000000000..e60ef2805e --- /dev/null +++ b/webchat/configurations/usnc-staging.ts @@ -0,0 +1,333 @@ +/** + * Copyright (C) 2021-2023 Technology Matters + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see https://www.gnu.org/licenses/. + */ + +import { Translations, Configuration, MapHelplineLanguage, ContactType } from '../types'; +import { PreEngagementFormDefinition } from '../src/pre-engagement-form'; + +const accountSid = "ACaa9a5ca4395d1fdeb394c5c176bc5b40"; +const flexFlowSid = "FOe92d0154e36ef683c6569e03e6515d99"; +const defaultLanguage = 'en-US'; +const captureIp = true; +const checkOpenHours = false; +const contactType: ContactType = 'ip'; + +const closedHours: PreEngagementFormDefinition = { + description: + 'Closed offices message', + fields: [], +}; + +const holidayHours: PreEngagementFormDefinition = { + description: + 'Closed holidays message', + fields: [], +}; + +const preEngagementConfig: PreEngagementFormDefinition = { + description: "PreEngagementConfigDescription", + submitLabel: "LetsChat", + fields: [ + { + type: "select", + name: "race", + label: "Which race do you identify with?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "White", + label: "White", + }, + { + value: "Black/African American", + label: "Black/African American", + }, + { + value: "Asian", + label: "Asian", + }, + { + value: "American Indian", + label: "American Indian", + }, + { + value: "Native Hawaiian or Other Pacific Islander", + label: "Native Hawaiian or Other Pacific Islander", + }, + { + value: "Two or More Races", + label: "Two or More Races", + }, + { + value: "Other", + label: "Other", + }, + ], + required: true, + }, + { + type: "select", + name: "ethnicity", + label: "What is your ethnicity?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "Value", + label: "Value", + }, + ], + required: true, + }, + { + type: "select", + name: "ageRange", + label: "Which age range are you in?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "18-24", + label: "18-24", + }, + { + value: "25-34", + label: "25-34", + }, + { + value: "35-44", + label: "35-44", + }, + { + value: "45-54", + label: "45-54", + }, + { + value: "55+", + label: "55+", + }, + ], + required: true, + }, + { + type: "select", + name: "gender", + label: "What is your gender?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "Male", + label: "Male", + }, + { + value: "Female", + label: "Female", + }, + { + value: "Non-binary", + label: "Non-binary", + }, + { + value: "Two-Spirit", + label: "Two-Spirit", + }, + { + value: "TransMasc", + label: "TransMasc", + }, + { + value: "TransFemme", + label: "TransFemme", + }, + { + value: "Other", + label: "Other", + }, + ], + required: true, + }, + { + type: "select", + name: "pronouns", + label: "What pronouns do you use?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "He/Him/His", + label: "He/Him/His", + }, + { + value: "She/Her/Hers", + label: "She/Her/Hers", + }, + { + value: "They/Them/Theirs", + label: "They/Them/Theirs", + }, + { + value: "Other", + label: "Other", + }, + ], + required: true, + }, + { + type: "select", + name: "militaryStatus", + label: "What is your military status?", + defaultValue: "", + options: [ + { + value: "", + label: "", + }, + { + value: "Active Duty", + label: "Active Duty", + }, + { + value: "Retired", + label: "Retired", + }, + { + value: "Veteran (non-career)", + label: "Veteran (non-career)", + }, + { + value: "Non-Military", + label: "Non-Military", + }, + { + value: "National Guard/Reserves", + label: "National Guard/Reserves", + }, + { + value: "Military Partner", + label: "Military Partner", + }, + { + value: "Military Family Member", + label: "Military Family Member", + }, + ], + required: true, + }, + { + type: "checkbox", + name: "988Referral", + label: "I was referred here by 988", + required: true, + }, + { + type: "checkbox", + name: "termsAndConditions", + label: 'I\'ve read and accept the Terms and Conditions', + required: { + value: true, + message: "", + }, + }, + ], +}; + +const translations: Translations = { + 'en-US': { + WelcomeMessage: 'Welcome to PRN Warm Line', + PreEngagementConfigDescription : 'Welcome! Thank you for reaching out. To best serve you, please answer the questions below before we connect you to a Peer Supporter.', + MessageCanvasTrayContent: '', + MessageInputDisabledReasonHold: + "Thank you very much for this information. We'll transfer you now. Please hold for a supporter.", + AutoFirstMessage: 'Incoming webchat contact from', + TypingIndicator: 'Supporter is typing', + StartChat: 'Start Chat!', + MessageCanvasTrayButton: 'Start New Chat', + Nickname: 'Nickname', + }, + 'Other': { + WelcomeMessage: 'Welcome to PRN Warm Line', + PreEngagementConfigDescription : 'Welcome! Thank you for reaching out. To best serve you, please answer the questions below before we connect you to a Peer Supporter.', + MessageCanvasTrayContent: '', + MessageInputDisabledReasonHold: + "Thank you very much for this information. We'll transfer you now. Please hold for a supporter.", + AutoFirstMessage: 'Incoming webchat contact from', + TypingIndicator: 'Supporter is typing', + StartChat: 'Start Chat!', + MessageCanvasTrayButton: 'Start New Chat', + Nickname: 'Nickname', + }, +}; + + + +const memberDisplayOptions = { + yourDefaultName: "You", + yourFriendlyNameOverride: false, + theirFriendlyNameOverride: false, + theirDefaultName: "supporter", +}; + +const mapHelplineLanguage: MapHelplineLanguage = (helpline) => { + switch (helpline) { + case "Børns Vilkår (DK)": + return "da"; + case "BRIS (SE)": + return "sv"; + case "Child Helpline Cambodia (KH)": + return "km"; + case "Jordan River 110 (JO)": + return "ar"; + case "Palo Alto Testing (Text)": + return "en-US"; + case "SMILE OF THE CHILD (GR)": + return "el"; + case "Telefono Azzurro (IT)": + return "it"; + default: + return defaultLanguage; + } +}; + +export const config: Configuration = { + accountSid, + flexFlowSid, + defaultLanguage, + translations, + preEngagementConfig, + mapHelplineLanguage, + memberDisplayOptions, + captureIp, + contactType, + twilioServicesUrl: new URL( + `https://hrm-staging.tl.techmatters.org/lambda/twilio/account-scoped/${accountSid}`, + ), +};