{"version":3,"sources":["./src/app/modules/ranches/add-user-dialog/admin-ranch-add-user-dialog.html","./src/app/modules/ranches/add-user-dialog/admin-ranch-add-user-dialog.ts","./src/app/modules/ranches/admin-ranch-details.html","./src/app/modules/ranches/admin-ranch-details.ts","./src/app/modules/ranches/admin-ranches.module.ts","./src/app/modules/ranches/admin-ranches.html","./src/app/modules/ranches/admin-ranches.routing.ts","./src/app/modules/ranches/admin-ranches.service.ts","./src/app/modules/ranches/admin-ranches.ts","./src/app/modules/ranches/admin-ranches.update.service.ts","./src/app/modules/ranches/adminRanchesCache.ts"],"names":[],"mappings":"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","file":"modules-ranches-admin-ranches-module-ngfactory.1b38ef894b2979242e91.js","sourcesContent":["<div class=\"bk-dialog bk-modal--medium bk-modal--short\">\r\n <button type=\"button\"\r\n class=\"bk-button bk-dialog__close\"\r\n (click)=\"close()\">\r\n ×\r\n </button>\r\n\r\n <h4 mat-dialog-title>\r\n <ng-container *ngIf=\"dialogMode === dialogModes.CREATE\">\r\n {{'Add' | translate }} {{'Ranch Member' | translate }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dialogMode === dialogModes.UPDATE\">\r\n {{'Edit' | translate }} {{'Ranch Member' | translate }}\r\n </ng-container>\r\n </h4>\r\n \r\n <div mat-dialog-content>\r\n\r\n <form *ngIf=\"form\"\r\n [formGroup]=\"form\">\r\n <ng-container *ngIf=\"dialogMode === dialogModes.CREATE\">\r\n <mat-form-field class=\"mat-form-field--w3\" appearance=\"fill\">\r\n <mat-label>{{'Username' | translate }}</mat-label>\r\n <input type=\"text\"\r\n placeholder=\"Search for Ranch Member\"\r\n aria-label=\"Name\"\r\n matInput\r\n [formControl]=\"userControl\"\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\"\r\n (onChange)=\"onUserSelected($event)\">\r\n <mat-option *ngFor=\"let user of usersFiltered | async\" [value]=\"user\">\r\n {{user.Name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </ng-container>\r\n <div *ngIf=\"dialogMode === dialogModes.UPDATE\"\r\n class=\"bk-ranch-member-dialog__user-name\">\r\n {{form.get('name').value}}\r\n </div>\r\n <ng-container *ngIf=\"form.get('permissions').value.length > 0\">\r\n <h4>{{'Access Permissions' | translate }}</h4>\r\n\r\n <div class=\"bk-modal__rows\">\r\n <div class=\"bk-modal__row\"\r\n *ngFor=\"let feature of form.get('permissions').controls; let i = index\">\r\n\r\n <label class=\"bk-modal__row-label bk-dialog__label\">\r\n {{feature.get('FeatureName').value }}\r\n </label>\r\n\r\n <mat-radio-group aria-label=\"\"\r\n name=\"permission_{{feature.get('FeatureName').value}}\"\r\n [formControl]=\"feature.get('PermissionId')\">\r\n\r\n <div class=\"bk-modal__cell\"\r\n *ngFor=\"let permission of permissionTypes\">\r\n\r\n <mat-radio-button [value]=\"permission.PermissionId\"\r\n name=\"permission_{{feature.get('FeatureName').value}}\"\r\n [disabled]=\"isPermissionOptionDisabled(feature.get('FeatureName').value,\r\n permission.PermissionName)\">\r\n {{permission.PermissionName}}\r\n </mat-radio-button>\r\n </div>\r\n </mat-radio-group>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </form>\r\n </div>\r\n\r\n <div mat-dialog-actions align=\"end\">\r\n <button class=\"bk-button bk-button--text-only bk-button--medium\"\r\n (click)=\"close()\">{{'Cancel' | translate }}\r\n </button>\r\n\r\n <button class=\"bk-button bk-button--medium\"\r\n *ngIf=\"dialogMode === dialogModes.CREATE\"\r\n (click)=\"create()\"\r\n [disabled]=\"!form || form.invalid\">\r\n {{'Add' | translate }} {{'Ranch Member' | translate }}\r\n </button>\r\n\r\n <button class=\"bk-button bk-button--medium\"\r\n *ngIf=\"dialogMode === dialogModes.UPDATE\"\r\n (click)=\"update()\">\r\n {{'Save' | translate }}\r\n </button>\r\n </div>\r\n</div>","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { IRanchFeatureEmptyPermissions, IRanchPermissionTypes, IRanchUserListItem, IRanchUserPermissionWithWebAPIViewModel,\r\n\tIUserSearchResult } from '../../../components/ranch-settings/interfaces';\r\nimport { PermissionsService } from '../../../components/ranch-settings/permissions.service';\r\nimport { RanchService } from '../../../components/ranch-settings/service';\r\nimport { CMError } from '../../../interfaces/interfaces';\r\nimport { AdminRanchMemberDialogParams } from '../admin-ranch-details';\r\nimport { AdminRanchesService } from '../admin-ranches.service';\r\nimport { AdminRanchesUpdateService } from '../admin-ranches.update.service';\r\n\r\nexport enum eDialogModes {\r\n\tUPDATE = 1,\r\n\tCREATE = 2\r\n}\r\n\r\nexport type RanchMemberFormFields = 'userId' | 'name' | 'permissions';\r\n\r\n@Component({\r\n\tmoduleId: module.id,\r\n\tselector: 'admin-ranch-add-user-dialog',\r\n\ttemplateUrl: 'admin-ranch-add-user-dialog.html',\r\n\tstyleUrls: ['admin-ranch-add-user-dialog.scss']\r\n})\r\n\r\nexport class AdminRanchAddUserdialogComponent implements OnInit, OnDestroy {\r\n\tpublic form: FormGroup;\r\n\tpublic dialogMode: eDialogModes;\r\n\tpublic dialogModes = eDialogModes; // used in template\r\n\tpublic userControl = new FormControl(); // used for autocomplete\r\n\tpublic permissionTypes: IRanchPermissionTypes[] = new Array();\r\n\tpublic users: IUserSearchResult[] = new Array();\r\n\tpublic usersFiltered: Observable<IUserSearchResult[]>;\r\n\tprivate _ranchGuid: string;\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tpublic get f(): { [key in RanchMemberFormFields]: AbstractControl } {\r\n\t\treturn this.form.controls as { [key in RanchMemberFormFields]: AbstractControl };\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tprivate _adminRanchesService: AdminRanchesService,\r\n\t\t@Inject(MAT_DIALOG_DATA) private _data: AdminRanchMemberDialogParams,\r\n\t\tprivate _dialogRef: MatDialogRef<AdminRanchAddUserdialogComponent>,\r\n\t\tprivate _fb: FormBuilder,\r\n\t\tprivate _permissionsService: PermissionsService,\r\n\t\tprivate _ranchService: RanchService,\r\n\t\tprivate _updateService: AdminRanchesUpdateService,\r\n\t\t) {\r\n\r\n\t\tif (this._data) {\r\n\t\t\tthis._ranchGuid = this._data.Guid;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._subscriptions$ = new Subject();\r\n\t\tthis.permissionTypes = this._permissionsService.getRanchPermissionTypes();\r\n\r\n\t\tif (this._data && this._data.UserId) {\r\n\t\t\tthis.dialogMode = eDialogModes.UPDATE;\r\n\t\t\tthis.users = new Array();\r\n\t\t\tthis._getMemberDetails(this._data.UserId).then(() => {\r\n\t\t\t\tthis.f.name.setValue(this._data.UserFullName);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.dialogMode = eDialogModes.CREATE;\r\n\t\t\tthis._getAvailableUsers();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\tpublic async create(): Promise<void> {\r\n\t\tif (!this.form) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this._adminRanchesService.addRanchMember(this.f.userId.value, this._ranchGuid);\r\n\t\tawait this.update(); // save permissions\r\n\t\tthis._dialogRef.close();\r\n\t\tthis._updateService.addUser();\r\n\t}\r\n\r\n\tpublic close(): void {\r\n\t\tif (this.form && this.form.touched) {\r\n\t\t\t// fire keep/discard\r\n\t\t} else {\r\n\t\t\tthis._dialogRef.close();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic confirmClose(): void {\r\n\t\tthis._dialogRef.close();\r\n\t}\r\n\r\n\t/**\r\n\t * Display user's name in the input box\r\n\t * @param user\r\n\t * @returns\r\n\t */\r\n\tpublic displayFn(user: IUserSearchResult): string {\r\n\t\treturn user && user.Name ? user.Name : '';\r\n\t}\r\n\r\n\tpublic async update(): Promise<void> {\r\n\t\tawait this._permissionsService.editRanchMemberPermissions(\r\n\t\t\tthis.f.userId.value, this.f.permissions.value, this._ranchGuid, true);\r\n\r\n\t\tthis.confirmClose();\r\n\t}\r\n\r\n\t/**\r\n\t * Disables permission options:\r\n\t * 1. if user ID isn't set, permissions are disabled until a user is chosen\r\n\t * 2. for ranch and planting, don't let users choose 'No Access'\r\n\t * @param featureName\r\n\t * @param permissionName\r\n\t */\r\n\tpublic isPermissionOptionDisabled(featureName: string, permissionName: string): boolean {\r\n\t\tif (this.f.userId.value == null) {\r\n\t\t\treturn true;\r\n\t\t} else if ((featureName === 'Ranch' || featureName === 'Planting') && permissionName === 'No Access') {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic onUserChange(value: IUserSearchResult): void {\r\n\t\tif (!value) {\r\n\t\t\tthis._clearNewMember();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._setNewMember(value);\r\n\t}\r\n\r\n\tprivate _clearNewMember() {\r\n\t\tthis._initializeForm(null, this._permissionsService.getRanchFeatureEmptyPermissions());\r\n\t}\r\n\r\n\tprivate _filter(value: string): IUserSearchResult[] {\r\n\t\tlet filterValue: string;\r\n\r\n\t\tfilterValue = value ? value.toLowerCase() : '';\r\n\t\treturn this.users.filter(u => u.Name.toLowerCase().includes(filterValue));\r\n\t}\r\n\r\n\tprivate async _getAvailableUsers(): Promise<void> {\r\n\t\tlet data: IUserSearchResult[];\r\n\r\n\t\tif (!this._ranchGuid) {\r\n\t\t\tthrow new Error('ranchGuid is not defined');\r\n\t\t}\r\n\r\n\t\tdata = await this._adminRanchesService.getNonRanchMembers(this._ranchGuid);\r\n\r\n\t\tthis.users = data;\r\n\t\tthis._initializeForm(null, this._permissionsService.getRanchFeatureEmptyPermissions());\r\n\r\n\t\tthis.usersFiltered = this.userControl.valueChanges.pipe(\r\n\t\t\tstartWith(''),\r\n\t\t\tmap(value => (typeof value === 'string' ? value : value.Name)),\r\n\t\t\tmap(value => this._filter(value)),\r\n\t\t);\r\n\r\n\t\tthis.userControl.valueChanges.pipe(takeUntil(this._subscriptions$)).subscribe((val) => {\r\n\t\t\tif (typeof val !== 'string') {\r\n\t\t\t\tthis.onUserChange(val);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate async _getMemberDetails(userId: string): Promise<void> {\r\n\t\tlet json: IRanchUserPermissionWithWebAPIViewModel | CMError;\r\n\t\tlet error: CMError;\r\n\t\tlet response: IRanchUserPermissionWithWebAPIViewModel;\r\n\r\n\t\tjson = await this._permissionsService.getRanchMemberPermissions(userId,\r\n\t\t\tthis._ranchGuid, false);\r\n\r\n\t\tif (!json) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\terror = json as CMError;\r\n\t\tresponse = json as IRanchUserPermissionWithWebAPIViewModel;\r\n\r\n\t\tif (error.message) {\r\n\t\t\tconsole.warn(error.message);\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tthis._initializeForm(userId, response.Site);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tprivate _initializeForm(userId?: string, permissions?: IRanchFeatureEmptyPermissions[]): void {\r\n\t\tlet temp: FormGroup;\r\n\r\n\t\ttemp = this._fb.group({\r\n\t\t\tuserId: [userId, Validators.required],\r\n\t\t\tname: [null],\r\n\t\t\tpermissions: this._fb.array([])\r\n\t\t});\r\n\r\n\t\tfor (let permission of permissions) {\r\n\t\t\t(temp.get('permissions') as FormArray).push(this._fb.group({\r\n\t\t\t\tFeatureId: [permission.FeatureId, Validators.required],\r\n\t\t\t\tFeatureName: [permission.FeatureName, Validators.required],\r\n\t\t\t\tPermissionId: [permission.PermissionId, Validators.required]\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tthis.form = temp;\r\n\t}\r\n\r\n\tprivate _setNewMember(searchResult: IUserSearchResult) {\r\n\t\tthis._initializeForm(searchResult.UserId, this._permissionsService.getRanchFeatureDefaultPermissions());\r\n\t}\r\n}\r\n","<admin-nav></admin-nav>\r\n<div class=\"bk-admin__page\">\r\n\r\n <h5 *ngIf=\"ranchDetails\" \r\n class=\"bk-text--gray\">\r\n {{ ranchDetails.RanchName }} {{'Details' | translate }}\r\n </h5>\r\n\r\n <div class=\"bk-data-table bk-data-table__weather-stations\">\r\n <div class=\"bk-data-table__head\">\r\n\t\t\t<div class=\"bk-data-table__title\">\r\n \r\n <button mat-flat-button\r\n color=\"primary\"\r\n (click)=\"addMember()\"\r\n class=\"bk-data-table__title--button-right\">\r\n <mat-icon>person_add</mat-icon>\r\n {{ 'Add Member' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bk-data-table__content\">\r\n <mat-table [dataSource]=\"dataSource\" matSort>\r\n\r\n <ng-container matColumnDef=\"UserFullName\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ 'User Name' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.UserFullName}} <mat-icon\r\n class=\"bk-supervisor-icon\"\r\n matTooltip=\"Ranch Owner\"\r\n *ngIf=\"row.IsOwner\">supervisor_account</mat-icon>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n\t\t\t\t<ng-container matColumnDef=\"Email\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ 'Email' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.Email}}\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n <mat-header-cell *matHeaderCellDef>\r\n {{ 'Actions' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\"\r\n class=\"bk-data-table__cell-overflow\">\r\n\r\n <button *ngIf=\"!row.IsOwner\"\r\n (click)=\"editMember(row.UserId)\"\r\n color=\"primary\"\r\n matTooltip=\"Edit ranch member\"\r\n mat-icon-button aria-label=\"Edit ranch member\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!row.IsOwner\"\r\n (click)=\"makeOwner(row.UserId)\"\r\n color=\"primary\"\r\n matTooltip=\"Switch ranch owner to this user\"\r\n mat-icon-button aria-label=\"Switch ranch owner to this user\">\r\n <mat-icon>sync_alt</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!row.IsOwner\"\r\n (click)=\"removeMember(row.UserId)\"\r\n color=\"primary\"\r\n matTooltip=\"Remove ranch member\"\r\n mat-icon-button aria-label=\"Remove ranch member\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n </mat-table>\r\n\r\n <div class=\"bk-data-table__empty\"\r\n *ngIf=\"results && results.length && dataSource && dataSource.filteredData\r\n && dataSource.filteredData.length === 0\">\r\n {{ 'There are no results matching' | translate }} \r\n <span class=\"bk-data-table__empty--filter\">\"{{dataSource.filter}}\"</span>\r\n </div>\r\n\r\n <mat-paginator [pageSizeOptions]=\"[10, 25]\"></mat-paginator>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TokenService } from '../../services/token.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ObjectUtility } from '../../classes/objectUtility';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { AdminRanchesService } from './admin-ranches.service';\r\nimport { AdminRanchesUpdateService } from './admin-ranches.update.service';\r\nimport { IRanchBasicInfoViewModel, IRanchUserListItem } from '../../components/ranch-settings/interfaces';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { eNotificationTypes } from '../../interfaces/constants';\r\nimport { CMError } from '../../interfaces/interfaces';\r\nimport { AdminRanchesCache } from './adminRanchesCache';\r\nimport { AdminRanchAddUserdialogComponent } from './add-user-dialog/admin-ranch-add-user-dialog';\r\nimport { RanchService } from '../../components/ranch-settings/service';\r\nimport { DeleteConfirmationComponent, DeleteConfirmationSettings } from '../../components/shared/dialogs/delete-confirmation';\r\nimport { SharedUpdateService } from '../../components/shared/dialogs/update.service';\r\n\r\nexport interface AdminRanchMemberDialogParams {\r\n\t// ranchId: number,\r\n\tGuid: string\r\n\tUserId?: string,\r\n\tUserFullName?: string\r\n}\r\n\r\n@Component({\r\n\tselector: 'app-admin-ranch-details',\r\n\ttemplateUrl: 'admin-ranch-details.html',\r\n\tstyleUrls: [ 'admin-ranch-details.scss' ]\r\n})\r\nexport class AdminRanchDetailsComponent implements OnInit, OnDestroy {\r\n\t@ViewChild(MatPaginator, { static: true}) paginator: MatPaginator;\r\n\t@ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\tpublic dataSource: MatTableDataSource<IRanchUserListItem>;\r\n\tpublic displayedColumns: string[] = ['UserFullName', 'Email', 'Action'];\r\n\tpublic originalResults: IRanchUserListItem[] = new Array();\r\n\tpublic query = '';\r\n\tpublic ranchDetails: IRanchBasicInfoViewModel;\r\n\tpublic ranchGuid: string;\r\n\tpublic results: IRanchUserListItem[] = new Array();\r\n\tpublic userId: string; // user to be removed\r\n\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tconstructor(\r\n\t\tprivate _adminRanchesCache: AdminRanchesCache,\r\n\t\tprivate _adminRanchesService: AdminRanchesService,\r\n\t\tprivate _dialog: MatDialog,\r\n\t\tprivate _notificationService: NotificationService,\r\n\t\tprivate _ranchService: RanchService,\r\n\t\tprivate _route: ActivatedRoute,\r\n\t\tprivate _router: Router,\r\n\t\tprivate _sharedUpdateService: SharedUpdateService,\r\n\t\tprivate _tokenService: TokenService,\r\n\t\tprivate _updateService: AdminRanchesUpdateService\r\n\t) {\r\n\t\t// On home page, redirect to the app dashboard if already logged in\r\n\t\tif (!this._tokenService.isAuthenticated()) {\r\n\t\t\tthis._router.navigate(['/login']);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._subscriptions$ = new Subject();\r\n\r\n\t\tthis._route.queryParams.pipe(takeUntil(this._subscriptions$)).subscribe(params => {\r\n\t\t\tthis.ranchGuid = params['Guid'];\r\n\r\n\t\t\tif (!this.ranchGuid) {\r\n\t\t\t\tthrow new Error('no guid found');\r\n\t\t\t}\r\n\r\n\t\t\tthis._getRanch();\r\n\r\n\t\t\tthis._list();\r\n\t\t});\r\n\r\n\t\tif (this.sort) {\r\n\t\t\tif (this.sort.sortChange) {\r\n\t\t\t\tthis.sort.sortChange.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t\t\tif (!this.paginator) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twhile (this.paginator.hasPreviousPage()) {\r\n\t\t\t\t\t\tthis.paginator.previousPage();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.sort.sort({ id: 'Name', start: 'asc', disableClear: false });\r\n\t\t}\r\n\r\n\t\tthis._updateService.userAdded.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t// if user is edited or deleted, refresh the view\r\n\t\t\tthis._list();\r\n\t\t});\r\n\r\n\t\tthis._sharedUpdateService.delete$.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\tthis._removeUser();\r\n\t\t});\r\n\r\n\t\tthis._sharedUpdateService.cancel$.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\tthis.userId = null;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\tpublic addMember(): void {\r\n\t\tlet data: AdminRanchMemberDialogParams;\r\n\r\n\t\tdata = {\r\n\t\t\tGuid: this.ranchGuid\r\n\t\t};\r\n\r\n\t\tthis._dialog.open(AdminRanchAddUserdialogComponent, {\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\tpublic editMember(userId: string): void {\r\n\t\tlet data: AdminRanchMemberDialogParams;\r\n\t\tlet user: IRanchUserListItem;\r\n\r\n\t\tuser = this.originalResults.find(x => x.UserId === userId);\r\n\r\n\t\tif (!user) {\r\n\t\t\tthrow new Error('user not found');\r\n\t\t}\r\n\r\n\t\tdata = {\r\n\t\t\tGuid: this.ranchGuid,\r\n\t\t\tUserId: userId,\r\n\t\t\tUserFullName: user.UserFullName\r\n\t\t};\r\n\r\n\t\tthis._dialog.open(AdminRanchAddUserdialogComponent, {\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\tpublic makeOwner(userId: string): void {\r\n\t\tthis._adminRanchesService.changeOwner(this.ranchGuid, userId).then((resp) => {\r\n\t\t\tif (resp) {\r\n\t\t\t\tthis._notificationService.generateNotifcation({\r\n\t\t\t\t\ttype: eNotificationTypes.ERROR,\r\n\t\t\t\t\tmessage: (resp as CMError).message\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis._notificationService.generateNotifcation({\r\n\t\t\t\t\ttype: eNotificationTypes.UPDATE,\r\n\t\t\t\t\tmessage: 'Owner was successfully changed'\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._list(); // refresh view\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic removeMember(userId: string): void {\r\n\t\tlet data: DeleteConfirmationSettings;\r\n\t\tlet user: IRanchUserListItem;\r\n\r\n\t\tuser = this.originalResults.find(x => x.UserId === userId);\r\n\t\tthis.userId = user.UserId;\r\n\r\n\t\tdata = {\r\n\t\t\tobjectName: 'Ranch Member',\r\n\t\t\tspecificName: user.UserFullName,\r\n\t\t\tadditionalMessage: 'This will remove this user from this ranch.'\r\n\t\t};\r\n\r\n\t\tthis._dialog.open(DeleteConfirmationComponent, {\r\n\t\t\tdisableClose: true,\r\n\t\t\tdata: data\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _getRanch(): void {\r\n\t\tthis._ranchService.getRanchBasicInfo(this.ranchGuid, false).then((response) => {\r\n\t\t\tif (!response) {\r\n\t\t\t\tthrow new Error('no ranch information received');\r\n\t\t\t}\r\n\r\n\t\t\tthis.ranchDetails = response;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _list(): void {\r\n\t\tthis._adminRanchesService.getRanchMembers(this.ranchGuid).then((response) => {\r\n\t\t\tthis.originalResults = response;\r\n\t\t\tthis.results = ObjectUtility.copyArray(this.originalResults);\r\n\t\t\tthis._setDataSource(this.results);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * This method triggers after user clicks the \"DELETE\" button\r\n\t * in the DeleteConfirmationComponent\r\n\t */\r\n\tprivate _removeUser(): void {\r\n\t\tif (!this.userId) {\r\n\t\t\tthrow new Error('user ID is not defined');\r\n\t\t}\r\n\r\n\t\tthis._ranchService.deleteRanchUser(this.userId, this.ranchGuid, false)\r\n\t\t\t.then((resp) => {\r\n\t\t\t\tlet error: CMError;\r\n\r\n\t\t\t\terror = resp as CMError;\r\n\r\n\t\t\t\tif (error.code) {\r\n\t\t\t\t\tthis._notificationService.generateNotifcation({\r\n\t\t\t\t\t\ttype: eNotificationTypes.ERROR,\r\n\t\t\t\t\t\tmessage: (resp as CMError).message\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._notificationService.generateNotifcation({\r\n\t\t\t\t\t\ttype: eNotificationTypes.UPDATE,\r\n\t\t\t\t\t\tmessage: 'User was successfully removed'\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis._list(); // refresh view\r\n\t\t\t\t\tthis._sharedUpdateService.deleteComplete();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.userId = null;\r\n\t\t\t})\r\n\t}\r\n\r\n\tprivate _setDataSource(results: IRanchUserListItem[]): void {\r\n\t\tthis.dataSource = new MatTableDataSource(results);\r\n\t\tthis.dataSource.paginator = this.paginator;\r\n\t\tthis.dataSource.sort = this.sort;\r\n\t}\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { AdminRanchesComponent } from './admin-ranches';\r\nimport { AdminRanchesRoutingModule } from './admin-ranches.routing';\r\nimport { AdminRanchesService } from './admin-ranches.service';\r\nimport { AdminRanchesUpdateService } from './admin-ranches.update.service';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdminRanchDetailsComponent } from './admin-ranch-details';\r\nimport { AdminRanchesCache } from './adminRanchesCache';\r\nimport { AdminRanchAddUserdialogComponent } from './add-user-dialog/admin-ranch-add-user-dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SharedUpdateService } from '../../components/shared/dialogs/update.service';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tMatDialogModule,\r\n\t\tCommonModule,\r\n\t\tSharedModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tAdminRanchesRoutingModule,\r\n\t\tMatTableModule,\r\n\t\tMatPaginatorModule,\r\n\t\tMatSortModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatInputModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule\r\n\t],\r\n\tdeclarations: [\r\n\t\tAdminRanchesComponent,\r\n\t\tAdminRanchDetailsComponent,\r\n\t\tAdminRanchAddUserdialogComponent,\r\n\t],\r\n\texports: [\r\n\t],\r\n\tproviders: [\r\n\t\tAdminRanchesService,\r\n\t\tAdminRanchesUpdateService,\r\n\t\tNotificationService,\r\n\t\tAdminRanchesCache,\r\n\t\tSharedUpdateService\r\n\t],\r\n\tentryComponents: [\r\n\t\tAdminRanchAddUserdialogComponent,\r\n\t]\r\n})\r\n\r\nexport class AdminRanchesModule {\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: AdminRanchesModule,\r\n\t\t\tproviders: [\r\n\t\t\t\tAdminRanchesService,\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n}\r\n","<admin-nav></admin-nav>\r\n<div class=\"bk-admin__page\">\r\n\r\n <h5 class=\"bk-text--gray\">\r\n {{'Ranches Management' | translate }}\r\n </h5>\r\n\r\n <div class=\"bk-data-table bk-data-table__weather-stations\">\r\n <div class=\"bk-data-table__head\">\r\n <div class=\"bk-data-table__search\">\r\n\t\t\t\t<mat-form-field class=\"bk-margin-right\" appearance=\"fill\">\r\n\t\t\t\t\t<mat-label>Search</mat-label>\r\n\t\t\t\t\t<input matInput\r\n (keyup)=\"search($event.target.value)\"\r\n placeholder=\"Name\"\r\n [(ngModel)]=\"query\"/>\r\n\t\t\t\t</mat-form-field>\r\n\r\n\t\t\t\t<mat-form-field appearance=\"fill\">\r\n\t\t\t\t\t<mat-label>{{'Ranch Owner' | translate }}</mat-label>\r\n\t\t\t\t\t<input type=\"text\"\r\n\t\t\t\t\t\t placeholder=\"Search for a Ranch Owner\"\r\n\t\t\t\t\t\t aria-label=\"Name\"\r\n\t\t\t\t\t\t matInput\r\n\t\t\t\t\t\t [formControl]=\"ranchOwnerControl\"\r\n\t\t\t\t\t\t [matAutocomplete]=\"auto\">\r\n\t\t\t\t\t<mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\">\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let ownerOption of ranchOwnerOptions | async\" [value]=\"ownerOption\">\r\n\t\t\t\t\t\t\t{{ownerOption.FirstName}} {{ownerOption.LastName}}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-autocomplete>\r\n\t\t\t\t</mat-form-field>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"bk-data-table__content\">\r\n <mat-table [dataSource]=\"dataSource\" matSort>\r\n\r\n\t\t\t\t<ng-container matColumnDef=\"Id\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ 'Id' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.Id}}\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ 'Name' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.Name}}\r\n </mat-cell>\r\n </ng-container>\r\n\r\n\t\t\t\t<ng-container matColumnDef=\"Creator\">\r\n <mat-header-cell *matHeaderCellDef>\r\n {{ 'Creator' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.Creator.FirstName}} {{row.Creator.LastName}}\r\n </mat-cell>\r\n </ng-container>\r\n\r\n\t\t\t\t<ng-container matColumnDef=\"Owner\">\r\n <mat-header-cell *matHeaderCellDef>\r\n {{ 'Owner' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n {{row.Owner.FirstName}} {{row.Owner.LastName}}\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n <mat-header-cell *matHeaderCellDef>\r\n {{ 'Actions' | translate }}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\"\r\n class=\"bk-data-table__cell-overflow\">\r\n <button *ngIf=\"!row.IsOwner\"\r\n (click)=\"edit(row.Id)\"\r\n color=\"primary\"\r\n matTooltip=\"Edit ranch\"\r\n mat-icon-button aria-label=\"Edit ranch member\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n </mat-table>\r\n\r\n <div class=\"bk-data-table__empty\"\r\n *ngIf=\"results && results.length && dataSource && dataSource.filteredData\r\n && dataSource.filteredData.length === 0\">\r\n {{ 'There are no results matching' | translate }} \r\n <span class=\"bk-data-table__empty--filter\">\"{{dataSource.filter}}\"</span>\r\n </div>\r\n\r\n <mat-paginator [pageSizeOptions]=\"[10, 25]\" (page)=\"onPageIndexChanged()\"></mat-paginator>\r\n </div>\r\n </div>\r\n</div>","import { Routes, RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdminRanchesComponent } from './admin-ranches';\r\nimport { AdminRanchDetailsComponent } from './admin-ranch-details';\r\n\r\nconst routes: Routes = [\r\n\t{ path: '', component: AdminRanchesComponent },\r\n\t{ path: 'ranch-details', component: AdminRanchDetailsComponent }\r\n];\r\n\r\n@NgModule({\r\n\timports: [RouterModule.forChild(routes)],\r\n\texports: [RouterModule]\r\n})\r\n\r\nexport class AdminRanchesRoutingModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from '../../services/model.service';\r\nimport { of } from 'rxjs';\r\nimport { CMError } from '../../interfaces/interfaces';\r\nimport { AdminRanchRow, AdminRanchUser } from './interfaces';\r\nimport { IRanchUserListItem, ISuccessResponse, IUserSearchResult } from '../../components/ranch-settings/interfaces';\r\n\r\n@Injectable()\r\nexport class AdminRanchesService extends ModelService {\r\n\r\n\tprivate urls = {\r\n\t\tlist: '/v0/ranches.json',\r\n\t\towners: '/v0/ranch-owners.json',\r\n\t\taddRanchUser: (ranchGuid: string, userGuid: string) => `/v0/ranches/${ranchGuid}/users/${userGuid}.json`,\r\n\t\tnonRanchMembers: (ranchGuid: string) => `/v0/ranches/${ranchGuid}/users/non-members.json`,\r\n\t\tranchMembers: (ranchGuid: string) => `/v0/ranches/${ranchGuid}/users.json`,\r\n\t\tchangeOwner: (ranchGuid: string, userGuid: string) => `/v0/ranches/${ranchGuid}/owner/${userGuid}.json`\r\n\t}\r\n\r\n\tpublic addRanchMember(userGuid: string, ranchGuid: string): Promise<void> {\r\n\r\n\t\treturn this.httpService\r\n\t\t\t.post({\r\n\t\t\t\turl: this.urls.addRanchUser(ranchGuid, userGuid),\r\n\t\t\t\tisWebAPI: true,\r\n\t\t\t\tbody: null\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic changeOwner(ranchGuid: string, userGuid: string): Promise<void | CMError> {\r\n\t\treturn this.put(this.urls.changeOwner(ranchGuid, userGuid),\r\n\t\t\t(): void => {\r\n\t\t\t\treturn;\r\n\t\t\t}, null, true);\r\n\t}\r\n\r\n\tpublic list(): Promise<AdminRanchRow[]> {\r\n\r\n\t\treturn this.get(this.urls.list,\r\n\t\t\t(data: AdminRanchRow[]): AdminRanchRow[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic getNonRanchMembers(ranchGuid: string): Promise<IUserSearchResult[]> {\r\n\t\treturn this.get(this.urls.nonRanchMembers(ranchGuid),\r\n\t\t\t(data: IUserSearchResult[]): IUserSearchResult[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic getRanchMembers(ranchGuid: string): Promise<IRanchUserListItem[]> {\r\n\t\treturn this.get(this.urls.ranchMembers(ranchGuid),\r\n\t\t\t(data: IRanchUserListItem[]): IRanchUserListItem[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic getRanchOwners(): Promise<AdminRanchUser[]> {\r\n\t\treturn this.get(this.urls.owners,\r\n\t\t\t(data: AdminRanchUser[]): AdminRanchUser[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic edit(): Promise<void> {\r\n\t\t//\r\n\t\treturn of(null).toPromise();\r\n\t}\r\n}\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\nimport { TokenService } from '../../services/token.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ObjectUtility } from '../../classes/objectUtility';\r\nimport { map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { AdminRanchRow, AdminRanchUser } from './interfaces';\r\nimport { AdminRanchesService } from './admin-ranches.service';\r\nimport { AdminRanchesUpdateService } from './admin-ranches.update.service';\r\nimport { FormControl } from '@angular/forms';\r\nimport { AdminRanchesCache } from './adminRanchesCache';\r\n\r\n@Component({\r\n\tselector: 'app-admin-ranches',\r\n\ttemplateUrl: 'admin-ranches.html',\r\n\tstyleUrls: [ 'admin-ranches.scss']\r\n})\r\nexport class AdminRanchesComponent implements OnInit, OnDestroy {\r\n\t@ViewChild(MatPaginator, { static: true}) paginator: MatPaginator;\r\n\t@ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\tpublic dataSource: MatTableDataSource<AdminRanchRow>;\r\n\tpublic displayedColumns: string[] = ['Id', 'Name', 'Creator', 'Owner', 'Action'];\r\n\tpublic originalResults: AdminRanchRow[] = new Array();\r\n\tpublic ranchOwners: AdminRanchUser[];\r\n\tpublic ownerId: number = null;\r\n\tpublic query = '';\r\n\tpublic ranchOwnerControl = new FormControl(); // used for autocomplete\r\n\tpublic ranchOwnerOptions: Observable<AdminRanchUser[]>;\r\n\tpublic results: AdminRanchRow[] = new Array();\r\n\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tconstructor(\r\n\t\tprivate _adminRanchesCache: AdminRanchesCache,\r\n\t\tprivate _adminRanchesService: AdminRanchesService,\r\n\t\tprivate _tokenService: TokenService,\r\n\t\tprivate _router: Router,\r\n\t\tprivate _updateService: AdminRanchesUpdateService\r\n\t) {\r\n\t\t// On home page, redirect to the app dashboard if already logged in\r\n\t\tif (!this._tokenService.isAuthenticated()) {\r\n\t\t\tthis._router.navigate(['/login']);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._list().then(() => {\r\n\t\t\tthis._restorePagination();\r\n\t\t});\r\n\r\n\t\tthis._getRanchOwners();\r\n\r\n\t\tthis._subscriptions$ = new Subject();\r\n\r\n\t\tif (this.sort) {\r\n\t\t\tif (this.sort.sortChange) {\r\n\t\t\t\tthis.sort.sortChange.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t\t\tif (!this.paginator) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twhile (this.paginator.hasPreviousPage()) {\r\n\t\t\t\t\t\tthis.paginator.previousPage();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.sort.sort({ id: 'Name', start: 'asc', disableClear: false });\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\t/**\r\n\t * Display user's name in the input box\r\n\t * @param user\r\n\t * @returns\r\n\t */\r\n\tpublic displayFn(user: AdminRanchUser): string {\r\n\t\treturn user ? user.FirstName + ' ' + user.LastName : '';\r\n\t}\r\n\r\n\tpublic edit(id: number): void {\r\n\t\tlet navigationExtras: NavigationExtras;\r\n\t\tlet ranch: AdminRanchRow;\r\n\r\n\t\tranch = this.originalResults.find(x => x.Id === id);\r\n\r\n\t\tif (!ranch) {\r\n\t\t\tthrow new Error('ranch not found');\r\n\t\t}\r\n\r\n\t\tnavigationExtras = {\r\n\t\t\tqueryParams: {\r\n\t\t\t\t'Guid': ranch.Guid,\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._router.navigate(['Ranches/ranch-details'], navigationExtras);\r\n\t}\r\n\r\n\tpublic filterByOwnerId(ownerId: string): void {\r\n\t\tif (ownerId) {\r\n\t\t\tthis.results = this.originalResults.filter(x => x.Owner.Id === ownerId);\r\n\t\t} else {\r\n\t\t\tthis.results = ObjectUtility.copyArray(this.originalResults);\r\n\t\t}\r\n\r\n\t\tthis._adminRanchesCache.ranchOwner = ownerId;\r\n\t\tthis._setDataSource(this.results);\r\n\t}\r\n\r\n\tpublic onPageIndexChanged(): void {\r\n\t\tthis._adminRanchesCache.pagination = this.dataSource.paginator.pageIndex;\r\n\t}\r\n\r\n\tpublic search(query: string): void {\r\n\t\tif (!this.dataSource) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (query === null) {\r\n\t\t\tquery = '';\r\n\t\t}\r\n\r\n\t\tquery = query.trim();\r\n\t\tquery = query.toLowerCase();\r\n\r\n\t\tthis.dataSource.filter = query;\r\n\t\tthis._adminRanchesCache.query = query;\r\n\t}\r\n\r\n\tprivate _filterRanchOwnerAutoComplete(value: string): AdminRanchUser[] {\r\n\t\treturn this.ranchOwners.filter(ro => (ro.FirstName + ' ' + ro.LastName).toLowerCase().includes(value));\r\n\t}\r\n\r\n\tprivate _getRanchOwners(): void {\r\n\t\tthis._adminRanchesService.getRanchOwners().then((response) => {\r\n\t\t\tthis.ranchOwners = response;\r\n\r\n\t\t\tthis.ranchOwnerOptions = this.ranchOwnerControl.valueChanges.pipe(\r\n\t\t\t\tstartWith(''),\r\n\t\t\t\tmap(value => {\r\n\t\t\t\t\tlet name: string;\r\n\t\t\t\t\tname = typeof value === 'string' ? value : value.FirstName + ' ' + value.LastName;\r\n\t\t\t\t\treturn name ? this._filterRanchOwnerAutoComplete(name.toLowerCase()) : this.ranchOwners.slice();\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\tthis.ranchOwnerControl.valueChanges.pipe(takeUntil(this._subscriptions$)).subscribe((owner: AdminRanchUser) => {\r\n\t\t\t\tthis.filterByOwnerId(owner.Id);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _list(): Promise<void> {\r\n\t\treturn this._adminRanchesService.list().then((response) => {\r\n\t\t\tthis.originalResults = response;\r\n\t\t\tthis.results = ObjectUtility.copyArray(this.originalResults);\r\n\r\n\t\t\tif (this._adminRanchesCache.ranchOwner) {\r\n\t\t\t\tlet owner: AdminRanchUser;\r\n\r\n\t\t\t\towner = this.ranchOwners.find(x => x.Id === this._adminRanchesCache.ranchOwner);\r\n\r\n\t\t\t\tif (!owner) {\r\n\t\t\t\t\tthrow new Error('owner not found');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.ranchOwnerControl.setValue(owner);\r\n\t\t\t} else {\r\n\t\t\t\tthis._setDataSource(this.results);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _restorePagination(): void {\r\n\t\tif (this._adminRanchesCache.pagination > 0 && this._adminRanchesCache.pagination\r\n\t\t\t!== this.dataSource.paginator.pageIndex) {\r\n\r\n\t\t\tthis.paginator.pageIndex = this._adminRanchesCache.pagination;\r\n\r\n\t\t\tthis.paginator.page.next({\r\n\t\t\t\tpageIndex: this._adminRanchesCache.pagination,\r\n\t\t\t\tpageSize: this.paginator.pageSize,\r\n\t\t\t\tlength: this.paginator.length\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _setDataSource(results: AdminRanchRow[]): void {\r\n\t\tthis.dataSource = new MatTableDataSource(results);\r\n\t\tthis.dataSource.paginator = this.paginator;\r\n\t\tthis.dataSource.sort = this.sort;\r\n\r\n\t\tif (this._adminRanchesCache.query) {\r\n\t\t\tthis.dataSource.filter = this._adminRanchesCache.query;\r\n\t\t\tthis.query = this._adminRanchesCache.query;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AdminRanchesUpdateService {\r\n\tprivate _userAdded: Subject<null> = new Subject<null>();\r\n\tpublic userAdded = this._userAdded.asObservable();\r\n\r\n\tpublic addUser(): void {\r\n\t\tthis._userAdded.next();\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AdminRanchesCache {\r\n\tpublic pagination: number;\r\n\tpublic query: string;\r\n\tpublic ranchOwner: string;\r\n}\r\n"],"sourceRoot":"webpack:///"}