{ "version": 3, "sources": ["libs/users/src/lib/users-service-interface.ts", "libs/users/src/lib/assets/en_devel.json", "libs/users/src/lib/components/create-user/create-user-form.component.ts", "libs/users/src/lib/components/create-user/create-user-form.component.html", "libs/users/src/lib/user-full-name.pipe.ts", "libs/users/src/lib/components/add-user/add-user-dialog.component.ts", "libs/users/src/lib/components/add-user/add-user-dialog.component.html", "libs/users/src/lib/users.module.ts", "libs/work-order/src/lib/assets/i18n/en_devel.json", "libs/work-order/src/lib/work-order-landing-page/interfaces.ts", "libs/work-order/src/lib/utils.ts", "libs/work-order/src/lib/status-badge/status-badge.component.ts", "libs/work-order/src/lib/status-badge/status-badge.component.html", "libs/work-order/src/lib/work-order-sales-order-summary/work-order-sales-order-summary.component.ts", "libs/work-order/src/lib/work-order-sales-order-summary/work-order-sales-order-summary.component.html", "libs/work-order/src/lib/work-order-landing-page/pipes/account-city.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/account-phone.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/digital-agent-name.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/get-account-info.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/get-product-info.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/constants.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/project-status-option.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/display-fulfillment-order-status.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pipes/fulfillment-order-pipes.module.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approval-approve/pending-activation-approval-dialogue.component.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approval-approve/pending-activation-approval-dialogue.component.html", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approval-decline/pending-approval-decline.component.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approval-decline/pending-approval-decline.component.html", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approvals.interface.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approvals-card/is-activation-pending.pipe.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approvals-card/pending-approvals-card.component.ts", "libs/work-order/src/lib/work-order-landing-page/pending-approvals/pending-approvals-card/pending-approvals-card.component.html", "libs/work-order/src/lib/work-order-form/form-conflict-dialog/form-conflict-dialog.component.ts", "libs/work-order/src/lib/work-order-form/form-conflict-dialog/form-conflict-dialog.component.html", "libs/work-order/src/lib/work-order-form/form-error-dialog/form-error-dialog.component.ts", "libs/work-order/src/lib/work-order-form/form-error-dialog/form-error-dialog.component.html", "libs/work-order/src/lib/work-order-form/form-confirm-dialog/form-confirm-dialog.component.ts", "libs/work-order/src/lib/work-order-form/form-confirm-dialog/form-confirm-dialog.component.html", "libs/work-order/src/lib/send-email-dialog/send-email-dialog.component.ts", "libs/work-order/src/lib/send-email-dialog/send-email-dialog.component.html", "libs/work-order/src/lib/work-order.module.ts", "libs/work-order/src/lib/work-order-form-config.service.ts", "libs/work-order/src/lib/work-order-form/work-order-form.service.ts", "libs/work-order/src/lib/work-order-form/work-order-form.component.ts", "libs/work-order/src/lib/work-order-form/work-order-form.component.html", "libs/work-order/src/lib/work-order-details/work-orders-unsaved-changes.guard.ts", "libs/work-order/src/lib/work-order-checklist/work-order-checklist.component.ts", "libs/work-order/src/lib/work-order-checklist/work-order-checklist.component.html", "libs/work-order/src/lib/work-order-context/work-order-context.component.ts", "libs/work-order/src/lib/work-order-context/work-order-context.component.html", "libs/work-order/src/lib/work-order-details/work-order-unsaved-changes-dialog/work-order-unsaved-changes-dialog.component.ts", "libs/work-order/src/lib/work-order-details/work-order-unsaved-changes-dialog/work-order-unsaved-changes-dialog.component.html", "libs/work-order/src/lib/work-order-details/work-order-details.component.ts", "libs/work-order/src/lib/work-order-details/work-order-details.component.html", "libs/work-order/src/lib/work-order-sales-order-summary/work-order-sales-order-summary.service.ts"], "sourcesContent": ["import { Observable } from 'rxjs';\nimport { InjectionToken } from '@angular/core';\n\nexport const UsersServiceInterfaceToken: InjectionToken =\n new InjectionToken('UsersServiceInterface');\n\nexport interface UserOptions {\n greetingName?: string;\n sendWelcomeEmail: boolean;\n locale?: string;\n phone?: string;\n welcomeMessage?: string;\n accountGroupId: string;\n partnerId: string;\n}\n\nexport interface User {\n email: string;\n // This is in the format UID-XXXX\n userId: string;\n // This is in the format U-XXXX\n unifiedId: string;\n phone?: string;\n firstName?: string;\n lastName?: string;\n fullName?: string;\n}\n\nexport interface UsersServiceInterface {\n users$: Observable;\n hasMoreResults$: Observable;\n createSMBUser(user: User, userOptions: UserOptions): Observable;\n search(query: string): void;\n loadMore(): void;\n addUsersToAccount(partnerId: string, accountGroupId: string, userIds: string[]): Observable;\n}\n", "{\n \"CREATE_USER\": {\n \"FIRST_NAME\": \"First name\",\n \"LAST_NAME\": \"Last name\",\n \"EMAIL\": \"Email\",\n \"ERROR_SNACK\": \"Error creating user\",\n \"RATE_LIMIT_SNACK\": \"Limit has been reached for business users\",\n \"CREATE_USER_SUCCESS\": \"User successfully created\",\n \"INVALID_FORM\": \"Invalid user form. Verify the information provided\"\n },\n \"ADD_USER_DIALOG_LIBRARY\": {\n \"ADD_USERS_TO_ACCOUNT\": \"Add users to account\",\n \"ADD_USER_TO_BRAND\": \"Add user to group\",\n \"ENTIRE_BRAND\": \"Entire group\",\n \"SELECT_SUBGROUPS\": \"Select sub-groups\",\n \"NONE_FOUND\": \"None found\",\n \"CREATE_NEW_USER\": \"Create New User\",\n \"CREATE_USER\": \"Create user\",\n \"ADD_USERS\": \"Add users\",\n \"ADD_EXISTING_USER\": \"Add existing user\",\n \"CANCEL\": \"Cancel\",\n \"CLOSE\": \"Close\"\n }\n}\n", "import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { emailValidator } from '@vendasta/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, take } from 'rxjs';\nimport { UsersServiceInterface, User, UserOptions, UsersServiceInterfaceToken } from '../../users-service-interface';\nimport { catchError } from 'rxjs/operators';\n\n@Component({\n selector: 'users-create-user-form',\n templateUrl: './create-user-form.component.html',\n styleUrls: ['./create-user-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CreateUserFormComponent {\n @Input() accountGroupId = '';\n @Input() partnerId = '';\n @Output() userCreated: EventEmitter = new EventEmitter();\n\n private isCreatingUser$$: BehaviorSubject = new BehaviorSubject(false);\n private isCreatingUser$: Observable = this.isCreatingUser$$.asObservable();\n\n readonly form = new FormGroup({\n first_name: new FormControl(''),\n last_name: new FormControl(''),\n user_email: new FormControl('', [Validators.required, emailValidator]),\n phone: new FormControl(''),\n });\n\n constructor(\n private snackbarService: SnackbarService,\n @Inject(UsersServiceInterfaceToken) private userService: UsersServiceInterface,\n ) {}\n\n public isCreatingUser(): Observable {\n return this.isCreatingUser$;\n }\n\n createUser(): void {\n if (this.form.invalid) {\n this.form.markAsDirty();\n this.snackbarService.openErrorSnack('CREATE_USER.INVALID_FORM');\n return;\n }\n\n this.isCreatingUser$$.next(true);\n\n const user = {\n email: this.form.value.user_email,\n firstName: this.form.value.first_name || '',\n lastName: this.form.value.last_name || '',\n } as User;\n\n const userOptions = {\n partnerId: this.partnerId,\n accountGroupId: this.accountGroupId,\n sendWelcomeEmail: false,\n phone: this.form.value.phone,\n } as UserOptions;\n\n this.userService\n .createSMBUser(user, userOptions)\n .pipe(\n take(1),\n catchError((err) => {\n let errTranslationId = 'CREATE_USER.ERROR_SNACK';\n if (err?.data?.message?.includes('LimitError:')) {\n errTranslationId = 'CREATE_USER.RATE_LIMIT_SNACK';\n }\n this.snackbarService.openErrorSnack(errTranslationId);\n this.isCreatingUser$$.next(false);\n throw err;\n }),\n )\n .subscribe((responseUser) => {\n this.userCreated.emit(responseUser);\n this.snackbarService.openSuccessSnack('CREATE_USER.CREATE_USER_SUCCESS');\n this.isCreatingUser$$.next(false);\n });\n }\n}\n", "
\n \n \n {{ 'CREATE_USER.FIRST_NAME' | translate }}\n \n \n \n\n \n \n {{ 'CREATE_USER.LAST_NAME' | translate }}\n \n \n \n\n \n\n \n \n {{ 'CREATE_USER.EMAIL' | translate }}\n \n \n \n
\n", "import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * A pipe to conditionally display a User's full or partial name.\n */\n@Pipe({ standalone: true, name: 'fullName' })\nexport class UserFullNamePipe implements PipeTransform {\n transform(firstName: string, lastName: string): string {\n if (!firstName && !lastName) {\n return '';\n }\n\n if (firstName) {\n const name = firstName;\n return lastName ? name + ' ' + lastName : name;\n } else {\n //in this case, lastName must be a valid string.\n return lastName;\n }\n }\n}\n", "import { AfterViewInit, Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n Subject,\n Subscription,\n debounceTime,\n take,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { CreateUserFormComponent } from '../create-user/create-user-form.component';\nimport { User, UsersServiceInterface, UsersServiceInterfaceToken } from '../../users-service-interface';\n\nexport enum UserAction {\n ADD = 'add',\n CREATE = 'create',\n}\nexport interface AddUserResponse {\n action: UserAction;\n users: User[];\n}\nexport interface SendEmailDialogData {\n showCreateTab: boolean;\n partnerId: string;\n businessId: string;\n existingUsers: User[];\n}\n\n@Component({\n styleUrls: ['add-user-dialog.component.scss'],\n templateUrl: './add-user-dialog.component.html',\n})\nexport class AddUserDialogComponent implements OnInit, AfterViewInit, OnDestroy {\n subscriptions: Subscription[] = [];\n accountGroupId = '';\n partnerId = '';\n showCreateTab = false;\n\n @ViewChild('createForm')\n createFormComponent!: CreateUserFormComponent;\n\n term$ = new Subject();\n hasMoreResults$!: Observable;\n users$!: Observable;\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n loading$ = this.loading$$.asObservable();\n\n existingUsers: User[] = [];\n selectedUsers: User[] = [];\n addedUsers: User[] = [];\n\n private isLoading$$: BehaviorSubject = new BehaviorSubject(false);\n isLoading$ = this.isLoading$$.asObservable();\n\n private tab$$: ReplaySubject = new ReplaySubject(1);\n tab$ = this.tab$$.asObservable();\n\n private _destroy$$ = new Subject();\n UserAction = UserAction;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: SendEmailDialogData,\n @Inject(UsersServiceInterfaceToken) private userService: UsersServiceInterface,\n ) {\n this.showCreateTab = data?.showCreateTab;\n this.partnerId = data?.partnerId;\n this.accountGroupId = data?.businessId;\n this.existingUsers = data?.existingUsers;\n }\n\n ngOnInit(): void {\n this.tab$$.next(this.showCreateTab ? UserAction.CREATE : UserAction.ADD);\n //Set up initial search.\n this.userService.search('');\n this.subscriptions.push(\n this.term$.pipe(debounceTime(200)).subscribe((x) => {\n this.loading$$.next(true);\n this.userService.search(x);\n }),\n );\n\n this.hasMoreResults$ = this.userService.hasMoreResults$;\n this.users$ = this.userService.users$.pipe(tap(() => this.loading$$.next(false)));\n }\n\n ngAfterViewInit(): void {\n if (this.showCreateTab) {\n this.createFormComponent\n .isCreatingUser()\n .pipe(takeUntil(this._destroy$$))\n .subscribe((isLoading) => this.isLoading$$.next(isLoading));\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n this._destroy$$.next();\n this._destroy$$.complete();\n }\n\n addSelectedUsers(): void {\n this.isLoading$$.next(true);\n const usersToAdd: User[] = [];\n for (const user of this.selectedUsers) {\n if (!this.doesUserExist(user)) {\n usersToAdd.push(user);\n }\n }\n if (usersToAdd.length > 0) {\n this.addedUsers.push(...usersToAdd);\n this.userService\n .addUsersToAccount(\n this.partnerId,\n this.accountGroupId,\n usersToAdd.map((x) => x.userId),\n )\n .subscribe({\n next: () => this.dialogRef.close({ action: UserAction.ADD, users: this.addedUsers }),\n error: () => this.dialogRef.close(),\n complete: () => this.isLoading$$.next(false),\n });\n }\n }\n\n addUserToSelected(event: MatCheckboxChange, user: User): void {\n if (event.checked) {\n this.selectedUsers.push(user);\n } else {\n const index = this.selectedUsers.indexOf(user, 0);\n if (index > -1) {\n this.selectedUsers.splice(index, 1);\n }\n }\n }\n\n doesUserExist(user: User): boolean {\n if (!this.existingUsers) {\n return false;\n }\n return (\n [...this.addedUsers, ...this.existingUsers].filter((existingUser) => existingUser.email === user.email).length > 0\n );\n }\n\n userCreated(user: User): void {\n this.dialogRef.close({ action: UserAction.CREATE, users: [user] });\n }\n\n tabChanged(event: MatTabChangeEvent): void {\n this.tab$$.next(event.index === 0 ? UserAction.CREATE : UserAction.ADD);\n }\n\n createUser(): void {\n this.createFormComponent.createUser();\n }\n\n onSubmit(): void {\n this.tab$.pipe(take(1)).subscribe((tab) => (tab === UserAction.ADD ? this.addSelectedUsers() : this.createUser()));\n }\n\n loadMore(): void {\n this.userService.loadMore();\n }\n}\n", "\n \n
\n
\n
\n
\n
\n {{ user.firstName || '' | fullName : user.lastName || '' }}\n
\n
{{ user.email }}
\n
\n \n
\n
\n
\n \n
\n
\n {{ 'ADD_USER_DIALOG_LIBRARY.NONE_FOUND' | translate }}\n
\n
\n
\n
\n \n
\n
\n\n\n

{{ 'ADD_USER_DIALOG_LIBRARY.ADD_USERS_TO_ACCOUNT' | translate }}

\n
\n \n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n\n\n \n
\n \n {{ 'ADD_USER_DIALOG.CREATE_USER' | translate }}\n \n
\n
\n\n
\n \n\n \n \n \n {{ 'ADD_USER_DIALOG_LIBRARY.ADD_USERS' | translate }}\n \n \n {{ 'ADD_USER_DIALOG_LIBRARY.CREATE_USER' | translate }}\n \n \n \n
\n
\n", "import { NgModule } from '@angular/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from './assets/en_devel.json';\nimport { CreateUserFormComponent } from './components/create-user/create-user-form.component';\nimport { AddUserDialogComponent } from './components/add-user/add-user-dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { UserFullNamePipe } from './user-full-name.pipe';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [AddUserDialogComponent, CreateUserFormComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n UserFullNamePipe,\n GalaxyButtonLoadingIndicatorModule,\n MatButtonModule,\n MatCheckboxModule,\n MatDialogModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatTabsModule,\n VaFilterModule,\n LexiconModule.forChild({\n componentName: 'common/users',\n baseTranslation: baseTranslation,\n }),\n MatInputModule,\n GalaxyInputModule,\n ],\n providers: [],\n exports: [AddUserDialogComponent, CreateUserFormComponent],\n})\nexport class UsersModule {}\n", "{\n \"WORK_ORDER\": {\n \"TITLE\": \"Work Order Form\",\n \"PROJECT\": \"Project\",\n \"SHARE\": \"Share\",\n \"ORDER_FORM\": {\n \"SUBMIT\": \"Send for review\",\n \"SUBMIT_SUCCESS\": \"Successfully updated the answers\",\n \"SUBMIT_ERROR\": \"Error updating the answers\",\n \"ADDITIONAL_INFORMATION\": \"Additional information\",\n \"GET_SUBMISSION_ERROR\": \"There was an error loading latest form submission\",\n \"UNSAVED_CHANGES\": \"You have unsaved changes\",\n \"UNSAVED_WARNING\": \"The changes you've made won't be saved if you leave this page\",\n \"LEAVE\": \"Leave without saving\",\n \"STAY\": \"Continue editing\"\n },\n \"COMMENTS\": {\n \"SUBMIT_SUCCESS\": \"Comment submitted.\",\n \"SUBMIT_ERROR\": \"Error adding comment, please try again later.\"\n }\n },\n \"SALES_ORDER_SUMMARY\": {\n \"TITLE\": \"Work orders\",\n \"TITLE_NON_VENDOR\": \"Fulfillment\",\n \"THERMOMETER_SUFFIX\": \"{{completed}}/{{total}} complete\"\n },\n \"DISPLAYED_STATUS_VALUES\": {\n \"PENDING\": \"Pending\",\n \"ON_HOLD\": \"On hold\",\n \"IN_PROGRESS\": \"In progress\",\n \"IN_REVIEW\": \"In review\",\n \"VENDOR_REVIEW\": \"Vendor review\",\n \"FULFILLED\": \"Fulfilled\",\n \"CANCELED\": \"Canceled\",\n \"DETAILS_NEEDED\": \"Details needed\",\n \"COMPLETED\": \"Completed\"\n },\n \"PERSONA_STATUS_VALUES\": {\n \"PENDING\": {\n \"CP\": \"Action required\",\n \"VENDOR\": \"Waiting on customer\",\n \"SMB\": \"Action required\",\n \"SALES\": \"Action required\"\n },\n \"ACTION_REQUIRED\": {\n \"CP\": \"Pending\",\n \"VENDOR\": \"Action required\",\n \"SMB\": \"Pending\",\n \"SALES\": \"Pending\"\n },\n \"IN_REVIEW\": {\n \"CP\": \"Under review\",\n \"VENDOR\": \"Under review\",\n \"SMB\": \"Under review\",\n \"SALES\": \"Under review\"\n },\n \"IN_PROGRESS\": {\n \"CP\": \"In progress\",\n \"VENDOR\": \"In progress\",\n \"SMB\": \"In progress\",\n \"SALES\": \"In progress\"\n },\n \"FULFILLED\": {\n \"CP\": \"Completed\",\n \"VENDOR\": \"Completed\",\n \"SMB\": \"Completed\",\n \"SALES\": \"Completed\"\n },\n \"CANCELED\": {\n \"CP\": \"Canceled\",\n \"VENDOR\": \"Canceled\",\n \"SMB\": \"Canceled\",\n \"SALES\": \"Canceled\"\n },\n \"ON_HOLD\": {\n \"CP\": \"On hold\",\n \"VENDOR\": \"On hold\",\n \"SMB\": \"On hold\",\n \"SALES\": \"On hold\"\n },\n \"DECLINED\": {\n \"CP\": \"Declined\",\n \"VENDOR\": \"Declined\",\n \"SMB\": \"Declined\",\n \"SALES\": \"Declined\"\n }\n },\n \"CONTEXT\": {\n \"ACCOUNT_DELETED\": \"Account deleted\",\n \"TITLE\": \"Customer\",\n \"PHONE\": \"Phone number\"\n },\n \"LANDING_PAGE\": {\n \"DATE_CARD\": {\n \"TITLE\": \"Dates\",\n \"SUBMITTED\": \"Submitted\",\n \"UPDATED\": \"Updated\"\n },\n \"ORDER_INFO_CARD\": {\n \"TITLE\": \"Order details\",\n \"TITLE_NON_VENDOR\": \"Item details\",\n \"SUBMITTED_BY\": \"Submitted by\",\n \"CANCELLED\": \"Order canceled\",\n \"ACCOUNT\": \"Account\",\n \"PRODUCT\": \"Product\",\n \"PRICING\": \"Pricing\",\n \"FREE\": \"Free\",\n \"SALES_ORDER_ID\": \"Sales Order ID\",\n \"SALES_ORDER_ID_NON_VENDOR\": \"Order ID\",\n \"PRODUCT_STATUS\": \"Product status\",\n \"LOWERCASE_ITEM\": \"item\",\n \"LOWERCASE_ITEMS\": \"items\",\n \"QUANTITY\": \"(Qty {{quantity}})\"\n },\n \"PRODUCT_STATUSES\": {\n \"PENDING_ACTIVATION\": \"Pending Activation\",\n \"ACTIVE\": \"Active\",\n \"REJECTED\": \"Rejected\",\n \"CANCELED\": \"Canceled\",\n \"DEACTIVATED\": \"Deactivated\"\n },\n \"COMMUNICATION_DETAILS\": {\n \"CONTACT\": \"Contact (Customer)\",\n \"SALESPERSON\": \"Salesperson\",\n \"COMMUNICATION_DETAILS\": \"Communication details\"\n },\n \"BANNER\": {\n \"TITLE\": \"Action required\",\n \"SUBTITLE\": \"Fulfillment form responses needed\",\n \"VIEW\": \"View\"\n },\n \"UNDER_REVIEW_BANNER\": {\n \"TITLE\": \"Under review\",\n \"SUBTITLE_MAIN_PAGE\": \"You will be notified if any more details are needed\",\n \"SUBTITLE_FULFILLMENT_PAGE\": \"You wll be notified if any more details are needed before we can start fulfillment\"\n },\n \"FORM_SUBMITTED_BANNER\": {\n \"TITLE\": \"Submitted\",\n \"SUBTITLE\": \"Your responses have been submitted and wil be reviewed shortly\"\n }\n },\n \"FULFILLMENT\": {\n \"TITLE\": \"Fulfillment\"\n },\n \"CHECKLIST\": {\n \"TITLE\": \"Checklist\",\n \"TOOLTIP_TEXT\": \"Click on any of the fields in the checklist to automatically scroll to the corresponding form\"\n },\n \"FORM_V2\": {\n \"SUBMIT_FORM\": \"Submit form\",\n \"SAVE_PROGRESS\": \"Save progress\",\n \"SAVE_CHANGES\": \"Save changes\",\n \"SUBMIT_SUCCESS\": \"Successfully submitted the form. It may take a few minutes for the changes to reflect in the system.\",\n \"SUBMIT_ERROR\": \"There was an error submitting the form\",\n \"SAVE_PROGRESS_SUCCESS\": \"Successfully saved progress\",\n \"SAVE_PROGRESS_ERROR\": \"There was an error saving progress\",\n \"SAVE_PROGRESS_ERROR_INVALID\": \"Cannot save progress as the fields you have entered are invalid.\",\n \"EMPTY_STATE_MESSAGE\": \"There is no fulfillment form associated with this work order\",\n \"RESTORE_ANSWERS\": \"Restore answers\",\n \"CONFLICT_DIALOG\": {\n \"TITLE\": \"Form submission conflicts\",\n \"MESSAGE\": \"Another user has made changes to the form. You must refresh the page before you can submit updates.\",\n \"SUB_MESSAGE\": \"You will have the option to restore your previous answers.\",\n \"CLOSE\": \"Close\",\n \"REFRESH\": \"Refresh\"\n },\n \"SUBMISSION_ERROR_DIALOG\": {\n \"TITLE\": \"Missing Information\",\n \"CONTENT\": \"Some required questions still need responses before you can submit this form.\",\n \"OK\": \"OK\"\n },\n \"SUBMISSION_CONFIRM_DIALOG\": {\n \"TITLE\": \"Submit form?\",\n \"CONTENT\": \"The fulfillment team will be notified once you submit your form.\",\n \"SUBMIT\": \"Submit\",\n \"CANCEL\": \"Cancel\"\n },\n \"LAST_UPDATED\": \"Last updated at {{timestamp}}\"\n },\n \"SLIDING_NOTIFIER\": {\n \"TITLE\": \"Action required on your order\",\n \"CONTENT\": \"order needs more information before fulfillment can begin on\",\n \"ITEMS\": \"items\",\n \"ITEM\": \"item\",\n \"DISMISS\": \"Dismiss\",\n \"VIEW_ORDER\": \"View order\"\n },\n \"PENDING_APPROVALS_CARD\": {\n \"TITLE\": \"Pending approvals\",\n \"DECLINE\": \"Decline\",\n \"APPROVE\": \"Approve\",\n \"CANCEL\": \"Cancel\",\n \"APPROVE_ORDER_DIALOG\": {\n \"TITLE\": \"Approve order\",\n \"CONTENT\": \"This will approve all recurring billing for this product going forward and allow fulfillment to proceed\"\n },\n \"DECLINE_ORDER_DIALOG\": {\n \"TITLE\": \"Decline order\",\n \"CONTENT\": \"This will cancel the order and immediately refund the reseller the initial payment for this product\",\n \"PROVIDE_A_REJECTION_REASON\": \"Provide a rejection reason\"\n },\n \"APPROVE_SUCCESS\": \"Successfully approved pending activation\",\n \"APPROVE_ERROR\": \"There was an error approving the pending activation\",\n \"DECLINE_SUCCESS\": \"Successfully declined pending activation\",\n \"DECLINE_ERROR\": \"There was an error declining the pending activation\"\n },\n \"SHARE\": {\n \"NO_USERS_TOOLTIP\": \"To share fulfillment form, create a user on the account\",\n \"SHARE_FORM\": \"Share form\",\n \"ADD_OR_SELECT_USERS\": \"Add or select users\",\n \"EMAIL_ADDRESSES\": \"Email addresses\",\n \"ADD_USERS\": \"Add users to account\",\n \"CANCEL\": \"Cancel\",\n \"SHARE\": \"Share\",\n \"PERSONALIZE\": \"Personalize the email with a brief message\",\n \"ADD_USER\": \"Add user\"\n }\n}\n", "export interface StatusOption {\n name: string;\n color: string;\n}\n\nexport enum WorkOrderPersona {\n VENDOR = 'Vendor',\n CP = 'Channel Partner',\n SMB = 'SMB',\n SALES = 'Sales',\n}\n", "import { FulfillmentFormConfigInterface, FulfillmentOrderStatus } from '@vendasta/order-fulfillment';\nimport { WorkOrderPersona } from './work-order-landing-page/interfaces';\nimport { buildTemporaryStorageKey } from '@vendasta/store';\nimport { UntypedFormGroup } from '@angular/forms';\n\nconst vendorStatusColorMap: Map = new Map([\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED, 'purple'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW, 'yellow'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_PROGRESS, 'blue'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_COMPLETED, 'green'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_CANCELLED, 'red'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_UNSET, ''],\n]);\n\nconst nonVendorStatusColorMap: Map = new Map([\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED, 'yellow'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW, 'purple'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_PROGRESS, 'blue'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_COMPLETED, 'green'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_CANCELLED, 'red'],\n [FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_UNSET, ''],\n]);\n\nexport const statusColorMap: Map> = new Map<\n WorkOrderPersona,\n Map\n>([\n [WorkOrderPersona.VENDOR, vendorStatusColorMap],\n [WorkOrderPersona.CP, nonVendorStatusColorMap],\n [WorkOrderPersona.SALES, nonVendorStatusColorMap],\n [WorkOrderPersona.SMB, nonVendorStatusColorMap],\n]);\n\nexport enum DisplayedStatusValuesEnum {\n UNSET = '',\n DETAILS_NEEDED = 'DISPLAYED_STATUS_VALUES.DETAILS_NEEDED',\n IN_REVIEW = 'DISPLAYED_STATUS_VALUES.IN_REVIEW',\n VENDOR_REVIEW = 'DISPLAYED_STATUS_VALUES.VENDOR_REVIEW',\n IN_PROGRESS = 'DISPLAYED_STATUS_VALUES.IN_PROGRESS',\n COMPLETED = 'DISPLAYED_STATUS_VALUES.COMPLETED',\n CANCELED = 'DISPLAYED_STATUS_VALUES.CANCELED',\n ON_HOLD = 'DISPLAYED_STATUS_VALUES.ON_HOLD',\n}\n\n// Persona's that should see \"Vendor review\" as the in review status\nconst VENDOR_REVIEW_PERSONAS = [WorkOrderPersona.CP, WorkOrderPersona.SALES];\n\nexport const fulfillmentOrderStatusToString = (\n status: FulfillmentOrderStatus,\n persona?: WorkOrderPersona,\n): DisplayedStatusValuesEnum => {\n switch (status) {\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED:\n return DisplayedStatusValuesEnum.DETAILS_NEEDED;\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_PROGRESS:\n return DisplayedStatusValuesEnum.IN_PROGRESS;\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_COMPLETED:\n return DisplayedStatusValuesEnum.COMPLETED;\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_CANCELLED:\n return DisplayedStatusValuesEnum.CANCELED;\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_ON_HOLD:\n return DisplayedStatusValuesEnum.ON_HOLD;\n case FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW:\n return VENDOR_REVIEW_PERSONAS.includes(persona)\n ? DisplayedStatusValuesEnum.VENDOR_REVIEW\n : DisplayedStatusValuesEnum.IN_REVIEW;\n default:\n return DisplayedStatusValuesEnum.UNSET;\n }\n};\n\nexport const displayedStatusToFulfillmentOrderStatus = (\n displayStatus: DisplayedStatusValuesEnum,\n): FulfillmentOrderStatus => {\n switch (displayStatus) {\n case DisplayedStatusValuesEnum.DETAILS_NEEDED:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED;\n case DisplayedStatusValuesEnum.IN_REVIEW:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW;\n case DisplayedStatusValuesEnum.VENDOR_REVIEW:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW;\n case DisplayedStatusValuesEnum.IN_PROGRESS:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_PROGRESS;\n case DisplayedStatusValuesEnum.COMPLETED:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_COMPLETED;\n case DisplayedStatusValuesEnum.CANCELED:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_CANCELLED;\n case DisplayedStatusValuesEnum.ON_HOLD:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_ON_HOLD;\n default:\n return FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_UNSET;\n }\n};\n\nexport function hasFulfillmentForm(formConfig: FulfillmentFormConfigInterface): boolean {\n return formConfig?.orderForm?.length > 0;\n}\nexport function getTemporaryStorageKey(businessId: string, appId: string): string {\n return buildTemporaryStorageKey({\n businessId: businessId,\n id: appId,\n index: appId.startsWith('A-') ? 0 : undefined,\n });\n}\n\n/**\n * check to see if changes for work order form are saved in session storage\n * @param formGroup - form group to check\n * @returns boolean\n */\nexport function doesWorkOrderFormHaveUnsavedChanges(formGroup: UntypedFormGroup): boolean {\n const keysToCheck: string[] = Object.keys(formGroup.controls || {});\n return keysToCheck?.reduce((prev, currentKey) => {\n const cachedFormValue = sessionStorage.getItem(currentKey);\n if (cachedFormValue) {\n return true;\n }\n return prev;\n }, false);\n}\n\n/**\n * clear unsaved changes for a form group from session storage\n * @param form\n */\nexport function clearUnsavedChangesFromSessionStorage(formGroup: UntypedFormGroup): void {\n const keysToCheck: string[] = Object.keys(formGroup.controls || {});\n keysToCheck.forEach((key) => {\n sessionStorage.removeItem(key);\n });\n}\n", "import { Component, Input, Signal, WritableSignal, computed, signal } from '@angular/core';\nimport { FulfillmentOrderStatus } from '@vendasta/order-fulfillment';\nimport { DisplayedStatusValuesEnum, fulfillmentOrderStatusToString, statusColorMap } from '../utils';\nimport { WorkOrderPersona } from '../work-order-landing-page/interfaces';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'work-order-status-badge',\n templateUrl: './status-badge.component.html',\n styleUrls: ['./status-badge.component.scss'],\n standalone: true,\n imports: [GalaxyBadgeModule, MatIconModule, TranslateModule],\n})\nexport class StatusBadgeComponent {\n @Input() set persona(persona: WorkOrderPersona) {\n this._persona.set(persona);\n }\n @Input() set value(value: FulfillmentOrderStatus) {\n this._foStatus.set(value);\n }\n @Input() clickableMenu = false;\n\n private _persona: WritableSignal = signal(WorkOrderPersona.VENDOR);\n private _foStatus: WritableSignal = signal(\n FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_UNSET,\n );\n displayedColor: Signal = computed(() => statusColorMap?.get(this._persona())?.get(this._foStatus()) || '');\n displayedValue: Signal = computed(() =>\n fulfillmentOrderStatusToString(this._foStatus(), this._persona()),\n );\n}\n", "@if (displayedValue()) {\n \n {{ displayedValue() | translate }}\n @if (clickableMenu) {\n arrow_drop_down\n }\n \n}\n", "import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FulfillmentOrderStatus } from '@vendasta/order-fulfillment';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WorkOrderPersona } from '../work-order-landing-page/interfaces';\n\nexport interface WorkOrderSalesOrderSummaryInfo {\n appName: string;\n appIconUrl?: string;\n workOrderId: string;\n workOrderStatus: FulfillmentOrderStatus;\n workOrderLandingPageUrl?: string;\n workOrderLandingPageRouterLinkUrl?: string;\n hasForm?: boolean;\n}\n\n/**\n * Provides a summary of work orders related to a specific sales order.\n * Shows different information based on viewing Persona\n */\n@Component({\n selector: 'work-order-sales-order-summary',\n templateUrl: './work-order-sales-order-summary.component.html',\n styleUrls: ['./work-order-sales-order-summary.component.scss'],\n})\nexport class WorkOrderSalesOrderSummaryComponent implements OnInit {\n @Input() workOrders: WorkOrderSalesOrderSummaryInfo[] = [];\n @Input() includeThermometer = false;\n @Input() persona: WorkOrderPersona = WorkOrderPersona.VENDOR;\n thermometerProgress = 0;\n thermometerSuffix: string;\n isMobile$: Observable;\n isVendor: boolean;\n\n constructor(\n private translateService: TranslateService,\n private breakpointObserver: BreakpointObserver,\n private router: Router,\n private route: ActivatedRoute,\n ) {}\n\n ngOnInit(): void {\n this.isVendor = this.persona === WorkOrderPersona.VENDOR;\n this.isMobile$ = this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(map((bp) => bp.matches));\n if (this.includeThermometer) {\n const completed = this.workOrders.reduce(\n (prev, curr) =>\n curr.workOrderStatus === FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_COMPLETED ? prev + 1 : prev,\n 0,\n );\n const total = this.workOrders.length;\n this.thermometerProgress = 100 * (completed / total);\n this.thermometerSuffix = this.translateService.instant('SALES_ORDER_SUMMARY.THERMOMETER_SUFFIX', {\n completed,\n total,\n });\n }\n }\n\n handleChevronClick(wo: WorkOrderSalesOrderSummaryInfo): void {\n if (wo?.workOrderLandingPageRouterLinkUrl) {\n this.router.navigate([wo.workOrderLandingPageRouterLinkUrl], {\n relativeTo: this.route,\n fragment: wo.workOrderId,\n });\n } else if (wo?.workOrderLandingPageUrl) {\n window.open(wo.workOrderLandingPageUrl, '_blank', 'noopener');\n }\n }\n}\n", "
0\">\n \n \n \n \n {{ 'SALES_ORDER_SUMMARY.TITLE' | translate }}\n \n \n {{ 'SALES_ORDER_SUMMARY.TITLE_NON_VENDOR' | translate }}\n \n \n \n \n \n
\n {{ thermometerSuffix }}\n
\n
\n 0\">\n \n \n \n
\n \n {{ wo.appName }}\n {{ wo.workOrderId }}\n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { AccountGroupLocation } from '@galaxy/account-group';\n\n@Pipe({\n name: 'accountCity',\n})\nexport class AccountCityPipe implements PipeTransform {\n transform(account?: AccountGroupLocation): string {\n return [account?.city, account?.state, account?.zip].filter(Boolean).join(', ');\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { AccountGroupLocation } from '@galaxy/account-group';\n\n@Pipe({\n name: 'accountPhone',\n})\nexport class AccountPhonePipe implements PipeTransform {\n transform(account?: AccountGroupLocation): string {\n return account?.workNumber?.[0];\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { DigitalAgentInterface } from '@vendasta/task-manager';\n\n@Pipe({\n name: 'digitalAgentName',\n})\nexport class DigitalAgentNamePipe implements PipeTransform {\n transform(digitalAgent?: DigitalAgentInterface): string {\n return [digitalAgent?.firstName, digitalAgent?.lastName].filter(Boolean).join(' ');\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { AccountGroupLocation, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { map, tap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\n@Pipe({\n name: 'getAccountInfo',\n})\nexport class GetAccountInfoPipe implements PipeTransform {\n #accountInfoCache: Map = new Map();\n\n constructor(private accountGroupService: AccountGroupService) {}\n\n transform(accountGroupId?: string): Observable {\n if (!accountGroupId) {\n return of(null);\n }\n const accountGroupFromCache: AccountGroupLocation = this.#accountInfoCache.get(accountGroupId);\n if (accountGroupFromCache) {\n return of(accountGroupFromCache);\n }\n return this.accountGroupService.get(accountGroupId, new ProjectionFilter({ napData: true })).pipe(\n map((accountGroup) => accountGroup?.napData),\n tap((accountInfo) => this.#accountInfoCache.set(accountGroupId, accountInfo)),\n );\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\nimport { MarketplacePackagesApiService, Product } from '@vendasta/marketplace-packages';\nimport { FulfillmentOrder } from '@vendasta/order-fulfillment';\nimport { Observable, of } from 'rxjs';\n\n@Pipe({\n name: 'getProductInfo',\n})\nexport class GetProductInfoPipe implements PipeTransform {\n #productInfoCache: Map = new Map();\n\n constructor(private marketplacePackagesApiService: MarketplacePackagesApiService) {}\n\n transform(fulfillmentOrder?: FulfillmentOrder): Observable {\n if (!fulfillmentOrder) {\n return of(null);\n }\n const productFromCache: Product = this.#productInfoCache.get(fulfillmentOrder.appId);\n if (productFromCache) {\n return of(productFromCache);\n }\n return this.marketplacePackagesApiService\n .getMultiProducts({\n partnerId: fulfillmentOrder.resellerPartnerId,\n productIds: [fulfillmentOrder.appId],\n })\n .pipe(\n map((products) => products?.products[0]?.product),\n tap((product) => this.#productInfoCache.set(fulfillmentOrder.appId, product)),\n );\n }\n}\n", "import { Status } from '@vendasta/task-manager';\nimport { StatusOption } from './interfaces';\n\nexport enum RouteParamKeys {\n Partner = 'FulfillmentOrderPartner',\n FulfillmentOrderId = 'FulfillmentOrderId',\n}\n\nexport const ProjectStatusMap = new Map([\n [Status.Open, { name: Status.Open, color: 'grey' }],\n [Status.InProgress, { name: Status.InProgress, color: 'yellow' }],\n [Status.WaitingOnCustomer, { name: Status.WaitingOnCustomer, color: 'red' }],\n [Status.Completed, { name: Status.Completed, color: 'green' }],\n]);\n\nexport const METADATA_KEYS = {\n FulfillmentOrderId: 'fulfillmentOrderId',\n FulfillingPartnerId: 'FulfillingPartnerId',\n};\n\nexport const TASK_TYPES = {\n Project: 'Project',\n};\n\nexport type OrderDetailSection = 'submittedBy' | 'account' | 'salesOrderId' | 'product' | 'pricing';\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { ProjectStatusMap } from '../constants';\nimport { StatusOption } from '../interfaces';\n\n@Pipe({\n name: 'projectStatusOption',\n})\nexport class ProjectStatusOptionPipe implements PipeTransform {\n transform(status?: string): StatusOption {\n return ProjectStatusMap.get(status);\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DisplayedStatusValuesEnum } from '../../utils';\n\n@Pipe({\n name: 'DisplayFulfillmentOrderStatus',\n})\nexport class DisplayFulfillmentOrderStatusPipe implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n transform(value: DisplayedStatusValuesEnum): string {\n return this.translateService.instant(value);\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AccountCityPipe } from './account-city.pipe';\nimport { AccountPhonePipe } from './account-phone.pipe';\nimport { DigitalAgentNamePipe } from './digital-agent-name.pipe';\nimport { GetAccountInfoPipe } from './get-account-info.pipe';\nimport { GetProductInfoPipe } from './get-product-info.pipe';\nimport { ProjectStatusOptionPipe } from './project-status-option.pipe';\nimport { DisplayFulfillmentOrderStatusPipe } from './display-fulfillment-order-status.pipe';\n\nconst pipes = [\n AccountCityPipe,\n AccountPhonePipe,\n DigitalAgentNamePipe,\n GetAccountInfoPipe,\n GetProductInfoPipe,\n ProjectStatusOptionPipe,\n DisplayFulfillmentOrderStatusPipe,\n];\n\n@NgModule({\n declarations: pipes,\n imports: [CommonModule],\n exports: pipes,\n providers: pipes,\n})\nexport class FulfillmentOrderPipesModule {}\n", "import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule, GalaxyFormFieldModule, MatInputModule, TranslateModule],\n templateUrl: './pending-activation-approval-dialogue.component.html',\n styleUrls: ['./pending-activation-approval-dialogue.component.scss'],\n})\nexport class PendingActivationApprovalDialogueComponent {\n constructor(private dialogue: MatDialogRef) {}\n\n handleClick() {\n this.dialogue.close(true);\n }\n}\n", "

{{ 'PENDING_APPROVALS_CARD.APPROVE_ORDER_DIALOG.TITLE' | translate }}

\n\n

{{ 'PENDING_APPROVALS_CARD.APPROVE_ORDER_DIALOG.CONTENT' | translate }}

\n
\n\n \n\n \n\n", "import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'work-order-pending-approval-decline',\n standalone: true,\n imports: [CommonModule, GalaxyFormFieldModule, MatButtonModule, MatDialogModule, MatInputModule, TranslateModule],\n templateUrl: './pending-approval-decline.component.html',\n styleUrls: ['./pending-approval-decline.component.scss'],\n})\nexport class PendingApprovalDeclineComponent {\n constructor(private dialogue: MatDialogRef) {}\n\n handleClick(rejectionReason: string) {\n this.dialogue.close(rejectionReason);\n }\n}\n", "

{{ 'PENDING_APPROVALS_CARD.DECLINE_ORDER_DIALOG.TITLE' | translate }}

\n\n

{{ 'PENDING_APPROVALS_CARD.DECLINE_ORDER_DIALOG.CONTENT' | translate }}

\n \n \n \n
\n\n \n \n\n", "import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface PendingApprovalServiceInterface {\n resolvePendingActivation(\n activationID: string,\n appID: string,\n businessID: string,\n approved: boolean,\n addonID?: string,\n accountID?: string,\n rejectionReason?: string,\n ): Observable;\n}\n\nexport const PendingApprovalServiceInterfaceToken: InjectionToken =\n new InjectionToken('PendingApprovalServiceInterface');\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { PendingActivationStatus } from '@vendasta/order-fulfillment';\n\n@Pipe({\n name: 'isActivationPending',\n standalone: true,\n})\nexport class IsActivationPendingPipe implements PipeTransform {\n transform(status: string | PendingActivationStatus | undefined): boolean {\n return (\n status === PendingActivationStatus.PENDING_ACTIVATION_STATUS_PENDING ||\n status === 'PENDING_ACTIVATION_STATUS_PENDING'\n );\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MarketplaceAppService } from '@galaxy/marketplace-apps/v1';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FulfillmentOrder, PendingActivationStatus } from '@vendasta/order-fulfillment';\nimport { EMPTY } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { FulfillmentOrderPipesModule } from '../../pipes/fulfillment-order-pipes.module';\nimport { PendingActivationApprovalDialogueComponent } from '../pending-approval-approve/pending-activation-approval-dialogue.component';\nimport { PendingApprovalDeclineComponent } from '../pending-approval-decline/pending-approval-decline.component';\nimport { PendingApprovalServiceInterface, PendingApprovalServiceInterfaceToken } from '../pending-approvals.interface';\nimport { IsActivationPendingPipe } from './is-activation-pending.pipe';\n\n@Component({\n selector: 'work-order-pending-approvals-card',\n standalone: true,\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n GalaxyAvatarModule,\n IsActivationPendingPipe,\n FulfillmentOrderPipesModule,\n TranslateModule,\n ],\n templateUrl: './pending-approvals-card.component.html',\n styleUrls: ['./pending-approvals-card.component.scss'],\n})\nexport class PendingApprovalsCardComponent {\n @Input() fulfillmentOrder: FulfillmentOrder;\n @Output() pendingActivationChange = new EventEmitter();\n\n PendingActivationStatus = PendingActivationStatus;\n\n constructor(\n private dialog: MatDialog,\n @Inject(PendingApprovalServiceInterfaceToken) private pendingApprovalService: PendingApprovalServiceInterface,\n private snackbarService: SnackbarService,\n private appsService: MarketplaceAppService,\n ) {}\n\n approve(pendingActivation: string) {\n this.dialog\n .open(PendingActivationApprovalDialogueComponent)\n .afterClosed()\n .pipe(\n switchMap((result) => {\n if (result) {\n return this.pendingApprovalService.resolvePendingActivation(\n pendingActivation,\n this.fulfillmentOrder.appId,\n this.fulfillmentOrder.businessId,\n true,\n );\n }\n return EMPTY;\n }),\n )\n .subscribe(\n () => {\n this.snackbarService.openSuccessSnack('PENDING_APPROVALS_CARD.APPROVE_SUCCESS');\n this.fulfillmentOrder.pendingActivationIds = this.fulfillmentOrder.pendingActivationIds.filter(\n (id) => id !== pendingActivation,\n );\n this.pendingActivationChange.emit(pendingActivation);\n },\n () => {\n this.snackbarService.openErrorSnack('PENDING_APPROVALS_CARD.APPROVE_ERROR');\n },\n );\n }\n\n decline(pendingActivation: string) {\n this.dialog\n .open(PendingApprovalDeclineComponent)\n .afterClosed()\n .pipe(\n switchMap((rejectionReason) => {\n if (rejectionReason) {\n return this.appsService.getApp(this.fulfillmentOrder.appId).pipe(\n switchMap((app) => {\n // if it's an addon, we need to get the parent app id. Otherwise fallback to the appID stored on the FO\n const appId: string =\n app?.restrictions?.appRequirement?.rules?.[0]?.appIds?.[0] || this.fulfillmentOrder.appId;\n const addonId: string = this.fulfillmentOrder.appId;\n\n return this.pendingApprovalService.resolvePendingActivation(\n pendingActivation,\n appId,\n this.fulfillmentOrder.businessId,\n false,\n appId !== addonId ? addonId : '',\n null, // accountId,\n rejectionReason,\n );\n }),\n );\n }\n return EMPTY;\n }),\n )\n .subscribe(\n () => {\n this.snackbarService.openSuccessSnack('PENDING_APPROVALS_CARD.DECLINE_SUCCESS');\n this.fulfillmentOrder.pendingActivationIds = this.fulfillmentOrder.pendingActivationIds.filter(\n (id) => id !== pendingActivation,\n );\n this.pendingActivationChange.emit(pendingActivation);\n },\n () => {\n this.snackbarService.openErrorSnack('PENDING_APPROVALS_CARD.DECLINE_ERROR');\n },\n );\n }\n}\n", "
\n \n \n {{ 'PENDING_APPROVALS_CARD.TITLE' | translate }}\n \n \n \n \n
\n \n {{ fulfillmentOrder?.appInfo?.appName || '' }}\n
\n
\n \n \n
\n
\n \n \n \n\n", "import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DialogData } from '@vendasta/store';\n\n@Component({\n selector: 'work-order-form-conflict-dialog',\n templateUrl: './form-conflict-dialog.component.html',\n styleUrls: ['./form-conflict-dialog.component.scss'],\n})\nexport class FormConflictDialogComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n ) {}\n\n handleRefreshPage(): void {\n window.location.reload();\n }\n}\n", "

{{ 'FORM_V2.CONFLICT_DIALOG.TITLE' | translate }}

\n\n

{{ 'FORM_V2.CONFLICT_DIALOG.MESSAGE' | translate }}

\n
\n\n \n \n\n", "import { Component } from '@angular/core';\n\n@Component({\n selector: 'work-order-form-error-dialog',\n templateUrl: './form-error-dialog.component.html',\n styleUrls: ['./form-error-dialog.component.scss'],\n})\nexport class FormErrorDialogComponent {}\n", "

{{ 'FORM_V2.SUBMISSION_ERROR_DIALOG.TITLE' | translate }}

\n\n

{{ 'FORM_V2.SUBMISSION_ERROR_DIALOG.CONTENT' | translate }}

\n
\n\n \n\n", "import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'work-order-form-confirm-dialog',\n templateUrl: './form-confirm-dialog.component.html',\n styleUrls: ['./form-confirm-dialog.component.scss'],\n})\nexport class FormConfirmDialogComponent {\n constructor(private dialogRef: MatDialogRef) {}\n\n handleSubmitClick(): void {\n this.dialogRef.close(true);\n }\n}\n", "

{{ 'FORM_V2.SUBMISSION_CONFIRM_DIALOG.TITLE' | translate }}

\n\n

{{ 'FORM_V2.SUBMISSION_CONFIRM_DIALOG.CONTENT' | translate }}

\n
\n\n \n \n\n", "import { COMMA, ENTER, SEMICOLON, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Component, ElementRef, Inject, OnDestroy, OnInit, Pipe, PipeTransform, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipGrid, MatChipInputEvent } from '@angular/material/chips';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { AddUserDialogComponent, User, UserAction } from '@vendasta/users';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nexport interface SendEmailDialogData {\n allUsers: User[];\n partnerId: string;\n businessId: string;\n allowUserManagement: boolean;\n}\n\nexport interface SendEmailDialogResp {\n userIds: string[];\n}\n\n@Component({\n templateUrl: './send-email-dialog.component.html',\n styleUrls: ['./send-email-dialog.component.scss'],\n})\nexport class SendEmailDialogComponent implements OnInit, OnDestroy {\n subscriptions: Subscription[] = [];\n allUsers: User[];\n separatorKeysCodes: number[] = [ENTER, COMMA, SPACE, SEMICOLON, TAB];\n selectedUsers: User[];\n emailControl: UntypedFormControl;\n filteredUsers$$: BehaviorSubject = new BehaviorSubject([]);\n filteredUsers$: Observable = this.filteredUsers$$.asObservable();\n errorMessage$$: Subject = new Subject();\n childDialogRef: MatDialogRef;\n\n partnerId: string;\n businessId: string;\n allowUserManagement: boolean;\n\n @ViewChild('emailInput') emailInput: ElementRef;\n @ViewChild('autoEmail') matAutocomplete: MatAutocomplete;\n @ViewChild('emailList') emailChipList: MatChipGrid;\n\n constructor(\n public dialogRef: MatDialogRef,\n public dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) public data: SendEmailDialogData,\n ) {\n this.allUsers = data?.allUsers || [];\n this.partnerId = data?.partnerId;\n this.businessId = data?.businessId;\n this.allowUserManagement = data?.allowUserManagement;\n this.selectedUsers = [];\n }\n\n ngOnInit(): void {\n this.emailControl = new UntypedFormControl(null);\n this.subscriptions.push(\n this.emailControl.valueChanges\n .pipe(\n startWith(null),\n map((value: string | null) => (value ? this._filter(value) : this.allUsers.slice())),\n )\n .subscribe((users) => {\n this.filteredUsers$$.next(users);\n }),\n );\n }\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n\n if (value) {\n const user = this.allUsers.find((u) => u.userId === value);\n if (user) {\n this._pushUser(user);\n }\n }\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n const user = this.allUsers.find((u) => u.userId === event.option.value);\n if (user) {\n this._pushUser(user);\n }\n this.emailInput.nativeElement.value = null;\n this.emailControl.setValue(null);\n }\n\n preventBlur(e: Event): void {\n e.stopPropagation();\n e.preventDefault();\n }\n\n remove(userId: string): void {\n const index = this.selectedUsers.indexOf(this.selectedUsers.find((u) => u.userId === userId));\n if (index >= 0) {\n this.selectedUsers.splice(index, 1);\n this._updateErrorState();\n }\n }\n\n private _pushUser(user: User): void {\n this.selectedUsers.push(user);\n this._updateErrorState();\n }\n\n // conventional error handling on a form control do not work with MatChipLists, this function handles the error state manually\n private _updateErrorState(): void {\n if (this.selectedUsers.length === 0) {\n this.errorMessage$$.next('At least one user is required');\n this.emailChipList.errorState = true;\n return;\n }\n\n this.errorMessage$$.next('');\n this.emailChipList.errorState = false;\n return;\n }\n\n close(save: boolean): void {\n const userIds = this.selectedUsers.map((u) => u.unifiedId);\n save ? this.dialogRef.close({ userIds: userIds }) : this.dialogRef.close();\n }\n\n presentAddUserDialog(): void {\n this.childDialogRef = this.dialog.open(AddUserDialogComponent, {\n width: '620px',\n data: {\n showCreateTab: true,\n showAddTab: false,\n partnerId: this.partnerId,\n businessId: this.businessId,\n existingUsers: this.allUsers,\n },\n });\n this.subscriptions.push(\n this.childDialogRef.afterClosed().subscribe((result) => {\n const users = this.filteredUsers$$.getValue();\n\n if (result?.users.length && result?.users.length > 0 && result?.action === UserAction.ADD) {\n users.push(...result.users);\n this.filteredUsers$$.next(users);\n this.allUsers.push(...result.users);\n this.selectedUsers.push(...result.users);\n } else if (result?.users.length && result?.users.length > 0 && result?.action === UserAction.CREATE) {\n users.push(result.users[0]);\n this.filteredUsers$$.next(users);\n this.allUsers.push(result.users[0]);\n this.selectedUsers.push(result.users[0]);\n }\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n private _filter(value: string): User[] {\n const filterValue = value.toLowerCase();\n return this.allUsers.filter((u) => u.email.toLowerCase().indexOf(filterValue) === 0);\n }\n\n // formatUser returns a User formatted as: jsmith47@example.ca (John Smith)\n static formatUser(user: User): string {\n let formattedUser = '';\n if (user?.email) {\n formattedUser = user.email;\n }\n\n const names: string[] = [];\n if (user.firstName) {\n names.push(user.firstName);\n }\n if (user.lastName) {\n names.push(user.lastName);\n }\n if (names.length > 0) {\n formattedUser = `${formattedUser} (${names.join(' ')})`;\n }\n return formattedUser;\n }\n}\n\n@Pipe({\n name: 'formatUser',\n standalone: true,\n})\nexport class FormatUserPipe implements PipeTransform {\n transform(user: User): string {\n return SendEmailDialogComponent.formatUser(user);\n }\n}\n", "

\n {{ 'SHARE.SHARE_FORM' | translate }}\n

\n\n \n {{ 'SHARE.ADD_OR_SELECT_USERS' | translate }}\n \n \n {{ e.email }}\n cancel\n \n \n \n {{ errorMessage$$ | async }}\n \n \n \n {{ u | formatUser }}\n \n \n add\n {{ 'SHARE.ADD_USER' | translate }}\n \n \n \n \n\n\n \n \n {{ 'SHARE.SHARE' | translate }}\n \n\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VaOrderFormModule } from '@vendasta/store';\nimport { MatCardModule } from '@angular/material/card';\nimport { VaIconModule } from '@vendasta/uikit';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxySnackbarModule } from '@vendasta/galaxy/snackbar-service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from './assets/i18n/en_devel.json';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ProjectTrackerModule } from '@vendasta/project-tracker';\nimport { WorkOrderSalesOrderSummaryComponent } from './work-order-sales-order-summary/work-order-sales-order-summary.component';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { StatusBadgeComponent } from './status-badge/status-badge.component';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { WorkOrderLandingPageComponent } from './work-order-landing-page/work-order-landing-page.component';\nimport { WorkOrdersPageCardComponent } from './work-order-landing-page/card/card.component';\nimport { WorkOrdersPageDateInfoComponent } from './work-order-landing-page/date-info/date-info.component';\nimport { WorkOrderPageOrderInfoComponent } from './work-order-landing-page/order-info/order-info.component';\nimport { FulfillmentOrderPipesModule } from './work-order-landing-page/pipes/fulfillment-order-pipes.module';\nimport { RouterModule } from '@angular/router';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { WorkOrderCommunicationDetailsComponent } from './work-order-landing-page/communication-details/communication-details.component';\nimport { FormConflictDialogComponent } from './work-order-form/form-conflict-dialog/form-conflict-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { FormErrorDialogComponent } from './work-order-form/form-error-dialog/form-error-dialog.component';\nimport { FormConfirmDialogComponent } from './work-order-form/form-confirm-dialog/form-confirm-dialog.component';\nimport { WorkOrderActionBannerComponent } from './work-order-landing-page/action-banner/action-banner.component';\nimport { MatListModule } from '@angular/material/list';\nimport { FormatUserPipe, SendEmailDialogComponent } from './send-email-dialog/send-email-dialog.component';\nimport { PendingApprovalsCardComponent } from './work-order-landing-page/pending-approvals/pending-approvals-card/pending-approvals-card.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { UsersModule } from '@vendasta/users';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/work-order',\n baseTranslation: baseTranslation,\n }),\n MatBadgeModule,\n MatButtonModule,\n MatCardModule,\n MatDividerModule,\n MatIconModule,\n MatProgressSpinnerModule,\n OverlayModule,\n VaIconModule,\n VaOrderFormModule,\n GalaxySnackbarModule,\n ProjectTrackerModule,\n GalaxyAvatarModule,\n GalaxyBadgeModule,\n MatProgressBarModule,\n FulfillmentOrderPipesModule,\n RouterModule,\n MatExpansionModule,\n ProjectTrackerModule,\n MatDialogModule,\n GalaxyAlertModule,\n MatListModule,\n PendingApprovalsCardComponent,\n GalaxyFormFieldModule,\n MatChipsModule,\n MatAutocompleteModule,\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n FormatUserPipe,\n UsersModule,\n StatusBadgeComponent,\n ],\n declarations: [\n WorkOrderSalesOrderSummaryComponent,\n SendEmailDialogComponent,\n WorkOrderLandingPageComponent,\n WorkOrdersPageCardComponent,\n WorkOrdersPageDateInfoComponent,\n WorkOrderPageOrderInfoComponent,\n WorkOrderCommunicationDetailsComponent,\n WorkOrderActionBannerComponent,\n FormConflictDialogComponent,\n FormErrorDialogComponent,\n FormConfirmDialogComponent,\n ],\n exports: [\n WorkOrderSalesOrderSummaryComponent,\n WorkOrderLandingPageComponent,\n SendEmailDialogComponent,\n WorkOrderCommunicationDetailsComponent,\n FormConflictDialogComponent,\n WorkOrderActionBannerComponent,\n ],\n})\nexport class WorkOrderModule {}\n", "import { Injectable } from '@angular/core';\nimport {\n FulfillmentFormConfigInterface,\n FulfillmentFormSubmissionApiService,\n FulfillmentFormSubmissionInterface,\n GetLatestFulfillmentFormSubmissionRequest,\n GetLatestFulfillmentFormSubmissionResponseInterface,\n} from '@vendasta/order-fulfillment';\nimport {\n FulfillmentOrderConfigApiService,\n ReleaseType,\n GetFulfillmentOrderConfigRequest,\n} from '@vendasta/marketplace-apps';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkOrderFormConfigService {\n constructor(\n private formSubmissionService: FulfillmentFormSubmissionApiService,\n private formConfigService: FulfillmentOrderConfigApiService,\n ) {}\n getFormConfig(salesOrderId: string, appId: string, businessId: string): Observable {\n return this.formSubmissionService\n .getLatestFulfillmentFormSubmission(\n new GetLatestFulfillmentFormSubmissionRequest({\n salesOrderId: salesOrderId,\n appId: appId,\n businessId: businessId,\n }),\n )\n .pipe(\n map((response) => response.fulfillmentFormSubmission.formConfig),\n catchError((err) => {\n if (err.status === 404) {\n return this.formConfigService\n .getFulfillmentOrderConfig(\n new GetFulfillmentOrderConfigRequest({\n appId: appId,\n release: ReleaseType.RELEASE_TYPE_PUBLISHED,\n projectionFilter: { includeFormConfig: true },\n }),\n )\n .pipe(map((response) => response.config?.fulfillmentForm as FulfillmentFormConfigInterface));\n } else {\n throw err;\n }\n }),\n );\n }\n\n getLatestSubmission(\n salesOrderId: string,\n appId: string,\n businessId: string,\n ): Observable {\n return this.formSubmissionService\n .getLatestFulfillmentFormSubmission(\n new GetLatestFulfillmentFormSubmissionRequest({\n salesOrderId: salesOrderId,\n appId: appId,\n businessId: businessId,\n }),\n )\n .pipe(\n catchError(() => of({} as GetLatestFulfillmentFormSubmissionResponseInterface)),\n map((resp) => resp?.fulfillmentFormSubmission || {}),\n );\n }\n}\n", "import { Injectable } from '@angular/core';\nimport {\n App,\n AppType,\n FulfillmentOrderConfigApiService,\n GetFulfillmentOrderConfigRequest,\n GetMultiAppRequest,\n PartnerApiService,\n ReleaseType,\n} from '@vendasta/marketplace-apps';\nimport { MarketplaceAppsApiService } from '@vendasta/marketplace-apps/v1';\nimport {\n FulfillmentFormSubmissionApiService,\n FulfillmentOrder,\n FulfillmentOrderApiService,\n GetFulfillmentOrdersForSalesOrderRequest,\n UpsertFulfillmentFormSubmissionRequest,\n} from '@vendasta/order-fulfillment';\nimport { CustomerSalesOrdersService, SalesOrdersService } from '@vendasta/sales-orders';\nimport { ProductInfoInterface } from '@vendasta/store';\nimport { Observable, combineLatest } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { WorkOrderPersona } from '../work-order-landing-page/interfaces';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkOrderFormService {\n constructor(\n private fulfillmentFormSubmissionApiService: FulfillmentFormSubmissionApiService,\n private fulfillmentOrderService: FulfillmentOrderApiService,\n private formConfigService: FulfillmentOrderConfigApiService,\n private marketplaceAppsService: MarketplaceAppsApiService,\n private partnerApiService: PartnerApiService,\n private salesOrderService: SalesOrdersService,\n private customerSalesOrderService: CustomerSalesOrdersService,\n ) {}\n\n getProductInfo(\n appId: string,\n resellerPartnerId: string,\n marketId: string,\n persona: WorkOrderPersona,\n ): Observable {\n if (persona === WorkOrderPersona.VENDOR) {\n return this.marketplaceAppsService\n .getApp({\n appId: appId,\n fieldMask: {\n paths: ['name', 'icon', 'tagLine'],\n },\n })\n .pipe(\n map((resp) => resp?.app),\n map((product) => {\n return {\n productId: appId,\n name: product?.name,\n tagline: product?.tagline,\n icon: product?.icon,\n } as ProductInfoInterface;\n }),\n );\n }\n\n return this.partnerApiService\n .getMultiApp(\n new GetMultiAppRequest({\n appKeys: [\n {\n appId: appId,\n },\n ],\n partnerId: resellerPartnerId,\n marketId: marketId,\n }),\n )\n .pipe(\n take(1),\n map((response) => response?.apps[0] || ({} as App)),\n map((app) => {\n if (app.appType === AppType.APP_TYPE_APP) {\n return {\n productId: appId,\n name: app?.sharedMarketingInformation?.name,\n tagline: app?.sharedMarketingInformation?.tagline,\n icon: app?.sharedMarketingInformation?.iconUrl,\n } as ProductInfoInterface;\n } else {\n return {\n productId: app?.parentRequirements?.parentDetails?.key?.appId,\n name: app?.sharedMarketingInformation?.name,\n tagline: app?.sharedMarketingInformation?.tagline,\n icon: app?.sharedMarketingInformation?.iconUrl,\n addonInfo: [\n {\n addonId: appId,\n name: app?.sharedMarketingInformation?.name,\n },\n ],\n } as ProductInfoInterface;\n }\n }),\n );\n }\n\n updateFormSubmission(request: UpsertFulfillmentFormSubmissionRequest): Observable {\n return this.fulfillmentFormSubmissionApiService\n .upsertFulfillmentFormSubmission(request)\n .pipe(map((resp) => resp?.version));\n }\n\n /**\n * Looks up config for a given product and returns if it has forms enabled\n * @param workOrder\n */\n doesWorkOrderHaveForm(appId: string): Observable {\n return this.formConfigService\n .getFulfillmentOrderConfig(\n new GetFulfillmentOrderConfigRequest({\n appId,\n projectionFilter: {\n includeFormConfig: true,\n },\n }),\n )\n .pipe(\n map((resp) => {\n return Boolean(resp?.config?.usesFulfillmentForm);\n }),\n );\n }\n\n private getPreviewOrderActivationProductIds(\n salesOrderId: string,\n businessId: string,\n isSMB: boolean,\n ): Observable {\n const activations$ = isSMB\n ? this.customerSalesOrderService.previewOrderActivations(salesOrderId, businessId)\n : this.salesOrderService.previewOrderActivations(salesOrderId, businessId);\n\n return activations$.pipe(\n map((activations) => {\n const productIds = activations?.map((activation) => activation.productId) || [];\n return productIds.filter((productId, index) => productIds.indexOf(productId) === index);\n }),\n switchMap((productIds) => {\n const configs$ = productIds.map((productId) =>\n this.formConfigService.getFulfillmentOrderConfig(\n new GetFulfillmentOrderConfigRequest({\n appId: productId,\n release: ReleaseType.RELEASE_TYPE_PUBLISHED,\n }),\n ),\n );\n return combineLatest(configs$);\n }),\n map((responses) => {\n const resp = responses\n ?.filter((response) => response?.config?.isEnabled && response?.config?.usesFulfillmentForm)\n .map((response) => response?.config?.appId);\n return resp;\n }),\n );\n }\n\n getOrdersToRenderFormsFor(\n salesOrderId: string,\n businessId: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isSMB = false,\n includeSalesInfo = false,\n ): Observable {\n return this.fulfillmentOrderService\n .getFulfillmentOrdersForSalesOrder(\n new GetFulfillmentOrdersForSalesOrderRequest({\n salesOrderId,\n businessId: businessId,\n cursor: '',\n pageSize: 100,\n projectionFilter: {\n includeSalesInfo: includeSalesInfo,\n includeAppInfo: true,\n includeBusinessInfo: true,\n },\n }),\n )\n .pipe(map((resp) => resp?.fulfillmentOrders || ([] as FulfillmentOrder[])));\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { ActivatedRoute } from '@angular/router';\nimport { EnvironmentService } from '@galaxy/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { OrderForm } from '@vendasta/marketplace-apps';\nimport {\n CustomFieldsInterface,\n FieldInterface,\n FieldType,\n FormAnswersInterface,\n FulfillmentFormConfigInterface,\n FulfillmentFormSubmissionInterface,\n FulfillmentOrderStatus,\n UpsertFulfillmentFormSubmissionRequest,\n UpsertFulfillmentFormSubmissionRequestInterface,\n} from '@vendasta/order-fulfillment';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { FieldType as SalesOrdersFieldType } from '@vendasta/sales-orders';\nimport {\n CustomFieldsAnswer,\n CustomFieldsAnswers,\n OrderFormComponent,\n OrderFormFieldOptionsType,\n OrderFormInterface,\n ProductInfoInterface,\n User,\n VaOrderFormModule,\n} from '@vendasta/store';\nimport { BehaviorSubject, EMPTY, Observable, ReplaySubject, Subscription, combineLatest, of } from 'rxjs';\nimport { catchError, filter, finalize, map, shareReplay, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { getTemporaryStorageKey } from '../utils';\nimport { WorkOrderFormConfigService } from '../work-order-form-config.service';\nimport { WorkOrderPersona } from '../work-order-landing-page/interfaces';\nimport { WorkOrderModule } from '../work-order.module';\nimport { FormConfirmDialogComponent } from './form-confirm-dialog/form-confirm-dialog.component';\nimport { FormConflictDialogComponent } from './form-conflict-dialog/form-conflict-dialog.component';\nimport { FormErrorDialogComponent } from './form-error-dialog/form-error-dialog.component';\nimport { WorkOrderFormService } from './work-order-form.service';\n\n@Component({\n selector: 'work-order-form',\n templateUrl: './work-order-form.component.html',\n styleUrls: ['./work-order-form.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n VaOrderFormModule,\n MatButtonModule,\n GalaxyLoadingSpinnerModule,\n TranslateModule,\n GalaxyButtonLoadingIndicatorModule,\n GalaxyEmptyStateModule,\n WorkOrderModule,\n MatCheckboxModule,\n MatExpansionModule,\n ],\n providers: [WorkOrderFormService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WorkOrderFormComponent implements OnInit, OnDestroy, AfterViewInit {\n // A list of users that will be displayed for VBC User fields on the forms. Not Required\n @Input() users: User[] = [];\n\n // The persona this user is using to access\n @Input() set persona(persona: WorkOrderPersona) {\n this.persona$$.next(persona);\n }\n\n // ID of the sales order the work order belongs to\n @Input() salesOrderId: string;\n\n // ID of the app the current form is form\n @Input() appId: string;\n\n // ID of the account group this work order belongs to.\n @Input() accountGroupId: string;\n\n // marketId of the account\n @Input() marketId: string;\n\n // status of the work order\n @Input() status: FulfillmentOrderStatus;\n\n // id of the work order\n @Input() fulfillmentOrderId: string;\n\n // Boolean to determine if officeEditableOnly and forOfficeUseOnly fields are shown to users\n @Input() showOfficeUseQuestions = false;\n\n // Fulfillment Order Form, as stored on the Fulfillment Order.\n // This will contain the configuration of the form at the time the FulfillmentOrder was created.\n // Required.\n @Input() fulfillmentOrderForm: OrderForm = new OrderForm();\n\n // A template with any extra content to be included in the header\n @Input() extraHeaderContent: TemplateRef;\n\n // the partner id of the reseller (if any)\n @Input() resellerPartnerId: string;\n\n // Boolean to determine if the form is in a read only state\n @Input() readOnly: boolean;\n\n // This event will be thrown when the change on the form forces an update on the fulfillment order status\n @Output() fulfillmentOrderStatusChanged = new EventEmitter();\n\n // This event will be emitted when the form is submitted\n @Output() submitClicked: EventEmitter = new EventEmitter();\n\n @Output() doneLoading: EventEmitter = new EventEmitter();\n\n form: UntypedFormGroup = new UntypedFormGroup({});\n productInfo$$: ReplaySubject = new ReplaySubject(1);\n orderForm$$: ReplaySubject = new ReplaySubject(1);\n fileUploadUrl: string;\n @ViewChild('fulfillmentForm') public orderFormComponent: OrderFormComponent;\n answers$: Observable;\n submitLoading$$: BehaviorSubject = new BehaviorSubject(false);\n saveProgressLoading$$: BehaviorSubject = new BehaviorSubject(false);\n hasForm$: Observable;\n submittedSubject$$: BehaviorSubject = new BehaviorSubject(false);\n formSubmitted$$: BehaviorSubject = new BehaviorSubject(false);\n foStatus$$: ReplaySubject = new ReplaySubject(1);\n persona$$: BehaviorSubject = new BehaviorSubject(WorkOrderPersona.CP);\n underReview$$: BehaviorSubject = new BehaviorSubject(false);\n subscriptions: Subscription[] = [];\n latestSubmission$: Observable;\n private lastViewedTimestamp$$: BehaviorSubject = new BehaviorSubject('0');\n private config$: Observable;\n WorkOrderPersona = WorkOrderPersona;\n\n constructor(\n private workOrderFormV2Service: WorkOrderFormService,\n private snackbarService: SnackbarService,\n private environmentService: EnvironmentService,\n private dialog: MatDialog,\n private workOrderFormConfigService: WorkOrderFormConfigService,\n private productAnalyticsService: ProductAnalyticsService,\n private route: ActivatedRoute,\n ) {}\n\n ngOnInit(): void {\n this.fileUploadUrl = `https://order-fulfillment-api-${this.environmentService.getEnvironmentString()}.apigateway.co/fulfillment-form/attachments/upload`;\n this.config$ = this.workOrderFormConfigService\n .getFormConfig(this.salesOrderId, this.appId, this.accountGroupId)\n .pipe(\n tap(() => {\n this.foStatus$$.next(this.status);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n this.hasForm$ = this.config$.pipe(map((config) => config?.orderForm?.length > 0));\n\n this.latestSubmission$ = this.workOrderFormConfigService\n .getLatestSubmission(this.salesOrderId, this.appId, this.accountGroupId)\n .pipe(\n take(1),\n tap((latestSubmission) => {\n if (latestSubmission) {\n this.lastViewedTimestamp$$.next(latestSubmission?.version || '0');\n }\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.subscriptions.push(\n this.persona$$\n .pipe(\n switchMap((persona) =>\n this.workOrderFormV2Service.getProductInfo(this.appId, this.resellerPartnerId, this.marketId, persona),\n ),\n map((productInfo) => [productInfo]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n )\n .subscribe(this.productInfo$$),\n );\n\n this.answers$ = combineLatest([this.latestSubmission$, this.productInfo$$]).pipe(\n filter(([submission, productInfo]) => !!submission && !!productInfo),\n map(([submission, productInfo]) =>\n this.getCustomFieldsAnswersFromFulfillmentFormSubmission(submission, productInfo?.[0]),\n ),\n tap(() => (this.form = new UntypedFormGroup({}))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.subscriptions.push(\n this.config$\n .pipe(\n withLatestFrom(this.productInfo$$),\n map(([config, productInfo]) => {\n const info = productInfo?.[0];\n return [\n {\n appId: info?.productId,\n ...config,\n addonId: info?.addonInfo?.[0]?.addonId,\n customFields: config?.orderForm?.map((cf) => {\n const res: OrderFormFieldOptionsType = {\n ...cf,\n options: cf?.optionsWithLabels,\n } as OrderFormFieldOptionsType;\n return res;\n }),\n },\n ];\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n )\n .subscribe(this.orderForm$$),\n );\n\n this.subscriptions.push(\n combineLatest([this.foStatus$$, this.persona$$]).subscribe(([foStatus, persona]) => {\n this.underReview$$.next(\n foStatus === FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW && persona === WorkOrderPersona.VENDOR,\n );\n }),\n this.persona$$.subscribe((persona) => {\n this.formSubmitted$$.next(\n Boolean(\n this.status &&\n this.status !== FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED &&\n persona !== WorkOrderPersona.VENDOR,\n ),\n );\n }),\n );\n combineLatest([this.orderForm$$, this.productInfo$$])\n .pipe(take(1))\n .subscribe(() => this.doneLoading.emit());\n }\n\n ngAfterViewInit(): void {\n // Get the fragment from the url when fragment$ fires and scroll to the appropriate section\n const fragment$: Observable = this.route.fragment;\n this.subscriptions.push(\n fragment$.subscribe((fragment) => {\n if (fragment) {\n const element = document.getElementById(fragment);\n if (element) {\n element.scrollIntoView();\n }\n }\n }),\n );\n }\n\n private getCustomFieldsAnswersFromFulfillmentFormSubmission(\n submission: FulfillmentFormSubmissionInterface,\n productInfo: ProductInfoInterface,\n ): CustomFieldsAnswers[] {\n const answers: CustomFieldsAnswers[] = [];\n submission?.formAnswers?.forEach((formAnswer: FormAnswersInterface) => {\n const cfAnswers: CustomFieldsAnswer[] = [];\n formAnswer?.customFields?.forEach((cf) => {\n cf?.fields?.forEach((f) => {\n cfAnswers.push({\n answer: f.answer,\n fieldId: f.fieldId,\n });\n });\n });\n let customFieldsAnswersToAdd: CustomFieldsAnswers;\n if (productInfo?.addonInfo) {\n customFieldsAnswersToAdd = {\n productID: productInfo.productId,\n customFieldsAnswers: cfAnswers,\n addonKey: {\n appId: productInfo.productId,\n addonId: productInfo?.addonInfo?.[0]?.addonId,\n },\n };\n } else {\n customFieldsAnswersToAdd = {\n productID: submission.appId,\n customFieldsAnswers: cfAnswers,\n };\n }\n // if formId matches, then it should be first so UI will render it's answers\n formAnswer.formId === this.appId\n ? answers.unshift(customFieldsAnswersToAdd)\n : answers.push(customFieldsAnswersToAdd);\n });\n return answers;\n }\n\n salesOrderFieldTypeToFieldType(salesOrderFieldType: SalesOrdersFieldType): FieldType {\n switch (salesOrderFieldType) {\n case SalesOrdersFieldType.CHECKBOX:\n return FieldType.FIELD_TYPE_CHECKBOX;\n case SalesOrdersFieldType.DROPDOWN:\n return FieldType.FIELD_TYPE_DROPDOWN;\n case SalesOrdersFieldType.FILE:\n return FieldType.FIELD_TYPE_FILE;\n case SalesOrdersFieldType.TEXT:\n return FieldType.FIELD_TYPE_TEXT;\n case SalesOrdersFieldType.TEXTAREA:\n return FieldType.FIELD_TYPE_TEXT_AREA;\n case SalesOrdersFieldType.VBCUSER:\n return FieldType.FIELD_TYPE_VBCUSER;\n }\n return FieldType.FIELD_TYPE_NOT_SPECIFIED;\n }\n\n getCustomFieldValues(): CustomFieldsInterface[] {\n const customFields: CustomFieldsInterface[] = this.orderFormComponent.getCustomFormData().map((cf) => {\n return {\n fields: cf.fields.map((field) => {\n return {\n ...field,\n fieldType: this.salesOrderFieldTypeToFieldType(field.fieldType),\n } as FieldInterface;\n }),\n } as CustomFieldsInterface;\n });\n return customFields;\n }\n\n handleSubmitClicked(): void {\n this.submitClicked.emit();\n this.submitLoading$$.next(true);\n const customFields = this.getCustomFieldValues().filter((cf) => cf?.fields?.length > 0);\n let req: UpsertFulfillmentFormSubmissionRequestInterface;\n\n if (this.form.valid) {\n this.dialog\n .open(FormConfirmDialogComponent, {})\n .afterClosed()\n .pipe(\n switchMap((result) => {\n if (result) {\n req = {\n salesOrderId: this.salesOrderId,\n appId: this.appId,\n businessId: this.accountGroupId,\n lastViewedTimestamp: this.lastViewedTimestamp$$.getValue(),\n formAnswers: [\n {\n customFields: customFields,\n formId: this.appId,\n },\n ],\n };\n return this.workOrderFormV2Service\n .updateFormSubmission(new UpsertFulfillmentFormSubmissionRequest(req))\n .pipe(\n tap(() =>\n this.fulfillmentOrderStatusChanged.emit(FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_IN_REVIEW),\n ),\n take(1),\n catchError((err) => {\n if (err.status === 409) {\n const tempStorageKey = getTemporaryStorageKey(this.accountGroupId, this.appId);\n if (tempStorageKey) {\n sessionStorage.removeItem(tempStorageKey);\n }\n this.dialog.open(FormConflictDialogComponent, {\n width: '660px',\n });\n return EMPTY;\n }\n throw err;\n }),\n finalize(() => this.submitLoading$$.next(false)),\n );\n }\n this.submitLoading$$.next(false);\n return EMPTY;\n }),\n switchMap((version) => {\n return of(version);\n }),\n )\n .subscribe(\n (version) => {\n this.snackbarService.openSuccessSnack('FORM_V2.SUBMIT_SUCCESS');\n this.lastViewedTimestamp$$.next(version);\n\n this.submittedSubject$$.next(true);\n this.formSubmitted$$.next(this.persona$$.getValue() !== WorkOrderPersona.VENDOR);\n\n // clear the form data from cache\n const tempStorageKey = getTemporaryStorageKey(this.accountGroupId, this.appId);\n if (tempStorageKey) {\n sessionStorage.removeItem(tempStorageKey);\n }\n },\n () => this.snackbarService.openErrorSnack('FORM_V2.SUBMIT_ERROR'),\n );\n } else {\n // mark all as touched to highlight missing required fields\n this.form.markAllAsTouched();\n this.submitLoading$$.next(false);\n this.dialog.open(FormErrorDialogComponent, {});\n }\n }\n\n private areTouchedFormControlsValid(): boolean {\n const touchedControls: UntypedFormGroup = new UntypedFormGroup({});\n const controls = this.form.controls;\n for (const key in controls) {\n const control = controls[key];\n for (const k in control?.['controls']) {\n const innerControl = control['controls'][k];\n if (innerControl.touched) {\n touchedControls.addControl(k, innerControl);\n }\n }\n }\n return touchedControls.valid;\n }\n\n handleSaveProgressClicked(): void {\n if (!this.areTouchedFormControlsValid()) {\n this.snackbarService.openErrorSnack('FORM_V2.SAVE_PROGRESS_ERROR_INVALID');\n return;\n }\n\n this.saveProgressLoading$$.next(true);\n const customFields = this.getCustomFieldValues().filter((cf) => cf?.fields?.length > 0);\n\n const req: UpsertFulfillmentFormSubmissionRequestInterface = {\n salesOrderId: this.salesOrderId,\n appId: this.appId,\n businessId: this.accountGroupId,\n lastViewedTimestamp: this.lastViewedTimestamp$$.getValue(),\n formAnswers: customFields.map((cf, i) => {\n return {\n customFields: [cf],\n formId: i.toString(),\n } as FormAnswersInterface;\n }),\n };\n this.workOrderFormV2Service\n .updateFormSubmission(new UpsertFulfillmentFormSubmissionRequest(req))\n .pipe(\n take(1),\n finalize(() => this.saveProgressLoading$$.next(false)),\n )\n .subscribe(\n (version) => {\n this.snackbarService.openSuccessSnack('FORM_V2.SAVE_PROGRESS_SUCCESS');\n this.lastViewedTimestamp$$.next(version);\n\n // clear the form data from cache\n const tempStorageKey = getTemporaryStorageKey(this.accountGroupId, this.appId);\n if (tempStorageKey) {\n sessionStorage.removeItem(tempStorageKey);\n }\n },\n () => this.snackbarService.openErrorSnack('FORM_V2.SAVE_PROGRESS_ERROR'),\n );\n }\n\n handleSaveChangesClicked = (): void => {\n this.handleSaveProgressClicked();\n this.productAnalyticsService.trackEvent(\n 'save-progress-fulfillment-form-button-clicked',\n 'work-order',\n 'button-clicked',\n );\n };\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => {\n sub.unsubscribe();\n });\n }\n}\n", "\n
\n \n \n \n
\n \n \n \n {{ 'FORM_V2.SUBMIT_FORM' | translate }}\n \n \n\n \n \n {{ 'FORM_V2.SAVE_PROGRESS' | translate }}\n \n \n \n\n \n
\n \n \n {{ 'FORM_V2.SAVE_CHANGES' | translate }}\n \n \n
\n {{ 'FORM_V2.LAST_UPDATED' | translate : { timestamp } }}\n
\n
\n
\n
\n
\n", "import { CanDeactivate } from '@angular/router';\nimport { Component, HostListener, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class WorkOrderFormUnsavedChangesGuard implements CanDeactivate {\n canDeactivate(component?: WorkOrderFormUnsavedChangesInterface): boolean | Observable {\n const workOrderUnsavedChangesComponent: WorkOrderUnsavedChangesComponent =\n component?.getWorkOrderDetailsComponent();\n if (\n workOrderUnsavedChangesComponent?.canDeactivate instanceof Function &&\n workOrderUnsavedChangesComponent?.pendingChangesDialog instanceof Function\n ) {\n if (workOrderUnsavedChangesComponent.canDeactivate()) {\n return true;\n }\n return workOrderUnsavedChangesComponent.pendingChangesDialog();\n } else {\n return true;\n }\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PublicWorkOrderFormUnsavedChangesGuard implements CanDeactivate {\n canDeactivate(component?: WorkOrderUnsavedChangesComponent): boolean | Observable {\n if (component?.canDeactivate instanceof Function && component?.pendingChangesDialog instanceof Function) {\n if (component.canDeactivate()) {\n return true;\n }\n return component.pendingChangesDialog();\n } else {\n return true;\n }\n }\n}\n\nexport interface WorkOrderFormUnsavedChangesInterface {\n getWorkOrderDetailsComponent: () => WorkOrderUnsavedChangesComponent;\n}\n\nexport interface WorkOrderUnsavedChangesComponentInterface {\n canDeactivate(): boolean;\n pendingChangesDialog(): boolean | Observable;\n}\n\n@Component({ template: '' })\nexport abstract class WorkOrderUnsavedChangesComponent implements WorkOrderUnsavedChangesComponentInterface {\n abstract canDeactivate(): boolean;\n abstract pendingChangesDialog(): boolean | Observable;\n\n @HostListener('window:beforeunload', ['$event'])\n protected beforeUnloadEvent($event: BeforeUnloadEvent): void {\n if (!this.canDeactivate()) {\n $event.returnValue = true;\n }\n }\n}\n", "import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { FulfillmentOrder, FulfillmentOrderStatus } from '@vendasta/order-fulfillment';\n\n@Component({\n selector: 'work-order-checklist',\n standalone: true,\n imports: [CommonModule, MatExpansionModule, GalaxyTooltipModule, TranslateModule, MatIconModule],\n templateUrl: './work-order-checklist.component.html',\n styleUrls: ['./work-order-checklist.component.scss'],\n})\nexport class WorkOrderChecklistComponent {\n @Input() workOrders: FulfillmentOrder[] = [];\n\n public FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED = FulfillmentOrderStatus.FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED;\n\n constructor(private translateService: TranslateService, private router: Router) {}\n\n checklistTooltipText = this.translateService.instant('CHECKLIST.TOOLTIP_TEXT');\n positions: ConnectedPosition[] = [{ ...PopoverPositions.BottomLeft }];\n\n handleChecklistClick(appId: string): void {\n this.router.navigate([], { fragment: appId });\n }\n}\n", "\n \n \n \n info_outline\n \n {{ 'CHECKLIST.TITLE' | translate }}\n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable, map } from 'rxjs';\n\ninterface AccountGroupContext {\n companyName: string;\n address: string;\n address2: string;\n workNumber: string[];\n}\n@Component({\n selector: 'work-order-context',\n standalone: true,\n imports: [CommonModule, MatExpansionModule, TranslateModule],\n templateUrl: './work-order-context.component.html',\n styleUrls: ['./work-order-context.component.scss'],\n})\nexport class WorkOrderContextComponent implements OnInit {\n @Input() accountGroupId: string;\n accountGroup$: Observable;\n\n constructor(private accountGroupService: AccountGroupService) {}\n\n ngOnInit(): void {\n this.accountGroup$ = this.accountGroupService\n .get(this.accountGroupId, new ProjectionFilter({ napData: true }))\n .pipe(\n map((business) => {\n return {\n companyName: business?.napData?.companyName,\n address: [business?.napData?.address, business?.napData?.city, business?.napData?.state]\n .filter(Boolean)\n ?.join(', '),\n address2: [business?.napData?.zip, business?.napData?.country].filter(Boolean)?.join(', '),\n workNumber: business?.napData?.workNumber,\n };\n }),\n );\n }\n}\n", "@if (accountGroup$ | async; as accountGroup) {\n \n \n \n {{ 'CONTEXT.TITLE' | translate }}\n \n \n\n @if (accountGroup.companyName) {\n

{{ accountGroup.companyName }}

\n } @else {\n \n }\n\n

\n {{ accountGroup.address }}\n

\n

\n {{ accountGroup.address2 }}\n

\n\n @if (accountGroup.workNumber) {\n
\n

\n {{ 'CONTEXT.PHONE' | translate }}\n

\n

{{ accountGroup.workNumber }}

\n
\n }\n
\n}\n", "import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\n\nexport enum WorkOrderUnsavedChangesDialogResult {\n NONE,\n CONTINUE_EDITING,\n DISCARD_CHANGES,\n}\n\n@Component({\n selector: 'work-order-unsaved-changes-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\n templateUrl: './work-order-unsaved-changes-dialog.component.html',\n styleUrls: ['./work-order-unsaved-changes-dialog.component.scss'],\n})\nexport class WorkOrderUnsavedChangesDialogComponent {\n WorkOrderUnsavedChangesDialogResult = WorkOrderUnsavedChangesDialogResult;\n\n constructor(public dialogRef: MatDialogRef) {}\n\n continueEditing() {\n this.dialogRef.close(WorkOrderUnsavedChangesDialogResult.CONTINUE_EDITING);\n }\n}\n", "

{{ 'WORK_ORDER.ORDER_FORM.UNSAVED_CHANGES' | translate }}

\n\n {{ 'WORK_ORDER.ORDER_FORM.UNSAVED_WARNING' | translate }}\n\n\n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyPopoverModule, PopoverPositions } from '@vendasta/galaxy/popover';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FulfillmentOrderConfig, FulfillmentOrderConfigApiService } from '@vendasta/marketplace-apps';\nimport { FulfillmentOrder, FulfillmentOrderApiService, FulfillmentOrderStatus } from '@vendasta/order-fulfillment';\nimport { User as LibUser } from '@vendasta/users';\nimport {\n BehaviorSubject,\n Observable,\n Subscription,\n combineLatest,\n forkJoin,\n from,\n map,\n mergeMap,\n of,\n switchMap,\n take,\n tap,\n toArray,\n} from 'rxjs';\nimport { SendEmailDialogComponent, SendEmailDialogResp } from '../send-email-dialog/send-email-dialog.component';\nimport { StatusBadgeComponent } from '../status-badge/status-badge.component';\nimport { User } from '../user';\nimport {\n clearUnsavedChangesFromSessionStorage,\n doesWorkOrderFormHaveUnsavedChanges,\n getTemporaryStorageKey,\n} from '../utils';\nimport { WorkOrderChecklistComponent } from '../work-order-checklist/work-order-checklist.component';\nimport { WorkOrderContextComponent } from '../work-order-context/work-order-context.component';\nimport { WorkOrderFormComponent } from '../work-order-form/work-order-form.component';\nimport { WorkOrderFormService } from '../work-order-form/work-order-form.service';\nimport { WorkOrderPersona } from '../work-order-landing-page/interfaces';\nimport { WorkOrderModule } from '../work-order.module';\nimport {\n WorkOrderUnsavedChangesDialogComponent,\n WorkOrderUnsavedChangesDialogResult,\n} from './work-order-unsaved-changes-dialog/work-order-unsaved-changes-dialog.component';\nimport { WorkOrderUnsavedChangesComponent } from './work-orders-unsaved-changes.guard';\n\n@Component({\n selector: 'work-order-details',\n standalone: true,\n imports: [\n CommonModule,\n WorkOrderModule,\n WorkOrderFormComponent,\n GalaxyPageModule,\n TranslateModule,\n MatIconModule,\n MatButtonModule,\n MatDialogModule,\n GalaxyPopoverModule,\n WorkOrderChecklistComponent,\n WorkOrderContextComponent,\n StatusBadgeComponent,\n ],\n templateUrl: './work-order-details.component.html',\n styleUrls: ['./work-order-details.component.scss'],\n})\nexport class WorkOrderDetailsComponent\n extends WorkOrderUnsavedChangesComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n @Input() salesOrderId: string;\n @Input() businessId: string;\n @Input() partnerId: string;\n @Input() set users(users: User[]) {\n this.allUsers = users?.map((user) => this.convertToLibUser(user)) || [];\n }\n @Input() showOfficeUseQuestions = true;\n @Input() marketId: string;\n @Input() persona: WorkOrderPersona = WorkOrderPersona.CP;\n @Input() previousPageUrl: string;\n @Input() hidePageWrapper = false;\n @Input() allowUserManagement = false;\n\n private workOrders$$: BehaviorSubject = new BehaviorSubject([]);\n readonly workOrders$: Observable = this.workOrders$$.asObservable();\n WorkOrderPersona = WorkOrderPersona;\n private allUsers: LibUser[];\n\n subscriptions: Subscription[] = [];\n\n @ViewChildren(StatusBadgeComponent) statusBadges!: QueryList;\n @ViewChildren(WorkOrderFormComponent) workOrderForms: QueryList;\n combinedFormGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n popoverPosition = [PopoverPositions.BottomRight];\n private woFormDoneLoadingMap$$: BehaviorSubject> = new BehaviorSubject(\n new Map(),\n );\n woFormDoneLoading$: Observable;\n\n constructor(\n private route: ActivatedRoute,\n private workOrderFormService: WorkOrderFormService,\n public dialog: MatDialog,\n private snackbarService: SnackbarService,\n private fulfillmentOrderService: FulfillmentOrderApiService,\n private fulfillmentOrderConfigApiService: FulfillmentOrderConfigApiService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.workOrderFormService\n .getOrdersToRenderFormsFor(this.salesOrderId, this.businessId, this.persona === WorkOrderPersona.SMB)\n .pipe(\n take(1),\n switchMap((workOrders) => {\n return this.filterOrdersWithForms(workOrders);\n }),\n )\n .subscribe((workOrders) => this.workOrders$$.next(workOrders));\n\n this.workOrders$.pipe(take(1)).subscribe((workOrders) => {\n workOrders.forEach((_, i) => {\n const loadingMap: Map = this.woFormDoneLoadingMap$$.getValue();\n loadingMap.set(i, false);\n this.woFormDoneLoadingMap$$.next(loadingMap);\n });\n });\n\n this.woFormDoneLoading$ = this.woFormDoneLoadingMap$$.pipe(\n map((woLoadingMap) => {\n const loadingValues: boolean[] = Array.from(woLoadingMap.values());\n return loadingValues?.length > 0 && loadingValues.every((value) => value);\n }),\n );\n }\n\n ngAfterViewInit(): void {\n const fragment$: Observable = this.route.fragment;\n const statusBadges$: Observable = this.statusBadges.changes;\n this.subscriptions.push(\n combineLatest([fragment$, statusBadges$])\n .pipe()\n .subscribe(([fragment, statusBadges]: [string, QueryList]) => {\n const fragmentBadge = statusBadges.find((sb) => sb?.['fulfillmentOrderId'] === fragment);\n if (fragmentBadge) {\n // page is done loading and found the correct fragment\n document.getElementById(fragment)?.scrollIntoView();\n }\n }),\n );\n this.workOrderForms.changes.pipe(map((a) => a.toArray())).subscribe((workOrderForms) => {\n workOrderForms.forEach((woFormComp) => {\n const key: string = getTemporaryStorageKey(woFormComp.accountGroupId, woFormComp.appId);\n if (!this.combinedFormGroup.contains(key)) {\n this.combinedFormGroup.setControl(key, woFormComp.form);\n }\n });\n });\n }\n\n statusChanged(newStatus: FulfillmentOrderStatus, wo: FulfillmentOrder): void {\n const actualWorkOrders: FulfillmentOrder[] = this.workOrders$$.getValue();\n const index: number = actualWorkOrders.findIndex((w) => w.fulfillmentOrderId === wo.fulfillmentOrderId);\n if (index > -1) {\n actualWorkOrders[index].status = newStatus;\n this.workOrders$$.next(actualWorkOrders);\n }\n }\n\n openSendEmailDialog(): void {\n const afterClosed$: Observable = this.dialog\n .open(SendEmailDialogComponent, {\n width: '600px',\n data: {\n allUsers: this.allUsers,\n partnerId: this.partnerId,\n businessId: this.businessId,\n allowUserManagement: this.allowUserManagement,\n },\n })\n .afterClosed();\n\n combineLatest([this.workOrders$$, afterClosed$])\n .pipe(\n take(1),\n switchMap(([workOrders, resp]) => {\n if (!resp?.userIds || resp?.userIds?.length === 0) {\n return of(undefined);\n }\n\n const itemNames = workOrders.map((wo) => wo.appInfo.appName);\n return from(resp.userIds).pipe(\n mergeMap((userId) =>\n this.fulfillmentOrderService.sendFulfillmentOrder({\n businessId: this.businessId,\n salesOrderId: this.salesOrderId,\n userId: userId,\n itemNames: itemNames,\n }),\n ),\n toArray(),\n );\n }),\n )\n .subscribe({\n next: (resp) => {\n if (resp) {\n this.snackbarService.openSuccessSnack('Successfully sent email');\n }\n },\n error: () => this.snackbarService.openErrorSnack('Failed to send email'),\n });\n }\n\n filterOrdersWithForms(orders: FulfillmentOrder[]): Observable {\n if (orders.length === 0) {\n return of([]);\n }\n\n const apiCalls: Observable[] = orders.map((order) => {\n return this.fulfillmentOrderConfigApiService\n .getFulfillmentOrderConfig({\n appId: order.appId,\n })\n .pipe(map((response) => response.config));\n });\n\n return forkJoin(apiCalls).pipe(\n map((configs) =>\n orders.filter((order) => configs.find((config) => config.appId === order.appId)?.usesFulfillmentForm),\n ),\n );\n }\n\n canDeactivate(): boolean {\n return !doesWorkOrderFormHaveUnsavedChanges(this.combinedFormGroup);\n }\n\n pendingChangesDialog(): boolean | Observable {\n this.dialog.closeAll();\n return this.dialog\n .open(WorkOrderUnsavedChangesDialogComponent)\n .afterClosed()\n .pipe(\n map((result: WorkOrderUnsavedChangesDialogResult) => {\n return result === WorkOrderUnsavedChangesDialogResult.CONTINUE_EDITING ? false : !!result;\n }),\n tap((result: boolean) => {\n if (result) {\n clearUnsavedChangesFromSessionStorage(this.combinedFormGroup);\n }\n }),\n );\n }\n\n handleDoneLoading(index: number): void {\n const loadingMap: Map = this.woFormDoneLoadingMap$$.getValue();\n loadingMap.set(index, true);\n this.woFormDoneLoadingMap$$.next(loadingMap);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => {\n sub.unsubscribe();\n });\n }\n\n public convertToLibUser(user: User): LibUser {\n return {\n userId: user.userId,\n unifiedId: user.unifiedUserId,\n email: user.email,\n firstName: user.firstName,\n lastName: user.lastName,\n phoneNumber: user.phoneNumber,\n } as LibUser;\n }\n}\n", "\n \n {{ 'FULFILLMENT.FULFILLMENT_FORMS' | translate }}\n \n \n \n \n 0 || allowUserManagement)\"\n (click)=\"openSendEmailDialog()\"\n data-action=\"work-order-form-share-button\"\n >\n person_add\n {{ 'FULFILLMENT.SHARE' | translate }}\n \n \n \n \n \n {{ 'SHARE.NO_USERS_TOOLTIP' | translate }}\n \n \n \n \n \n \n\n\n\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n 1\" [workOrders]=\"workOrders\">\n
\n
\n
\n
\n
\n", "import { Injectable } from '@angular/core';\nimport {\n FulfillmentOrder,\n FulfillmentOrderApiService,\n GetFulfillmentOrdersForSalesOrderRequest,\n GetFulfillmentOrdersForSalesOrderResponse,\n} from '@vendasta/order-fulfillment';\nimport { BehaviorSubject, EMPTY, iif, Observable } from 'rxjs';\nimport { catchError, expand, publishReplay, refCount, scan, take, tap } from 'rxjs/operators';\n\nconst PAGE_SIZE = 200;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkOrderSalesOrderSummaryService {\n private loadingWorkOrders$$: BehaviorSubject = new BehaviorSubject(false);\n public readonly loadingWorkOrders$: Observable = this.loadingWorkOrders$$.asObservable();\n\n constructor(private fulfillmentOrderApiService: FulfillmentOrderApiService) {}\n\n getWorkOrdersForSalesOrder(salesOrderId: string, businessId: string): Observable {\n this.loadingWorkOrders$$.next(true);\n return this.fulfillmentOrderApiService\n .getFulfillmentOrdersForSalesOrder(\n new GetFulfillmentOrdersForSalesOrderRequest({\n salesOrderId,\n businessId,\n pageSize: PAGE_SIZE,\n }),\n )\n .pipe(\n take(1),\n expand((resp: GetFulfillmentOrdersForSalesOrderResponse) =>\n iif(\n () => resp?.hasMore,\n this.fulfillmentOrderApiService.getFulfillmentOrdersForSalesOrder(\n new GetFulfillmentOrdersForSalesOrderRequest({\n salesOrderId,\n businessId,\n pageSize: PAGE_SIZE,\n cursor: resp?.nextCursor,\n }),\n ),\n EMPTY,\n ),\n ),\n scan((prev: FulfillmentOrder[], curr: GetFulfillmentOrdersForSalesOrderResponse) => {\n if (curr?.fulfillmentOrders?.length > 0) {\n prev.push(...curr.fulfillmentOrders);\n }\n return prev;\n }, []),\n catchError((err) => {\n this.loadingWorkOrders$$.next(false);\n throw err;\n }),\n publishReplay(1),\n refCount(),\n tap(() => this.loadingWorkOrders$$.next(false)),\n );\n }\n}\n"], "mappings": "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BACV,EACA,SAAY,CACV,eAAkB,qBAClB,aAAgB,+CAClB,CACF,EACA,oBAAuB,CACrB,MAAS,cACT,iBAAoB,cACpB,mBAAsB,kCACxB,EACA,wBAA2B,CACzB,QAAW,UACX,QAAW,UACX,YAAe,cACf,UAAa,YACb,cAAiB,gBACjB,UAAa,YACb,SAAY,WACZ,eAAkB,iBAClB,UAAa,WACf,EACA,sBAAyB,CACvB,QAAW,CACT,GAAM,kBACN,OAAU,sBACV,IAAO,kBACP,MAAS,iBACX,EACA,gBAAmB,CACjB,GAAM,UACN,OAAU,kBACV,IAAO,UACP,MAAS,SACX,EACA,UAAa,CACX,GAAM,eACN,OAAU,eACV,IAAO,eACP,MAAS,cACX,EACA,YAAe,CACb,GAAM,cACN,OAAU,cACV,IAAO,cACP,MAAS,aACX,EACA,UAAa,CACX,GAAM,YACN,OAAU,YACV,IAAO,YACP,MAAS,WACX,EACA,SAAY,CACV,GAAM,WACN,OAAU,WACV,IAAO,WACP,MAAS,UACX,EACA,QAAW,CACT,GAAM,UACN,OAAU,UACV,IAAO,UACP,MAAS,SACX,EACA,SAAY,CACV,GAAM,WACN,OAAU,WACV,IAAO,WACP,MAAS,UACX,CACF,EACA,QAAW,CACT,gBAAmB,kBACnB,MAAS,WACT,MAAS,cACX,EACA,aAAgB,CACd,UAAa,CACX,MAAS,QACT,UAAa,YACb,QAAW,SACb,EACA,gBAAmB,CACjB,MAAS,gBACT,iBAAoB,eACpB,aAAgB,eAChB,UAAa,iBACb,QAAW,UACX,QAAW,UACX,QAAW,UACX,KAAQ,OACR,eAAkB,iBAClB,0BAA6B,WAC7B,eAAkB,iBAClB,eAAkB,OAClB,gBAAmB,QACnB,SAAY,oBACd,EACA,iBAAoB,CAClB,mBAAsB,qBACtB,OAAU,SACV,SAAY,WACZ,SAAY,WACZ,YAAe,aACjB,EACA,sBAAyB,CACvB,QAAW,qBACX,YAAe,cACf,sBAAyB,uBAC3B,EACA,OAAU,CACR,MAAS,kBACT,SAAY,oCACZ,KAAQ,MACV,EACA,oBAAuB,CACrB,MAAS,eACT,mBAAsB,sDACtB,0BAA6B,oFAC/B,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", "names": ["UsersServiceInterfaceToken", "InjectionToken", "en_devel_default", "CreateUserFormComponent", "constructor", "snackbarService", "userService", "accountGroupId", "partnerId", "userCreated", "EventEmitter", "isCreatingUser$$", "BehaviorSubject", "isCreatingUser$", "asObservable", "form", "FormGroup", "first_name", "FormControl", "last_name", "user_email", "Validators", "required", "emailValidator", "phone", "isCreatingUser", "createUser", "invalid", "markAsDirty", "openErrorSnack", "next", "user", "email", "value", "firstName", "lastName", "userOptions", "sendWelcomeEmail", "createSMBUser", "pipe", "take", "catchError", "err", "errTranslationId", "data", "message", "includes", "subscribe", "responseUser", "emit", "openSuccessSnack", "\u0275\u0275directiveInject", "SnackbarService", "UsersServiceInterfaceToken", "selectors", "inputs", "outputs", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "controls", "_CreateUserFormComponent", "UserFullNamePipe", "transform", "firstName", "lastName", "name", "pure", "standalone", "_UserFullNamePipe", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "user_r5", "firstName", "lastName", "\u0275\u0275template", "AddUserDialogComponent_ng_template_0_div_2_div_3_Template", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r4", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "addUserToSelected", "\u0275\u0275property", "\u0275\u0275textInterpolate", "email", "doesUserExist", "\u0275\u0275element", "\u0275\u0275pipeBind1", "_r6", "loadMore", "_r2", "term$", "next", "AddUserDialogComponent_ng_template_0_div_2_Template", "AddUserDialogComponent_ng_template_0_div_4_Template", "AddUserDialogComponent_ng_template_0_div_6_Template", "AddUserDialogComponent_ng_template_0_button_10_Template", "users$", "loading$", "tmp_6_0", "length", "hasMoreResults$", "\u0275\u0275elementContainer", "\u0275\u0275elementContainerStart", "_r7", "tabChanged", "userCreated", "AddUserDialogComponent_ng_container_7_ng_container_10_Template", "\u0275\u0275propertyInterpolate", "accountGroupId", "partnerId", "addForm_r8", "_r9", "dialogRef", "close", "isLoading$", "UserAction", "AddUserDialogComponent", "constructor", "data", "userService", "subscriptions", "showCreateTab", "Subject", "loading$$", "BehaviorSubject", "asObservable", "existingUsers", "selectedUsers", "addedUsers", "isLoading$$", "tab$$", "ReplaySubject", "tab$", "_destroy$$", "businessId", "ngOnInit", "CREATE", "ADD", "search", "push", "pipe", "debounceTime", "subscribe", "x", "tap", "ngAfterViewInit", "createFormComponent", "isCreatingUser", "takeUntil", "isLoading", "ngOnDestroy", "forEach", "sub", "unsubscribe", "complete", "addSelectedUsers", "usersToAdd", "user", "addUsersToAccount", "map", "userId", "action", "users", "error", "event", "checked", "index", "indexOf", "splice", "filter", "existingUser", "createUser", "onSubmit", "take", "tab", "\u0275\u0275directiveInject", "MatDialogRef", "MAT_DIALOG_DATA", "UsersServiceInterfaceToken", "selectors", "viewQuery", "rf", "ctx", "AddUserDialogComponent_ng_template_0_Template", "\u0275\u0275templateRefExtractor", "AddUserDialogComponent_ng_container_7_Template", "AddUserDialogComponent_ng_container_9_Template", "i0", "_r1", "AddUserDialogComponent_ng_container_20_Template", "AddUserDialogComponent_ng_template_22_Template", "\u0275\u0275pureFunction1", "_c1", "createButtonText_r10", "_AddUserDialogComponent", "UsersModule", "CommonModule", "TranslateModule", "ReactiveFormsModule", "GalaxyButtonLoadingIndicatorModule", "MatButtonModule", "MatCheckboxModule", "MatDialogModule", "MatIconModule", "MatProgressSpinnerModule", "MatTabsModule", "VaFilterModule", "LexiconModule", "forChild", "componentName", "baseTranslation", "MatInputModule", "GalaxyInputModule", "_UsersModule", "en_devel_default", "WorkOrderPersona", "vendorStatusColorMap", "Map", "FulfillmentOrderStatus", "FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED", "FULFILLMENT_ORDER_STATUS_IN_REVIEW", "FULFILLMENT_ORDER_STATUS_IN_PROGRESS", "FULFILLMENT_ORDER_STATUS_COMPLETED", "FULFILLMENT_ORDER_STATUS_CANCELLED", "FULFILLMENT_ORDER_STATUS_UNSET", "nonVendorStatusColorMap", "statusColorMap", "WorkOrderPersona", "VENDOR", "CP", "SALES", "SMB", "DisplayedStatusValuesEnum", "VENDOR_REVIEW_PERSONAS", "fulfillmentOrderStatusToString", "status", "persona", "DETAILS_NEEDED", "IN_PROGRESS", "COMPLETED", "CANCELED", "FULFILLMENT_ORDER_STATUS_ON_HOLD", "ON_HOLD", "includes", "VENDOR_REVIEW", "IN_REVIEW", "UNSET", "getTemporaryStorageKey", "businessId", "appId", "buildTemporaryStorageKey", "id", "index", "startsWith", "undefined", "doesWorkOrderFormHaveUnsavedChanges", "formGroup", "Object", "keys", "controls", "reduce", "prev", "currentKey", "sessionStorage", "getItem", "clearUnsavedChangesFromSessionStorage", "forEach", "key", "removeItem", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "StatusBadgeComponent_Conditional_0_Conditional_3_Template", "\u0275\u0275classProp", "ctx_r0", "clickableMenu", "\u0275\u0275property", "displayedColor", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "displayedValue", "\u0275\u0275conditional", "StatusBadgeComponent", "constructor", "_persona", "signal", "WorkOrderPersona", "VENDOR", "_foStatus", "FulfillmentOrderStatus", "FULFILLMENT_ORDER_STATUS_UNSET", "computed", "statusColorMap", "get", "fulfillmentOrderStatusToString", "persona", "set", "value", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "StatusBadgeComponent_Conditional_0_Template", "GalaxyBadgeModule", "BadgeComponent", "MatIconModule", "MatIcon", "TranslateModule", "TranslatePipe", "styles", "_StatusBadgeComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "thermometerProgress", "thermometerSuffix", "\u0275\u0275textInterpolate", "wo_r2", "workOrderId", "\u0275\u0275template", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_mat_list_item_1_ng_template_3_span_2_Template", "appName", "isMobile$", "isVendor", "\u0275\u0275elementContainer", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "\u0275\u0275nextContext", "$implicit", "\u0275\u0275resetView", "handleChevronClick", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_mat_list_item_1_a_6_ng_container_1_Template", "appName_r4", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_mat_list_item_1_ng_template_3_Template", "\u0275\u0275templateRefExtractor", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_mat_list_item_1_a_6_Template", "appIconUrl", "workOrderLandingPageUrl", "workOrderLandingPageRouterLinkUrl", "workOrderStatus", "persona", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_mat_list_item_1_Template", "hasForm", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_ng_container_1_Template", "workOrders", "WorkOrderSalesOrderSummaryComponent_div_0_ng_container_4_Template", "WorkOrderSalesOrderSummaryComponent_div_0_ng_template_5_Template", "WorkOrderSalesOrderSummaryComponent_div_0_mat_card_content_7_Template", "WorkOrderSalesOrderSummaryComponent_div_0_mat_list_8_Template", "notVendor_r5", "includeThermometer", "length", "WorkOrderSalesOrderSummaryComponent", "constructor", "translateService", "breakpointObserver", "router", "route", "WorkOrderPersona", "VENDOR", "ngOnInit", "observe", "Breakpoints", "XSmall", "Small", "pipe", "map", "bp", "matches", "completed", "reduce", "prev", "curr", "FulfillmentOrderStatus", "FULFILLMENT_ORDER_STATUS_COMPLETED", "total", "instant", "wo", "navigate", "relativeTo", "fragment", "window", "open", "\u0275\u0275directiveInject", "TranslateService", "BreakpointObserver", "Router", "ActivatedRoute", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "WorkOrderSalesOrderSummaryComponent_div_0_Template", "_WorkOrderSalesOrderSummaryComponent", "AccountCityPipe", "transform", "account", "city", "state", "zip", "filter", "Boolean", "join", "pure", "_AccountCityPipe", "AccountPhonePipe", "transform", "account", "workNumber", "pure", "_AccountPhonePipe", "DigitalAgentNamePipe", "transform", "digitalAgent", "firstName", "lastName", "filter", "Boolean", "join", "pure", "_DigitalAgentNamePipe", "GetAccountInfoPipe", "_accountInfoCache", "constructor", "accountGroupService", "__privateAdd", "Map", "transform", "accountGroupId", "of", "accountGroupFromCache", "__privateGet", "get", "ProjectionFilter", "napData", "pipe", "map", "accountGroup", "tap", "accountInfo", "set", "\u0275\u0275directiveInject", "AccountGroupService", "pure", "_GetAccountInfoPipe", "GetProductInfoPipe", "_productInfoCache", "constructor", "marketplacePackagesApiService", "__privateAdd", "Map", "transform", "fulfillmentOrder", "of", "productFromCache", "__privateGet", "get", "appId", "getMultiProducts", "partnerId", "resellerPartnerId", "productIds", "pipe", "map", "products", "product", "tap", "set", "\u0275\u0275directiveInject", "MarketplacePackagesApiService", "pure", "_GetProductInfoPipe", "ProjectStatusMap", "Map", "Status", "Open", "name", "color", "InProgress", "WaitingOnCustomer", "Completed", "ProjectStatusOptionPipe", "transform", "status", "ProjectStatusMap", "get", "pure", "_ProjectStatusOptionPipe", "DisplayFulfillmentOrderStatusPipe", "constructor", "translateService", "transform", "value", "instant", "\u0275\u0275directiveInject", "TranslateService", "pure", "_DisplayFulfillmentOrderStatusPipe", "pipes", "AccountCityPipe", "AccountPhonePipe", "DigitalAgentNamePipe", "GetAccountInfoPipe", "GetProductInfoPipe", "ProjectStatusOptionPipe", "DisplayFulfillmentOrderStatusPipe", "FulfillmentOrderPipesModule", "imports", "CommonModule", "_FulfillmentOrderPipesModule", "PendingActivationApprovalDialogueComponent", "constructor", "dialogue", "handleClick", "close", "\u0275\u0275directiveInject", "MatDialogRef", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "CommonModule", "MatDialogModule", "MatDialogClose", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatButtonModule", "MatButton", "GalaxyFormFieldModule", "MatInputModule", "TranslateModule", "TranslatePipe", "styles", "_PendingActivationApprovalDialogueComponent", "PendingApprovalDeclineComponent", "constructor", "dialogue", "handleClick", "rejectionReason", "close", "\u0275\u0275directiveInject", "MatDialogRef", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "rejectionReason_r2", "\u0275\u0275reference", "\u0275\u0275resetView", "value", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275propertyInterpolate", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "CommonModule", "GalaxyFormFieldModule", "FormFieldComponent", "MatButtonModule", "MatButton", "MatDialogModule", "MatDialogClose", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatInputModule", "MatInput", "TranslateModule", "TranslatePipe", "styles", "_PendingApprovalDeclineComponent", "PendingApprovalServiceInterfaceToken", "InjectionToken", "IsActivationPendingPipe", "transform", "status", "PendingActivationStatus", "PENDING_ACTIVATION_STATUS_PENDING", "pure", "standalone", "_IsActivationPendingPipe", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "pendingActivation_r2", "\u0275\u0275nextContext", "$implicit", "ctx_r2", "\u0275\u0275resetView", "decline", "approve", "\u0275\u0275advance", "\u0275\u0275property", "tmp_4_0", "\u0275\u0275pipeBind1", "fulfillmentOrder", "iconUrl", "appInfo", "appName", "\u0275\u0275textInterpolate", "\u0275\u0275textInterpolate1", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "PendingApprovalsCardComponent_div_0_ng_container_7_div_1_Template", "pendingActivationInfo", "activationStatuses", "PendingApprovalsCardComponent_div_0_ng_container_7_Template", "pendingActivationIds", "PendingApprovalsCardComponent", "constructor", "dialog", "pendingApprovalService", "snackbarService", "appsService", "pendingActivationChange", "EventEmitter", "PendingActivationStatus", "pendingActivation", "open", "PendingActivationApprovalDialogueComponent", "afterClosed", "pipe", "switchMap", "result", "resolvePendingActivation", "appId", "businessId", "EMPTY", "subscribe", "openSuccessSnack", "filter", "id", "emit", "openErrorSnack", "PendingApprovalDeclineComponent", "rejectionReason", "getApp", "app", "restrictions", "appRequirement", "rules", "appIds", "addonId", "\u0275\u0275directiveInject", "MatDialog", "PendingApprovalServiceInterfaceToken", "SnackbarService", "MarketplaceAppService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PendingApprovalsCardComponent_div_0_Template", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "MatCardModule", "MatCard", "MatCardContent", "MatCardHeader", "MatCardTitle", "MatButtonModule", "MatButton", "GalaxyAvatarModule", "AvatarComponent", "IsActivationPendingPipe", "FulfillmentOrderPipesModule", "GetProductInfoPipe", "TranslateModule", "TranslatePipe", "styles", "_PendingApprovalsCardComponent", "FormConflictDialogComponent", "constructor", "dialogRef", "data", "handleRefreshPage", "window", "location", "reload", "\u0275\u0275directiveInject", "MatDialogRef", "MAT_DIALOG_DATA", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "_FormConflictDialogComponent", "FormErrorDialogComponent", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "_FormErrorDialogComponent", "FormConfirmDialogComponent", "constructor", "dialogRef", "handleSubmitClick", "close", "\u0275\u0275directiveInject", "MatDialogRef", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "_FormConfirmDialogComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "e_r3", "\u0275\u0275restoreView", "_r2", "$implicit", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "remove", "userId", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "email", "$event", "_r5", "preventBlur", "\u0275\u0275property", "u_r6", "\u0275\u0275pipeBind1", "_r7", "presentAddUserDialog", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SendEmailDialogComponent_ng_container_20_mat_option_1_Template", "SendEmailDialogComponent_ng_container_20_mat_option_2_Template", "users_r8", "allowUserManagement", "SendEmailDialogComponent", "constructor", "dialogRef", "dialog", "data", "subscriptions", "separatorKeysCodes", "ENTER", "COMMA", "SPACE", "SEMICOLON", "TAB", "filteredUsers$$", "BehaviorSubject", "filteredUsers$", "asObservable", "errorMessage$$", "Subject", "allUsers", "partnerId", "businessId", "selectedUsers", "ngOnInit", "emailControl", "UntypedFormControl", "push", "valueChanges", "pipe", "startWith", "map", "value", "_filter", "slice", "subscribe", "users", "next", "add", "event", "trim", "user", "find", "u", "_pushUser", "selected", "option", "emailInput", "nativeElement", "setValue", "e", "stopPropagation", "preventDefault", "index", "indexOf", "splice", "_updateErrorState", "length", "emailChipList", "errorState", "close", "save", "userIds", "unifiedId", "childDialogRef", "open", "AddUserDialogComponent", "width", "showCreateTab", "showAddTab", "existingUsers", "afterClosed", "result", "getValue", "action", "UserAction", "ADD", "CREATE", "ngOnDestroy", "forEach", "s", "unsubscribe", "filterValue", "toLowerCase", "filter", "formatUser", "formattedUser", "names", "firstName", "lastName", "join", "\u0275\u0275directiveInject", "MatDialogRef", "MatDialog", "MAT_DIALOG_DATA", "selectors", "viewQuery", "rf", "ctx", "SendEmailDialogComponent_mat_chip_row_11_Template", "\u0275\u0275element", "i0", "_r1", "SendEmailDialogComponent_ng_container_20_Template", "\u0275\u0275textInterpolate", "autoEmail_r10", "emailList_r9", "FormatUserPipe", "styles", "_SendEmailDialogComponent", "transform", "pure", "standalone", "_FormatUserPipe", "WorkOrderModule", "CommonModule", "ReactiveFormsModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "baseTranslation", "MatBadgeModule", "MatButtonModule", "MatCardModule", "MatDividerModule", "MatIconModule", "MatProgressSpinnerModule", "OverlayModule", "VaIconModule", "VaOrderFormModule", "GalaxySnackbarModule", "ProjectTrackerModule", "GalaxyAvatarModule", "GalaxyBadgeModule", "MatProgressBarModule", "FulfillmentOrderPipesModule", "RouterModule", "MatExpansionModule", "MatDialogModule", "GalaxyAlertModule", "MatListModule", "PendingApprovalsCardComponent", "GalaxyFormFieldModule", "MatChipsModule", "MatAutocompleteModule", "MatFormFieldModule", "MatInputModule", "FormsModule", "UsersModule", "StatusBadgeComponent", "_WorkOrderModule", "WorkOrderFormConfigService", "constructor", "formSubmissionService", "formConfigService", "getFormConfig", "salesOrderId", "appId", "businessId", "getLatestFulfillmentFormSubmission", "GetLatestFulfillmentFormSubmissionRequest", "pipe", "map", "response", "fulfillmentFormSubmission", "formConfig", "catchError", "err", "status", "getFulfillmentOrderConfig", "GetFulfillmentOrderConfigRequest", "release", "ReleaseType", "RELEASE_TYPE_PUBLISHED", "projectionFilter", "includeFormConfig", "config", "fulfillmentForm", "getLatestSubmission", "of", "resp", "\u0275\u0275inject", "FulfillmentFormSubmissionApiService", "FulfillmentOrderConfigApiService", "factory", "\u0275fac", "providedIn", "_WorkOrderFormConfigService", "WorkOrderFormService", "constructor", "fulfillmentFormSubmissionApiService", "fulfillmentOrderService", "formConfigService", "marketplaceAppsService", "partnerApiService", "salesOrderService", "customerSalesOrderService", "getProductInfo", "appId", "resellerPartnerId", "marketId", "persona", "WorkOrderPersona", "VENDOR", "getApp", "fieldMask", "paths", "pipe", "map", "resp", "app", "product", "productId", "name", "tagline", "icon", "getMultiApp", "GetMultiAppRequest", "appKeys", "partnerId", "take", "response", "apps", "appType", "AppType", "APP_TYPE_APP", "sharedMarketingInformation", "iconUrl", "parentRequirements", "parentDetails", "key", "addonInfo", "addonId", "updateFormSubmission", "request", "upsertFulfillmentFormSubmission", "version", "doesWorkOrderHaveForm", "getFulfillmentOrderConfig", "GetFulfillmentOrderConfigRequest", "projectionFilter", "includeFormConfig", "Boolean", "config", "usesFulfillmentForm", "getPreviewOrderActivationProductIds", "salesOrderId", "businessId", "isSMB", "previewOrderActivations", "activations", "productIds", "activation", "filter", "index", "indexOf", "switchMap", "configs$", "release", "ReleaseType", "RELEASE_TYPE_PUBLISHED", "combineLatest", "responses", "isEnabled", "getOrdersToRenderFormsFor", "includeSalesInfo", "getFulfillmentOrdersForSalesOrder", "GetFulfillmentOrdersForSalesOrderRequest", "cursor", "pageSize", "includeAppInfo", "includeBusinessInfo", "fulfillmentOrders", "\u0275\u0275inject", "FulfillmentFormSubmissionApiService", "FulfillmentOrderApiService", "FulfillmentOrderConfigApiService", "MarketplaceAppsApiService", "PartnerApiService", "SalesOrdersService", "CustomerSalesOrdersService", "factory", "\u0275fac", "providedIn", "_WorkOrderFormService", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSubmitClicked", "\u0275\u0275text", "\u0275\u0275elementEnd", "handleSaveProgressClicked", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "submitLoading$$", "\u0275\u0275textInterpolate1", "saveProgressLoading$$", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c4", "timestamp_r4", "_r3", "handleSaveChangesClicked", "\u0275\u0275template", "WorkOrderFormComponent_ng_container_0_ng_template_7_div_0_div_3_div_6_Template", "tmp_8_0", "latestSubmission$", "updated", "WorkOrderFormComponent_ng_container_0_ng_template_7_div_0_ng_container_1_Template", "WorkOrderFormComponent_ng_container_0_ng_template_7_div_0_div_3_Template", "formSubmitted$$", "WorkOrderFormComponent_ng_container_0_ng_template_7_div_0_Template", "readOnly", "\u0275\u0275element", "WorkOrderFormComponent_ng_container_0_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "form", "orderForm$$", "fileUploadUrl", "\u0275\u0275pureFunction0", "_c1", "productInfo$$", "answers$", "_c2", "\u0275\u0275pureFunction2", "_c3", "showOfficeUseQuestions", "users", "accountGroupId", "extraHeaderContent", "bottomActionsContent_r5", "WorkOrderFormComponent", "persona", "persona$$", "next", "constructor", "workOrderFormV2Service", "snackbarService", "environmentService", "dialog", "workOrderFormConfigService", "productAnalyticsService", "route", "fulfillmentOrderForm", "OrderForm", "fulfillmentOrderStatusChanged", "EventEmitter", "submitClicked", "doneLoading", "UntypedFormGroup", "ReplaySubject", "BehaviorSubject", "submittedSubject$$", "foStatus$$", "WorkOrderPersona", "CP", "underReview$$", "subscriptions", "lastViewedTimestamp$$", "trackEvent", "ngOnInit", "getEnvironmentString", "config$", "getFormConfig", "salesOrderId", "appId", "pipe", "tap", "status", "shareReplay", "refCount", "bufferSize", "hasForm$", "map", "config", "orderForm", "length", "getLatestSubmission", "take", "latestSubmission", "version", "push", "switchMap", "getProductInfo", "resellerPartnerId", "marketId", "productInfo", "subscribe", "combineLatest", "filter", "submission", "getCustomFieldsAnswersFromFulfillmentFormSubmission", "withLatestFrom", "info", "__spreadProps", "__spreadValues", "productId", "addonId", "addonInfo", "customFields", "cf", "options", "optionsWithLabels", "foStatus", "FulfillmentOrderStatus", "FULFILLMENT_ORDER_STATUS_IN_REVIEW", "VENDOR", "Boolean", "FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED", "emit", "ngAfterViewInit", "fragment$", "fragment", "element", "document", "getElementById", "scrollIntoView", "answers", "formAnswers", "forEach", "formAnswer", "cfAnswers", "fields", "f", "answer", "fieldId", "customFieldsAnswersToAdd", "productID", "customFieldsAnswers", "addonKey", "formId", "unshift", "salesOrderFieldTypeToFieldType", "salesOrderFieldType", "SalesOrdersFieldType", "CHECKBOX", "FieldType", "FIELD_TYPE_CHECKBOX", "DROPDOWN", "FIELD_TYPE_DROPDOWN", "FILE", "FIELD_TYPE_FILE", "TEXT", "FIELD_TYPE_TEXT", "TEXTAREA", "FIELD_TYPE_TEXT_AREA", "VBCUSER", "FIELD_TYPE_VBCUSER", "FIELD_TYPE_NOT_SPECIFIED", "getCustomFieldValues", "orderFormComponent", "getCustomFormData", "field", "fieldType", "req", "valid", "open", "FormConfirmDialogComponent", "afterClosed", "result", "businessId", "lastViewedTimestamp", "getValue", "updateFormSubmission", "UpsertFulfillmentFormSubmissionRequest", "catchError", "err", "tempStorageKey", "getTemporaryStorageKey", "sessionStorage", "removeItem", "FormConflictDialogComponent", "width", "EMPTY", "finalize", "of", "openSuccessSnack", "openErrorSnack", "markAllAsTouched", "FormErrorDialogComponent", "areTouchedFormControlsValid", "touchedControls", "controls", "key", "control", "k", "innerControl", "touched", "addControl", "i", "toString", "ngOnDestroy", "sub", "unsubscribe", "\u0275\u0275directiveInject", "WorkOrderFormService", "SnackbarService", "EnvironmentService", "MatDialog", "WorkOrderFormConfigService", "ProductAnalyticsService", "ActivatedRoute", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "WorkOrderFormComponent_ng_container_0_Template", "CommonModule", "NgIf", "AsyncPipe", "DatePipe", "FormsModule", "\u0275NgNoValidate", "NgControlStatusGroup", "ReactiveFormsModule", "FormGroupDirective", "VaOrderFormModule", "OrderFormComponent", "MatButtonModule", "MatButton", "GalaxyLoadingSpinnerModule", "TranslateModule", "TranslatePipe", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "GalaxyEmptyStateModule", "WorkOrderModule", "MatCheckboxModule", "MatExpansionModule", "styles", "changeDetection", "_WorkOrderFormComponent", "WorkOrderFormUnsavedChangesGuard", "canDeactivate", "component", "workOrderUnsavedChangesComponent", "getWorkOrderDetailsComponent", "Function", "pendingChangesDialog", "factory", "\u0275fac", "providedIn", "_WorkOrderFormUnsavedChangesGuard", "WorkOrderUnsavedChangesComponent", "beforeUnloadEvent", "$event", "canDeactivate", "returnValue", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275listener", "\u0275\u0275resolveWindow", "_WorkOrderUnsavedChangesComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "WorkOrderChecklistComponent_li_8_mat_icon_1_Template", "WorkOrderChecklistComponent_li_8_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275listener", "wo_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleChecklistClick", "appId", "\u0275\u0275advance", "\u0275\u0275property", "status", "FULFILLMENT_ORDER_STATUS_DETAILS_NEEDED", "checkedIcon_r4", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "appInfo", "appName", "WorkOrderChecklistComponent", "constructor", "translateService", "router", "workOrders", "FulfillmentOrderStatus", "checklistTooltipText", "instant", "positions", "__spreadValues", "PopoverPositions", "BottomLeft", "navigate", "fragment", "\u0275\u0275directiveInject", "TranslateService", "Router", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "WorkOrderChecklistComponent_li_8_Template", "CommonModule", "NgForOf", "NgIf", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "GalaxyTooltipModule", "GalaxyTooltipDirective", "TranslateModule", "TranslatePipe", "MatIconModule", "MatIcon", "styles", "_WorkOrderChecklistComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "accountGroup_r1", "companyName", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "address", "address2", "workNumber", "\u0275\u0275template", "WorkOrderContextComponent_Conditional_0_Conditional_9_p_4_Template", "\u0275\u0275property", "WorkOrderContextComponent_Conditional_0_Conditional_5_Template", "WorkOrderContextComponent_Conditional_0_Conditional_6_Template", "WorkOrderContextComponent_Conditional_0_p_7_Template", "WorkOrderContextComponent_Conditional_0_p_8_Template", "WorkOrderContextComponent_Conditional_0_Conditional_9_Template", "\u0275\u0275conditional", "WorkOrderContextComponent", "constructor", "accountGroupService", "ngOnInit", "accountGroup$", "get", "accountGroupId", "ProjectionFilter", "napData", "pipe", "map", "business", "city", "state", "filter", "Boolean", "join", "zip", "country", "\u0275\u0275directiveInject", "AccountGroupService", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "WorkOrderContextComponent_Conditional_0_Template", "tmp_0_0", "CommonModule", "NgIf", "AsyncPipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "TranslateModule", "TranslatePipe", "styles", "_WorkOrderContextComponent", "WorkOrderUnsavedChangesDialogResult", "WorkOrderUnsavedChangesDialogComponent", "constructor", "dialogRef", "continueEditing", "close", "CONTINUE_EDITING", "\u0275\u0275directiveInject", "MatDialogRef", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "DISCARD_CHANGES", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "CommonModule", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "styles", "_WorkOrderUnsavedChangesDialogComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openSendEmailDialog", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "_r3", "popover_r4", "\u0275\u0275reference", "open", "close", "\u0275\u0275property", "\u0275\u0275element", "\u0275\u0275template", "WorkOrderDetailsComponent_glxy_page_0_button_10_Template", "WorkOrderDetailsComponent_glxy_page_0_div_11_Template", "\u0275\u0275elementContainer", "\u0275\u0275textInterpolate", "previousPageUrl", "persona", "WorkOrderPersona", "SMB", "users", "length", "allowUserManagement", "popoverPosition", "woForms_r5", "wo_r7", "status", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_div_3_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "$event", "_r6", "$implicit", "statusChanged", "i_r8", "index", "handleDoneLoading", "salesOrderId", "appId", "businessId", "marketId", "resellerPartnerId", "fulfillmentOrderId", "extraHeaderContent_r9", "showOfficeUseQuestions", "workOrders_r10", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_div_6_work_order_checklist_3_Template", "\u0275\u0275elementContainerStart", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_div_3_Template", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_div_4_Template", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_div_6_Template", "woFormDoneLoading$", "WorkOrderDetailsComponent_ng_template_1_ng_container_0_Template", "workOrders$", "WorkOrderDetailsComponent", "WorkOrderUnsavedChangesComponent", "allUsers", "map", "user", "convertToLibUser", "constructor", "route", "workOrderFormService", "dialog", "snackbarService", "fulfillmentOrderService", "fulfillmentOrderConfigApiService", "CP", "hidePageWrapper", "workOrders$$", "BehaviorSubject", "asObservable", "subscriptions", "combinedFormGroup", "UntypedFormGroup", "PopoverPositions", "BottomRight", "woFormDoneLoadingMap$$", "Map", "ngOnInit", "getOrdersToRenderFormsFor", "pipe", "take", "switchMap", "workOrders", "filterOrdersWithForms", "subscribe", "next", "forEach", "_", "i", "loadingMap", "getValue", "set", "woLoadingMap", "loadingValues", "Array", "from", "values", "every", "value", "ngAfterViewInit", "fragment$", "fragment", "statusBadges$", "statusBadges", "changes", "push", "combineLatest", "find", "sb", "document", "getElementById", "scrollIntoView", "workOrderForms", "a", "toArray", "woFormComp", "key", "getTemporaryStorageKey", "accountGroupId", "contains", "setControl", "form", "newStatus", "wo", "actualWorkOrders", "findIndex", "w", "afterClosed$", "SendEmailDialogComponent", "width", "data", "partnerId", "afterClosed", "resp", "userIds", "of", "undefined", "itemNames", "appInfo", "appName", "mergeMap", "userId", "sendFulfillmentOrder", "openSuccessSnack", "error", "openErrorSnack", "orders", "apiCalls", "order", "getFulfillmentOrderConfig", "response", "config", "forkJoin", "configs", "filter", "usesFulfillmentForm", "canDeactivate", "doesWorkOrderFormHaveUnsavedChanges", "pendingChangesDialog", "closeAll", "WorkOrderUnsavedChangesDialogComponent", "result", "WorkOrderUnsavedChangesDialogResult", "CONTINUE_EDITING", "tap", "clearUnsavedChangesFromSessionStorage", "ngOnDestroy", "sub", "unsubscribe", "unifiedId", "unifiedUserId", "email", "firstName", "lastName", "phoneNumber", "\u0275\u0275directiveInject", "ActivatedRoute", "WorkOrderFormService", "MatDialog", "SnackbarService", "FulfillmentOrderApiService", "FulfillmentOrderConfigApiService", "selectors", "viewQuery", "rf", "ctx", "StatusBadgeComponent", "WorkOrderFormComponent", "WorkOrderDetailsComponent_glxy_page_0_Template", "WorkOrderDetailsComponent_ng_template_1_Template", "CommonModule", "NgForOf", "NgIf", "NgTemplateOutlet", "AsyncPipe", "WorkOrderModule", "GalaxyPageModule", "PageComponent", "PageToolbarComponent", "PageTitleDirective", "PageNavDirective", "PageNavButtonComponent", "PageActionsDirective", "PageWrapperDirective", "TranslateModule", "TranslatePipe", "MatIconModule", "MatIcon", "MatButtonModule", "MatButton", "MatDialogModule", "GalaxyPopoverModule", "PopoverComponent", "PopoverTitleDirective", "GalaxyPopoverDirective", "WorkOrderChecklistComponent", "WorkOrderContextComponent", "styles", "_WorkOrderDetailsComponent", "PAGE_SIZE", "WorkOrderSalesOrderSummaryService", "constructor", "fulfillmentOrderApiService", "loadingWorkOrders$$", "BehaviorSubject", "loadingWorkOrders$", "asObservable", "getWorkOrdersForSalesOrder", "salesOrderId", "businessId", "next", "getFulfillmentOrdersForSalesOrder", "GetFulfillmentOrdersForSalesOrderRequest", "pageSize", "pipe", "take", "expand", "resp", "iif", "hasMore", "cursor", "nextCursor", "EMPTY", "scan", "prev", "curr", "fulfillmentOrders", "length", "push", "catchError", "err", "publishReplay", "refCount", "tap", "\u0275\u0275inject", "FulfillmentOrderApiService", "factory", "\u0275fac", "providedIn", "_WorkOrderSalesOrderSummaryService"] }