@gusto/embedded-react-sdk 0.46.0 → 0.46.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/dist/components/Common/DataView/DataCards/DataCards.d.ts +2 -1
- package/dist/components/Common/DataView/DataCards/DataCards.js +14 -13
- package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
- package/dist/components/Common/DataView/DataTable/DataTable.d.ts +2 -1
- package/dist/components/Common/DataView/DataTable/DataTable.js +51 -50
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/DataView/DataView.d.ts +1 -0
- package/dist/components/Common/DataView/DataView.js.map +1 -1
- package/dist/components/Common/DataView/useDataView.d.ts +8 -1
- package/dist/components/Common/DataView/useDataView.js +20 -17
- package/dist/components/Common/DataView/useDataView.js.map +1 -1
- package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.d.ts +9 -0
- package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js +76 -0
- package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.js.map +1 -0
- package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js +8 -0
- package/dist/components/Employee/Compensation/management/AddAnotherJob/AddAnotherJob.module.scss.js.map +1 -0
- package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +57 -202
- package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.d.ts +25 -0
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +81 -0
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -0
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js +8 -0
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.module.scss.js.map +1 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +18 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +171 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -0
- package/dist/components/Employee/Compensation/management/index.d.ts +3 -0
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +6 -1
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +67 -209
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +18 -0
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +169 -0
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -0
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +16 -0
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +36 -30
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +213 -191
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.js +65 -53
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +3 -3
- package/dist/components/Employee/Dashboard/DashboardComponents.js +138 -101
- package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
- package/dist/components/Employee/Dashboard/JobAndPayView.js +340 -320
- package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
- package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js +5 -3
- package/dist/components/Employee/Dashboard/JobAndPayView.module.scss.js.map +1 -1
- package/dist/components/Employee/Dashboard/dashboardStateMachine.js +147 -148
- package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
- package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +6 -0
- package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +13 -12
- package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
- package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +2 -2
- package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +34 -35
- package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +37 -40
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +1 -2
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +64 -71
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +2 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js +25 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js.map +1 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +13 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js +37 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js.map +1 -0
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.d.ts +6 -0
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +69 -0
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -0
- package/dist/components/Employee/EmployeeListFlow/index.d.ts +3 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddress.js +15 -12
- package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +2 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +86 -83
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddress.js +14 -11
- package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +2 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +92 -89
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
- package/dist/components/Employee/exports/employeeManagement.d.ts +2 -0
- package/dist/components/Employee/exports/employeeManagement.js +18 -16
- package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
- package/dist/components/Employee/index.d.ts +2 -0
- package/dist/components/Employee/index.js +32 -30
- package/dist/components/Employee/index.js.map +1 -1
- package/dist/components/Flow/FlowHeader.js +34 -31
- package/dist/components/Flow/FlowHeader.js.map +1 -1
- package/dist/components/Flow/useFlow.d.ts +12 -0
- package/dist/components/Flow/useFlow.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyList.js +92 -69
- package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +23 -23
- package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +1 -1
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +73 -56
- package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +58 -58
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +91 -87
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +91 -124
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +72 -87
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +1 -6
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +160 -220
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +7 -3
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +77 -54
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.test.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +12 -11
- package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +177 -147
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +38 -36
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +2 -0
- package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +10 -10
- package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js +17 -15
- package/dist/i18n/en/Company.TimeOff.TimeOffPolicies.json.js.map +1 -1
- package/dist/i18n/en/Company.TimeOff.TimeOffPolicyDetails.json.js +9 -9
- package/dist/i18n/en/Employee.Compensation.json.js +64 -56
- package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
- package/dist/i18n/en/Employee.Dashboard.json.js +26 -24
- package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
- package/dist/i18n/en/Employee.HomeAddress.Management.json.js +12 -10
- package/dist/i18n/en/Employee.HomeAddress.Management.json.js.map +1 -1
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +32 -30
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
- package/dist/i18n/en/Employee.WorkAddress.Management.json.js +16 -14
- package/dist/i18n/en/Employee.WorkAddress.Management.json.js.map +1 -1
- package/dist/i18n/en/common.json.d.ts +14 -0
- package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +33 -32
- package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
- package/dist/partner-hook-utils/types.d.ts +4 -0
- package/dist/shared/constants.d.ts +2 -0
- package/dist/shared/constants.js +13 -12
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +26 -12
- package/docs/reference/endpoint-inventory.json +24 -8
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkAddress.js","sources":["../../../../../src/components/Employee/WorkAddress/management/WorkAddress.tsx"],"sourcesContent":["import type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { WorkAddressView } from './WorkAddressView'\nimport {\n isUseWorkAddressManagementSuccess,\n useWorkAddressManagement,\n} from './useWorkAddressManagement'\nimport {\n BaseBoundaries,\n BaseLayout,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport type { HookSubmitResult } from '@/partner-hook-utils/types'\nimport { componentEvents } from '@/shared/constants'\n\nexport interface WorkAddressProps extends CommonComponentInterface<'Employee.WorkAddress.Management'> {\n employeeId: string\n onEvent: BaseComponentInterface['onEvent']\n}\n\nfunction WorkAddressRoot({ employeeId, dictionary, onEvent }: WorkAddressProps) {\n useI18n(['Employee.WorkAddress.Management'])\n useComponentDictionary('Employee.WorkAddress.Management', dictionary)\n\n const management = useWorkAddressManagement({ employeeId, onEvent })\n\n if (management.isLoading) {\n return <BaseLayout isLoading error={management.errorHandling.errors} />\n }\n\n if (!isUseWorkAddressManagementSuccess(management)) {\n return <BaseLayout error={management.errorHandling.errors} />\n }\n\n const handleWorkAddressSaved = (result: HookSubmitResult<EmployeeWorkAddress>) => {\n if (result.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, result.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, result.data)\n }\n }\n\n return (\n <BaseLayout error={management.errorHandling.errors}>\n <WorkAddressView\n editWorkAddressForm={management.data.editWorkAddressForm}\n changeWorkAddressForm={management.data.changeWorkAddressForm}\n workAddresses={management.data.employeeWorkAddresses}\n editTargetUuid={management.data.editTargetUuid}\n onEditTargetUuidChange={management.actions.setEditTargetUuid}\n employeeDisplayName={management.data.employeeDisplayName}\n onConfirmDelete={management.actions.confirmDeleteWorkAddress}\n onWorkAddressSaved={handleWorkAddressSaved}\n isDeletePending={management.status.isDeletePending}\n />\n </BaseLayout>\n )\n}\n\nexport function WorkAddress({\n FallbackComponent,\n ...props\n}: WorkAddressProps & BaseComponentInterface) {\n return (\n <BaseBoundaries\n componentName=\"Employee.WorkAddress.Management\"\n FallbackComponent={FallbackComponent}\n >\n <WorkAddressRoot {...props} />\n </BaseBoundaries>\n )\n}\n"],"names":["WorkAddressRoot","employeeId","dictionary","onEvent","useI18n","useComponentDictionary","management","useWorkAddressManagement","BaseLayout","isUseWorkAddressManagementSuccess","jsx","handleWorkAddressSaved","result","componentEvents","WorkAddressView","WorkAddress","FallbackComponent","props","BaseBoundaries"],"mappings":";;;;;;AAqBA,SAASA,EAAgB,EAAE,YAAAC,GAAY,YAAAC,GAAY,SAAAC,KAA6B;AAC9E,EAAAC,EAAQ,CAAC,iCAAiC,CAAC,GAC3CC,EAAuB,mCAAmCH,CAAU;AAEpE,QAAMI,IAAaC,EAAyB,EAAE,YAAAN,GAAY,SAAAE,GAAS;AAEnE,MAAIG,EAAW;AACb,6BAAQE,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAW,cAAc,QAAQ;AAGvE,MAAI,CAACG,EAAkCH,CAAU;AAC/C,WAAO,gBAAAI,EAACF,GAAA,EAAW,OAAOF,EAAW,cAAc,QAAQ;AAG7D,QAAMK,IAAyB,CAACC,MAAkD;AAChF,IAAIA,EAAO,SAAS,WAClBT,EAAQU,EAAgB,+BAA+BD,EAAO,IAAI,IAElET,EAAQU,EAAgB,+BAA+BD,EAAO,IAAI;AAAA,EAEtE;AAEA,SACE,gBAAAF,EAACF,GAAA,EAAW,OAAOF,EAAW,cAAc,QAC1C,UAAA,gBAAAI;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,qBAAqBR,EAAW,KAAK;AAAA,MACrC,uBAAuBA,EAAW,KAAK;AAAA,MACvC,eAAeA,EAAW,KAAK;AAAA,MAC/B,gBAAgBA,EAAW,KAAK;AAAA,MAChC,wBAAwBA,EAAW,QAAQ;AAAA,MAC3C,qBAAqBA,EAAW,KAAK;AAAA,MACrC,iBAAiBA,EAAW,QAAQ;AAAA,MACpC,oBAAoBK;AAAA,MACpB,
|
|
1
|
+
{"version":3,"file":"WorkAddress.js","sources":["../../../../../src/components/Employee/WorkAddress/management/WorkAddress.tsx"],"sourcesContent":["import type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { WorkAddressView } from './WorkAddressView'\nimport {\n isUseWorkAddressManagementSuccess,\n useWorkAddressManagement,\n} from './useWorkAddressManagement'\nimport {\n BaseBoundaries,\n BaseLayout,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport type { HookSubmitResult } from '@/partner-hook-utils/types'\nimport { componentEvents } from '@/shared/constants'\n\nexport interface WorkAddressProps extends CommonComponentInterface<'Employee.WorkAddress.Management'> {\n employeeId: string\n onEvent: BaseComponentInterface['onEvent']\n}\n\nfunction WorkAddressRoot({ employeeId, dictionary, onEvent }: WorkAddressProps) {\n useI18n(['Employee.WorkAddress.Management'])\n useComponentDictionary('Employee.WorkAddress.Management', dictionary)\n\n const management = useWorkAddressManagement({ employeeId, onEvent })\n\n if (management.isLoading) {\n return <BaseLayout isLoading error={management.errorHandling.errors} />\n }\n\n if (!isUseWorkAddressManagementSuccess(management)) {\n return <BaseLayout error={management.errorHandling.errors} />\n }\n\n const handleWorkAddressSaved = (result: HookSubmitResult<EmployeeWorkAddress>) => {\n if (result.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, result.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, result.data)\n }\n }\n\n return (\n <BaseLayout error={management.errorHandling.errors}>\n <WorkAddressView\n editWorkAddressForm={management.data.editWorkAddressForm}\n changeWorkAddressForm={management.data.changeWorkAddressForm}\n workAddresses={management.data.employeeWorkAddresses}\n editTargetUuid={management.data.editTargetUuid}\n onEditTargetUuidChange={management.actions.setEditTargetUuid}\n employeeDisplayName={management.data.employeeDisplayName}\n onConfirmDelete={management.actions.confirmDeleteWorkAddress}\n onWorkAddressSaved={handleWorkAddressSaved}\n onBack={() => {\n onEvent(componentEvents.CANCEL)\n }}\n isDeletePending={management.status.isDeletePending}\n />\n </BaseLayout>\n )\n}\n\nexport function WorkAddress({\n FallbackComponent,\n ...props\n}: WorkAddressProps & BaseComponentInterface) {\n return (\n <BaseBoundaries\n componentName=\"Employee.WorkAddress.Management\"\n FallbackComponent={FallbackComponent}\n >\n <WorkAddressRoot {...props} />\n </BaseBoundaries>\n )\n}\n"],"names":["WorkAddressRoot","employeeId","dictionary","onEvent","useI18n","useComponentDictionary","management","useWorkAddressManagement","BaseLayout","isUseWorkAddressManagementSuccess","jsx","handleWorkAddressSaved","result","componentEvents","WorkAddressView","WorkAddress","FallbackComponent","props","BaseBoundaries"],"mappings":";;;;;;AAqBA,SAASA,EAAgB,EAAE,YAAAC,GAAY,YAAAC,GAAY,SAAAC,KAA6B;AAC9E,EAAAC,EAAQ,CAAC,iCAAiC,CAAC,GAC3CC,EAAuB,mCAAmCH,CAAU;AAEpE,QAAMI,IAAaC,EAAyB,EAAE,YAAAN,GAAY,SAAAE,GAAS;AAEnE,MAAIG,EAAW;AACb,6BAAQE,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAW,cAAc,QAAQ;AAGvE,MAAI,CAACG,EAAkCH,CAAU;AAC/C,WAAO,gBAAAI,EAACF,GAAA,EAAW,OAAOF,EAAW,cAAc,QAAQ;AAG7D,QAAMK,IAAyB,CAACC,MAAkD;AAChF,IAAIA,EAAO,SAAS,WAClBT,EAAQU,EAAgB,+BAA+BD,EAAO,IAAI,IAElET,EAAQU,EAAgB,+BAA+BD,EAAO,IAAI;AAAA,EAEtE;AAEA,SACE,gBAAAF,EAACF,GAAA,EAAW,OAAOF,EAAW,cAAc,QAC1C,UAAA,gBAAAI;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,qBAAqBR,EAAW,KAAK;AAAA,MACrC,uBAAuBA,EAAW,KAAK;AAAA,MACvC,eAAeA,EAAW,KAAK;AAAA,MAC/B,gBAAgBA,EAAW,KAAK;AAAA,MAChC,wBAAwBA,EAAW,QAAQ;AAAA,MAC3C,qBAAqBA,EAAW,KAAK;AAAA,MACrC,iBAAiBA,EAAW,QAAQ;AAAA,MACpC,oBAAoBK;AAAA,MACpB,QAAQ,MAAM;AACZ,QAAAR,EAAQU,EAAgB,MAAM;AAAA,MAChC;AAAA,MACA,iBAAiBP,EAAW,OAAO;AAAA,IAAA;AAAA,EAAA,GAEvC;AAEJ;AAEO,SAASS,EAAY;AAAA,EAC1B,mBAAAC;AAAA,EACA,GAAGC;AACL,GAA8C;AAC5C,SACE,gBAAAP;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,eAAc;AAAA,MACd,mBAAAF;AAAA,MAEA,UAAA,gBAAAN,EAACV,GAAA,EAAiB,GAAGiB,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGlC;"}
|
|
@@ -11,6 +11,7 @@ export interface WorkAddressViewProps {
|
|
|
11
11
|
employeeDisplayName: string;
|
|
12
12
|
onConfirmDelete: (workAddressUuid: string) => Promise<boolean>;
|
|
13
13
|
onWorkAddressSaved: (result: HookSubmitResult<EmployeeWorkAddress>) => void;
|
|
14
|
+
onBack: () => void;
|
|
14
15
|
isDeletePending?: boolean;
|
|
15
16
|
}
|
|
16
|
-
export declare function WorkAddressView({ editWorkAddressForm, changeWorkAddressForm, workAddresses, editTargetUuid, onEditTargetUuidChange, employeeDisplayName, onConfirmDelete, onWorkAddressSaved, isDeletePending, }: WorkAddressViewProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function WorkAddressView({ editWorkAddressForm, changeWorkAddressForm, workAddresses, editTargetUuid, onEditTargetUuidChange, employeeDisplayName, onConfirmDelete, onWorkAddressSaved, onBack, isDeletePending, }: WorkAddressViewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { jsxs as r, jsx as e, Fragment as K } from "react/jsx-runtime";
|
|
2
|
-
import { useState as F, useRef as
|
|
3
|
-
import { useTranslation as
|
|
4
|
-
import { getPendingFutureWorkAddress as
|
|
2
|
+
import { useState as F, useRef as fe, useLayoutEffect as pe, useMemo as v } from "react";
|
|
3
|
+
import { useTranslation as he, Trans as ge } from "react-i18next";
|
|
4
|
+
import { getPendingFutureWorkAddress as ve, formatPendingWorkAddressLine as Q } from "./getPendingFutureWorkAddress.js";
|
|
5
5
|
import De from "../../../../assets/icons/list.svg.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { Flex as
|
|
6
|
+
import ye from "../../../../assets/icons/pencil.svg.js";
|
|
7
|
+
import xe from "../../../../assets/icons/trashcan.svg.js";
|
|
8
|
+
import { Flex as c, FlexItem as Ce } from "../../../Common/Flex/Flex.js";
|
|
9
9
|
import { Grid as Y } from "../../../Common/Grid/Grid.js";
|
|
10
|
-
import { EmptyData as
|
|
10
|
+
import { EmptyData as be } from "../../../Common/EmptyData/EmptyData.js";
|
|
11
|
+
import { ActionsLayout as Me } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
11
12
|
import { LocationField as z, EffectiveDateField as G } from "../../Profile/shared/useWorkAddressForm/fields.js";
|
|
12
13
|
import { WorkAddressErrorCodes as Z } from "../../Profile/shared/useWorkAddressForm/workAddressSchema.js";
|
|
13
14
|
import { SDKFormProvider as J } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
|
|
14
|
-
import { useComponentContext as
|
|
15
|
-
import { formatDateLongWithYear as S, normalizeToDate as
|
|
16
|
-
import { getStreet as
|
|
17
|
-
import { HamburgerMenu as
|
|
18
|
-
import { useDataView as
|
|
19
|
-
import { DataView as
|
|
15
|
+
import { useComponentContext as Le } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
|
+
import { formatDateLongWithYear as S, normalizeToDate as Te, addDays as Se } from "../../../../helpers/dateFormatting.js";
|
|
17
|
+
import { getStreet as B, getCityStateZip as R } from "../../../../helpers/formattedStrings.js";
|
|
18
|
+
import { HamburgerMenu as Pe } from "../../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
19
|
+
import { useDataView as ke } from "../../../Common/DataView/useDataView.js";
|
|
20
|
+
import { DataView as Ae } from "../../../Common/DataView/DataView.js";
|
|
20
21
|
function _(s, u) {
|
|
21
22
|
if (!(!s.locationUuid || !u?.length))
|
|
22
23
|
return u.find((o) => o.uuid === s.locationUuid);
|
|
@@ -24,13 +25,13 @@ function _(s, u) {
|
|
|
24
25
|
function X(s, u) {
|
|
25
26
|
const o = _(s, u);
|
|
26
27
|
if (o) {
|
|
27
|
-
const y =
|
|
28
|
+
const y = B(o).trim(), P = R(o).trim();
|
|
28
29
|
return { primary: y, secondary: P };
|
|
29
30
|
}
|
|
30
|
-
const H =
|
|
31
|
+
const H = B(s).trim(), f = R(s).trim();
|
|
31
32
|
return { primary: H, secondary: f };
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
+
function Je({
|
|
34
35
|
editWorkAddressForm: s,
|
|
35
36
|
changeWorkAddressForm: u,
|
|
36
37
|
workAddresses: o,
|
|
@@ -39,10 +40,11 @@ function ze({
|
|
|
39
40
|
employeeDisplayName: y,
|
|
40
41
|
onConfirmDelete: P,
|
|
41
42
|
onWorkAddressSaved: I,
|
|
42
|
-
|
|
43
|
+
onBack: N,
|
|
44
|
+
isDeletePending: ee = !1
|
|
43
45
|
}) {
|
|
44
|
-
const { t } =
|
|
45
|
-
|
|
46
|
+
const { t } = he("Employee.WorkAddress.Management"), i = Le(), [l, x] = F(null), [m, C] = F(null), k = fe(null), [b, V] = F(void 0);
|
|
47
|
+
pe(() => {
|
|
46
48
|
if (!l) {
|
|
47
49
|
V(void 0);
|
|
48
50
|
return;
|
|
@@ -58,45 +60,45 @@ function ze({
|
|
|
58
60
|
}
|
|
59
61
|
}, [l]);
|
|
60
62
|
const {
|
|
61
|
-
data: { workAddress:
|
|
63
|
+
data: { workAddress: d, companyLocations: p },
|
|
62
64
|
status: j,
|
|
63
|
-
form: { Fields:
|
|
64
|
-
} = s,
|
|
65
|
+
form: { Fields: te }
|
|
66
|
+
} = s, M = te.EffectiveDate != null, { status: O } = u, U = {
|
|
65
67
|
[Z.REQUIRED]: t("form.locationRequired")
|
|
66
68
|
}, W = {
|
|
67
69
|
[Z.REQUIRED]: t("form.startDateRequired")
|
|
68
|
-
},
|
|
69
|
-
() =>
|
|
70
|
+
}, L = v(
|
|
71
|
+
() => ve(o),
|
|
70
72
|
[o]
|
|
71
|
-
), $ =
|
|
73
|
+
), $ = v(() => {
|
|
72
74
|
if (!(!m || !o))
|
|
73
75
|
return o.find((n) => n.uuid === m);
|
|
74
|
-
}, [m, o]),
|
|
76
|
+
}, [m, o]), ie = v(() => {
|
|
75
77
|
const n = y.trim();
|
|
76
78
|
return n ? `${n}'s` : t("changePendingPossessiveFallback");
|
|
77
|
-
}, [y, t]),
|
|
79
|
+
}, [y, t]), D = v(() => [...o ?? []].sort((n, a) => {
|
|
78
80
|
const h = n.effectiveDate ?? "", g = a.effectiveDate ?? "";
|
|
79
81
|
return !h && !g ? 0 : h ? g ? h.localeCompare(g) : -1 : 1;
|
|
80
|
-
}), [o]), q =
|
|
81
|
-
() =>
|
|
82
|
-
[
|
|
83
|
-
),
|
|
84
|
-
const a =
|
|
85
|
-
if (a === -1 || a >=
|
|
86
|
-
const h =
|
|
82
|
+
}), [o]), q = v(
|
|
83
|
+
() => D.filter((n) => n.active !== !0),
|
|
84
|
+
[D]
|
|
85
|
+
), ne = v(() => [...q].reverse(), [q]), re = (n) => {
|
|
86
|
+
const a = D.findIndex((me) => me.uuid === n.uuid);
|
|
87
|
+
if (a === -1 || a >= D.length - 1) return "—";
|
|
88
|
+
const h = D[a + 1]?.effectiveDate;
|
|
87
89
|
if (!h) return "—";
|
|
88
|
-
const g =
|
|
90
|
+
const g = Te(h);
|
|
89
91
|
if (!g) return "—";
|
|
90
|
-
const E =
|
|
91
|
-
return S(`${
|
|
92
|
-
},
|
|
93
|
-
data:
|
|
92
|
+
const E = Se(g, -1), ce = E.getFullYear(), de = String(E.getMonth() + 1).padStart(2, "0"), ue = String(E.getDate()).padStart(2, "0");
|
|
93
|
+
return S(`${ce}-${de}-${ue}`);
|
|
94
|
+
}, oe = ke({
|
|
95
|
+
data: ne,
|
|
94
96
|
columns: [
|
|
95
97
|
{
|
|
96
98
|
title: t("columns.location"),
|
|
97
99
|
render: (n) => {
|
|
98
100
|
const a = X(n, p);
|
|
99
|
-
return /* @__PURE__ */ r(
|
|
101
|
+
return /* @__PURE__ */ r(c, { flexDirection: "column", gap: 0, children: [
|
|
100
102
|
/* @__PURE__ */ e(i.Text, { weight: "medium", children: a.primary }),
|
|
101
103
|
/* @__PURE__ */ e(i.Text, { variant: "supporting", children: a.secondary })
|
|
102
104
|
] });
|
|
@@ -108,11 +110,11 @@ function ze({
|
|
|
108
110
|
},
|
|
109
111
|
{
|
|
110
112
|
title: t("columns.endDate"),
|
|
111
|
-
render: (n) =>
|
|
113
|
+
render: (n) => re(n)
|
|
112
114
|
}
|
|
113
115
|
],
|
|
114
116
|
itemMenu: (n) => /* @__PURE__ */ e(
|
|
115
|
-
|
|
117
|
+
Pe,
|
|
116
118
|
{
|
|
117
119
|
triggerLabel: t("rowMenuAriaLabel"),
|
|
118
120
|
items: [
|
|
@@ -121,48 +123,48 @@ function ze({
|
|
|
121
123
|
onClick: () => {
|
|
122
124
|
f(n.uuid), x("edit");
|
|
123
125
|
},
|
|
124
|
-
icon: /* @__PURE__ */ e(
|
|
126
|
+
icon: /* @__PURE__ */ e(ye, { "aria-hidden": !0 })
|
|
125
127
|
},
|
|
126
128
|
{
|
|
127
129
|
label: t("rowDelete"),
|
|
128
130
|
onClick: () => {
|
|
129
131
|
n.active !== !0 && C(n.uuid);
|
|
130
132
|
},
|
|
131
|
-
icon: /* @__PURE__ */ e(
|
|
133
|
+
icon: /* @__PURE__ */ e(xe, { "aria-hidden": !0 })
|
|
132
134
|
}
|
|
133
135
|
]
|
|
134
136
|
}
|
|
135
137
|
),
|
|
136
138
|
emptyState: () => /* @__PURE__ */ e("div", { "data-testid": "work-address-history-empty", children: /* @__PURE__ */ e(
|
|
137
|
-
|
|
139
|
+
be,
|
|
138
140
|
{
|
|
139
141
|
icon: /* @__PURE__ */ e(De, { "aria-hidden": !0 }),
|
|
140
142
|
title: t("historyEmptyTitle"),
|
|
141
143
|
description: t("historyEmptyDescription")
|
|
142
144
|
}
|
|
143
145
|
) })
|
|
144
|
-
}),
|
|
146
|
+
}), T = () => {
|
|
145
147
|
x(null), f(void 0);
|
|
146
|
-
},
|
|
148
|
+
}, ae = async () => {
|
|
147
149
|
if (!m)
|
|
148
150
|
return;
|
|
149
151
|
await P(m) && C(null);
|
|
150
|
-
},
|
|
152
|
+
}, le = async () => {
|
|
151
153
|
if (!l)
|
|
152
154
|
return;
|
|
153
155
|
if (l === "edit") {
|
|
154
156
|
const a = await s.actions.onSubmit(
|
|
155
157
|
void 0,
|
|
156
|
-
|
|
158
|
+
M ? void 0 : { effectiveDate: d?.effectiveDate }
|
|
157
159
|
);
|
|
158
|
-
a && (I(a),
|
|
160
|
+
a && (I(a), T());
|
|
159
161
|
return;
|
|
160
162
|
}
|
|
161
163
|
const n = await u.actions.onSubmit();
|
|
162
|
-
n && (I(n),
|
|
163
|
-
},
|
|
164
|
-
return /* @__PURE__ */ r(
|
|
165
|
-
/* @__PURE__ */ r(
|
|
164
|
+
n && (I(n), T());
|
|
165
|
+
}, se = l === "edit" ? j.isPending : O.isPending, A = d ? X(d, p) : null, w = d && p ? _(d, p) : void 0;
|
|
166
|
+
return /* @__PURE__ */ r(c, { flexDirection: "column", gap: 24, children: [
|
|
167
|
+
/* @__PURE__ */ r(c, { flexDirection: "column", gap: 4, alignItems: "flex-start", children: [
|
|
166
168
|
/* @__PURE__ */ e(i.Heading, { as: "h1", styledAs: "h2", children: t("title") }),
|
|
167
169
|
/* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("description") })
|
|
168
170
|
] }),
|
|
@@ -173,7 +175,7 @@ function ze({
|
|
|
173
175
|
i.BoxHeader,
|
|
174
176
|
{
|
|
175
177
|
title: t("currentSectionTitle"),
|
|
176
|
-
action:
|
|
178
|
+
action: d ? /* @__PURE__ */ e(
|
|
177
179
|
i.Button,
|
|
178
180
|
{
|
|
179
181
|
variant: "secondary",
|
|
@@ -197,56 +199,57 @@ function ze({
|
|
|
197
199
|
children: t("changeCta")
|
|
198
200
|
}
|
|
199
201
|
),
|
|
200
|
-
children: /* @__PURE__ */ r(
|
|
201
|
-
|
|
202
|
-
/* @__PURE__ */ e(
|
|
203
|
-
/* @__PURE__ */ e(i.Text, { weight: "medium", children:
|
|
204
|
-
/* @__PURE__ */ e(i.Text, { weight: "medium", children:
|
|
202
|
+
children: /* @__PURE__ */ r(c, { flexDirection: "column", gap: 16, children: [
|
|
203
|
+
d && A ? /* @__PURE__ */ r(c, { flexDirection: "column", gap: 4, children: [
|
|
204
|
+
/* @__PURE__ */ e(Ce, { children: w ? /* @__PURE__ */ r(K, { children: [
|
|
205
|
+
/* @__PURE__ */ e(i.Text, { weight: "medium", children: B(w).trim() }),
|
|
206
|
+
/* @__PURE__ */ e(i.Text, { weight: "medium", children: R(w) })
|
|
205
207
|
] }) : /* @__PURE__ */ r(K, { children: [
|
|
206
|
-
/* @__PURE__ */ e(i.Text, { weight: "medium", children:
|
|
207
|
-
/* @__PURE__ */ e(i.Text, { weight: "medium", children:
|
|
208
|
+
/* @__PURE__ */ e(i.Text, { weight: "medium", children: A.primary }),
|
|
209
|
+
/* @__PURE__ */ e(i.Text, { weight: "medium", children: A.secondary })
|
|
208
210
|
] }) }),
|
|
209
|
-
|
|
210
|
-
date: S(
|
|
211
|
+
d.effectiveDate ? /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("currentSince", {
|
|
212
|
+
date: S(d.effectiveDate)
|
|
211
213
|
}) }) : null
|
|
212
214
|
] }) : /* @__PURE__ */ e(i.Text, { children: t("currentEmpty") }),
|
|
213
|
-
|
|
214
|
-
possessiveLabel:
|
|
215
|
-
newAddress: Q(
|
|
216
|
-
effectiveDate:
|
|
215
|
+
L ? /* @__PURE__ */ e(i.Alert, { status: "warning", label: t("changePendingTitle"), children: /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("changePendingDescription", {
|
|
216
|
+
possessiveLabel: ie,
|
|
217
|
+
newAddress: Q(L, p),
|
|
218
|
+
effectiveDate: L.effectiveDate ? S(L.effectiveDate) : "—"
|
|
217
219
|
}) }) }) : null
|
|
218
220
|
] })
|
|
219
221
|
}
|
|
220
222
|
),
|
|
221
|
-
/* @__PURE__ */ r(
|
|
223
|
+
/* @__PURE__ */ r(c, { flexDirection: "column", gap: 12, children: [
|
|
222
224
|
/* @__PURE__ */ e(i.Heading, { as: "h2", styledAs: "h4", children: t("historySectionTitle") }),
|
|
223
|
-
/* @__PURE__ */ e(
|
|
225
|
+
/* @__PURE__ */ e(Ae, { label: t("historySectionTitle"), ...oe })
|
|
224
226
|
] }),
|
|
227
|
+
/* @__PURE__ */ e(Me, { children: /* @__PURE__ */ e(i.Button, { variant: "secondary", onClick: N, children: t("backCta") }) }),
|
|
225
228
|
/* @__PURE__ */ e(
|
|
226
229
|
i.Modal,
|
|
227
230
|
{
|
|
228
231
|
isOpen: l !== null,
|
|
229
|
-
onClose:
|
|
232
|
+
onClose: T,
|
|
230
233
|
shouldCloseOnBackdropClick: !1,
|
|
231
234
|
containerRef: k,
|
|
232
|
-
footer: /* @__PURE__ */ r(
|
|
233
|
-
/* @__PURE__ */ e(i.Button, { variant: "secondary", onClick:
|
|
235
|
+
footer: /* @__PURE__ */ r(c, { flexDirection: "row", gap: 12, justifyContent: "flex-end", children: [
|
|
236
|
+
/* @__PURE__ */ e(i.Button, { variant: "secondary", onClick: T, children: t("cancelCta") }),
|
|
234
237
|
/* @__PURE__ */ e(
|
|
235
238
|
i.Button,
|
|
236
239
|
{
|
|
237
240
|
variant: "primary",
|
|
238
241
|
onClick: () => {
|
|
239
|
-
|
|
242
|
+
le();
|
|
240
243
|
},
|
|
241
|
-
isLoading:
|
|
244
|
+
isLoading: se,
|
|
242
245
|
children: t("submitCta")
|
|
243
246
|
}
|
|
244
247
|
)
|
|
245
248
|
] }),
|
|
246
|
-
children: /* @__PURE__ */ r(
|
|
249
|
+
children: /* @__PURE__ */ r(c, { flexDirection: "column", gap: 16, children: [
|
|
247
250
|
/* @__PURE__ */ e(i.Heading, { as: "h2", children: t(l === "edit" ? "editModalTitle" : "changeModalTitle") }),
|
|
248
251
|
/* @__PURE__ */ e(i.Text, { variant: "supporting", children: t(l === "edit" ? "editModalDescription" : "changeModalDescription") }),
|
|
249
|
-
l === "edit" &&
|
|
252
|
+
l === "edit" && M ? /* @__PURE__ */ e(i.Alert, { status: "warning", label: t("editPastAddressAlertTitle") }) : null,
|
|
250
253
|
l === "edit" ? /* @__PURE__ */ e(J, { formHookResult: s, children: /* @__PURE__ */ r(
|
|
251
254
|
Y,
|
|
252
255
|
{
|
|
@@ -259,19 +262,19 @@ function ze({
|
|
|
259
262
|
/* @__PURE__ */ e(
|
|
260
263
|
z,
|
|
261
264
|
{
|
|
262
|
-
label: t(
|
|
265
|
+
label: t(M ? "form.editInactiveLocationLabel" : "form.editLocationLabel"),
|
|
263
266
|
description: t("form.editLocationDescription"),
|
|
264
267
|
validationMessages: U,
|
|
265
|
-
portalContainer:
|
|
268
|
+
portalContainer: b
|
|
266
269
|
}
|
|
267
270
|
),
|
|
268
|
-
|
|
271
|
+
M ? /* @__PURE__ */ e(
|
|
269
272
|
G,
|
|
270
273
|
{
|
|
271
274
|
label: t("form.startDateLabel"),
|
|
272
275
|
description: t("form.editInactiveStartDateDescription"),
|
|
273
276
|
validationMessages: W,
|
|
274
|
-
portalContainer:
|
|
277
|
+
portalContainer: b
|
|
275
278
|
}
|
|
276
279
|
) : null
|
|
277
280
|
]
|
|
@@ -292,7 +295,7 @@ function ze({
|
|
|
292
295
|
label: t("form.newWorkAddressLabel"),
|
|
293
296
|
description: t("form.newWorkAddressDescription"),
|
|
294
297
|
validationMessages: U,
|
|
295
|
-
portalContainer:
|
|
298
|
+
portalContainer: b
|
|
296
299
|
}
|
|
297
300
|
),
|
|
298
301
|
/* @__PURE__ */ e(
|
|
@@ -301,7 +304,7 @@ function ze({
|
|
|
301
304
|
label: t("form.startDateLabel"),
|
|
302
305
|
description: t("form.startDateDescription"),
|
|
303
306
|
validationMessages: W,
|
|
304
|
-
portalContainer:
|
|
307
|
+
portalContainer: b
|
|
305
308
|
}
|
|
306
309
|
)
|
|
307
310
|
]
|
|
@@ -318,7 +321,7 @@ function ze({
|
|
|
318
321
|
C(null);
|
|
319
322
|
},
|
|
320
323
|
shouldCloseOnBackdropClick: !1,
|
|
321
|
-
footer: /* @__PURE__ */ r(
|
|
324
|
+
footer: /* @__PURE__ */ r(c, { flexDirection: "row", gap: 12, justifyContent: "flex-end", children: [
|
|
322
325
|
/* @__PURE__ */ e(
|
|
323
326
|
i.Button,
|
|
324
327
|
{
|
|
@@ -334,17 +337,17 @@ function ze({
|
|
|
334
337
|
{
|
|
335
338
|
variant: "error",
|
|
336
339
|
onClick: () => {
|
|
337
|
-
|
|
340
|
+
ae();
|
|
338
341
|
},
|
|
339
|
-
isLoading:
|
|
342
|
+
isLoading: ee && m !== null,
|
|
340
343
|
children: t("deleteModalConfirmCta")
|
|
341
344
|
}
|
|
342
345
|
)
|
|
343
346
|
] }),
|
|
344
|
-
children: /* @__PURE__ */ r(
|
|
347
|
+
children: /* @__PURE__ */ r(c, { flexDirection: "column", gap: 16, children: [
|
|
345
348
|
/* @__PURE__ */ e(i.Heading, { as: "h2", children: t("deleteModalTitle") }),
|
|
346
349
|
/* @__PURE__ */ e(i.Text, { variant: "supporting", children: $ ? /* @__PURE__ */ e(
|
|
347
|
-
|
|
350
|
+
ge,
|
|
348
351
|
{
|
|
349
352
|
t,
|
|
350
353
|
i18nKey: "deleteModalDescription",
|
|
@@ -362,6 +365,6 @@ function ze({
|
|
|
362
365
|
] });
|
|
363
366
|
}
|
|
364
367
|
export {
|
|
365
|
-
|
|
368
|
+
Je as WorkAddressView
|
|
366
369
|
};
|
|
367
370
|
//# sourceMappingURL=WorkAddressView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkAddressView.js","sources":["../../../../../src/components/Employee/WorkAddress/management/WorkAddressView.tsx"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport type { Location } from '@gusto/embedded-api/models/components/location'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport {\n formatPendingWorkAddressLine,\n getPendingFutureWorkAddress,\n} from './getPendingFutureWorkAddress'\nimport ListIcon from '@/assets/icons/list.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { DataView, EmptyData, Grid, HamburgerMenu, useDataView } from '@/components/Common'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport {\n LocationField,\n EffectiveDateField,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm/fields'\nimport { WorkAddressErrorCodes } from '@/components/Employee/Profile/shared/useWorkAddressForm/workAddressSchema'\nimport type { UseWorkAddressFormReady } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport type { HookSubmitResult } from '@/partner-hook-utils/types'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { addDays, formatDateLongWithYear, normalizeToDate } from '@/helpers/dateFormatting'\nimport { getCityStateZip, getStreet } from '@/helpers/formattedStrings'\n\nexport interface WorkAddressViewProps {\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n /** Full list for history table, pending-future alert, and delete-confirmation lookup. */\n workAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n onEditTargetUuidChange: (uuid: string | undefined) => void\n employeeDisplayName: string\n onConfirmDelete: (workAddressUuid: string) => Promise<boolean>\n onWorkAddressSaved: (result: HookSubmitResult<EmployeeWorkAddress>) => void\n isDeletePending?: boolean\n}\n\nfunction resolveLocation(\n row: EmployeeWorkAddress,\n companyLocations: Location[] | undefined,\n): Location | undefined {\n if (!row.locationUuid || !companyLocations?.length) {\n return undefined\n }\n return companyLocations.find(loc => loc.uuid === row.locationUuid)\n}\n\nfunction formatWorkAddressLines(\n row: EmployeeWorkAddress,\n companyLocations: Location[] | undefined,\n): { primary: string; secondary: string } {\n const location = resolveLocation(row, companyLocations)\n if (location) {\n const street = getStreet(location).trim()\n const locality = getCityStateZip(location).trim()\n return { primary: street, secondary: locality }\n }\n const street = getStreet(row).trim()\n const locality = getCityStateZip(row).trim()\n return { primary: street, secondary: locality }\n}\n\nexport function WorkAddressView({\n editWorkAddressForm,\n changeWorkAddressForm,\n workAddresses,\n editTargetUuid,\n onEditTargetUuidChange,\n employeeDisplayName,\n onConfirmDelete,\n onWorkAddressSaved,\n isDeletePending = false,\n}: WorkAddressViewProps) {\n const { t } = useTranslation('Employee.WorkAddress.Management')\n const Components = useComponentContext()\n const [addressModal, setAddressModal] = useState<'edit' | 'create' | null>(null)\n const [deleteConfirmUuid, setDeleteConfirmUuid] = useState<string | null>(null)\n const addressModalContainerRef = useRef<HTMLDivElement>(null)\n const [addressModalPortal, setAddressModalPortal] = useState<HTMLElement | undefined>(undefined)\n\n useLayoutEffect(() => {\n if (!addressModal) {\n setAddressModalPortal(undefined)\n return\n }\n const syncPortal = () => {\n setAddressModalPortal(addressModalContainerRef.current ?? undefined)\n }\n syncPortal()\n if (addressModalContainerRef.current == null) {\n const id = requestAnimationFrame(syncPortal)\n return () => {\n cancelAnimationFrame(id)\n }\n }\n }, [addressModal])\n\n const {\n data: { workAddress, companyLocations },\n status: editStatus,\n form: { Fields: editFormFields },\n } = editWorkAddressForm\n\n const editShowsEffectiveDateField = editFormFields.EffectiveDate != null\n\n const { status: createStatus } = changeWorkAddressForm\n\n const locationValidation = {\n [WorkAddressErrorCodes.REQUIRED]: t('form.locationRequired'),\n }\n\n const startDateValidation = {\n [WorkAddressErrorCodes.REQUIRED]: t('form.startDateRequired'),\n }\n\n const pendingFutureAddress = useMemo(\n () => getPendingFutureWorkAddress(workAddresses),\n [workAddresses],\n )\n\n const addressForDeleteModal = useMemo(() => {\n if (!deleteConfirmUuid || !workAddresses) {\n return undefined\n }\n return workAddresses.find(a => a.uuid === deleteConfirmUuid)\n }, [deleteConfirmUuid, workAddresses])\n\n const changePendingPossessiveLabel = useMemo(() => {\n const trimmed = employeeDisplayName.trim()\n return trimmed ? `${trimmed}'s` : t('changePendingPossessiveFallback')\n }, [employeeDisplayName, t])\n\n const chronologicalAsc = useMemo(() => {\n return [...(workAddresses ?? [])].sort((a, b) => {\n const aDate = a.effectiveDate ?? ''\n const bDate = b.effectiveDate ?? ''\n if (!aDate && !bDate) return 0\n if (!aDate) return 1\n if (!bDate) return -1\n return aDate.localeCompare(bDate)\n })\n }, [workAddresses])\n\n const historyAddresses = useMemo(\n () => chronologicalAsc.filter(address => address.active !== true),\n [chronologicalAsc],\n )\n\n const sortedHistory = useMemo(() => [...historyAddresses].reverse(), [historyAddresses])\n\n const historyEndDate = (row: EmployeeWorkAddress) => {\n const idx = chronologicalAsc.findIndex(a => a.uuid === row.uuid)\n if (idx === -1 || idx >= chronologicalAsc.length - 1) return '—'\n const nextStart = chronologicalAsc[idx + 1]?.effectiveDate\n if (!nextStart) return '—'\n const nextDate = normalizeToDate(nextStart)\n if (!nextDate) return '—'\n const endDate = addDays(nextDate, -1)\n const y = endDate.getFullYear()\n const m = String(endDate.getMonth() + 1).padStart(2, '0')\n const d = String(endDate.getDate()).padStart(2, '0')\n return formatDateLongWithYear(`${y}-${m}-${d}`)\n }\n\n const historyDataView = useDataView({\n data: sortedHistory,\n columns: [\n {\n title: t('columns.location'),\n render: (row: EmployeeWorkAddress) => {\n const lines = formatWorkAddressLines(row, companyLocations)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">{lines.primary}</Components.Text>\n <Components.Text variant=\"supporting\">{lines.secondary}</Components.Text>\n </Flex>\n )\n },\n },\n {\n title: t('columns.startDate'),\n render: (row: EmployeeWorkAddress) =>\n row.effectiveDate ? formatDateLongWithYear(row.effectiveDate) : '—',\n },\n {\n title: t('columns.endDate'),\n render: (row: EmployeeWorkAddress) => historyEndDate(row),\n },\n ],\n itemMenu: (row: EmployeeWorkAddress) => (\n <HamburgerMenu\n triggerLabel={t('rowMenuAriaLabel')}\n items={[\n {\n label: t('rowEdit'),\n onClick: () => {\n onEditTargetUuidChange(row.uuid)\n setAddressModal('edit')\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('rowDelete'),\n onClick: () => {\n if (row.active === true) {\n return\n }\n setDeleteConfirmUuid(row.uuid)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n />\n ),\n emptyState: () => (\n <div data-testid=\"work-address-history-empty\">\n <EmptyData\n icon={<ListIcon aria-hidden />}\n title={t('historyEmptyTitle')}\n description={t('historyEmptyDescription')}\n />\n </div>\n ),\n })\n\n const closeAddressModal = () => {\n setAddressModal(null)\n onEditTargetUuidChange(undefined)\n }\n\n const handleDeleteModalConfirm = async () => {\n if (!deleteConfirmUuid) {\n return\n }\n const deleted = await onConfirmDelete(deleteConfirmUuid)\n if (deleted) {\n setDeleteConfirmUuid(null)\n }\n }\n\n const handleSave = async () => {\n if (!addressModal) {\n return\n }\n\n if (addressModal === 'edit') {\n const result = await editWorkAddressForm.actions.onSubmit(\n undefined,\n editShowsEffectiveDateField ? undefined : { effectiveDate: workAddress?.effectiveDate },\n )\n if (result) {\n onWorkAddressSaved(result)\n closeAddressModal()\n }\n return\n }\n\n const result = await changeWorkAddressForm.actions.onSubmit()\n if (result) {\n onWorkAddressSaved(result)\n closeAddressModal()\n }\n }\n\n const modalPending = addressModal === 'edit' ? editStatus.isPending : createStatus.isPending\n\n const currentLines = workAddress ? formatWorkAddressLines(workAddress, companyLocations) : null\n const currentLocation =\n workAddress && companyLocations ? resolveLocation(workAddress, companyLocations) : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={4} alignItems=\"flex-start\">\n <Components.Heading as=\"h1\" styledAs=\"h2\">\n {t('title')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('currentSectionTitle')}\n action={\n workAddress ? (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditTargetUuidChange(undefined)\n setAddressModal('edit')\n }}\n isLoading={editStatus.isPending}\n >\n {t('editCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n footer={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditTargetUuidChange(undefined)\n setAddressModal('create')\n }}\n isLoading={createStatus.isPending}\n >\n {t('changeCta')}\n </Components.Button>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {workAddress && currentLines ? (\n <Flex flexDirection=\"column\" gap={4}>\n <FlexItem>\n {currentLocation ? (\n <>\n <Components.Text weight=\"medium\">\n {getStreet(currentLocation).trim()}\n </Components.Text>\n <Components.Text weight=\"medium\">\n {getCityStateZip(currentLocation)}\n </Components.Text>\n </>\n ) : (\n <>\n <Components.Text weight=\"medium\">{currentLines.primary}</Components.Text>\n <Components.Text weight=\"medium\">{currentLines.secondary}</Components.Text>\n </>\n )}\n </FlexItem>\n {workAddress.effectiveDate ? (\n <Components.Text variant=\"supporting\">\n {t('currentSince', {\n date: formatDateLongWithYear(workAddress.effectiveDate),\n })}\n </Components.Text>\n ) : null}\n </Flex>\n ) : (\n <Components.Text>{t('currentEmpty')}</Components.Text>\n )}\n {pendingFutureAddress ? (\n <Components.Alert status=\"warning\" label={t('changePendingTitle')}>\n <Components.Text variant=\"supporting\">\n {t('changePendingDescription', {\n possessiveLabel: changePendingPossessiveLabel,\n newAddress: formatPendingWorkAddressLine(pendingFutureAddress, companyLocations),\n effectiveDate: pendingFutureAddress.effectiveDate\n ? formatDateLongWithYear(pendingFutureAddress.effectiveDate)\n : '—',\n })}\n </Components.Text>\n </Components.Alert>\n ) : null}\n </Flex>\n </Components.Box>\n\n <Flex flexDirection=\"column\" gap={12}>\n <Components.Heading as=\"h2\" styledAs=\"h4\">\n {t('historySectionTitle')}\n </Components.Heading>\n <DataView label={t('historySectionTitle')} {...historyDataView} />\n </Flex>\n\n <Components.Modal\n isOpen={addressModal !== null}\n onClose={closeAddressModal}\n shouldCloseOnBackdropClick={false}\n containerRef={addressModalContainerRef}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button variant=\"secondary\" onClick={closeAddressModal}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"primary\"\n onClick={() => {\n void handleSave()\n }}\n isLoading={modalPending}\n >\n {t('submitCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">\n {addressModal === 'edit' ? t('editModalTitle') : t('changeModalTitle')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressModal === 'edit' ? t('editModalDescription') : t('changeModalDescription')}\n </Components.Text>\n {addressModal === 'edit' && editShowsEffectiveDateField ? (\n <Components.Alert status=\"warning\" label={t('editPastAddressAlertTitle')} />\n ) : null}\n {addressModal === 'edit' ? (\n <SDKFormProvider formHookResult={editWorkAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n <LocationField\n label={\n editShowsEffectiveDateField\n ? t('form.editInactiveLocationLabel')\n : t('form.editLocationLabel')\n }\n description={t('form.editLocationDescription')}\n validationMessages={locationValidation}\n portalContainer={addressModalPortal}\n />\n {editShowsEffectiveDateField ? (\n <EffectiveDateField\n label={t('form.startDateLabel')}\n description={t('form.editInactiveStartDateDescription')}\n validationMessages={startDateValidation}\n portalContainer={addressModalPortal}\n />\n ) : null}\n </Grid>\n </SDKFormProvider>\n ) : null}\n {addressModal === 'create' ? (\n <SDKFormProvider formHookResult={changeWorkAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n <LocationField\n label={t('form.newWorkAddressLabel')}\n description={t('form.newWorkAddressDescription')}\n validationMessages={locationValidation}\n portalContainer={addressModalPortal}\n />\n <EffectiveDateField\n label={t('form.startDateLabel')}\n description={t('form.startDateDescription')}\n validationMessages={startDateValidation}\n portalContainer={addressModalPortal}\n />\n </Grid>\n </SDKFormProvider>\n ) : null}\n </Flex>\n </Components.Modal>\n\n <Components.Modal\n isOpen={deleteConfirmUuid !== null}\n onClose={() => {\n setDeleteConfirmUuid(null)\n }}\n shouldCloseOnBackdropClick={false}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setDeleteConfirmUuid(null)\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"error\"\n onClick={() => {\n void handleDeleteModalConfirm()\n }}\n isLoading={isDeletePending && deleteConfirmUuid !== null}\n >\n {t('deleteModalConfirmCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">{t('deleteModalTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressForDeleteModal ? (\n <Trans\n t={t}\n i18nKey=\"deleteModalDescription\"\n values={{\n address: formatPendingWorkAddressLine(addressForDeleteModal, companyLocations),\n }}\n components={{\n strong: <Components.Text weight=\"medium\" as=\"span\" />,\n }}\n />\n ) : null}\n </Components.Text>\n </Flex>\n </Components.Modal>\n </Flex>\n )\n}\n"],"names":["resolveLocation","row","companyLocations","loc","formatWorkAddressLines","location","street","getStreet","locality","getCityStateZip","WorkAddressView","editWorkAddressForm","changeWorkAddressForm","workAddresses","editTargetUuid","onEditTargetUuidChange","employeeDisplayName","onConfirmDelete","onWorkAddressSaved","isDeletePending","useTranslation","Components","useComponentContext","addressModal","setAddressModal","useState","deleteConfirmUuid","setDeleteConfirmUuid","addressModalContainerRef","useRef","addressModalPortal","setAddressModalPortal","useLayoutEffect","syncPortal","id","workAddress","editStatus","editFormFields","editShowsEffectiveDateField","createStatus","locationValidation","WorkAddressErrorCodes","startDateValidation","pendingFutureAddress","useMemo","getPendingFutureWorkAddress","addressForDeleteModal","a","changePendingPossessiveLabel","trimmed","chronologicalAsc","b","aDate","bDate","historyAddresses","address","sortedHistory","historyEndDate","idx","nextStart","nextDate","normalizeToDate","endDate","addDays","y","m","d","formatDateLongWithYear","historyDataView","useDataView","lines","jsxs","Flex","jsx","HamburgerMenu","PencilSvg","TrashCanSvg","EmptyData","ListIcon","closeAddressModal","handleDeleteModalConfirm","handleSave","result","modalPending","currentLines","currentLocation","FlexItem","Fragment","formatPendingWorkAddressLine","DataView","SDKFormProvider","Grid","LocationField","EffectiveDateField","Trans"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkAddressView.js","sources":["../../../../../src/components/Employee/WorkAddress/management/WorkAddressView.tsx"],"sourcesContent":["import { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport type { Location } from '@gusto/embedded-api/models/components/location'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport {\n formatPendingWorkAddressLine,\n getPendingFutureWorkAddress,\n} from './getPendingFutureWorkAddress'\nimport ListIcon from '@/assets/icons/list.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport {\n ActionsLayout,\n DataView,\n EmptyData,\n Grid,\n HamburgerMenu,\n useDataView,\n} from '@/components/Common'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport {\n LocationField,\n EffectiveDateField,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm/fields'\nimport { WorkAddressErrorCodes } from '@/components/Employee/Profile/shared/useWorkAddressForm/workAddressSchema'\nimport type { UseWorkAddressFormReady } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport type { HookSubmitResult } from '@/partner-hook-utils/types'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { addDays, formatDateLongWithYear, normalizeToDate } from '@/helpers/dateFormatting'\nimport { getCityStateZip, getStreet } from '@/helpers/formattedStrings'\n\nexport interface WorkAddressViewProps {\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n /** Full list for history table, pending-future alert, and delete-confirmation lookup. */\n workAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n onEditTargetUuidChange: (uuid: string | undefined) => void\n employeeDisplayName: string\n onConfirmDelete: (workAddressUuid: string) => Promise<boolean>\n onWorkAddressSaved: (result: HookSubmitResult<EmployeeWorkAddress>) => void\n onBack: () => void\n isDeletePending?: boolean\n}\n\nfunction resolveLocation(\n row: EmployeeWorkAddress,\n companyLocations: Location[] | undefined,\n): Location | undefined {\n if (!row.locationUuid || !companyLocations?.length) {\n return undefined\n }\n return companyLocations.find(loc => loc.uuid === row.locationUuid)\n}\n\nfunction formatWorkAddressLines(\n row: EmployeeWorkAddress,\n companyLocations: Location[] | undefined,\n): { primary: string; secondary: string } {\n const location = resolveLocation(row, companyLocations)\n if (location) {\n const street = getStreet(location).trim()\n const locality = getCityStateZip(location).trim()\n return { primary: street, secondary: locality }\n }\n const street = getStreet(row).trim()\n const locality = getCityStateZip(row).trim()\n return { primary: street, secondary: locality }\n}\n\nexport function WorkAddressView({\n editWorkAddressForm,\n changeWorkAddressForm,\n workAddresses,\n editTargetUuid,\n onEditTargetUuidChange,\n employeeDisplayName,\n onConfirmDelete,\n onWorkAddressSaved,\n onBack,\n isDeletePending = false,\n}: WorkAddressViewProps) {\n const { t } = useTranslation('Employee.WorkAddress.Management')\n const Components = useComponentContext()\n const [addressModal, setAddressModal] = useState<'edit' | 'create' | null>(null)\n const [deleteConfirmUuid, setDeleteConfirmUuid] = useState<string | null>(null)\n const addressModalContainerRef = useRef<HTMLDivElement>(null)\n const [addressModalPortal, setAddressModalPortal] = useState<HTMLElement | undefined>(undefined)\n\n useLayoutEffect(() => {\n if (!addressModal) {\n setAddressModalPortal(undefined)\n return\n }\n const syncPortal = () => {\n setAddressModalPortal(addressModalContainerRef.current ?? undefined)\n }\n syncPortal()\n if (addressModalContainerRef.current == null) {\n const id = requestAnimationFrame(syncPortal)\n return () => {\n cancelAnimationFrame(id)\n }\n }\n }, [addressModal])\n\n const {\n data: { workAddress, companyLocations },\n status: editStatus,\n form: { Fields: editFormFields },\n } = editWorkAddressForm\n\n const editShowsEffectiveDateField = editFormFields.EffectiveDate != null\n\n const { status: createStatus } = changeWorkAddressForm\n\n const locationValidation = {\n [WorkAddressErrorCodes.REQUIRED]: t('form.locationRequired'),\n }\n\n const startDateValidation = {\n [WorkAddressErrorCodes.REQUIRED]: t('form.startDateRequired'),\n }\n\n const pendingFutureAddress = useMemo(\n () => getPendingFutureWorkAddress(workAddresses),\n [workAddresses],\n )\n\n const addressForDeleteModal = useMemo(() => {\n if (!deleteConfirmUuid || !workAddresses) {\n return undefined\n }\n return workAddresses.find(a => a.uuid === deleteConfirmUuid)\n }, [deleteConfirmUuid, workAddresses])\n\n const changePendingPossessiveLabel = useMemo(() => {\n const trimmed = employeeDisplayName.trim()\n return trimmed ? `${trimmed}'s` : t('changePendingPossessiveFallback')\n }, [employeeDisplayName, t])\n\n const chronologicalAsc = useMemo(() => {\n return [...(workAddresses ?? [])].sort((a, b) => {\n const aDate = a.effectiveDate ?? ''\n const bDate = b.effectiveDate ?? ''\n if (!aDate && !bDate) return 0\n if (!aDate) return 1\n if (!bDate) return -1\n return aDate.localeCompare(bDate)\n })\n }, [workAddresses])\n\n const historyAddresses = useMemo(\n () => chronologicalAsc.filter(address => address.active !== true),\n [chronologicalAsc],\n )\n\n const sortedHistory = useMemo(() => [...historyAddresses].reverse(), [historyAddresses])\n\n const historyEndDate = (row: EmployeeWorkAddress) => {\n const idx = chronologicalAsc.findIndex(a => a.uuid === row.uuid)\n if (idx === -1 || idx >= chronologicalAsc.length - 1) return '—'\n const nextStart = chronologicalAsc[idx + 1]?.effectiveDate\n if (!nextStart) return '—'\n const nextDate = normalizeToDate(nextStart)\n if (!nextDate) return '—'\n const endDate = addDays(nextDate, -1)\n const y = endDate.getFullYear()\n const m = String(endDate.getMonth() + 1).padStart(2, '0')\n const d = String(endDate.getDate()).padStart(2, '0')\n return formatDateLongWithYear(`${y}-${m}-${d}`)\n }\n\n const historyDataView = useDataView({\n data: sortedHistory,\n columns: [\n {\n title: t('columns.location'),\n render: (row: EmployeeWorkAddress) => {\n const lines = formatWorkAddressLines(row, companyLocations)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">{lines.primary}</Components.Text>\n <Components.Text variant=\"supporting\">{lines.secondary}</Components.Text>\n </Flex>\n )\n },\n },\n {\n title: t('columns.startDate'),\n render: (row: EmployeeWorkAddress) =>\n row.effectiveDate ? formatDateLongWithYear(row.effectiveDate) : '—',\n },\n {\n title: t('columns.endDate'),\n render: (row: EmployeeWorkAddress) => historyEndDate(row),\n },\n ],\n itemMenu: (row: EmployeeWorkAddress) => (\n <HamburgerMenu\n triggerLabel={t('rowMenuAriaLabel')}\n items={[\n {\n label: t('rowEdit'),\n onClick: () => {\n onEditTargetUuidChange(row.uuid)\n setAddressModal('edit')\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('rowDelete'),\n onClick: () => {\n if (row.active === true) {\n return\n }\n setDeleteConfirmUuid(row.uuid)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n />\n ),\n emptyState: () => (\n <div data-testid=\"work-address-history-empty\">\n <EmptyData\n icon={<ListIcon aria-hidden />}\n title={t('historyEmptyTitle')}\n description={t('historyEmptyDescription')}\n />\n </div>\n ),\n })\n\n const closeAddressModal = () => {\n setAddressModal(null)\n onEditTargetUuidChange(undefined)\n }\n\n const handleDeleteModalConfirm = async () => {\n if (!deleteConfirmUuid) {\n return\n }\n const deleted = await onConfirmDelete(deleteConfirmUuid)\n if (deleted) {\n setDeleteConfirmUuid(null)\n }\n }\n\n const handleSave = async () => {\n if (!addressModal) {\n return\n }\n\n if (addressModal === 'edit') {\n const result = await editWorkAddressForm.actions.onSubmit(\n undefined,\n editShowsEffectiveDateField ? undefined : { effectiveDate: workAddress?.effectiveDate },\n )\n if (result) {\n onWorkAddressSaved(result)\n closeAddressModal()\n }\n return\n }\n\n const result = await changeWorkAddressForm.actions.onSubmit()\n if (result) {\n onWorkAddressSaved(result)\n closeAddressModal()\n }\n }\n\n const modalPending = addressModal === 'edit' ? editStatus.isPending : createStatus.isPending\n\n const currentLines = workAddress ? formatWorkAddressLines(workAddress, companyLocations) : null\n const currentLocation =\n workAddress && companyLocations ? resolveLocation(workAddress, companyLocations) : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={4} alignItems=\"flex-start\">\n <Components.Heading as=\"h1\" styledAs=\"h2\">\n {t('title')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('currentSectionTitle')}\n action={\n workAddress ? (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditTargetUuidChange(undefined)\n setAddressModal('edit')\n }}\n isLoading={editStatus.isPending}\n >\n {t('editCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n footer={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditTargetUuidChange(undefined)\n setAddressModal('create')\n }}\n isLoading={createStatus.isPending}\n >\n {t('changeCta')}\n </Components.Button>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {workAddress && currentLines ? (\n <Flex flexDirection=\"column\" gap={4}>\n <FlexItem>\n {currentLocation ? (\n <>\n <Components.Text weight=\"medium\">\n {getStreet(currentLocation).trim()}\n </Components.Text>\n <Components.Text weight=\"medium\">\n {getCityStateZip(currentLocation)}\n </Components.Text>\n </>\n ) : (\n <>\n <Components.Text weight=\"medium\">{currentLines.primary}</Components.Text>\n <Components.Text weight=\"medium\">{currentLines.secondary}</Components.Text>\n </>\n )}\n </FlexItem>\n {workAddress.effectiveDate ? (\n <Components.Text variant=\"supporting\">\n {t('currentSince', {\n date: formatDateLongWithYear(workAddress.effectiveDate),\n })}\n </Components.Text>\n ) : null}\n </Flex>\n ) : (\n <Components.Text>{t('currentEmpty')}</Components.Text>\n )}\n {pendingFutureAddress ? (\n <Components.Alert status=\"warning\" label={t('changePendingTitle')}>\n <Components.Text variant=\"supporting\">\n {t('changePendingDescription', {\n possessiveLabel: changePendingPossessiveLabel,\n newAddress: formatPendingWorkAddressLine(pendingFutureAddress, companyLocations),\n effectiveDate: pendingFutureAddress.effectiveDate\n ? formatDateLongWithYear(pendingFutureAddress.effectiveDate)\n : '—',\n })}\n </Components.Text>\n </Components.Alert>\n ) : null}\n </Flex>\n </Components.Box>\n\n <Flex flexDirection=\"column\" gap={12}>\n <Components.Heading as=\"h2\" styledAs=\"h4\">\n {t('historySectionTitle')}\n </Components.Heading>\n <DataView label={t('historySectionTitle')} {...historyDataView} />\n </Flex>\n\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={onBack}>\n {t('backCta')}\n </Components.Button>\n </ActionsLayout>\n\n <Components.Modal\n isOpen={addressModal !== null}\n onClose={closeAddressModal}\n shouldCloseOnBackdropClick={false}\n containerRef={addressModalContainerRef}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button variant=\"secondary\" onClick={closeAddressModal}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"primary\"\n onClick={() => {\n void handleSave()\n }}\n isLoading={modalPending}\n >\n {t('submitCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">\n {addressModal === 'edit' ? t('editModalTitle') : t('changeModalTitle')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressModal === 'edit' ? t('editModalDescription') : t('changeModalDescription')}\n </Components.Text>\n {addressModal === 'edit' && editShowsEffectiveDateField ? (\n <Components.Alert status=\"warning\" label={t('editPastAddressAlertTitle')} />\n ) : null}\n {addressModal === 'edit' ? (\n <SDKFormProvider formHookResult={editWorkAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n <LocationField\n label={\n editShowsEffectiveDateField\n ? t('form.editInactiveLocationLabel')\n : t('form.editLocationLabel')\n }\n description={t('form.editLocationDescription')}\n validationMessages={locationValidation}\n portalContainer={addressModalPortal}\n />\n {editShowsEffectiveDateField ? (\n <EffectiveDateField\n label={t('form.startDateLabel')}\n description={t('form.editInactiveStartDateDescription')}\n validationMessages={startDateValidation}\n portalContainer={addressModalPortal}\n />\n ) : null}\n </Grid>\n </SDKFormProvider>\n ) : null}\n {addressModal === 'create' ? (\n <SDKFormProvider formHookResult={changeWorkAddressForm}>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: '1fr',\n }}\n gap={20}\n >\n <LocationField\n label={t('form.newWorkAddressLabel')}\n description={t('form.newWorkAddressDescription')}\n validationMessages={locationValidation}\n portalContainer={addressModalPortal}\n />\n <EffectiveDateField\n label={t('form.startDateLabel')}\n description={t('form.startDateDescription')}\n validationMessages={startDateValidation}\n portalContainer={addressModalPortal}\n />\n </Grid>\n </SDKFormProvider>\n ) : null}\n </Flex>\n </Components.Modal>\n\n <Components.Modal\n isOpen={deleteConfirmUuid !== null}\n onClose={() => {\n setDeleteConfirmUuid(null)\n }}\n shouldCloseOnBackdropClick={false}\n footer={\n <Flex flexDirection=\"row\" gap={12} justifyContent=\"flex-end\">\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setDeleteConfirmUuid(null)\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n variant=\"error\"\n onClick={() => {\n void handleDeleteModalConfirm()\n }}\n isLoading={isDeletePending && deleteConfirmUuid !== null}\n >\n {t('deleteModalConfirmCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h2\">{t('deleteModalTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {addressForDeleteModal ? (\n <Trans\n t={t}\n i18nKey=\"deleteModalDescription\"\n values={{\n address: formatPendingWorkAddressLine(addressForDeleteModal, companyLocations),\n }}\n components={{\n strong: <Components.Text weight=\"medium\" as=\"span\" />,\n }}\n />\n ) : null}\n </Components.Text>\n </Flex>\n </Components.Modal>\n </Flex>\n )\n}\n"],"names":["resolveLocation","row","companyLocations","loc","formatWorkAddressLines","location","street","getStreet","locality","getCityStateZip","WorkAddressView","editWorkAddressForm","changeWorkAddressForm","workAddresses","editTargetUuid","onEditTargetUuidChange","employeeDisplayName","onConfirmDelete","onWorkAddressSaved","onBack","isDeletePending","useTranslation","Components","useComponentContext","addressModal","setAddressModal","useState","deleteConfirmUuid","setDeleteConfirmUuid","addressModalContainerRef","useRef","addressModalPortal","setAddressModalPortal","useLayoutEffect","syncPortal","id","workAddress","editStatus","editFormFields","editShowsEffectiveDateField","createStatus","locationValidation","WorkAddressErrorCodes","startDateValidation","pendingFutureAddress","useMemo","getPendingFutureWorkAddress","addressForDeleteModal","a","changePendingPossessiveLabel","trimmed","chronologicalAsc","b","aDate","bDate","historyAddresses","address","sortedHistory","historyEndDate","idx","nextStart","nextDate","normalizeToDate","endDate","addDays","y","m","d","formatDateLongWithYear","historyDataView","useDataView","lines","jsxs","Flex","jsx","HamburgerMenu","PencilSvg","TrashCanSvg","EmptyData","ListIcon","closeAddressModal","handleDeleteModalConfirm","handleSave","result","modalPending","currentLines","currentLocation","FlexItem","Fragment","formatPendingWorkAddressLine","DataView","ActionsLayout","SDKFormProvider","Grid","LocationField","EffectiveDateField","Trans"],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { ManagementEmployeeList as EmployeeList } from '../EmployeeList/management/ManagementEmployeeList';
|
|
2
|
+
export { EmployeeListFlow } from '../EmployeeListFlow';
|
|
3
|
+
export type { EmployeeListFlowProps } from '../EmployeeListFlow';
|
|
2
4
|
/** @deprecated Use EmployeeOnboarding.EmployeeDocuments; not applicable for post-onboarding flows. Will be removed in a future version. */
|
|
3
5
|
export { EmployeeDocuments } from '../Documents/onboarding/EmployeeDocuments';
|
|
4
6
|
export { DocumentManager } from '../Documents/management/DocumentManager';
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { ManagementEmployeeList as r } from "../EmployeeList/management/ManagementEmployeeList.js";
|
|
2
2
|
import { DocumentManager as t } from "../Documents/management/DocumentManager.js";
|
|
3
|
-
import { WorkAddress as
|
|
3
|
+
import { WorkAddress as a } from "../WorkAddress/management/WorkAddress.js";
|
|
4
4
|
import { FederalTaxes as f } from "../FederalTaxes/management/FederalTaxes.js";
|
|
5
|
-
import { StateTaxes as
|
|
6
|
-
import { Profile as
|
|
5
|
+
import { StateTaxes as l } from "../StateTaxes/management/StateTaxes.js";
|
|
6
|
+
import { Profile as i } from "../Profile/management/Profile.js";
|
|
7
7
|
import { TerminateEmployee as d } from "../Terminations/TerminateEmployee/TerminateEmployee.js";
|
|
8
|
-
import { TerminationSummary as
|
|
9
|
-
import { TerminationFlow as
|
|
10
|
-
import { DashboardFlow as
|
|
11
|
-
import { EmployeeDocuments as
|
|
12
|
-
import {
|
|
8
|
+
import { TerminationSummary as T } from "../Terminations/TerminationSummary/TerminationSummary.js";
|
|
9
|
+
import { TerminationFlow as u } from "../Terminations/TerminationFlow/TerminationFlow.js";
|
|
10
|
+
import { DashboardFlow as D } from "../Dashboard/DashboardFlow.js";
|
|
11
|
+
import { EmployeeDocuments as M } from "../Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js";
|
|
12
|
+
import { EmployeeListFlow as g } from "../EmployeeListFlow/EmployeeListFlow.js";
|
|
13
|
+
import { PaymentMethod as P } from "../PaymentMethod/management/PaymentMethod.js";
|
|
13
14
|
export {
|
|
14
|
-
|
|
15
|
+
D as DashboardFlow,
|
|
15
16
|
t as DocumentManager,
|
|
16
|
-
|
|
17
|
+
M as EmployeeDocuments,
|
|
17
18
|
r as EmployeeList,
|
|
19
|
+
g as EmployeeListFlow,
|
|
18
20
|
f as FederalTaxes,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
P as PaymentMethod,
|
|
22
|
+
i as Profile,
|
|
23
|
+
l as StateTaxes,
|
|
22
24
|
d as TerminateEmployee,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
u as TerminationFlow,
|
|
26
|
+
T as TerminationSummary,
|
|
27
|
+
a as WorkAddress
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=employeeManagement.js.map
|