{ "version": 3, "sources": ["apps/partner-center-client/src/app/concierge/core/utils.ts", "apps/partner-center-client/src/app/users/user-bulk-actions/bulk-import/bulk-user-import.service.ts", "apps/partner-center-client/src/app/users/user-bulk-actions/bulk-import/bulk-user-import.component.ts", "apps/partner-center-client/src/app/users/user-bulk-actions/bulk-import/bulk-user-import.component.html", "apps/partner-center-client/src/app/users/user-bulk-actions/user-bulk-actions.component.ts", "apps/partner-center-client/src/app/users/user-bulk-actions/user-bulk-actions.component.html"], "sourcesContent": ["/**\n * Downloads a Blob file\n */\nexport function downloadFile(file: Blob, filename: string): void {\n const url = window.URL.createObjectURL(file);\n const link = document.createElement('a');\n link.setAttribute('style', 'display:none;');\n document.body.appendChild(link);\n link.href = url;\n link.download = filename;\n link.click();\n window.URL.revokeObjectURL(url);\n}\n", "import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BulkProcessorSdkService } from '@vendasta/bulk-actions';\nimport { UserListSdkService } from '@vendasta/contacts';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EMPTY, Observable, throwError } from 'rxjs';\nimport { catchError, expand, map, reduce, switchMap } from 'rxjs/operators';\nimport { PartnerService } from '../../../core/partner.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BulkUserImportService {\n file: File;\n fileLocation: string;\n\n private readonly csv: string = 'text/csv';\n\n constructor(\n private snackbarService: SnackbarService,\n private bulkProcessor: BulkProcessorSdkService,\n private http: HttpClient,\n private partnerService: PartnerService,\n private userListSdkService: UserListSdkService,\n ) {}\n\n uploadCsv(fileContent: string): Observable {\n return this.bulkProcessor.generateUploadSignedUrl(this.file.name, this.csv).pipe(\n switchMap((signedUrl) => {\n return this.http\n .put(signedUrl, fileContent, {\n headers: { 'Content-Type': this.csv },\n })\n .pipe(\n map(() => this.setFileLocation(signedUrl)),\n catchError((err) => throwError(err)),\n );\n }),\n );\n }\n\n setFileLocation(signedUrl: string): void {\n const uuid = signedUrl.match('\\\\b[0-9a-f]{8}\\\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\\\b[0-9a-f]{12}\\\\b');\n if (uuid !== null) {\n this.fileLocation = uuid[0] + '/' + this.file.name;\n } else {\n throw new Error();\n }\n }\n\n createUserList(listName: string, listId: string): Observable {\n return this.userListSdkService.createUserList(this.partnerService.partnerId, listName, listId);\n }\n\n startUserImport(numUsers: number, listId: string, updateUsers: boolean): void {\n const numUsersText = numUsers === 1 ? '1 user.' : numUsers + ' users.';\n this.bulkProcessor\n .initiateImportUsers(this.partnerService.partnerId, this.fileLocation, listId, updateUsers)\n .subscribe(() => this.snackbarService.successSnack(\"We've started to import \" + numUsersText));\n }\n\n listUserLists(pageSize: number): Observable {\n return this.userListSdkService.listUserLists(this.partnerService.partnerId, '', pageSize).pipe(\n expand((resp) => {\n if (resp?.pagingMetadata?.hasMore) {\n return this.userListSdkService.listUserLists(\n this.partnerService.partnerId,\n resp?.pagingMetadata?.nextCursor,\n pageSize,\n );\n } else {\n return EMPTY;\n }\n }),\n map((resp) => {\n if (!resp || !resp.userLists) {\n return [];\n }\n const userList: UserList[] = [];\n for (const r of resp.userLists) {\n userList.push({\n listId: r.listId,\n userListName: r.listName,\n });\n }\n return userList;\n }),\n reduce((acc, curr) => [...acc, ...curr], []),\n );\n }\n\n validateCSV(): Observable {\n return this.bulkProcessor.validateImportUserFile(this.fileLocation, this.partnerService.partnerId);\n }\n}\n\nexport interface UserList {\n listId: string;\n userListName: string;\n}\n", "import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatStepper } from '@angular/material/stepper';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FeatureFlagService } from '@vendasta/businesses';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { Papa } from 'ngx-papaparse';\nimport { combineLatest, Observable, of, Subscription } from 'rxjs';\nimport { map, share, shareReplay, startWith, switchMap } from 'rxjs/operators';\nimport { v4 as uuidv4 } from 'uuid';\nimport { downloadFile } from '../../../concierge/core/utils';\nimport { BULK_USER_IMPORT_CSV } from '../../../constants';\nimport { PartnerService } from '../../../core/partner.service';\nimport { VConfigService } from '../../../vconfig/vconfig.service';\nimport { BulkUserImportService, UserList } from './bulk-user-import.service';\n\nconst MAX_USERS = 1000;\nconst MAX_VMF_USERS = 55000;\n\nexport enum CreationType {\n CREATE_NEW_LIST = 1,\n USE_EXISTING_LIST = 2,\n SKIP = 3,\n}\n@Component({\n templateUrl: './bulk-user-import.component.html',\n styleUrls: ['./bulk-user-import.component.scss'],\n})\nexport class BulkUserImportComponent implements OnInit, OnDestroy {\n @ViewChild('stepper', { static: true })\n pageStepper: MatStepper;\n fileFormControl: UntypedFormControl;\n fileForm: UntypedFormGroup;\n fileProcessing = false;\n fileProcessingErrors = false;\n fileProcessingError: string[] = [];\n fileProcessingErrorRows: string[] = [];\n fileProcessingErrorOverflow: string[] = [];\n fileProcessingErrorOverflowShowHide: number[] = [];\n fileProcessingErrorRowCount = 5; // threshold for # of rows of displayable issues (+1~)\n loading = false;\n csvFileName: string;\n csvUserImportTotal = 0;\n csvErrorRows: any = [];\n vbcConfigKey = 'vbc_product_name';\n userListForm: UntypedFormGroup;\n userListName: string;\n importErrorMessage: string;\n updateUsers = false;\n showUpdateUsersDetails = false;\n listBehavior: CreationType = CreationType.USE_EXISTING_LIST;\n ct: typeof CreationType = CreationType;\n\n userUploadInstructions: string;\n rowTotalText: string;\n selectFileText: string;\n\n userListList$: Observable;\n filteredUserListList$: Observable;\n userListCount = 200;\n userListId: string;\n isVMF = false;\n\n subscriptions: Subscription[] = [];\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n @Inject('MARKET_ID') private readonly marketId$: Observable,\n private router: Router,\n private formBuilder: UntypedFormBuilder,\n private bulkUserImportService: BulkUserImportService,\n private vConfigService: VConfigService,\n private csvParser: Papa,\n private route: ActivatedRoute,\n private partnerService: PartnerService,\n private feature: FeatureFlagService,\n private translate: TranslateService,\n private snowplowService: ProductAnalyticsService,\n ) {}\n\n ngOnInit(): void {\n this.createFormControls();\n\n this.subscriptions.push(\n this.partnerId$\n .pipe(\n switchMap((partnerId) => {\n if (partnerId === 'VMF') {\n this.isVMF = true;\n }\n return this.vConfigService.getConfigurations(partnerId, [this.vbcConfigKey]);\n }),\n map((config) => {\n this.userUploadInstructions = this.translate.instant(\n 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.IMPORT_DETAILS_A',\n { businessCenterName: config.vbc_product_name },\n );\n }),\n shareReplay(1),\n )\n .subscribe(),\n );\n\n this.selectFileText = this.translate.instant('USERS.BULK_IMPORT.UPLOAD_FILE_STEP.SELECT_FILE');\n\n this.userListList$ = this.bulkUserImportService.listUserLists(this.userListCount).pipe(share());\n const userFilter$ = this.userListForm.get('selectList').valueChanges.pipe(startWith(''));\n this.filteredUserListList$ = combineLatest([this.userListList$, userFilter$]).pipe(\n map(([userLists, searchTerm]) => {\n if (!searchTerm) {\n return userLists;\n }\n return userLists.filter((userList) => userList.userListName.toLowerCase().includes(searchTerm.toLowerCase()));\n }),\n );\n\n this.subscriptions.push(\n this.userListList$\n .pipe(\n map((userLists) => {\n if (userLists.length === 0) {\n this.listBehavior = CreationType.CREATE_NEW_LIST;\n this.createNewUserList();\n } else {\n this.useExistingList();\n }\n }),\n )\n .subscribe(),\n );\n }\n\n private createFormControls(): void {\n this.fileFormControl = new UntypedFormControl('', [Validators.required]);\n\n this.fileForm = this.formBuilder.group({\n file: ['', Validators.required],\n fileHasErrors: [false],\n });\n this.userListForm = this.formBuilder.group({\n createNewList: [],\n selectList: [null, Validators.required],\n userListName: [null],\n });\n }\n\n fileOnChange(event: any): void {\n this.csvErrorRows = [];\n if (!event.target.files) {\n return;\n }\n this.resetFileProcessingErrors();\n this.bulkUserImportService.file = event.target.files[0];\n const fileReader = new FileReader();\n if (this.bulkUserImportService.file) {\n fileReader.readAsText(this.bulkUserImportService.file);\n this.csvFileName = this.bulkUserImportService.file.name;\n this.fileProcessing = true;\n }\n fileReader.onload = () => {\n const fileContent = fileReader.result.toString();\n if (!this.parseFileContent(fileContent)) {\n return;\n }\n\n this.subscriptions.push(\n this.bulkUserImportService\n .uploadCsv(fileContent)\n .pipe(switchMap(() => this.bulkUserImportService.validateCSV()))\n .subscribe({\n next: (validationErrors) => {\n if (validationErrors.length > 0) {\n this.fileProcessingErrors = true;\n this.surfaceProcessingErrors(validationErrors);\n return;\n }\n this.goToUserListStep();\n\n this.fileProcessing = false;\n },\n error: () => {\n this.surfaceProcessingErrors([this.translate.instant('USERS.BULK_IMPORT.UPLOAD_FILE_STEP.UPLOAD_ERROR')]);\n },\n }),\n );\n };\n }\n\n parseFileContent(fileContent: string): boolean {\n const parsedContent = this.csvParser.parse(fileContent, {\n skipEmptyLines: 'greedy',\n });\n this.csvUserImportTotal = parsedContent.data.length === 0 ? 0 : parsedContent.data.length - 1;\n this.rowTotalText =\n this.csvUserImportTotal === 1\n ? this.translate.instant('USERS.BULK_IMPORT.REVIEW_STEP.ROW_TOTAL_SINGULAR')\n : this.translate.instant('USERS.BULK_IMPORT.REVIEW_STEP.ROW_TOTAL_PLURAL', {\n numUsers: this.csvUserImportTotal,\n });\n\n if (this.csvUserImportTotal === 0) {\n this.fileProcessingErrors = true;\n this.surfaceProcessingErrors([this.translate.instant('USERS.BULK_IMPORT.UPLOAD_FILE_STEP.MIN_SIZE_ERROR')]);\n return false;\n }\n if (\n (this.csvUserImportTotal > MAX_USERS && !this.isVMF) ||\n (this.isVMF && this.csvUserImportTotal > MAX_VMF_USERS)\n ) {\n this.fileProcessingErrors = true;\n this.surfaceProcessingErrors([\n this.translate.instant('USERS.BULK_IMPORT.UPLOAD_FILE_STEP.MAX_SIZE_ERROR', {\n maxRows: this.isVMF ? MAX_VMF_USERS : MAX_USERS,\n }),\n ]);\n return false;\n }\n return true;\n }\n\n surfaceProcessingErrors(errors: string[]): void {\n for (const error of errors) {\n if (error.includes('Row')) {\n const split = error.indexOf(' ', error.indexOf(' ') + 1);\n const rows = error.substr(0, split).replace(/,/g, ', ');\n if (this.occurrences(rows, ',') > this.fileProcessingErrorRowCount) {\n this.fileProcessingErrorRows.push(\n rows.substr(0, rows.split(',', this.fileProcessingErrorRowCount).join(',').length) + '...:',\n );\n this.fileProcessingErrorOverflow.push(rows.substr(rows.indexOf(' ') + 1).slice(0, -1));\n this.fileProcessingErrorOverflowShowHide.push(0);\n } else {\n this.fileProcessingErrorRows.push(rows);\n this.fileProcessingErrorOverflow.push('');\n this.fileProcessingErrorOverflowShowHide.push(-1);\n }\n this.fileProcessingError.push(error.substr(split));\n } else {\n this.fileProcessingErrorRows.push('');\n this.fileProcessingErrorOverflow.push('');\n this.fileProcessingErrorOverflowShowHide.push(-1);\n this.fileProcessingError.push(error);\n }\n }\n this.fileProcessing = false;\n }\n\n occurrences(mainString: string, subString: string): number {\n mainString += '';\n subString += '';\n if (subString.length <= 0) {\n return mainString.length + 1;\n }\n let n = 0,\n pos = 0;\n const step = subString.length;\n for (;;) {\n pos = mainString.indexOf(subString, pos);\n if (pos >= 0) {\n ++n;\n pos += step;\n } else {\n break;\n }\n }\n return n;\n }\n\n showMoreOrLess(index: number): void {\n if (this.fileProcessingErrorOverflowShowHide[index] === 0) {\n this.fileProcessingErrorOverflowShowHide[index] = 1;\n } else {\n this.fileProcessingErrorOverflowShowHide[index] = 0;\n }\n }\n\n resetFileProcessingErrors(): void {\n this.fileProcessingError = [];\n this.fileProcessingErrorRows = [];\n this.fileProcessingErrorOverflow = [];\n this.fileProcessingErrorOverflowShowHide = [];\n this.fileProcessingErrors = false;\n }\n\n clearInput(event: any, input: any): void {\n input.value = '';\n this.surfaceProcessingErrors([]);\n }\n\n useExistingList(): void {\n this.listBehavior = CreationType.USE_EXISTING_LIST;\n this.userListForm.controls.selectList.setValidators(Validators.required);\n this.userListForm.controls.userListName.clearAsyncValidators();\n this.userListForm.controls.userListName.clearValidators();\n this.userListForm.controls.userListName.updateValueAndValidity({\n onlySelf: true,\n });\n this.userListForm.controls.selectList.updateValueAndValidity({\n onlySelf: true,\n });\n }\n\n createNewUserList(): void {\n this.listBehavior = CreationType.CREATE_NEW_LIST;\n this.userListForm.controls.selectList.setValue(null);\n this.userListForm.controls.selectList.clearValidators();\n this.userListForm.controls.selectList.clearAsyncValidators();\n this.userListForm.controls.userListName.setAsyncValidators(this.noWhitespaceValidator);\n this.userListForm.controls.userListName.setValue(null);\n this.userListForm.controls.userListName.updateValueAndValidity();\n this.userListForm.controls.selectList.updateValueAndValidity();\n\n this.clearUserListSelect();\n }\n\n skipCreateUserLists(): void {\n this.createNewUserList();\n this.userListForm.controls.selectList.clearValidators();\n this.userListForm.controls.userListName.clearAsyncValidators();\n this.userListForm.controls.userListName.clearValidators();\n this.userListForm.controls.userListName.updateValueAndValidity({\n onlySelf: true,\n });\n this.userListForm.controls.createNewList.setValue(false);\n this.listBehavior = CreationType.SKIP;\n }\n\n goToUserListStep(): void {\n this.fileForm.controls.file.markAsTouched();\n this.fileForm.controls.fileHasErrors.markAsTouched();\n this.resetFileProcessingErrors();\n this.pageStepper.next();\n }\n\n goToFinalStep(): void {\n this.pageStepper.next();\n this.importErrorMessage = null;\n }\n\n downloadTemplate(): void {\n const csvBlob = new Blob([BULK_USER_IMPORT_CSV], { type: 'text/csv' });\n downloadFile(csvBlob, 'user-import-template.csv');\n }\n\n startListImport(): void {\n this.loading = true;\n if (this.listBehavior === CreationType.CREATE_NEW_LIST) {\n const listId = uuidv4();\n const errorMessage =\n this.csvUserImportTotal === 1\n ? this.translate.instant('USERS.BULK_IMPORT.REVIEW_STEP.IMPORT_ERROR_SINGULAR')\n : this.translate.instant('USERS.BULK_IMPORT.REVIEW_STEP.IMPORT_ERROR_PLURAL');\n this.subscriptions.push(\n this.bulkUserImportService.createUserList(this.userListName, listId).subscribe({\n next: (listCreated) => {\n if (listCreated) {\n this.bulkUserImportService.startUserImport(this.csvUserImportTotal, listId, this.updateUsers);\n this.uploadSuccess();\n } else {\n this.importErrorMessage = errorMessage;\n }\n },\n error: () => (this.importErrorMessage = errorMessage),\n }),\n );\n } else if (this.listBehavior === CreationType.USE_EXISTING_LIST) {\n this.bulkUserImportService.startUserImport(this.csvUserImportTotal, this.userListId, this.updateUsers);\n this.uploadSuccess();\n } else {\n this.bulkUserImportService.startUserImport(this.csvUserImportTotal, null, this.updateUsers);\n this.uploadSuccess();\n }\n }\n\n navigateToManageUsers(): void {\n this.router.navigate(['/bc-admin']);\n }\n\n navigateToUserLists(): void {\n this.router.navigate(['action-lists', 'manage', 'user-list']);\n }\n\n uploadSuccess(): void {\n if (this.listBehavior === CreationType.CREATE_NEW_LIST || this.listBehavior === CreationType.USE_EXISTING_LIST) {\n this.navigateToUserLists();\n } else {\n this.navigateToManageUsers();\n }\n }\n\n noWhitespaceValidator(control: UntypedFormControl): Observable {\n const isWhitespace = (control.value || '').trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? of(null) : of({ whitespace: true });\n }\n\n toggleUpdateUsersDetails(): void {\n this.showUpdateUsersDetails = !this.showUpdateUsersDetails;\n }\n\n clearUserListSelect(): void {\n this.userListId = null;\n }\n\n setListName(userListName: any): void {\n if (this.listBehavior === CreationType.CREATE_NEW_LIST) {\n this.userListName = (userListName.target as HTMLInputElement)?.value;\n } else if (this.listBehavior === CreationType.USE_EXISTING_LIST) {\n this.userListName = userListName.userListName;\n this.userListId = userListName.listId;\n }\n }\n\n setListNameOption(userListName: any, event: any): void {\n if (event.isUserInput) {\n this.setListName(userListName);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n}\n", "\n \n Import Users\n \n \n \n \n \n \n \n
\n \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.HEADER' | translate }}\n \n
\n
\n
\n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.INSTRUCTIONS_1' | translate }}\n \n \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.DOWNLOAD_CSV_BUTTON' | translate }}\n \n \n
\n
\n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.INSTRUCTIONS_2' | translate }}\n
    \n
  • \n \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.REQUIRED_EMAIL_A' | translate }}\n \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.REQUIRED_EMAIL_B' | translate }}\n
  • \n
  • \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.CSV_LIMIT' | translate }}\n
  • \n
  • \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.AGID_LIMIT' | translate }}\n
  • \n
