@digital-realty/ui-user-management 1.0.0-alpha.1 → 11.0.0
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/dist/index.html +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/dist/ui-user-management.js +2001 -0
- package/dist/ui-user-management2.js +1 -0
- package/dist/ui-user-management3.js +3 -0
- package/dist/ui-user-management4.js +3 -0
- package/dist/ui-user-management5.js +1 -0
- package/dist/ui-user-management6.js +1 -0
- package/dist/versions.js +1 -0
- package/dist/versions.json +1 -0
- package/package.json +11 -14
- package/dist/lib-components/packages/translations/locales/en/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/inventory-api/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/login-service-api/apis/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/login-service-api/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management12.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management13.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management14.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management15.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management16.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management17.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management18.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management19.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management20.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management21.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management22.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management23.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management24.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management25.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management26.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management27.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management28.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management29.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management30.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management31.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management32.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management33.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/api/user-management-api/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/assets/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/Shared/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/dev/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/general/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/layout/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/navigation/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/navigation/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/role-management/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/create-user/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-details/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/components/user-management/user-profile/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/events/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/events/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management12.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management13.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management14.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management15.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management16.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management17.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management18.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/test-ids/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/constants/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/controllers/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/entities/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/entities/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/mapping/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/domain/repositories/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/helpers/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/models/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/models/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/models/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/models/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/queries/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/queries/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/routes/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/routes/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management12.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management13.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management14.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management15.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management16.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management17.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management18.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management19.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management20.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management21.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management22.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management23.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/services/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/state/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management10.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management11.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management12.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management13.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management14.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management15.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management16.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management17.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management18.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management19.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management20.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management21.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management22.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management23.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management24.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management25.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management26.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management4.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management5.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management6.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management7.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management8.js +0 -1
- package/dist/ui-user-management/out-tsc/src/styles/ui-user-management9.js +0 -1
- package/dist/ui-user-management/out-tsc/src/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/views/ui-user-management.js +0 -1
- package/dist/ui-user-management/out-tsc/src/views/ui-user-management2.js +0 -1
- package/dist/ui-user-management/out-tsc/src/views/ui-user-management3.js +0 -1
- package/dist/ui-user-management/out-tsc/src/views/ui-user-management4.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__decorate as m}from"tslib";import{LitElement as r,html as o}from"lit";import{customElement as i}from"lit/decorators.js";import{T as p}from"./ui-user-management.js";import"@adobe/lit-mobx";import"@digital-realty/theme";import"toastify-js";import"@microsoft/applicationinsights-web";import"@digital-realty/ix-progress/ix-progress.js";import"@digital-realty/ix-icon-button/ix-icon-button.js";import"mobx";import"graphql-request";import"oidc-client-ts";import"i18next";import"lit-i18n";import"@vaadin/router";import"@digital-realty/ix-button/ix-button.js";import"@digital-realty/ix-dialog/ix-dialog.js";import"@digital-realty/ix-textbox/ix-textbox.js";import"@digital-realty/ix-phone-input/ix-phone-input.js";import"libphonenumber-js";import"lit/directives/class-map.js";import"validator";import"@digital-realty/ix-tree/ix-tree.js";import"@digital-realty/ix-multi-select/ix-multi-select.js";import"@digital-realty/ix-generic-tree";import"lit/directives/repeat.js";import"@digital-realty/ix-tabs/ix-tabs.js";import"@digital-realty/ix-tabs/ix-primary-tab.js";import"@digital-realty/ix-icon/ix-icon.js";import"@digital-realty/ix-card/ix-card.js";import"lodash.debounce";import"@digital-realty/ix-generic-tree/ix-generic-tree.js";import"@digital-realty/ix-accordion/ix-accordion.js";import"@digital-realty/ix-divider/ix-divider.js";import"@digital-realty/ix-phone-number/ix-phone-number.js";import"@material/web/icon/icon.js";import"@digital-realty/ix-select/ix-select.js";let t=class extends r{render(){return o` <div>User Management Home</div>`}};t.styles=[p],t=m([i("home-view")],t);export{t as HomeView};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{__decorate as c}from"tslib";import{css as E,LitElement as b,html as n,nothing as d}from"lit";import{property as L,state as p,queryAsync as W,customElement as v}from"lit/decorators.js";import k from"lodash.debounce";import"@digital-realty/ix-grid/ix-grid.js";import"@digital-realty/ix-grid/ix-grid-no-rows.js";import"@digital-realty/ix-icon-button/ix-icon-button.js";import"@digital-realty/ix-icon/ix-icon.js";import"@digital-realty/ix-phone-number/ix-phone-number.js";import"@material/web/icon/icon.js";import{T as x,i as N,d as y,a as D,e as O,n as P,R as A,u as z}from"./ui-user-management.js";import"@digital-realty/ix-button/ix-button.js";import"@adobe/lit-mobx";import"@digital-realty/theme";import"toastify-js";import"@microsoft/applicationinsights-web";import"@digital-realty/ix-progress/ix-progress.js";import"mobx";import"graphql-request";import"oidc-client-ts";import"i18next";import"lit-i18n";import"@vaadin/router";import"@digital-realty/ix-dialog/ix-dialog.js";import"@digital-realty/ix-textbox/ix-textbox.js";import"@digital-realty/ix-phone-input/ix-phone-input.js";import"libphonenumber-js";import"lit/directives/class-map.js";import"validator";import"@digital-realty/ix-tree/ix-tree.js";import"@digital-realty/ix-multi-select/ix-multi-select.js";import"@digital-realty/ix-generic-tree";import"lit/directives/repeat.js";import"@digital-realty/ix-tabs/ix-tabs.js";import"@digital-realty/ix-tabs/ix-primary-tab.js";import"@digital-realty/ix-card/ix-card.js";import"@digital-realty/ix-generic-tree/ix-generic-tree.js";import"@digital-realty/ix-accordion/ix-accordion.js";import"@digital-realty/ix-divider/ix-divider.js";import"@digital-realty/ix-select/ix-select.js";class h{}h.GRID="user-contacts-grid",h.RECORD_COUNT="user-contacts-record-count",h.GRID_ROW=t=>`user-contacts-grid-row-${t!=null?t:""}`,h.PROGRESS_BAR="user-contacts-progress-bar";const T={INVITED:["mail","rgb(255, 152, 0)"],DECLINED:["do_not_disturb_on","rgb(109, 117, 140)"],SUSPENDED:["warning","rgb(219, 0, 40)"],REMOVED:["delete_forever","rgb(109, 117, 140)"]};let l=class extends b{constructor(){super(...arguments),this.accountAssociations=[],this._accountsWithinColWidth=[],this._isTruncated=!1,this._isExpanded=!1,this._rows=[],this._spanWidths=[],this._ixButtonWidth=114,this._getStatusIcon=t=>{const[e,s]=T[t]||[null,null];return e&&s?n`<ix-icon style="--ix-icon-font-size:1.25rem;color:${s}" filled>${e}</ix-icon>`:null}}connectedCallback(){super.connectedCallback(),this.addEventListener("truncation-change",this._handleTruncationChange),this._resizeObserver=new ResizeObserver(()=>{this._checkForTruncation()}),this._resizeObserver.observe(this)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("truncation-change",this._handleTruncationChange),this._resizeObserver.disconnect()}updated(t){t.has("_isTruncated")&&this.dispatchEvent(new CustomEvent("truncation-change",{bubbles:!1}))}async _setSpanWidths(){const t=await this._accountsContainerPromise;if(!t)return;const e=[...t.querySelectorAll("span.account-name")];this._spanWidths=e.map(s=>{if(!this._isExpanded)return s.getBoundingClientRect().width;const i=parseFloat(window.getComputedStyle(s).paddingLeft)+parseFloat(window.getComputedStyle(s).paddingRight);return s.getBoundingClientRect().width-i})}async _checkForTruncation(){if(this._accountsWithinColWidth=this.accountAssociations,this._spanWidths.length||await this._setSpanWidths(),!this._spanWidths.find(t=>!t)){if(this._isExpanded)this._isExpanded&&this._spanWidths.length&&(this._rows=this._createRows(),this._adjustRowHeight());else{const t=this._calcNumAccountsThatFitPerRow();this._accountsWithinColWidth=this.accountAssociations.slice(0,t[0])}this._isTruncated=this._accountsWithinColWidth.length<this.accountAssociations.length}}_calcNumAccountsThatFitPerRow(){const t=[],e=this.clientWidth-this._ixButtonWidth;let s=0,i=0,o=0;for(;o<this._spanWidths.length;){const r=this._spanWidths[o];s+r>e&&i>0?(t.push(i),s=0,i=0):r>e&&i===0?(t.push(i),o++):(s+=r,i++,o++)}return t.push(i),t}_createRows(){const t=this._calcNumAccountsThatFitPerRow(),e=[];let s=0;for(let i=0;i<t.length;i++){const o=t[i]||1,r=s,u=r+o;e.push(this.accountAssociations.slice(r,u)),s=u}return e}async _adjustRowHeight(){const t=await this._accountsContainerPromise;if(!t)return;const e=this.parentElement,s=e.previousSibling;if(this._isExpanded&&this._rows.length>1){e.style.height="100%";const i=parseInt(window.getComputedStyle(s).paddingTop,10)+parseInt(window.getComputedStyle(s).paddingBottom,10),o=t.clientHeight+i;s.style.height=`${o}px`,s.style.alignContent="center"}else e.style="",s.style="",s.style.alignContent="start"}_handleTruncationChange(){this._isTruncated||this._adjustRowHeight()}async _handleViewMore(t){this._isExpanded=!0,this._adjustRowHeight(),t.stopPropagation()}async _handleViewLess(t){this._isExpanded=!1,this._adjustRowHeight(),t.stopPropagation()}_blockEvent(t){t.stopPropagation()}_renderViewMoreButton(){return this._isExpanded?d:n`<ix-button appearance="text" class="inline-block w-[${this._ixButtonWidth}px]" @click="${this._handleViewMore}" @pointerdown="${this._blockEvent}" @pointerup="${this._blockEvent}" @focusin="${this._blockEvent}"> View More </ix-button>`}_renderViewLessButton(){return this._isExpanded&&!this._isTruncated&&this._rows.length>1?n`<ix-button appearance="text" class="inline-block w-[${this._ixButtonWidth}px]" @click="${this._handleViewLess}" @pointerdown="${this._blockEvent}" @pointerup="${this._blockEvent}" @focusin="${this._blockEvent}"> View Less </ix-button>`:d}_renderAccount(t){var e,s;const i=this._getStatusIcon(t.status.toUpperCase());return n`<span class="account-name relative min-w-fit flex items-start text-nowrap last-of-type:pr-4 [&:not(:last-of-type)]:pr-8"> ${i?n`<span class="leading-7 pr-1">${i}</span>`:d} ${(s=(e=t.displayName)===null||e===void 0?void 0:e.trim())!==null&&s!==void 0?s:t.name.trim()} </span>`}render(){const t=this._rows.length===this.accountAssociations.length&&this._isExpanded;return n` <div id="accounts" class="flex flex-wrap text-sm ${t?"flex-col":""}"> ${this._isExpanded?n` ${this._rows.map(e=>n`<div class="account-row flex [&:not(:last-of-type)]:w-full mb-2"> ${e.map(s=>this._renderAccount(s))} </div>`)}`:n` ${this._accountsWithinColWidth.map(e=>this._renderAccount(e))}`} ${this._isTruncated?this._renderViewMoreButton():this._renderViewLessButton()} </div>`}};l.styles=[x,E`:host{display:flex;align-items:center;width:100%;overflow:hidden;--md-text-button-label-text-size:12px;--md-text-button-container-height:1.5rem;--md-text-button-with-leading-icon-leading-space:4px;--md-text-button-with-leading-icon-trailing-space:4px;--text-default-line-height:1.4rem}.account-name:not(:last-of-type)::after{content:'';display:block;background-color:#0922411f;width:2px;height:14px;position:absolute;right:1em;top:50%;transform:translate(50%,-50%);margin-right:1px}`],c([L({type:Array})],l.prototype,"accountAssociations",void 0),c([p()],l.prototype,"_accountsWithinColWidth",void 0),c([p()],l.prototype,"_isTruncated",void 0),c([p()],l.prototype,"_isExpanded",void 0),c([p()],l.prototype,"_rows",void 0),c([W("#accounts")],l.prototype,"_accountsContainerPromise",void 0),l=c([v("accounts-cell")],l);const U=t=>{const[e,s]=T[t]||[null,null];return e&&s?n`<ix-icon style="--ix-icon-font-size:1.25rem;color:${s}" filled>${e}</ix-icon>`:null},C=[{name:"firstName",header:"First name",bodyRenderer:t=>n`<span data-testid="${h.GRID_ROW(t.id)}">${t.firstName}</span>`,sortable:!0,filterable:!0,hidden:!1,width:"8rem"},{name:"lastName",header:"Last name",bodyRenderer:t=>n`<span>${t.lastName}</span>`,sortable:!0,filterable:!0,width:"8rem"},{name:"email",header:"Email Address",bodyRenderer:t=>n`<span>${t.email}</span>`,sortable:!0,width:"10rem",filterable:!0},{name:"phone",header:"Phone Number",bodyRenderer:t=>n`<ix-phone-number class="phone-number" .number="${t.phone}"></ix-phone-number>`,sortable:!0,width:"9rem"},{name:"accounts",header:"Account",autoWidth:!0,bodyRenderer:t=>N()?n`<accounts-cell .accountAssociations="${t.accounts}"></accounts-cell>`:n`<div class="accounts"> ${t.accounts.map(e=>{var s;return n` ${U(e.status.toUpperCase())||d} <span style="min-width:fit-content;padding-right:2rem">${(s=e.displayName)!==null&&s!==void 0?s:e.name}</span>`})} </div>`}];let m=class extends b{constructor(){super(...arguments),this.localStorageID="usermanagement",this.contacts=[],this.pageData=[],this.recordCount=0,this.sort="firstName",this.order="asc",this.page=1,this.size=25,this.columnReorderingAllowed=!0,this.isLoading=void 0,this.filter={},this.rowsLength=this.contacts.length,this.handleChange=k(async t=>{if(this.isLoading)return;const{columnName:e,page:s,pageSize:i,sortOrder:o,filters:r}=t.detail;this.getTablePage({columnName:e,page:s,pageSize:i,sortOrder:o,filters:r})},1e3,{leading:!1}),this.formatPage=(t,e,s)=>{let i=[...this.contacts];Object.entries(s).forEach(([o,r])=>{i=i.filter(u=>u[o].toLowerCase().includes(r.toLowerCase()))}),t!==""&&e==="asc"?i.sort((o,r)=>o[t].localeCompare(r[t],void 0,{sensitivity:"base"})):t!==""&&e==="desc"&&i.sort((o,r)=>r[t].localeCompare(o[t],void 0,{sensitivity:"base"})),i.length<this.contacts.length?this.rowsLength=i.length:this.rowsLength=this.contacts.length,this.pageData=i,this.requestUpdate()},this.camelCaseToTitleCase=t=>{const e=t.split("");return e[0]=t[0].toUpperCase(),e.join("").replace(/([A-Z])/g," $1").trim()},this.downloadCsv=t=>{t==="all"&&this.downloadAllAsCsv(),t==="filter"&&this.downloadFilterAsCsv()},this.downloadAllAsCsv=async()=>{const t={size:999999999,page:1,sort:this.mapToApiColumn(this.sort),order:this.order};this.isLoading=!0,y.search(t).then(e=>{this.parseDataToCSV(e.contacts,"all-users").then(()=>{this.isLoading=!1})})},this.downloadFilterAsCsv=()=>{var t,e,s,i;const o={size:999999999,page:1,sort:this.mapToApiColumn(this.sort),order:this.order,firstName:(t=this.filter)===null||t===void 0?void 0:t.firstName,lastName:(e=this.filter)===null||e===void 0?void 0:e.lastName,email:(s=this.filter)===null||s===void 0?void 0:s.email,phoneNumber:(i=this.filter)===null||i===void 0?void 0:i.phoneNumber};y.search(o).then(r=>{this.parseDataToCSV(r.contacts,"current-view").then(()=>{this.isLoading=!1})})}}async getTablePage(t){if(!D(A.UserManagement))return;this.isLoading=!0,this.pageData=[],t&&(this.page=t.page||this.page,this.size=t.pageSize||this.size,this.sort=t.columnName||this.sort,this.order=t.sortOrder||this.order,this.filter=t.filters||this.filter);const e=await y.search({page:this.page,size:this.size,firstName:this.filter.firstName,lastName:this.filter.lastName,email:this.filter.email,phoneNumber:this.filter.phoneNumber,sort:this.mapToApiColumn(this.sort),order:this.order});this.contacts=e.contacts,this.recordCount=e.recordCount,this.formatPage(this.sort,this.order,this.filter),this.isLoading=!1}firstUpdated(t){super.firstUpdated(t),this.dispatchEvent(new Event("user-contacts-loaded",{bubbles:!0,composed:!0}))}mapToApiColumn(t){switch(t){case"firstName":return"first_name";case"lastName":return"last_name";default:return t}}async parseDataToCSV(t,e){let s=[];const i=JSON.parse(JSON.stringify(t)),o=localStorage.getItem(`ix-grid-${this.localStorageID}-columns`);if(o)try{s=JSON.parse(o).filter(a=>!a.hidden)}catch(a){throw new Error(`Invalid JSON in disabled columns: ${a}`)}!s.length&&C&&(s=C);const r=i.map(a=>s.reduce((g,{name:w})=>(g[w]=Array.isArray(a[w])?a[w].map(R=>{var f;return(f=R.displayName)!==null&&f!==void 0?f:R.name}).join(" | "):a[w],g),{}));if(!(r.length&&r.some(a=>Object.keys(a).length>0)))return O("CSV could not be downloaded. No records available.",3e3,"center"),Promise.reject();const u=Object.keys(r[0]).map(a=>`"${this.camelCaseToTitleCase(a)}"`).join(",").replace("Email","Email Address").replace("Phone","Phone Number"),S=r.map(a=>Object.values(a).map(g=>`"${g}"`).join(",")),$=`${u}
|
|
2
|
+
${S.join(`
|
|
3
|
+
`).toString()}`;return this.createDownload($,e),$}createDownload(t,e){const s=new Blob([t],{type:"text/csv;charset=utf-8;"}),i=URL.createObjectURL(s),o=document.createElement("a");o.href=i,o.target="_blank",o.download=e,o.click(),URL.revokeObjectURL(i)}renderNoRows(){return this.isLoading||this.isLoading===void 0?d:n` <ix-grid-no-rows slot="no-rows" .icon="warning-circle-outline" .type="warning"></ix-grid-no-rows> `}renderProgressBar(){return this.isLoading?n`<ix-progress aria-label="User contacts" indeterminate data-testid="${h.PROGRESS_BAR}"></ix-progress>`:d}render(){return n`<div data-theme="ix-theme" class="container"> <ix-grid session-storage-key="um-contacts" data-testid="${h.GRID}" .columns="${C}" .recordCount="${this.recordCount}" .rows="${this.pageData}" .page="${this.page}" .pageSize="${this.size}" theme="${N()?"no-border wrap-cell-content":"no-border"}" .columnReorderingAllowed="${this.columnReorderingAllowed}" .localStorageID="${this.localStorageID}" @change="${t=>{this.handleChange(t)}}" @cell-focus="${t=>{t.detail.context.section==="body"&&P(A.UserManagementDetails,`?id=${t.detail.context.item.id}`)}}" @download="${t=>this.downloadCsv(t.detail)}"> ${this.recordCount?n` <div slot="header"> <h2 class="dlr-text-heading" data-testid="${h.RECORD_COUNT}"> ${this.recordCount} Users </h2> </div>`:d} <div slot="under-header" style="padding:0 1px">${this.renderProgressBar()}</div> ${this.renderNoRows()} </ix-grid> </div>`}};m.styles=[x,E`:host{--ix-phone-number-font-size:14px;--ix-phone-number-text-color:rgba(24, 39, 57, 0.94)}`],c([p()],m.prototype,"isLoading",void 0),c([p()],m.prototype,"filter",void 0),c([p()],m.prototype,"rowsLength",void 0),m=c([v("user-contacts")],m);let _=class extends b{async connectedCallback(){super.connectedCallback(),await z.refreshPermissions()}render(){return n` <user-contacts class="flex flex-col h-full md:mx-4 lg:mx-0"></user-contacts> `}};_.styles=[x],_=c([v("user-management-view")],_);export{_ as UserManagementView};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{__decorate as s}from"tslib";import{css as B,LitElement as L,nothing as c,html as l,svg as oe}from"lit";import{property as m,customElement as b,state as d,query as P,queryAsync as Z}from"lit/decorators.js";import{MobxLitElement as S}from"@adobe/lit-mobx";import"@digital-realty/ix-progress/ix-progress.js";import{B as se,b as r,T as R,m as J,g as le,r as w,A as g,R as I,u as p,c as h,f as $,n as N,h as D,j as A,s as F,k as K,l as Y,o as Q,p as G,q as j,e as X,t as re,v as ae}from"./ui-user-management.js";import"@digital-realty/ix-button/ix-button.js";import"@digital-realty/ix-icon-button/ix-icon-button.js";import{elementTheme as z,baseTheme as ne}from"@digital-realty/theme";import{reaction as de}from"mobx";import"@digital-realty/ix-dropdown-tree/ix-dropdown-tree.js";import"@digital-realty/ix-icon/ix-icon.js";import"@digital-realty/ix-dialog/ix-dialog.js";import"@digital-realty/ix-textbox/ix-textbox.js";import"@digital-realty/ix-tree/ix-tree.js";import{repeat as M}from"lit/directives/repeat.js";import"@digital-realty/ix-select/ix-select.js";import"@digital-realty/ix-tooltip/ix-tooltip.js";import"./ui-user-management5.js";import"toastify-js";import"@microsoft/applicationinsights-web";import"graphql-request";import"oidc-client-ts";import"i18next";import"lit-i18n";import"@vaadin/router";import"@digital-realty/ix-phone-input/ix-phone-input.js";import"libphonenumber-js";import"lit/directives/class-map.js";import"validator";import"@digital-realty/ix-multi-select/ix-multi-select.js";import"@digital-realty/ix-generic-tree";import"@digital-realty/ix-tabs/ix-tabs.js";import"@digital-realty/ix-tabs/ix-primary-tab.js";import"@digital-realty/ix-card/ix-card.js";import"lodash.debounce";import"@digital-realty/ix-generic-tree/ix-generic-tree.js";import"@digital-realty/ix-accordion/ix-accordion.js";import"@digital-realty/ix-divider/ix-divider.js";import"@digital-realty/ix-phone-number/ix-phone-number.js";import"@material/web/icon/icon.js";const ce=B`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}.role-list-item{display:flex}.role-list-item a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;width:100%;height:40px;border-radius:0 30px 30px 0}.role-list-item a:hover{transition:.25s}a.active{background-color:rgba(20,86,224,.1)}`;class pe extends se{initializeDraft(){this.set({id:"",name:"",accountNumber:null,roleType:r.Default,permissions:[]})}}const n=new pe({});let O=class extends L{constructor(){super(...arguments),this.canDuplicate=!1,this.active=!1}render(){var e,t;if(!(!((e=this.roleData)===null||e===void 0)&&e.id))return c;const i={"flex items-center hover:bg-indigo-100 rounded-r-full":!0,"bg-indigo-100 active":this.active},o={"font-bold":this.active,"dlr-text-small grow mx-4":!0,"my-2":!this.canDuplicate};return l` <div class="${J(i)}" data-testid="role-list-item-${this.roleData.id}"> <a class="${J(o)}" href="${`${le(I.RoleManagement)}?id=${this.roleData.id}`}" @click="${a=>{n.get().name&&(a.preventDefault(),a.stopPropagation(),this.dispatchEvent(new CustomEvent("rm-unsaved-changes",{bubbles:!0,composed:!0})))}}"> ${(t=this.roleData)===null||t===void 0?void 0:t.name} </a> ${this.canDuplicate?l` <ix-icon-button class="role-list-item__duplicate-btn" ?disabled="${!this.canDuplicate}" data-testid="duplicate-btn" @click="${()=>w(this,g.DuplicateRole,this.roleData.id)}" icon="content_copy"> </ix-icon-button> `:""} </div> `}};O.styles=[R,ce],s([m({type:Object})],O.prototype,"roleData",void 0),s([m({type:Boolean})],O.prototype,"canDuplicate",void 0),s([m({type:Boolean})],O.prototype,"active",void 0),O=s([b("dr-role")],O);const ue={[r.Default]:"Default System Roles",[r.Internal]:"Internal Roles"};let T=class extends S{constructor(){super(...arguments),this.roleType=r.Default,this.canCreate=!1,this.header=""}get headerFromRoleType(){return ue[this.roleType]}canDuplicate(){return this.roleType===r.Internal?p.hasInternalRolesCreate():p.hasCustomRolesCreate()}get filterPredicate(){return this.roleType===r.Internal?e=>e.roleType===r.Internal||e.roleType===r.GlobalAccess:e=>e.roleType===r.Default}firstUpdated(){this.header=this.headerFromRoleType}renderRoles(){return l` <ul> ${h.get().filter(this.filterPredicate).map(e=>l` <li class="overflow-hidden"> <dr-role .roleData="${e}" .active="${this.activeRoleId===e.id}" .canDuplicate="${this.canDuplicate()}"></dr-role> </li> `)} </ul> `}render(){return l` <div class="relative overflow-auto lg:h-auto lg:grow-0 lg:overflow-visible"> <div class="flex items-center overflow-hidden"> <h2 class="grow text-xl font-bold dlr-text-heading">${this.header}</h2> ${this.canCreate?l`<ix-icon-button id="create-role-btn" class="md:hidden" @click="${()=>w(this,g.CreateRole)}" role="button" icon="add" aria-label="Create Role" data-testid="create-${this.roleType}-btn-mobile"></ix-icon-button> <ix-button class="hidden md:block" appearance="text" @click="${()=>w(this,g.CreateRole)}" role="button" has-icon data-testid="create-${this.roleType}-btn-desktop"> <md-icon slot="icon">add</md-icon> Create Role </ix-button>`:c} </div> <div class="role-list-content mt-4">${this.renderRoles()}</div> </div> `}};T.styles=[z,R],s([m()],T.prototype,"roleType",void 0),s([m()],T.prototype,"activeRoleId",void 0),s([m({type:Boolean})],T.prototype,"canCreate",void 0),s([d()],T.prototype,"header",void 0),T=s([b("role-list")],T);let _=class extends S{constructor(){super(...arguments),this.canCreate=!1}connectedCallback(){super.connectedCallback(),this.disposeReaction=de(()=>$.get(),()=>{this.requestUpdate("customRolesTree")}),this.canCreate=p.hasCustomRolesCreate(),this.customRolesTree=$.get()}disconnectedCallback(){super.disconnectedCallback(),this.disposeReaction()}willUpdate(e){e.has("customRolesTree")&&(this.customRolesTree=$.get())}handleToggle(e){$.toggleNodeExpanded(e.detail.message.node.id)}renderRoles(){var e;if(!(!((e=this.customRolesTree)===null||e===void 0)&&e.tree))return c;const{tree:t,isEndChild:i}=this.customRolesTree;return l` ${i?this.renderFlatRoles():l`<ix-dropdown-tree .rootNode="${t}" .selectedId="${this.activeRoleId}" @node-action="${o=>w(this,g.DuplicateRole,o.detail.message.id)}" @select="${o=>{n.get().name?this.dispatchEvent(new CustomEvent("rm-unsaved-changes")):N(I.RoleManagement,`?id=${o.detail.message}`)}}" ?hasActionButton="${this.canCreate}" @tree-node-toggle="${this.handleToggle}"></ix-dropdown-tree>`}`}renderFlatRoles(){const e=h.get().filter(t=>t.accountNumber===D.getAccountNumber()&&t.roleType===r.Custom);return e.length?l` <ul> ${e.map(t=>l` <li class="overflow-hidden"> <dr-role .roleData="${t}" ?active="${t.id===this.activeRoleId}" ?canDuplicate="${this.canCreate}"></dr-role> </li> `)} </ul> `:c}render(){return l` <div> <div class="flex justify-between items-center"> <h2 class="grow text-xl font-bold dlr-text-heading">Custom Roles</h2> ${this.canCreate?l` <ix-button data-testid="create-role-button" icon="add" appearance="text" role="button" aria-label="Create Role" @click="${()=>w(this,g.CreateRole)}" has-icon> <ix-icon slot="icon">add</ix-icon> <span class="uppercase font-bold tracking-wider">Create Role</span> </ix-button> `:c} </div> ${this.renderRoles()} </div> `}};_.styles=[R],s([m({type:String})],_.prototype,"activeRoleId",void 0),s([d()],_.prototype,"customRolesTree",void 0),s([d()],_.prototype,"canCreate",void 0),_=s([b("custom-roles")],_);const he=B`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}`,H={name:"",accountNumber:"",roleType:r.Custom,permissions:[]};let v=class extends S{constructor(){super(...arguments),this.draft=structuredClone(H),this.isOpen=!1,this.toggleAccountSelector=!1,this.isValid=!1,this.addingRole=!1,this.cancelling=!1}updated(e){var t;super.updated(e),e.get("toggleAccountSelector")===!1&&((t=this.ixTree)===null||t===void 0||t.then(i=>{var o;const a=(o=i==null?void 0:i.shadowRoot)===null||o===void 0?void 0:o.querySelectorAll("ix-tree-node");a&&a.forEach(f=>{var y;const V=(y=f.shadowRoot)===null||y===void 0?void 0:y.querySelector('[role="treeitem"]');V&&V.style.setProperty("overflow","hidden")})}))}get accountSelectionRequired(){var e,t,i;return!((t=(e=this.authorizedAccountTree)===null||e===void 0?void 0:e.children)===null||t===void 0)&&t.length?this.authorizedAccountTree.children.length>1?this.roleType===r.Custom:!!(!((i=this.authorizedAccountTree.children[0].children)===null||i===void 0)&&i.length)&&this.roleType===r.Custom:!1}handleOpened(){switch(this.draft=structuredClone(H),this.roleType&&(this.draft.roleType=this.roleType),this.roleType){case r.Custom:this.draft.accountNumber=D.getAccountNumber();break;case r.Internal:case r.Default:this.draft.accountNumber=null;break}}validateDialog(){var e;if(!this.createRoleInput||!A(this.createRoleInput)){this.isValid=!1;return}if(this.accountSelectionRequired&&!(!((e=this.selectedAccount)===null||e===void 0)&&e.accountNumber)){this.isValid=!1;return}this.isValid=!0}handleDialogCancel(){this.handleClose(!0)}handleClose(e){w(this,g.CloseDialog),this.resetDialog(e)}resetDialog(e){this.isValid=!1,this.toggleAccountSelector=!1,this.createRoleInput&&F(this.createRoleInput,""),this.draft=structuredClone(H),e?this.clearSelectedAccount():this.selectedAccount={}}clearSelectedAccount(){this.selectedAccount={},n.clear()}handleAccountSelection(e){this.selectedAccount={accountNumber:e.id,name:e.label},this.validateDialog()}handleCreateRole(){var e;if(!this.roleType||!A(this.createRoleInput)||this.accountSelectionRequired&&!this.selectedAccount){K.displayError("Something went wrong, please try again.");return}const t=(e=this.selectedAccount)===null||e===void 0?void 0:e.accountNumber;this.draft={...this.draft,name:A(this.createRoleInput),roleType:this.roleType,accountNumber:t!=null?t:this.draft.accountNumber},n.initializeDraft(),n.update(this.draft),this.handleClose(),N(I.RoleManagement,"?id=new")}renderAccountSelector(){var e;const t=Y().filter(i=>p.hasCustomRolesCreate(i.accountNumber));return this.authorizedAccountTree=Q(t),this.accountSelectionRequired?l` <p class="text-black font-medium text-base">Select Account</p> ${!((e=this.selectedAccount)===null||e===void 0)&&e.name?l` <div class="px-3 py-2 bg-blue-gp rounded-full max-w-min text-nowrap"> <span class="tracking-wider"> ${this.selectedAccount.name} </span> </div> `:c} ${this.toggleAccountSelector?l` <div class="border-solid border-2 rounded-md max-h-96 max-w-lg overflow-auto"> <ix-tree id="account-select-tree" .rootNode="${this.authorizedAccountTree}" @on-tree-node-selected="${i=>this.handleAccountSelection(i.detail.message)}" data-testid="create-role-dialog-account-tree"> </ix-tree> </div> `:c} <div class="mt-4 flex"> <ix-button appearance="outlined" @click="${i=>{i.preventDefault(),this.toggleAccountSelector=!this.toggleAccountSelector}}" data-testid="create-role-dialog-btn-toggle-accounts"> ${this.toggleAccountSelector?l`Hide Accounts`:l`Show Accounts`} </ix-button> </div>`:c}renderLoading(){l`<ix-progress class="mt-5 mx-auto" indeterminate></ix-progress>`}renderContent(){return l` <ix-textbox id="create-role-input" data-testid="create-role-name" class="mb-4" type="text" label="Role Name" placeholder="i.e. New Role" errorText="" @input="${e=>{this.createRoleInput&&F(this.createRoleInput,e.target.value),this.validateDialog()}}"></ix-textbox> <div>${this.renderAccountSelector()}</div> `}renderFooter(){return l` <div class="dialog-actions" slot="actions"> <ix-button form="create-form-id" appearance="text" ?disabled="${this.addingRole}" ?submitting="${this.cancelling}" @click="${this.handleDialogCancel}"> Cancel </ix-button> <ix-button data-testid="create-role-dialog-next-btn" form="create-form-id" appearance="text" ?disabled="${!this.isValid||this.cancelling||!this.isOpen}" ?submitting="${this.addingRole}" @click="${this.handleCreateRole}"> Next </ix-button> </div> `}render(){return l`<ix-dialog class="dialog z-50 relative" id="create-role-dialog" ?open="${this.isOpen}" @open="${this.handleOpened}" @cancel="${this.handleDialogCancel}"> <div class="dlr-text-heading" slot="headline">Create Role</div> <form id="create-form-id" class="w-[340px] md:w-[560px]" slot="content" method="dialog"> ${this.renderContent()} ${this.renderFooter()} </form> </ix-dialog>`}};v.styles=[z,R,he],s([m({type:Boolean})],v.prototype,"isOpen",void 0),s([m()],v.prototype,"roleType",void 0),s([d()],v.prototype,"toggleAccountSelector",void 0),s([d()],v.prototype,"authorizedAccountTree",void 0),s([d()],v.prototype,"selectedAccount",void 0),s([d()],v.prototype,"isValid",void 0),s([d()],v.prototype,"addingRole",void 0),s([d()],v.prototype,"cancelling",void 0),s([P("#create-role-input")],v.prototype,"createRoleInput",void 0),s([Z("ix-tree")],v.prototype,"ixTree",void 0),v=s([b("create-role-dialog")],v);let x=class extends S{constructor(){super(...arguments),this.resetDialogBinding=this.resetDialog.bind(this),this.draft={name:"",accountNumber:"",roleType:r.Custom,permissions:[]},this.isOpen=!1,this.toggleAccountSelector=!1,this.isValid=!1,this.duplicatingRole=!1,this.cancelling=!1}updated(e){var t;super.updated(e),e.get("toggleAccountSelector")===!1&&((t=this.ixTree)===null||t===void 0||t.then(i=>{var o;const a=(o=i==null?void 0:i.shadowRoot)===null||o===void 0?void 0:o.querySelectorAll("ix-tree-node");a&&a.forEach(f=>{var y;const V=(y=f.shadowRoot)===null||y===void 0?void 0:y.querySelector('[role="treeitem"]');V&&V.style.setProperty("overflow","hidden")})}))}get accountSelectionRequired(){var e,t,i,o,a;return!((t=(e=this.authorizedAccountTree)===null||e===void 0?void 0:e.children)===null||t===void 0)&&t.length?this.authorizedAccountTree.children.length>1?((i=this.selectedRole)===null||i===void 0?void 0:i.roleType)===r.Custom:!!(!((o=this.authorizedAccountTree.children[0].children)===null||o===void 0)&&o.length)&&((a=this.selectedRole)===null||a===void 0?void 0:a.roleType)===r.Custom:!1}connectedCallback(){super.connectedCallback(),this.addEventListener(g.OpenDialog,this.resetDialogBinding)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(g.OpenDialog,this.resetDialogBinding)}willUpdate(e){e.has("isOpen")&&this.validateDialog()}validateDialog(){var e;if(!this.duplicateRoleInput||!A(this.duplicateRoleInput)){this.isValid=!1;return}if(this.accountSelectionRequired&&!(!((e=this.selectedAccount)===null||e===void 0)&&e.accountNumber)){this.isValid=!1;return}this.isValid=!0}handleClose(){w(this,g.CloseDialog)}resetDialog(){this.validateDialog(),this.toggleAccountSelector=!1,this.clearSelectedAccount()}clearSelectedAccount(){this.selectedAccount={},n.clear()}handleAccountSelection(e){this.selectedAccount={accountNumber:e.id,name:e.label},this.validateDialog()}handleDuplicateRole(){if(!this.selectedAccount||!this.selectedRole){K.displayError("Something went wrong, please try again.");return}this.draft={name:this.selectedRole.name,accountNumber:this.selectedAccount.accountNumber,roleType:this.selectedRole.roleType===r.GlobalAccess?r.Internal:this.selectedRole.roleType,permissions:this.selectedRole.permissions},this.draft.name=A(this.duplicateRoleInput),this.accountSelectionRequired||(this.draft.accountNumber=D.getAccountNumber()),this.selectedRole.roleType!==r.Custom&&(this.draft.accountNumber=null),N(I.RoleManagement,"?id=new"),n.update(this.draft),this.handleClose()}renderAccountSelector(){var e;const t=Y().filter(i=>p.hasCustomRolesCreate(i.accountNumber));return this.authorizedAccountTree=Q(t),this.accountSelectionRequired?l` ${!((e=this.selectedAccount)===null||e===void 0)&&e.name?l` <div class="px-3 py-2 bg-blue-gp rounded-full max-w-min text-nowrap"> <span class="tracking-wider"> ${this.selectedAccount.name} </span> </div> `:c} ${this.toggleAccountSelector?l` <div class="border-solid border-2 rounded-md max-h-96 max-w-lg overflow-auto"> <ix-tree id="account-select-tree" .rootNode="${this.authorizedAccountTree}" @on-tree-node-selected="${i=>this.handleAccountSelection(i.detail.message)}"></ix-tree> </div> `:c} <div class="mt-4 flex"> <ix-button data-testid="duplicate-role-show-accounts-btn" appearance="outlined" @click="${i=>{i.preventDefault(),this.toggleAccountSelector=!this.toggleAccountSelector}}"> ${this.toggleAccountSelector?l`Hide Accounts`:l`Show Accounts`} </ix-button> </div>`:c}renderLoading(){l`<ix-progress class="mt-5 mx-auto" ?indeterminate="${!0}"></ix-progress>`}render(){var e;return l`<ix-dialog class="dialog z-50 relative" id="duplicate-role-dialog" ?open="${this.isOpen}" @cancel="${this.handleClose}"> <div class="dlr-text-heading" slot="headline">Duplicate Role</div> <form class="dialog-form w-[340px] md:w-[560px] max-w-[560px]" id="duplicate-form-id" slot="content" method="dialog"> <p class="mb-7"> All permissions of the selected role will be duplicated to the new role. Be sure to give your new role a unique name. </p> <ix-textbox id="duplicate-role-input" class="mb-4" type="text" label="Role Name" placeholder="i.e. New Role" errorText="" value="${(e=this.selectedRole)===null||e===void 0?void 0:e.name} (Copy)" @input="${t=>{this.duplicateRoleInput&&F(this.duplicateRoleInput,t.target.value),this.validateDialog()}}"></ix-textbox> <div>${this.renderAccountSelector()}</div> </form> <div class="dialog-actions" slot="actions"> <ix-button form="duplicate-form-id" appearance="text" ?disabled="${this.duplicatingRole}" @click="${this.handleClose}"> Cancel </ix-button> <ix-button data-testid="save-duplicate-btn" class="dialog-actions__button btn btn_primary" form="duplicate-form-id" appearance="text" ?disabled="${!this.isValid||this.cancelling||!this.isOpen}" ?submitting="${this.duplicatingRole}" @click="${this.handleDuplicateRole}"> Duplicate </ix-button> </div> </ix-dialog>`}};x.styles=[z,R],s([m({type:Boolean})],x.prototype,"isOpen",void 0),s([m({type:Object})],x.prototype,"selectedRole",void 0),s([d()],x.prototype,"toggleAccountSelector",void 0),s([d()],x.prototype,"authorizedAccountTree",void 0),s([d()],x.prototype,"selectedAccount",void 0),s([d()],x.prototype,"isValid",void 0),s([d()],x.prototype,"duplicatingRole",void 0),s([d()],x.prototype,"cancelling",void 0),s([P("#duplicate-role-input")],x.prototype,"duplicateRoleInput",void 0),s([Z("ix-tree")],x.prototype,"ixTree",void 0),x=s([b("duplicate-role-dialog")],x);let q=class extends L{constructor(){super(...arguments),this.isOpen=!1}closeDialog(){this.isOpen=!1,this.dispatchEvent(new CustomEvent(g.CloseDialog))}render(){return l`<ix-dialog id="unsaved-changes-dialog" ?open="${this.isOpen}" @closed="${()=>this.closeDialog()}" class="dialog z-50 relative"> <div slot="headline" class="dlr-text-heading">Attention</div> <div slot="content" id="duplicate-form-id" method="dialog" class="max-w-[560px]"> <p>There are unsaved changes on this page, save or discard them before leaving.</p> </div> <div class="dialog-actions" slot="actions"> <ix-button form="unsaved-changes-form-id" appearance="text" @click="${()=>this.closeDialog()}"> OK </ix-button> </div> </ix-dialog>`}};q.styles=[z,R],s([m({type:Boolean})],q.prototype,"isOpen",void 0),q=s([b("unsaved-changes-dialog")],q);let C=class extends L{constructor(){super(...arguments),this.isCreateDialogOpen=!1,this.isDuplicateDialogOpen=!1}handleDuplicate(e){var t;const i=e.detail;if(n.get().name){e.stopPropagation(),e.preventDefault(),this.unsavedChangesDialog.isOpen=!0;return}this.isDuplicateDialogOpen=!0,this.selectedRole=h.get().find(o=>o.id===i),((t=this.selectedRole)===null||t===void 0?void 0:t.roleType)===r.Default&&(this.selectedRole.roleType=r.Custom),w(this.duplicateRoleDialog,g.OpenDialog)}handleCreate(e,t){if(n.get().name){e.stopPropagation(),e.preventDefault(),this.unsavedChangesDialog.isOpen=!0;return}this.isCreateDialogOpen=!0,this.roleGroup=t}render(){return l` <div class="mx-4 lg:mx-0 gap-2 lg:sticky lg:top-[--top-height] max-h-[25vh] lg:max-h-none lg:h-[--content-height] overflow-x-hidden overflow-y-auto md:grid md:grid-cols-2 md:grid-rows-1 lg:flex flex flex-col"> ${p.hasDefaultSystemRolesRead()?l` <role-list class="md:overflow-auto lg:overflow-visible" .activeRoleId="${this.currentRoleId}" .roleType="${r.Default}" .canCreate="${p.hasDefaultSystemRolesCreate()}" @create-role="${e=>{this.handleCreate(e,r.Default)}}" @duplicate-role="${e=>{this.handleDuplicate(e)}}" @rm-unsaved-changes="${e=>{e.stopPropagation(),this.unsavedChangesDialog.isOpen=!0}}" data-testid="Default System Roles"></role-list>`:c} ${p.hasCustomRolesRead()?l` <custom-roles class="md:overflow-x-hidden md:overflow-y-auto lg:overflow-visible" .activeRoleId="${this.currentRoleId}" .canCreate="${p.hasCustomRolesCreate()}" @create-role="${e=>this.handleCreate(e,r.Custom)}" @duplicate-role="${e=>this.handleDuplicate(e)}" @rm-unsaved-changes="${e=>{e.stopPropagation(),this.unsavedChangesDialog.isOpen=!0}}" data-testid="Custom Roles"></custom-roles>`:c} ${p.hasInternalRolesRead()?l`<role-list class="md:overflow-auto lg:overflow-visible" .activeRoleId="${this.currentRoleId}" .roleType="${r.Internal}" .canCreate="${p.hasInternalRolesCreate()}" @create-role="${e=>{this.handleCreate(e,r.Internal)}}" @duplicate-role="${e=>{this.handleDuplicate(e)}}" @rm-unsaved-changes="${e=>{e.stopPropagation(),this.unsavedChangesDialog.isOpen=!0}}" data-testid="Internal Roles"></role-list>`:""} </div> ${p.hasInternalRolesUpdate()||p.hasCustomRolesUpdate()?l`<create-role-dialog ?isOpen="${this.isCreateDialogOpen}" .roleType="${this.roleGroup}" @close-dialog="${()=>{this.isCreateDialogOpen=!1}}"></create-role-dialog> <duplicate-role-dialog ?isOpen="${this.isDuplicateDialogOpen}" .selectedRole="${this.selectedRole}" @close-dialog="${()=>{this.isDuplicateDialogOpen=!1,this.selectedRole=void 0}}"></duplicate-role-dialog>`:c} <unsaved-changes-dialog class="z-50 relative"></unsaved-changes-dialog> `}};C.styles=[R],s([m()],C.prototype,"currentRoleId",void 0),s([d()],C.prototype,"isCreateDialogOpen",void 0),s([d()],C.prototype,"isDuplicateDialogOpen",void 0),s([P("duplicate-role-dialog")],C.prototype,"duplicateRoleDialog",void 0),s([P("unsaved-changes-dialog")],C.prototype,"unsavedChangesDialog",void 0),C=s([b("all-roles")],C);const me=B`ix-icon{font-size:1.5rem;line-height:1.5rem}`;let W=class extends L{render(){return l` <div class="bg-surface p-5 dlr-text-caption"> <div class="flex items-center mb-3"> <ix-icon slot="default" class="text-graphics-fill mt-1 mr-2">info</ix-icon> <h4>Privilege Descriptions</h4> </div> <h5 class="dlr-text-caption-alt uppercase">Approve</h5> <p class="mb-4 dlr-text-caption"> Ability to approve, create, update, and view all data in the permission </p> <h5 class="dlr-text-caption-alt uppercase">Create</h5> <p class="mb-4">Ability to create, update, and view all data in the permission.</p> <h5 class="dlr-text-caption-alt uppercase">Update</h5> <p class="mb-4">Cannot create new data, but can update all data in the permission.</p> <h5 class="dlr-text-caption-alt uppercase">Read</h5> <p class="mb-1">Read-only access to all data in the permission.</p> </div> `}};W.styles=[R,me],W=s([b("privilege-descriptions")],W);const ge=B`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}ix-select{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px;--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}.role-permission{color:#092241;position:relative;overflow-anchor:none;padding:11px 18px;border:1px solid rgba(9,34,65,.12);border-radius:8px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}#delete-permission-button{--md-icon-button-icon-size:18px}.permissions-container{display:grid;grid-template-columns:1fr auto 257px;grid-template-rows:auto auto 1fr;grid-template-areas:"heading global-access description" "list list description" "btn-add btn-add description";align-items:start;padding:2rem 3rem}.permissions-container .heading{grid-area:heading;height:2.75rem}.permissions-container .global-access{grid-area:global-access;display:flex;align-items:center;gap:.5rem;font-size:14px;color:var(--cp-natural-blue-10)}.permissions-container .global-access ix-checkbox{display:flex}.permissions-container .list{grid-area:list}.permissions-container .description{grid-area:description;margin-left:2rem;width:100%}.permissions-container .btn-add{grid-area:btn-add;margin-block:.75rem}@media screen and (max-width:1475px){.permissions-container{grid-template-columns:1fr auto;grid-template-areas:"heading global-access" "list list" "btn-add btn-add" "description description";padding-inline:1rem}.permissions-container .description{margin-left:0}}`;class ve{constructor(t){this.deleteRole=async i=>{try{await G.delete({id:i.id}),await h.refresh(),await $.refresh(),j("Role deleted",3e3,"center")}catch(o){X("Error deleting role",3e3,"center")}},this.checkRoleInUse=async i=>(await re.get({roleId:i.id,roleType:i.roleType})).some(o=>o.isActive),(this._host=t).addController(this)}hostConnected(){}hostDisconnected(){}hostUpdate(){}async save(){let t={};return n.get().id?t=await this.updateExisting():t=await this.saveNew(),n.clear(),t}async saveNew(){const{name:t,accountNumber:i,roleType:o,permissions:a}=n.get(),f={name:t,accountNumber:i,roleType:o,permissions:a},y=await G.create({roleCreate:f});return y.id&&(await h.refresh(),await $.refresh(),j("The role was created",3e3,"center")),y}async updateExisting(){try{await G.update({id:n.get().id,roleUpdate:{...n.get()}}),await h.refresh();const t=h.get().find(i=>i.id===n.get().id);if((t==null?void 0:t.roleType)===r.Custom&&await $.refresh(),!t)throw new Error("Could not retrieve the updated role.");return j("The role was updated.",3e3,"center"),t}catch(t){return X("Failed to update the role.",3e3,"center"),h.get().find(i=>i.id===n.get().id)||{}}}}const ee=oe`
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 1H14V3H0V1H3.5L4.5 0H9.5L10.5 1ZM3 18C1.9 18 1 17.1 1 16V4H13V16C13 17.1 12.1 18 11 18H3Z" />
|
|
3
|
+
`;var k;(function(e){e.READ="READ",e.UPDATE="UPDATE",e.CREATE="CREATE",e.APPROVE="APPROVE"})(k||(k={}));const te=[k.READ,k.UPDATE,k.CREATE,k.APPROVE];function xe(e){return[...e.map(t=>t)].sort((t,i)=>{const o=te.indexOf(t),a=te.indexOf(i);return o===-1&&a===-1?0:o===-1?1:a===-1?-1:o-a})}let u=class extends S{constructor(){super(...arguments),this.currentRoleId="",this.outstandingChanges=!1,this.renameRoleNameIsEmpty=!1,this.addPermissionDisabled=!1,this.readonly=!0,this.openDialogs=[],this.confirmDeletePermissionIsOpen=!1,this.indexOfPermissionToDelete=-1,this.savingChanges=!1,this.deletingRole=!1,this.cancelling=!1,this.processingDialogAction=!1,this.roleController=new ve(this),this.dialogNames={RenameRole:"rename-role-dialog",DeleteRole:"delete-role-dialog",UnsavedChanges:"unsaved-changes-dialog"},this.permissionIsAvailableForSelection=(e,t)=>{var i,o,a;return((o=(i=this.currentRole)===null||i===void 0?void 0:i.permissions[t])===null||o===void 0?void 0:o.permissionId)===e.id||!(!((a=this.currentRole)===null||a===void 0)&&a.permissions.find(f=>f.permissionId===e.id))}}get isNewDraft(){return this.currentRoleId===ie}get isValid(){var e,t;return!(!(!((e=n==null?void 0:n.get().name)===null||e===void 0)&&e.length)||!(!((t=n==null?void 0:n.get().permissions)===null||t===void 0)&&t.length)||n!=null&&n.get().permissions.find(i=>!i.permissionId))}get isAddPermissionDisabled(){return this.addPermissionDisabled?!0:this.nextAvailablePermissionId()===""}writeOutstandingChanges(){sessionStorage.setItem(ae.SessionStorage.HasOutstandingChanges,JSON.stringify(this.outstandingChanges))}formatPermission(e){return e?e.category?`${e.category} - ${e.name}`:e.name:""}willUpdate(e){e.has("currentRoleId")&&this.resetRole(),this.outstandingChanges=!!n.get().name,this.writeOutstandingChanges()}firstUpdated(){this.isNewDraft&&this.displayDefaultRole()}async saveRole(){this.savingChanges=!0,this.isValid&&(this.outstandingChanges=!1,this.writeOutstandingChanges(),this.currentRole=await this.roleController.save(),N(I.RoleManagement,`?id=${this.currentRole.id}`),this.savingChanges=!1)}async deleteRole(){this.closeDialog(this.dialogNames.DeleteRole),this.deletingRole=!0,this.processingDialogAction=!0,this.currentRole&&(await this.roleController.deleteRole(this.currentRole),this.processingDialogAction=!1,N(I.RoleManagement,`?id=${h.get()[0].id}`),this.deletingRole=!1)}resetCurrentRole(){if(this.isNewDraft){this.currentRole=n.get();return}this.currentRoleId&&(this.currentRole=h.get().find(e=>e.id===this.currentRoleId)||{})}async openDeleteRoleDialog(){this.currentRole&&(this.roleIsInUse=await this.roleController.checkRoleInUse(this.currentRole),this.openDialog(this.dialogNames.DeleteRole))}nextAvailablePermissionId(){const e=D.getPermissions().filter(t=>{var i;return!(!((i=this.currentRole)===null||i===void 0)&&i.permissions.find(o=>o.permissionId===t.id))});return e.length?e[0].id:""}assignablePermissions(){var e;switch((e=this.currentRole)===null||e===void 0?void 0:e.roleType){case r.Default:case r.Custom:return D.getPermissions().filter(t=>t.privileges.length);case r.GlobalAccess:case r.Internal:return D.getPermissions();default:return[]}}hasUpdatePrivilegeForRole(){var e,t;switch(this.readonly=!0,(e=this.currentRole)===null||e===void 0?void 0:e.roleType){case r.Default:p.hasDefaultSystemRolesUpdate()&&(this.readonly=!1);break;case r.GlobalAccess:case r.Internal:p.hasInternalRolesUpdate(D.getAccountNumber())&&(this.readonly=!1);break;case r.Custom:p.hasCustomRolesUpdate((t=this.currentRole)===null||t===void 0?void 0:t.accountNumber)&&(this.readonly=!1);break}}hasCreatePrivilegeForRole(){var e,t;let i=!1;switch((e=this.currentRole)===null||e===void 0?void 0:e.roleType){case r.Default:p.hasDefaultSystemRolesCreate()&&(i=!0);break;case r.GlobalAccess:case r.Internal:p.hasInternalRolesCreate()&&(i=!0);break;case r.Custom:p.hasCustomRolesCreate((t=this.currentRole)===null||t===void 0?void 0:t.accountNumber)&&(i=!0);break}return i}getPrivileges(e){var t,i;const o=D.getPermissions().find(f=>f.id===e);if(((t=this.currentRole)===null||t===void 0?void 0:t.roleType)!==r.Internal&&((i=this.currentRole)===null||i===void 0?void 0:i.roleType)!==r.GlobalAccess)return(o==null?void 0:o.privileges)||[];const a=(o==null?void 0:o.privileges.concat(o.internalPrivileges))||[];return xe(a)||[]}displayDefaultRole(){h.get().length&&N(I.RoleManagement,`?id=${h.get()[0].id}`)}resetRole(){this.outstandingChanges=!1,this.writeOutstandingChanges(),this.resetCurrentRole(),this.addPermissionDisabled=!1,this.hasUpdatePrivilegeForRole()}cancelChanges(){this.outstandingChanges=!1,this.writeOutstandingChanges(),n.clear(),this.resetRole(),this.isNewDraft&&this.displayDefaultRole(),this.cancelling=!1}updateRole(e){this.currentRole&&(this.isNewDraft?n.update(e):n.set({...this.currentRole,...e}),this.currentRole=n.get(),this.outstandingChanges=this.hasOutstandingChanges(),this.writeOutstandingChanges())}updateRolePermission(e,t,i){if(!this.currentRole)return;const o=[...this.currentRole.permissions];if(this.addPermissionDisabled=!1,t&&(o[e].permissionId=t,!this.validatePrivilegeExistsForPermission(t,o[e].privilege))){const a=this.getPrivileges(t);a.length&&([o[e].privilege]=a)}i&&(o[e].privilege=i),!t&&!i&&(o[e]={permissionId:"",privilege:""}),this.updateRole({permissions:o}),this.addPermissionDisabled=!this.allPermissionsSelected()}validatePrivilegeExistsForPermission(e,t){return this.getPrivileges(e).findIndex(i=>i===t)!==-1}alertUnsavedChanges(){this.openDialog(this.dialogNames.UnsavedChanges)}openDialog(e){this.openDialogs.includes(e)||(this.openDialogs=[...this.openDialogs,e])}closeDialog(e){this.openDialogs=this.openDialogs.filter(t=>t!==e),e===this.dialogNames.DeleteRole&&this.roleIsInUse&&(this.deletingRole=!1)}renderReadOnlyPermissions(){var e;if(!(!((e=this.currentRole)===null||e===void 0)&&e.permissions))return c;const t=this.assignablePermissions().map(i=>i.id);return l` <div class="flex flex-col h-1000 gap-5"> ${this.currentRole.permissions.filter(i=>t.includes(i.permissionId)).map(i=>l` <div class="role-permission" data-testid="view-role-permission"> <p class="dlr-text-small"> ${i.category?l`${i.category} - ${i.permissionName}`:l`${i.permissionName}`} </p> <p>${i.privilege}</p> </div> `)} </div> `}renderConfirmDeletePermissionDialog(){var e;let t="";const i=(e=this.currentRole)===null||e===void 0?void 0:e.permissions;if(i&&this.indexOfPermissionToDelete>=-1){const o=i[this.indexOfPermissionToDelete];o&&(t=o.permissionName||"")}return l` <changes-confirmation class="z-50 relative" id="delete-permission-confirmation" ?isOpen="${this.confirmDeletePermissionIsOpen}" .headerText="${`Are you sure you want to remove ${t}?`}" .bodyText="${"Some users may lose access to features."}" .confirmationButtonText="${"Remove"}" .cancelButtonText="${"Cancel"}" @cancel="${()=>{this.confirmDeletePermissionIsOpen=!1}}" @confirm="${()=>{this.deletePermission(this.indexOfPermissionToDelete),this.confirmDeletePermissionIsOpen=!1}}"></changes-confirmation> `}renderEditablePermissions(){var e;if(!(!((e=this.currentRole)===null||e===void 0)&&e.permissions))return c;const t=this.assignablePermissions().map(i=>i.id);return l` <div class="flex flex-col gap-4" data-testid="editable-permissions"> ${M(this.currentRole.permissions,i=>i.permissionId,(i,o)=>t.includes(i.permissionId)||!i.permissionId?l` <div class="flex flex-col items-right gap-3 rounded-lg border border-slate-300 p-2 sm:flex-row sm:items-center"> <ix-select data-testid="permission-select" class="grow role-permission__select-input sm:w-2/3 lg:w-1/3 max-w-2xl" aria-label="Select permission" @input="${a=>this.updateRolePermission(o,a.target.value,void 0)}"> ${M(this.assignablePermissions().filter(a=>this.permissionIsAvailableForSelection(a,o)),a=>a.id,a=>l` <ix-select-option ?selected="${i.permissionId===a.id}" class="role-permission__select-option" value="${a.id}"> <div slot="headline">${this.formatPermission(a)}</div> </ix-select-option> `)} </ix-select> <div class="flex grow justify-end items-center gap-3 min-w-1/4"> <span>Privilege</span> <ix-select class="w-1/2 sm:w-32 role-privilege__select-input" aria-label="Select Privilege" data-testid="permission-privileges" @input="${a=>this.updateRolePermission(o,void 0,a.target.value)}"> ${this.displayPrivileges(i)} </ix-select> <ix-icon-button id="delete-permission-button" class="cancel" @click="${()=>{this.indexOfPermissionToDelete=o,this.confirmDeletePermissionIsOpen=!0}}"> <svg slot="default" focusable="false" aria-hidden="true" viewBox="0 0 14 18" class="fill-critical" width="14" height="18"> ${ee} </svg> </ix-icon-button> </div> </div> `:c)} </div> `}displayPrivileges(e){const t=this.getPrivileges(e.permissionId),i=e.privilege&&!t.some(o=>o===e.privilege);return l` ${i?l` <ix-select-option class="permission-privileges__select-option" value="${e.privilege}" disabled="disabled" ?selected="${i}"> <div slot="headline" style="color:gray">${e.privilege}</div> </ix-select-option> `:c} ${M(t,o=>o,o=>l` <ix-select-option class="permission-privileges__select-option" value="${o}" .displayText="${o}" ?selected="${o===e.privilege}"> <div slot="headline">${o}</div> </ix-select-option> `)} `}deletePermission(e){const t=[...this.currentRole.permissions];t.splice(e,1),this.updateRole({permissions:t}),this.addPermissionDisabled=!this.allPermissionsSelected(),this.outstandingChanges=this.hasOutstandingChanges(),this.writeOutstandingChanges()}allPermissionsSelected(){var e,t;return(t=(e=this.currentRole)===null||e===void 0?void 0:e.permissions.every(i=>!!i.permissionId&&!!i.privilege))!==null&&t!==void 0?t:!1}hasOutstandingChanges(){var e;const{permissions:t}=n.get(),i=(e=this.currentRole)===null||e===void 0?void 0:e.permissions;if((t==null?void 0:t.length)!==(i==null?void 0:i.length))return!0;for(const o of t){const a=i==null?void 0:i.find(f=>f.permissionId===o.permissionId);if(!i||(a==null?void 0:a.privilege)!==o.privilege)return!0}return!1}addNewPermission(){this.addPermissionDisabled=!0,this.updateRole({permissions:[...this.currentRole.permissions,{permissionId:"",privilege:this.getPrivileges(this.nextAvailablePermissionId())[0]}]})}showGlobalAccessTooltip(e){document.dispatchEvent(new CustomEvent("show-tooltip",{detail:{target:e.target,tooltip:l`<div style="padding:1rem;border-radius:16px;color:#fff;background-color:#092241"> If this flag is set then the users assigned<br> to this role will be able to switch to any<br> account in the Global Portal. This flag<br> can only be set at role creation. </div>`,placement:"right"}}))}closeGlobalAccessTooltip(){document.dispatchEvent(new CustomEvent("hide-tooltip"))}handleGlobalAccessToggle(){var e;this.updateRole({roleType:((e=this.currentRole)===null||e===void 0?void 0:e.roleType)===r.GlobalAccess?r.Internal:r.GlobalAccess})}renderDeleteDialogContent(){return this.currentRole?this.roleIsInUse===void 0?l`<ix-progress ?indeterminate="${!0}"></ix-progress>`:this.roleIsInUse?l`<div slot="headline" class="max-w-[560px]"> <h1 class="dlr-text-heading">You cannot delete the ${this.currentRole.name} role.</h1> </div> <div slot="content" id="duplicate-form-id" method="dialog" class="max-w-[560px]"> <p>Currently, there is at least one user associated with this role.</p> <p> Navigate to the User Management pages to update the User/Role associations before you retry deleting this role. </p> </div>`:l` <div slot="headline" class="max-w-[560px]"> <h1 class="font-semibold">Are you sure you want to delete ${this.currentRole.name}?</h1> </div> <div slot="content" id="duplicate-form-id" method="dialog" class="max-w-[560px]"> <p>There are no users currently assigned to this role.</p> </div>`:c}renderRenameRoleDialog(){return l` <ix-dialog class="dialog z-50 relative" id="${this.dialogNames.RenameRole}" .open="${this.openDialogs.includes(this.dialogNames.RenameRole)}" @closed="${()=>this.closeDialog(this.dialogNames.RenameRole)}"> <div class="dlr-text-heading" slot="headline">Edit Role Name</div> <form class="dialog-form" id="rename-role-form-id" method="dialog" slot="content"> <ix-textbox id="rename-role-input" class="dialog-form__textbox" type="text" label="Role Name" data-testid="rename-role-input" errorText="" @input="${()=>{var e;this.renameRoleNameIsEmpty=!(!((e=A(this.renameRoleInput))===null||e===void 0)&&e.length)}}"></ix-textbox> </form> <div class="dialog-actions" slot="actions"> <ix-button form="rename-role-form-id" appearance="text" @click="${()=>this.closeDialog(this.dialogNames.RenameRole)}"> <span class="button-label">Cancel</span> </ix-button> <ix-button form="rename-role-form-id" appearance="text" data-testid="rename-role-dialog-save-btn" .disabled="${this.renameRoleNameIsEmpty}" @click="${()=>{this.renameRoleNameIsEmpty||(this.updateRole({name:A(this.renameRoleInput)}),this.closeDialog(this.dialogNames.RenameRole))}}"> Save Changes </ix-button> </div> </ix-dialog> `}renderDeleteRoleDialog(){return l` <ix-dialog class="z-50 relative" id="${this.dialogNames.DeleteRole}" .open="${this.openDialogs.includes(this.dialogNames.DeleteRole)}" @closed="${()=>this.closeDialog(this.dialogNames.DeleteRole)}"> ${this.renderDeleteDialogContent()} <div class="dialog-actions" slot="actions"> <ix-button form="delete-role-form-id" appearance="text" ?disabled="${!this.roleIsInUse&&this.deletingRole}" @click="${()=>this.closeDialog(this.dialogNames.DeleteRole)}"> Cancel </ix-button> ${this.roleIsInUse?c:l` <ix-button form="delete-role-form-id" appearance="text" data-testid="confirm-delete-role-btn" ?submitting="${this.processingDialogAction}" @click="${this.deleteRole}"> Delete Role </ix-button>`} </div> </ix-dialog> `}renderCurrRoleName(){return l` <div class="flex grow items-center"> <h2 class="dlr-text-heading" data-testid="current-role-name">${this.currentRole.name}</h2> ${this.readonly?c:l` <ix-icon-button class="role-name-container__edit-btn icon-btn_primary" icon="edit" data-testid="rename-role-btn" @click="${()=>{F(this.renameRoleInput,this.currentRole.name),this.openDialog(this.dialogNames.RenameRole)}}"> </ix-icon-button>`} </div> `}renderControls(){return l` <div class="flex flex-wrap gap-3 justify-end" style="--md-filled-button-icon-size:18px"> ${this.outstandingChanges?l` <ix-button appearance="outlined" ?disabled="${this.savingChanges||this.deletingRole}" ?submitting="${this.cancelling}" @click="${()=>{this.cancelling=!0,setTimeout(()=>{this.cancelChanges()})}}"> Cancel </ix-button> <ix-button id="save-changes-button" data-testid="save-role-btn" ?disabled="${!this.isValid||this.cancelling}" ?submitting="${this.savingChanges}" @click="${this.saveRole}"> Save </ix-button> `:c} ${this.hasCreatePrivilegeForRole()&&!this.isNewDraft?l` <ix-button class="cancel" has-icon data-testid="delete-role-btn" appearance="filled" ?disabled="${this.savingChanges||this.cancelling}" ?submitting="${this.deletingRole}" @click="${this.openDeleteRoleDialog}"> <svg slot="icon" focusable="false" aria-hidden="true" viewBox="0 0 14 18" width="14" height="18"> ${ee} </svg> Delete Role </ix-button>`:c} </div> `}render(){var e;return h.isHydrating()?l`<ix-progress aria-label="view-role-panel-loading" ?indeterminate="${!0}"></ix-progress>`:!((e=this.currentRole)===null||e===void 0)&&e.name?l` <div class="mx-4 lg:mx-0 flex flex-col rounded-lg h-full" data-testid="view-role-content"> <div class="p-4 py-5 border-slate-300 flex items-center gap-2 bg-white border rounded-t-lg lg:px-8"> ${this.renderCurrRoleName()} ${this.renderControls()} </div> <div class="bg-white p-4 pt-0 rounded-b-lg border border-t-0 border-slate-300 permissions-container"> <h3 class="dlr-text-heading heading">Permissions</h3> ${c} <div class="grow flex flex-col gap-3 list"> ${this.readonly?this.renderReadOnlyPermissions():this.renderEditablePermissions()} </div> ${this.readonly?c:l` <ix-button id="add-permission-button" data-testid="add-permission-btn" style="align-self:flex-start" class="flex btn-add" has-icon appearance="outlined" ?disabled="${this.isAddPermissionDisabled}" @click="${this.addNewPermission}"> <md-icon slot="icon">add</md-icon> Add Permission </ix-button> `} <privilege-descriptions class="description"></privilege-descriptions> </div> ${this.renderConfirmDeletePermissionDialog()} ${this.renderRenameRoleDialog()} ${this.renderDeleteRoleDialog()} <ix-tooltip></ix-tooltip> </div> `:l`<div class="role-container"></div>`}};u.styles=[z,ne,R,ge],s([m({type:String})],u.prototype,"currentRoleId",void 0),s([d()],u.prototype,"outstandingChanges",void 0),s([d()],u.prototype,"renameRoleNameIsEmpty",void 0),s([d()],u.prototype,"addPermissionDisabled",void 0),s([d()],u.prototype,"readonly",void 0),s([d()],u.prototype,"roleIsInUse",void 0),s([d()],u.prototype,"openDialogs",void 0),s([d()],u.prototype,"currentRole",void 0),s([d()],u.prototype,"confirmDeletePermissionIsOpen",void 0),s([d()],u.prototype,"indexOfPermissionToDelete",void 0),s([d()],u.prototype,"savingChanges",void 0),s([d()],u.prototype,"deletingRole",void 0),s([d()],u.prototype,"cancelling",void 0),s([d()],u.prototype,"processingDialogAction",void 0),s([P("#rename-role-input")],u.prototype,"renameRoleInput",void 0),u=s([b("view-role")],u);class E{}E.ALL_ROLES="role-management-view-all-roles",E.VIEW_ROLE="role-management-view-view-role",E.DIALOG="role-management-view-before-leave-dialog";const ie="new";let U=class extends S{constructor(){super(...arguments),this.getCurrentRoleIdFromUrlBinding=this.getCurrentRoleIdFromUrl.bind(this)}async connectedCallback(){super.connectedCallback(),await h.refresh(),await $.refresh(),window.addEventListener(g.RouteChanged,this.getCurrentRoleIdFromUrlBinding),this.getCurrentRoleIdFromUrl()}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(g.RouteChanged,this.getCurrentRoleIdFromUrlBinding)}firstUpdated(){h.get().length&&(this.currentRoleId=h.get()[0].id)}getCurrentRoleIdFromUrl(){if(new URL(window.location.href).searchParams.get("id")&&(this.currentRoleId=new URL(window.location.href).searchParams.get("id")),!this.currentRoleId){setTimeout(()=>{this.currentRoleId=this.getCurrentRoleIdFromUrl()||void 0},50);return}return window.scrollTo(0,0),this.currentRoleId}render(){return l` <div class="flex flex-col gap-4 h-full lg:flex-row"> <all-roles class="lg:w-1/4 lg:min-w-[400px]" .currentRoleId="${this.currentRoleId}" data-testid="${E.ALL_ROLES}"></all-roles> <view-role class="grow rounded-lg" .currentRoleId="${this.currentRoleId}" data-testid="${E.VIEW_ROLE}"></view-role> <before-leave-dialog .isDirtyCallback="${()=>this.viewRole.outstandingChanges}" data-testid="${E.DIALOG}"></before-leave-dialog> </div> `}};U.styles=[R],s([m()],U.prototype,"currentRoleId",void 0),s([P("view-role")],U.prototype,"viewRole",void 0),U=s([b("role-management-view")],U);export{U as RoleManagementView,ie as createNewRoleIdentifier};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__decorate as n}from"tslib";import{property as d,state as c,customElement as h}from"lit/decorators.js";import{css as m,LitElement as v,html as g}from"lit";import{Router as p}from"@vaadin/router";import{elementTheme as f}from"@digital-realty/theme";import"@digital-realty/ix-dialog/ix-dialog.js";import{v as r,n as u,R as b}from"./ui-user-management.js";class e{}e.DIALOG="before-leave-dialog",e.HEADLINE="before-leave-dialog-headline",e.CONTENT="before-leave-dialog-content",e.BTN_CANCEL="before-leave-dialog-cancel-button",e.BTN_CONFIRM="before-leave-dialog-confirm-button";let o=class extends v{constructor(){super(...arguments),this.isOpen=!1,this._leavePromiseResolver=void 0,this._leavePromise=void 0,this.handleGlobalClick=async t=>{if(!(!this.isDirtyCallback||!this.isDirtyCallback())){for(const i of t.composedPath())if("tagName"in i&&(i.tagName==="A"||i.tagName==="UM-BACK-BUTTON")){t.preventDefault(),window.sessionStorage.setItem(r.SessionStorage.HasOutstandingChanges,"true");let s="";if(i.tagName==="A"){const{pathname:a,search:l}=new URL(i.href);if(a===window.location.pathname)return;s=`${a}${l}`}try{this.isOpen=!0,this._leavePromise=new Promise(l=>{this._leavePromiseResolver=l});const a=await this._leavePromise;!a&&s?p.go(s):a||u(i.routeName||b.UserManagement)}finally{this.isOpen=!1,this._leavePromise=void 0,this._leavePromiseResolver=void 0,window.sessionStorage.removeItem(r.SessionStorage.HasOutstandingChanges)}break}}}}async connectedCallback(){super.connectedCallback(),this.handleGlobalClick=this.handleGlobalClick.bind(this),window.addEventListener("click",this.handleGlobalClick,!0)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("click",this.handleGlobalClick,!0)}closeDialog(t=!0){this.isOpen=!1,this._leavePromiseResolver(t)}render(){return g`<ix-dialog ?open="${this.isOpen}" @closed="${this.isOpen?this.closeDialog:void 0}" class="dialog z-50 relative" data-testid="${e.DIALOG}"> <div slot="headline" class="headline" data-testid="${e.HEADLINE}"> You have unsaved changes </div> <div slot="content" id="duplicate-form-id" method="dialog" data-testid="${e.CONTENT}"> If you leave this page, you will lose the changes you made. </div> <div class="dialog-actions" slot="actions"> <ix-button form="unsaved-changes-form-id" appearance="text" @click="${()=>this.closeDialog(!0)}" data-testid="${e.BTN_CANCEL}"> Cancel </ix-button> <ix-button form="unsaved-changes-form-id" appearance="text" @click="${()=>this.closeDialog(!1)}" data-testid="${e.BTN_CONFIRM}"> Confirm </ix-button> </div> </ix-dialog>`}};o.styles=[f,m`.headline{font-size:20px;font-weight:700;color:#092241}`],n([d()],o.prototype,"isDirtyCallback",void 0),n([c()],o.prototype,"isOpen",void 0),o=n([h("before-leave-dialog")],o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__decorate as o}from"tslib";import{LitElement as Z,html as c,nothing as h,css as j}from"lit";import{property as l,query as U,queryAsync as L,customElement as O,state as u}from"lit/decorators.js";import{MobxLitElement as G}from"@adobe/lit-mobx";import{reaction as $t}from"mobx";import{elementTheme as X}from"@digital-realty/theme";import{cache as wt}from"lit/directives/cache.js";import{w as tt,U as et,T as k,x as it,y as lt,z as ut,t as st,q as C,B as ht,d as ot,A as H,C as P,D as K,u as R,E as mt,F as It,e as pt,v as St,G as vt,H as q,I as Ot,J as Tt,K as _t,L as Ut,s as at,M as gt,N as Lt,O as B,P as bt,j as nt,Q as xt,S as kt,V as Pt,W as At,X as yt,h as Mt,c as ct,o as Bt,l as Ft,n as Vt,g as ft,R as rt}from"./ui-user-management.js";import"@digital-realty/ix-tabs/ix-tabs.js";import"@digital-realty/ix-tabs/ix-primary-tab.js";import"@digital-realty/ix-button/ix-button.js";import"@digital-realty/ix-date/ix-date.js";import"@digital-realty/ix-menu/ix-menu.js";import"@digital-realty/ix-menu/ix-menu-item.js";import"@digital-realty/ix-progress/ix-progress.js";import{findChildNodeById as Gt,updateNodeCheckedStatus as jt,isAnyNodeChecked as Ht}from"@digital-realty/ix-generic-tree";import"@digital-realty/ix-phone-input/ix-phone-input.js";import"@digital-realty/ix-dialog/ix-dialog.js";import"@digital-realty/ix-textbox/ix-textbox.js";import"@digital-realty/ix-checkbox/ix-checkbox.js";import"@digital-realty/ix-phone-number/ix-phone-number.js";import"@digital-realty/ix-select/ix-select.js";import"@digital-realty/ix-select/ix-select-option.js";import"@digital-realty/ix-divider/ix-divider.js";import"@digital-realty/ix-tree/ix-tree.js";import"@digital-realty/ix-icon/ix-icon.js";import"./ui-user-management5.js";import"toastify-js";import"@microsoft/applicationinsights-web";import"@digital-realty/ix-icon-button/ix-icon-button.js";import"graphql-request";import"oidc-client-ts";import"i18next";import"lit-i18n";import"@vaadin/router";import"libphonenumber-js";import"lit/directives/class-map.js";import"validator";import"@digital-realty/ix-multi-select/ix-multi-select.js";import"lit/directives/repeat.js";import"@digital-realty/ix-card/ix-card.js";import"lodash.debounce";import"@digital-realty/ix-generic-tree/ix-generic-tree.js";import"@digital-realty/ix-accordion/ix-accordion.js";import"@material/web/icon/icon.js";const Kt={ACTIVE:"Active",DRAFT:"Draft",INVITED:"Invited",REMOVED:"Removed",SUSPENDED:"Suspended",DECLINED:"Declined"},Rt={ACTIVE:"check_circle",DRAFT:"edit",INVITED:"mail",REMOVED:"delete_forever",SUSPENDED:"warning",DECLINED:"do_not_disturb_on"},p={ACTIVE:"ACTIVE",DRAFT:"DRAFT",INVITED:"INVITED",DECLINED:"DECLINED",SUSPENDED:"SUSPENDED",REMOVED:"REMOVED"},dt={ACTIVE:"#4CAF50",DRAFT:"#1456E0",SUSPENDED:"#DB0028",INVITED:"rgb(255, 152, 0)",REMOVED:"rgb(109, 117, 140)",DECLINED:"rgb(109, 117, 140)"},$={ROLES:{key:"roles",text:"ROLES AND PORTAL ACCESS"},USERFLAGS:{key:"flags",text:"USER FLAGS"}};class Nt{}Nt.TAB=t=>`user-details-navigation-tab-${t}`;let w=class extends Z{constructor(){super(...arguments),this.disableEscapeKeyBinding=this.disableEscapeKey.bind(this),this.view=$.ROLES,this.showFlags=!1,this.showRoles=!0}get viewIndex(){return this.view===$.ROLES?0:1}connectedCallback(){super.connectedCallback(),this.tabs&&this.tabs.addEventListener("keydown",this.disableEscapeKeyBinding)}disconnectedCallback(){super.disconnectedCallback(),this.tabs&&this.tabs.removeEventListener("keydown",this.disableEscapeKeyBinding)}disableEscapeKey(t){return t.which===27?!1:null}firstUpdated(){this.tabsAsync.then(t=>{t.activeTabIndex=this.viewIndex})}dispatchNavigationEvent(t){this.navigate&&(this.view=t,this.navigate(t))}renderNavigation(t){return c`<ix-primary-tab @click="${()=>this.dispatchNavigationEvent(t)}" .activeDisabled="${t.key===this.view.key}" data-testid="${Nt.TAB(t.key)}"><span class="font-bold flex items-center uppercase">${t.text}</span> </ix-primary-tab>`}render(){return!this.showRoles&&!this.showFlags?c`${h}`:c`<ix-tabs id="navigation-tabs" hideScrollBar left-align data-testid="ix-tabs-navigation"> ${this.renderNavigation($.ROLES)} ${this.showFlags?this.renderNavigation($.USERFLAGS):h} </ix-tabs> <div class="user-detail-navigation"></div>`}};w.styles=[tt,et,k,X],o([l({type:Object})],w.prototype,"navigate",void 0),o([l({type:Object})],w.prototype,"view",void 0),o([l({type:Boolean})],w.prototype,"showFlags",void 0),o([l({type:Boolean})],w.prototype,"showRoles",void 0),o([U("#navigation-tabs")],w.prototype,"tabs",void 0),o([L("#navigation-tabs")],w.prototype,"tabsAsync",void 0),w=o([O("user-details-navigation")],w);var A;(function(t){t[t.hidden=0]="hidden",t[t.disabled=1]="disabled",t[t.enabled=2]="enabled"})(A||(A={}));const z={Active:"ACTIVE",Draft:"DRAFT",Invited:"INVITED",Suspended:"SUSPENDED",Removed:"REMOVED",Declined:"DECLINED"},qt=async(t,e)=>{const i={contactId:e,accountNumber:t};return await it.create({accountAssociationInput:i})},W=async(t,e,i)=>{const s=(await it.get({accountNumber:t,contactId:e})).find(a=>a.accountNumber===t);if(!(s!=null&&s.id))throw new Error("Account data not found.");return await it.update({id:s.id,accountAssociationStatusUpdate:{status:i}})},zt=t=>{const e=Object.keys(p);return t.sort((i,s)=>e.indexOf(i.status)-e.indexOf(s.status))};var F;(function(t){t.Checked="CHECKED",t.Indeterminate="INDETERMINATE",t.Inherited="INHERITED",t.Unchecked="UNCHECKED"})(F||(F={}));const Wt=async(t,e)=>await ut.get({contactId:t,accountNumber:e}),Yt=async t=>{for(const e of t)ut.delete({id:e.id})},Jt=async(t,e,i)=>{const s={accountNumber:e,contactId:t,flagLocations:[]};return i.forEach(a=>{const n={flag:a.key,locations:[]};a.items.forEach(r=>{if(!r.customerKnownSpaceName&&r.label!=="Global")throw new Error("Customer Known Space Name is missing.");n.locations.push({id:r.id,customerKnownName:r.customerKnownSpaceName,permissionStatus:r.checked?F.Checked:F.Unchecked})}),s.flagLocations.push(n)}),lt.saveAccountFlagInventory(s)},Dt=async(t,e)=>await st.get({contactId:t,accountNumber:e}),Et=async t=>{for(const e of t)st.delete({id:e.id})},Qt=async(t,e,i)=>{const s={accountNumber:e,contactId:t,roleLocations:[]};return i.forEach(a=>{const n={roleId:a.key,locations:[]};a.items.forEach(r=>{if(!r.customerKnownSpaceName&&r.label!=="Global")throw new Error("Customer Known Space Name is missing.");n.locations.push({id:r.id,customerKnownName:r.customerKnownSpaceName,permissionStatus:r.checked?F.Checked:F.Unchecked})}),s.roleLocations.push(n)}),lt.saveAccountRoleInventory(s)};class Zt{constructor(e){(this._host=e).addController(this)}hostConnected(){}hostDisconnected(){}hostUpdate(){}async add(e,i){try{const s=await qt(e,i);if(s)return await W(e,i,z.Active),C("Account association added.",3e3,"center"),s;throw new Error("Account association could not be created.")}catch(s){return null}}async restore(e,i){try{await W(e,i,z.Active),C("Account association restored.",3e3,"center")}catch(s){throw new Error("Account association could not be restored.")}}async suspend(e,i){try{await W(e,i,z.Suspended),C("Account association suspended.",3e3,"center")}catch(s){throw new Error("Account association could not be suspended.")}}async remove(e,i){try{await W(e,i,z.Removed);const s=(await Dt(i,e)).filter(n=>n.isActive),a=await Wt(i,e);await Et(s),await Yt(a),C("Account association removed.",3e3,"center")}catch(s){throw new Error("Account association could not be removed.")}}}class Xt extends ht{async refresh(){const e=await ot.get({id:this.get().id});e&&this.set(e)}}const y=new Xt({});class m{}m.BTN_RESTORE_ACCESS="udc-btn-restore-access",m.BTN_SUSPEND_ACCESS="udc-btn-suspend-access",m.BTN_REMOVE_ACCOUNT="udc-btn-remove-account",m.BTN_RESEND_INVITE="udc-btn-resend-invite",m.BTN_DRAFT_CANCEL="udc-btn-draft-cancel",m.BTN_DRAFT_SAVE="udc-btn-draft-save",m.ACCOUNT_NAME="udc-account-name",m.ACCOUNT_STATUS="udc-account-status",m.BTN_SAVE="udc-btn-save",m.BTN_CANCEL="udc-btn-cancel";let b=class extends G{constructor(){super(...arguments),this.accountAssociationController=new Zt(this),this.roles=[],this.saveControls=A.hidden,this.isLoading=!1,this.readonly=!1,this.actionsDisabled=!1,this.removeAccountDialogOpen=!1,this.suspendingAccess=!1,this.restoringAccess=!1,this.removingAccount=!1,this.savingChanges=!1,this.cancellingChanges=!1,this.mobileMenuOpen=!1}statusIcon(t){return Rt[t]}dispatchUpdateEvent(){this.dispatchEvent(new CustomEvent(H.UpdateChanges,{detail:"no-toast"}))}dispatchReloadAccountEvent(t=!1){var e;this.dispatchEvent(new CustomEvent(H.ReloadAccount,{detail:{accountNumber:(e=this.account)===null||e===void 0?void 0:e.accountNumber,overrideUnsavedChanges:t}}))}async addAccount(){var t,e,i;this.actionsDisabled=!0,this.savingChanges=!0,!((t=this.contact)===null||t===void 0)&&t.accounts.some(s=>{var a;return s.accountNumber===((a=this.account)===null||a===void 0?void 0:a.accountNumber)&&s.status==="REMOVED"})?await this.accountAssociationController.restore((e=this.account)===null||e===void 0?void 0:e.accountNumber,this.contact.id):await this.accountAssociationController.add((i=this.account)===null||i===void 0?void 0:i.accountNumber,this.contact.id),this.emitRoleUpdates&&await this.emitRoleUpdates(),await y.refresh(),P.clear(),this.dispatchUpdateEvent(),this.actionsDisabled=!1,this.savingChanges=!1}async restoreAccount(){var t;this.actionsDisabled=!0,this.restoringAccess=!0,await this.accountAssociationController.restore((t=this.account)===null||t===void 0?void 0:t.accountNumber,this.contact.id),await y.refresh(),this.dispatchReloadAccountEvent(!0),this.actionsDisabled=!1,this.restoringAccess=!1}async suspendAccount(){var t;this.actionsDisabled=!0,this.suspendingAccess=!0,await this.accountAssociationController.suspend((t=this.account)===null||t===void 0?void 0:t.accountNumber,this.contact.id),await y.refresh(),this.dispatchReloadAccountEvent(!0),this.actionsDisabled=!1,this.suspendingAccess=!1}async removeAccount(){var t;this.actionsDisabled=!0,this.removingAccount=!0,await this.accountAssociationController.remove((t=this.account)===null||t===void 0?void 0:t.accountNumber,this.contact.id),await y.refresh(),this.actionsDisabled=!1,this.removingAccount=!1,this.removeAccountDialogOpen=!1,this.dispatchReloadAccountEvent()}cancelChanges(){var t,e,i;this.actionsDisabled=!0;const s=`${P.get().accountNumber}:${(t=this.contact)===null||t===void 0?void 0:t.id}`;if(K.remove(s),!(!((e=this.contact)===null||e===void 0)&&e.accounts.find(a=>{var n;return a.accountNumber===((n=this.account)===null||n===void 0?void 0:n.accountNumber)}))){const[a]=((i=this.contact)===null||i===void 0?void 0:i.accounts)||[];a&&(this.account=a)}this.dispatchReloadAccountEvent(!0),this.actionsDisabled=!1}openMobileOptions(){this.mobileMenuOpen=!this.mobileMenuOpen}resendInvite(){C("Invitation has been re-sent.",3e3,"center")}renderRemoveAccountButton(){return c`<ix-button appearance="filled" class="cancel" ?disabled="${this.actionsDisabled}" @click="${()=>{this.removeAccountDialogOpen=!0}}" id="remove-account-button" data-testid="${m.BTN_REMOVE_ACCOUNT}"><span class="remove-account">Remove Account</span></ix-button>`}renderRestoreSuspendRemove(){var t,e,i;return this.isLoading?h:this.saveControls?h:this.readonly?h:((t=this.account)===null||t===void 0?void 0:t.status)===p.SUSPENDED?c`<ix-button @click="${this.restoreAccount}" ?disabled="${this.actionsDisabled&&!this.restoringAccess}" ?submitting="${this.restoringAccess}" id="restore-account-button" class="mr-1" data-testid="${m.BTN_RESTORE_ACCESS}"> <span class="font-bold">Restore Access</span> </ix-button> ${this.renderRemoveAccountButton()}`:((e=this.account)===null||e===void 0?void 0:e.status)===p.ACTIVE?c`<ix-button id="suspend-button" class="suspend-button cancel" appearance="outlined" ?disabled="${this.actionsDisabled&&!this.suspendingAccess}" ?submitting="${this.suspendingAccess}" @click="${this.suspendAccount}" data-testid="${m.BTN_SUSPEND_ACCESS}"> Suspend Access </ix-button> ${this.renderRemoveAccountButton()}`:((i=this.account)===null||i===void 0?void 0:i.status)===p.INVITED?c` ${this.renderRemoveAccountButton()}`:h}renderRestoreSuspendRemoveMobile(){var t,e,i,s,a;return this.isLoading?h:this.saveControls?h:R.isProfileOfLoggedInUser((t=this.contact)===null||t===void 0?void 0:t.email)?h:!R.hasExternalUserUpdate((e=this.account)===null||e===void 0?void 0:e.accountNumber)&&!R.hasExternalUserCreate((i=this.account)===null||i===void 0?void 0:i.accountNumber)?h:((s=this.account)===null||s===void 0?void 0:s.status)===p.SUSPENDED?c`<ix-menu-item @click="${this.restoreAccount}"><span class="font-bold">Restore Access</span> </ix-menu-item> <ix-menu-item @click="${()=>{this.removeAccountDialogOpen=!0}}"><span class="font-bold">Remove Account</span> </ix-menu-item>`:((a=this.account)===null||a===void 0?void 0:a.status)===p.ACTIVE?c`<ix-menu-item @click="${this.suspendAccount}"><span class="font-bold">Suspend Access</span> </ix-menu-item> <ix-menu-item @click="${()=>{this.removeAccountDialogOpen=!0}}"><span class="font-bold">Remove Account</span> </ix-menu-item>`:h}renderResendInviteButton(){var t;return((t=this.account)===null||t===void 0?void 0:t.status)!==p.INVITED||this.isLoading?h:c`<ix-button appearance="filled" @click="${()=>this.resendInvite()}" id="resend-invite-button" data-testid="${m.BTN_RESEND_INVITE}"><span class="font-bold">Resend <br>Invite</span> </ix-button>`}renderButtons(){return this.isLoading||this.saveControls===A.hidden?h:c`<div id="draft-assignment-controls" class="panel-button-container"> <ix-button appearance="outlined" ?disabled="${this.actionsDisabled}" ?submitting="${this.cancellingChanges}" @click="${()=>this.cancelChanges()}" id="cancel-role-button" data-testid="${m.BTN_CANCEL}"> Cancel </ix-button> <ix-button id="save-role-button" ?disabled="${this.saveControls===A.disabled||this.actionsDisabled}" ?submitting="${this.savingChanges}" @click="${this.dispatchUpdateEvent}" data-testid="${m.BTN_SAVE}"> Save </ix-button> </div>`}renderDraftButtons(){return this.isLoading?h:c`<div id="draft-association-controls" class="panel-button-container"> <ix-button id="cancel-role-button" appearance="outlined" ?disabled="${this.actionsDisabled}" @click="${this.cancelChanges}" data-testid="${m.BTN_DRAFT_CANCEL}"> Cancel </ix-button> <ix-button appearance="filled" id="save-role-button" ?disabled="${(this.actionsDisabled||this.saveControls===A.disabled||this.saveControls===A.hidden)&&!this.savingChanges}" ?submitting="${this.actionsDisabled}" @click="${this.addAccount}" data-testid="${m.BTN_DRAFT_SAVE}"> Save </ix-button> </div>`}renderStatus(){var t,e;if(!this.account||this.isLoading)return h;const i=this.account.status;return i===p.REMOVED?c`<div class="panel-status"> <p class="dlr-text-small" data-testid="${m.ACCOUNT_STATUS}">Account Removed</p> <ix-icon filled>${this.statusIcon(i)}</ix-icon> </div>`:i===p.DECLINED?c`<div class="panel-status"> <p class="dlr-text-small" data-testid="${m.ACCOUNT_STATUS}"> Account Invitation Declined By User </p> <ix-icon filled>${this.statusIcon(i)}</ix-icon> </div>`:i===p.SUSPENDED?c`<div class="panel-status"> <p class="dlr-text-small account-status-suspend" data-testid="${m.ACCOUNT_STATUS}"> Suspended on <ix-date type="static" value="${(t=this.account)===null||t===void 0?void 0:t.statusUpdateAt}"></ix-date> </p> <ix-icon filled class="warning text-2xl">${this.statusIcon(i)}</ix-icon> </div>`:this.account.status===p.INVITED?c`<div class="panel-status"> <p class="dlr-text-small" data-testid="${m.ACCOUNT_STATUS}"> Invited on <ix-date type="static" value="${(e=this.account)===null||e===void 0?void 0:e.statusUpdateAt}"></ix-date> </p> <ix-icon filled style="${`color: ${dt[i]}`}">${this.statusIcon(i)}</ix-icon> </div>`:this.account.status===p.DRAFT?c`<div class="panel-status"> <p class="dlr-text-small" data-testid="${m.ACCOUNT_STATUS}">Draft</p> <ix-icon class="text-2xl" filled style="${`color: ${dt[i]}`}">${this.statusIcon(i)}</ix-icon> </div>`:c`<div class="panel-status"> <ix-icon style="color:#4caf50" filled class="mt-1 text-2xl">${this.statusIcon(i)}</ix-icon> <p class="dlr-text-small" data-testid="${m.ACCOUNT_STATUS}">Active</p> </div>`}renderRemoveAccountConfirmation(){return c`<changes-confirmation id="remove-account-dialog" data-testid="remove-account-dialog" class="z-50 relative" ?isOpen="${this.removeAccountDialogOpen}" ?submitting="${this.removingAccount}" .headerText="${"The user will no longer be able to access this account."}" .confirmationButtonText="${"Remove Account"}" @confirm="${()=>{this.removeAccount()}}" @cancel="${()=>{this.removeAccountDialogOpen=!1}}"> </changes-confirmation>`}render(){var t;return this.account?c`<div> <div class="flex items-center p-4 pb-0 lg:p-2 justify-between user-status"> <div class="flex items-center user-status-header"> <h1 class="dlr-text-heading lg:pl-4" data-testid="${m.ACCOUNT_NAME}"> ${(t=this.account.displayName)!==null&&t!==void 0?t:this.account.name} </h1> <span style="position:relative"> <ix-icon id="anchor" filled class="cursor-pointer mobile-options" @click="${this.openMobileOptions}">more_vert</ix-icon> <ix-menu anchor="anchor" ?open="${this.mobileMenuOpen}"> ${this.renderRestoreSuspendRemoveMobile()} </ix-menu> </span> </div> <div class="user-details-controls flex items-center pr-4"> ${this.renderStatus()} ${this.renderResendInviteButton()} ${this.renderRestoreSuspendRemove()} ${this.account.status===p.DRAFT?this.renderDraftButtons():this.renderButtons()} ${this.renderRemoveAccountConfirmation()} </div> </div> </div>`:h}};b.styles=[tt,et,k,X],o([l()],b.prototype,"account",void 0),o([l()],b.prototype,"contact",void 0),o([l()],b.prototype,"roles",void 0),o([l()],b.prototype,"saveControls",void 0),o([l()],b.prototype,"isLoading",void 0),o([l({type:Boolean})],b.prototype,"readonly",void 0),o([u()],b.prototype,"actionsDisabled",void 0),o([u()],b.prototype,"removeAccountDialogOpen",void 0),o([u()],b.prototype,"suspendingAccess",void 0),o([u()],b.prototype,"restoringAccess",void 0),o([u()],b.prototype,"removingAccount",void 0),o([u()],b.prototype,"savingChanges",void 0),o([u()],b.prototype,"cancellingChanges",void 0),o([u()],b.prototype,"mobileMenuOpen",void 0),o([l()],b.prototype,"emitRoleUpdates",void 0),b=o([O("user-details-controls")],b);const te=j`@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.removed-account-container{padding:1.5rem;display:flex;flex-direction:column;gap:24px}.removed-account-row{display:flex;flex-direction:column;overflow-wrap:anywhere}.removed-account-title{margin:0;text-transform:uppercase;color:rgba(9,34,65,.7)}.removed-account-text{margin:0;color:#092241}`;let E=class extends Z{constructor(){super(...arguments),this.roles=[],this.userRoleAssignments=[]}get dateText(){return this.status==="DECLINED"?"Account Invitation Declined By User On":"Account Removed On"}renderRoles(){var t;return this.roles&&((t=this.role)===null||t===void 0?void 0:t.length)===1?c`${this.roles[0].name}`:this.userRoleAssignments.map(e=>c`${e.name}<br>`)}update(t){(t.has("contactID")||t.has("accountNumber"))&&this.getRoleAssignments(),super.update(t)}async getRoleAssignments(){if(!this.contactID)return;const t=await st.get({contactId:this.contactID,accountNumber:this.accountNumber}),e=new Set(t.map(i=>i.roleId));this.userRoleAssignments=this.roles.filter(i=>e.has(i.id))}render(){return c`<div class="removed-account-container"> <div class="removed-account-row"> <span class="removed-account-title">${this.dateText}</span> <p class="removed-account-text"> <ix-date type="static" value="${this.changedAt}"></ix-date> </p> </div> ${this.status==="REMOVED"?c`<div class="removed-account-row"> <span class="removed-account-title">Account Removed by</span> <p class="removed-account-text">${this.changedBy}</p> </div>`:h} <div class="removed-account-row"> <span class="removed-account-title">Roles</span> <p class="removed-account-text">${this.renderRoles()}</p> </div> </div>`}};E.styles=[te],o([l({type:String})],E.prototype,"status",void 0),o([l({type:String})],E.prototype,"accountNumber",void 0),o([l({type:String})],E.prototype,"contactID",void 0),o([l({type:Array,attribute:!1})],E.prototype,"roles",void 0),o([l({type:String,attribute:!1})],E.prototype,"changedBy",void 0),o([l({type:String,attribute:!1})],E.prototype,"changedAt",void 0),o([u()],E.prototype,"userRoleAssignments",void 0),E=o([O("user-account-removed-declined")],E);class ee extends ht{getAsRoles(){return mt(this.get())}removeRole(e){const i=this.get().filter(s=>s.roleId!==e);this.set(i)}}const N=new ee([]);class ie{constructor(e){(this._host=e).addController(this)}hostConnected(){}hostDisconnected(){}hostUpdate(){}async removeRoleAssignment(e){try{await Et(e),C("Role removed.",3e3,"center")}catch(i){throw new Error("Failed to remove role assignment.")}}}class V{}V.DIALOG_ADD_ROLE="user-details-panel-dialog-add-role",V.DIALOG_REMOVE_ROLE="user-details-panel-dialog-remove-role",V.PROGRESS_BAR="user-details-panel-progress-bar";let v=class extends G{constructor(){super(...arguments),this.roleAssignmentController=new ie(this),this.onSuccess=C,this.roles=[],this.userFlagTrees=[],this.assignedRoleTrees=[],this.readonly=!1,this.isPanelLoading=!1,this.roleAssignments=[],this.viewRoute=$.ROLES,this.saveControls=A.hidden,this.flagUpdates=[],this.roleUpdates=[],this.activeRoleId="",this.permissionData=[],this.removeRoleDialogOpen=!1,this.redundantStatuses=["DECLINED","REMOVED"],this.emitRoleUpdates=async()=>{const t=await this.userDetailsAssignments;t&&t.emitUpdates()},this.saveAssignments=async t=>{var e,i,s;const a=`${(e=this.account)===null||e===void 0?void 0:e.accountNumber}:${(i=this.contact)===null||i===void 0?void 0:i.id}`,n=K.capture(a);if(!this.flagUpdates.length&&n){K.lock(a);for(const S of this.userFlagTrees)S.updateService=new It,n.forEach(Ct=>{var J;const Q=Gt(S.rootNode,Ct.id);Q&&(Q.checked=!0,jt(Q,S.rootNode),(J=S.updateService)===null||J===void 0||J.update(S.rootNode))}),S.updateService.updates.length&&this.flagUpdates.push({key:S.label,items:S.updateService.updates})}const r=await this.controlsComponent;if(r.actionsDisabled=!0,r.savingChanges=!0,!this.roleUpdates.length&&!this.flagUpdates.length)return;const g={role:void 0,flag:void 0};this.roleUpdates.length&&(g.role=await Qt(this.contact.id,this.account.accountNumber,this.roleUpdates),N.clear(),this.roleUpdates=[]),this.flagUpdates.length&&(g.flag=await Jt(this.contact.id,this.account.accountNumber,this.flagUpdates),g.flag&&K.remove(a),this.flagUpdates=[]),this.dispatchReloadAccountEvent((s=this.account)===null||s===void 0?void 0:s.accountNumber,!0),r.actionsDisabled=!1,r.savingChanges=!1,this.isPanelLoading=!1;const Y=(t==null?void 0:t.detail)==="no-toast";if(g.role===null&&g.flag===null){pt("Could not save changes.",3e3,"center");return}(g.flag||g.role)&&!Y&&C("Changes saved.",3e3,"center"),(g.flag===null||g.role===null)&&pt(`Could not save ${g.flag?"flag":g.role?"":"role"} assignments.`,3e3,"center")},this.dispatchOpenConfirmation=()=>{this.removeRoleDialogOpen=!0},this.dispatchReloadAccountEvent=async(t,e=!1)=>{this.resetForm(),this.dispatchEvent(new CustomEvent(H.ReloadAccount,{detail:{accountNumber:t,overrideUnsavedChanges:e}}))}}updated(t){super.updated(t),window.sessionStorage.setItem(St.SessionStorage.HasOutstandingChanges,this.isDirty?"true":"false"),t.has("account")&&(this.viewRoute=$.ROLES)}get fullName(){var t,e;return`${(t=this.contact)===null||t===void 0?void 0:t.firstName} ${(e=this.contact)===null||e===void 0?void 0:e.lastName}`}get canAddRoles(){return!this.readonly&&this.addableRoles.length>0}get canRemoveRoles(){var t;return!this.readonly&&((t=this.assignedRoles)===null||t===void 0?void 0:t.length)}get addRolesDisabled(){var t,e,i,s,a;if(!(!((t=this.account)===null||t===void 0)&&t.accountNumber))return!0;const n=vt(this.account.accountNumber,this.roles,q((e=this.contact)===null||e===void 0?void 0:e.email)&&R.hasAssignInternalRoleCreate((i=this.account)===null||i===void 0?void 0:i.accountNumber)).length;return((a=(s=this.assignedRoles)===null||s===void 0?void 0:s.length)!==null&&a!==void 0?a:0)>=n}get addableRoles(){return this.roles.filter(t=>{var e;return!(!((e=this.assignedRoles)===null||e===void 0)&&e.find(i=>i.id===t.id))})}get isDirty(){return this.roleUpdates.length>0||this.flagUpdates.length>0||N.get().length}get showUserFlags(){var t,e;return R.hasExternalUserRead((t=this.account)===null||t===void 0?void 0:t.accountNumber)&&((e=this.account)===null||e===void 0?void 0:e.status)!=="REMOVED"}get showRoles(){var t;return((t=this.account)===null||t===void 0?void 0:t.status)!=="REMOVED"}firstUpdated(){this.account&&this.loadAccount()}async loadAccount(){const t=await this.userDetailsAssignments;t==null||t.assignmentUpdateManagers.forEach(e=>e.nodeManager.reset()),this.roleUpdates=[],this.flagUpdates=[],this.isPanelLoading=!0,await this.getAssignedRoles(),this.isPanelLoading=!1,this.displayDefaultRole(),this.setShowControls()}async getAssignedRoles(){this.roleAssignments=(await Dt(this.contact.id,this.account.accountNumber)).filter(t=>t.isActive),this.assignedRoles=[...mt(this.roleAssignments),...N.getAsRoles()],await this.getRoleAndFlagTrees()}async getRoleAndFlagTrees(){var t,e,i;if(!(!((t=this.assignedRoles)===null||t===void 0)&&t.length))return;const s=this.assignedRoles.map(r=>r.id),[a,n]=await Ot(s,this.contact.id,this.account.accountNumber,q((e=this.contact)===null||e===void 0?void 0:e.email));this.assignedRoleTrees=(i=structuredClone(a))===null||i===void 0?void 0:i.filter(r=>r!==void 0),this.userFlagTrees=structuredClone(n)}displayDefaultRole(){var t;!((t=this.assignedRoles)===null||t===void 0)&&t.length&&(this.activeRoleId=this.assignedRoles[0].id,this.selectRole(this.activeRoleId))}async selectRoleEventHandler(t){this.selectRole(t.detail.roleId)}async selectRole(t){this.activeRoleId=t;const e=await this.roleTabComponent;e==null||e.setActiveRole(this.activeRoleId),this.setShowControls()}setShowControls(){var t;if(this.isPanelLoading||((t=this.account)===null||t===void 0?void 0:t.status)===p.REMOVED){this.saveControls=A.hidden;return}const e=this.assignedRoleTrees.filter(i=>i!==void 0).every(i=>Ht(i.rootNode));N.get().length?this.saveControls=this.isDirty&&e?A.enabled:A.disabled:this.saveControls=this.isDirty?e?A.enabled:A.disabled:A.hidden}async addRole(t){const e=await this.addRoleDialog;e&&(e.isOpen=!1),this.isPanelLoading=!0;const i={roleId:t,contactId:this.contact.id,accountNumber:this.account.accountNumber,isActive:!0};N.set([...N.get(),i]);const s=Tt(i.roleId);if(!s||!this.assignedRoles)return;this.assignedRoles=[...this.assignedRoles,s];const[a]=await _t([t],this.contact.id,this.account.accountNumber,q(this.contact.email));this.assignedRoleTrees.push(a);const n=await this.addRoleDialog;n&&(n.isOpen=!1),this.isPanelLoading=!1,this.selectRole(s.id)}async removeRole(t){var e;const i=await this.userDetailsAssignments,s=this.assignedRoles.find(n=>n.id===t);if(!s)return;if(N.getAsRoles().findIndex(n=>n.id===s.id)>-1){N.removeRole(t);const n=i==null?void 0:i.assignmentUpdateManagers.find(r=>{var g;return r.accountId===((g=this.account)===null||g===void 0?void 0:g.accountNumber)});n&&n.nodeManager.nodeUpdates.find(r=>r.key===t)&&n.nodeManager.remove(t),this.assignedRoles=this.assignedRoles.filter(r=>r.id!==s.id),this.assignedRoleTrees=(e=this.assignedRoleTrees)===null||e===void 0?void 0:e.filter(r=>r!==void 0).filter(r=>r.role!==s.id)}else{this.isPanelLoading=!0;const n=this.roleAssignments.filter(r=>r.roleId===t&&r.isActive);await this.roleAssignmentController.removeRoleAssignment(n),await this.getAssignedRoles(),this.assignedRoles=this.assignedRoles.filter(r=>r.id!==s.id),this.isPanelLoading=!1}this.roleUpdates=this.roleUpdates.filter(n=>n.key!==t),this.assignedRoleTrees=this.assignedRoleTrees.filter(n=>!!n&&n.role!==s.id);const a=await this.roleTabComponent;a==null||a.requestUpdate("assignedRoles",[]),this.displayDefaultRole()}resetForm(){this.displayDefaultRole(),this.roleUpdates=[],this.flagUpdates=[],P.clear(),N.clear(),this.setShowControls()}updateView(t){this.viewRoute=t,t===$.ROLES&&this.selectRole(this.activeRoleId)}async openAddRoleDialog(){const t=await this.addRoleDialog;t&&t.handleOpenDialog()}removeRoleButtonStatus(){var t,e;const i=N.get().map(a=>a.roleId),s=(e=((t=this.assignedRoles)!==null&&t!==void 0?t:[]).filter(a=>!i.includes(a.id)))!==null&&e!==void 0?e:[];return i.find(a=>a===this.activeRoleId)!=null?!1:s.length<2}renderPermissions(){var t,e;return!(!((t=this.assignedRoles)===null||t===void 0)&&t.length)||this.redundantStatuses.includes((e=this.account)===null||e===void 0?void 0:e.status)?h:c` <user-details-permission .activeRoleId="${this.activeRoleId}"> </user-details-permission> `}renderRemovedOrDeclinedAccount(){var t;return this.account?c` <user-account-removed-declined .status="${this.account.status}" .roles="${this.roles}" .accountNumber="${this.account.accountNumber}" .contactID="${(t=this.contact)===null||t===void 0?void 0:t.id}" .changedBy="${this.account.statusUpdateBy}" .changedAt="${this.account.statusUpdateAt}"></user-account-removed-declined> `:h}renderRoles(){return!this.account||!this.contact||!this.assignedRoles?h:this.redundantStatuses.includes(this.account.status)?h:c` <user-details-tab-roles id="role-data-element" .assignedRoles="${this.assignedRoles}" .activeRoleId="${this.activeRoleId}" .canRemoveRoles="${this.canRemoveRoles}" .canAddRoles="${this.canAddRoles}" .removeRolesDisabled="${this.removeRoleButtonStatus()}" .addRolesDisabled="${this.addRolesDisabled}" @role-select="${t=>this.selectRoleEventHandler(t)}" @open-role-menu="${()=>this.openAddRoleDialog()}" @open-remove-role-menu="${()=>this.dispatchOpenConfirmation()}"> </user-details-tab-roles> `}renderLoading(){return this.isPanelLoading?c`<ix-progress aria-label="User details panel" .indeterminate="${!0}" data-testid="${V.PROGRESS_BAR}"> </ix-progress>`:h}renderTree(){var t,e,i;if(!(!((t=this.assignedRoles)===null||t===void 0)&&t.length))return h;let s;if(this.activeRoleId)s=this.assignedRoleTrees.filter(n=>n!==void 0).find(n=>n.role===this.activeRoleId);else{const[n]=this.assignedRoleTrees;s=n}const a=n=>{this.roleUpdates=n.detail.message.updates,this.setShowControls()};return s&&s.rootNode&&!this.redundantStatuses.includes((e=this.account)===null||e===void 0?void 0:e.status)?c`<user-details-assignments .assignment="${s}" .contact="${this.contact}" .accountNumber="${(i=this.account)===null||i===void 0?void 0:i.accountNumber}" .readonly="${this.readonly}" .activeRoleId="${this.activeRoleId}" @check-toggle="${a}"></user-details-assignments>`:h}renderFlags(){const t=e=>{this.flagUpdates=structuredClone(e.detail.message.updates),this.setShowControls()};return!this.account||!this.userFlagTrees?h:c`<user-flags .flags="${this.userFlagTrees}" searchEnabled showCheckboxes .disableCheckboxes="${this.readonly}" .contact="${this.contact}" @check-toggle="${t}"></user-flags>`}renderControls(){return c`<user-details-controls .roles="${this.roles}" .account="${this.account}" .contact="${y.get()}" .saveControls="${this.saveControls}" .readonly="${this.readonly}" .emitRoleUpdates="${this.emitRoleUpdates}" ?isPanelLoading="${this.isPanelLoading}" @reset-changes="${()=>this.resetForm()}" @update-changes="${this.saveAssignments}" @reload-account="${t=>this.dispatchReloadAccountEvent(t.detail.accountNumber,t.detail.overrideUnsavedChanges)}"> </user-details-controls>`}renderRemoveRoleConfirmation(){return c`<changes-confirmation id="data-loss-dialog" class="z-50 relative" .headerText="${"Are you sure you want to remove this role?"}" .bodyText="${"The user will no longer be able to perform the permissions of this role for this account."}" .confirmationButtonText="${"Remove Role"}" ?isOpen="${this.removeRoleDialogOpen}" @confirm="${()=>{this.removeRole(this.activeRoleId),this.removeRoleDialogOpen=!1}}" @cancel="${()=>{this.removeRoleDialogOpen=!1}}" data-testid="${V.DIALOG_REMOVE_ROLE}"> </changes-confirmation>`}renderAddAccountRoleConfirmation(){return this.assignedRoles?c`<add-account-role id="add-role-dialog" .contact="${this.contact}" .account="${this.account}" .roles="${this.roles}" .assignedRoles="${this.assignedRoles}" ?loading="${this.isPanelLoading}" @add-role="${t=>this.addRole(t.detail.roleId)}" data-testid="${V.DIALOG_ADD_ROLE}"> </add-account-role>`:h}renderRoleView(){return c`<div id="roles-view"> <div>${this.renderRoles()}</div> <div class="grid grid-cols-1 xl:grid-cols-2 h-full p-4"> <div class="grow h-full">${this.renderPermissions()}</div> <div class="tree-view grow h-full lg:overflow-auto pl-2">${this.renderTree()}</div> </div> </div>`}renderFlagsView(){return this.showUserFlags===!1?h:c`<div id="flags-view"> <div class="grid grid-cols-1 xl:grid-cols-1 h-full"> <div class="grow h-full mt-6 px-4">${this.renderFlags()}</div> <div class="grow h-full mt-2 flag-text"> Learn more about user flags <a id="flag-text-link" href="#">here.</a> </div> </div> </div>`}renderNavigation(){var t;return this.isPanelLoading||this.redundantStatuses.includes((t=this.account)===null||t===void 0?void 0:t.status)?h:c`<div class="user-details-navigation"> <user-details-navigation .view="${this.viewRoute}" ?showFlags="${this.showUserFlags}" ?showRoles="${this.showRoles}" .navigate="${e=>this.updateView(e)}"></user-details-navigation> </div>`}renderView(){var t;let e=h;return this.showRoles&&this.viewRoute===$.ROLES&&(e=this.renderRoleView()),this.showUserFlags&&this.viewRoute===$.USERFLAGS&&(e=this.renderFlagsView()),this.redundantStatuses.includes((t=this.account)===null||t===void 0?void 0:t.status)&&(e=this.renderRemovedOrDeclinedAccount()),e}render(){return c` <div class="user-details-panel"> ${this.renderControls()} ${this.renderNavigation()} ${wt(this.isPanelLoading?this.renderLoading():this.renderView())} </div> ${this.renderAddAccountRoleConfirmation()} ${this.renderRemoveRoleConfirmation()} `}};v.styles=[tt,et,k,X],o([l({type:Object,attribute:!1})],v.prototype,"account",void 0),o([l({type:Object,attribute:!1})],v.prototype,"contact",void 0),o([l({type:Array,attribute:!1})],v.prototype,"assignedRoles",void 0),o([l({type:Array,attribute:!1})],v.prototype,"roles",void 0),o([l({type:Array,attribute:!1})],v.prototype,"userFlagTrees",void 0),o([l({type:Array,attribute:!1})],v.prototype,"assignedRoleTrees",void 0),o([l({type:Boolean})],v.prototype,"readonly",void 0),o([u()],v.prototype,"isPanelLoading",void 0),o([u()],v.prototype,"roleAssignments",void 0),o([u()],v.prototype,"viewRoute",void 0),o([u()],v.prototype,"saveControls",void 0),o([u()],v.prototype,"flagUpdates",void 0),o([u()],v.prototype,"roleUpdates",void 0),o([u()],v.prototype,"activeRoleId",void 0),o([u()],v.prototype,"permissionData",void 0),o([u()],v.prototype,"removeRoleDialogOpen",void 0),o([L("#role-data-element")],v.prototype,"roleTabComponent",void 0),o([L("user-details-controls")],v.prototype,"controlsComponent",void 0),o([L("#add-role-dialog")],v.prototype,"addRoleDialog",void 0),o([L("user-details-assignments")],v.prototype,"userDetailsAssignments",void 0),o([L("user-flags")],v.prototype,"userFlags",void 0),v=o([O("user-details-panel")],v);class T{}T.FIRST_NAME="user-details-view-first-name",T.LAST_NAME="user-details-view-last-name",T.EMAIL="user-details-view-email",T.PHONE="user-details-view-phone";let f=class extends G{constructor(){super(...arguments),this.allowSave=!0,this.isEditProfileDialogOpen=!1}firstUpdated(){this.allowSave=!1}shouldUpdate(){return!!this.contact}willUpdate(t){t.has("contact")&&this.handleDialogReset()}handleDialogClose(){this.isEditProfileDialogOpen=!1,this.handleDialogReset()}handleDialogOpen(){this.isEditProfileDialogOpen=!0,this.validateDialogFields()}handleDialogReset(){at(this.firstName,this.contact.firstName),at(this.lastName,this.contact.lastName),at(this.email,this.contact.email),gt(this.phoneNumber,this.contact.phone),Lt(this.evacAssistance,this.contact.evacAssistance),this.allowSave=!0}validateDialogFields(){B(this.firstName,this.firstName.value,"Invalid first name"),B(this.lastName,this.lastName.value,"Invalid last name"),B(this.email,this.email.value,"Invalid email"),bt(this.phoneNumber,this.phoneNumber.value)}dispatchUpdateUserEvent(){var t,e,i,s,a;const n={...this.contact};n.firstName=(t=nt(this.firstName))!==null&&t!==void 0?t:this.firstName.value,n.lastName=(e=nt(this.lastName))!==null&&e!==void 0?e:this.lastName.value,n.email=(i=nt(this.email))!==null&&i!==void 0?i:this.email.value,n.phone=(s=xt(this.phoneNumber))!==null&&s!==void 0?s:this.phoneNumber.value,n.evacAssistance=(a=kt(this.evacAssistance))!==null&&a!==void 0?a:this.evacAssistance.checked,y.set({...n});try{this.saveChanges(n),C("Changes saved.",3e3,"center")}catch(r){if(r.statusCode==="400"){Pt([this.firstName,this.lastName,this.email],r.errors),this.phoneNumber.error=!0;const g=r.errors.find(Y=>Y.field===this.phoneNumber.id);g&&(this.phoneNumber.errorText=g.error)}}finally{this.isEditProfileDialogOpen=!1}}renderEditForm(){var t,e,i,s,a,n,r,g;return c`<ix-dialog class="dialog z-50 relative" id="edit-profile-dialog" ?open="${this.isEditProfileDialogOpen}" @close="${()=>this.handleDialogClose()}"> <div class="dlr-text-heading" slot="headline">Edit Profile</div> <form class="dialog-form min-w-0 max-w-full max-[640px]:w-screen" slot="content" id="edit-profile-id" method="dialog"> <div class="user-profile-name-input-group grid grid-cols-1 sm:grid-cols-2"> <div class="user-profile-input"> <ix-textbox required="true" id="first-name" class="textbox" type="text" pattern="${At.name}" maxLength="50" label="First Name" placeholder="i.e. First Name" value="${(e=(t=this.contact)===null||t===void 0?void 0:t.firstName)!==null&&e!==void 0?e:""}" @input="${()=>{this.allowSave=B(this.firstName,this.firstName.value,"Invalid first name")}}"></ix-textbox> </div> <div class="user-profile-input"> <ix-textbox required="true" id="last-name" class="textbox" type="text" pattern="${At.name}" maxLength="50" label="Last Name" placeholder="i.e. Last Name" value="${(s=(i=this.contact)===null||i===void 0?void 0:i.lastName)!==null&&s!==void 0?s:""}" @input="${()=>{this.allowSave=B(this.lastName,this.lastName.value,"Invalid last name")}}"></ix-textbox> </div> </div> <div class="user-profile-input"> <ix-phone-input required id="phone-number" class="single-row-textbox" label="Phone Number" value="${(n=yt((a=this.contact)===null||a===void 0?void 0:a.phone))!==null&&n!==void 0?n:""}" @input="${()=>{gt(this.phoneNumber,yt(xt(this.phoneNumber))),this.allowSave=bt(this.phoneNumber,"Invalid phone number")}}"></ix-phone-input> </div> <div class="user-profile-input"> <ix-textbox required="true" id="email" class="single-row-textbox" type="email" label="Email Address" value="${(g=(r=this.contact)===null||r===void 0?void 0:r.email)!==null&&g!==void 0?g:""}" @input="${()=>{this.allowSave=B(this.email,this.email.value,"Invalid email")}}"></ix-textbox> </div> </form> <div class="dialog-actions" slot="actions"> <ix-button form="edit-profile-id" appearance="text" text="Cancel" @click="${()=>this.handleDialogClose()}"> Cancel </ix-button> <ix-button id="save-user-button" appearance="text" text="Save Changes" .disabled="${!this.allowSave}" @click="${()=>{this.dispatchUpdateUserEvent()}}"> Save Changes </ix-button> </div> </ix-dialog>`}renderButton(){return R.hasExternalUserUpdate(this.selectedAccountNumber)&&!R.isProfileOfLoggedInUser(this.contact.email)?c`<ix-button id="open-user-button" appearance="text" has-icon @click="${()=>this.handleDialogOpen()}"> <md-icon class="edit-icon" slot="icon">edit</md-icon> Edit Profile </ix-button>`:h}render(){var t,e,i,s;return c` <div class="user-details-card"> <div class="user-details-header"> <h1 class="dlr-text-heading">User Details</h1> </div> <div> <div class="user-details-body grid md:grid-cols-2 gap-x-8 gap-y-4 pb-[1.5rem]"> <div class="first-name-container"> <p class="dlr-text-caption-alt text-on-surface-variant">FIRST NAME</p> <div class="first-name" data-testid="${T.FIRST_NAME}"> ${(t=this.contact)===null||t===void 0?void 0:t.firstName} </div> </div> <div class="last-name-container"> <p class="dlr-text-caption-alt text-on-surface-variant">LAST NAME</p> <div class="last-name" data-testid="${T.LAST_NAME}"> ${(e=this.contact)===null||e===void 0?void 0:e.lastName} </div> </div> <div class="email-container"> <p class="dlr-text-caption-alt text-on-surface-variant">EMAIL ADDRESS</p> <div class="email" data-testid="${T.EMAIL}">${(i=this.contact)===null||i===void 0?void 0:i.email}</div> </div> <div class="phone-number-container"> <p class="dlr-text-caption-alt text-on-surface-variant">PHONE NUMBER</p> <ix-phone-number .number="${(s=this.contact)===null||s===void 0?void 0:s.phone}" data-testid="${T.PHONE}"></ix-phone-number> </div> </div> </div> </div> ${this.renderEditForm()} `}};f.styles=[Ut,k],o([l({type:String})],f.prototype,"selectedAccountNumber",void 0),o([l({type:Object})],f.prototype,"contact",void 0),o([l({type:Object})],f.prototype,"saveChanges",void 0),o([u()],f.prototype,"allowSave",void 0),o([u()],f.prototype,"isEditProfileDialogOpen",void 0),o([U("#first-name")],f.prototype,"firstName",void 0),o([U("#last-name")],f.prototype,"lastName",void 0),o([U("#email")],f.prototype,"email",void 0),o([U("#phone-number")],f.prototype,"phoneNumber",void 0),o([U("#evac-assistance")],f.prototype,"evacAssistance",void 0),f=o([O("user-details-view")],f);const se=j`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.account-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;row-gap:0;cursor:pointer;height:24px;margin-bottom:24px}li{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:#092241;width:100%;height:24px;padding-top:20px;padding-bottom:20px;border-radius:0 30px 30px 0;text-align:center;gap:1rem}li.account-active,li:focus,li:hover{background-color:rgba(20,86,224,.1)}.account-rhs-section{display:flex;align-items:center}ul{list-style-type:none;padding-left:20px}.check_circle{color:#4caf50}.mail{color:#ff9800}.warning{color:#db0028}.delete_forever{color:#6d758c}.account-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`;class _{}_.STATUS=t=>`dr-account-status-${t!=null?t:""}`,_.ICON=t=>`dr-account-icon-${t!=null?t:""}`,_.NAME=t=>`dr-account-name-${t!=null?t:""}`,_.EVENT_DISPATCH_EL=t=>`dr-account-event-el-${t!=null?t:""}`;let M=class extends Z{constructor(){super(...arguments),this.active=!1,this.isSelected=!1}get statusText(){return Kt[this.status]}get statusIcon(){return Rt[this.status]}dispatchChangeAccountEvent(){var t;this.dispatchEvent(new CustomEvent("account-click",{detail:{accountNumber:(t=this.account)===null||t===void 0?void 0:t.accountNumber}}))}render(){var t,e,i,s,a,n,r;return c` <div> <div class="account-container"> <li class="${`account${this.active?"-active":" "} ${this.isSelected?"font-bold":""}`}" @click="${()=>this.dispatchChangeAccountEvent()}" @keydown="${()=>this.dispatchChangeAccountEvent()}" data-testid="${_.EVENT_DISPATCH_EL((t=this.account)===null||t===void 0?void 0:t.accountNumber)}"> <p class="${`account-name ml-4 dlr-text-small ${this.active?"font-bold":""}`}" data-testid="${_.NAME((e=this.account)===null||e===void 0?void 0:e.accountNumber)}"> ${(s=(i=this.account)===null||i===void 0?void 0:i.displayName)!==null&&s!==void 0?s:(a=this.account)===null||a===void 0?void 0:a.name} </p> <div class="flex items-center mr-4"> <div class="account-rhs-section"> <p class="dlr-text-small" data-testid="${_.STATUS((n=this.account)===null||n===void 0?void 0:n.accountNumber)}"> ${this.statusText} </p> </div> <ix-icon filled class="mt-1 ml-2 text-2xl" data-testid="${_.ICON((r=this.account)===null||r===void 0?void 0:r.accountNumber)}" style="${`color: ${dt[this.status]}`}">${this.statusIcon}</ix-icon> </div> </li> </div> </div> `}};M.styles=[se,k],o([l({type:Object})],M.prototype,"account",void 0),o([l({type:Boolean})],M.prototype,"active",void 0),o([l({type:String})],M.prototype,"status",void 0),o([l({type:Boolean})],M.prototype,"isSelected",void 0),M=o([O("dr-account")],M);const oe=j`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.accounts-card{display:flex;flex-direction:column;width:100%;background:0 0;border-radius:20px}.accounts-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.divider{margin-bottom:20px}.option{display:block;width:100%}.accounts-list{padding-left:0}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (max-width:600px){.accounts-card-header{margin-bottom:1.5rem}.dialog-form{min-width:initial}}`;class d{}d.ACCOUNTS_LIST="acc-card-accounts-list",d.ACCOUNT=t=>`acc-card-account-${t!=null?t:""}`,d.ACCOUNT_OPTION=t=>`acc-card-account-option-${t!=null?t:""}`,d.ACCOUNT_DIVIDER="acc-card-account-divider",d.ROLE_OPTION=t=>`acc-card-role-option-${t.replace(/ /g,"_")}`,d.BTN_ADD_ACCOUNT="acc-card-btn-add-account",d.ACCOUNT_DIALOG="acc-card-add-account-dialog",d.ACCOUNT_DIALOG_HEADER="acc-card-add-account-header",d.ACCOUNT_DIALOG_SELECT="acc-card-add-account-select",d.ACCOUNT_DIALOG_CANCEL="acc-card-add-account-cancel",d.ACCOUNT_DIALOG_CONFIRM="acc-card-add-account-confirm",d.ROLE_DIALOG="acc-card-add-role-dialog",d.ROLE_DIALOG_HEADER="acc-card-add-role-header",d.ROLE_DIALOG_SELECT="acc-card-add-role-select",d.ROLE_DIALOG_CANCEL="acc-card-add-role-cancel",d.ROLE_DIALOG_CONFIRM="acc-card-add-role-confirm",d.CARD_HEADER="acc-card-header",d.CARD_BODY="acc-card-body",d.ACCOUNT_DIALOG_ACCOUNT_TREE="acc-card-add-account-tree";let x=class extends G{constructor(){super(...arguments),this.assignableAccounts=[],this.activeAccountNumber="",this.readonly=!1,this.isAddAccountDialogOpen=!1,this.isAddRoleDialogOpen=!1,this.addAccountDisabled=!0,this.addRoleDisabled=!0,this.selectedAccountNumber="",this.selectedRoleName="",this.activeAccountIndex=0,this.addingAccount=!1,this.changeSelectedAccount=async(t,e=!1)=>{this.activeAccountIndex=this.assignedAccounts.findIndex(i=>i.accountNumber===t),!(this.activeAccountNumber===this.assignedAccounts[this.activeAccountIndex].accountNumber&&p.DRAFT!==this.assignedAccounts[this.activeAccountIndex].status)&&this.activeAccountIndex>-1&&this.dispatchEvent(new CustomEvent(H.ChangeAccountAssociation,{detail:{accountNumber:t,overrideUnsavedChanges:e}}))},this.onAccountClick=t=>{this.changeSelectedAccount(t)}}get assignedAccounts(){return[...this.contact.accounts,P.get()]}get assignedAccountNames(){var t,e,i;return(i=(e=(t=this.contact)===null||t===void 0?void 0:t.accounts)===null||e===void 0?void 0:e.filter(s=>s.status!==p.REMOVED))===null||i===void 0?void 0:i.map(s=>s.name)}get selectedAccountName(){var t;const e=this.assignableAccounts.find(i=>i.accountNumber===this.selectedAccountNumber);return(t=e==null?void 0:e.displayName)!==null&&t!==void 0?t:e==null?void 0:e.name}get roleNames(){const t=Mt.getAccounts().find(s=>s.accountNumber===this.selectedAccountNumber)||null,e=q(this.contact.email)&&R.hasAssignInternalRoleCreate(this.selectedAccountNumber),i=vt(t==null?void 0:t.accountNumber,ct.get(),e);return i==null?void 0:i.map(s=>s.name)}get fullName(){var t,e;return`${(t=this.contact)===null||t===void 0?void 0:t.firstName} ${(e=this.contact)===null||e===void 0?void 0:e.lastName}`}firstUpdated(){this.changeSelectedAccount(this.assignedAccounts[this.activeAccountIndex].accountNumber)}willUpdate(){!this.assignedAccounts[this.activeAccountIndex].accountNumber&&this.assignedAccounts.length&&this.changeSelectedAccount(this.assignedAccounts[0].accountNumber)}closeAndOpenAddRoleDialog(){this.handleDialogClose("add-account"),this.handleDialogOpen("add-role")}handleDialogOpen(t){t==="add-account"&&(this.isAddAccountDialogOpen=!0,this.selectedAccountNumber="",this.addAccountDisabled=!0,this.requestUpdate()),t==="add-role"&&(this.handleDialogClose("add-account"),this.rolesMenu&&this.rolesMenu.reset(),this.selectedRoleName="",this.addRoleDisabled=!0,this.isAddRoleDialogOpen=!0)}handleDialogClose(t){t==="add-account"&&(this.isAddAccountDialogOpen=!1),t==="add-role"&&(this.isAddRoleDialogOpen=!1,this.selectedAccountNumber="")}handleDialogReset(){this.handleDialogClose("add-account"),this.handleDialogClose("add-role"),this.rolesMenu&&this.rolesMenu.reset(),this.addAccountDisabled=!0,this.addRoleDisabled=!0,this.selectedAccountNumber="",this.selectedRoleName=""}createDraftAssociation(){const t=ct.get().find(n=>n.name===this.selectedRoleName),e=this.assignableAccounts.find(n=>n.accountNumber===this.selectedAccountNumber);if(!t||!e)return;const i=this.contact.accounts.findIndex(n=>n.accountNumber===e.accountNumber);i>-1&&(this.contact.accounts=this.contact.accounts.filter((n,r)=>r!==i),this.requestUpdate("contact",[]));const s=[{roleId:t.id,contactId:this.contact.id,accountNumber:e.accountNumber,isActive:!0}],a={name:e.name,status:p.DRAFT,accountNumber:e.accountNumber,displayName:e.displayName};P.set(a),N.set(s),this.changeSelectedAccount(this.selectedAccountNumber,!0),this.handleDialogReset()}renderAccounts(){var t;const e=(t=this.assignedAccounts)===null||t===void 0?void 0:t.filter(s=>s.status===p.ACTIVE||s.status===p.INVITED||s.status===p.DRAFT),i=this.assignedAccounts.filter(s=>s.status===p.SUSPENDED||s.status===p.REMOVED||s.status===p.DECLINED).filter(s=>!e.find(a=>a.displayName===s.displayName));return c` <ul class="accounts-list" data-testid="${d.ACCOUNTS_LIST}"> ${e==null?void 0:e.map(s=>c` <dr-account data-testid="${d.ACCOUNT(s.accountNumber)}" .account="${s}" .active="${s.accountNumber===this.activeAccountNumber}" .status="${s.status}" @account-click="${a=>this.onAccountClick(a.detail.accountNumber)}"> </dr-account> `)} ${i.length>0?c` <ix-divider class="divider" data-testid="${d.ACCOUNT_DIVIDER}"></ix-divider> ${i.map(s=>c` <dr-account data-testid="${d.ACCOUNT(s.accountNumber)}" .account="${s}" .active="${s.accountNumber===this.activeAccountNumber}" .status="${s.status}" @account-click="${a=>this.onAccountClick(a.detail.accountNumber)}"></dr-account>`)}`:c``} </ul> `}disableAssignedAccountsInTree(t){t&&(Array.isArray(t)?t.forEach(e=>this.disableAssignedAccountsInTree(e)):(t.id&&this.assignedAccounts.some(e=>e.accountNumber===t.id&&e.status.toLowerCase()!==p.REMOVED.toLowerCase())&&(t.disabled=!0,t.children&&t.children.length>0&&(t.expanded=!0)),t.children&&Array.isArray(t.children)&&t.children.forEach(e=>this.disableAssignedAccountsInTree(e))))}renderAccountTree(){const t=Bt(this.assignableAccounts);return this.disableAssignedAccountsInTree(t),c` <p class="text-black font-medium text-base">Select Account</p> <div class="border-solid border-2 rounded-md min-h-[250px] max-h-[250px] max-w-lg overflow-auto"> <ix-tree id="account-select-tree" .rootNode="${t}" @on-tree-node-selected="${e=>this.handleAccountSelection(e)}" data-testid="${d.ACCOUNT_DIALOG_ACCOUNT_TREE}"> </ix-tree> </div> `}handleAccountSelection(t){const e=t.detail.message.node||t.detail.message;e.disabled||(this.addAccountDisabled=!1,this.selectedAccountNumber=e.id)}renderRoleOptions(){return c` ${this.roleNames.map((t,e)=>c` <ix-select-option data-testid="${d.ROLE_OPTION(t)}" value="${e}" @click="${()=>{this.addRoleDisabled=!1,this.selectedRoleName=t}}"> <div slot="headline" class="option">${t}</div> </ix-select-option>`)} `}renderAddAccountDialog(){var t;return c` <ix-dialog class="dialog z-50 relative" data-testid="${d.ACCOUNT_DIALOG}" ?open="${this.isAddAccountDialogOpen}" @closed="${()=>this.handleDialogClose("add-account")}"> <div data-testid="${d.ACCOUNT_DIALOG_HEADER}" class="dlr-text-heading" slot="headline">Add an Account to ${(t=this.fullName)!==null&&t!==void 0?t:"this user"}</div> <div slot="content" style="padding:24px"> ${this.isAddAccountDialogOpen?this.renderAccountTree():h} </div> <div class="dialog-actions" slot="actions"> <ix-button data-testid="${d.ACCOUNT_DIALOG_CANCEL}" form="add-account-id" appearance="text" text="Cancel" @click="${()=>this.handleDialogReset()}"> Cancel </ix-button> <ix-button data-testid="${d.ACCOUNT_DIALOG_CONFIRM}" id="add-account-button" form="add-account-id" appearance="text" text="Add Account" .disabled="${this.addAccountDisabled}" @click="${()=>{this.closeAndOpenAddRoleDialog()}}">Add Account</ix-button> </div> </ix-dialog> `}renderAddRoleDialog(){var t,e;return c` <ix-dialog class="dialog z-50 relative" data-testid="${d.ROLE_DIALOG}" ?open="${this.isAddRoleDialogOpen}" @opened="${()=>this.handleDialogOpen("add-role")}" @closed="${()=>this.handleDialogClose("add-role")}"> <div class="dlr-text-heading" slot="headline" data-testid="${d.ROLE_DIALOG_HEADER}"> Add a Role to ${(t=this.fullName)!==null&&t!==void 0?t:"this user"} for ${(e=this.selectedAccountName)!==null&&e!==void 0?e:"this account"} </div> <form slot="content" id="add-role-to-account-id" method="dialog"> <ix-select data-testid="${d.ROLE_DIALOG_SELECT}" wide-menu class="thick" id="roles-menu" menu-positioning="fixed">${this.renderRoleOptions()}</ix-select> </form> <div class="dialog-actions" slot="actions"> <ix-button data-testid="${d.ROLE_DIALOG_CANCEL}" form="add-role-to-account-id" appearance="text" text="Cancel" ?disabled="${this.addingAccount}" @click="${()=>this.handleDialogReset()}"> <span class="button-label">Cancel</span> </ix-button> <ix-button data-testid="${d.ROLE_DIALOG_CONFIRM}" form="add-role-to-account-id" appearance="text" text="Add Account" ?disabled="${this.addRoleDisabled}" ?submitting="${this.addingAccount}" @click="${()=>this.createDraftAssociation()}"> <span class="button-label">Add Role</span> </ix-button> </div> </ix-dialog> `}renderAccountsCard(){return c` <div class="accounts-card"> <div class="accounts-card-header" data-testid="${d.CARD_HEADER}"> <div class="dlr-text-heading accounts-card-header-text">Accounts</div> ${this.renderButton()} </div> <div class="accounts-card-body" data-testid="${d.CARD_BODY}"> ${this.contact.accounts.length>0?this.renderAccounts():c`You have no accounts`} </div> </div> `}renderButton(){return this.readonly?h:c`<ix-button data-testid="${d.BTN_ADD_ACCOUNT}" appearance="text" text="Add Account" has-icon @click="${()=>this.handleDialogOpen("add-account")}"> <md-icon slot="icon">add</md-icon> Add Account </ix-button>`}render(){return c` ${this.renderAccountsCard()} ${this.renderAddAccountDialog()} ${this.renderAddRoleDialog()} `}};x.styles=[oe,k],o([l()],x.prototype,"contact",void 0),o([l({type:Array,attribute:!1})],x.prototype,"assignableAccounts",void 0),o([l({type:String})],x.prototype,"activeAccountNumber",void 0),o([l({type:Boolean})],x.prototype,"readonly",void 0),o([u()],x.prototype,"isAddAccountDialogOpen",void 0),o([u()],x.prototype,"isAddRoleDialogOpen",void 0),o([u()],x.prototype,"addAccountDisabled",void 0),o([u()],x.prototype,"addRoleDisabled",void 0),o([u()],x.prototype,"selectedAccountNumber",void 0),o([u()],x.prototype,"selectedRoleName",void 0),o([u()],x.prototype,"activeAccountIndex",void 0),o([u()],x.prototype,"addingAccount",void 0),o([U("#roles-menu")],x.prototype,"rolesMenu",void 0),x=o([O("accounts-card")],x);const ae=j`ix-dialog{--md-dialog-container-color:#fff}ix-icon-button{--md-sys-color-on-surface-variant:var(--md-sys-color-primary)}ix-select{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd;--md-menu-container-color:#fff}ix-select.thick{--md-menu-container-shape:10px}ix-select.slim{--md-outlined-field-bottom-space:2px;--md-outlined-field-top-space:2px}ix-button{--md-outlined-button-outline-color:var(--md-sys-color-primary);--md-outlined-select-text-field-outline-color:#ddd}ix-button .disabled{color:var(--md-sys-text-color-disabled)}.btn_primary{--md-filled-button-container-color:var(--md-sys-color-primary)}.btn_primary ix-icon{color:var(--md-sys-color-on-primary)}.btn_secondary{--md-filled-button-container-color:var(--md-sys-color-secondary)}.btn_secondary ix-icon{color:var(--md-sys-color-on-secondary)}.btn_tertiary{--md-filled-button-container-color:var(--md-sys-color-tertiary)}.btn_tertiary ix-icon{color:var(--md-sys-color-on-tertiary)}.btn_danger{--md-filled-button-container-color:var(--md-sys-color-error)}.btn_danger ix-icon{color:var(--md-sys-color-on-error)}.icon-btn_primary ix-icon{color:var(--md-sys-color-primary)}.icon-btn_secondary ix-icon{color:var(--md-sys-color-secondary)}.icon-btn_tertiary ix-icon{color:var(--md-sys-color-tertiary)}.icon-btn_danger ix-icon{color:var(--md-sys-color-error)}ix-icon.icon-lg{--ix-icon-font-size:32px}.dialog-form{min-width:500px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 24px 20px}.dialog-form .textfield{width:100%}.dialog-form.sm{min-width:560px}.dialog-form__textbox{padding-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;padding:8px 15px 8px 20px}@media only screen and (min-width:5px) and (max-width:600px){ix-dialog{--md-dialog-container-shape:6px}}@media only screen and (min-width:601px){ix-dialog{--md-dialog-container-shape:3px}}.um-card{padding:.5rem;background:#fff;border-radius:12px 12px 0 0;box-shadow:rgba(0,0,0,.12) 0 12px 20px -12px,#e1e4e8 0 0 0 1px inset}#user-management{color:rgba(9,34,65,.7)}nav{margin-top:2px;margin-bottom:1.5rem}user-details{margin-bottom:16px}.crumbs ol{list-style-type:none;padding-left:0;display:flex}.crumb{display:inline-block}.crumb a::after{display:inline-block;padding:0 3px}.crumbs-separator{display:flex;user-select:none;margin-left:12.5px;margin-right:12.5px}#current-nav{pointer-events:none;cursor:default}@media only screen and (max-width:600px){.um-card.rounded-lg{border-radius:0;box-shadow:none}.user-details{margin:0 .5rem}}@media only screen and (max-width:767px){.user-details-view{margin:0 1rem}}@media only screen and (min-width:601px) and (max-width:1200px){.user-details-view{margin:0 1rem}.user-details-account-panel{display:flex;flex-direction:row}.user-details-account-panel>div{flex:1;width:50px}.user-details-account-panel>div:first-child{margin-top:6px}}`;class ne{constructor(e){(this._host=e).addController(this)}hostConnected(){}hostDisconnected(){}hostUpdate(){}async getContact(e){return await ot.get({id:e})}}class I{}I.CRUMBS="user-management-details-view-crumbs",I.USER_DETAILS="user-management-details-view-user-details",I.ACCOUNTS_CARD="user-management-details-view-accounts-card",I.USER_DETAILS_PANEL="user-management-details-view-user-details-panel",I.USER_MANAGEMENT_PANEL="user-management-details-view-user-management-panel";let D=class extends G{constructor(){super(...arguments),this.contactController=new ne(this),this.roles=[],this.isPageLoading=!1,this.confirmationDialogIsOpen=!1}get assignableAccounts(){return Ft().filter(t=>R.hasExternalUserUpdate(t.accountNumber))}get fullName(){var t,e;return`${(t=this.contact)===null||t===void 0?void 0:t.firstName} ${(e=this.contact)===null||e===void 0?void 0:e.lastName}`}get readonly(){var t,e;let i;return i=R.hasUserUpdate((t=this.account)===null||t===void 0?void 0:t.accountNumber),!i||R.isProfileOfLoggedInUser((e=this.contact)===null||e===void 0?void 0:e.email)}async connectedCallback(){super.connectedCallback(),this.getCurrentContactFromUrl(),await R.refreshAccounts(),this.disposeReaction=$t(()=>y.get(),()=>{this.contact=y.get()})}disconnectedCallback(){super.disconnectedCallback(),this.disposeReaction()}async firstUpdated(){N.clear(),P.clear(),this.roles=ct.get(),this.contact=await this.contactController.getContact(this.contactId),this.contact.accounts=zt(this.contact.accounts),y.set(this.contact)}async saveUser(){await ot.update({id:this.contact.id,contactInput:{...this.contact}}),y.refresh()}async getCurrentContactFromUrl(){this.contactId=new URL(window.location.href).searchParams.get("id")||void 0,this.contactId||Vt(rt.UserManagement)}openDirtyPageWarning(t){this.confirmationDialogIsOpen=!0,this.requestedAccount=t}async handleAccountChange(t,e=!1){var i,s,a;if(!((i=this.contact)===null||i===void 0)&&i.accounts){if(!e&&!((s=this.userDetailsPanel)===null||s===void 0)&&s.isDirty){this.openDirtyPageWarning(t);return}this.account=[P.get(),...this.contact.accounts].find(n=>n.accountNumber===t),this.userDetailsPanel=await this.userDetailsPanelAsync,(a=this.userDetailsPanel)===null||a===void 0||a.loadAccount()}}renderDialogs(){return c`<changes-confirmation id="confirmation-dialog" ?isOpen="${this.confirmationDialogIsOpen}" headerText="You have unsaved changes." bodyText="If you leave this account, you will lose the changes you made." confirmationButtonText="Discard Changes" cancelButtonText="Dismiss" @confirm="${async()=>{this.handleAccountChange(this.requestedAccount,!0);const t=await this.userDetailsPanel;t==null||t.resetForm(),this.confirmationDialogIsOpen=!1}}" @cancel="${()=>{this.confirmationDialogIsOpen=!1}}"> </changes-confirmation> <before-leave-dialog .isDirtyCallback="${()=>{var t;return(t=this.userDetailsPanel)===null||t===void 0?void 0:t.isDirty}}"> </before-leave-dialog>`}renderLoading(){return c`<ix-progress aria-label="User details panel" indeterminate> </ix-progress>`}renderContent(){var t,e,i;return!this.contact||!this.contact.accounts?this.renderLoading():c` <div class="flex flex-col h-full overflow-hidden lg:flex-row gap-6"> <div class="lg:w-1/3 user-details-view"> <nav class="crumbs" data-testid="${I.CRUMBS}"> <ol> <li class="crumb"> <a id="user-management" href="${ft(rt.UserManagement)}">User Management</a> </li> <li class="crumbs-separator">></li> <li class="crumb"> <a id="current-nav" href="${ft(rt.UserManagementDetails)}">${c`${this.fullName}`}</a> </li> </ol> </nav> <div class="user-details-account-panel"> <div> <user-details-view data-testid="${I.USER_DETAILS}" .contact="${y.get()}" .saveChanges="${()=>this.saveUser()}" .selectedAccountNumber="${(t=this.account)===null||t===void 0?void 0:t.accountNumber}"></user-details-view> </div> <div> <accounts-card data-testid="${I.ACCOUNTS_CARD}" .contact="${y.get()}" .activeAccountNumber="${(i=(e=this.account)===null||e===void 0?void 0:e.accountNumber)!==null&&i!==void 0?i:""}" .assignableAccounts="${this.assignableAccounts}" .readonly="${this.readonly}" @change-account="${s=>this.handleAccountChange(s.detail.accountNumber,s.detail.overrideUnsavedChanges)}"></accounts-card> </div> </div> </div> <div class="rounded-lg um-card grow overflow-auto md:mx-4 lg:mx-0"> <user-details-panel data-testid="${I.USER_MANAGEMENT_PANEL}" id="user-management-panel" .contact="${y.get()}" .account="${this.account}" .roles="${this.roles}" .readonly="${this.readonly}" @reload-account="${s=>this.handleAccountChange(s.detail.accountNumber,s.detail.overrideUnsavedChanges)}"> </user-details-panel> </div> </div> ${this.renderDialogs()} `}render(){return this.isPageLoading?this.renderLoading():this.renderContent()}};D.styles=[ae,k],o([u()],D.prototype,"account",void 0),o([u()],D.prototype,"contact",void 0),o([u()],D.prototype,"contactId",void 0),o([u()],D.prototype,"roles",void 0),o([u()],D.prototype,"isPageLoading",void 0),o([u()],D.prototype,"confirmationDialogIsOpen",void 0),o([L("#user-management-panel")],D.prototype,"userDetailsPanelAsync",void 0),D=o([O("user-management-details-view")],D);export{D as UserManagementDetailsView};
|
package/dist/versions.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default {"build-id":"0000","env":"tx","branch":"xxxx"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"build-id":"0000","env":"tx","branch":"xxxx"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digital-realty/ui-user-management",
|
|
3
3
|
"description": "Webcomponent ui-user-management following open-wc recommendations",
|
|
4
|
-
"license": "
|
|
5
|
-
"author": "
|
|
6
|
-
"version": "
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"author": "ui-user-management",
|
|
6
|
+
"version": "11.0.0",
|
|
7
7
|
"type": "module",
|
|
8
|
-
"publishConfig": {
|
|
9
|
-
"access": "public"
|
|
10
|
-
},
|
|
11
8
|
"exports": {
|
|
12
|
-
"./ui-user-management.js": "./
|
|
13
|
-
"./role-management.js": "./out-tsc/src/views/role-management-view.js",
|
|
9
|
+
"./ui-user-management.js": "./dist/ui-user-management.js",
|
|
14
10
|
"./versions.js": "./dist/versions.js"
|
|
15
11
|
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
16
15
|
"files": [
|
|
17
|
-
"dist"
|
|
18
|
-
"!dist/index.html",
|
|
19
|
-
"!dist/versions.js",
|
|
20
|
-
"!dist/versions.json"
|
|
16
|
+
"dist"
|
|
21
17
|
],
|
|
22
18
|
"workspaces": [
|
|
23
19
|
"../lib-components/packages/*"
|
|
@@ -30,8 +26,9 @@
|
|
|
30
26
|
"ts:watch": "concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"npm run tailwindcss:watch\" \"npm run twlit:watch\" \"npm run watch-less\"",
|
|
31
27
|
"ts:build": "tsc",
|
|
32
28
|
"build:workspace": "npm run build",
|
|
33
|
-
"
|
|
34
|
-
"build
|
|
29
|
+
"prepack": "npm run build",
|
|
30
|
+
"build": "npm run compile-less-to-styles && npm run generate-api && npm run tailwindcss:build && npm run twlit:build && rimraf dist && tsc && rollup -c rollup.config.mjs && npx ix-write-versions write-versions && npm run analyze -- --exclude dist",
|
|
31
|
+
"build:no-generate": "npm run compile-less-to-styles && npm run tailwindcss:build && npm run twlit:build && rimraf dist && tsc && rollup -c rollup.config.mjs && npm run analyze -- --exclude dist",
|
|
35
32
|
"generate-import-map-localhost": "ix-import-map write-import-map --cdn=http://localhost:8081 --target=./index.html --original-target=./index-original.html",
|
|
36
33
|
"generate-import-map": "ix-import-map write-import-map --target=./index.html --original-target=./index-original.html --latest-packages=true",
|
|
37
34
|
"start:build": "web-dev-server --root-dir dist --app-index index.html --open",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e="Alerts",t="Content",n="DCIM",o="Invoices",a="Marketplace",r="Release",s="Security",c={"Account Information":"Account Information",Alerts:e,"Cloud Connect":"Cloud Connect",Content:t,"Cross Connect":"Cross Connect","Custom Role":"Custom Role","Custom Roles":"Custom Roles","Customer Equipment Connection (CEC)":"Customer Equipment Connection (CEC)","Customer Support":"Customer Care","Customer Support Team":"Customer Support Team",DCIM:n,"DCIM-enabled location data":"DCIM-enabled location data","Default System Roles":"Default System Roles","EMEA MarketPlace":"EMEA MarketPlace","External User":"External User","Internal Roles":"Internal Roles","Internal User":"Internal User","Internet Exchange":"Internet Exchange","Intra-Customer Connectivity (ICC)":"Intra-Customer Connectivity (ICC)",Invoices:o,"IP Bandwidth":"IP Bandwidth",Marketplace:a,"OSP Access":"OSP Access","Permanent Badge":"Permanent Badge","Planned Site Maintenance":"Planned Maintenance","PoP/POE Room Access":"PoP/POE Room Access",Release:r,"Remote Hands":"Remote Hands","Remote Hands Package":"Remote Hands Package",Security:s,"Service Exchange Cloud Router":"Service Exchange Cloud Router","Service Exchange Port":"Service Exchange Port","Shipping & Receiving":"Deliveries & Removals","Space & Power":"Space & Power","Trouble Ticket":"Trouble Ticket","Visitor Access":"Visitor Access"};export{e as Alerts,t as Content,n as DCIM,o as Invoices,a as Marketplace,r as Release,s as Security,c as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e;(function(E){E.Checked="CHECKED",E.Indeterminate="INDETERMINATE",E.Inherited="INHERITED",E.Unchecked="UNCHECKED"})(e||(e={}));export{e as PermissionStatusEnum};
|
package/dist/ui-user-management/out-tsc/src/api/login-service-api/apis/ui-user-management.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as c,JSONApiResponse as s,RequiredError as f}from"../ui-user-management.js";import{ProfileSettingFromJSON as u}from"../models/ui-user-management2.js";import{ProfileSettingEditInputToJSON as p}from"../models/ui-user-management.js";class h extends c{async getUserSettingsRaw(t){const i={},o={};if(this.configuration&&this.configuration.accessToken){const n=this.configuration.accessToken,e=await n("bearerToken",[]);e&&(o.Authorization="Bearer ".concat(e))}const r=await this.request({path:"/user-profile",method:"GET",headers:o,query:i},t);return new s(r,n=>u(n))}async getUserSettings(t){return await(await this.getUserSettingsRaw(t)).value()}async userProfilePatchRaw(t,i){if(t.profileSettingEditInput===null||t.profileSettingEditInput===void 0)throw new f("profileSettingEditInput","Required parameter requestParameters.profileSettingEditInput was null or undefined when calling userProfilePatch.");const o={},r={};if(r["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken){const e=this.configuration.accessToken,a=await e("bearerToken",[]);a&&(r.Authorization="Bearer ".concat(a))}const n=await this.request({path:"/user-profile",method:"PATCH",headers:r,query:o,body:p(t.profileSettingEditInput)},i);return new s(n,e=>u(e))}async userProfilePatch(t,i){return await(await this.userProfilePatchRaw(t,i)).value()}}export{h as UserProfileSettingsApi};
|
package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../ui-user-management.js";function r(e){if(e!==void 0)return e===null?null:{firstName:e.firstName,lastName:e.lastName,contactPhoneNumber:e.contactPhoneNumber,preferredLanguage:e.preferredLanguage,preferredTimezone:e.preferredTimezone,timezoneOverridden:e.timezoneOverridden,preferredDateFormat:e.preferredDateFormat,preferredTimeFormat:e.preferredTimeFormat}}export{r as ProfileSettingEditInputToJSON};
|
package/dist/ui-user-management/out-tsc/src/api/login-service-api/models/ui-user-management2.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{exists as r}from"../ui-user-management.js";function t(e){return o(e)}function o(e,i){return e==null?e:{firstName:r(e,"firstName")?e.firstName:void 0,lastName:r(e,"lastName")?e.lastName:void 0,contactPhoneNumber:r(e,"contactPhoneNumber")?e.contactPhoneNumber:void 0,preferredLanguage:r(e,"preferredLanguage")?e.preferredLanguage:void 0,preferredTimezone:r(e,"preferredTimezone")?e.preferredTimezone:void 0,timezoneOverridden:r(e,"timezoneOverridden")?e.timezoneOverridden:void 0,preferredDateFormat:r(e,"preferredDateFormat")?e.preferredDateFormat:void 0,preferredTimeFormat:r(e,"preferredTimeFormat")?e.preferredTimeFormat:void 0,email:r(e,"email")?e.email:void 0}}export{t as ProfileSettingFromJSON,o as ProfileSettingFromJSONTyped};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const d="http://localhost".replace(/\/+$/,"");class l{constructor(t={}){this.configuration=t}set config(t){this.configuration=t}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:d}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||h}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const t=this.configuration.apiKey;if(t)return typeof t=="function"?t:()=>t}get accessToken(){const t=this.configuration.accessToken;if(t)return typeof t=="function"?t:async()=>t}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const p=new l;class u{constructor(t=p){this.configuration=t,this.fetchApi=async(e,o)=>{let n={url:e,init:o};for(const s of this.middleware)s.pre&&(n=await s.pre({fetch:this.fetchApi,...n})||n);let r;try{r=await(this.configuration.fetchApi||fetch)(n.url,n.init)}catch(s){for(const a of this.middleware)a.onError&&(r=await a.onError({fetch:this.fetchApi,url:n.url,init:n.init,error:s,response:r?r.clone():void 0})||r);if(r===void 0)throw s instanceof Error?new m(s,"The request failed and the interceptors did not return an alternative response"):s}for(const s of this.middleware)s.post&&(r=await s.post({fetch:this.fetchApi,url:n.url,init:n.init,response:r.clone()})||r);return r},this.middleware=t.middleware}withMiddleware(...t){const e=this.clone();return e.middleware=e.middleware.concat(...t),e}withPreMiddleware(...t){const e=t.map(o=>({pre:o}));return this.withMiddleware(...e)}withPostMiddleware(...t){const e=t.map(o=>({post:o}));return this.withMiddleware(...e)}isJsonMime(t){return t?u.jsonRegex.test(t):!1}async request(t,e){const{url:o,init:n}=await this.createFetchParams(t,e),r=await this.fetchApi(o,n);if(r&&r.status>=200&&r.status<300)return r;throw new g(r,"Response returned an error code")}async createFetchParams(t,e){let o=this.configuration.basePath+t.path;t.query!==void 0&&Object.keys(t.query).length!==0&&(o+="?"+this.configuration.queryParamsStringify(t.query));const n=Object.assign({},this.configuration.headers,t.headers);Object.keys(n).forEach(f=>n[f]===void 0?delete n[f]:{});const r=typeof e=="function"?e:async()=>e,s={method:t.method,headers:n,body:t.body,credentials:this.configuration.credentials},a={...s,...await r({init:s,context:t})};let c;R(a.body)||a.body instanceof URLSearchParams||b(a.body)?c=a.body:this.isJsonMime(n["Content-Type"])?c=JSON.stringify(a.body):c=a.body;const y={...a,body:c};return{url:o,init:y}}clone(){const t=this.constructor,e=new t(this.configuration);return e.middleware=this.middleware.slice(),e}}u.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");function b(i){return typeof Blob<"u"&&i instanceof Blob}function R(i){return typeof FormData<"u"&&i instanceof FormData}class g extends Error{constructor(t,e){super(e),this.response=t,this.name="ResponseError"}}class m extends Error{constructor(t,e){super(e),this.cause=t,this.name="FetchError"}}class E extends Error{constructor(t,e){super(e),this.field=t,this.name="RequiredError"}}function A(i,t){return i[t]!=null}function h(i,t=""){return Object.keys(i).map(e=>w(e,i[e],t)).filter(e=>e.length>0).join("&")}function w(i,t,e=""){const o=e+(e.length?"[".concat(i,"]"):i);if(t instanceof Array){const n=t.map(r=>encodeURIComponent(String(r))).join("&".concat(encodeURIComponent(o),"="));return"".concat(encodeURIComponent(o),"=").concat(n)}if(t instanceof Set){const n=Array.from(t);return w(i,n,e)}return t instanceof Date?"".concat(encodeURIComponent(o),"=").concat(encodeURIComponent(t.toISOString())):t instanceof Object?h(t,o):"".concat(encodeURIComponent(o),"=").concat(encodeURIComponent(String(t)))}class P{constructor(t,e=o=>o){this.raw=t,this.transformer=e}async value(){return this.transformer(await this.raw.json())}}export{d as BASE_PATH,u as BaseAPI,l as Configuration,p as DefaultConfig,m as FetchError,P as JSONApiResponse,E as RequiredError,g as ResponseError,A as exists,h as querystring};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as r,RequiredError as c,JSONApiResponse as e,VoidApiResponse as A}from"../ui-user-management.js";import{AccountAssociationFromJSON as u}from"../models/ui-user-management.js";import{AccountAssociationInputToJSON as d}from"../models/ui-user-management4.js";import{AccountAssociationStatusUpdateToJSON as h}from"../models/ui-user-management9.js";class p extends r{async createAccountAssociationRaw(t,o){if(t.accountAssociationInput===null||t.accountAssociationInput===void 0)throw new c("accountAssociationInput","Required parameter requestParameters.accountAssociationInput was null or undefined when calling createAccountAssociation.");const i={},a={};a["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(a.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/account-associations",method:"POST",headers:a,query:i,body:d(t.accountAssociationInput)},o);return new e(n,s=>u(s))}async createAccountAssociation(t,o){return await(await this.createAccountAssociationRaw(t,o)).value()}async getAccountAssociationsRaw(t,o){const i={};t.accountNumber!==void 0&&(i.account_number=t.accountNumber),t.userId!==void 0&&(i.user_id=t.userId),t.status!==void 0&&(i.status=t.status);const a={};this.configuration&&this.configuration.accessToken&&(a.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/account-associations",method:"GET",headers:a,query:i},o);return new e(n,s=>s.map(u))}async getAccountAssociations(t={},o){return await(await this.getAccountAssociationsRaw(t,o)).value()}async getUserAccountAssociationRaw(t,o){if(t.id===null||t.id===void 0)throw new c("id","Required parameter requestParameters.id was null or undefined when calling getUserAccountAssociation.");const i={},a={};this.configuration&&this.configuration.accessToken&&(a.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/account-associations/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"GET",headers:a,query:i},o);return new e(n,s=>u(s))}async getUserAccountAssociation(t,o){return await(await this.getUserAccountAssociationRaw(t,o)).value()}async updateAccountAssociationStatusRaw(t,o){if(t.id===null||t.id===void 0)throw new c("id","Required parameter requestParameters.id was null or undefined when calling updateAccountAssociationStatus.");if(t.accountAssociationStatusUpdate===null||t.accountAssociationStatusUpdate===void 0)throw new c("accountAssociationStatusUpdate","Required parameter requestParameters.accountAssociationStatusUpdate was null or undefined when calling updateAccountAssociationStatus.");const i={},a={};a["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(a.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/account-associations/{id}".replace("{id}",encodeURIComponent(String(t.id))),method:"PATCH",headers:a,query:i,body:h(t.accountAssociationStatusUpdate)},o);return new A(n)}async updateAccountAssociationStatus(t,o){await this.updateAccountAssociationStatusRaw(t,o)}}export{p as AccountAssociationsApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management2.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as e,JSONApiResponse as n}from"../ui-user-management.js";import{AccountFromJSON as i}from"../models/ui-user-management2.js";class r extends e{async getAccountsRaw(t){const s={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const a=await this.request({path:"/accounts",method:"GET",headers:o,query:s},t);return new n(a,c=>c.map(i))}async getAccounts(t){return await(await this.getAccountsRaw(t)).value()}}export{r as AccountsApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as r,JSONApiResponse as o}from"../ui-user-management.js";import{PermissionFromJSON as c}from"../models/ui-user-management10.js";import{PermissionAssignmentFromJSON as u}from"../models/ui-user-management15.js";class m extends r{async getPermissionsRaw(s){const i={},e={};this.configuration&&this.configuration.accessToken&&(e.Authorization=await this.configuration.accessToken("oAuth2",[]));const t=await this.request({path:"/permissions",method:"GET",headers:e,query:i},s);return new o(t,n=>n.map(c))}async getPermissions(s){return await(await this.getPermissionsRaw(s)).value()}async getUserPermissionsRaw(s,i){const e={};s.excludeSiblings!==void 0&&(e.exclude_siblings=s.excludeSiblings),s.excludeParents!==void 0&&(e.exclude_parents=s.excludeParents);const t={};this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const n=await this.request({path:"/my-permissions",method:"GET",headers:t,query:e},i);return new o(n,a=>a.map(u))}async getUserPermissions(s={},i){return await(await this.getUserPermissionsRaw(s,i)).value()}}export{m as PermissionsApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as l,RequiredError as a,JSONApiResponse as r,VoidApiResponse as u}from"../ui-user-management.js";import{CreateRoleAssignmentToJSON as d}from"../models/ui-user-management5.js";import{RoleAssignmentFromJSON as c}from"../models/ui-user-management14.js";class g extends l{async createRoleAssignmentsRaw(e,t){if(e.createRoleAssignment===null||e.createRoleAssignment===void 0)throw new a("createRoleAssignment","Required parameter requestParameters.createRoleAssignment was null or undefined when calling createRoleAssignments.");const n={},s={};s["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/role-assignments",method:"POST",headers:s,query:n,body:d(e.createRoleAssignment)},t);return new r(i,o=>o.map(c))}async createRoleAssignments(e,t){return await(await this.createRoleAssignmentsRaw(e,t)).value()}async deleteRoleAssignmentRaw(e,t){if(e.id===null||e.id===void 0)throw new a("id","Required parameter requestParameters.id was null or undefined when calling deleteRoleAssignment.");const n={},s={};this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/role-assignments/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"DELETE",headers:s,query:n},t);return new u(i)}async deleteRoleAssignment(e,t){await this.deleteRoleAssignmentRaw(e,t)}async getRoleAssignmentRaw(e,t){if(e.id===null||e.id===void 0)throw new a("id","Required parameter requestParameters.id was null or undefined when calling getRoleAssignment.");const n={},s={};this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/role-assignments/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"GET",headers:s,query:n},t);return new r(i,o=>c(o))}async getRoleAssignment(e,t){return await(await this.getRoleAssignmentRaw(e,t)).value()}async getRoleAssignmentsRaw(e,t){const n={};e.roleId!==void 0&&(n.role_id=e.roleId),e.userId!==void 0&&(n.user_id=e.userId),e.accountNumber!==void 0&&(n.account_number=e.accountNumber),e.locationId!==void 0&&(n.location_id=e.locationId),e.roleType!==void 0&&(n.role_type=e.roleType);const s={};this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/role-assignments",method:"GET",headers:s,query:n},t);return new r(i,o=>o.map(c))}async getRoleAssignments(e={},t){return await(await this.getRoleAssignmentsRaw(e,t)).value()}}export{g as RoleAssignmentsApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as c,RequiredError as n,JSONApiResponse as o,VoidApiResponse as d}from"../ui-user-management.js";import{MyAccountUsersFromJSON as h}from"../models/ui-user-management11.js";import{UserFromJSON as u}from"../models/ui-user-management24.js";import{UserInputToJSON as p}from"../models/ui-user-management33.js";import{UserProfileToJSON as l}from"../models/ui-user-management29.js";import{UsersResponseFromJSON as w}from"../models/ui-user-management26.js";class m extends c{async createUserRaw(e,r){if(e.userInput===null||e.userInput===void 0)throw new n("userInput","Required parameter requestParameters.userInput was null or undefined when calling createUser.");const t={},s={};s["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/users",method:"POST",headers:s,query:t,body:p(e.userInput)},r);return new o(i,a=>u(a))}async createUser(e,r){return await(await this.createUserRaw(e,r)).value()}async getMyAccountsAdminsAndApproversRaw(e){const r={},t={};this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const s=await this.request({path:"/users/admins-and-approvers",method:"GET",headers:t,query:r},e);return new o(s,i=>h(i))}async getMyAccountsAdminsAndApprovers(e){return await(await this.getMyAccountsAdminsAndApproversRaw(e)).value()}async getUserRaw(e,r){if(e.id===null||e.id===void 0)throw new n("id","Required parameter requestParameters.id was null or undefined when calling getUser.");const t={},s={};this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/users/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"GET",headers:s,query:t},r);return new o(i,a=>u(a))}async getUser(e,r){return await(await this.getUserRaw(e,r)).value()}async getUsersRaw(e,r){const t={};e.accountNumber!==void 0&&(t.account_number=e.accountNumber),e.includeChildAccounts!==void 0&&(t.include_child_accounts=e.includeChildAccounts),e.page!==void 0&&(t.page=e.page),e.size!==void 0&&(t.size=e.size),e.firstName!==void 0&&(t.first_name=e.firstName),e.lastName!==void 0&&(t.last_name=e.lastName),e.email!==void 0&&(t.email=e.email),e.sort!==void 0&&(t.sort=e.sort),e.order!==void 0&&(t.order=e.order);const s={};this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/users",method:"GET",headers:s,query:t},r);return new o(i,a=>w(a))}async getUsers(e={},r){return await(await this.getUsersRaw(e,r)).value()}async updateUserRaw(e,r){if(e.id===null||e.id===void 0)throw new n("id","Required parameter requestParameters.id was null or undefined when calling updateUser.");if(e.userProfile===null||e.userProfile===void 0)throw new n("userProfile","Required parameter requestParameters.userProfile was null or undefined when calling updateUser.");const t={},s={};s["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(s.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/users/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"PUT",headers:s,query:t,body:l(e.userProfile)},r);return new d(i)}async updateUser(e,r){await this.updateUserRaw(e,r)}}export{m as UsersApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as d,RequiredError as r,JSONApiResponse as s,VoidApiResponse as u}from"../ui-user-management.js";import{RoleFromJSON as l}from"../models/ui-user-management19.js";import{RoleCreateToJSON as c}from"../models/ui-user-management23.js";import{RoleUpdateToJSON as h}from"../models/ui-user-management30.js";class w extends d{async createRoleRaw(e,t){if(e.roleCreate===null||e.roleCreate===void 0)throw new r("roleCreate","Required parameter requestParameters.roleCreate was null or undefined when calling createRole.");const a={},o={};o["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/roles",method:"POST",headers:o,query:a,body:c(e.roleCreate)},t);return new s(i,n=>l(n))}async createRole(e,t){return await(await this.createRoleRaw(e,t)).value()}async deleteRoleRaw(e,t){if(e.id===null||e.id===void 0)throw new r("id","Required parameter requestParameters.id was null or undefined when calling deleteRole.");const a={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"DELETE",headers:o,query:a},t);return new u(i)}async deleteRole(e,t){await this.deleteRoleRaw(e,t)}async getRoleRaw(e,t){if(e.id===null||e.id===void 0)throw new r("id","Required parameter requestParameters.id was null or undefined when calling getRole.");const a={},o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"GET",headers:o,query:a},t);return new s(i,n=>l(n))}async getRole(e,t){return await(await this.getRoleRaw(e,t)).value()}async getRolesRaw(e,t){const a={};e.roleType!==void 0&&(a.role_type=e.roleType);const o={};this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/roles",method:"GET",headers:o,query:a},t);return new s(i,n=>n.map(l))}async getRoles(e={},t){return await(await this.getRolesRaw(e,t)).value()}async updateRoleRaw(e,t){if(e.id===null||e.id===void 0)throw new r("id","Required parameter requestParameters.id was null or undefined when calling updateRole.");if(e.roleUpdate===null||e.roleUpdate===void 0)throw new r("roleUpdate","Required parameter requestParameters.roleUpdate was null or undefined when calling updateRole.");const a={},o={};o["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(o.Authorization=await this.configuration.accessToken("oAuth2",[]));const i=await this.request({path:"/roles/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"PUT",headers:o,query:a,body:h(e.roleUpdate)},t);return new u(i)}async updateRole(e,t){await this.updateRoleRaw(e,t)}}export{w as RolesApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as o,RequiredError as s,JSONApiResponse as c}from"../ui-user-management.js";import{EmailVerificationInputToJSON as u}from"../models/ui-user-management7.js";import{VerificationResponseFromJSON as f}from"../models/ui-user-management32.js";class m extends o{async verifyEmailRaw(i,e){if(i.emailVerificationInput===null||i.emailVerificationInput===void 0)throw new s("emailVerificationInput","Required parameter requestParameters.emailVerificationInput was null or undefined when calling verifyEmail.");const t={},a={};a["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(a.Authorization=await this.configuration.accessToken("oAuth2",[]));const r=await this.request({path:"/user-attr-verification/email",method:"POST",headers:a,query:t,body:u(i.emailVerificationInput)},e);return new c(r,n=>f(n))}async verifyEmail(i,e){return await(await this.verifyEmailRaw(i,e)).value()}}export{m as VerificationApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/apis/ui-user-management8.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BaseAPI as u,RequiredError as n,JSONApiResponse as o,VoidApiResponse as l}from"../ui-user-management.js";import{CreateUserFlagAssignmentToJSON as g}from"../models/ui-user-management8.js";import{UserFlagAssignmentFromJSON as c}from"../models/ui-user-management27.js";class d extends u{async createUserFlagsRaw(e,a){if(e.createUserFlagAssignment===null||e.createUserFlagAssignment===void 0)throw new n("createUserFlagAssignment","Required parameter requestParameters.createUserFlagAssignment was null or undefined when calling createUserFlags.");const s={},t={};t["Content-Type"]="application/json",this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const r=await this.request({path:"/user-flags",method:"POST",headers:t,query:s,body:g(e.createUserFlagAssignment)},a);return new o(r,i=>i.map(c))}async createUserFlags(e,a){return await(await this.createUserFlagsRaw(e,a)).value()}async deleteUserFlagRaw(e,a){if(e.id===null||e.id===void 0)throw new n("id","Required parameter requestParameters.id was null or undefined when calling deleteUserFlag.");const s={},t={};this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const r=await this.request({path:"/user-flags/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"DELETE",headers:t,query:s},a);return new l(r)}async deleteUserFlag(e,a){await this.deleteUserFlagRaw(e,a)}async getUserFlagRaw(e,a){if(e.id===null||e.id===void 0)throw new n("id","Required parameter requestParameters.id was null or undefined when calling getUserFlag.");const s={},t={};this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const r=await this.request({path:"/user-flags/{id}".replace("{id}",encodeURIComponent(String(e.id))),method:"GET",headers:t,query:s},a);return new o(r,i=>c(i))}async getUserFlag(e,a){return await(await this.getUserFlagRaw(e,a)).value()}async getUserFlagsRaw(e,a){const s={};e.userFlagType!==void 0&&(s.user_flag_type=e.userFlagType),e.userId!==void 0&&(s.user_id=e.userId),e.accountNumber!==void 0&&(s.account_number=e.accountNumber),e.locationId!==void 0&&(s.location_id=e.locationId);const t={};this.configuration&&this.configuration.accessToken&&(t.Authorization=await this.configuration.accessToken("oAuth2",[]));const r=await this.request({path:"/user-flags",method:"GET",headers:t,query:s},a);return new o(r,i=>i.map(c))}async getUserFlags(e={},a){return await(await this.getUserFlagsRaw(e,a)).value()}}export{d as UserFlagsApi};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{AccountAssociationStatusFromJSON as c}from"./ui-user-management3.js";function o(n){return u(n)}function u(n,a){return n==null?n:{id:n.id,account_number:n.account_number,account_name:n.account_name,account_friendly_name:n.account_friendly_name,status:c(n.status),updated_at:n.updated_at,updated_by:n.updated_by,user_id:n.user_id}}export{o as AccountAssociationFromJSON,u as AccountAssociationFromJSONTyped};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management10.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{exists as r}from"../ui-user-management.js";function i(n){return e(n)}function e(n,o){return n==null?n:{id:n.id,name:n.name,is_non_location:n.is_non_location,category:r(n,"category")?n.category:void 0,privileges:n.privileges,internal_privileges:n.internal_privileges,is_internal:n.is_internal}}export{i as PermissionFromJSON,e as PermissionFromJSONTyped};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management11.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{exists as t}from"../ui-user-management.js";import{MyAccountUserFromJSON as m}from"./ui-user-management17.js";function n(r){return o(r)}function o(r,s){return r==null?r:{items:t(r,"items")?r.items.map(m):void 0}}export{n as MyAccountUsersFromJSON,o as MyAccountUsersFromJSONTyped};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management12.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{RolePermissionInputToJSON as n}from"./ui-user-management20.js";function r(o){if(o!==void 0)return o===null?null:{name:o.name,role_type:o.role_type,permissions:o.permissions.map(n)}}export{r as InternalRoleToJSON};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management13.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{RolePermissionInputToJSON as n}from"./ui-user-management20.js";function e(o){if(o!==void 0)return o===null?null:{name:o.name,role_type:o.role_type,permissions:o.permissions.map(n)}}export{e as DefaultRoleToJSON};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management14.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{exists as e}from"../ui-user-management.js";function t(o){return n(o)}function n(o,i){return o==null?o:{role_id:o.role_id,user_id:o.user_id,account_number:o.account_number,location_id:e(o,"location_id")?o.location_id:void 0,id:o.id,is_active:o.is_active}}export{t as RoleAssignmentFromJSON,n as RoleAssignmentFromJSONTyped};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management15.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{exists as e}from"../ui-user-management.js";function o(n){return i(n)}function i(n,r){return n==null?n:{account_number:n.account_number,permission_name:n.permission_name,privilege:n.privilege,privilege_is_internal:n.privilege_is_internal,is_non_location:e(n,"is_non_location")?n.is_non_location:void 0}}export{o as PermissionAssignmentFromJSON,i as PermissionAssignmentFromJSONTyped};
|
package/dist/ui-user-management/out-tsc/src/api/user-management-api/models/ui-user-management16.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{RolePermissionInputToJSON as n}from"./ui-user-management20.js";function e(o){if(o!==void 0)return o===null?null:{name:o.name,role_type:o.role_type,permissions:o.permissions.map(n)}}export{e as GlobalAccessRoleToJSON};
|