verben-authentication-ui 1.0.37 → 1.1.1
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/README.md +23 -1
- package/esm2022/src/lib/base/core/base-data-page.facade.mjs +215 -0
- package/esm2022/src/lib/base/core/base-data-page.service.mjs +103 -0
- package/esm2022/src/lib/base/core/base-data-page.state.mjs +203 -0
- package/esm2022/src/lib/base/handlers/filter-handler.service.mjs +53 -0
- package/esm2022/src/lib/base/handlers/search-handler.service.mjs +31 -0
- package/esm2022/src/lib/base/handlers/sort-handler.service.mjs +49 -0
- package/esm2022/src/lib/base/models/api-payload.mjs +4 -0
- package/esm2022/src/lib/base/models/page-config.interface.mjs +2 -0
- package/esm2022/src/lib/base/public-api.mjs +14 -6
- package/esm2022/src/lib/base/utils/column-helpers.mjs +45 -0
- package/esm2022/src/lib/components/button/button.component.mjs +3 -3
- package/esm2022/src/lib/components/forgot-password/forgot-password.component.mjs +2 -2
- package/esm2022/src/lib/components/mail/mail.component.mjs +3 -3
- package/esm2022/src/lib/components/mail-validation/mail-validation.component.mjs +5 -5
- package/esm2022/src/lib/components/o-auth/o-auth.component.mjs +3 -3
- package/esm2022/src/lib/components/otp-input/otp-input.component.mjs +2 -2
- package/esm2022/src/lib/components/reset-password/reset-password.component.mjs +2 -2
- package/esm2022/src/lib/components/role-control/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/role-control/role-control.component.mjs +3 -3
- package/esm2022/src/lib/components/sign-in/sign-in.component.mjs +4 -4
- package/esm2022/src/lib/components/sign-up/sign-up.component.mjs +6 -6
- package/esm2022/src/lib/components/sso/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/sso/sso-form/sso-form.component.mjs +3 -3
- package/esm2022/src/lib/components/sso/sso.component.mjs +3 -3
- package/esm2022/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +4 -4
- package/esm2022/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +5 -5
- package/esm2022/src/lib/components/user-management/public-api.mjs +2 -1
- package/esm2022/src/lib/components/user-management/user-management-card/user-management-card.component.mjs +23 -0
- package/esm2022/src/lib/components/user-management/user-management-form/user-management-form.component.mjs +53 -91
- package/esm2022/src/lib/components/user-management/user-management-table/user-management-table.component.mjs +68 -0
- package/esm2022/src/lib/components/user-management/user-management.component.mjs +98 -509
- package/esm2022/src/lib/components/user-management/user-management.module.mjs +11 -80
- package/esm2022/src/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +8 -6
- package/esm2022/src/lib/components/user-management/user.config.mjs +94 -0
- package/esm2022/src/lib/components/user-management/user.facade.mjs +118 -0
- package/esm2022/src/lib/components/user-management/user.service.mjs +60 -0
- package/esm2022/src/lib/components/user-management/user.state.mjs +33 -0
- package/esm2022/src/lib/components/user-request/user-request.component.mjs +8 -8
- package/esm2022/src/lib/components/user-request-approval/public-api.mjs +2 -2
- package/esm2022/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +8 -6
- package/esm2022/src/lib/components/user-request-approval/user-access-request.config.mjs +79 -0
- package/esm2022/src/lib/components/user-request-approval/user-access-request.facade.mjs +123 -0
- package/esm2022/src/lib/components/user-request-approval/user-access-request.service.mjs +74 -0
- package/esm2022/src/lib/components/user-request-approval/user-access-request.state.mjs +26 -0
- package/esm2022/src/lib/components/user-request-approval/user-request-approval-card/user-request-approval-card.component.mjs +23 -0
- package/esm2022/src/lib/components/user-request-approval/user-request-approval-form/user-request-approval-form.component.mjs +124 -0
- package/esm2022/src/lib/components/user-request-approval/user-request-approval-table/user-request-approval-table.component.mjs +44 -0
- package/esm2022/src/lib/components/user-request-approval/user-request-approval.component.mjs +101 -273
- package/esm2022/src/lib/components/user-request-approval/user-request-approval.module.mjs +10 -74
- package/fesm2022/verben-authentication-ui-src-lib-base.mjs +596 -214
- package/fesm2022/verben-authentication-ui-src-lib-base.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs +4 -4
- package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs +7 -7
- package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs +3 -3
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs +5 -5
- package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs +9 -9
- package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs +3 -3
- package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs +4 -4
- package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +468 -831
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs +509 -952
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs +7 -7
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs.map +1 -1
- package/package.json +36 -42
- package/src/lib/base/README.md +99 -0
- package/src/lib/base/core/base-data-page.facade.d.ts +65 -0
- package/src/lib/base/core/base-data-page.service.d.ts +43 -0
- package/src/lib/base/core/base-data-page.state.d.ts +68 -0
- package/src/lib/base/handlers/filter-handler.service.d.ts +13 -0
- package/src/lib/base/handlers/search-handler.service.d.ts +20 -0
- package/src/lib/base/handlers/sort-handler.service.d.ts +13 -0
- package/src/lib/base/models/api-payload.d.ts +2 -0
- package/src/lib/base/models/page-config.interface.d.ts +21 -0
- package/src/lib/base/public-api.d.ts +9 -5
- package/src/lib/base/utils/column-helpers.d.ts +16 -0
- package/src/lib/components/user-management/public-api.d.ts +1 -0
- package/src/lib/components/user-management/user-management-card/user-management-card.component.d.ts +11 -0
- package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts +12 -14
- package/src/lib/components/user-management/user-management-table/user-management-table.component.d.ts +30 -0
- package/src/lib/components/user-management/user-management.component.d.ts +28 -124
- package/src/lib/components/user-management/user-management.module.d.ts +8 -8
- package/src/lib/components/user-management/user-status-badge/user-status-badge.component.d.ts +1 -1
- package/src/lib/components/user-management/user.config.d.ts +13 -0
- package/src/lib/components/user-management/user.facade.d.ts +42 -0
- package/src/lib/components/user-management/user.service.d.ts +26 -0
- package/src/lib/components/user-management/user.state.d.ts +19 -0
- package/src/lib/components/user-request-approval/public-api.d.ts +1 -1
- package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +1 -1
- package/src/lib/components/user-request-approval/user-access-request.config.d.ts +13 -0
- package/src/lib/components/user-request-approval/user-access-request.facade.d.ts +36 -0
- package/src/lib/components/user-request-approval/user-access-request.service.d.ts +30 -0
- package/src/lib/components/user-request-approval/user-access-request.state.d.ts +16 -0
- package/src/lib/components/user-request-approval/user-request-approval-card/user-request-approval-card.component.d.ts +11 -0
- package/src/lib/components/user-request-approval/user-request-approval-form/user-request-approval-form.component.d.ts +47 -0
- package/src/lib/components/user-request-approval/user-request-approval-table/user-request-approval-table.component.d.ts +20 -0
- package/src/lib/components/user-request-approval/user-request-approval.component.d.ts +29 -68
- package/src/lib/components/user-request-approval/user-request-approval.module.d.ts +7 -6
- package/esm2022/src/lib/base/base-data.component.mjs +0 -80
- package/esm2022/src/lib/base/base-data.facade.mjs +0 -130
- package/esm2022/src/lib/base/base-data.service.mjs +0 -21
- package/esm2022/src/lib/base/base-data.state.mjs +0 -74
- package/esm2022/src/lib/base/models.mjs +0 -2
- package/esm2022/src/lib/components/user-management/base-table-style.mjs +0 -53
- package/esm2022/src/lib/components/user-management/services/user-management.service.mjs +0 -110
- package/esm2022/src/lib/components/user-management/user-management.columns.mjs +0 -53
- package/esm2022/src/lib/components/user-request-approval/access-request.columns.mjs +0 -29
- package/esm2022/src/lib/components/user-request-approval/base-table-style.mjs +0 -53
- package/esm2022/src/lib/components/user-request-approval/facades/user-access-request.facade.mjs +0 -260
- package/esm2022/src/lib/components/user-request-approval/helper.mjs +0 -56
- package/esm2022/src/lib/components/user-request-approval/services/user-access-request.service.mjs +0 -92
- package/esm2022/src/lib/components/user-request-approval/states/user-access-request.state.mjs +0 -92
- package/esm2022/src/lib/components/user-request-approval/user-request-form/user-request-form.component.mjs +0 -105
- package/esm2022/src/lib/components/user-request-process/index.mjs +0 -2
- package/esm2022/src/lib/components/user-request-process/public-api.mjs +0 -3
- package/esm2022/src/lib/components/user-request-process/user-request-process.component.mjs +0 -11
- package/esm2022/src/lib/components/user-request-process/user-request-process.module.mjs +0 -18
- package/esm2022/src/lib/components/user-request-process/verben-authentication-ui-src-lib-components-user-request-process.mjs +0 -5
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs +0 -34
- package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs.map +0 -1
- package/src/lib/base/base-data.component.d.ts +0 -32
- package/src/lib/base/base-data.facade.d.ts +0 -27
- package/src/lib/base/base-data.service.d.ts +0 -14
- package/src/lib/base/base-data.state.d.ts +0 -28
- package/src/lib/base/models.d.ts +0 -11
- package/src/lib/components/user-management/base-table-style.d.ts +0 -1
- package/src/lib/components/user-management/services/user-management.service.d.ts +0 -44
- package/src/lib/components/user-management/user-management.columns.d.ts +0 -3
- package/src/lib/components/user-request-approval/access-request.columns.d.ts +0 -3
- package/src/lib/components/user-request-approval/base-table-style.d.ts +0 -1
- package/src/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +0 -39
- package/src/lib/components/user-request-approval/helper.d.ts +0 -7
- package/src/lib/components/user-request-approval/services/user-access-request.service.d.ts +0 -64
- package/src/lib/components/user-request-approval/states/user-access-request.state.d.ts +0 -35
- package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.d.ts +0 -34
- package/src/lib/components/user-request-process/index.d.ts +0 -1
- package/src/lib/components/user-request-process/public-api.d.ts +0 -2
- package/src/lib/components/user-request-process/user-request-process.component.d.ts +0 -5
- package/src/lib/components/user-request-process/user-request-process.module.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-authentication-ui-src-lib-components-user-request.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { UserRequestPayload } from 'verben-authentication-ui/src/lib/models';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { ResponseKeyValue } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\nimport { RequestStatus } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport {\n AuthMechanism,\n MechanismType,\n} from 'verben-authentication-ui/src/lib/models';\nimport { ActivatedRoute } from '@angular/router';\nimport { OAuthResponse } from 'verben-authentication-ui/src/lib/models';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport CryptoJS from 'crypto-js';\nimport { UserAgentType } from 'verben-authentication-ui/src/lib/models';\n@Component({\n selector: 'lib-user-request',\n templateUrl: './user-request.component.html',\n styleUrls: ['./user-request.component.css'],\n})\nexport class UserRequestComponent {\n @Input() width: string = '500px';\n @Input() headingTitle: string = 'Request an account';\n @Input() headingClass: string =\n 'font-medium text-[2rem] leading-[48px] text-[#333]';\n @Input() customClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n isFormEditable: boolean = true;\n tenant: string = '';\n secret: string;\n hidePassword: boolean = false;\n isCode: boolean = false;\n @Input() text: string = 'Send Request';\n @Input() color: string = 'black';\n @Input() btnBorder: string = '1px solid #FFE681';\n @Input() btnBorderRadius: string = '40px';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '10px 20px';\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n @Output() formSubmit = new EventEmitter<UserRequestPayload[]>();\n @Output() googleClick = new EventEmitter();\n @Output() onSubmitSuccess = new EventEmitter<any>();\n @Output() appleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onSubmitResponseEnd: EventEmitter<any> = new EventEmitter();\n userRequestForm: FormGroup;\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n code: string = '';\n type: string = '';\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute,\n ) {\n this.secret = this.envSvc.environment.Secret;\n this.userRequestForm = this.fb.group<{\n [K in keyof UserRequestPayload]: FormControl<UserRequestPayload[K]>;\n }>(\n {\n Code: new FormControl('', { nonNullable: true }),\n FirstName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n LastName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n MailAddress: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.email],\n }),\n Password: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.minLength(8)],\n }),\n PhoneNumber: new FormControl('', { nonNullable: true }),\n OtherName: new FormControl('', { nonNullable: true }),\n Role: new FormControl<Role>(\n {\n Name: '',\n Description: '',\n Application: '',\n RoleContexts: [],\n APIKey: '',\n Id: '',\n id: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n },\n { nonNullable: true },\n ),\n Tags: new FormControl<[]>([], { nonNullable: true }),\n Status: new FormControl<Status>(Status.Active, { nonNullable: true }),\n RequestStatus: new FormControl<RequestStatus>(RequestStatus.Pending, {\n nonNullable: true,\n }),\n UpdatedAt: new FormControl(new Date(), { nonNullable: true }),\n CreatedAt: new FormControl(new Date(), { nonNullable: true }),\n Id: new FormControl('', { nonNullable: true }),\n DataState: new FormControl<ObjectState>(ObjectState.New, {\n nonNullable: true,\n }),\n TenantId: new FormControl('', { nonNullable: true }),\n Token: new FormControl('', { nonNullable: true }),\n SignUpType: new FormControl(MechanismType.InApp, { nonNullable: true }),\n ServiceName: new FormControl('', { nonNullable: true }),\n ActionBy: new FormControl('', { nonNullable: true }),\n Comment: new FormControl('', { nonNullable: true }),\n },\n { validators: this.passwordMatchValidator },\n );\n }\n passwordMatchValidator(control: AbstractControl): ValidationErrors | null {\n const password = control.get('Password')?.value;\n const confirmPassword = control.get('ConfirmPassword')?.value;\n\n return password === confirmPassword ? null : { passwordMismatch: true };\n }\n\n get passwordMismatchError(): boolean {\n return this.userRequestForm.hasError('passwordMismatch');\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n 'max-width': this.width,\n height: this.height,\n padding: this.pd,\n };\n }\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n this.userRequestForm.addControl(\n 'ConfirmPassword',\n new FormControl('', Validators.required),\n );\n const isLocalhost = window?.location?.hostname === 'localhost';\n const payload = isLocalhost\n ? {\n Key: 'UrlKey',\n Value: 'https://bovas.white360.net',\n }\n : undefined;\n const res = await this.server.post(`GetTenantConfigByUrlKey`, payload);\n this.tenantDetails = res;\n this.tenant = this.tenantDetails.TenantId;\n\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms?.filter(\n (m: AuthMechanism) => m.UserAgent === UserAgentType.Web,\n );\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else if (this.tenantDetails?.AuthMechanism === MechanismType.InApp) {\n // this.showform = false;\n this.showform = true;\n } else if (this.AuthMechanisms !== null) {\n this.showform = this.AuthMechanisms.some((item) =>\n item.AuthMechanism.includes(MechanismType.InApp),\n );\n }\n if (!this.showform) {\n this.userRequestForm.disable();\n } else {\n this.userRequestForm.enable();\n }\n }\n checkForm(): boolean {\n return this.userRequestForm.valid || this.userRequestForm.disabled;\n }\n handleGoogleAuth() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Google,\n );\n this.googleClick.emit();\n }\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n handleMicrosoft() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Microsoft,\n );\n this.microsoftClick.emit();\n }\n }\n\n async submitForm() {\n if (!this.checkForm()) {\n return;\n }\n\n const formValue = this.userRequestForm.getRawValue();\n const hashedPassword = CryptoJS.MD5(\n this.userRequestForm.controls['Password'].value,\n ).toString();\n const { ConfirmPassword, TenantId, ...rest } = formValue;\n const payload = {\n ...rest,\n TenantId: this.tenantDetails.TenantId,\n Password: hashedPassword,\n };\n\n const payloadToSubmit: UserRequestPayload[] = [payload];\n\n this.formSubmit.emit(payloadToSubmit);\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `SaveUserAccessRequests`,\n payloadToSubmit,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n this.onSubmitResponseEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitResponseEnd.emit(result);\n this.onSubmitSuccess.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false);\n console.error('Unexpected error:', error);\n this.onSubmitResponseEnd.emit(error);\n }\n }\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.tenant) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type),\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.tenant,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res: OAuthResponse = await this.server.post(\n `GetUserDetails`,\n payload,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitGoogleAuth.emit(res);\n } else {\n this.userRequestForm.controls['FirstName'].setValue(res.FirstName);\n this.userRequestForm.controls['LastName'].setValue(res.LastName);\n this.userRequestForm.controls['MailAddress'].setValue(res.Email);\n this.userRequestForm.controls['Token'].setValue(res.AccessToken);\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls[\n 'ConfirmPassword'\n ].updateValueAndValidity();\n this.hidePassword = true;\n }\n }\n }\n\n testDisable() {\n this.userRequestForm.controls['FirstName'].setValue('Jecil');\n this.userRequestForm.controls['LastName'].setValue('Okeke');\n this.userRequestForm.controls['MailAddress'].setValue(\n 'jecilokeke@gmail.com',\n );\n this.userRequestForm.controls['Token'].setValue('hsdjssd');\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls['ConfirmPassword'].updateValueAndValidity();\n this.hidePassword = true;\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [customErrorMessages]=\"{\n required: 'Email address is required',\n email: 'Email address must be valid',\n }\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [passwordToggle]=\"true\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [passwordToggle]=\"true\"\n [bgColor]=\"'white'\"\n [minLength]=\"userRequestForm.controls['Password'].value?.length\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [customErrorMessages]=\"{\n minLength: 'Confirm Password must match password',\n required: 'Confirm Password is required and must match password',\n password: 'Password does not match',\n }\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-button\n [class]=\"'mt-6'\"\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n type=\"submit\"\n [buttonClass]=\"'cursor-not-allowed'\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n [ngClass]=\"{\n 'cursor-not-allowed': !checkForm(),\n }\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </form>\n\n <div class=\"mt-2\" *ngIf=\"AuthMechanisms !== null\">\n <verben-o-auth [authMechanisms]=\"AuthMechanisms\"></verben-o-auth>\n </div>\n</section>\n\n<!-- <button (click)=\"testDisable()\">Test</button> -->\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestComponent } from './user-request.component';\nimport { OAuthModule } from 'verben-authentication-ui/src/lib/components/o-auth';\n\n@NgModule({\n declarations: [UserRequestComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n OAuthModule,\n ],\n exports: [UserRequestComponent],\n})\nexport class UserRequestModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-authentication-ui-src-lib-components-user-request.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { UserRequestPayload } from 'verben-authentication-ui/src/lib/models';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { ResponseKeyValue } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\nimport { RequestStatus } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport {\n AuthMechanism,\n MechanismType,\n} from 'verben-authentication-ui/src/lib/models';\nimport { ActivatedRoute } from '@angular/router';\nimport { OAuthResponse } from 'verben-authentication-ui/src/lib/models';\nimport { Role } from 'verben-authentication-ui/src/lib/models';\nimport CryptoJS from 'crypto-js';\nimport { UserAgentType } from 'verben-authentication-ui/src/lib/models';\n@Component({\n selector: 'lib-user-request',\n templateUrl: './user-request.component.html',\n styleUrls: ['./user-request.component.css'],\n})\nexport class UserRequestComponent {\n @Input() width: string = '500px';\n @Input() headingTitle: string = 'Request an account';\n @Input() headingClass: string =\n 'font-medium text-[2rem] leading-[48px] text-[var(--vbn-color-text)]';\n @Input() customClass: string = '';\n @Input() bgColor: string = 'var(--vbn-color-surface)';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = 'var(--vbn-color-text)';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n isFormEditable: boolean = true;\n tenant: string = '';\n secret: string;\n hidePassword: boolean = false;\n isCode: boolean = false;\n @Input() text: string = 'Send Request';\n @Input() color: string = 'black';\n @Input() btnBorder: string = '1px solid var(--vbn-color-primary)';\n @Input() btnBorderRadius: string = '40px';\n @Input() btnBgColor: string = 'var(--vbn-color-primary)';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '10px 20px';\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n @Output() formSubmit = new EventEmitter<UserRequestPayload[]>();\n @Output() googleClick = new EventEmitter();\n @Output() onSubmitSuccess = new EventEmitter<any>();\n @Output() appleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onSubmitResponseEnd: EventEmitter<any> = new EventEmitter();\n userRequestForm: FormGroup;\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n code: string = '';\n type: string = '';\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute,\n ) {\n this.secret = this.envSvc.environment.Secret;\n this.userRequestForm = this.fb.group<{\n [K in keyof UserRequestPayload]: FormControl<UserRequestPayload[K]>;\n }>(\n {\n Code: new FormControl('', { nonNullable: true }),\n FirstName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n LastName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n MailAddress: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.email],\n }),\n Password: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.minLength(8)],\n }),\n PhoneNumber: new FormControl('', { nonNullable: true }),\n OtherName: new FormControl('', { nonNullable: true }),\n Role: new FormControl<Role>(\n {\n Name: '',\n Description: '',\n Application: '',\n RoleContexts: [],\n APIKey: '',\n Id: '',\n id: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n },\n { nonNullable: true },\n ),\n Tags: new FormControl<[]>([], { nonNullable: true }),\n Status: new FormControl<Status>(Status.Active, { nonNullable: true }),\n RequestStatus: new FormControl<RequestStatus>(RequestStatus.Pending, {\n nonNullable: true,\n }),\n UpdatedAt: new FormControl(new Date(), { nonNullable: true }),\n CreatedAt: new FormControl(new Date(), { nonNullable: true }),\n Id: new FormControl('', { nonNullable: true }),\n DataState: new FormControl<ObjectState>(ObjectState.New, {\n nonNullable: true,\n }),\n TenantId: new FormControl('', { nonNullable: true }),\n Token: new FormControl('', { nonNullable: true }),\n SignUpType: new FormControl(MechanismType.InApp, { nonNullable: true }),\n ServiceName: new FormControl('', { nonNullable: true }),\n ActionBy: new FormControl('', { nonNullable: true }),\n Comment: new FormControl('', { nonNullable: true }),\n },\n { validators: this.passwordMatchValidator },\n );\n }\n passwordMatchValidator(control: AbstractControl): ValidationErrors | null {\n const password = control.get('Password')?.value;\n const confirmPassword = control.get('ConfirmPassword')?.value;\n\n return password === confirmPassword ? null : { passwordMismatch: true };\n }\n\n get passwordMismatchError(): boolean {\n return this.userRequestForm.hasError('passwordMismatch');\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n 'max-width': this.width,\n height: this.height,\n padding: this.pd,\n };\n }\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n this.userRequestForm.addControl(\n 'ConfirmPassword',\n new FormControl('', Validators.required),\n );\n const isLocalhost = window?.location?.hostname === 'localhost';\n const payload = isLocalhost\n ? {\n Key: 'UrlKey',\n Value: 'https://bovas.white360.net',\n }\n : undefined;\n const res = await this.server.post(`GetTenantConfigByUrlKey`, payload);\n this.tenantDetails = res;\n this.tenant = this.tenantDetails.TenantId;\n\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms?.filter(\n (m: AuthMechanism) => m.UserAgent === UserAgentType.Web,\n );\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else if (this.tenantDetails?.AuthMechanism === MechanismType.InApp) {\n // this.showform = false;\n this.showform = true;\n } else if (this.AuthMechanisms !== null) {\n this.showform = this.AuthMechanisms.some((item) =>\n item.AuthMechanism.includes(MechanismType.InApp),\n );\n }\n if (!this.showform) {\n this.userRequestForm.disable();\n } else {\n this.userRequestForm.enable();\n }\n }\n checkForm(): boolean {\n return this.userRequestForm.valid || this.userRequestForm.disabled;\n }\n handleGoogleAuth() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Google,\n );\n this.googleClick.emit();\n }\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n handleMicrosoft() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Microsoft,\n );\n this.microsoftClick.emit();\n }\n }\n\n async submitForm() {\n if (!this.checkForm()) {\n return;\n }\n\n const formValue = this.userRequestForm.getRawValue();\n const hashedPassword = CryptoJS.MD5(\n this.userRequestForm.controls['Password'].value,\n ).toString();\n const { ConfirmPassword, TenantId, ...rest } = formValue;\n const payload = {\n ...rest,\n TenantId: this.tenantDetails.TenantId,\n Password: hashedPassword,\n };\n\n const payloadToSubmit: UserRequestPayload[] = [payload];\n\n this.formSubmit.emit(payloadToSubmit);\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `SaveUserAccessRequests`,\n payloadToSubmit,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n this.onSubmitResponseEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitResponseEnd.emit(result);\n this.onSubmitSuccess.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false);\n console.error('Unexpected error:', error);\n this.onSubmitResponseEnd.emit(error);\n }\n }\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.tenant) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type),\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.tenant,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res: OAuthResponse = await this.server.post(\n `GetUserDetails`,\n payload,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitGoogleAuth.emit(res);\n } else {\n this.userRequestForm.controls['FirstName'].setValue(res.FirstName);\n this.userRequestForm.controls['LastName'].setValue(res.LastName);\n this.userRequestForm.controls['MailAddress'].setValue(res.Email);\n this.userRequestForm.controls['Token'].setValue(res.AccessToken);\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls[\n 'ConfirmPassword'\n ].updateValueAndValidity();\n this.hidePassword = true;\n }\n }\n }\n\n testDisable() {\n this.userRequestForm.controls['FirstName'].setValue('Jecil');\n this.userRequestForm.controls['LastName'].setValue('Okeke');\n this.userRequestForm.controls['MailAddress'].setValue(\n 'jecilokeke@gmail.com',\n );\n this.userRequestForm.controls['Token'].setValue('hsdjssd');\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls['ConfirmPassword'].updateValueAndValidity();\n this.hidePassword = true;\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'var(--vbn-color-text-muted)'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'var(--vbn-color-text-muted)'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'var(--vbn-color-text-muted)'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [customErrorMessages]=\"{\n required: 'Email address is required',\n email: 'Email address must be valid',\n }\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Password'\"\n [labelColor]=\"'var(--vbn-color-text-muted)'\"\n [placeHolder]=\"''\"\n [passwordToggle]=\"true\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'var(--vbn-color-text-muted)'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [passwordToggle]=\"true\"\n [bgColor]=\"'white'\"\n [minLength]=\"userRequestForm.controls['Password'].value?.length\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [customErrorMessages]=\"{\n minLength: 'Confirm Password must match password',\n required: 'Confirm Password is required and must match password',\n password: 'Password does not match',\n }\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-button\n [class]=\"'mt-6'\"\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n type=\"submit\"\n [buttonClass]=\"'cursor-not-allowed'\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n [ngClass]=\"{\n 'cursor-not-allowed': !checkForm(),\n }\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </form>\n\n <div class=\"mt-2\" *ngIf=\"AuthMechanisms !== null\">\n <verben-o-auth [authMechanisms]=\"AuthMechanisms\"></verben-o-auth>\n </div>\n</section>\n\n<!-- <button (click)=\"testDisable()\">Test</button> -->\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestComponent } from './user-request.component';\nimport { OAuthModule } from 'verben-authentication-ui/src/lib/components/o-auth';\n\n@NgModule({\n declarations: [UserRequestComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n OAuthModule,\n ],\n exports: [UserRequestComponent],\n})\nexport class UserRequestModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verben-authentication-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^18.2.0",
|
|
6
6
|
"@angular/common": "^14.0.0 || ^18.0.0",
|
|
7
7
|
"@angular/core": "^14.0.0 || ^18.0.0",
|
|
8
|
-
"verben-ng-ui": "^1.
|
|
8
|
+
"verben-ng-ui": "^1.3.0"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"tslib": "^2.3.0"
|
|
@@ -47,23 +47,17 @@
|
|
|
47
47
|
"esm": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
|
|
48
48
|
"default": "./fesm2022/verben-authentication-ui-src-lib-services.mjs"
|
|
49
49
|
},
|
|
50
|
-
"./src/lib/shared": {
|
|
51
|
-
"types": "./src/lib/shared/index.d.ts",
|
|
52
|
-
"esm2022": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
53
|
-
"esm": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
54
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-shared.mjs"
|
|
55
|
-
},
|
|
56
50
|
"./src/lib/pipes": {
|
|
57
51
|
"types": "./src/lib/pipes/index.d.ts",
|
|
58
52
|
"esm2022": "./esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs",
|
|
59
53
|
"esm": "./esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs",
|
|
60
54
|
"default": "./fesm2022/verben-authentication-ui-src-lib-pipes.mjs"
|
|
61
55
|
},
|
|
62
|
-
"./src/lib/
|
|
63
|
-
"types": "./src/lib/
|
|
64
|
-
"esm2022": "./esm2022/src/lib/
|
|
65
|
-
"esm": "./esm2022/src/lib/
|
|
66
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-
|
|
56
|
+
"./src/lib/shared": {
|
|
57
|
+
"types": "./src/lib/shared/index.d.ts",
|
|
58
|
+
"esm2022": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
59
|
+
"esm": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
60
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-shared.mjs"
|
|
67
61
|
},
|
|
68
62
|
"./src/lib/components/button": {
|
|
69
63
|
"types": "./src/lib/components/button/index.d.ts",
|
|
@@ -83,12 +77,24 @@
|
|
|
83
77
|
"esm": "./esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs",
|
|
84
78
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-mail.mjs"
|
|
85
79
|
},
|
|
80
|
+
"./src/lib/components/auth-callback": {
|
|
81
|
+
"types": "./src/lib/components/auth-callback/index.d.ts",
|
|
82
|
+
"esm2022": "./esm2022/src/lib/components/auth-callback/verben-authentication-ui-src-lib-components-auth-callback.mjs",
|
|
83
|
+
"esm": "./esm2022/src/lib/components/auth-callback/verben-authentication-ui-src-lib-components-auth-callback.mjs",
|
|
84
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-auth-callback.mjs"
|
|
85
|
+
},
|
|
86
86
|
"./src/lib/components/mail-validation": {
|
|
87
87
|
"types": "./src/lib/components/mail-validation/index.d.ts",
|
|
88
88
|
"esm2022": "./esm2022/src/lib/components/mail-validation/verben-authentication-ui-src-lib-components-mail-validation.mjs",
|
|
89
89
|
"esm": "./esm2022/src/lib/components/mail-validation/verben-authentication-ui-src-lib-components-mail-validation.mjs",
|
|
90
90
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs"
|
|
91
91
|
},
|
|
92
|
+
"./src/lib/components/reset-password": {
|
|
93
|
+
"types": "./src/lib/components/reset-password/index.d.ts",
|
|
94
|
+
"esm2022": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
|
|
95
|
+
"esm": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
|
|
96
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs"
|
|
97
|
+
},
|
|
92
98
|
"./src/lib/components/o-auth": {
|
|
93
99
|
"types": "./src/lib/components/o-auth/index.d.ts",
|
|
94
100
|
"esm2022": "./esm2022/src/lib/components/o-auth/verben-authentication-ui-src-lib-components-o-auth.mjs",
|
|
@@ -101,18 +107,6 @@
|
|
|
101
107
|
"esm": "./esm2022/src/lib/components/otp-input/verben-authentication-ui-src-lib-components-otp-input.mjs",
|
|
102
108
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs"
|
|
103
109
|
},
|
|
104
|
-
"./src/lib/components/reset-password": {
|
|
105
|
-
"types": "./src/lib/components/reset-password/index.d.ts",
|
|
106
|
-
"esm2022": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
|
|
107
|
-
"esm": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
|
|
108
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs"
|
|
109
|
-
},
|
|
110
|
-
"./src/lib/components/role-control": {
|
|
111
|
-
"types": "./src/lib/components/role-control/index.d.ts",
|
|
112
|
-
"esm2022": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
113
|
-
"esm": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
114
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs"
|
|
115
|
-
},
|
|
116
110
|
"./src/lib/components/sign-in": {
|
|
117
111
|
"types": "./src/lib/components/sign-in/index.d.ts",
|
|
118
112
|
"esm2022": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
|
|
@@ -125,24 +119,30 @@
|
|
|
125
119
|
"esm": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
|
|
126
120
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs"
|
|
127
121
|
},
|
|
128
|
-
"./src/lib/components/two-factor-auth-otp": {
|
|
129
|
-
"types": "./src/lib/components/two-factor-auth-otp/index.d.ts",
|
|
130
|
-
"esm2022": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
131
|
-
"esm": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
132
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs"
|
|
133
|
-
},
|
|
134
122
|
"./src/lib/components/sso": {
|
|
135
123
|
"types": "./src/lib/components/sso/index.d.ts",
|
|
136
124
|
"esm2022": "./esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs",
|
|
137
125
|
"esm": "./esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs",
|
|
138
126
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sso.mjs"
|
|
139
127
|
},
|
|
128
|
+
"./src/lib/components/two-factor-auth-otp": {
|
|
129
|
+
"types": "./src/lib/components/two-factor-auth-otp/index.d.ts",
|
|
130
|
+
"esm2022": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
131
|
+
"esm": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
132
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs"
|
|
133
|
+
},
|
|
140
134
|
"./src/lib/components/two-factor-auth-setup": {
|
|
141
135
|
"types": "./src/lib/components/two-factor-auth-setup/index.d.ts",
|
|
142
136
|
"esm2022": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
|
|
143
137
|
"esm": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
|
|
144
138
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs"
|
|
145
139
|
},
|
|
140
|
+
"./src/lib/components/user-request": {
|
|
141
|
+
"types": "./src/lib/components/user-request/index.d.ts",
|
|
142
|
+
"esm2022": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
|
|
143
|
+
"esm": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
|
|
144
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs"
|
|
145
|
+
},
|
|
146
146
|
"./src/lib/components/user-management": {
|
|
147
147
|
"types": "./src/lib/components/user-management/index.d.ts",
|
|
148
148
|
"esm2022": "./esm2022/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.mjs",
|
|
@@ -155,17 +155,11 @@
|
|
|
155
155
|
"esm": "./esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs",
|
|
156
156
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs"
|
|
157
157
|
},
|
|
158
|
-
"./src/lib/components/
|
|
159
|
-
"types": "./src/lib/components/
|
|
160
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
161
|
-
"esm": "./esm2022/src/lib/components/
|
|
162
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-
|
|
163
|
-
},
|
|
164
|
-
"./src/lib/components/user-request": {
|
|
165
|
-
"types": "./src/lib/components/user-request/index.d.ts",
|
|
166
|
-
"esm2022": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
|
|
167
|
-
"esm": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
|
|
168
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs"
|
|
158
|
+
"./src/lib/components/role-control": {
|
|
159
|
+
"types": "./src/lib/components/role-control/index.d.ts",
|
|
160
|
+
"esm2022": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
161
|
+
"esm": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
162
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs"
|
|
169
163
|
}
|
|
170
164
|
}
|
|
171
165
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Base page abstraction (internal)
|
|
2
|
+
|
|
3
|
+
Three-layer abstraction for entity list/detail pages with server-side paging,
|
|
4
|
+
search, filter, sort and export. Ported from the White360FE application's
|
|
5
|
+
`src/app/shared/base-page/`.
|
|
6
|
+
|
|
7
|
+
**Internal to this library.** This folder is an ng-packagr entry point so
|
|
8
|
+
component folders can import it, but it is deliberately **not** re-exported from
|
|
9
|
+
`src/public-api.ts` — the consuming application ships its own copy of these
|
|
10
|
+
classes and re-exporting ours would clash. Do not add it to the root public API.
|
|
11
|
+
|
|
12
|
+
## Layout
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
core/ base-data-page.state.ts item + query-param store
|
|
16
|
+
base-data-page.service.ts URL building + HTTP
|
|
17
|
+
base-data-page.facade.ts orchestration; the component's only dependency
|
|
18
|
+
handlers/ search-handler.service.ts debounced search subject
|
|
19
|
+
filter-handler.service.ts FilterCondition[] → SearchPropertyValue[]
|
|
20
|
+
sort-handler.service.ts SortCondition[] → SearchPropertyValue[]
|
|
21
|
+
models/ page-config.interface.ts BasePageConfig<T>
|
|
22
|
+
api-payload.ts re-exports the payload enums/types
|
|
23
|
+
utils/ column-helpers.ts accessorKey → property name / inferred type
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## One request cycle
|
|
27
|
+
|
|
28
|
+
1. Component calls a facade method (`loadData`, `applyFilters`, `onSearch`, …).
|
|
29
|
+
2. Facade reads current query params, filters, sorts and visible columns from
|
|
30
|
+
**state**, and flips `setUpdating(true)` — which the facade has wired to
|
|
31
|
+
`UtilService.sendBI()`, driving the host busy indicator.
|
|
32
|
+
3. Facade calls `service.getData(skip, limit, searchTerm, filters, sorts, columns)`.
|
|
33
|
+
The service picks the request shape: search term only → GET; any filter or
|
|
34
|
+
sort → POST with a payload built by the filter/sort handlers; otherwise a
|
|
35
|
+
plain paged GET.
|
|
36
|
+
4. Service returns `PagedResult<T>` **or** `ErrorResponse` — it never throws.
|
|
37
|
+
5. Facade either writes results into state (`setItems` / `appendItems` /
|
|
38
|
+
`setTotalCount`, plus card data via `cardDataMapper`) or surfaces
|
|
39
|
+
`utilService.showError()`. Then `setUpdating(false)`.
|
|
40
|
+
6. Component renders from the state observables the facade exposes
|
|
41
|
+
(`items$`, `isLoading$`, `visibleColumns$`, `filters$`, `sorts$`) and the
|
|
42
|
+
`cardData()` / `currentCardData()` signals.
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
Everything page-specific lives in one `BasePageConfig<T>`: `columns`,
|
|
47
|
+
`cardDataMapper`, `endpoint`, `pageSize`, optional `searchDebounceTime` and
|
|
48
|
+
`formGroupConfig`, and the `enable*` feature flags (`enableCreate`,
|
|
49
|
+
`enableImport`, `enableExport`, `enableFilter`, `enableSort`, `enableSearch`,
|
|
50
|
+
`enableCardView`, `enableTableRowEdit`).
|
|
51
|
+
|
|
52
|
+
`columns` is the single source of truth for the table, the column selector, the
|
|
53
|
+
filter and sort builders, and export. A column needs an `accessorKey` to be
|
|
54
|
+
filterable or sortable.
|
|
55
|
+
|
|
56
|
+
## Seams to override
|
|
57
|
+
|
|
58
|
+
The base assumes conventions; concrete classes override where reality differs.
|
|
59
|
+
|
|
60
|
+
**Service — URL shape** (the Auth API deviates on all of these):
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
protected listUrl(skip, limit) // Get{Endpoint}/{skip}/{limit}
|
|
64
|
+
protected searchTermUrl(term, skip, limit) // Get{Endpoint}WithParam/...
|
|
65
|
+
protected filterSearchUrl(skip, limit) // Search{Endpoint}/{skip}/{limit}
|
|
66
|
+
protected saveUrl() // Save{Endpoint}
|
|
67
|
+
protected deleteUrl(itemIds) // {Endpoint}/{ids}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Override the URL, not `getData()` — the request-shape logic stays in the base.
|
|
71
|
+
When an operation diverges semantically rather than just by URL (the approval
|
|
72
|
+
delete is keyed by email, one call per record), override `deleteItems()` itself.
|
|
73
|
+
|
|
74
|
+
**State — record identity:**
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
protected getItemKey(item: T): string // default: item.Id || item.id || item.Code
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Used by `updateItem`, `upsertItem` and `removeItem`. Override if an entity keys
|
|
81
|
+
on something else — a mismatch here makes those methods silent no-ops.
|
|
82
|
+
|
|
83
|
+
## Wiring a page
|
|
84
|
+
|
|
85
|
+
Provide all four classes **per component** — never `providedIn: 'root'`, or page
|
|
86
|
+
instances share state:
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
providers: [FooFacade, FooState, FooService, SearchHandlerService]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Worked examples
|
|
93
|
+
|
|
94
|
+
- `../components/user-management/` — inline table row editing, roles/tags lookups
|
|
95
|
+
- `../components/user-request-approval/` — approve/reject workflow actions, and
|
|
96
|
+
the fullest set of URL/delete overrides
|
|
97
|
+
|
|
98
|
+
For the migration procedure and the pitfall catalogue, see the shared
|
|
99
|
+
`verben-base-page` skill.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { OnDestroy, WritableSignal } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { BaseModel } from 'verben-authentication-ui/src/lib/models';
|
|
4
|
+
import { UtilService } from 'verben-authentication-ui/src/lib/services';
|
|
5
|
+
import { CardData, ColumnDefinition, FilterCondition, SortCondition } from 'verben-ng-ui';
|
|
6
|
+
import { SearchHandlerService } from '../handlers/search-handler.service';
|
|
7
|
+
import { BasePageConfig } from '../models/page-config.interface';
|
|
8
|
+
import { BaseDataPageService } from './base-data-page.service';
|
|
9
|
+
import { BaseDataPageState } from './base-data-page.state';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* Abstract facade for base data pages.
|
|
13
|
+
* Orchestrates state, service, and search handler, and surfaces the host app's
|
|
14
|
+
* busy indicator / toasts through UtilService.
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class BaseDataPageFacade<T extends BaseModel> implements OnDestroy {
|
|
17
|
+
protected state: BaseDataPageState<T>;
|
|
18
|
+
protected service: BaseDataPageService<T>;
|
|
19
|
+
protected searchHandler: SearchHandlerService;
|
|
20
|
+
protected utilService: UtilService;
|
|
21
|
+
protected config: BasePageConfig<T>;
|
|
22
|
+
private destroy$;
|
|
23
|
+
private cardSelectionCleared;
|
|
24
|
+
constructor(state: BaseDataPageState<T>, service: BaseDataPageService<T>, searchHandler: SearchHandlerService, utilService: UtilService, config: BasePageConfig<T>);
|
|
25
|
+
getConfig(): BasePageConfig<T>;
|
|
26
|
+
getColumns(): ColumnDefinition<T>[];
|
|
27
|
+
get items$(): Observable<T[]>;
|
|
28
|
+
get isLoading$(): Observable<boolean>;
|
|
29
|
+
get totalCount$(): Observable<number>;
|
|
30
|
+
get filters$(): Observable<FilterCondition[]>;
|
|
31
|
+
get sorts$(): Observable<SortCondition[]>;
|
|
32
|
+
get searchTerm$(): Observable<string>;
|
|
33
|
+
get visibleColumns$(): Observable<ColumnDefinition<T>[]>;
|
|
34
|
+
get cardData(): WritableSignal<CardData[]>;
|
|
35
|
+
get currentCardData(): WritableSignal<CardData | null>;
|
|
36
|
+
/**
|
|
37
|
+
* Emits when a refetch invalidates the current card selection.
|
|
38
|
+
* Card views listen to this to clear their own selection state.
|
|
39
|
+
*/
|
|
40
|
+
get cardSelectionCleared$(): Observable<void>;
|
|
41
|
+
loadData(): Promise<void>;
|
|
42
|
+
addItem(item: T): void;
|
|
43
|
+
loadMore(): Promise<void>;
|
|
44
|
+
refresh(): Promise<void>;
|
|
45
|
+
onSearch(term: string): void;
|
|
46
|
+
private initializeSearchHandler;
|
|
47
|
+
applyFilters(filters: FilterCondition[]): Promise<void>;
|
|
48
|
+
clearFilters(): Promise<void>;
|
|
49
|
+
applySorts(sorts: SortCondition[]): Promise<void>;
|
|
50
|
+
clearSorts(): Promise<void>;
|
|
51
|
+
updateVisibleColumns(columns: ColumnDefinition<T>[]): void;
|
|
52
|
+
selectCard(cardData: CardData | null): void;
|
|
53
|
+
/**
|
|
54
|
+
* Drop the current card selection because the data it referred to is being
|
|
55
|
+
* replaced. Called by loadData(); deliberately not by loadMore(), which only
|
|
56
|
+
* appends and leaves an existing selection valid.
|
|
57
|
+
*/
|
|
58
|
+
protected clearCardSelection(): void;
|
|
59
|
+
saveItems(items: T[]): Promise<boolean>;
|
|
60
|
+
deleteItems(itemIds: string[]): Promise<boolean>;
|
|
61
|
+
exportData(): Promise<T[]>;
|
|
62
|
+
ngOnDestroy(): void;
|
|
63
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseDataPageFacade<any>, never>;
|
|
64
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BaseDataPageFacade<any>>;
|
|
65
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BaseModel, ErrorResponse, PagedResult } from 'verben-authentication-ui/src/lib/models';
|
|
2
|
+
import { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';
|
|
3
|
+
import { ColumnDefinition, FilterCondition, SortCondition } from 'verben-ng-ui';
|
|
4
|
+
import { FilterHandlerService } from '../handlers/filter-handler.service';
|
|
5
|
+
import { SortHandlerService } from '../handlers/sort-handler.service';
|
|
6
|
+
import { SearchPropertyValue } from '../models/api-payload';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Abstract base service for data pages.
|
|
10
|
+
* Handles list/search/save/delete with filter and sort support.
|
|
11
|
+
*
|
|
12
|
+
* The concrete URLs are built by the protected `*Url` seams below so that
|
|
13
|
+
* services whose API does not follow the default `Get{Endpoint}/{skip}/{limit}`
|
|
14
|
+
* conventions (e.g. plural names or a trailing sort suffix) can override just
|
|
15
|
+
* the URL without reimplementing the request-selection logic in `getData()`.
|
|
16
|
+
* When `baseUrl` is omitted, HttpWebRequestService falls back to the
|
|
17
|
+
* AuthenticationAPI base.
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class BaseDataPageService<T extends BaseModel> {
|
|
20
|
+
protected server: HttpWebRequestService;
|
|
21
|
+
protected filterHandler: FilterHandlerService;
|
|
22
|
+
protected sortHandler: SortHandlerService;
|
|
23
|
+
protected baseUrl?: string | undefined;
|
|
24
|
+
constructor(server: HttpWebRequestService, filterHandler: FilterHandlerService, sortHandler: SortHandlerService, baseUrl?: string | undefined);
|
|
25
|
+
/** API endpoint name (e.g. 'User'). Must be implemented by child classes. */
|
|
26
|
+
abstract getEndpoint(): string;
|
|
27
|
+
protected listUrl(skip: number, limit: number): string;
|
|
28
|
+
protected searchTermUrl(term: string, skip: number, limit: number): string;
|
|
29
|
+
protected filterSearchUrl(skip: number, limit: number): string;
|
|
30
|
+
protected saveUrl(): string;
|
|
31
|
+
protected deleteUrl(itemIds: string[]): string;
|
|
32
|
+
buildPayload(filters: FilterCondition[], sorts: SortCondition[], columns: ColumnDefinition<T>[]): SearchPropertyValue[];
|
|
33
|
+
/**
|
|
34
|
+
* Fetch data, automatically choosing the endpoint based on parameters:
|
|
35
|
+
* search-only -> GET WithParam, filters/sorts -> POST Search, otherwise plain GET.
|
|
36
|
+
*/
|
|
37
|
+
getData(skip: number, limit: number, filters?: FilterCondition[], sorts?: SortCondition[], searchTerm?: string, columns?: ColumnDefinition<T>[]): Promise<PagedResult<T> | ErrorResponse>;
|
|
38
|
+
saveItems(items: T[]): Promise<T[] | ErrorResponse>;
|
|
39
|
+
deleteItems(itemIds: string[]): Promise<boolean | ErrorResponse>;
|
|
40
|
+
exportData(filters?: FilterCondition[], sorts?: SortCondition[], searchTerm?: string, columns?: ColumnDefinition<T>[]): Promise<T[] | ErrorResponse>;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseDataPageService<any>, never>;
|
|
42
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BaseDataPageService<any>>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { WritableSignal } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
|
+
import { BaseModel, QueryParams } from 'verben-authentication-ui/src/lib/models';
|
|
4
|
+
import { CardData, ColumnDefinition, FilterCondition, SortCondition } from 'verben-ng-ui';
|
|
5
|
+
/**
|
|
6
|
+
* Abstract state management for base data pages.
|
|
7
|
+
* Tracks items, loading state, query params, filters, sorts, search, and
|
|
8
|
+
* visible columns. Card data is held in signals for cheap change detection.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class BaseDataPageState<T extends BaseModel> {
|
|
11
|
+
protected updating$: BehaviorSubject<boolean>;
|
|
12
|
+
protected items$: BehaviorSubject<T[]>;
|
|
13
|
+
protected totalCount$: BehaviorSubject<number>;
|
|
14
|
+
protected queryParams$: BehaviorSubject<QueryParams<T>>;
|
|
15
|
+
protected searchTerm$: BehaviorSubject<string>;
|
|
16
|
+
protected filters$: BehaviorSubject<FilterCondition[]>;
|
|
17
|
+
protected sorts$: BehaviorSubject<SortCondition[]>;
|
|
18
|
+
protected visibleColumns$: BehaviorSubject<ColumnDefinition<T>[]>;
|
|
19
|
+
protected cardData: WritableSignal<CardData[]>;
|
|
20
|
+
protected currentCardData: WritableSignal<CardData | null>;
|
|
21
|
+
protected cardDataMapper?: (item: T) => CardData;
|
|
22
|
+
/**
|
|
23
|
+
* Stable identity for a record. The auth models key on uppercase `Id`/`Code`
|
|
24
|
+
* and only sometimes carry a lowercase `id`, so match across all three rather
|
|
25
|
+
* than assuming one is populated.
|
|
26
|
+
*/
|
|
27
|
+
protected getItemKey(item: T): string;
|
|
28
|
+
protected updateCardDataFromItems(items: T[]): void;
|
|
29
|
+
isUpdating$(): Observable<boolean>;
|
|
30
|
+
setUpdating(isUpdating: boolean): void;
|
|
31
|
+
getItems$(): Observable<T[]>;
|
|
32
|
+
getItemsValue(): T[];
|
|
33
|
+
setItems(items: T[]): void;
|
|
34
|
+
appendItems(newItems: T[]): void;
|
|
35
|
+
addItem(item: T): void;
|
|
36
|
+
updateItem(updatedItem: T): void;
|
|
37
|
+
/** Update the item when its key already exists, otherwise prepend it. */
|
|
38
|
+
upsertItem(item: T): void;
|
|
39
|
+
removeItem(itemKey: string): void;
|
|
40
|
+
clearItems(): void;
|
|
41
|
+
getTotalCount$(): Observable<number>;
|
|
42
|
+
setTotalCount(count: number): void;
|
|
43
|
+
getQueryParams$(): Observable<QueryParams<T>>;
|
|
44
|
+
getQueryParamsValue(): QueryParams<T>;
|
|
45
|
+
updateQueryParams(params: Partial<QueryParams<T>>): void;
|
|
46
|
+
resetPagination(): void;
|
|
47
|
+
incrementPagination(): void;
|
|
48
|
+
getSearchTerm$(): Observable<string>;
|
|
49
|
+
getSearchTermValue(): string;
|
|
50
|
+
setSearchTerm(term: string): void;
|
|
51
|
+
getFilters$(): Observable<FilterCondition[]>;
|
|
52
|
+
getFiltersValue(): FilterCondition[];
|
|
53
|
+
setFilters(filters: FilterCondition[]): void;
|
|
54
|
+
clearFilters(): void;
|
|
55
|
+
getSorts$(): Observable<SortCondition[]>;
|
|
56
|
+
getSortsValue(): SortCondition[];
|
|
57
|
+
setSorts(sorts: SortCondition[]): void;
|
|
58
|
+
clearSorts(): void;
|
|
59
|
+
getVisibleColumns$(): Observable<ColumnDefinition<T>[]>;
|
|
60
|
+
getVisibleColumnsValue(): ColumnDefinition<T>[];
|
|
61
|
+
setVisibleColumns(columns: ColumnDefinition<T>[]): void;
|
|
62
|
+
setCardDataMapper(mapper: (item: T) => CardData): void;
|
|
63
|
+
getCardData(): WritableSignal<CardData[]>;
|
|
64
|
+
setCardData(data: CardData[]): void;
|
|
65
|
+
getCurrentCardData(): WritableSignal<CardData | null>;
|
|
66
|
+
setCurrentCardData(data: CardData | null): void;
|
|
67
|
+
reset(): void;
|
|
68
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ColumnDefinition, FilterCondition } from 'verben-ng-ui';
|
|
2
|
+
import { SearchPropertyValue } from '../models/api-payload';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Converts FilterCondition[] emitted by lib-data-filter into the
|
|
6
|
+
* SearchPropertyValue[] payload the search API expects.
|
|
7
|
+
*/
|
|
8
|
+
export declare class FilterHandlerService {
|
|
9
|
+
buildFilterPayload<T>(filters: FilterCondition[], columns: ColumnDefinition<T>[]): SearchPropertyValue[];
|
|
10
|
+
private mapOperatorToSign;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterHandlerService, never>;
|
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FilterHandlerService>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Debounces search terms. Emits the term after the user stops typing.
|
|
5
|
+
* Provided per page so each page owns its own debounce stream.
|
|
6
|
+
*
|
|
7
|
+
* `search$` is a stable observable whose debounce interval is read live from
|
|
8
|
+
* `debounceMs`, so `setDebounceTime()` can be called after subscribers have
|
|
9
|
+
* attached (e.g. from a runtime `@Input`) and still take effect.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SearchHandlerService implements OnDestroy {
|
|
12
|
+
private searchSubject;
|
|
13
|
+
private debounceMs;
|
|
14
|
+
search$: import("rxjs").Observable<string>;
|
|
15
|
+
search(term: string): void;
|
|
16
|
+
setDebounceTime(ms: number): void;
|
|
17
|
+
ngOnDestroy(): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SearchHandlerService, never>;
|
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SearchHandlerService>;
|
|
20
|
+
}
|