\n
\n
\n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.INSTRUCTIONS_3' | translate }}\n
\n
\n
\n
\n attach_file\n \n \n clear\n \n \n {{ 'USERS.BULK_IMPORT.ERRORS.FIELD_REQUIRED' | translate }}\n \n
\n \n
\n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.CSV_ERROR' | translate }}\n
\n \n
\n 0\"\n >\n {{ 'COMMON.ACTION_LABELS.NEXT' | translate }}\n \n
\n
\n
\n \n
\n \n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.HEADER' | translate }}\n \n \n \n 0\">\n 0\"\n color=\"primary\"\n (select)=\"useExistingList()\"\n (click)=\"useExistingList()\"\n >\n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.EXISTING_LIST' | translate }}\n \n
\n \n \n \n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.SELECT_LIST' | translate }}\n \n \n \n \n {{ list.userListName }}\n \n \n \n {{ 'USERS.BULK_IMPORT.ERRORS.FIELD_REQUIRED' | translate }}\n \n \n \n
\n
\n \n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.NEW_LIST' | translate }}\n \n
\n \n \n \n \n {{ 'USERS.BULK_IMPORT.ERRORS.FIELD_REQUIRED' | translate }}\n \n \n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.LIST_NAME_ERROR' | translate }}\n \n \n \n
\n
\n \n {{ 'USERS.BULK_IMPORT.USER_LIST_STEP.SKIP' | translate }}\n \n
\n
\n \n \n
\n
\n
\n \n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.HEADER' | translate }}\n \n
\n
\n {{ userUploadInstructions }}\n \n {{ 'USERS.LIST.TITLE' | translate }}\n \n {{ 'USERS.BULK_IMPORT.UPLOAD_FILE_STEP.IMPORT_DETAILS_B' | translate }}\n
\n \n \n done\n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.CSV_FILE' | translate }}\n \n {{ csvFileName }}\n \n \n \n done\n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.TOTAL_IMPORT' | translate }}\n \n {{ rowTotalText }}\n \n \n
\n \n done\n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.LIST_NAME' | translate }}\n \n {{ userListName }}\n \n \n
\n \n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.UPDATE_USERS' | translate }}\n \n \n \n
\n
\n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.UPDATE_USERS_DESCRIPTION' | translate }}\n \n
\n
\n
    \n
  • \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.UPDATE_USERS_DETAILS_A' | translate }}\n
  • \n
  • \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.UPDATE_USERS_DETAILS_B' | translate }}\n
  • \n
  • \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.UPDATE_USERS_DETAILS_C' | translate }}\n
  • \n
\n \n {{ 'COMMON.ACTION_LABELS.VIEW_LESS' | translate }}\n \n
\n
\n
\n
\n
\n \n error\n {{ importErrorMessage }}\n \n
\n \n
\n \n \n {{ 'USERS.BULK_IMPORT.REVIEW_STEP.IMPORT_WARNING' | translate }}\n \n
\n
\n
\n \n
\n
\n", "import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FeatureFlagService } from '@vendasta/businesses';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { LegacyStatus } from '@vendasta/notifications-sdk';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { filter, map, switchMap, tap } from 'rxjs/operators';\nimport { AppConfigService } from '../../app-config.service';\nimport { VaDialogService } from '../../common/va-dialog.service';\nimport { NotificationChange } from './notification-change';\nimport { TabChange, UserBulkActionsService } from './user-bulk-actions.service';\n\nexport const enum SELECT_OPTION {\n DONT_UPDATE = 0,\n GIVE_ACCESS,\n REMOVE_ACCESS,\n}\n\n@Component({\n selector: 'app-user-bulk-actions',\n templateUrl: './user-bulk-actions.component.html',\n styleUrls: ['./user-bulk-actions.component.scss'],\n})\nexport class UserBulkActionsComponent implements OnInit, OnDestroy {\n public readonly LegacyStatus = LegacyStatus;\n applyChangesBtnText$: Observable;\n\n noChangesSelected = true;\n notifChanges = false;\n tabChanges = false;\n\n tabAccessChanges$: Observable<[TabChange[], TabChange[]]>;\n notificationChanges$: Observable;\n\n showDefaultNotificationPromotes = true;\n newDefaultNotificationEnabled$: Observable;\n private dialogListenerSub: any;\n\n constructor(\n private userBulkActionsService: UserBulkActionsService,\n private router: Router,\n private snackbarService: SnackbarService,\n private dialogService: VaDialogService,\n private translateService: TranslateService,\n private featureFlagService: FeatureFlagService,\n private configService: AppConfigService,\n ) {}\n\n ngOnInit(): void {\n // If no users are selected, they must have directly gone to this page -\n // redirect them back to the users select screen so they can select users\n if (!this.userBulkActionsService.areUsersSelected()) {\n this.router.navigate(['/bc-admin']);\n return;\n }\n\n this.userBulkActionsService.resetSelections();\n\n this.applyChangesBtnText$ = combineLatest([\n this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.APPLY_CHANGES_TO_NAME'),\n this.userBulkActionsService.getAmountOfUsersSelectedStringAsync(),\n ]).pipe(\n map(([applyChangesString, numUsersString]) => {\n return applyChangesString.replace('{{name}}', numUsersString);\n }),\n );\n\n this.notificationChanges$ = this.userBulkActionsService.notificationSettings$.pipe(\n tap((notifs) => {\n if (notifs.length > 0) {\n this.notifChanges = true;\n this.noChangesSelected = false;\n } else {\n this.notifChanges = false;\n if (!this.tabChanges) {\n this.noChangesSelected = true;\n }\n }\n }),\n );\n this.tabAccessChanges$ = combineLatest([\n this.userBulkActionsService.tabsGiveAccess$,\n this.userBulkActionsService.tabsRemoveAccess$,\n ]).pipe(\n tap(([give, remove]) => {\n if (give.length > 0 || remove.length > 0) {\n this.tabChanges = true;\n this.noChangesSelected = false;\n } else {\n this.tabChanges = false;\n if (!this.notifChanges) {\n this.noChangesSelected = true;\n }\n }\n }),\n );\n\n this.newDefaultNotificationEnabled$ = this.configService.config$.pipe(\n switchMap((config) =>\n this.featureFlagService.checkFeatureFlag(config.partnerId, '', 'new_notification_default_settings'),\n ),\n );\n }\n\n ngOnDestroy(): void {\n if (this.dialogListenerSub) {\n this.dialogListenerSub.unsubscribe();\n }\n }\n\n applyChanges(): void {\n if (this.noChangesSelected) {\n this.snackbarService.errorSnack(this.translateService.instant('USERS.BULK_UPDATE_SETTINGS.MUST_SELECT_CHANGES'));\n return;\n }\n this.dialogListenerSub = combineLatest([\n this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.DIALOG.OVERWRITE_PREVIOUS_CHANGES'),\n this.getChangesTextAsync(),\n this.userBulkActionsService.getAmountOfUsersSelectedStringAsync(),\n ])\n .pipe(\n switchMap(([previousChangesText, changesText, numUsersText]) => {\n return this.dialogService.confirm(\n 'USERS.BULK_UPDATE_SETTINGS.DIALOG.UPDATE_SETTINGS',\n previousChangesText.replace('{{changesText}}', changesText).replace('{{name}}', numUsersText),\n 'USERS.BULK_UPDATE_SETTINGS.DIALOG.YES_UPDATE_SETTINGS',\n 'USERS.BULK_UPDATE_SETTINGS.DIALOG.NO_DONT_UPDATE',\n );\n }),\n filter((response) => response === 'yes'),\n switchMap((_) => this.userBulkActionsService.submitChanges()),\n )\n .subscribe({\n next: () => {\n this.snackbarService.successSnack(this.translateService.instant('USERS.BULK_UPDATE_SETTINGS.SUCCESS'));\n this.router.navigate(['/bc-admin']);\n },\n error: () => {\n this.snackbarService.errorSnack(this.translateService.instant('USERS.BULK_UPDATE_SETTINGS.ERROR'));\n },\n });\n }\n\n updateBulkNotificationScope(event: unknown): void {\n this.userBulkActionsService.setBulkUpdateScope((event as MatSlideToggleChange).checked);\n }\n\n private getChangesTextAsync(): Observable {\n if (this.notifChanges && this.tabChanges) {\n return this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.TAB_ACCESS_AND_NOTIFICATIONS');\n }\n if (this.tabChanges) {\n return this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.TAB_ACCESS_LOWER');\n }\n if (this.notifChanges) {\n return this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.PERMISSIONS');\n }\n return of('');\n }\n\n public defaultNotificationPromoteClose(): void {\n this.showDefaultNotificationPromotes = false;\n }\n}\n", "\n \n \n {{ 'USERS.BULK_UPDATE_SETTINGS.BULK_UPDATE_SETTINGS' | translate }}\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n

{{ 'USERS.BULK_UPDATE_SETTINGS.UPDATE_ALL_BUSINESSES' | translate }}

\n \n

{{ 'USERS.BULK_UPDATE_SETTINGS.UPDATE_USER_DEFAULTS' | translate }}

\n
\n
\n
\n
\n
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.NEW_NOTIFICATION_DEFAULT_PROMOTE' | translate }}\n \n \n\n

\n {{ 'USERS.BULK_UPDATE_SETTINGS.SELECTED_CHANGES' | translate }}\n

\n
\n {{ 'USERS.BULK_UPDATE_SETTINGS.ANY_CHANGES_WILL_APPEAR_HERE' | translate }}\n
\n
\n 0 || tabAccessChanges[1].length > 0\"\n >\n

Tab Access

\n 0\">\n
\n
- {{ tab.name }}
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.TURN_ON' | translate }}\n \n
\n
\n 0\">\n
\n
- {{ tab.name }}
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.TURN_OFF' | translate }}\n \n
\n
\n \n
\n
\n \n

\n {{ 'USERS.BULK_UPDATE_SETTINGS.NOTIFICATIONS' | translate }}\n

\n \n
\n
- {{ notif.title }}
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.ENABLE' | translate }}\n \n
\n
\n
- {{ notif.title }}
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.DISABLE' | translate }}\n \n
\n
\n
- {{ notif.title }}
\n \n {{ 'USERS.BULK_UPDATE_SETTINGS.SET_DEFAULT' | translate }}\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n"], "mappings": "owDAGM,SAAUA,GAAaC,EAAYC,EAAgB,CACvD,IAAMC,EAAMC,OAAOC,IAAIC,gBAAgBL,CAAI,EACrCM,EAAOC,SAASC,cAAc,GAAG,EACvCF,EAAKG,aAAa,QAAS,eAAe,EAC1CF,SAASG,KAAKC,YAAYL,CAAI,EAC9BA,EAAKM,KAAOV,EACZI,EAAKO,SAAWZ,EAChBK,EAAKQ,MAAK,EACVX,OAAOC,IAAIW,gBAAgBb,CAAG,CAChC,CCFA,IAAac,IAAqB,IAAA,CAA5B,IAAOA,EAAP,MAAOA,CAAqB,CAMhCC,YACUC,EACAC,EACAC,EACAC,EACAC,EAAsC,CAJtC,KAAAJ,gBAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,KAAAA,EACA,KAAAC,eAAAA,EACA,KAAAC,mBAAAA,EAPO,KAAAC,IAAc,UAQ5B,CAEHC,UAAUC,EAAmB,CAC3B,OAAO,KAAKN,cAAcO,wBAAwB,KAAKC,KAAKC,KAAM,KAAKL,GAAG,EAAEM,KAC1EC,EAAWC,GACF,KAAKX,KACTY,IAAID,EAAWN,EAAa,CAC3BQ,QAAS,CAAE,eAAgB,KAAKV,GAAG,EACpC,EACAM,KACCK,EAAI,IAAM,KAAKC,gBAAgBJ,CAAS,CAAC,EACzCK,EAAYC,GAAQC,EAAWD,CAAG,CAAC,CAAC,CAEzC,CAAC,CAEN,CAEAF,gBAAgBJ,EAAiB,CAC/B,IAAMQ,EAAOR,EAAUS,MAAM,0EAA0E,EACvG,GAAID,IAAS,KACX,KAAKE,aAAeF,EAAK,CAAC,EAAI,IAAM,KAAKZ,KAAKC,SAE9C,OAAM,IAAIc,KAEd,CAEAC,eAAeC,EAAkBC,EAAc,CAC7C,OAAO,KAAKvB,mBAAmBqB,eAAe,KAAKtB,eAAeyB,UAAWF,EAAUC,CAAM,CAC/F,CAEAE,gBAAgBC,EAAkBH,EAAgBI,EAAoB,CACpE,IAAMC,EAAeF,IAAa,EAAI,UAAYA,EAAW,UAC7D,KAAK7B,cACFgC,oBAAoB,KAAK9B,eAAeyB,UAAW,KAAKL,aAAcI,EAAQI,CAAW,EACzFG,UAAU,IAAM,KAAKlC,gBAAgBmC,aAAa,2BAA6BH,CAAY,CAAC,CACjG,CAEAI,cAAcC,EAAgB,CAC5B,OAAO,KAAKjC,mBAAmBgC,cAAc,KAAKjC,eAAeyB,UAAW,GAAIS,CAAQ,EAAE1B,KACxF2B,EAAQC,GACFA,GAAMC,gBAAgBC,QACjB,KAAKrC,mBAAmBgC,cAC7B,KAAKjC,eAAeyB,UACpBW,GAAMC,gBAAgBE,WACtBL,CAAQ,EAGHM,CAEV,EACD3B,EAAKuB,GAAQ,CACX,GAAI,CAACA,GAAQ,CAACA,EAAKK,UACjB,MAAO,CAAA,EAET,IAAMC,EAAuB,CAAA,EAC7B,QAAWC,KAAKP,EAAKK,UACnBC,EAASE,KAAK,CACZpB,OAAQmB,EAAEnB,OACVqB,aAAcF,EAAEpB,SACjB,EAEH,OAAOmB,CACT,CAAC,EACDI,EAAO,CAACC,EAAKC,IAAS,CAAC,GAAGD,EAAK,GAAGC,CAAI,EAAG,CAAA,CAAE,CAAC,CAEhD,CAEAC,aAAW,CACT,OAAO,KAAKnD,cAAcoD,uBAAuB,KAAK9B,aAAc,KAAKpB,eAAeyB,SAAS,CACnG,yCAjFW9B,GAAqBwD,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,CAAA,EAAAJ,EAAAK,EAAA,CAAA,CAAA,yBAArB7D,EAAqB8D,QAArB9D,EAAqB+D,UAAAC,WADR,MAAM,CAAA,EAC1B,IAAOhE,EAAPiE,SAAOjE,CAAqB,GAAA,4CEYtBkE,EAAA,CAAA,yBAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,2CAAA,EAAA,GAAA,qCA6CAC,EAAA,EAAA,SAAA,EAAA,EAIEC,EAAA,QAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAAC,EAAAC,EAAA,EAAA,EAAA,OAAAC,EAASJ,EAAAK,WAAAR,EAAAK,CAAA,CAAkC,CAAA,CAAA,EAE3CP,EAAA,EAAA,UAAA,EAAUH,EAAA,EAAA,OAAA,EAAKc,EAAA,EAAW,0BAE5BX,EAAA,EAAA,WAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,yCAAA,EAAA,GAAA,yBAGJc,EAAA,EAAA,cAAA,EAAA,OAAsEC,EAAA,WAAA,EAAA,yBACtEd,EAAA,EAAA,MAAA,EAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,8CAAA,EAAA,GAAA,sCAKAC,EAAA,EAAA,MAAA,EAA2D,EAAA,IAAA,EAAA,EACtDC,EAAA,QAAA,UAAA,CAAAE,EAAAY,CAAA,EAAA,IAAAC,EAAAV,EAAA,EAAAW,MAAAZ,EAAAC,EAAA,EAAA,OAAAG,EAASJ,EAAAa,eAAAF,CAAA,CAAiB,CAAA,CAAA,EAC3BnB,EAAA,CAAA,mBACAG,EAAA,EAAA,WAAA,EAAA,EAA2BH,EAAA,EAAA,aAAA,EAAWc,EAAA,EAAW,EAC/C,QAFFC,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,qDAAA,EAAA,GAAA,sCAIJC,EAAA,EAAA,MAAA,EAA2D,EAAA,IAAA,EAAA,EACtDC,EAAA,QAAA,UAAA,CAAAE,EAAAgB,CAAA,EAAA,IAAAH,EAAAV,EAAA,EAAAW,MAAAZ,EAAAC,EAAA,EAAA,OAAAG,EAASJ,EAAAa,eAAAF,CAAA,CAAiB,CAAA,CAAA,EAC3BnB,EAAA,CAAA,mBACAG,EAAA,EAAA,WAAA,EAAA,EAA2BH,EAAA,EAAA,aAAA,EAAWc,EAAA,EAAW,EAC/C,QAFFC,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,uDAAA,EAAA,GAAA,6BAIJC,EAAA,EAAA,MAAA,EAAA,EACEH,EAAA,CAAA,EACFc,EAAA,8BADEC,EAAA,EAAAd,EAAA,IAAAO,EAAAe,4BAAAJ,CAAA,EAAA,GAAA,6BAhBJhB,EAAA,EAAA,MAAA,EAAA,EAAwE,EAAA,OAAA,EAAA,EAC9CH,EAAA,CAAA,EAAgCc,EAAA,EACxDX,EAAA,EAAA,MAAA,EAAMH,EAAA,CAAA,EAASc,EAAA,EACfU,EAAA,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAA2D,EAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAMA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAS7Db,EAAA,0CAjB0BC,EAAA,CAAA,EAAAa,EAAApB,EAAAqB,wBAAAV,CAAA,CAAA,EAClBJ,EAAA,CAAA,EAAAa,EAAAE,CAAA,EACCf,EAAA,EAAAE,EAAA,OAAAT,EAAAuB,oCAAAZ,CAAA,IAAA,CAAA,EAMAJ,EAAA,EAAAE,EAAA,OAAAT,EAAAuB,oCAAAZ,CAAA,IAAA,CAAA,EAMeJ,EAAA,EAAAE,EAAA,OAAAT,EAAAuB,oCAAAZ,CAAA,IAAA,CAAA,0BAoBtBnB,EAAA,CAAA,yBAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,yCAAA,EAAA,GAAA,qCAsBYC,EAAA,EAAA,aAAA,EAAA,EAGEC,EAAA,oBAAA,SAAAC,EAAA,CAAA,IAAA2B,EAAA1B,EAAA2B,CAAA,EAAAC,UAAA1B,EAAAC,EAAA,CAAA,EAAA,OAAAG,EAAqBJ,EAAA2B,kBAAAH,EAAA3B,CAAA,CAA+B,CAAA,CAAA,EAEpDL,EAAA,CAAA,EACFc,EAAA,4BAJEsB,EAAA,QAAAJ,EAAAK,YAAA,EAGAtB,EAAA,EAAAd,EAAA,IAAA+B,EAAAK,aAAA,GAAA,0BAGJlC,EAAA,EAAA,WAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,yCAAA,EAAA,GAAA,6BAhBNC,EAAA,EAAA,MAAA,EAAyD,EAAA,iBAAA,EAAA,EACrB,EAAA,WAAA,EAE9BH,EAAA,CAAA,mBACFc,EAAA,EACAE,EAAA,EAAA,QAAA,EAAA,EACAb,EAAA,EAAA,mBAAA,GAAA,CAAA,EACEqB,EAAA,EAAAc,GAAA,EAAA,EAAA,aAAA,EAAA,eAOFxB,EAAA,EACAU,EAAA,GAAAe,GAAA,EAAA,EAAA,YAAA,EAAA,EAGFzB,EAAA,EAAiB,0BAfbC,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,8CAAA,EAAA,GAAA,EAEuDa,EAAA,CAAA,EAAAE,EAAA,kBAAAuB,CAAA,EAGpCzB,EAAA,CAAA,EAAAE,EAAA,UAAAf,EAAA,EAAA,EAAAM,EAAAiC,qBAAA,CAAA,EAOT1B,EAAA,CAAA,EAAAE,EAAA,OAAAT,EAAAkC,aAAAC,SAAA,WAAAC,SAAA,UAAA,CAAA,sCA1BpBzC,EAAA,EAAA,MAAA,EAA+B,EAAA,mBAAA,EAAA,EAK3BC,EAAA,SAAA,UAAA,CAAAE,EAAAuC,CAAA,EAAA,IAAArC,EAAAC,EAAA,CAAA,EAAA,OAAAG,EAAUJ,EAAAsC,gBAAA,CAAiB,CAAA,CAAA,EAAC,QAAA,UAAA,CAAAxC,EAAAuC,CAAA,EAAA,IAAArC,EAAAC,EAAA,CAAA,EAAA,OAAAG,EACnBJ,EAAAsC,gBAAA,CAAiB,CAAA,CAAA,EAE1B9C,EAAA,CAAA,mBACFc,EAAA,EACAX,EAAA,EAAA,KAAA,EACEqB,EAAA,EAAAuB,GAAA,GAAA,EAAA,OAAA,EAAA,EAoBFjC,EAAA,EAAM,+BA7BJC,EAAA,EAAAqB,EAAA,QAAA5B,EAAAwC,GAAAC,iBAAA,EACAhC,EAAA,UAAAiC,EAAAC,OAAA,CAAA,EAKApC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,gDAAA,EAAA,GAAA,EAGOa,EAAA,CAAA,EAAAE,EAAA,OAAAT,EAAA4C,eAAA5C,EAAAwC,GAAAC,iBAAA,0BAyCL9C,EAAA,EAAA,WAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,yCAAA,EAAA,GAAA,0BAEFC,EAAA,EAAA,WAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,kDAAA,EAAA,GAAA,sCAdNC,EAAA,EAAA,MAAA,EAAkD,EAAA,iBAAA,EAAA,EACd,EAAA,QAAA,EAAA,EAO9BC,EAAA,QAAA,SAAAC,EAAA,CAAAC,EAAA+C,CAAA,EAAA,IAAA7C,EAAAC,EAAA,CAAA,EAAA,OAAAG,EAASJ,EAAA8C,YAAAjD,CAAA,CAAmB,CAAA,CAAA,EAN9BS,EAAA,EAQAU,EAAA,EAAA+B,GAAA,EAAA,EAAA,YAAA,EAAA,EAA8E,EAAAC,GAAA,EAAA,EAAA,YAAA,EAAA,EAMhF1C,EAAA,EAAiB,qBANHC,EAAA,CAAA,EAAAE,EAAA,OAAAT,EAAAkC,aAAAC,SAAA,aAAAC,SAAA,UAAA,CAAA,EAGA7B,EAAA,EAAAE,EAAA,OAAAT,EAAAkC,aAAAC,SAAA,aAAAC,SAAA,YAAA,CAAA,sCAxDpBzC,EAAA,EAAA,MAAA,EACEqB,EAAA,EAAAiC,GAAA,EAAA,EAAA,OAAA,EAAA,EAiCAtD,EAAA,EAAA,mBAAA,EAAA,EAIEC,EAAA,QAAA,UAAA,CAAAE,EAAAoD,CAAA,EAAA,IAAAlD,EAAAC,EAAA,EAAA,OAAAG,EAASJ,EAAAmD,kBAAA,CAAmB,CAAA,CAAA,EAE5B3D,EAAA,CAAA,mBACFc,EAAA,EACAX,EAAA,EAAA,KAAA,EACEqB,EAAA,EAAAoC,GAAA,EAAA,EAAA,OAAA,EAAA,EAkBF9C,EAAA,EAAM,6BA5DCC,EAAA,EAAAE,EAAA,OAAAiC,EAAAC,OAAA,CAAA,EAkCLpC,EAAA,EAAAqB,EAAA,QAAA5B,EAAAwC,GAAAa,eAAA,EACA5C,EAAA,UAAAiC,EAAAC,SAAA,CAAA,EAIApC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,2CAAA,EAAA,GAAA,EAGOa,EAAA,CAAA,EAAAE,EAAA,OAAAT,EAAA4C,eAAA5C,EAAAwC,GAAAa,eAAA,0BAoCb7D,EAAA,CAAA,yBAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,sCAAA,EAAA,GAAA,4BA2BEC,EAAA,EAAA,KAAA,EAA2C,EAAA,eAAA,EAC1B,EAAA,WAAA,EAAA,EACeH,EAAA,EAAA,MAAA,EAAIc,EAAA,EAChCX,EAAA,EAAA,OAAA,EAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,EACAX,EAAA,EAAA,OAAA,EAAA,EAAuBH,EAAA,CAAA,EAAkBc,EAAA,EAAO,EAElDE,EAAA,EAAA,aAAA,EACFF,EAAA,kBALMC,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,yCAAA,EAAA,GAAA,EAEqBa,EAAA,CAAA,EAAAa,EAAApB,EAAA6B,YAAA,sCAcnBlC,EAAA,EAAA,IAAA,EAAA,EAAmCC,EAAA,QAAA,UAAA,CAAAE,EAAAwD,CAAA,EAAA,IAAAtD,EAAAC,EAAA,EAAA,OAAAG,EAASJ,EAAAuD,yBAAA,CAA0B,CAAA,CAAA,EACpE/D,EAAA,CAAA,mBACFc,EAAA,QADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,mCAAA,EAAA,GAAA,sCAgBJC,EAAA,EAAA,IAAA,EAAA,EAAkCC,EAAA,QAAA,UAAA,CAAAE,EAAA0D,CAAA,EAAA,IAAAxD,EAAAC,EAAA,CAAA,EAAA,OAAAG,EAASJ,EAAAuD,yBAAA,CAA0B,CAAA,CAAA,EACnE/D,EAAA,CAAA,mBACFc,EAAA,QADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,gCAAA,EAAA,GAAA,6BAbJC,EAAA,EAAA,KAAA,EAAoC,EAAA,KAAA,EAAA,EACN,EAAA,IAAA,EAExBH,EAAA,CAAA,mBACFc,EAAA,EACAX,EAAA,EAAA,IAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,EACAX,EAAA,EAAA,IAAA,EACEH,EAAA,CAAA,oBACFc,EAAA,EAAK,EAEPU,EAAA,GAAAyC,GAAA,EAAA,EAAA,IAAA,EAAA,EAGFnD,EAAA,kBAZMC,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,sDAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,sDAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,EAAA,sDAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAE,EAAA,OAAAT,EAAA0D,sBAAA,6BAQd/D,EAAA,EAAA,WAAA,EAAsC,EAAA,UAAA,EAC1BH,EAAA,EAAA,OAAA,EAAKc,EAAA,EACfX,EAAA,EAAA,OAAA,EAAA,EAAwBH,EAAA,CAAA,EAAwBc,EAAA,EAAO,kBAA/BC,EAAA,CAAA,EAAAa,EAAApB,EAAA2D,kBAAA,yBAQpBnD,EAAA,EAAA,cAAA,EAAA,OAGEC,EAAA,WAAA,EAAA,yBAGFd,EAAA,EAAA,MAAA,EACEH,EAAA,CAAA,mBACFc,EAAA,SADEC,EAAA,EAAAd,EAAA,IAAAC,EAAA,EAAA,EAAA,6BAAA,EAAA,GAAA,GDhRhB,IAAMkE,GAAY,IACZC,GAAgB,KAEVC,EAAZ,SAAYA,EAAY,CACtBA,OAAAA,EAAAA,EAAA,gBAAA,CAAA,EAAA,kBACAA,EAAAA,EAAA,kBAAA,CAAA,EAAA,oBACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OAHUA,CAIZ,EAJYA,GAAY,CAAA,CAAA,EASXC,IAAuB,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAqClCC,YACyCC,EACDC,EAC9BC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GAAwC,CAXT,KAAAX,WAAAA,EACD,KAAAC,UAAAA,EAC9B,KAAAC,OAAAA,EACA,KAAAC,YAAAA,EACA,KAAAC,sBAAAA,EACA,KAAAC,eAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,MAAAA,GACA,KAAAC,eAAAA,GACA,KAAAC,QAAAA,GACA,KAAAC,UAAAA,GACA,KAAAC,gBAAAA,GA5CV,KAAAC,eAAiB,GACjB,KAAAC,qBAAuB,GACvB,KAAAC,oBAAgC,CAAA,EAChC,KAAA1D,wBAAoC,CAAA,EACpC,KAAAN,4BAAwC,CAAA,EACxC,KAAAQ,oCAAgD,CAAA,EAChD,KAAAyD,4BAA8B,EAC9B,KAAAC,QAAU,GAEV,KAAAC,mBAAqB,EACrB,KAAAC,aAAoB,CAAA,EACpB,KAAAC,aAAe,mBAIf,KAAAC,YAAc,GACd,KAAA3B,uBAAyB,GACzB,KAAAd,aAA6BkB,EAAarB,kBAC1C,KAAAD,GAA0BsB,EAQ1B,KAAAwB,cAAgB,IAEhB,KAAAC,MAAQ,GAER,KAAAC,cAAgC,CAAA,CAe7B,CAEHC,UAAQ,CACN,KAAKC,mBAAkB,EAEvB,KAAKF,cAAcG,KACjB,KAAK1B,WACF2B,KACCC,EAAWC,IACLA,IAAc,QAChB,KAAKP,MAAQ,IAER,KAAKjB,eAAeyB,kBAAkBD,EAAW,CAAC,KAAKV,YAAY,CAAC,EAC5E,EACDY,EAAKC,GAAU,CACb,KAAKC,uBAAyB,KAAKvB,UAAUwB,QAC3C,sDACA,CAAEC,mBAAoBH,EAAOI,gBAAgB,CAAE,CAEnD,CAAC,EACDC,EAAY,CAAC,CAAC,EAEfC,UAAS,CAAE,EAGhB,KAAKC,eAAiB,KAAK7B,UAAUwB,QAAQ,gDAAgD,EAE7F,KAAKM,cAAgB,KAAKpC,sBAAsBqC,cAAc,KAAKpB,aAAa,EAAEM,KAAKe,EAAK,CAAE,EAC9F,IAAMC,EAAc,KAAK1E,aAAa2E,IAAI,YAAY,EAAEC,aAAalB,KAAKmB,EAAU,EAAE,CAAC,EACvF,KAAK9E,sBAAwB+E,EAAc,CAAC,KAAKP,cAAeG,CAAW,CAAC,EAAEhB,KAC5EI,EAAI,CAAC,CAACiB,EAAWC,CAAU,IACpBA,EAGED,EAAUE,OAAQC,GAAaA,EAASvF,aAAawF,YAAW,EAAGC,SAASJ,EAAWG,YAAW,CAAE,CAAC,EAFnGJ,CAGV,CAAC,EAGJ,KAAKzB,cAAcG,KACjB,KAAKc,cACFb,KACCI,EAAKiB,GAAa,CACZA,EAAUtE,SAAW,GACvB,KAAKC,aAAekB,EAAaT,gBACjC,KAAKF,kBAAiB,GAEtB,KAAKb,gBAAe,CAExB,CAAC,CAAC,EAEHiE,UAAS,CAAE,CAElB,CAEQb,oBAAkB,CACxB,KAAK6B,gBAAkB,IAAIC,GAAmB,GAAI,CAACC,EAAWC,QAAQ,CAAC,EAEvE,KAAKC,SAAW,KAAKvD,YAAYwD,MAAM,CACrCC,KAAM,CAAC,GAAIJ,EAAWC,QAAQ,EAC9BI,cAAe,CAAC,EAAK,EACtB,EACD,KAAK5F,aAAe,KAAKkC,YAAYwD,MAAM,CACzCG,cAAe,CAAA,EACfC,WAAY,CAAC,KAAMP,EAAWC,QAAQ,EACtC7F,aAAc,CAAC,IAAI,EACpB,CACH,CAEAoG,aAAaC,EAAU,CAErB,GADA,KAAK/C,aAAe,CAAA,EAChB,CAAC+C,EAAMC,OAAOC,MAChB,OAEF,KAAKC,0BAAyB,EAC9B,KAAKhE,sBAAsBwD,KAAOK,EAAMC,OAAOC,MAAM,CAAC,EACtD,IAAME,EAAa,IAAIC,WACnB,KAAKlE,sBAAsBwD,OAC7BS,EAAWE,WAAW,KAAKnE,sBAAsBwD,IAAI,EACrD,KAAKY,YAAc,KAAKpE,sBAAsBwD,KAAKa,KACnD,KAAK7D,eAAiB,IAExByD,EAAWK,OAAS,IAAK,CACvB,IAAMC,EAAcN,EAAWO,OAAOC,SAAQ,EACzC,KAAKC,iBAAiBH,CAAW,GAItC,KAAKpD,cAAcG,KACjB,KAAKtB,sBACF2E,UAAUJ,CAAW,EACrBhD,KAAKC,EAAU,IAAM,KAAKxB,sBAAsB4E,YAAW,CAAE,CAAC,EAC9D1C,UAAU,CACT2C,KAAOC,GAAoB,CACzB,GAAIA,EAAiBxG,OAAS,EAAG,CAC/B,KAAKmC,qBAAuB,GAC5B,KAAKsE,wBAAwBD,CAAgB,EAC7C,MACF,CACA,KAAKE,iBAAgB,EAErB,KAAKxE,eAAiB,EACxB,EACAyE,MAAOA,IAAK,CACV,KAAKF,wBAAwB,CAAC,KAAKzE,UAAUwB,QAAQ,iDAAiD,CAAC,CAAC,CAC1G,EACD,CAAC,CAER,CACF,CAEA4C,iBAAiBH,EAAmB,CAClC,IAAMW,EAAgB,KAAKhF,UAAUiF,MAAMZ,EAAa,CACtDa,eAAgB,SACjB,EASD,OARA,KAAKvE,mBAAqBqE,EAAcG,KAAK/G,SAAW,EAAI,EAAI4G,EAAcG,KAAK/G,OAAS,EAC5F,KAAKgH,aACH,KAAKzE,qBAAuB,EACxB,KAAKP,UAAUwB,QAAQ,kDAAkD,EACzE,KAAKxB,UAAUwB,QAAQ,iDAAkD,CACvEyD,SAAU,KAAK1E,mBAChB,EAEH,KAAKA,qBAAuB,GAC9B,KAAKJ,qBAAuB,GAC5B,KAAKsE,wBAAwB,CAAC,KAAKzE,UAAUwB,QAAQ,mDAAmD,CAAC,CAAC,EACnG,IAGN,KAAKjB,mBAAqBtB,IAAa,CAAC,KAAK2B,OAC7C,KAAKA,OAAS,KAAKL,mBAAqBrB,IAEzC,KAAKiB,qBAAuB,GAC5B,KAAKsE,wBAAwB,CAC3B,KAAKzE,UAAUwB,QAAQ,oDAAqD,CAC1E0D,QAAS,KAAKtE,MAAQ1B,GAAgBD,GACvC,CAAC,CACH,EACM,IAEF,EACT,CAEAwF,wBAAwBU,EAAgB,CACtC,QAAWR,KAASQ,EAClB,GAAIR,EAAMhC,SAAS,KAAK,EAAG,CACzB,IAAMyC,EAAQT,EAAMU,QAAQ,IAAKV,EAAMU,QAAQ,GAAG,EAAI,CAAC,EACjDC,EAAOX,EAAMY,OAAO,EAAGH,CAAK,EAAEI,QAAQ,KAAM,IAAI,EAClD,KAAKC,YAAYH,EAAM,GAAG,EAAI,KAAKjF,6BACrC,KAAK3D,wBAAwBsE,KAC3BsE,EAAKC,OAAO,EAAGD,EAAKF,MAAM,IAAK,KAAK/E,2BAA2B,EAAEqF,KAAK,GAAG,EAAE1H,MAAM,EAAI,MAAM,EAE7F,KAAK5B,4BAA4B4E,KAAKsE,EAAKC,OAAOD,EAAKD,QAAQ,GAAG,EAAI,CAAC,EAAEM,MAAM,EAAG,EAAE,CAAC,EACrF,KAAK/I,oCAAoCoE,KAAK,CAAC,IAE/C,KAAKtE,wBAAwBsE,KAAKsE,CAAI,EACtC,KAAKlJ,4BAA4B4E,KAAK,EAAE,EACxC,KAAKpE,oCAAoCoE,KAAK,EAAE,GAElD,KAAKZ,oBAAoBY,KAAK2D,EAAMY,OAAOH,CAAK,CAAC,CACnD,MACE,KAAK1I,wBAAwBsE,KAAK,EAAE,EACpC,KAAK5E,4BAA4B4E,KAAK,EAAE,EACxC,KAAKpE,oCAAoCoE,KAAK,EAAE,EAChD,KAAKZ,oBAAoBY,KAAK2D,CAAK,EAGvC,KAAKzE,eAAiB,EACxB,CAEAuF,YAAYG,EAAoBC,EAAiB,CAG/C,GAFAD,GAAc,GACdC,GAAa,GACTA,EAAU7H,QAAU,EACtB,OAAO4H,EAAW5H,OAAS,EAE7B,IAAI8H,EAAI,EACNC,EAAM,EACFC,EAAOH,EAAU7H,OACvB,KACE+H,EAAMH,EAAWP,QAAQQ,EAAWE,CAAG,EACnCA,GAAO,GACT,EAAED,EACFC,GAAOC,EAKX,OAAOF,CACT,CAEA5J,eAAeD,EAAa,CACtB,KAAKW,oCAAoCX,CAAK,IAAM,EACtD,KAAKW,oCAAoCX,CAAK,EAAI,EAElD,KAAKW,oCAAoCX,CAAK,EAAI,CAEtD,CAEAyH,2BAAyB,CACvB,KAAKtD,oBAAsB,CAAA,EAC3B,KAAK1D,wBAA0B,CAAA,EAC/B,KAAKN,4BAA8B,CAAA,EACnC,KAAKQ,oCAAsC,CAAA,EAC3C,KAAKuD,qBAAuB,EAC9B,CAEAzE,WAAW6H,EAAY0C,EAAU,CAC/BA,EAAMC,MAAQ,GACd,KAAKzB,wBAAwB,CAAA,CAAE,CACjC,CAEA9G,iBAAe,CACb,KAAKM,aAAekB,EAAarB,kBACjC,KAAKP,aAAaC,SAAS6F,WAAW8C,cAAcrD,EAAWC,QAAQ,EACvE,KAAKxF,aAAaC,SAASN,aAAakJ,qBAAoB,EAC5D,KAAK7I,aAAaC,SAASN,aAAamJ,gBAAe,EACvD,KAAK9I,aAAaC,SAASN,aAAaoJ,uBAAuB,CAC7DC,SAAU,GACX,EACD,KAAKhJ,aAAaC,SAAS6F,WAAWiD,uBAAuB,CAC3DC,SAAU,GACX,CACH,CAEA/H,mBAAiB,CACf,KAAKP,aAAekB,EAAaT,gBACjC,KAAKnB,aAAaC,SAAS6F,WAAWmD,SAAS,IAAI,EACnD,KAAKjJ,aAAaC,SAAS6F,WAAWgD,gBAAe,EACrD,KAAK9I,aAAaC,SAAS6F,WAAW+C,qBAAoB,EAC1D,KAAK7I,aAAaC,SAASN,aAAauJ,mBAAmB,KAAKC,qBAAqB,EACrF,KAAKnJ,aAAaC,SAASN,aAAasJ,SAAS,IAAI,EACrD,KAAKjJ,aAAaC,SAASN,aAAaoJ,uBAAsB,EAC9D,KAAK/I,aAAaC,SAAS6F,WAAWiD,uBAAsB,EAE5D,KAAKK,oBAAmB,CAC1B,CAEAC,qBAAmB,CACjB,KAAKpI,kBAAiB,EACtB,KAAKjB,aAAaC,SAAS6F,WAAWgD,gBAAe,EACrD,KAAK9I,aAAaC,SAASN,aAAakJ,qBAAoB,EAC5D,KAAK7I,aAAaC,SAASN,aAAamJ,gBAAe,EACvD,KAAK9I,aAAaC,SAASN,aAAaoJ,uBAAuB,CAC7DC,SAAU,GACX,EACD,KAAKhJ,aAAaC,SAAS4F,cAAcoD,SAAS,EAAK,EACvD,KAAKvI,aAAekB,EAAa0H,IACnC,CAEAnC,kBAAgB,CACd,KAAK1B,SAASxF,SAAS0F,KAAK4D,cAAa,EACzC,KAAK9D,SAASxF,SAAS2F,cAAc2D,cAAa,EAClD,KAAKpD,0BAAyB,EAC9B,KAAKqD,YAAYxC,KAAI,CACvB,CAEAyC,eAAa,CACX,KAAKD,YAAYxC,KAAI,EACrB,KAAKvF,mBAAqB,IAC5B,CAEAiI,kBAAgB,CACd,IAAMC,EAAU,IAAIC,KAAK,CAACC,EAAoB,EAAG,CAAEC,KAAM,UAAU,CAAE,EACrEC,GAAaJ,EAAS,0BAA0B,CAClD,CAEAK,iBAAe,CAEb,GADA,KAAKjH,QAAU,GACX,KAAKrC,eAAiBkB,EAAaT,gBAAiB,CACtD,IAAM8I,EAASC,GAAM,EACfC,EACJ,KAAKnH,qBAAuB,EACxB,KAAKP,UAAUwB,QAAQ,qDAAqD,EAC5E,KAAKxB,UAAUwB,QAAQ,mDAAmD,EAChF,KAAKX,cAAcG,KACjB,KAAKtB,sBAAsBiI,eAAe,KAAKzK,aAAcsK,CAAM,EAAE5F,UAAU,CAC7E2C,KAAOqD,GAAe,CAChBA,GACF,KAAKlI,sBAAsBmI,gBAAgB,KAAKtH,mBAAoBiH,EAAQ,KAAK9G,WAAW,EAC5F,KAAKoH,cAAa,GAElB,KAAK9I,mBAAqB0I,CAE9B,EACA/C,MAAOA,IAAO,KAAK3F,mBAAqB0I,EACzC,CAAC,CAEN,MAAW,KAAKzJ,eAAiBkB,EAAarB,mBAC5C,KAAK4B,sBAAsBmI,gBAAgB,KAAKtH,mBAAoB,KAAKwH,WAAY,KAAKrH,WAAW,EACrG,KAAKoH,cAAa,IAElB,KAAKpI,sBAAsBmI,gBAAgB,KAAKtH,mBAAoB,KAAM,KAAKG,WAAW,EAC1F,KAAKoH,cAAa,EAEtB,CAEAE,uBAAqB,CACnB,KAAKxI,OAAOyI,SAAS,CAAC,WAAW,CAAC,CACpC,CAEAC,qBAAmB,CACjB,KAAK1I,OAAOyI,SAAS,CAAC,eAAgB,SAAU,WAAW,CAAC,CAC9D,CAEAH,eAAa,CACP,KAAK7J,eAAiBkB,EAAaT,iBAAmB,KAAKT,eAAiBkB,EAAarB,kBAC3F,KAAKoK,oBAAmB,EAExB,KAAKF,sBAAqB,CAE9B,CAEAtB,sBAAsByB,EAA2B,CAG/C,MADgB,GADMA,EAAQjC,OAAS,IAAIkC,KAAI,EAAGpK,SAAW,GAE5CqK,EAAG,IAAI,EAAIA,EAAG,CAAEC,WAAY,EAAI,CAAE,CACrD,CAEA1J,0BAAwB,CACtB,KAAKG,uBAAyB,CAAC,KAAKA,sBACtC,CAEA4H,qBAAmB,CACjB,KAAKoB,WAAa,IACpB,CAEA5J,YAAYjB,EAAiB,CACvB,KAAKe,eAAiBkB,EAAaT,gBACrC,KAAKxB,aAAgBA,EAAasG,QAA6B0C,MACtD,KAAKjI,eAAiBkB,EAAarB,oBAC5C,KAAKZ,aAAeA,EAAaA,aACjC,KAAK6K,WAAa7K,EAAasK,OAEnC,CAEAxK,kBAAkBE,EAAmBqG,EAAU,CACzCA,EAAMgF,aACR,KAAKpK,YAAYjB,CAAY,CAEjC,CAEAsL,aAAW,CACT,KAAK3H,cAAc4H,QAASC,GAAMA,EAAEC,YAAW,CAAE,CACnD,yCAzYWvJ,GAAuBwJ,EAsCxB,YAAY,EAAAA,EACZ,WAAW,EAAAA,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,EAAA,EAAAL,EAAAM,EAAA,EAAAN,EAAAO,CAAA,EAAAP,EAAAQ,CAAA,EAAAR,EAAAS,CAAA,EAAAT,EAAAU,EAAA,CAAA,CAAA,sBAvCVlK,EAAuBmK,UAAA,CAAA,CAAA,cAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,6qEC7BpCzO,EAAA,EAAA,WAAA,EAAW,EAAA,mBAAA,EACU,EAAA,iBAAA,EACAH,EAAA,EAAA,cAAA,EAAYc,EAAA,EAC7BX,EAAA,EAAA,eAAA,EACEa,EAAA,EAAA,uBAAA,CAAA,oCAMFF,EAAA,EAAgB,EAElBX,EAAA,EAAA,oBAAA,CAAA,EAAqC,EAAA,uBAAA,EAAA,CAAA,EAKjCC,EAAA,kBAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAAAiO,EAAA3K,uBAA4C,EAAK,CAAA,CAAA,EAEjD/D,EAAA,GAAA,WAAA,CAAA,EAAmC,GAAA,OAAA,CAAA,EAE/BqB,EAAA,GAAAwN,GAAA,EAAA,EAAA,cAAA,CAAA,EAGA7O,EAAA,GAAA,MAAA,CAAA,EAA0B,GAAA,KAAA,EACnB,GAAA,KAAA,EAEDH,EAAA,EAAA,oBACAG,EAAA,GAAA,IAAA,EAAA,EAAGC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAAzC,iBAAA,CAAkB,CAAA,CAAA,EAC5BjM,EAAA,GAAA,MAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EAAO,EACL,EAENX,EAAA,GAAA,KAAA,EACEH,EAAA,EAAA,oBACAG,EAAA,GAAA,KAAA,EAAA,EAAyB,GAAA,IAAA,EACnB,GAAA,QAAA,EAEAH,EAAA,EAAA,oBACFc,EAAA,EACAd,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,IAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,IAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EAAK,EACF,EAEPX,EAAA,GAAA,MAAA,CAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EAAM,EACF,EAERX,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,WAAA,EAAA,EACqBH,EAAA,GAAA,aAAA,EAAWc,EAAA,EACxDX,EAAA,GAAA,QAAA,GAAA,CAAA,EAMEC,EAAA,SAAA,SAAAC,EAAA,CAAAyO,OAAAxO,EAAAyO,CAAA,EAAAnO,EAAUiO,EAAApG,aAAApI,CAAA,CAAoB,CAAA,CAAA,EANhCS,EAAA,EASAU,EAAA,GAAAyN,GAAA,EAAA,EAAA,SAAA,EAAA,EAKC,GAAAC,GAAA,EAAA,EAAA,YAAA,EAAA,EAMHpO,EAAA,EACAU,EAAA,GAAA2N,GAAA,EAAA,EAAA,cAAA,EAAA,EAAsF,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAChC,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAsBtDlP,EAAA,GAAA,KAAA,EAAK,GAAA,SAAA,EAAA,EAKDC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAAhF,iBAAA,CAAkB,CAAA,CAAA,EAG3B7J,EAAA,EAAA,oBACFc,EAAA,EAAS,EACL,EACD,EAETX,EAAA,GAAA,WAAA,CAAA,EAAuC,GAAA,OAAA,CAAA,EAEnCqB,EAAA,GAAA8N,GAAA,EAAA,EAAA,cAAA,CAAA,EAGAnP,EAAA,GAAA,kBAAA,EAAA,EACEqB,EAAA,GAAA+N,GAAA,EAAA,EAAA,OAAA,EAAA,gBA+DApP,EAAA,GAAA,mBAAA,EAAA,EAAwDC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAA9C,oBAAA,CAAqB,CAAA,CAAA,EACpF/L,EAAA,EAAA,oBACFc,EAAA,EAAmB,EAErBX,EAAA,GAAA,KAAA,EAAK,GAAA,SAAA,EAAA,EAEDH,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,SAAA,EAAA,EAAwDC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAA1C,cAAA,CAAe,CAAA,CAAA,EAC9EnM,EAAA,EAAA,oBACFc,EAAA,EAAS,EACL,EACD,EAETX,EAAA,GAAA,UAAA,EACEqB,EAAA,GAAAgO,GAAA,EAAA,EAAA,cAAA,CAAA,EAGArP,EAAA,GAAA,MAAA,CAAA,EAA0B,GAAA,KAAA,EAEtBH,EAAA,EAAA,EACAG,EAAA,GAAA,IAAA,EAAA,EAAGC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAA1B,sBAAA,CAAuB,CAAA,CAAA,EACjCnN,EAAA,EAAA,oBACFc,EAAA,EACAd,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,UAAA,EAAU,GAAA,eAAA,EACO,GAAA,WAAA,EAAA,EACeH,EAAA,GAAA,MAAA,EAAIc,EAAA,EAChCX,EAAA,GAAA,OAAA,EAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,OAAA,EAAA,EAAeH,EAAA,EAAA,EAAiBc,EAAA,EAAO,EAEzCE,EAAA,GAAA,aAAA,EACAb,EAAA,GAAA,eAAA,EAAe,GAAA,WAAA,EAAA,EACeH,EAAA,GAAA,MAAA,EAAIc,EAAA,EAChCX,EAAA,GAAA,OAAA,EAAA,EACEH,EAAA,EAAA,oBACFc,EAAA,EACAX,EAAA,GAAA,OAAA,EAAA,EAAeH,EAAA,EAAA,EAAkBc,EAAA,EAAO,EAE1CE,EAAA,IAAA,aAAA,EACAQ,EAAA,IAAAiO,GAAA,GAAA,EAAA,MAAA,EAAA,EAUAtP,EAAA,IAAA,eAAA,EAAe,IAAA,eAAA,EAAA,EACkBuP,GAAA,gBAAA,SAAArP,EAAA,CAAAyO,OAAAxO,EAAAyO,CAAA,EAAAY,GAAAd,EAAAhJ,YAAAxF,CAAA,IAAAwO,EAAAhJ,YAAAxF,GAAAO,EAAAP,CAAA,CAAA,CAAA,EAC7BL,EAAA,GAAA,qBACFc,EAAA,EAAe,EAEjBX,EAAA,IAAA,gBAAA,EAAA,EAAoC,IAAA,MAAA,EAAA,EACT,IAAA,KAAA,EAErBH,EAAA,GAAA,qBACAG,EAAA,IAAA,KAAA,EACEqB,EAAA,IAAAoO,GAAA,EAAA,EAAA,IAAA,EAAA,EAGF9O,EAAA,EAAM,EAERU,EAAA,IAAAqO,GAAA,GAAA,GAAA,MAAA,EAAA,EAgBF/O,EAAA,EAAM,EACQ,EACP,EAEbU,EAAA,IAAAsO,GAAA,EAAA,EAAA,YAAA,EAAA,EAIA3P,EAAA,IAAA,KAAA,EAAK,IAAA,SAAA,EAAA,EAEDH,EAAA,GAAA,qBACFc,EAAA,EACAX,EAAA,IAAA,MAAA,EAAA,EAA0B,IAAA,SAAA,EAAA,EAC8BC,EAAA,QAAA,UAAA,CAAA0O,OAAAxO,EAAAyO,CAAA,EAAAnO,EAASiO,EAAAnC,gBAAA,CAAiB,CAAA,CAAA,EAC9ElL,EAAA,IAAAuO,GAAA,EAAA,EAAA,cAAA,EAAA,EAKC,IAAAC,GAAA,EAAA,EAAA,OAAA,EAAA,EAIHlP,EAAA,EACAX,EAAA,IAAA,OAAA,EAAA,EACEH,EAAA,GAAA,qBACFc,EAAA,EAAO,EACH,EACF,EACG,EACU,EACL,sBAtSdC,EAAA,CAAA,EAAAE,EAAA,oBAAAf,EAAA,EAAA,GAAA,aAAA,CAAA,EAA+C,kBAAA,WAAA,EAChB,aAAA,EAAA,EACZ,yBAAAA,EAAA,EAAA,GAAA,2BAAA,CAAA,EAKNa,EAAA,CAAA,EAAAE,EAAA,WAAA,IAAA,EAIfF,EAAA,EAAAE,EAAA,SAAA,EAAA,EAGUF,EAAA,CAAA,EAAAE,EAAA,cAAA4N,EAAA1G,QAAA,EACFpH,EAAA,EAAAE,EAAA,YAAA4N,EAAA1G,QAAA,EAOEpH,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,mDAAA,EAAA,GAAA,EAGIa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,wDAAA,EAAA,GAAA,EAKJa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,mDAAA,EAAA,GAAA,EAIMa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,qDAAA,EAAA,GAAA,EAEFa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,qDAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,8CAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,+CAAA,EAAA,GAAA,EAKJa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,mDAAA,EAAA,GAAA,EAWFa,EAAA,CAAA,EAAAqB,EAAA,cAAAyM,EAAA7H,cAAA,EADA/F,EAAA,SAAA,MAAA,EAQCF,EAAA,CAAA,EAAAE,EAAA,OAAA,CAAAP,EAAAuP,KAAA,EAKSlP,EAAA,EAAAE,EAAA,OAAA4N,EAAA9G,gBAAAnF,SAAA,UAAA,CAAA,EAIkC7B,EAAA,EAAAE,EAAA,OAAA4N,EAAAxJ,cAAA,EACtBtE,EAAA,EAAAE,EAAA,OAAA4N,EAAAvJ,oBAAA,EAGUvE,EAAA,EAAAE,EAAA,UAAA4N,EAAAtJ,mBAAA,EAyBhCxE,EAAA,CAAA,EAAAE,EAAA,YAAA4N,EAAAtJ,qBAAA,KAAA,KAAAsJ,EAAAtJ,oBAAApC,QAAA,CAAA,EAEApC,EAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,2BAAA,EAAA,GAAA,EAKEa,EAAA,CAAA,EAAAE,EAAA,cAAA4N,EAAAnM,YAAA,EACF3B,EAAA,EAAAE,EAAA,YAAA4N,EAAAnM,YAAA,EAKK3B,EAAA,CAAA,EAAAE,EAAA,OAAAf,EAAA,GAAA,GAAA2O,EAAA5H,aAAA,CAAA,EA+DWlG,EAAA,CAAA,EAAAqB,EAAA,QAAAyM,EAAA7L,GAAAgJ,IAAA,EAChBjL,EAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,uCAAA,EAAA,GAAA,EAKAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,2BAAA,EAAA,GAAA,EAGAa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,2BAAA,EAAA,GAAA,EAWFa,EAAA,CAAA,EAAAd,EAAA,IAAA4O,EAAAnI,uBAAA,GAAA,EAEE3F,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,kBAAA,EAAA,GAAA,EAEFa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,qDAAA,EAAA,GAAA,EAMIa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,wCAAA,EAAA,GAAA,EAEaa,EAAA,CAAA,EAAAa,EAAAiN,EAAA5F,WAAA,EAMblI,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,GAAA,GAAA,4CAAA,EAAA,GAAA,EAEaa,EAAA,CAAA,EAAAa,EAAAiN,EAAA1E,YAAA,EAGXpJ,EAAA,CAAA,EAAAE,EAAA,OAAA4N,EAAAzL,eAAAyL,EAAA7L,GAAAgJ,IAAA,EAW2BjL,EAAA,CAAA,EAAAmP,GAAA,UAAArB,EAAAhJ,WAAA,EAC7B9E,EAAA,EAAAd,EAAA,IAAAC,EAAA,IAAA,GAAA,4CAAA,EAAA,GAAA,EAMEa,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,IAAA,GAAA,wDAAA,EAAA,GAAA,EAEMa,EAAA,CAAA,EAAAE,EAAA,OAAA,CAAA4N,EAAA3K,sBAAA,EAKFnD,EAAA,EAAAE,EAAA,OAAA4N,EAAA3K,sBAAA,EAoBFnD,EAAA,EAAAE,EAAA,OAAA4N,EAAA1K,kBAAA,EAMRpD,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,IAAA,GAAA,2BAAA,EAAA,GAAA,EAGkFa,EAAA,CAAA,EAAAE,EAAA,WAAA4N,EAAApJ,OAAA,EAG7E1E,EAAA,EAAAE,EAAA,OAAA4N,EAAApJ,OAAA,EAII1E,EAAA,EAAAE,EAAA,OAAA,CAAA4N,EAAApJ,OAAA,EAKP1E,EAAA,CAAA,EAAAd,EAAA,IAAAC,EAAA,IAAA,GAAA,8CAAA,EAAA,GAAA;wHDxQR,IAAOqE,EAAP4L,SAAO5L,CAAuB,GAAA,qCGC5B6L,EAAA,EAAA,aAAA,EAAA,EAIEC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAG,gCAAA,CAAiC,CAAA,CAAA,EAE1CC,EAAA,CAAA,mBACAR,EAAA,EAAA,SAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAS,QANTC,EAAA,YAAA,EAAA,EAGAC,EAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,6DAAA,EAAA,GAAA,EAEEF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,uDAAA,EAAA,GAAA,0BAOJb,EAAA,EAAA,MAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,SADEE,EAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,yDAAA,EAAA,GAAA,6BAUIb,EAAA,EAAA,MAAA,EAAA,EAA4D,EAAA,MAAA,EAAA,EACjCQ,EAAA,CAAA,EAAgBC,EAAA,EACzCT,EAAA,EAAA,WAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAW,0BAHcE,EAAA,CAAA,EAAAC,EAAA,KAAAE,EAAAC,KAAA,EAAA,EAEvBJ,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,oCAAA,EAAA,GAAA,6BAJNG,EAAA,CAAA,EACEC,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,4BAAoCP,EAAA,EAAAD,EAAA,UAAAS,EAAA,CAAA,CAAA,6BAQpCnB,EAAA,EAAA,MAAA,EAAA,EAA4D,EAAA,MAAA,EAAA,EACjCQ,EAAA,CAAA,EAAgBC,EAAA,EACzCT,EAAA,EAAA,WAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAW,0BAHcE,EAAA,CAAA,EAAAC,EAAA,KAAAQ,EAAAL,KAAA,EAAA,EAEvBJ,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,qCAAA,EAAA,GAAA,6BAJNG,EAAA,CAAA,EACEC,EAAA,EAAAI,GAAA,EAAA,EAAA,MAAA,EAAA,4BAAoCV,EAAA,EAAAD,EAAA,UAAAS,EAAA,CAAA,CAAA,6BAfxCnB,EAAA,EAAA,WAAA,EAAA,EAIC,EAAA,IAAA,EACKQ,EAAA,EAAA,YAAA,EAAUC,EAAA,EACdQ,EAAA,EAAAK,GAAA,EAAA,EAAA,eAAA,EAAA,EAAqD,EAAAC,GAAA,EAAA,EAAA,eAAA,EAAA,EAgBvDd,EAAA,uBAhBiBE,EAAA,CAAA,EAAAD,EAAA,OAAAS,EAAA,CAAA,EAAAK,OAAA,CAAA,EAQAb,EAAA,EAAAD,EAAA,OAAAS,EAAA,CAAA,EAAAK,OAAA,CAAA,6BAfnBxB,EAAA,EAAA,MAAA,EAAA,EACEiB,EAAA,EAAAQ,GAAA,EAAA,EAAA,WAAA,EAAA,EAuBFhB,EAAA,qBApBKE,EAAA,EAAAD,EAAA,OAAAS,EAAA,CAAA,EAAAK,OAAA,GAAAL,EAAA,CAAA,EAAAK,OAAA,CAAA,6BA2BCxB,EAAA,EAAA,MAAA,EAAA,EAA4E,EAAA,MAAA,EAAA,EACjDQ,EAAA,CAAA,EAAmBC,EAAA,EAC5CT,EAAA,EAAA,WAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAW,4BAHcE,EAAA,CAAA,EAAAC,EAAA,KAAAc,EAAAC,MAAA,EAAA,EAEvBhB,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,mCAAA,EAAA,GAAA,6BAGJb,EAAA,EAAA,MAAA,EAAA,EAA6E,EAAA,MAAA,EAAA,EAClDQ,EAAA,CAAA,EAAmBC,EAAA,EAC5CT,EAAA,EAAA,WAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAW,4BAHcE,EAAA,CAAA,EAAAC,EAAA,KAAAc,EAAAC,MAAA,EAAA,EAEvBhB,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,oCAAA,EAAA,GAAA,6BAGJb,EAAA,EAAA,MAAA,EAAA,EAA4E,EAAA,MAAA,EAAA,EACjDQ,EAAA,CAAA,EAAmBC,EAAA,EAC5CT,EAAA,EAAA,WAAA,EAAA,EACEQ,EAAA,CAAA,mBACFC,EAAA,EAAW,4BAHcE,EAAA,CAAA,EAAAC,EAAA,KAAAc,EAAAC,MAAA,EAAA,EAEvBhB,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,wCAAA,EAAA,GAAA,6BAhBNG,EAAA,CAAA,EACEC,EAAA,EAAAW,GAAA,EAAA,EAAA,MAAA,EAAA,EAA4E,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAMC,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,qCANxDnB,EAAA,EAAAD,EAAA,OAAAgB,EAAAK,YAAA3B,EAAA4B,aAAAC,cAAA,EAMAtB,EAAA,EAAAD,EAAA,OAAAgB,EAAAK,YAAA3B,EAAA4B,aAAAE,eAAA,EAMAvB,EAAA,EAAAD,EAAA,OAAAgB,EAAAK,YAAA3B,EAAA4B,aAAAG,cAAA,6BAjBzBnC,EAAA,EAAA,WAAA,EAAA,EAA8E,EAAA,IAAA,EAE1EQ,EAAA,CAAA,mBACFC,EAAA,EACAQ,EAAA,EAAAmB,GAAA,EAAA,EAAA,eAAA,EAAA,EAoBF3B,EAAA,uBAtBIE,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,EAAA,0CAAA,EAAA,GAAA,EAE8BF,EAAA,CAAA,EAAAD,EAAA,UAAA2B,CAAA,6BALpCrC,EAAA,EAAA,MAAA,EAAA,EACEiB,EAAA,EAAAqB,GAAA,EAAA,EAAA,WAAA,EAAA,EAyBF7B,EAAA,kBAzB4DE,EAAA,EAAAD,EAAA,OAAAN,EAAAmC,YAAA,GDjDpE,IAAaC,IAAwB,IAAA,CAA/B,IAAOA,EAAP,MAAOA,CAAwB,CAenCC,YACUC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAA+B,CAN/B,KAAAN,uBAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,gBAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,iBAAAA,EACA,KAAAC,mBAAAA,EACA,KAAAC,cAAAA,EArBM,KAAAhB,aAAeA,GAG/B,KAAAiB,kBAAoB,GACpB,KAAAV,aAAe,GACf,KAAAW,WAAa,GAKb,KAAAC,gCAAkC,EAY/B,CAEHC,UAAQ,CAGN,GAAI,CAAC,KAAKV,uBAAuBW,iBAAgB,EAAI,CACnD,KAAKV,OAAOW,SAAS,CAAC,WAAW,CAAC,EAClC,MACF,CAEA,KAAKZ,uBAAuBa,gBAAe,EAE3C,KAAKC,qBAAuBC,EAAc,CACxC,KAAKX,iBAAiBY,OAAO,kDAAkD,EAC/E,KAAKhB,uBAAuBiB,oCAAmC,CAAE,CAClE,EAAEC,KACDC,EAAI,CAAC,CAACC,EAAoBC,CAAc,IAC/BD,EAAmBE,QAAQ,WAAYD,CAAc,CAC7D,CAAC,EAGJ,KAAKE,qBAAuB,KAAKvB,uBAAuBwB,sBAAsBN,KAC5EO,EAAKC,GAAU,CACTA,EAAO5C,OAAS,GAClB,KAAKe,aAAe,GACpB,KAAKU,kBAAoB,KAEzB,KAAKV,aAAe,GACf,KAAKW,aACR,KAAKD,kBAAoB,IAG/B,CAAC,CAAC,EAEJ,KAAKoB,kBAAoBZ,EAAc,CACrC,KAAKf,uBAAuB4B,gBAC5B,KAAK5B,uBAAuB6B,iBAAiB,CAC9C,EAAEX,KACDO,EAAI,CAAC,CAACK,EAAMC,CAAM,IAAK,CACjBD,EAAKhD,OAAS,GAAKiD,EAAOjD,OAAS,GACrC,KAAK0B,WAAa,GAClB,KAAKD,kBAAoB,KAEzB,KAAKC,WAAa,GACb,KAAKX,eACR,KAAKU,kBAAoB,IAG/B,CAAC,CAAC,EAGJ,KAAKyB,+BAAiC,KAAK1B,cAAc2B,QAAQf,KAC/DgB,EAAWC,GACT,KAAK9B,mBAAmB+B,iBAAiBD,EAAOE,UAAW,GAAI,mCAAmC,CAAC,CACpG,CAEL,CAEAC,aAAW,CACL,KAAKC,mBACP,KAAKA,kBAAkBC,YAAW,CAEtC,CAEAC,cAAY,CACV,GAAI,KAAKlC,kBAAmB,CAC1B,KAAKL,gBAAgBwC,WAAW,KAAKtC,iBAAiBuC,QAAQ,gDAAgD,CAAC,EAC/G,MACF,CACA,KAAKJ,kBAAoBxB,EAAc,CACrC,KAAKX,iBAAiBY,OAAO,8DAA8D,EAC3F,KAAK4B,oBAAmB,EACxB,KAAK5C,uBAAuBiB,oCAAmC,CAAE,CAClE,EACEC,KACCgB,EAAU,CAAC,CAACW,EAAqBC,EAAaC,CAAY,IACjD,KAAK5C,cAAc6C,QACxB,oDACAH,EAAoBvB,QAAQ,kBAAmBwB,CAAW,EAAExB,QAAQ,WAAYyB,CAAY,EAC5F,wDACA,kDAAkD,CAErD,EACDE,EAAQC,GAAaA,IAAa,KAAK,EACvChB,EAAWiB,GAAM,KAAKnD,uBAAuBoD,cAAa,CAAE,CAAC,EAE9DC,UAAU,CACTC,KAAMA,IAAK,CACT,KAAKpD,gBAAgBqD,aAAa,KAAKnD,iBAAiBuC,QAAQ,oCAAoC,CAAC,EACrG,KAAK1C,OAAOW,SAAS,CAAC,WAAW,CAAC,CACpC,EACA4C,MAAOA,IAAK,CACV,KAAKtD,gBAAgBwC,WAAW,KAAKtC,iBAAiBuC,QAAQ,kCAAkC,CAAC,CACnG,EACD,CACL,CAEAc,4BAA4BC,EAAc,CACxC,KAAK1D,uBAAuB2D,mBAAoBD,EAA+BE,OAAO,CACxF,CAEQhB,qBAAmB,CACzB,OAAI,KAAK/C,cAAgB,KAAKW,WACrB,KAAKJ,iBAAiBY,OAAO,yDAAyD,EAE3F,KAAKR,WACA,KAAKJ,iBAAiBY,OAAO,6CAA6C,EAE/E,KAAKnB,aACA,KAAKO,iBAAiBY,OAAO,wCAAwC,EAEvE6C,EAAG,EAAE,CACd,CAEOhG,iCAA+B,CACpC,KAAK4C,gCAAkC,EACzC,yCA3IWX,GAAwBgE,EAAAC,EAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAAG,CAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,CAAA,EAAAL,EAAAM,CAAA,EAAAN,EAAAO,EAAA,CAAA,CAAA,sBAAxBvE,EAAwBwE,UAAA,CAAA,CAAA,uBAAA,CAAA,EAAAC,MAAA,GAAAC,KAAA,GAAAC,OAAA,CAAA,CAAA,EAAA,oBAAA,iBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,aAAA,WAAA,EAAA,UAAA,EAAA,CAAA,mBAAA,QAAA,iBAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,OAAA,OAAA,EAAA,YAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,UAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,GAAA,QAAA,UAAA,EAAA,QAAA,UAAA,EAAA,CAAA,OAAA,OAAA,EAAA,QAAA,WAAA,EAAA,CAAA,qBAAA,GAAA,QAAA,UAAA,aAAA,uCAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,aAAA,WAAA,QAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,WAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,QAAA,OAAA,EAAA,CAAA,QAAA,KAAA,EAAA,CAAA,EAAA,QAAA,SAAA,EAAA,CAAA,QAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,QAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,ICzBrCrH,EAAA,EAAA,WAAA,EAAW,EAAA,mBAAA,EACU,EAAA,iBAAA,EAEfQ,EAAA,CAAA,mBACFC,EAAA,EACAT,EAAA,EAAA,eAAA,EACEuH,EAAA,EAAA,uBAAA,CAAA,mBAIF9G,EAAA,EAAgB,EAElBT,EAAA,EAAA,oBAAA,CAAA,EAAqC,EAAA,MAAA,CAAA,EACJ,GAAA,WAAA,CAAA,EACoB,GAAA,gBAAA,CAAA,EACuC,GAAA,UAAA,CAAA,oBAElFuH,EAAA,GAAA,4BAAA,EACF9G,EAAA,EACAT,EAAA,GAAA,UAAA,CAAA,oBACEuH,EAAA,GAAA,+BAAA,EACAvH,EAAA,GAAA,MAAA,CAAA,EAAyC,GAAA,GAAA,EACpCQ,EAAA,EAAA,oBAAoEC,EAAA,EACvET,EAAA,GAAA,mBAAA,CAAA,EAAkBC,EAAA,SAAA,SAAAuH,EAAA,CAAA,OAAUF,EAAAnB,4BAAAqB,CAAA,CAAmC,CAAA,EAAE/G,EAAA,EACjET,EAAA,GAAA,GAAA,EAAGQ,EAAA,EAAA,oBAAmEC,EAAA,EAAI,EACtE,EACE,EACI,EAElBT,EAAA,GAAA,MAAA,CAAA,EACEiB,EAAA,GAAAwG,GAAA,EAAA,EAAA,aAAA,CAAA,gBAYAzH,EAAA,GAAA,IAAA,EACEQ,EAAA,EAAA,oBACFC,EAAA,EACAQ,EAAA,GAAAyG,GAAA,EAAA,EAAA,MAAA,EAAA,EAA2D,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,gBA4B3D1G,EAAA,GAAA2G,GAAA,EAAA,EAAA,MAAA,EAAA,gBA2BA5H,EAAA,GAAA,SAAA,EAAA,EAAyEC,EAAA,QAAA,UAAA,CAAA,OAASqH,EAAAnC,aAAA,CAAc,CAAA,EAC9F3E,EAAA,EAAA,gBACFC,EAAA,EAAS,EACL,EACF,EACY,SAtGhBE,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,EAAA,GAAA,iDAAA,EAAA,GAAA,EAIEF,EAAA,CAAA,EAAAD,EAAA,oBAAAG,EAAA,EAAA,GAAA,aAAA,CAAA,EAA+C,kBAAA,WAAA,EAKlCF,EAAA,CAAA,EAAAD,EAAA,WAAA,IAAA,EAGEC,EAAA,CAAA,EAAAD,EAAA,gBAAA,EAAA,EACJC,EAAA,EAAAD,EAAA,QAAAG,EAAA,GAAA,GAAA,uCAAA,CAAA,EAGAF,EAAA,CAAA,EAAAD,EAAA,QAAAG,EAAA,GAAA,GAAA,0CAAA,CAAA,EAGFF,EAAA,CAAA,EAAAkH,EAAAhH,EAAA,GAAA,GAAA,kDAAA,CAAA,EAEAF,EAAA,CAAA,EAAAkH,EAAAhH,EAAA,GAAA,GAAA,iDAAA,CAAA,EAQNF,EAAA,CAAA,EAAAD,EAAA,OAAA4G,EAAAnE,iCAAAtC,EAAA,GAAA,GAAAyG,EAAA5C,8BAAA,CAAA,EAWD/D,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,GAAA,GAAA,6CAAA,EAAA,GAAA,EAEIF,EAAA,CAAA,EAAAD,EAAA,OAAA4G,EAAArE,iBAAA,EAGgBtC,EAAA,EAAAD,EAAA,OAAAG,EAAA,GAAA,GAAAyG,EAAAjD,iBAAA,CAAA,EAyBA1D,EAAA,CAAA,EAAAD,EAAA,OAAAG,EAAA,GAAA,GAAAyG,EAAArD,oBAAA,CAAA,EA2BoBtD,EAAA,CAAA,EAAAD,EAAA,WAAA4G,EAAArE,iBAAA,EACxCtC,EAAA,EAAAC,EAAA,IAAAC,EAAA,GAAA,GAAAyG,EAAA9D,oBAAA,EAAA,GAAA;yHD5EJ,IAAOhB,EAAPsF,SAAOtF,CAAwB,GAAA", "names": ["downloadFile", "file", "filename", "url", "window", "URL", "createObjectURL", "link", "document", "createElement", "setAttribute", "body", "appendChild", "href", "download", "click", "revokeObjectURL", "BulkUserImportService", "constructor", "snackbarService", "bulkProcessor", "http", "partnerService", "userListSdkService", "csv", "uploadCsv", "fileContent", "generateUploadSignedUrl", "file", "name", "pipe", "switchMap", "signedUrl", "put", "headers", "map", "setFileLocation", "catchError", "err", "throwError", "uuid", "match", "fileLocation", "Error", "createUserList", "listName", "listId", "partnerId", "startUserImport", "numUsers", "updateUsers", "numUsersText", "initiateImportUsers", "subscribe", "successSnack", "listUserLists", "pageSize", "expand", "resp", "pagingMetadata", "hasMore", "nextCursor", "EMPTY", "userLists", "userList", "r", "push", "userListName", "reduce", "acc", "curr", "validateCSV", "validateImportUserFile", "\u0275\u0275inject", "SnackbarService", "BulkProcessorSdkService", "HttpClient", "PartnerService", "UserListSdkService", "factory", "\u0275fac", "providedIn", "_BulkUserImportService", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "removableInput_r4", "\u0275\u0275reference", "\u0275\u0275resetView", "clearInput", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275element", "\u0275\u0275property", "_r5", "i_r6", "index", "showMoreOrLess", "_r7", "fileProcessingErrorOverflow", "\u0275\u0275template", "BulkUserImportComponent_div_51_span_5_Template", "BulkUserImportComponent_div_51_span_6_Template", "BulkUserImportComponent_div_51_div_7_Template", "\u0275\u0275textInterpolate", "fileProcessingErrorRows", "err_r8", "fileProcessingErrorOverflowShowHide", "list_r12", "_r11", "$implicit", "setListNameOption", "\u0275\u0275propertyInterpolate", "userListName", "BulkUserImportComponent_span_60_span_1_span_5_mat_option_8_Template", "BulkUserImportComponent_span_60_span_1_span_5_mat_error_10_Template", "userLists_r13", "filteredUserListList$", "userListForm", "controls", "hasError", "_r10", "useExistingList", "BulkUserImportComponent_span_60_span_1_span_5_Template", "ct", "USE_EXISTING_LIST", "lists_r14", "length", "listBehavior", "_r15", "setListName", "BulkUserImportComponent_span_60_span_6_mat_error_3_Template", "BulkUserImportComponent_span_60_span_6_mat_error_4_Template", "BulkUserImportComponent_span_60_span_1_Template", "_r9", "createNewUserList", "BulkUserImportComponent_span_60_span_6_Template", "CREATE_NEW_LIST", "_r16", "toggleUpdateUsersDetails", "_r17", "BulkUserImportComponent_div_113_a_11_Template", "showUpdateUsersDetails", "importErrorMessage", "MAX_USERS", "MAX_VMF_USERS", "CreationType", "BulkUserImportComponent", "constructor", "partnerId$", "marketId$", "router", "formBuilder", "bulkUserImportService", "vConfigService", "csvParser", "route", "partnerService", "feature", "translate", "snowplowService", "fileProcessing", "fileProcessingErrors", "fileProcessingError", "fileProcessingErrorRowCount", "loading", "csvUserImportTotal", "csvErrorRows", "vbcConfigKey", "updateUsers", "userListCount", "isVMF", "subscriptions", "ngOnInit", "createFormControls", "push", "pipe", "switchMap", "partnerId", "getConfigurations", "map", "config", "userUploadInstructions", "instant", "businessCenterName", "vbc_product_name", "shareReplay", "subscribe", "selectFileText", "userListList$", "listUserLists", "share", "userFilter$", "get", "valueChanges", "startWith", "combineLatest", "userLists", "searchTerm", "filter", "userList", "toLowerCase", "includes", "fileFormControl", "UntypedFormControl", "Validators", "required", "fileForm", "group", "file", "fileHasErrors", "createNewList", "selectList", "fileOnChange", "event", "target", "files", "resetFileProcessingErrors", "fileReader", "FileReader", "readAsText", "csvFileName", "name", "onload", "fileContent", "result", "toString", "parseFileContent", "uploadCsv", "validateCSV", "next", "validationErrors", "surfaceProcessingErrors", "goToUserListStep", "error", "parsedContent", "parse", "skipEmptyLines", "data", "rowTotalText", "numUsers", "maxRows", "errors", "split", "indexOf", "rows", "substr", "replace", "occurrences", "join", "slice", "mainString", "subString", "n", "pos", "step", "input", "value", "setValidators", "clearAsyncValidators", "clearValidators", "updateValueAndValidity", "onlySelf", "setValue", "setAsyncValidators", "noWhitespaceValidator", "clearUserListSelect", "skipCreateUserLists", "SKIP", "markAsTouched", "pageStepper", "goToFinalStep", "downloadTemplate", "csvBlob", "Blob", "BULK_USER_IMPORT_CSV", "type", "downloadFile", "startListImport", "listId", "uuidv4", "errorMessage", "createUserList", "listCreated", "startUserImport", "uploadSuccess", "userListId", "navigateToManageUsers", "navigate", "navigateToUserLists", "control", "trim", "of", "whitespace", "isUserInput", "ngOnDestroy", "forEach", "s", "unsubscribe", "\u0275\u0275directiveInject", "Router", "UntypedFormBuilder", "BulkUserImportService", "VConfigService", "Papa", "ActivatedRoute", "PartnerService", "FeatureFlagService", "TranslateService", "ProductAnalyticsService", "selectors", "viewQuery", "rf", "ctx", "i0", "_r1", "BulkUserImportComponent_ng_template_13_Template", "BulkUserImportComponent_button_47_Template", "BulkUserImportComponent_mat_error_48_Template", "BulkUserImportComponent_mat_spinner_49_Template", "BulkUserImportComponent_div_50_Template", "BulkUserImportComponent_div_51_Template", "BulkUserImportComponent_ng_template_58_Template", "BulkUserImportComponent_span_60_Template", "BulkUserImportComponent_ng_template_73_Template", "BulkUserImportComponent_div_101_Template", "\u0275\u0275twoWayListener", "\u0275\u0275twoWayBindingSet", "BulkUserImportComponent_a_112_Template", "BulkUserImportComponent_div_113_Template", "BulkUserImportComponent_mat_error_114_Template", "BulkUserImportComponent_mat_spinner_121_Template", "BulkUserImportComponent_span_122_Template", "empty", "\u0275\u0275twoWayProperty", "_BulkUserImportComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "defaultNotificationPromoteClose", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "tab_r3", "name", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "UserBulkActionsComponent_div_33_mat_card_1_ng_container_3_div_1_Template", "tabAccessChanges_r4", "tab_r5", "UserBulkActionsComponent_div_33_mat_card_1_ng_container_4_div_1_Template", "UserBulkActionsComponent_div_33_mat_card_1_ng_container_3_Template", "UserBulkActionsComponent_div_33_mat_card_1_ng_container_4_Template", "length", "UserBulkActionsComponent_div_33_mat_card_1_Template", "notif_r6", "title", "UserBulkActionsComponent_div_35_mat_card_1_ng_container_4_div_1_Template", "UserBulkActionsComponent_div_35_mat_card_1_ng_container_4_div_2_Template", "UserBulkActionsComponent_div_35_mat_card_1_ng_container_4_div_3_Template", "valueFlag", "LegacyStatus", "STATUS_ENABLED", "STATUS_DISABLED", "STATUS_DEFAULT", "UserBulkActionsComponent_div_35_mat_card_1_ng_container_4_Template", "notifcationChanges_r7", "UserBulkActionsComponent_div_35_mat_card_1_Template", "notifChanges", "UserBulkActionsComponent", "constructor", "userBulkActionsService", "router", "snackbarService", "dialogService", "translateService", "featureFlagService", "configService", "noChangesSelected", "tabChanges", "showDefaultNotificationPromotes", "ngOnInit", "areUsersSelected", "navigate", "resetSelections", "applyChangesBtnText$", "combineLatest", "stream", "getAmountOfUsersSelectedStringAsync", "pipe", "map", "applyChangesString", "numUsersString", "replace", "notificationChanges$", "notificationSettings$", "tap", "notifs", "tabAccessChanges$", "tabsGiveAccess$", "tabsRemoveAccess$", "give", "remove", "newDefaultNotificationEnabled$", "config$", "switchMap", "config", "checkFeatureFlag", "partnerId", "ngOnDestroy", "dialogListenerSub", "unsubscribe", "applyChanges", "errorSnack", "instant", "getChangesTextAsync", "previousChangesText", "changesText", "numUsersText", "confirm", "filter", "response", "_", "submitChanges", "subscribe", "next", "successSnack", "error", "updateBulkNotificationScope", "event", "setBulkUpdateScope", "checked", "of", "\u0275\u0275directiveInject", "UserBulkActionsService", "Router", "SnackbarService", "VaDialogService", "TranslateService", "FeatureFlagService", "AppConfigService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "$event", "UserBulkActionsComponent_glxy_alert_27_Template", "UserBulkActionsComponent_div_32_Template", "UserBulkActionsComponent_div_33_Template", "UserBulkActionsComponent_div_35_Template", "\u0275\u0275textInterpolate", "_UserBulkActionsComponent"] }