{"version":3,"file":"vineforce-modules-asset-management-system-vineforce-modules-asset-management-system-x7q3lgfw.mjs","sources":["../../../projects/asset-management-system/src/lib/services/asset-management-system.service.ts","../../../projects/asset-management-system/src/lib/proxy/asset-histories/asset-history.service.ts","../../../projects/asset-management-system/src/lib/proxy/asset-types/asset-type.service.ts","../../../projects/asset-management-system/src/lib/proxy/assets/asset.service.ts","../../../projects/asset-management-system/src/lib/proxy/enum/asset-event-type.enum.ts","../../../projects/asset-management-system/src/lib/proxy/enum/entity.enum.ts","../../../projects/asset-management-system/src/lib/proxy/enum/incident-type.enum.ts","../../../projects/asset-management-system/src/lib/proxy/enum/maintenance-type.enum.ts","../../../projects/asset-management-system/src/lib/proxy/enum/status-entity-type.enum.ts","../../../projects/asset-management-system/src/lib/proxy/loss-theft-damages/loss-theft-damage.service.ts","../../../projects/asset-management-system/src/lib/proxy/maintenances/maintenance.service.ts","../../../projects/asset-management-system/src/lib/proxy/offices/office.service.ts","../../../projects/asset-management-system/src/lib/proxy/statuses/status.service.ts","../../../projects/asset-management-system/src/lib/proxy/vendors/vendor.service.ts","../../../projects/asset-management-system/src/lib/proxy/products.service.ts","../../../projects/asset-management-system/src/lib/components/asset-management-system.component.ts","../../../projects/asset-management-system/src/lib/components/asset-management-system.component.html","../../../projects/asset-management-system/src/lib/defaults/default-asset-management-system-toolbar-actions.ts","../../../projects/asset-management-system/src/lib/defaults/default-asset-management-system-form-props.ts","../../../projects/asset-management-system/src/lib/defaults/default-asset-management-system-entity-props.ts","../../../projects/asset-management-system/src/lib/defaults/default-asset-management-system-entity-actions.ts","../../../projects/asset-management-system/src/lib/tokens/extensions.token.ts","../../../projects/asset-management-system/src/lib/resolvers/extensions.resolver.ts","../../../projects/asset-management-system/src/lib/offices/office/services/office.abstract.service.ts","../../../projects/asset-management-system/src/lib/offices/office/services/office.service.ts","../../../projects/asset-management-system/src/lib/offices/office/services/office-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/offices/office/services/office-detail.service.ts","../../../projects/asset-management-system/src/lib/offices/office/components/office.abstract.component.ts","../../../projects/asset-management-system/src/lib/offices/office/components/office.component.ts","../../../projects/asset-management-system/src/lib/offices/office/components/office.component.html","../../../projects/asset-management-system/src/lib/offices/office/office-routing.module.ts","../../../projects/asset-management-system/src/lib/offices/office/office.module.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/services/asset-type.abstract.service.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/services/asset-type.service.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/services/asset-type-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/services/asset-type-detail.service.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/components/asset-type.abstract.component.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/components/asset-type.component.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/components/asset-type.component.html","../../../projects/asset-management-system/src/lib/asset-types/asset-type/asset-type-routing.module.ts","../../../projects/asset-management-system/src/lib/asset-types/asset-type/asset-type.module.ts","../../../projects/asset-management-system/src/lib/statuses/status/services/status.abstract.service.ts","../../../projects/asset-management-system/src/lib/statuses/status/services/status.service.ts","../../../projects/asset-management-system/src/lib/statuses/status/services/status-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/statuses/status/services/status-detail.service.ts","../../../projects/asset-management-system/src/lib/statuses/status/components/status.abstract.component.ts","../../../projects/asset-management-system/src/lib/statuses/status/components/status.component.ts","../../../projects/asset-management-system/src/lib/statuses/status/components/status.component.html","../../../projects/asset-management-system/src/lib/statuses/status/status-routing.module.ts","../../../projects/asset-management-system/src/lib/statuses/status/status.module.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/services/vendor.abstract.service.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/services/vendor.service.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/services/vendor-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/services/vendor-detail.service.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/components/vendor.abstract.component.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/components/vendor.component.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/components/vendor.component.html","../../../projects/asset-management-system/src/lib/vendors/vendor/vendor-routing.module.ts","../../../projects/asset-management-system/src/lib/vendors/vendor/vendor.module.ts","../../../projects/asset-management-system/src/lib/assets/asset/services/asset.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/asset/services/asset.service.ts","../../../projects/asset-management-system/src/lib/assets/asset/services/asset-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/asset/services/asset-detail.service.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/services/maintenance-child.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/services/maintenance-child.service.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/services/maintenance-child-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/services/maintenance-child-detail.service.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/components/maintenance-child.abstract.component.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/components/maintenance-child.component.ts","../../../projects/asset-management-system/src/lib/assets/maintenance/components/maintenance-child.component.html","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/services/loss-theft-damage-child.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/services/loss-theft-damage-child.service.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/services/loss-theft-damage-child-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/services/loss-theft-damage-child-detail.service.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/components/loss-theft-damage-child.abstract.component.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/components/loss-theft-damage-child.component.ts","../../../projects/asset-management-system/src/lib/assets/loss-theft-damage/components/loss-theft-damage-child.component.html","../../../projects/asset-management-system/src/lib/assets/asset-history/services/asset-history-child.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/services/asset-history-child.service.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/services/asset-history-child-detail.abstract.service.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/services/asset-history-child-detail.service.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/components/asset-history-child.abstract.component.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/components/asset-history-child.component.ts","../../../projects/asset-management-system/src/lib/assets/asset-history/components/asset-history-child.component.html","../../../projects/asset-management-system/src/lib/assets/asset/components/asset.abstract.component.ts","../../../projects/asset-management-system/src/lib/assets/asset/components/asset.component.ts","../../../projects/asset-management-system/src/lib/assets/asset/components/asset.component.html","../../../projects/asset-management-system/src/lib/assets/asset/asset-routing.module.ts","../../../projects/asset-management-system/src/lib/assets/asset/asset.module.ts","../../../projects/asset-management-system/src/lib/asset-management-system-routing.module.ts","../../../projects/asset-management-system/src/lib/asset-management-system.module.ts","../../../projects/asset-management-system/src/public-api.ts","../../../projects/asset-management-system/src/vineforce-modules-asset-management-system.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { RestService } from '@abp/ng.core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AssetManagementSystemService {\n  apiName = 'AssetManagementSystem';\n\n  constructor(private restService: RestService) {}\n\n  sample() {\n    return this.restService.request<void, any>(\n      { method: 'GET', url: '/api/AssetManagementSystem/sample' },\n      { apiName: this.apiName }\n    );\n  }\n}\n","import type {\r\n  AssetHistoryCreateDto,\r\n  AssetHistoryDto,\r\n  AssetHistoryUpdateDto,\r\n  AssetHistoryWithNavigationPropertiesDto,\r\n  GetAssetHistoriesInput,\r\n  GetAssetHistoryListInput,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n  AppFileDescriptorDto,\r\n  DownloadTokenResultDto,\r\n  GetFileInput,\r\n  LookupDto,\r\n  LookupRequestDto,\r\n} from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AssetHistoryService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: AssetHistoryCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetHistoryDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/asset-histories',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/asset-histories/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetHistoryDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/asset-histories/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/asset-histories/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories/identity-user-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetAssetHistoriesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<AssetHistoryWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          eventDateMin: input.eventDateMin,\r\n          eventDateMax: input.eventDateMax,\r\n          assetEventType: input.assetEventType,\r\n          details: input.details,\r\n          fromUserId: input.fromUserId,\r\n          toUserId: input.toUserId,\r\n          fromOfficeId: input.fromOfficeId,\r\n          toOfficeId: input.toOfficeId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListByAssetId = (input: GetAssetHistoryListInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<AssetHistoryWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListWithNavigationPropertiesByAssetId = (\r\n    input: GetAssetHistoryListInput,\r\n    config?: Partial<Rest.Config>,\r\n  ) =>\r\n    this.restService.request<any, PagedResultDto<AssetHistoryWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories/detailed/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getOfficeLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-histories/office-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetHistoryWithNavigationPropertiesDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/asset-histories/with-navigation-properties/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: AssetHistoryUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetHistoryDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/asset-histories/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/asset-histories/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  AssetTypeCreateDto,\r\n  AssetTypeDto,\r\n  AssetTypeExcelDownloadDto,\r\n  AssetTypeUpdateDto,\r\n  GetAssetTypesInput,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { AppFileDescriptorDto, DownloadTokenResultDto, GetFileInput } from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AssetTypeService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: AssetTypeCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetTypeDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/asset-types',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/asset-types/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteAll = (input: GetAssetTypesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/asset-types/all',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          description: input.description,\r\n          isActive: input.isActive,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteByIds = (assetTypeIds: string[], config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/asset-types',\r\n        params: { assetTypeIds },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetTypeDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/asset-types/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-types/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/asset-types/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetAssetTypesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<AssetTypeDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/asset-types',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          description: input.description,\r\n          isActive: input.isActive,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListAsExcelFile = (input: AssetTypeExcelDownloadDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/asset-types/as-excel-file',\r\n        params: {\r\n          downloadToken: input.downloadToken,\r\n          filterText: input.filterText,\r\n          name: input.name,\r\n          description: input.description,\r\n          isActive: input.isActive,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: AssetTypeUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetTypeDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/asset-types/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/asset-types/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  AssetCreateDto,\r\n  AssetDto,\r\n  AssetExcelDownloadDto,\r\n  AssetUpdateDto,\r\n  AssetWithNavigationPropertiesDto,\r\n  GetAssetsInput,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n  AppFileDescriptorDto,\r\n  DownloadTokenResultDto,\r\n  GetFileInput,\r\n  LookupDto,\r\n  LookupRequestDto,\r\n} from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AssetService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: AssetCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/assets',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/assets/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteAll = (input: GetAssetsInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/assets/all',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          description: input.description,\r\n          manufacturer: input.manufacturer,\r\n          model: input.model,\r\n          serialNumber: input.serialNumber,\r\n          purchaseDateMin: input.purchaseDateMin,\r\n          purchaseDateMax: input.purchaseDateMax,\r\n          warrantyUntilMin: input.warrantyUntilMin,\r\n          warrantyUntilMax: input.warrantyUntilMax,\r\n          costMin: input.costMin,\r\n          costMax: input.costMax,\r\n          assignedDateMin: input.assignedDateMin,\r\n          assignedDateMax: input.assignedDateMax,\r\n          returnDateMin: input.returnDateMin,\r\n          returnDateMax: input.returnDateMax,\r\n          conditionOnReturn: input.conditionOnReturn,\r\n          comments: input.comments,\r\n          isActive: input.isActive,\r\n          assetTypeId: input.assetTypeId,\r\n          statusId: input.statusId,\r\n          vendorId: input.vendorId,\r\n          userId: input.userId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteByIds = (assetIds: string[], config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/assets',\r\n        params: { assetIds },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/assets/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getAssetTypeLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets/asset-type-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/assets/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets/identity-user-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetAssetsInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<AssetWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          description: input.description,\r\n          manufacturer: input.manufacturer,\r\n          model: input.model,\r\n          serialNumber: input.serialNumber,\r\n          purchaseDateMin: input.purchaseDateMin,\r\n          purchaseDateMax: input.purchaseDateMax,\r\n          warrantyUntilMin: input.warrantyUntilMin,\r\n          warrantyUntilMax: input.warrantyUntilMax,\r\n          costMin: input.costMin,\r\n          costMax: input.costMax,\r\n          assignedDateMin: input.assignedDateMin,\r\n          assignedDateMax: input.assignedDateMax,\r\n          returnDateMin: input.returnDateMin,\r\n          returnDateMax: input.returnDateMax,\r\n          conditionOnReturn: input.conditionOnReturn,\r\n          comments: input.comments,\r\n          isActive: input.isActive,\r\n          assetTypeId: input.assetTypeId,\r\n          statusId: input.statusId,\r\n          vendorId: input.vendorId,\r\n          userId: input.userId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListAsExcelFile = (input: AssetExcelDownloadDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/assets/as-excel-file',\r\n        params: {\r\n          downloadToken: input.downloadToken,\r\n          filterText: input.filterText,\r\n          name: input.name,\r\n          description: input.description,\r\n          manufacturer: input.manufacturer,\r\n          model: input.model,\r\n          serialNumber: input.serialNumber,\r\n          purchaseDateMin: input.purchaseDateMin,\r\n          purchaseDateMax: input.purchaseDateMax,\r\n          warrantyUntilMin: input.warrantyUntilMin,\r\n          warrantyUntilMax: input.warrantyUntilMax,\r\n          costMin: input.costMin,\r\n          costMax: input.costMax,\r\n          assignedDateMin: input.assignedDateMin,\r\n          assignedDateMax: input.assignedDateMax,\r\n          returnDateMin: input.returnDateMin,\r\n          returnDateMax: input.returnDateMax,\r\n          conditionOnReturn: input.conditionOnReturn,\r\n          comments: input.comments,\r\n          isActive: input.isActive,\r\n          assetTypeId: input.assetTypeId,\r\n          statusId: input.statusId,\r\n          vendorId: input.vendorId,\r\n          userId: input.userId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getStatusLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets/status-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getVendorLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/assets/vendor-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetWithNavigationPropertiesDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/assets/with-navigation-properties/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: AssetUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AssetDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/assets/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/assets/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum AssetEventType {\r\n  Transferred = 10,\r\n  Assigned = 20,\r\n}\r\n\r\nexport const assetEventTypeOptions = mapEnumToOptions(AssetEventType);\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum Entity {\r\n  LossTheftDamage = 5,\r\n  Maintainance = 10,\r\n  Assets = 20,\r\n}\r\n\r\nexport const entityOptions = mapEnumToOptions(Entity);\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum IncidentType {\r\n  WriteOff = 5,\r\n  Theft = 10,\r\n  Loss = 20,\r\n}\r\n\r\nexport const incidentTypeOptions = mapEnumToOptions(IncidentType);\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum MaintenanceType {\r\n  Inspection = 5,\r\n  Upgrade = 10,\r\n  Repair = 20,\r\n}\r\n\r\nexport const maintenanceTypeOptions = mapEnumToOptions(MaintenanceType);\r\n","import { mapEnumToOptions } from '@abp/ng.core';\r\n\r\nexport enum StatusEntityType {\r\n  LossTheftDamage = 5,\r\n  Maintainance = 10,\r\n  Assets = 20,\r\n}\r\n\r\nexport const statusEntityTypeOptions = mapEnumToOptions(StatusEntityType);\r\n","import type {\r\n  GetLossTheftDamageListInput,\r\n  GetLossTheftDamagesInput,\r\n  LossTheftDamageCreateDto,\r\n  LossTheftDamageDto,\r\n  LossTheftDamageUpdateDto,\r\n  LossTheftDamageWithNavigationPropertiesDto,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n  AppFileDescriptorDto,\r\n  DownloadTokenResultDto,\r\n  GetFileInput,\r\n  LookupDto,\r\n  LookupRequestDto,\r\n} from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LossTheftDamageService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: LossTheftDamageCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, LossTheftDamageDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/loss-theft-damages',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/loss-theft-damages/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, LossTheftDamageDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/loss-theft-damages/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/loss-theft-damages/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages/identity-user-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetLossTheftDamagesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LossTheftDamageWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          reportedDateMin: input.reportedDateMin,\r\n          reportedDateMax: input.reportedDateMax,\r\n          incidentType: input.incidentType,\r\n          description: input.description,\r\n          resolution: input.resolution,\r\n          reportedByUserId: input.reportedByUserId,\r\n          statusId: input.statusId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListByAssetId = (input: GetLossTheftDamageListInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LossTheftDamageWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListWithNavigationPropertiesByAssetId = (\r\n    input: GetLossTheftDamageListInput,\r\n    config?: Partial<Rest.Config>,\r\n  ) =>\r\n    this.restService.request<any, PagedResultDto<LossTheftDamageWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages/detailed/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getStatusLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/loss-theft-damages/status-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, LossTheftDamageWithNavigationPropertiesDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/loss-theft-damages/with-navigation-properties/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: LossTheftDamageUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, LossTheftDamageDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/loss-theft-damages/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/loss-theft-damages/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  GetMaintenanceListInput,\r\n  GetMaintenancesInput,\r\n  MaintenanceCreateDto,\r\n  MaintenanceDto,\r\n  MaintenanceUpdateDto,\r\n  MaintenanceWithNavigationPropertiesDto,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type {\r\n  AppFileDescriptorDto,\r\n  DownloadTokenResultDto,\r\n  GetFileInput,\r\n  LookupDto,\r\n  LookupRequestDto,\r\n} from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class MaintenanceService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: MaintenanceCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, MaintenanceDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/maintenances',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/maintenances/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, MaintenanceDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/maintenances/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/maintenances/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetMaintenancesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<MaintenanceWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          maintenanceDateMin: input.maintenanceDateMin,\r\n          maintenanceDateMax: input.maintenanceDateMax,\r\n          maintenanceType: input.maintenanceType,\r\n          description: input.description,\r\n          costMin: input.costMin,\r\n          costMax: input.costMax,\r\n          nextDueDateMin: input.nextDueDateMin,\r\n          nextDueDateMax: input.nextDueDateMax,\r\n          vendorId: input.vendorId,\r\n          statusId: input.statusId,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListByAssetId = (input: GetMaintenanceListInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<MaintenanceWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListWithNavigationPropertiesByAssetId = (\r\n    input: GetMaintenanceListInput,\r\n    config?: Partial<Rest.Config>,\r\n  ) =>\r\n    this.restService.request<any, PagedResultDto<MaintenanceWithNavigationPropertiesDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances/detailed/by-asset',\r\n        params: {\r\n          assetId: input.assetId,\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getStatusLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances/status-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getVendorLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/maintenances/vendor-lookup',\r\n        params: {\r\n          filter: input.filter,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, MaintenanceWithNavigationPropertiesDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/maintenances/with-navigation-properties/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: MaintenanceUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, MaintenanceDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/maintenances/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/maintenances/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  GetOfficesInput,\r\n  OfficeCreateDto,\r\n  OfficeDto,\r\n  OfficeExcelDownloadDto,\r\n  OfficeUpdateDto,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { AppFileDescriptorDto, DownloadTokenResultDto, GetFileInput } from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class OfficeService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: OfficeCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, OfficeDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/offices',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/offices/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteAll = (input: GetOfficesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/offices/all',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          country: input.country,\r\n          state: input.state,\r\n          city: input.city,\r\n          address: input.address,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteByIds = (officeIds: string[], config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/offices',\r\n        params: { officeIds },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, OfficeDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/offices/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/offices/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/offices/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetOfficesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<OfficeDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/offices',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          country: input.country,\r\n          state: input.state,\r\n          city: input.city,\r\n          address: input.address,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListAsExcelFile = (input: OfficeExcelDownloadDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/offices/as-excel-file',\r\n        params: {\r\n          downloadToken: input.downloadToken,\r\n          filterText: input.filterText,\r\n          name: input.name,\r\n          country: input.country,\r\n          state: input.state,\r\n          city: input.city,\r\n          address: input.address,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: OfficeUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, OfficeDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/offices/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/offices/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  GetStatusesInput,\r\n  StatusCreateDto,\r\n  StatusDto,\r\n  StatusExcelDownloadDto,\r\n  StatusUpdateDto,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { AppFileDescriptorDto, DownloadTokenResultDto, GetFileInput } from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class StatusService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: StatusCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, StatusDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/statuses',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/statuses/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteAll = (input: GetStatusesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/statuses/all',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          statusEntityType: input.statusEntityType,\r\n          orderMin: input.orderMin,\r\n          orderMax: input.orderMax,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteByIds = (statusIds: string[], config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/statuses',\r\n        params: { statusIds },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, StatusDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/statuses/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/statuses/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/statuses/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetStatusesInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<StatusDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/statuses',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          statusEntityType: input.statusEntityType,\r\n          orderMin: input.orderMin,\r\n          orderMax: input.orderMax,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListAsExcelFile = (input: StatusExcelDownloadDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/statuses/as-excel-file',\r\n        params: {\r\n          downloadToken: input.downloadToken,\r\n          filterText: input.filterText,\r\n          name: input.name,\r\n          statusEntityType: input.statusEntityType,\r\n          orderMin: input.orderMin,\r\n          orderMax: input.orderMax,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: StatusUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, StatusDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/statuses/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/statuses/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import type {\r\n  GetVendorsInput,\r\n  VendorCreateDto,\r\n  VendorDto,\r\n  VendorExcelDownloadDto,\r\n  VendorUpdateDto,\r\n} from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport type { PagedResultDto } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { AppFileDescriptorDto, DownloadTokenResultDto, GetFileInput } from '../shared/models';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class VendorService {\r\n  apiName = 'AssetManagementSystem';\r\n\r\n  create = (input: VendorCreateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, VendorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/vendors',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  delete = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: `/api/asset-management-system/vendors/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteAll = (input: GetVendorsInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/vendors/all',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          contactName: input.contactName,\r\n          phone: input.phone,\r\n          email: input.email,\r\n          address: input.address,\r\n          website: input.website,\r\n          notes: input.notes,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  deleteByIds = (vendorIds: string[], config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, void>(\r\n      {\r\n        method: 'DELETE',\r\n        url: '/api/asset-management-system/vendors',\r\n        params: { vendorIds },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  get = (id: string, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, VendorDto>(\r\n      {\r\n        method: 'GET',\r\n        url: `/api/asset-management-system/vendors/${id}`,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, DownloadTokenResultDto>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/vendors/download-token',\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/vendors/file',\r\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getList = (input: GetVendorsInput, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, PagedResultDto<VendorDto>>(\r\n      {\r\n        method: 'GET',\r\n        url: '/api/asset-management-system/vendors',\r\n        params: {\r\n          filterText: input.filterText,\r\n          sorting: input.sorting,\r\n          skipCount: input.skipCount,\r\n          maxResultCount: input.maxResultCount,\r\n          name: input.name,\r\n          contactName: input.contactName,\r\n          phone: input.phone,\r\n          email: input.email,\r\n          address: input.address,\r\n          website: input.website,\r\n          notes: input.notes,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  getListAsExcelFile = (input: VendorExcelDownloadDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, Blob>(\r\n      {\r\n        method: 'GET',\r\n        responseType: 'blob',\r\n        url: '/api/asset-management-system/vendors/as-excel-file',\r\n        params: {\r\n          downloadToken: input.downloadToken,\r\n          filterText: input.filterText,\r\n          name: input.name,\r\n          contactName: input.contactName,\r\n          phone: input.phone,\r\n          email: input.email,\r\n          address: input.address,\r\n          website: input.website,\r\n          notes: input.notes,\r\n        },\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  update = (id: string, input: VendorUpdateDto, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, VendorDto>(\r\n      {\r\n        method: 'PUT',\r\n        url: `/api/asset-management-system/vendors/${id}`,\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\r\n    this.restService.request<any, AppFileDescriptorDto>(\r\n      {\r\n        method: 'POST',\r\n        url: '/api/asset-management-system/vendors/upload-file',\r\n        body: input,\r\n      },\r\n      { apiName: this.apiName, ...config },\r\n    );\r\n\r\n  constructor(private restService: RestService) {}\r\n}\r\n","import { PagedResultDto, uuid } from '@abp/ng.core';\nimport { Injectable, WritableSignal, signal } from '@angular/core';\nimport { ProductDto } from './models';\n\n@Injectable()\nexport class ProductsService {\n  readonly brands = signal([\n    { id: uuid(), name: 'Brand 1' },\n    { id: uuid(), name: 'Brand 2' },\n    { id: uuid(), name: 'Brand 3' },\n    { id: uuid(), name: 'Brand 4' },\n  ]);\n\n  readonly genres = signal([\n    { id: uuid(), name: 'Genre 1' },\n    { id: uuid(), name: 'Genre 2' },\n    { id: uuid(), name: 'Genre 3' },\n  ]);\n\n  readonly products = signal([\n    { id: uuid(), name: 'Product 1', brand: 'Brand 1', genre: 'Genre 1' },\n    { id: uuid(), name: 'Product 2', brand: 'Brand 2', genre: 'Genre 2' },\n    { id: uuid(), name: 'Product 3', brand: 'Brand 3', genre: 'Genre 3' },\n  ]);\n\n  readonly boughtProducts: WritableSignal<PagedResultDto<ProductDto>> = signal({\n    items: [\n      {\n        id: uuid(),\n        name: 'Product 1',\n        brand: 'Brand 1',\n        genre: 'Genre 2',\n        returnDate: new Date('2024-01-01'),\n      },\n      {\n        id: uuid(),\n        name: 'Product 2',\n        brand: 'Brand 1',\n        genre: 'Genre 2',\n        returnDate: new Date('2024-02-01'),\n      },\n      {\n        id: uuid(),\n        name: 'Product 3',\n        brand: 'Brand 2',\n        genre: 'Genre 3',\n        returnDate: new Date('2024-03-01'),\n      },\n    ],\n    totalCount: 3,\n  });\n}\n","import { Component, Injector, OnInit, inject } from '@angular/core';\nimport { AssetManagementSystemService } from '../services/asset-management-system.service';\nimport {\n  EXTENSIONS_IDENTIFIER,\n  FormPropData,\n  generateFormFromProps,\n} from '@abp/ng.components/extensible';\nimport { ListService, PagedResultDto, uuid } from '@abp/ng.core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GetAssetManagementSystemProducts, ProductDto, ProductsService } from '../../lib/proxy';\nimport { eAssetManagementSystemComponents } from '../enums/components';\n\n@Component({\n  standalone: false,\n  selector: 'lib-asset-management-system',\n  templateUrl: './asset-management-system.component.html',\n  providers: [\n    ProductsService,\n    ListService,\n    {\n      provide: EXTENSIONS_IDENTIFIER,\n      useValue: eAssetManagementSystemComponents.AssetManagementSystem,\n    },\n  ],\n})\nexport class AssetManagementSystemComponent implements OnInit {\n  private service = inject(AssetManagementSystemService);\n  protected readonly injector = inject(Injector);\n  protected readonly productsService = inject(ProductsService);\n  public readonly list = inject(ListService<GetAssetManagementSystemProducts>);\n\n  data: PagedResultDto<ProductDto> = { items: [], totalCount: 0 };\n\n  //#region Just for demo\n  readonly #brands = this.productsService.brands();\n  readonly #genres = this.productsService.genres();\n  readonly #products = this.productsService.products();\n  //#endregion\n\n  protected modalBusy = false;\n  protected isModalVisible = false;\n\n  form: UntypedFormGroup;\n  selectedProduct = {};\n\n  ngOnInit(): void {\n    this.service.sample().subscribe(console.log);\n    this.refreshData();\n  }\n\n  protected buildForm(): void {\n    const data = new FormPropData(this.injector, this.selectedProduct);\n    this.form = generateFormFromProps(data);\n  }\n\n  openModal() {\n    this.buildForm();\n    this.isModalVisible = true;\n  }\n\n  onAdd() {\n    this.selectedProduct = {} as ProductDto;\n    this.openModal();\n  }\n\n  save(): void {\n    if (this.form.invalid) {\n      return;\n    }\n\n    this.modalBusy = true;\n\n    const { genreId, productId, returnDate, brandId } = this.form.value;\n\n    //#region Just for demo\n    const genreName = this.#genres.find(({ id }) => id === genreId).name;\n    const productName = this.#products.find(({ id }) => id === productId).name;\n    const brandName = this.#brands.find(({ id }) => id === brandId).name;\n    //#endregion\n\n    const productItems = [\n      ...this.productsService.boughtProducts().items,\n      {\n        id: uuid(),\n        name: productName,\n        genre: genreName,\n        brand: brandName,\n        returnDate,\n      },\n    ];\n    this.productsService.boughtProducts.update(() => {\n      return {\n        items: [...productItems],\n        totalCount: productItems.length,\n      };\n    });\n\n    this.refreshData();\n    this.modalBusy = false;\n    this.isModalVisible = false;\n  }\n\n  onEdit(selectedProduct) {\n    const { brand, genre, returnDate, name } = selectedProduct;\n\n    //#region Just for demo\n    const genreId = this.#genres.find(({ name }) => name === genre).id;\n    const productId = this.#products.find(({ name }) => name === name).id;\n    const brandId = this.#brands.find(({ name }) => name === brand).id;\n    //#endregion\n\n    this.selectedProduct = {\n      brandId,\n      genreId,\n      productId,\n      returnDate,\n    };\n    this.openModal();\n  }\n\n  delete(selectedProduct) {\n    const filteredProducts = this.productsService.boughtProducts().items.filter(product => {\n      return product.id !== selectedProduct.id;\n    });\n\n    this.productsService.boughtProducts.set({\n      items: filteredProducts,\n      totalCount: filteredProducts.length,\n    });\n\n    this.refreshData();\n  }\n\n  refreshData() {\n    this.data = this.productsService.boughtProducts();\n  }\n}\n","<abp-page [title]=\"'AssetManagementSystem::Menu:AssetManagementSystem' | abpLocalization\" [toolbar]=\"data.items\">\n  <div class=\"card\">\n    <abp-extensible-table\n      [data]=\"data.items\"\n      [recordsTotal]=\"data.totalCount\"\n      [list]=\"list\"\n    ></abp-extensible-table>\n  </div>\n</abp-page>\n\n<abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\" (disappear)=\"form = null\">\n  <ng-template #abpHeader>\n    <h3>\n      {{ (selectedProduct.productId ? 'AbpUi::Edit' : 'AbpUi::AddNew') | abpLocalization }}\n    </h3>\n  </ng-template>\n\n  <ng-template #abpBody>\n    @if (form) {\n    <form [formGroup]=\"form\" id=\"productForm\" (ngSubmit)=\"save()\" validateOnSubmit>\n      <abp-extensible-form class=\"row gap-x2\" [selectedRecord]=\"selected\"></abp-extensible-form>\n    </form>\n    }\n  </ng-template>\n  <ng-template #abpFooter>\n    <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\n      {{ 'AbpUi::Cancel' | abpLocalization }}\n    </button>\n    <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"productForm\">{{\n      'AbpUi::Save' | abpLocalization\n    }}</abp-button>\n  </ng-template>\n</abp-modal>\n","import { ToolbarAction } from '@abp/ng.components/extensible';\nimport { AssetManagementSystemComponent } from '../components';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS = ToolbarAction.createMany<ProductDto[]>([\n  {\n    text: 'AbpUi::AddNew',\n    action: data => {\n      const component = data.getInjected(AssetManagementSystemComponent);\n      component.onAdd();\n    },\n    icon: 'fa fa-plus',\n  },\n]);\n","import { FormProp, ePropType } from '@abp/ng.components/extensible';\nimport { ABP } from '@abp/ng.core';\nimport { Validators } from '@angular/forms';\nimport { ProductDto, ProductsService } from '../../lib/proxy';\nimport { of } from 'rxjs';\n\nconst { required } = Validators;\nconst DefaultOption = {\n  value: null,\n  key: '-',\n} as ABP.Option<any>;\n\nexport const DEFAULT_CREATE_PRODUCT_FORM_PROPS = FormProp.createMany<ProductDto>([\n  {\n    type: ePropType.String,\n    id: 'productId',\n    name: 'productId',\n    displayName: 'Product',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { products } = data.getInjected(ProductsService);\n\n      return of([\n        DefaultOption,\n        ...products().map(product => ({ value: product.id, key: product.name })),\n      ]);\n    },\n  },\n  {\n    type: ePropType.String,\n    id: 'brandId',\n    name: 'brandId',\n    displayName: 'Brand',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { brands } = data.getInjected(ProductsService);\n\n      return of([DefaultOption, ...brands().map(brand => ({ value: brand.id, key: brand.name }))]);\n    },\n  },\n  {\n    type: ePropType.String,\n    id: 'genreId',\n    name: 'genreId',\n    displayName: 'Genre',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { genres } = data.getInjected(ProductsService);\n\n      return of([DefaultOption, ...genres().map(genre => ({ value: genre.id, key: genre.name }))]);\n    },\n  },\n  {\n    type: ePropType.Date,\n    id: 'returnDate',\n    name: 'returnDate',\n    displayName: 'Return Date',\n    defaultValue: null,\n    validators: () => [required],\n  },\n]);\n\nexport const DEFAULT_EDIT_PRODUCT_FORM_PROPS = DEFAULT_CREATE_PRODUCT_FORM_PROPS;\n","import { EntityProp, ePropType } from '@abp/ng.components/extensible';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_PROPS = EntityProp.createMany<ProductDto>([\n  {\n    type: ePropType.String,\n    name: 'name',\n    displayName: 'Name',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.String,\n    name: 'brand',\n    displayName: 'Brand',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.String,\n    name: 'genre',\n    displayName: 'Genre',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.Date,\n    name: 'returnDate',\n    displayName: 'Return Date',\n    sortable: true,\n    columnWidth: 250,\n  },\n]);\n","import { EntityAction } from '@abp/ng.components/extensible';\nimport { AssetManagementSystemComponent } from '../components';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_ACTIONS = EntityAction.createMany<ProductDto[]>([\n  {\n    text: 'AbpUi::Edit',\n    action: data => {\n      const component = data.getInjected(AssetManagementSystemComponent);\n      component.onEdit(data.record);\n    },\n  },\n  {\n    text: 'AbpUi::Delete',\n    action: data => {\n      const component = data.getInjected(AssetManagementSystemComponent);\n      component.delete(data.record);\n    },\n  },\n]);\n","import { InjectionToken } from '@angular/core';\nimport { eAssetManagementSystemComponents } from '../enums/components';\nimport {\n  CreateFormPropContributorCallback,\n  EditFormPropContributorCallback,\n  EntityActionContributorCallback,\n  EntityPropContributorCallback,\n  ToolbarActionContributorCallback,\n} from '@abp/ng.components/extensible';\nimport { DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS } from '../defaults/default-asset-management-system-toolbar-actions';\nimport { ProductDto } from '../../lib/proxy';\nimport {\n  DEFAULT_CREATE_PRODUCT_FORM_PROPS,\n  DEFAULT_EDIT_PRODUCT_FORM_PROPS,\n} from '../defaults/default-asset-management-system-form-props';\nimport { DEFAULT_PRODUCT_ENTITY_PROPS } from '../defaults/default-asset-management-system-entity-props';\nimport { DEFAULT_PRODUCT_ENTITY_ACTIONS } from '../defaults/default-asset-management-system-entity-actions';\n\n//#region Default Actions\nexport const DEFAULT_ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTIONS = {\n  [eAssetManagementSystemComponents.AssetManagementSystem]: DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS,\n};\nexport const DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTIONS = {\n  [eAssetManagementSystemComponents.AssetManagementSystem]: DEFAULT_PRODUCT_ENTITY_ACTIONS,\n};\n//#endregion\n\n//#region Default Properties\nexport const DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_PROPS = {\n  [eAssetManagementSystemComponents.AssetManagementSystem]: DEFAULT_PRODUCT_ENTITY_PROPS,\n};\nexport const DEFAULT_ASSET_MANAGEMENT_SYSTEM_CREATE_FORM_PROPS = {\n  [eAssetManagementSystemComponents.AssetManagementSystem]: DEFAULT_CREATE_PRODUCT_FORM_PROPS,\n};\nexport const DEFAULT_ASSET_MANAGEMENT_SYSTEM_EDIT_FORM_PROPS = {\n  [eAssetManagementSystemComponents.AssetManagementSystem]: DEFAULT_EDIT_PRODUCT_FORM_PROPS,\n};\n//#endregion\n\n//#region Action Injection Tokens\nexport const ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS =\n  new InjectionToken<ToolbarActionContributors>('ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS');\n\nexport const ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS =\n  new InjectionToken<EntityActionContributors>('ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS');\n//#endregion\n\n//#region Property Injection Tokens\nexport const ASSET_MANAGEMENT_SYSTEM_ENTITY_PROP_CONTRIBUTORS = new InjectionToken<EntityPropContributors>(\n  'ASSET_MANAGEMENT_SYSTEM_ENTITY_PROP_CONTRIBUTORS'\n);\n\nexport const ASSET_MANAGEMENT_SYSTEM_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS =\n  new InjectionToken<CreateFormPropContributors>(\n    'ASSET_MANAGEMENT_SYSTEM_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS'\n  );\n\nexport const ASSET_MANAGEMENT_SYSTEM_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS =\n  new InjectionToken<EditFormPropContributors>(\n    'ASSET_MANAGEMENT_SYSTEM_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS'\n  );\n//#endregion\n\ntype EntityActionContributors = Partial<{\n  [eAssetManagementSystemComponents.AssetManagementSystem]: EntityActionContributorCallback<ProductDto>[];\n}>;\n\ntype ToolbarActionContributors = Partial<{\n  [eAssetManagementSystemComponents.AssetManagementSystem]: ToolbarActionContributorCallback<ProductDto>[];\n}>;\n\ntype EntityPropContributors = Partial<{\n  [eAssetManagementSystemComponents.AssetManagementSystem]: EntityPropContributorCallback<ProductDto>[];\n}>;\n\ntype CreateFormPropContributors = Partial<{\n  [eAssetManagementSystemComponents.AssetManagementSystem]: CreateFormPropContributorCallback<ProductDto>[];\n}>;\n\ntype EditFormPropContributors = Partial<{\n  [eAssetManagementSystemComponents.AssetManagementSystem]: EditFormPropContributorCallback<ProductDto>[];\n}>;\n","import {\n  ExtensionsService,\n  getObjectExtensionEntitiesFromStore,\n  mapEntitiesToContributors,\n  mergeWithDefaultActions,\n  mergeWithDefaultProps,\n} from '@abp/ng.components/extensible';\nimport { Injector, inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\n\nimport { ConfigStateService } from '@abp/ng.core';\nimport { map, tap } from 'rxjs';\nimport { eAssetManagementSystemComponents } from '../enums/components';\nimport {\n  ASSET_MANAGEMENT_SYSTEM_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS,\n  ASSET_MANAGEMENT_SYSTEM_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS,\n  DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTIONS,\n  DEFAULT_ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTIONS,\n  DEFAULT_ASSET_MANAGEMENT_SYSTEM_CREATE_FORM_PROPS,\n  DEFAULT_ASSET_MANAGEMENT_SYSTEM_EDIT_FORM_PROPS,\n  ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS,\n  ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS,\n  DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_PROPS,\n  ASSET_MANAGEMENT_SYSTEM_ENTITY_PROP_CONTRIBUTORS,\n} from '../tokens/extensions.token';\nimport {\n  AssetManagementSystemEntityActionContributors,\n  AssetManagementSystemEntityPropContributors,\n  AssetManagementSystemToolbarActionContributors,\n} from '../models/config-options';\n\nexport const assetManagementSystemExtensionsResolver: ResolveFn<any> = () => {\n  const injector = inject(Injector);\n\n  const extensions: ExtensionsService = injector.get(ExtensionsService);\n\n  const propContributors: AssetManagementSystemEntityPropContributors =\n    injector.get(ASSET_MANAGEMENT_SYSTEM_ENTITY_PROP_CONTRIBUTORS, null) || {};\n\n  const actionContributors: AssetManagementSystemEntityActionContributors =\n    injector.get(ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS, null) || {};\n  const toolbarContributors: AssetManagementSystemToolbarActionContributors =\n    injector.get(ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\n\n  const createFormContributors =\n    inject(ASSET_MANAGEMENT_SYSTEM_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS, { optional: true }) || {};\n  const editFormContributors =\n    inject(ASSET_MANAGEMENT_SYSTEM_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS, { optional: true }) || {};\n\n  const configState = injector.get(ConfigStateService);\n  return getObjectExtensionEntitiesFromStore(injector, 'AssetManagementSystem').pipe(\n    map(entities => ({\n      [eAssetManagementSystemComponents.AssetManagementSystem]: entities.AssetManagementSystem,\n    })),\n    mapEntitiesToContributors(injector, 'AssetManagementSystem'),\n    tap(objectExtensionContributors => {\n      mergeWithDefaultActions(\n        extensions.entityActions,\n        DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTIONS,\n        actionContributors\n      );\n      mergeWithDefaultActions(\n        extensions.toolbarActions,\n        DEFAULT_ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTIONS,\n        toolbarContributors\n      );\n      mergeWithDefaultProps(\n        extensions.entityProps,\n        DEFAULT_ASSET_MANAGEMENT_SYSTEM_ENTITY_PROPS,\n        objectExtensionContributors.prop,\n        propContributors\n      );\n      mergeWithDefaultProps(\n        extensions.createFormProps,\n        DEFAULT_ASSET_MANAGEMENT_SYSTEM_CREATE_FORM_PROPS,\n        objectExtensionContributors.createForm,\n        createFormContributors\n      );\n      mergeWithDefaultProps(\n        extensions.editFormProps,\n        DEFAULT_ASSET_MANAGEMENT_SYSTEM_EDIT_FORM_PROPS,\n        objectExtensionContributors.editForm,\n        editFormContributors\n      );\n    })\n  );\n};\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type { GetOfficesInput, OfficeDto } from '../../../proxy/offices/models';\nimport { OfficeService } from '../../../proxy/offices/office.service';\n\nexport abstract class AbstractOfficeViewService {\n  protected readonly proxyService = inject(OfficeService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<OfficeDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<OfficeDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetOfficesInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ id }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: OfficeDto) {\n    this.confirmationService\n      .warn(\n        'AssetManagementSystem::DeleteConfirmationMessage',\n        'AssetManagementSystem::AreYouSure',\n        { messageLocalizationParams: [] },\n      )\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'AssetManagementSystem::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<OfficeDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetOfficesInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'Office.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractOfficeViewService } from './office.abstract.service';\n\n@Injectable()\nexport class OfficeViewService extends AbstractOfficeViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { OfficeDto } from '../../../proxy/offices/models';\nimport { OfficeService } from '../../../proxy/offices/office.service';\n\nexport abstract class AbstractOfficeDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(OfficeService);\n  public readonly list = inject(ListService);\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    const formValues = {\n      ...this.form.value,\n    };\n\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, {\n        ...formValues,\n        concurrencyStamp: this.selected.concurrencyStamp,\n      });\n    }\n\n    return this.proxyService.create(formValues);\n  }\n\n  buildForm() {\n    const { name, country, state, city, address } = this.selected || {};\n\n    this.form = this.fb.group({\n      name: [\n        name ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\n      ],\n      country: [country ?? null, [Validators.maxLength(64)]],\n      state: [state ?? null, [Validators.maxLength(64)]],\n      city: [city ?? null, [Validators.maxLength(64)]],\n      address: [\n        address ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(1024)],\n      ],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: OfficeDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible($event: boolean) {\n    this.isVisible = $event;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractOfficeDetailViewService } from './office-detail.abstract.service';\n\n@Injectable()\nexport class OfficeDetailViewService extends AbstractOfficeDetailViewService {}\n","import { Directive, OnInit, inject, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n  NgbNav,\r\n  NgbNavItem,\r\n  NgbNavLink,\r\n  NgbNavContent,\r\n  NgbNavOutlet,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport type { OfficeDto } from '../../../proxy/offices/models';\r\nimport { OfficeViewService } from '../services/office.service';\r\nimport { OfficeDetailViewService } from '../services/office-detail.service';\r\n\r\n\r\nexport const ChildTabDependencies = [NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, NgbNavOutlet];\r\n\r\n\r\n@Directive()\r\nexport abstract class AbstractOfficeComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(OfficeViewService);\r\n  public readonly serviceDetail = inject(OfficeDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected title = 'AssetManagementSystem::Offices';\r\n  protected isActionButtonVisible: boolean | null = null;\r\n  protected isChildEntitiesPermitted: boolean | null = null;\r\n\r\n  @ViewChild('officeTable') table: any;\r\n\r\n  ngOnInit() {\r\n    this.service.hookToQuery();\r\n    this.checkActionButtonVisibility();\r\n    this.checkChildEntityPermissions();\r\n  }\r\n\r\n  clearFilters() {\r\n    this.service.clearFilters();\r\n  }\r\n\r\n  showForm() {\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: OfficeDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: OfficeDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  exportToExcel() {\r\n    this.service.exportToExcel();\r\n  }\r\n\r\n  toggleExpandRow(row) {\r\n    this.table.rowDetail.toggleExpandRow(row);\r\n  }\r\n\r\n  checkChildEntityPermissions() {\r\n    if (this.isChildEntitiesPermitted !== null) {\r\n      return;\r\n    }\r\n\r\n    const childPermissions = ['AssetManagementSystem.Assets'];\r\n    this.isChildEntitiesPermitted = childPermissions.some(permission =>\r\n      this.permissionService.getGrantedPolicy(permission),\r\n    );\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy('AssetManagementSystem.Offices.Edit');\r\n    const canDelete = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.Offices.Delete',\r\n    );\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  NgbDateAdapter,\r\n  NgbTimeAdapter,\r\n  NgbCollapseModule,\r\n  NgbDatepickerModule,\r\n  NgbTimepickerModule,\r\n  NgbDropdownModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { ListService, CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { OfficeViewService } from '../services/office.service';\r\nimport { OfficeDetailViewService } from '../services/office-detail.service';\r\nimport { OfficeDetailModalComponent } from './office-detail.component';\r\nimport {\r\n  AbstractOfficeComponent\r\n\r\n} from './office.abstract.component';\r\n\r\n@Component({\r\n  selector: 'lib-office',\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  imports: [\r\n   \r\n    NgbCollapseModule,\r\n    NgbDatepickerModule,\r\n    NgbTimepickerModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    PageModule,\r\n    CoreModule,\r\n    ThemeSharedModule,\r\n    CommercialUiModule,\r\n    OfficeDetailModalComponent,\r\n   \r\n  ],\r\n  providers: [\r\n    ListService,\r\n    OfficeViewService,\r\n    OfficeDetailViewService,\r\n    { provide: NgbDateAdapter, useClass: DateAdapter },\r\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\r\n  ],\r\n  templateUrl: './office.component.html',\r\n  styles: `\r\n    ::ng-deep.datatable-row-detail {\r\n      background: transparent !important;\r\n    }\r\n  `,\r\n})\r\nexport class OfficeComponent extends AbstractOfficeComponent {}\r\n","<abp-page [title]=\"title | abpLocalization\">\r\n  <abp-page-toolbar-container class=\"col\">\r\n    <!--<suite-custom-code-block-0>-->\r\n    <!--</suite-custom-code-block-0>-->\r\n    <div class=\"text-lg-end pt-2\">\r\n      <!--<suite-custom-code-block-1>-->\r\n      <!--</suite-custom-code-block-1>-->\r\n\r\n      <button\r\n        class=\"btn btn-primary btn-sm mx-2\"\r\n        type=\"button\"\r\n        [disabled]=\"service.isExportToExcelBusy\"\r\n        (click)=\"exportToExcel()\"\r\n      >\r\n        {{ 'AssetManagementSystem::ExportToExcel' | abpLocalization }}\r\n      </button>\r\n\r\n      <button\r\n        *abpPermission=\"'AssetManagementSystem.Offices.Create'\"\r\n        class=\"btn btn-primary btn-sm\"\r\n        type=\"button\"\r\n        (click)=\"create()\"\r\n      >\r\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n        {{ 'AssetManagementSystem::NewOffice' | abpLocalization }}\r\n      </button>\r\n      <!--<suite-custom-code-block-2>-->\r\n      <!--</suite-custom-code-block-2>-->\r\n    </div>\r\n  </abp-page-toolbar-container>\r\n\r\n  <abp-advanced-entity-filters localizationSourceName=\"AssetManagementSystem\" [list]=\"list\">\r\n    @if (service.filters; as filters) {\r\n      <abp-advanced-entity-filters-form>\r\n        <form #filterForm (keyup.enter)=\"list.get()\">\r\n          <!--<suite-custom-code-block-3>-->\r\n          <!--</suite-custom-code-block-3>-->\r\n          <div class=\"row\">\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"nameFilter\">\r\n                  {{ 'AssetManagementSystem::Name' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"nameFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.name\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"countryFilter\">\r\n                  {{ 'AssetManagementSystem::Country' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"countryFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.country\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"stateFilter\">\r\n                  {{ 'AssetManagementSystem::State' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"stateFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.state\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"cityFilter\">\r\n                  {{ 'AssetManagementSystem::City' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"cityFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.city\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"addressFilter\">\r\n                  {{ 'AssetManagementSystem::Address' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"addressFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.address\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n              <div class=\"row\">\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <!--<suite-custom-code-block-4>-->\r\n          <!--</suite-custom-code-block-4>-->\r\n        </form>\r\n      </abp-advanced-entity-filters-form>\r\n    }\r\n  </abp-advanced-entity-filters>\r\n  <!--<suite-custom-code-block-5>-->\r\n  <!--</suite-custom-code-block-5>-->\r\n  <div class=\"card\">\r\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n      @if (service.selectedCount() > 0) {\r\n        <h4 class=\"card-title\">\r\n          {{\r\n            'AssetManagementSystem::AllItemsAreSelected'\r\n              | abpLocalization\r\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\r\n          }}\r\n        </h4>\r\n\r\n        <div>\r\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\r\n            @if (service.allSelected()) {\r\n              {{ 'AssetManagementSystem::ClearSelection' | abpLocalization }}\r\n            } @else {\r\n              {{\r\n                'AssetManagementSystem::SelectAllItems' | abpLocalization: service.data.totalCount\r\n              }}\r\n            }\r\n          </button>\r\n\r\n          <button\r\n            *abpPermission=\"'AssetManagementSystem.Offices.Delete'\"\r\n            class=\"btn btn-danger btn-sm mx-1\"\r\n            (click)=\"service.bulkDelete()\"\r\n          >\r\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\r\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\r\n          </button>\r\n        </div>\r\n      }\r\n    </div>\r\n\r\n    <!--<suite-custom-code-block-6>-->\r\n    <!--</suite-custom-code-block-6>-->\r\n    <div class=\"card-body\">\r\n      <!--<suite-custom-code-block-7>-->\r\n      <!--</suite-custom-code-block-7>-->\r\n      <ngx-datatable\r\n        #officeTable\r\n        default\r\n        [rows]=\"service.data.items\"\r\n        [count]=\"service.data.totalCount\"\r\n        [list]=\"list\"\r\n        [selected]=\"service.selected()\"\r\n        [selectionType]=\"service.selectionType.checkbox\"\r\n        (select)=\"service.onSelect($event)\"\r\n      >\r\n        <!--<suite-custom-code-block-8>-->\r\n        <!--</suite-custom-code-block-8>-->\r\n\r\n        <ngx-datatable-column\r\n          [width]=\"40\"\r\n          [sortable]=\"false\"\r\n          [canAutoResize]=\"false\"\r\n          [draggable]=\"false\"\r\n          [resizeable]=\"false\"\r\n        >\r\n          <ng-template\r\n            ngx-datatable-header-template\r\n            let-value=\"value\"\r\n            let-allRowsSelected=\"allRowsSelected\"\r\n            let-selectFn=\"selectFn\"\r\n          >\r\n            @if (service.data.items.length > 0) {\r\n              <input\r\n                type=\"checkbox\"\r\n                class=\"form-check-input\"\r\n                [checked]=\"allRowsSelected\"\r\n                (change)=\"selectFn(!allRowsSelected)\"\r\n              />\r\n            }\r\n          </ng-template>\r\n          <ng-template\r\n            ngx-datatable-cell-template\r\n            let-value=\"value\"\r\n            let-isSelected=\"isSelected\"\r\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n          >\r\n            <input\r\n              class=\"form-check-input\"\r\n              type=\"checkbox\"\r\n              [checked]=\"isSelected\"\r\n              (change)=\"onCheckboxChangeFn($event)\"\r\n            />\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n\r\n        <!-- Row Detail Template -->\r\n        <ngx-datatable-row-detail rowHeight=\"100%\">\r\n          <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\r\n            <ul id=\"office-nav-tabs mb-0\" ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n              <li\r\n                *abpPermission=\"'AssetManagementSystem.Assets'\"\r\n                id=\"asset-informations\"\r\n                ngbNavItem\r\n              >\r\n                <a ngbNavLink>{{ 'AssetManagementSystem::Asset' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-asset [officeId]=\"row.id\" />\r\n                </ng-template>\r\n              </li>\r\n            </ul>\r\n\r\n            <div [ngbNavOutlet]=\"nav\" class=\"m-0 fade-in-top\"></div>\r\n          </ng-template>\r\n        </ngx-datatable-row-detail>\r\n        @if (isChildEntitiesPermitted) {\r\n          <ngx-datatable-column\r\n            [width]=\"50\"\r\n            [resizeable]=\"false\"\r\n            [sortable]=\"false\"\r\n            [draggable]=\"false\"\r\n            [canAutoResize]=\"false\"\r\n          >\r\n            <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\r\n              <a\r\n                href=\"javascript:void(0)\"\r\n                class=\"ngx-datatable-toggle text-decoration-none text-muted fa\"\r\n                [class.fa-angle-down]=\"!expanded\"\r\n                [class.fa-angle-up]=\"expanded\"\r\n                title=\"Expand/Collapse Row\"\r\n                (click)=\"toggleExpandRow(row)\"\r\n              >\r\n              </a>\r\n            </ng-template>\r\n          </ngx-datatable-column>\r\n        }\r\n\r\n        @if (isActionButtonVisible) {\r\n          <ngx-datatable-column\r\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n            [maxWidth]=\"150\"\r\n            [width]=\"150\"\r\n            [sortable]=\"false\"\r\n          >\r\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n                <button\r\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n                  data-toggle=\"dropdown\"\r\n                  aria-haspopup=\"true\"\r\n                  ngbDropdownToggle\r\n                >\r\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n                  {{ 'AbpUi::Actions' | abpLocalization }}\r\n                </button>\r\n\r\n                <div ngbDropdownMenu>\r\n                  <button\r\n                    ngbDropdownItem\r\n                    *abpPermission=\"'AssetManagementSystem.Offices.Edit'\"\r\n                    (click)=\"update(row)\"\r\n                  >\r\n                    {{ 'AbpUi::Edit' | abpLocalization }}\r\n                  </button>\r\n\r\n                  <button\r\n                    ngbDropdownItem\r\n                    *abpPermission=\"'AssetManagementSystem.Offices.Delete'\"\r\n                    (click)=\"delete(row)\"\r\n                  >\r\n                    {{ 'AbpUi::Delete' | abpLocalization }}\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </ng-template>\r\n          </ngx-datatable-column>\r\n        }\r\n        <ngx-datatable-column\r\n          name=\"{{ 'AssetManagementSystem::Name' | abpLocalization }}\"\r\n          prop=\"name\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.name }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column\r\n          name=\"{{ 'AssetManagementSystem::Country' | abpLocalization }}\"\r\n          prop=\"country\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.country }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column\r\n          name=\"{{ 'AssetManagementSystem::State' | abpLocalization }}\"\r\n          prop=\"state\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.state }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column\r\n          name=\"{{ 'AssetManagementSystem::City' | abpLocalization }}\"\r\n          prop=\"city\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.city }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column\r\n          name=\"{{ 'AssetManagementSystem::Address' | abpLocalization }}\"\r\n          prop=\"address\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.address }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <!--<suite-custom-code-block-9>-->\r\n        <!--</suite-custom-code-block-9>-->\r\n      </ngx-datatable>\r\n      <!--<suite-custom-code-block-10>-->\r\n      <!--</suite-custom-code-block-10>-->\r\n    </div>\r\n  </div>\r\n  <!--<suite-custom-code-block-11>-->\r\n  <!--</suite-custom-code-block-11>-->\r\n</abp-page>\r\n<!--<suite-custom-code-block-12>-->\r\n<!--</suite-custom-code-block-12>-->\r\n\r\n@defer (when serviceDetail.isVisible) {\r\n  @if (serviceDetail.isVisible) {\r\n    <lib-office-detail-modal />\r\n  }\r\n}\r\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { OfficeComponent } from './components/office.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: OfficeComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class OfficeRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { OfficeComponent } from './components/office.component';\nimport { OfficeRoutingModule } from './office-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [OfficeComponent, OfficeRoutingModule],\n})\nexport class OfficeModule {}\n\nexport function loadOfficeModuleAsChild() {\n  return Promise.resolve(OfficeModule);\n}\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type { GetAssetTypesInput, AssetTypeDto } from '../../../proxy/asset-types/models';\nimport { AssetTypeService } from '../../../proxy/asset-types/asset-type.service';\n\nexport abstract class AbstractAssetTypeViewService {\n  protected readonly proxyService = inject(AssetTypeService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<AssetTypeDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<AssetTypeDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetAssetTypesInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ id }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: AssetTypeDto) {\n    this.confirmationService\n      .warn(\n        'AssetManagementSystem::DeleteConfirmationMessage',\n        'AssetManagementSystem::AreYouSure',\n        { messageLocalizationParams: [] },\n      )\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'AssetManagementSystem::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<AssetTypeDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetAssetTypesInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'AssetType.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssetTypeViewService } from './asset-type.abstract.service';\n\n@Injectable()\nexport class AssetTypeViewService extends AbstractAssetTypeViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { AssetTypeDto } from '../../../proxy/asset-types/models';\nimport { AssetTypeService } from '../../../proxy/asset-types/asset-type.service';\n\nexport abstract class AbstractAssetTypeDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(AssetTypeService);\n  public readonly list = inject(ListService);\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    const formValues = {\n      ...this.form.value,\n    };\n\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, {\n        ...formValues,\n        concurrencyStamp: this.selected.concurrencyStamp,\n      });\n    }\n\n    return this.proxyService.create(formValues);\n  }\n\n  buildForm() {\n    const { name, description, isActive } = this.selected || {};\n\n    this.form = this.fb.group({\n      name: [\n        name ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\n      ],\n      description: [description ?? null, [Validators.maxLength(512)]],\n      isActive: [isActive ?? false, []],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: AssetTypeDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible($event: boolean) {\n    this.isVisible = $event;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssetTypeDetailViewService } from './asset-type-detail.abstract.service';\n\n@Injectable()\nexport class AssetTypeDetailViewService extends AbstractAssetTypeDetailViewService {}\n","import { Directive, OnInit, inject } from '@angular/core';\n\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { AssetTypeDto } from '../../../proxy/asset-types/models';\nimport { AssetTypeViewService } from '../services/asset-type.service';\nimport { AssetTypeDetailViewService } from '../services/asset-type-detail.service';\n\nexport const ChildTabDependencies = [];\n\nexport const ChildComponentDependencies = [];\n\n@Directive()\nexport abstract class AbstractAssetTypeComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(AssetTypeViewService);\n  public readonly serviceDetail = inject(AssetTypeDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected title = 'AssetManagementSystem::AssetTypes';\n  protected isActionButtonVisible: boolean | null = null;\n\n  ngOnInit() {\n    this.service.hookToQuery();\n    this.checkActionButtonVisibility();\n  }\n\n  clearFilters() {\n    this.service.clearFilters();\n  }\n\n  showForm() {\n    this.serviceDetail.showForm();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: AssetTypeDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: AssetTypeDto) {\n    this.service.delete(record);\n  }\n\n  exportToExcel() {\n    this.service.exportToExcel();\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy(\n      'AssetManagementSystem.AssetTypes.Edit',\n    );\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'AssetManagementSystem.AssetTypes.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbTimeAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbTimepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { AssetTypeViewService } from '../services/asset-type.service';\nimport { AssetTypeDetailViewService } from '../services/asset-type-detail.service';\nimport { AssetTypeDetailModalComponent } from './asset-type-detail.component';\nimport {\n  AbstractAssetTypeComponent,\n  ChildTabDependencies,\n  ChildComponentDependencies,\n} from './asset-type.abstract.component';\n\n@Component({\n  selector: 'lib-asset-type',\n  changeDetection: ChangeDetectionStrategy.Default,\n  imports: [\n    ...ChildTabDependencies,\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbTimepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    PageModule,\n    CoreModule,\n    ThemeSharedModule,\n    CommercialUiModule,\n    AssetTypeDetailModalComponent,\n    ...ChildComponentDependencies,\n  ],\n  providers: [\n    ListService,\n    AssetTypeViewService,\n    AssetTypeDetailViewService,\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n  templateUrl: './asset-type.component.html',\n  styles: `\n    ::ng-deep.datatable-row-detail {\n      background: transparent !important;\n    }\n  `,\n})\nexport class AssetTypeComponent extends AbstractAssetTypeComponent {}\n","<abp-page [title]=\"title | abpLocalization\">\n  <abp-page-toolbar-container class=\"col\">\n    <!--<suite-custom-code-block-0>-->\n    <!--</suite-custom-code-block-0>-->\n    <div class=\"text-lg-end pt-2\">\n      <!--<suite-custom-code-block-1>-->\n      <!--</suite-custom-code-block-1>-->\n\n      <button\n        class=\"btn btn-primary btn-sm mx-2\"\n        type=\"button\"\n        [disabled]=\"service.isExportToExcelBusy\"\n        (click)=\"exportToExcel()\"\n      >\n        {{ 'AssetManagementSystem::ExportToExcel' | abpLocalization }}\n      </button>\n\n      <button\n        *abpPermission=\"'AssetManagementSystem.AssetTypes.Create'\"\n        class=\"btn btn-primary btn-sm\"\n        type=\"button\"\n        (click)=\"create()\"\n      >\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n        {{ 'AssetManagementSystem::NewAssetType' | abpLocalization }}\n      </button>\n      <!--<suite-custom-code-block-2>-->\n      <!--</suite-custom-code-block-2>-->\n    </div>\n  </abp-page-toolbar-container>\n\n  <abp-advanced-entity-filters localizationSourceName=\"AssetManagementSystem\" [list]=\"list\">\n    @if (service.filters; as filters) {\n      <abp-advanced-entity-filters-form>\n        <form #filterForm (keyup.enter)=\"list.get()\">\n          <!--<suite-custom-code-block-3>-->\n          <!--</suite-custom-code-block-3>-->\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"nameFilter\">\n                  {{ 'AssetManagementSystem::Name' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"nameFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.name\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"descriptionFilter\">\n                  {{ 'AssetManagementSystem::Description' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"descriptionFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.description\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"isActiveFilter\">\n                  {{ 'AssetManagementSystem::IsActive' | abpLocalization }}\n                </label>\n\n                <select\n                  name=\"isActive\"\n                  id=\"isActiveFilter\"\n                  class=\"form-select form-control\"\n                  [(ngModel)]=\"filters.isActive\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                  (change)=\"list.get()\"\n                >\n                  <option [ngValue]=\"\"></option>\n                  <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\n                  <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\n                </select>\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n              <div class=\"row\">\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n                  </button>\n                </div>\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!--<suite-custom-code-block-4>-->\n          <!--</suite-custom-code-block-4>-->\n        </form>\n      </abp-advanced-entity-filters-form>\n    }\n  </abp-advanced-entity-filters>\n  <!--<suite-custom-code-block-5>-->\n  <!--</suite-custom-code-block-5>-->\n  <div class=\"card\">\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\n      @if (service.selectedCount() > 0) {\n        <h4 class=\"card-title\">\n          {{\n            'AssetManagementSystem::AllItemsAreSelected'\n              | abpLocalization\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\n          }}\n        </h4>\n\n        <div>\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\n            @if (service.allSelected()) {\n              {{ 'AssetManagementSystem::ClearSelection' | abpLocalization }}\n            } @else {\n              {{\n                'AssetManagementSystem::SelectAllItems' | abpLocalization: service.data.totalCount\n              }}\n            }\n          </button>\n\n          <button\n            *abpPermission=\"'AssetManagementSystem.AssetTypes.Delete'\"\n            class=\"btn btn-danger btn-sm mx-1\"\n            (click)=\"service.bulkDelete()\"\n          >\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\n          </button>\n        </div>\n      }\n    </div>\n\n    <!--<suite-custom-code-block-6>-->\n    <!--</suite-custom-code-block-6>-->\n    <div class=\"card-body\">\n      <!--<suite-custom-code-block-7>-->\n      <!--</suite-custom-code-block-7>-->\n      <ngx-datatable\n        default\n        [rows]=\"service.data.items\"\n        [count]=\"service.data.totalCount\"\n        [list]=\"list\"\n        [selected]=\"service.selected()\"\n        [selectionType]=\"service.selectionType.checkbox\"\n        (select)=\"service.onSelect($event)\"\n      >\n        <!--<suite-custom-code-block-8>-->\n        <!--</suite-custom-code-block-8>-->\n\n        <ngx-datatable-column\n          [width]=\"40\"\n          [sortable]=\"false\"\n          [canAutoResize]=\"false\"\n          [draggable]=\"false\"\n          [resizeable]=\"false\"\n        >\n          <ng-template\n            ngx-datatable-header-template\n            let-value=\"value\"\n            let-allRowsSelected=\"allRowsSelected\"\n            let-selectFn=\"selectFn\"\n          >\n            @if (service.data.items.length > 0) {\n              <input\n                type=\"checkbox\"\n                class=\"form-check-input\"\n                [checked]=\"allRowsSelected\"\n                (change)=\"selectFn(!allRowsSelected)\"\n              />\n            }\n          </ng-template>\n          <ng-template\n            ngx-datatable-cell-template\n            let-value=\"value\"\n            let-isSelected=\"isSelected\"\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n          >\n            <input\n              class=\"form-check-input\"\n              type=\"checkbox\"\n              [checked]=\"isSelected\"\n              (change)=\"onCheckboxChangeFn($event)\"\n            />\n          </ng-template>\n        </ngx-datatable-column>\n\n        @if (isActionButtonVisible) {\n          <ngx-datatable-column\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\n            [maxWidth]=\"150\"\n            [width]=\"150\"\n            [sortable]=\"false\"\n          >\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n                <button\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\n                  data-toggle=\"dropdown\"\n                  aria-haspopup=\"true\"\n                  ngbDropdownToggle\n                >\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n                  {{ 'AbpUi::Actions' | abpLocalization }}\n                </button>\n\n                <div ngbDropdownMenu>\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.AssetTypes.Edit'\"\n                    (click)=\"update(row)\"\n                  >\n                    {{ 'AbpUi::Edit' | abpLocalization }}\n                  </button>\n\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.AssetTypes.Delete'\"\n                    (click)=\"delete(row)\"\n                  >\n                    {{ 'AbpUi::Delete' | abpLocalization }}\n                  </button>\n                </div>\n              </div>\n            </ng-template>\n          </ngx-datatable-column>\n        }\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Name' | abpLocalization }}\"\n          prop=\"name\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.name }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Description' | abpLocalization }}\"\n          prop=\"description\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.description }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::IsActive' | abpLocalization }}\"\n          prop=\"isActive\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            <ng-template [ngIf]=\"row.isActive\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\n\n            <ng-template #yes>\n              <div class=\"text-success\">\n                <span [title]=\"'AbpUi::Yes' | abpLocalization\">\n                  <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\n                </span>\n              </div>\n            </ng-template>\n\n            <ng-template #no>\n              <div class=\"text-danger\">\n                <span [title]=\"'AbpUi::No' | abpLocalization\">\n                  <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n                </span>\n              </div>\n            </ng-template>\n          </ng-template>\n        </ngx-datatable-column>\n        <!--<suite-custom-code-block-9>-->\n        <!--</suite-custom-code-block-9>-->\n      </ngx-datatable>\n      <!--<suite-custom-code-block-10>-->\n      <!--</suite-custom-code-block-10>-->\n    </div>\n  </div>\n  <!--<suite-custom-code-block-11>-->\n  <!--</suite-custom-code-block-11>-->\n</abp-page>\n<!--<suite-custom-code-block-12>-->\n<!--</suite-custom-code-block-12>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-asset-type-detail-modal />\n  }\n}\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AssetTypeComponent } from './components/asset-type.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: AssetTypeComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class AssetTypeRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { AssetTypeComponent } from './components/asset-type.component';\nimport { AssetTypeRoutingModule } from './asset-type-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [AssetTypeComponent, AssetTypeRoutingModule],\n})\nexport class AssetTypeModule {}\n\nexport function loadAssetTypeModuleAsChild() {\n  return Promise.resolve(AssetTypeModule);\n}\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type { GetStatusesInput, StatusDto } from '../../../proxy/statuses/models';\nimport { StatusService } from '../../../proxy/statuses/status.service';\n\nexport abstract class AbstractStatusViewService {\n  protected readonly proxyService = inject(StatusService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<StatusDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<StatusDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetStatusesInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ id }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: StatusDto) {\n    this.confirmationService\n      .warn(\n        'AssetManagementSystem::DeleteConfirmationMessage',\n        'AssetManagementSystem::AreYouSure',\n        { messageLocalizationParams: [] },\n      )\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'AssetManagementSystem::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<StatusDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetStatusesInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'Status.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractStatusViewService } from './status.abstract.service';\n\n@Injectable()\nexport class StatusViewService extends AbstractStatusViewService {}\n","import { inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ListService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\nimport { StatusEntityType, statusEntityTypeOptions } from '../../../proxy/enum/status-entity-type.enum';\r\nimport type { StatusDto } from '../../../proxy/statuses/models';\r\nimport { StatusService } from '../../../proxy/statuses/status.service';\r\n\r\nexport abstract class AbstractStatusDetailViewService {\r\n  protected readonly fb = inject(FormBuilder);\r\n  protected readonly track = inject(TrackByService);\r\n\r\n  public readonly proxyService = inject(StatusService);\r\n  public readonly list = inject(ListService);\r\n\r\n  statusEntityTypeOptions = statusEntityTypeOptions;\r\n\r\n  isBusy = false;\r\n  isVisible = false;\r\n  selected = {} as any;\r\n  form: FormGroup | undefined;\r\n\r\n  protected createRequest() {\r\n    const formValues = {\r\n      ...this.form.value,\r\n    };\r\n\r\n    if (this.selected) {\r\n      return this.proxyService.update(this.selected.id, {\r\n        ...formValues,\r\n        concurrencyStamp: this.selected.concurrencyStamp,\r\n      });\r\n    }\r\n\r\n    return this.proxyService.create(formValues);\r\n  }\r\n\r\n  buildForm() {\r\n    const { name, statusEntityType, order } = this.selected || {};\r\n\r\n    this.form = this.fb.group({\r\n      name: [\r\n        name ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\r\n      ],\r\n      statusEntityType: [statusEntityType ?? StatusEntityType.Assets, [Validators.required]],\r\n      order: [order ?? null, [Validators.required]],\r\n    });\r\n  }\r\n\r\n  showForm() {\r\n    this.buildForm();\r\n    this.isVisible = true;\r\n  }\r\n\r\n  create() {\r\n    this.selected = undefined;\r\n    this.showForm();\r\n  }\r\n\r\n  update(record: StatusDto) {\r\n    this.selected = record;\r\n    this.showForm();\r\n  }\r\n\r\n  hideForm() {\r\n    this.isVisible = false;\r\n  }\r\n\r\n  submitForm() {\r\n    if (this.form.invalid) return;\r\n\r\n    this.isBusy = true;\r\n\r\n    const request = this.createRequest().pipe(\r\n      finalize(() => (this.isBusy = false)),\r\n      tap(() => this.hideForm()),\r\n    );\r\n\r\n    request.subscribe(this.list.get);\r\n  }\r\n\r\n  changeVisible($event: boolean) {\r\n    this.isVisible = $event;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { AbstractStatusDetailViewService } from './status-detail.abstract.service';\n\n@Injectable()\nexport class StatusDetailViewService extends AbstractStatusDetailViewService {}\n","import { Directive, OnInit, inject } from '@angular/core';\n\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport { statusEntityTypeOptions } from '../../../proxy/enum/status-entity-type.enum';\nimport type { StatusDto } from '../../../proxy/statuses/models';\nimport { StatusViewService } from '../services/status.service';\nimport { StatusDetailViewService } from '../services/status-detail.service';\n\nexport const ChildTabDependencies = [];\n\nexport const ChildComponentDependencies = [];\n\n@Directive()\nexport abstract class AbstractStatusComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(StatusViewService);\n  public readonly serviceDetail = inject(StatusDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected title = 'AssetManagementSystem::Statuses';\n  protected isActionButtonVisible: boolean | null = null;\n\n  statusEntityTypeOptions = statusEntityTypeOptions;\n\n  ngOnInit() {\n    this.service.hookToQuery();\n    this.checkActionButtonVisibility();\n  }\n\n  clearFilters() {\n    this.service.clearFilters();\n  }\n\n  showForm() {\n    this.serviceDetail.showForm();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: StatusDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: StatusDto) {\n    this.service.delete(record);\n  }\n\n  exportToExcel() {\n    this.service.exportToExcel();\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy('AssetManagementSystem.Statuses.Edit');\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'AssetManagementSystem.Statuses.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbTimeAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbTimepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { StatusViewService } from '../services/status.service';\nimport { StatusDetailViewService } from '../services/status-detail.service';\nimport { StatusDetailModalComponent } from './status-detail.component';\nimport {\n  AbstractStatusComponent,\n  ChildTabDependencies,\n  ChildComponentDependencies,\n} from './status.abstract.component';\n\n@Component({\n  selector: 'lib-status',\n  changeDetection: ChangeDetectionStrategy.Default,\n  imports: [\n    ...ChildTabDependencies,\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbTimepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    PageModule,\n    CoreModule,\n    ThemeSharedModule,\n    CommercialUiModule,\n    StatusDetailModalComponent,\n    ...ChildComponentDependencies,\n  ],\n  providers: [\n    ListService,\n    StatusViewService,\n    StatusDetailViewService,\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n  templateUrl: './status.component.html',\n  styles: `\n    ::ng-deep.datatable-row-detail {\n      background: transparent !important;\n    }\n  `,\n})\nexport class StatusComponent extends AbstractStatusComponent {}\n","<abp-page [title]=\"title | abpLocalization\">\n  <abp-page-toolbar-container class=\"col\">\n    <!--<suite-custom-code-block-0>-->\n    <!--</suite-custom-code-block-0>-->\n    <div class=\"text-lg-end pt-2\">\n      <!--<suite-custom-code-block-1>-->\n      <!--</suite-custom-code-block-1>-->\n\n      <button\n        class=\"btn btn-primary btn-sm mx-2\"\n        type=\"button\"\n        [disabled]=\"service.isExportToExcelBusy\"\n        (click)=\"exportToExcel()\"\n      >\n        {{ 'AssetManagementSystem::ExportToExcel' | abpLocalization }}\n      </button>\n\n      <button\n        *abpPermission=\"'AssetManagementSystem.Statuses.Create'\"\n        class=\"btn btn-primary btn-sm\"\n        type=\"button\"\n        (click)=\"create()\"\n      >\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n        {{ 'AssetManagementSystem::NewStatus' | abpLocalization }}\n      </button>\n      <!--<suite-custom-code-block-2>-->\n      <!--</suite-custom-code-block-2>-->\n    </div>\n  </abp-page-toolbar-container>\n\n  <abp-advanced-entity-filters localizationSourceName=\"AssetManagementSystem\" [list]=\"list\">\n    @if (service.filters; as filters) {\n      <abp-advanced-entity-filters-form>\n        <form #filterForm (keyup.enter)=\"list.get()\">\n          <!--<suite-custom-code-block-3>-->\n          <!--</suite-custom-code-block-3>-->\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"nameFilter\">\n                  {{ 'AssetManagementSystem::Name' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"nameFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.name\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"statusEntityTypeFilter\">\n                  {{ 'AssetManagementSystem::StatusEntityType' | abpLocalization }}\n                </label>\n\n                <select\n                  id=\"statusEntityTypeFilter\"\n                  class=\"form-select form-control\"\n                  [(ngModel)]=\"filters.statusEntityType\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                >\n                  <option [ngValue]=\"null\"></option>\n                  <option\n                    *ngFor=\"let option of statusEntityTypeOptions; trackBy: track.by('value')\"\n                    [ngValue]=\"option.value\"\n                  >\n                    {{\n                      'AssetManagementSystem::Enum:StatusEntityType.' + option.value\n                        | abpLocalization\n                    }}\n                  </option>\n                </select>\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"minOrder\">\n                  {{ 'AssetManagementSystem::MinOrder' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"minOrder\"\n                  type=\"number\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.orderMin\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"maxOrder\">\n                  {{ 'AssetManagementSystem::MaxOrder' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"maxOrder\"\n                  type=\"number\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.orderMax\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n              <div class=\"row\">\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n                  </button>\n                </div>\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!--<suite-custom-code-block-4>-->\n          <!--</suite-custom-code-block-4>-->\n        </form>\n      </abp-advanced-entity-filters-form>\n    }\n  </abp-advanced-entity-filters>\n  <!--<suite-custom-code-block-5>-->\n  <!--</suite-custom-code-block-5>-->\n  <div class=\"card\">\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\n      @if (service.selectedCount() > 0) {\n        <h4 class=\"card-title\">\n          {{\n            'AssetManagementSystem::AllItemsAreSelected'\n              | abpLocalization\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\n          }}\n        </h4>\n\n        <div>\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\n            @if (service.allSelected()) {\n              {{ 'AssetManagementSystem::ClearSelection' | abpLocalization }}\n            } @else {\n              {{\n                'AssetManagementSystem::SelectAllItems' | abpLocalization: service.data.totalCount\n              }}\n            }\n          </button>\n\n          <button\n            *abpPermission=\"'AssetManagementSystem.Statuses.Delete'\"\n            class=\"btn btn-danger btn-sm mx-1\"\n            (click)=\"service.bulkDelete()\"\n          >\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\n          </button>\n        </div>\n      }\n    </div>\n\n    <!--<suite-custom-code-block-6>-->\n    <!--</suite-custom-code-block-6>-->\n    <div class=\"card-body\">\n      <!--<suite-custom-code-block-7>-->\n      <!--</suite-custom-code-block-7>-->\n      <ngx-datatable\n        default\n        [rows]=\"service.data.items\"\n        [count]=\"service.data.totalCount\"\n        [list]=\"list\"\n        [selected]=\"service.selected()\"\n        [selectionType]=\"service.selectionType.checkbox\"\n        (select)=\"service.onSelect($event)\"\n      >\n        <!--<suite-custom-code-block-8>-->\n        <!--</suite-custom-code-block-8>-->\n\n        <ngx-datatable-column\n          [width]=\"40\"\n          [sortable]=\"false\"\n          [canAutoResize]=\"false\"\n          [draggable]=\"false\"\n          [resizeable]=\"false\"\n        >\n          <ng-template\n            ngx-datatable-header-template\n            let-value=\"value\"\n            let-allRowsSelected=\"allRowsSelected\"\n            let-selectFn=\"selectFn\"\n          >\n            @if (service.data.items.length > 0) {\n              <input\n                type=\"checkbox\"\n                class=\"form-check-input\"\n                [checked]=\"allRowsSelected\"\n                (change)=\"selectFn(!allRowsSelected)\"\n              />\n            }\n          </ng-template>\n          <ng-template\n            ngx-datatable-cell-template\n            let-value=\"value\"\n            let-isSelected=\"isSelected\"\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n          >\n            <input\n              class=\"form-check-input\"\n              type=\"checkbox\"\n              [checked]=\"isSelected\"\n              (change)=\"onCheckboxChangeFn($event)\"\n            />\n          </ng-template>\n        </ngx-datatable-column>\n\n        @if (isActionButtonVisible) {\n          <ngx-datatable-column\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\n            [maxWidth]=\"150\"\n            [width]=\"150\"\n            [sortable]=\"false\"\n          >\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n                <button\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\n                  data-toggle=\"dropdown\"\n                  aria-haspopup=\"true\"\n                  ngbDropdownToggle\n                >\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n                  {{ 'AbpUi::Actions' | abpLocalization }}\n                </button>\n\n                <div ngbDropdownMenu>\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.Statuses.Edit'\"\n                    (click)=\"update(row)\"\n                  >\n                    {{ 'AbpUi::Edit' | abpLocalization }}\n                  </button>\n\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.Statuses.Delete'\"\n                    (click)=\"delete(row)\"\n                  >\n                    {{ 'AbpUi::Delete' | abpLocalization }}\n                  </button>\n                </div>\n              </div>\n            </ng-template>\n          </ngx-datatable-column>\n        }\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Name' | abpLocalization }}\"\n          prop=\"name\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.name }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::StatusEntityType' | abpLocalization }}\"\n          prop=\"statusEntityType\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{\n              row.statusEntityType !== null\n                ? ('AssetManagementSystem::Enum:StatusEntityType.' + row.statusEntityType\n                  | abpLocalization)\n                : ''\n            }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Order' | abpLocalization }}\"\n          prop=\"order\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.order }}\n          </ng-template>\n        </ngx-datatable-column>\n        <!--<suite-custom-code-block-9>-->\n        <!--</suite-custom-code-block-9>-->\n      </ngx-datatable>\n      <!--<suite-custom-code-block-10>-->\n      <!--</suite-custom-code-block-10>-->\n    </div>\n  </div>\n  <!--<suite-custom-code-block-11>-->\n  <!--</suite-custom-code-block-11>-->\n</abp-page>\n<!--<suite-custom-code-block-12>-->\n<!--</suite-custom-code-block-12>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-status-detail-modal />\n  }\n}\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { StatusComponent } from './components/status.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: StatusComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class StatusRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { StatusComponent } from './components/status.component';\nimport { StatusRoutingModule } from './status-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [StatusComponent, StatusRoutingModule],\n})\nexport class StatusModule {}\n\nexport function loadStatusModuleAsChild() {\n  return Promise.resolve(StatusModule);\n}\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type { GetVendorsInput, VendorDto } from '../../../proxy/vendors/models';\nimport { VendorService } from '../../../proxy/vendors/vendor.service';\n\nexport abstract class AbstractVendorViewService {\n  protected readonly proxyService = inject(VendorService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<VendorDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<VendorDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetVendorsInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ id }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: VendorDto) {\n    this.confirmationService\n      .warn(\n        'AssetManagementSystem::DeleteConfirmationMessage',\n        'AssetManagementSystem::AreYouSure',\n        { messageLocalizationParams: [] },\n      )\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'AssetManagementSystem::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<VendorDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetVendorsInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'Vendor.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractVendorViewService } from './vendor.abstract.service';\n\n@Injectable()\nexport class VendorViewService extends AbstractVendorViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { VendorDto } from '../../../proxy/vendors/models';\nimport { VendorService } from '../../../proxy/vendors/vendor.service';\n\nexport abstract class AbstractVendorDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(VendorService);\n  public readonly list = inject(ListService);\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    const formValues = {\n      ...this.form.value,\n    };\n\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, {\n        ...formValues,\n        concurrencyStamp: this.selected.concurrencyStamp,\n      });\n    }\n\n    return this.proxyService.create(formValues);\n  }\n\n  buildForm() {\n    const { name, contactName, phone, email, address, website, notes } = this.selected || {};\n\n    this.form = this.fb.group({\n      name: [\n        name ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\n      ],\n      contactName: [\n        contactName ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\n      ],\n      phone: [phone ?? null, [Validators.maxLength(16)]],\n      email: [email ?? null, [Validators.maxLength(64), Validators.email]],\n      address: [\n        address ?? null,\n        [Validators.required, Validators.minLength(2), Validators.maxLength(1064)],\n      ],\n      website: [website ?? null, [Validators.maxLength(128)]],\n      notes: [notes ?? null, []],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: VendorDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible($event: boolean) {\n    this.isVisible = $event;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractVendorDetailViewService } from './vendor-detail.abstract.service';\n\n@Injectable()\nexport class VendorDetailViewService extends AbstractVendorDetailViewService {}\n","import { Directive, OnInit, inject } from '@angular/core';\n\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { VendorDto } from '../../../proxy/vendors/models';\nimport { VendorViewService } from '../services/vendor.service';\nimport { VendorDetailViewService } from '../services/vendor-detail.service';\n\nexport const ChildTabDependencies = [];\n\nexport const ChildComponentDependencies = [];\n\n@Directive()\nexport abstract class AbstractVendorComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(VendorViewService);\n  public readonly serviceDetail = inject(VendorDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected title = 'AssetManagementSystem::Vendors';\n  protected isActionButtonVisible: boolean | null = null;\n\n  ngOnInit() {\n    this.service.hookToQuery();\n    this.checkActionButtonVisibility();\n  }\n\n  clearFilters() {\n    this.service.clearFilters();\n  }\n\n  showForm() {\n    this.serviceDetail.showForm();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: VendorDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: VendorDto) {\n    this.service.delete(record);\n  }\n\n  exportToExcel() {\n    this.service.exportToExcel();\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy('AssetManagementSystem.Vendors.Edit');\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'AssetManagementSystem.Vendors.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbTimeAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbTimepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { VendorViewService } from '../services/vendor.service';\nimport { VendorDetailViewService } from '../services/vendor-detail.service';\nimport { VendorDetailModalComponent } from './vendor-detail.component';\nimport {\n  AbstractVendorComponent,\n  ChildTabDependencies,\n  ChildComponentDependencies,\n} from './vendor.abstract.component';\n\n@Component({\n  selector: 'lib-vendor',\n  changeDetection: ChangeDetectionStrategy.Default,\n  imports: [\n    ...ChildTabDependencies,\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbTimepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    PageModule,\n    CoreModule,\n    ThemeSharedModule,\n    CommercialUiModule,\n    VendorDetailModalComponent,\n    ...ChildComponentDependencies,\n  ],\n  providers: [\n    ListService,\n    VendorViewService,\n    VendorDetailViewService,\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n  templateUrl: './vendor.component.html',\n  styles: `\n    ::ng-deep.datatable-row-detail {\n      background: transparent !important;\n    }\n  `,\n})\nexport class VendorComponent extends AbstractVendorComponent {}\n","<abp-page [title]=\"title | abpLocalization\">\n  <abp-page-toolbar-container class=\"col\">\n    <!--<suite-custom-code-block-0>-->\n    <!--</suite-custom-code-block-0>-->\n    <div class=\"text-lg-end pt-2\">\n      <!--<suite-custom-code-block-1>-->\n      <!--</suite-custom-code-block-1>-->\n\n      <button\n        class=\"btn btn-primary btn-sm mx-2\"\n        type=\"button\"\n        [disabled]=\"service.isExportToExcelBusy\"\n        (click)=\"exportToExcel()\"\n      >\n        {{ 'AssetManagementSystem::ExportToExcel' | abpLocalization }}\n      </button>\n\n      <button\n        *abpPermission=\"'AssetManagementSystem.Vendors.Create'\"\n        class=\"btn btn-primary btn-sm\"\n        type=\"button\"\n        (click)=\"create()\"\n      >\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n        {{ 'AssetManagementSystem::NewVendor' | abpLocalization }}\n      </button>\n      <!--<suite-custom-code-block-2>-->\n      <!--</suite-custom-code-block-2>-->\n    </div>\n  </abp-page-toolbar-container>\n\n  <abp-advanced-entity-filters localizationSourceName=\"AssetManagementSystem\" [list]=\"list\">\n    @if (service.filters; as filters) {\n      <abp-advanced-entity-filters-form>\n        <form #filterForm (keyup.enter)=\"list.get()\">\n          <!--<suite-custom-code-block-3>-->\n          <!--</suite-custom-code-block-3>-->\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"nameFilter\">\n                  {{ 'AssetManagementSystem::Name' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"nameFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.name\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"contactNameFilter\">\n                  {{ 'AssetManagementSystem::ContactName' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"contactNameFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.contactName\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"phoneFilter\">\n                  {{ 'AssetManagementSystem::Phone' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"phoneFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.phone\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"emailFilter\">\n                  {{ 'AssetManagementSystem::Email' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"emailFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.email\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"addressFilter\">\n                  {{ 'AssetManagementSystem::Address' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"addressFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.address\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"websiteFilter\">\n                  {{ 'AssetManagementSystem::Website' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"websiteFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.website\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"notesFilter\">\n                  {{ 'AssetManagementSystem::Notes' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"notesFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.notes\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n              <div class=\"row\">\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n                  </button>\n                </div>\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!--<suite-custom-code-block-4>-->\n          <!--</suite-custom-code-block-4>-->\n        </form>\n      </abp-advanced-entity-filters-form>\n    }\n  </abp-advanced-entity-filters>\n  <!--<suite-custom-code-block-5>-->\n  <!--</suite-custom-code-block-5>-->\n  <div class=\"card\">\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\n      @if (service.selectedCount() > 0) {\n        <h4 class=\"card-title\">\n          {{\n            'AssetManagementSystem::AllItemsAreSelected'\n              | abpLocalization\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\n          }}\n        </h4>\n\n        <div>\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\n            @if (service.allSelected()) {\n              {{ 'AssetManagementSystem::ClearSelection' | abpLocalization }}\n            } @else {\n              {{\n                'AssetManagementSystem::SelectAllItems' | abpLocalization: service.data.totalCount\n              }}\n            }\n          </button>\n\n          <button\n            *abpPermission=\"'AssetManagementSystem.Vendors.Delete'\"\n            class=\"btn btn-danger btn-sm mx-1\"\n            (click)=\"service.bulkDelete()\"\n          >\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\n          </button>\n        </div>\n      }\n    </div>\n\n    <!--<suite-custom-code-block-6>-->\n    <!--</suite-custom-code-block-6>-->\n    <div class=\"card-body\">\n      <!--<suite-custom-code-block-7>-->\n      <!--</suite-custom-code-block-7>-->\n      <ngx-datatable\n        default\n        [rows]=\"service.data.items\"\n        [count]=\"service.data.totalCount\"\n        [list]=\"list\"\n        [selected]=\"service.selected()\"\n        [selectionType]=\"service.selectionType.checkbox\"\n        (select)=\"service.onSelect($event)\"\n      >\n        <!--<suite-custom-code-block-8>-->\n        <!--</suite-custom-code-block-8>-->\n\n        <ngx-datatable-column\n          [width]=\"40\"\n          [sortable]=\"false\"\n          [canAutoResize]=\"false\"\n          [draggable]=\"false\"\n          [resizeable]=\"false\"\n        >\n          <ng-template\n            ngx-datatable-header-template\n            let-value=\"value\"\n            let-allRowsSelected=\"allRowsSelected\"\n            let-selectFn=\"selectFn\"\n          >\n            @if (service.data.items.length > 0) {\n              <input\n                type=\"checkbox\"\n                class=\"form-check-input\"\n                [checked]=\"allRowsSelected\"\n                (change)=\"selectFn(!allRowsSelected)\"\n              />\n            }\n          </ng-template>\n          <ng-template\n            ngx-datatable-cell-template\n            let-value=\"value\"\n            let-isSelected=\"isSelected\"\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n          >\n            <input\n              class=\"form-check-input\"\n              type=\"checkbox\"\n              [checked]=\"isSelected\"\n              (change)=\"onCheckboxChangeFn($event)\"\n            />\n          </ng-template>\n        </ngx-datatable-column>\n\n        @if (isActionButtonVisible) {\n          <ngx-datatable-column\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\n            [maxWidth]=\"150\"\n            [width]=\"150\"\n            [sortable]=\"false\"\n          >\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n                <button\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\n                  data-toggle=\"dropdown\"\n                  aria-haspopup=\"true\"\n                  ngbDropdownToggle\n                >\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n                  {{ 'AbpUi::Actions' | abpLocalization }}\n                </button>\n\n                <div ngbDropdownMenu>\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.Vendors.Edit'\"\n                    (click)=\"update(row)\"\n                  >\n                    {{ 'AbpUi::Edit' | abpLocalization }}\n                  </button>\n\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'AssetManagementSystem.Vendors.Delete'\"\n                    (click)=\"delete(row)\"\n                  >\n                    {{ 'AbpUi::Delete' | abpLocalization }}\n                  </button>\n                </div>\n              </div>\n            </ng-template>\n          </ngx-datatable-column>\n        }\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Name' | abpLocalization }}\"\n          prop=\"name\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.name }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::ContactName' | abpLocalization }}\"\n          prop=\"contactName\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.contactName }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Phone' | abpLocalization }}\"\n          prop=\"phone\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.phone }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Email' | abpLocalization }}\"\n          prop=\"email\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.email }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'AssetManagementSystem::Address' | abpLocalization }}\"\n          prop=\"address\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.address }}\n          </ng-template>\n        </ngx-datatable-column>\n        <!--<suite-custom-code-block-9>-->\n        <!--</suite-custom-code-block-9>-->\n      </ngx-datatable>\n      <!--<suite-custom-code-block-10>-->\n      <!--</suite-custom-code-block-10>-->\n    </div>\n  </div>\n  <!--<suite-custom-code-block-11>-->\n  <!--</suite-custom-code-block-11>-->\n</abp-page>\n<!--<suite-custom-code-block-12>-->\n<!--</suite-custom-code-block-12>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-vendor-detail-modal />\n  }\n}\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { VendorComponent } from './components/vendor.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: VendorComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class VendorRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { VendorComponent } from './components/vendor.component';\nimport { VendorRoutingModule } from './vendor-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [VendorComponent, VendorRoutingModule],\n})\nexport class VendorModule {}\n\nexport function loadVendorModuleAsChild() {\n  return Promise.resolve(VendorModule);\n}\n","import { inject, computed, signal } from '@angular/core';\r\nimport { SelectionType } from '@swimlane/ngx-datatable';\r\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\r\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { filter, switchMap, finalize } from 'rxjs/operators';\r\nimport type {\r\n  GetAssetsInput,\r\n  AssetWithNavigationPropertiesDto,\r\n} from '../../../proxy/assets/models';\r\nimport { AssetService } from '../../../proxy/assets/asset.service';\r\n\r\nexport abstract class AbstractAssetViewService {\r\n  protected readonly proxyService = inject(AssetService);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly list = inject(ListService);\r\n  protected readonly abpWindowService = inject(AbpWindowService);\r\n\r\n  isExportToExcelBusy = false;\r\n\r\n  data: PagedResultDto<AssetWithNavigationPropertiesDto> = {\r\n    items: [],\r\n    totalCount: 0,\r\n  };\r\n\r\n  selectionType = SelectionType;\r\n  selected = signal<AssetWithNavigationPropertiesDto[]>([]);\r\n  allSelected = signal(false);\r\n  selectedCount = computed(() => this.selected().length);\r\n\r\n  filters = {} as GetAssetsInput;\r\n\r\n  protected clearAllSelection() {\r\n    this.selected.set([]);\r\n    this.allSelected.set(false);\r\n  }\r\n\r\n  protected bulkDeleteRequest() {\r\n    const ids = this.selected().map(({ asset: { id } }) => id);\r\n\r\n    const request = !this.allSelected()\r\n      ? this.proxyService.deleteByIds(ids)\r\n      : this.proxyService.deleteAll({\r\n          filterText: this.list.filter,\r\n          ...this.filters,\r\n        });\r\n\r\n    return request.pipe(finalize(this.list.get));\r\n  }\r\n\r\n  delete(record: AssetWithNavigationPropertiesDto) {\r\n    this.confirmationService\r\n      .warn(\r\n        'AssetManagementSystem::DeleteConfirmationMessage',\r\n        'AssetManagementSystem::AreYouSure',\r\n        { messageLocalizationParams: [] },\r\n      )\r\n      .pipe(\r\n        filter(status => status === Confirmation.Status.confirm),\r\n        switchMap(() => this.proxyService.delete(record.asset.id)),\r\n      )\r\n      .subscribe(this.list.get);\r\n  }\r\n\r\n  bulkDelete() {\r\n    if (this.selectedCount() < 1) {\r\n      return;\r\n    }\r\n\r\n    let message = 'AssetManagementSystem::';\r\n    let messageParam = null;\r\n\r\n    if (this.allSelected()) {\r\n      message += 'DeleteAllRecords';\r\n    } else {\r\n      message += 'DeleteSelectedRecords';\r\n      messageParam = this.selectedCount().toString();\r\n    }\r\n\r\n    this.confirmationService\r\n      .warn(message, 'AbpUi::AreYouSure', {\r\n        messageLocalizationParams: [messageParam],\r\n      })\r\n      .pipe(\r\n        filter(result => result === Confirmation.Status.confirm),\r\n        switchMap(() => this.bulkDeleteRequest()),\r\n      )\r\n      .subscribe();\r\n  }\r\n\r\n  selectAll() {\r\n    this.allSelected.set(!this.allSelected());\r\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\r\n  }\r\n\r\n  onSelect({ selected }) {\r\n    if (selected.length < 1) {\r\n      this.clearAllSelection();\r\n      return;\r\n    }\r\n\r\n    if (selected.length === this.data.totalCount) {\r\n      this.allSelected.set(true);\r\n      this.selected.set(selected);\r\n      return;\r\n    }\r\n\r\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\r\n      this.allSelected.set(false);\r\n    }\r\n\r\n    if (selected.length === 1) {\r\n      if (this.selected().length < 1) {\r\n        this.selected.set(selected);\r\n        return;\r\n      }\r\n\r\n      this.selected.set([...this.selected()]);\r\n      return;\r\n    }\r\n\r\n    this.selected.set(selected);\r\n  }\r\n\r\n  hookToQuery() {\r\n    const getData = (query: ABP.PageQueryParams) =>\r\n      this.proxyService.getList({\r\n        ...query,\r\n        ...this.filters,\r\n        filterText: query.filter,\r\n      });\r\n\r\n    const setData = (list: PagedResultDto<AssetWithNavigationPropertiesDto>) => {\r\n      this.data = list;\r\n\r\n      if (this.selectedCount() > 0) {\r\n        this.clearAllSelection();\r\n      }\r\n    };\r\n\r\n    this.list.hookToQuery(getData).subscribe(setData);\r\n  }\r\n\r\n  clearFilters() {\r\n    this.filters = {} as GetAssetsInput;\r\n    this.list.get();\r\n  }\r\n\r\n  exportToExcel() {\r\n    this.isExportToExcelBusy = true;\r\n    this.proxyService\r\n      .getDownloadToken()\r\n      .pipe(\r\n        switchMap(({ token }) =>\r\n          this.proxyService.getListAsExcelFile({\r\n            downloadToken: token,\r\n            filterText: this.list.filter,\r\n            ...this.filters,\r\n          }),\r\n        ),\r\n        finalize(() => (this.isExportToExcelBusy = false)),\r\n      )\r\n      .subscribe(result => {\r\n        this.abpWindowService.downloadBlob(result, 'Asset.xlsx');\r\n      });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractAssetViewService } from './asset.abstract.service';\r\n\r\n@Injectable()\r\nexport class AssetViewService extends AbstractAssetViewService {}\r\n","import { inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ListService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\nimport type { AssetWithNavigationPropertiesDto } from '../../../proxy/assets/models';\r\nimport { AssetService } from '../../../proxy/assets/asset.service';\r\nimport { throwError } from 'rxjs';\r\n\r\n\r\nexport abstract class AbstractAssetDetailViewService {\r\n  \r\n  protected readonly fb = inject(FormBuilder);\r\n  protected readonly track = inject(TrackByService);\r\n\r\n  public readonly proxyService = inject(AssetService);\r\n  public readonly list = inject(ListService);\r\n\r\n  public readonly getAssetTypeLookup = this.proxyService.getAssetTypeLookup;\r\n\r\n  public readonly getStatusLookup = this.proxyService.getStatusLookup;\r\n\r\n  public readonly getVendorLookup = this.proxyService.getVendorLookup;\r\n\r\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\r\n\r\n  isBusy = false;\r\n  isVisible = false;\r\n  selected = {} as any;\r\n  form: FormGroup | undefined;\r\n\r\n  protected createRequest() {\r\n    const formValues = {\r\n      ...this.form.value,\r\n    };\r\n    debugger;\r\n     const warrantyUntil = new Date(formValues.warrantyUntil);  \r\n const purchaseDate =new Date(formValues.purchaseDate);\r\nif (warrantyUntil < purchaseDate) {\r\nreturn throwError(() => new Error('Warranty end date cannot be before purchase date.'));\r\n  return\r\n}\r\n\r\n const assignedDate = new Date(formValues.assignedDate);  \r\n const returnDate =new Date(formValues.returnDate);\r\n\r\n  if (returnDate && assignedDate > returnDate) {\r\n      return throwError(() => new Error('Return date cannot be before the assigned date.'));\r\n    \r\n  }\r\n\r\n\r\n    if (this.selected) {\r\n      return this.proxyService.update(this.selected.asset.id, {\r\n        ...formValues,\r\n        concurrencyStamp: this.selected.asset.concurrencyStamp,\r\n      });\r\n    }\r\n\r\n    return this.proxyService.create(formValues);\r\n  }\r\n\r\n  buildForm() {\r\n    const {\r\n      name,\r\n      description,\r\n      manufacturer,\r\n      model,\r\n      serialNumber,\r\n      purchaseDate,\r\n      warrantyUntil,\r\n      cost,\r\n      assignedDate,\r\n      returnDate,\r\n      conditionOnReturn,\r\n      comments,\r\n      isActive,\r\n      assetTypeId,\r\n      statusId,\r\n      vendorId,\r\n      userId,\r\n    } = this.selected?.asset || {};\r\n\r\n    this.form = this.fb.group({\r\n      name: [\r\n        name ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\r\n      ],\r\n      description: [description ?? null, []],\r\n      manufacturer: [\r\n        manufacturer ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\r\n      ],\r\n      model: [\r\n        model ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\r\n      ],\r\n      serialNumber: [\r\n        serialNumber ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(32)],\r\n      ],\r\n      purchaseDate: [purchaseDate ?? null, [Validators.required]],\r\n      warrantyUntil: [warrantyUntil ?? null, [Validators.required]],\r\n      cost: [cost ?? null, [Validators.required, Validators.pattern(/^\\d{0,5}(\\.\\d{0,2})?$/)]],\r\n      assignedDate: [assignedDate ?? null, [Validators.required]],\r\n      returnDate: [returnDate ?? null, []],\r\n      conditionOnReturn: [conditionOnReturn ?? null, []],\r\n      comments: [comments ?? null, []],\r\n      isActive: [isActive ?? false, []],\r\n      assetTypeId: [assetTypeId ?? null, [Validators.required]],\r\n      statusId: [statusId ?? null, []],\r\n      vendorId: [vendorId ?? null, []],\r\n      userId: [userId ?? null, []],\r\n    });\r\n  }\r\n\r\n  showForm() {\r\n    this.buildForm();\r\n    this.isVisible = true;\r\n  }\r\n\r\n  create() {\r\n    this.selected = undefined;\r\n    this.showForm();\r\n  }\r\n\r\n  update(record: AssetWithNavigationPropertiesDto) {\r\n    this.selected = record;\r\n    this.showForm();\r\n  }\r\n\r\n  hideForm() {\r\n    this.isVisible = false;\r\n  }\r\n\r\n  submitForm() {\r\n     if (this.form.invalid) return;\r\n\r\n  this.isBusy = true;\r\n\r\n  const request = this.createRequest().pipe(\r\n    finalize(() => (this.isBusy = false)),\r\n    tap(() => this.hideForm())\r\n  );\r\n\r\n  request.subscribe({\r\n    next: () => this.list.get(),\r\n    error: (err) => {\r\n      alert(err.message || 'An unexpected error occurred.');\r\n    }\r\n  });\r\n\r\n  }\r\n\r\n  changeVisible($event: boolean) {\r\n    this.isVisible = $event;\r\n  }\r\n  formatCost() {\r\n    const control = this.form.get('cost');\r\n    let value = control?.value;\r\n    if (value !== null && value !== undefined && value !== '') {\r\n      let strValue = value.toString();\r\n      const decimalPattern = /^\\d{1,5}(\\.\\d{0,2})?$/;\r\n      if (!decimalPattern.test(strValue)) {\r\n        control?.setErrors({ invalidFormat: true });\r\n        return;\r\n      }\r\n      let numValue = Number(value);\r\n      if (!isNaN(numValue)) {\r\n        control?.setValue(numValue.toFixed(2), { emitEvent: false });\r\n      }\r\n    }\r\n  }\r\n  get assignedDate(): Date | null {\r\n  return this.form?.get('assignedDate')?.value ?? null;\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractAssetDetailViewService } from './asset-detail.abstract.service';\r\n\r\n@Injectable()\r\nexport class AssetDetailViewService extends AbstractAssetDetailViewService {}\r\n","import { inject, ChangeDetectorRef } from '@angular/core';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\r\nimport type {\r\n  GetMaintenanceListInput,\r\n  MaintenanceWithNavigationPropertiesDto,\r\n} from '../../../proxy/maintenances/models';\r\nimport { MaintenanceService } from '../../../proxy/maintenances/maintenance.service';\r\n\r\nexport abstract class AbstractMaintenanceViewService {\r\n  protected readonly cdr = inject(ChangeDetectorRef);\r\n  protected readonly proxyService = inject(MaintenanceService);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly list = inject(ListService);\r\n\r\n  data: PagedResultDto<MaintenanceWithNavigationPropertiesDto> = {\r\n    items: [],\r\n    totalCount: 0,\r\n  };\r\n\r\n  delete(record: MaintenanceWithNavigationPropertiesDto) {\r\n    this.confirmationService\r\n      .warn(\r\n        'AssetManagementSystem::DeleteConfirmationMessage',\r\n        'AssetManagementSystem::AreYouSure',\r\n        { messageLocalizationParams: [] },\r\n      )\r\n      .pipe(\r\n        filter(status => status === Confirmation.Status.confirm),\r\n        switchMap(() => this.proxyService.delete(record.maintenance.id)),\r\n      )\r\n      .subscribe(this.list.get);\r\n  }\r\n\r\n  hookToQuery(assetId: string) {\r\n    const getData = (query: ABP.PageQueryParams) =>\r\n      this.proxyService.getListWithNavigationPropertiesByAssetId({\r\n        ...(query as GetMaintenanceListInput),\r\n        assetId,\r\n      });\r\n\r\n    const setData = (list: PagedResultDto<MaintenanceWithNavigationPropertiesDto>) =>\r\n      (this.data = list);\r\n\r\n    this.list.hookToQuery(getData).subscribe(list => {\r\n      setData(list);\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractMaintenanceViewService } from './maintenance-child.abstract.service';\r\n\r\n@Injectable()\r\nexport class MaintenanceViewService extends AbstractMaintenanceViewService {}\r\n","import { inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ListService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\nimport { MaintenanceType, maintenanceTypeOptions } from '../../../proxy/enum/maintenance-type.enum';\r\nimport type { MaintenanceWithNavigationPropertiesDto } from '../../../proxy/maintenances/models';\r\nimport { MaintenanceService } from '../../../proxy/maintenances/maintenance.service';\r\nimport { AssetService } from '@proxy/assets/asset.service';\r\nimport { AssetDto } from '@proxy/assets';\r\n\r\n\r\nexport abstract class AbstractMaintenanceDetailViewService {\r\n  protected readonly fb = inject(FormBuilder);\r\n  protected readonly track = inject(TrackByService);\r\n  protected readonly assetService = inject(AssetService);\r\n  public readonly proxyService = inject(MaintenanceService);\r\n  public readonly list = inject(ListService);\r\n\r\n  public readonly getVendorLookup = this.proxyService.getVendorLookup;\r\n\r\n  public readonly getStatusLookup = this.proxyService.getStatusLookup;\r\n\r\n  maintenanceTypeOptions = maintenanceTypeOptions;\r\n\r\n  assetId: string;\r\n\r\n  isBusy = false;\r\n  isVisible = false;\r\n  selected = {} as any;\r\n  form: FormGroup | undefined;\r\n  asset: AssetDto | null = null;\r\n  loadAsset() {\r\n    if (!this.assetId) return;\r\n\r\n    this.assetService.get(this.assetId).subscribe(asset => {\r\n      this.asset = asset;\r\n\r\n    });\r\n  }\r\n\r\n  protected createRequest() {\r\n    if (this.selected) {\r\n      return this.proxyService.update(this.selected.id, this.form.value);\r\n    }\r\n    return this.proxyService.create(this.form.value);\r\n  }\r\n\r\n  buildForm() {\r\n    const { vendorId, statusId, maintenanceDate, maintenanceType, description, cost, nextDueDate } =\r\n      this.selected || {};\r\n\r\n    this.form = this.fb.group({\r\n      assetId: [this.assetId],\r\n      vendorId: [vendorId ?? null, []],\r\n      statusId: [statusId ?? null, []],\r\n      maintenanceDate: [maintenanceDate ?? null, [Validators.required]],\r\n      maintenanceType: [maintenanceType ?? MaintenanceType.Inspection, [Validators.required]],\r\n      description: [description ?? null, []],\r\n      cost: [cost ?? null, [Validators.required, Validators.pattern(/^\\d{0,5}(\\.\\d{0,2})?$/)]],\r\n      nextDueDate: [nextDueDate ?? null, []],\r\n    });\r\n  }\r\n\r\n  showForm() {\r\n    this.buildForm();\r\n    this.isVisible = true;\r\n  }\r\n\r\n  create() {\r\n    this.selected = undefined;\r\n    this.loadAsset();\r\n    this.showForm();\r\n  }\r\n\r\n  update(record: MaintenanceWithNavigationPropertiesDto) {\r\n    this.selected = record.maintenance;\r\n    this.loadAsset();\r\n    this.showForm();\r\n  }\r\n\r\n  hideForm() {\r\n    this.isVisible = false;\r\n  }\r\n\r\n  submitForm() {\r\n    if (this.form.invalid) return;\r\n\r\n    this.isBusy = true;\r\n\r\n    const request = this.createRequest().pipe(\r\n      finalize(() => (this.isBusy = false)),\r\n      tap(() => this.hideForm()),\r\n    );\r\n\r\n    request.subscribe(this.list.get);\r\n  }\r\n\r\n  changeVisible(isVisible: boolean) {\r\n    this.isVisible = isVisible;\r\n  }\r\n  formatCost() {\r\n    const control = this.form.get('cost');\r\n    let value = control?.value;\r\n    if (value !== null && value !== undefined && value !== '') {\r\n      let strValue = value.toString();\r\n      const decimalPattern = /^\\d{1,5}(\\.\\d{0,2})?$/;\r\n      if (!decimalPattern.test(strValue)) {\r\n        control?.setErrors({ invalidFormat: true });\r\n        return;\r\n      }\r\n      let numValue = Number(value);\r\n      if (!isNaN(numValue)) {\r\n        control?.setValue(numValue.toFixed(2), { emitEvent: false });\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractMaintenanceDetailViewService } from './maintenance-child-detail.abstract.service';\r\n\r\n@Injectable()\r\nexport class MaintenanceDetailViewService extends AbstractMaintenanceDetailViewService {}\r\n","import { Directive, OnInit, inject, Input } from '@angular/core';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { maintenanceTypeOptions } from '../../../proxy/enum/maintenance-type.enum';\r\nimport type { MaintenanceWithNavigationPropertiesDto } from '../../../proxy/maintenances/models';\r\nimport { MaintenanceViewService } from '../services/maintenance-child.service';\r\nimport { MaintenanceDetailViewService } from '../services/maintenance-child-detail.service';\r\n\r\n@Directive()\r\nexport abstract class AbstractMaintenanceComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(MaintenanceViewService);\r\n  public readonly serviceDetail = inject(MaintenanceDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected isActionButtonVisible: boolean | null = null;\r\n\r\n  @Input() title = 'AssetManagementSystem::Maintenances';\r\n  @Input() assetId: string;\r\n\r\n  maintenanceTypeOptions = maintenanceTypeOptions;\r\n\r\n  ngOnInit() {\r\n    this.serviceDetail.assetId = this.assetId;\r\n    this.service.hookToQuery(this.assetId);\r\n    this.checkActionButtonVisibility();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: MaintenanceWithNavigationPropertiesDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: MaintenanceWithNavigationPropertiesDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.Maintenances.Edit',\r\n    );\r\n    const canDelete = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.Maintenances.Delete',\r\n    );\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  NgbDateAdapter,\r\n  NgbCollapseModule,\r\n  NgbDatepickerModule,\r\n  NgbDropdownModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { ListService, CoreModule, UtcToLocalPipe } from '@abp/ng.core';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { MaintenanceViewService } from '../services/maintenance-child.service';\r\nimport { MaintenanceDetailViewService } from '../services/maintenance-child-detail.service';\r\nimport { MaintenanceDetailModalComponent } from './maintenance-child-detail.component';\r\nimport { AbstractMaintenanceComponent } from './maintenance-child.abstract.component';\r\n\r\n@Component({\r\n  selector: 'lib-maintenance',\r\n  imports: [\r\n    NgbCollapseModule,\r\n    NgbDatepickerModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    CoreModule,\r\n    UtcToLocalPipe ,\r\n    PageModule,\r\n    ThemeSharedModule,\r\n    MaintenanceDetailModalComponent,\r\n    CommercialUiModule,\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: NgbDateAdapter, useClass: DateAdapter },\r\n    ListService,\r\n    MaintenanceViewService,\r\n    MaintenanceDetailViewService,\r\n  ],\r\n  templateUrl: './maintenance-child.component.html',\r\n})\r\nexport class MaintenanceComponent extends AbstractMaintenanceComponent {}\r\n","<div class=\"text-lg-end py-1\">\r\n  <!--<suite-custom-code-block-0>-->\r\n  <!--</suite-custom-code-block-0>-->\r\n  <button *abpPermission=\"'AssetManagementSystem.Maintenances.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n          (click)=\"create()\">\r\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n    {{ 'AssetManagementSystem::NewMaintenance' | abpLocalization }}\r\n  </button>\r\n  <!--<suite-custom-code-block-1>-->\r\n  <!--</suite-custom-code-block-1>-->\r\n</div>\r\n<!--<suite-custom-code-block-2>-->\r\n<!--</suite-custom-code-block-2>-->\r\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\r\n  @if (isActionButtonVisible) {\r\n  <ngx-datatable-column [name]=\"'AbpUi::Actions' | abpLocalization\" [maxWidth]=\"150\" [width]=\"150\" [sortable]=\"false\">\r\n    <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n      <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n        <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n                ngbDropdownToggle>\r\n          <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n          {{ 'AbpUi::Actions' | abpLocalization }}\r\n        </button>\r\n\r\n        <div ngbDropdownMenu>\r\n          <button ngbDropdownItem *abpPermission=\"'AssetManagementSystem.Maintenances.Edit'\" (click)=\"update(row)\">\r\n            {{ 'AbpUi::Edit' | abpLocalization }}\r\n          </button>\r\n\r\n          <button ngbDropdownItem *abpPermission=\"'AssetManagementSystem.Maintenances.Delete'\" (click)=\"delete(row)\">\r\n            {{ 'AbpUi::Delete' | abpLocalization }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n\r\n    <!--<suite-custom-code-block-3>-->\r\n    <!--</suite-custom-code-block-3>-->\r\n  </ngx-datatable-column>\r\n  }\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::MaintenanceDate' | abpLocalization }}\"\r\n                        prop=\"maintenance.maintenanceDate\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.maintenance.maintenanceDate | abpUtcToLocal: 'date' }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::MaintenanceType' | abpLocalization }}\"\r\n                        prop=\"maintenance.maintenanceType\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{\r\n      row.maintenance.maintenanceType !== null\r\n      ? ('AssetManagementSystem::Enum:MaintenanceType.' + row.maintenance.maintenanceType\r\n      | abpLocalization)\r\n      : ''\r\n      }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Cost' | abpLocalization }}\" prop=\"maintenance.cost\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.maintenance.cost | currency:'INR':'symbol':'1.2-2' }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::NextDueDate' | abpLocalization }}\"\r\n                        prop=\"maintenance.nextDueDate\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.maintenance.nextDueDate | abpUtcToLocal: 'date' }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Vendor' | abpLocalization }}\" prop=\"vendor.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.vendor?.name }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Status' | abpLocalization }}\" prop=\"status.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.status?.name }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <!--<suite-custom-code-block-4>-->\r\n  <!--</suite-custom-code-block-4>-->\r\n</ngx-datatable>\r\n\r\n<!--<suite-custom-code-block-5>-->\r\n<!--</suite-custom-code-block-5>-->\r\n@defer (when serviceDetail.isVisible) {\r\n@if (serviceDetail.isVisible) {\r\n<lib-maintenance-detail-modal />\r\n}\r\n}\r\n","import { inject, ChangeDetectorRef } from '@angular/core';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\r\nimport type {\r\n  GetLossTheftDamageListInput,\r\n  LossTheftDamageWithNavigationPropertiesDto,\r\n} from '../../../proxy/loss-theft-damages/models';\r\nimport { LossTheftDamageService } from '../../../proxy/loss-theft-damages/loss-theft-damage.service';\r\n\r\nexport abstract class AbstractLossTheftDamageViewService {\r\n  protected readonly cdr = inject(ChangeDetectorRef);\r\n  protected readonly proxyService = inject(LossTheftDamageService);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly list = inject(ListService);\r\n\r\n  data: PagedResultDto<LossTheftDamageWithNavigationPropertiesDto> = {\r\n    items: [],\r\n    totalCount: 0,\r\n  };\r\n\r\n  delete(record: LossTheftDamageWithNavigationPropertiesDto) {\r\n    this.confirmationService\r\n      .warn(\r\n        'AssetManagementSystem::DeleteConfirmationMessage',\r\n        'AssetManagementSystem::AreYouSure',\r\n        { messageLocalizationParams: [] },\r\n      )\r\n      .pipe(\r\n        filter(status => status === Confirmation.Status.confirm),\r\n        switchMap(() => this.proxyService.delete(record.lossTheftDamage.id)),\r\n      )\r\n      .subscribe(this.list.get);\r\n  }\r\n\r\n  hookToQuery(assetId: string) {\r\n    const getData = (query: ABP.PageQueryParams) =>\r\n      this.proxyService.getListWithNavigationPropertiesByAssetId({\r\n        ...(query as GetLossTheftDamageListInput),\r\n        assetId,\r\n      });\r\n\r\n    const setData = (list: PagedResultDto<LossTheftDamageWithNavigationPropertiesDto>) =>\r\n      (this.data = list);\r\n\r\n    this.list.hookToQuery(getData).subscribe(list => {\r\n      setData(list);\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractLossTheftDamageViewService } from './loss-theft-damage-child.abstract.service';\r\n\r\n@Injectable()\r\nexport class LossTheftDamageViewService extends AbstractLossTheftDamageViewService {}\r\n","import { inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ListService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\nimport { IncidentType, incidentTypeOptions } from '../../../proxy/enum/incident-type.enum';\r\nimport type { LossTheftDamageWithNavigationPropertiesDto } from '../../../proxy/loss-theft-damages/models';\r\nimport { LossTheftDamageService } from '../../../proxy/loss-theft-damages/loss-theft-damage.service';\r\n\r\nexport abstract class AbstractLossTheftDamageDetailViewService {\r\n  protected readonly fb = inject(FormBuilder);\r\n  protected readonly track = inject(TrackByService);\r\n\r\n  public readonly proxyService = inject(LossTheftDamageService);\r\n  public readonly list = inject(ListService);\r\n\r\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\r\n\r\n  public readonly getStatusLookup = this.proxyService.getStatusLookup;\r\n\r\n  incidentTypeOptions = incidentTypeOptions;\r\n\r\n  assetId: string;\r\n\r\n  isBusy = false;\r\n  isVisible = false;\r\n  selected = {} as any;\r\n  form: FormGroup | undefined;\r\n\r\n  protected createRequest() {\r\n    if (this.selected) {\r\n      return this.proxyService.update(this.selected.id, this.form.value);\r\n    }\r\n    return this.proxyService.create(this.form.value);\r\n  }\r\n\r\n  buildForm() {\r\n    const { reportedByUserId, statusId, reportedDate, incidentType, description, resolution } =\r\n      this.selected || {};\r\n\r\n    this.form = this.fb.group({\r\n      assetId: [this.assetId],\r\n      reportedByUserId: [reportedByUserId ?? null, []],\r\n      statusId: [statusId ?? null, []],\r\n      reportedDate: [reportedDate ?? null, [Validators.required]],\r\n      incidentType: [incidentType ?? IncidentType.Loss, [Validators.required]],\r\n      description: [description ?? null, []],\r\n      resolution: [\r\n        resolution ?? null,\r\n        [Validators.required, Validators.minLength(2), Validators.maxLength(64)],\r\n      ],\r\n    });\r\n  }\r\n\r\n  showForm() {\r\n    this.buildForm();\r\n    this.isVisible = true;\r\n  }\r\n\r\n  create() {\r\n    this.selected = undefined;\r\n    this.showForm();\r\n  }\r\n\r\n  update(record: LossTheftDamageWithNavigationPropertiesDto) {\r\n    this.selected = record.lossTheftDamage;\r\n    this.showForm();\r\n  }\r\n\r\n  hideForm() {\r\n    this.isVisible = false;\r\n  }\r\n\r\n  submitForm() {\r\n    if (this.form.invalid) return;\r\n\r\n    this.isBusy = true;\r\n\r\n    const request = this.createRequest().pipe(\r\n      finalize(() => (this.isBusy = false)),\r\n      tap(() => this.hideForm()),\r\n    );\r\n\r\n    request.subscribe(this.list.get);\r\n  }\r\n\r\n  changeVisible(isVisible: boolean) {\r\n    this.isVisible = isVisible;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractLossTheftDamageDetailViewService } from './loss-theft-damage-child-detail.abstract.service';\r\n\r\n@Injectable()\r\nexport class LossTheftDamageDetailViewService extends AbstractLossTheftDamageDetailViewService {}\r\n","import { Directive, OnInit, inject, Input } from '@angular/core';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { incidentTypeOptions } from '../../../proxy/enum/incident-type.enum';\r\nimport type { LossTheftDamageWithNavigationPropertiesDto } from '../../../proxy/loss-theft-damages/models';\r\nimport { LossTheftDamageViewService } from '../services/loss-theft-damage-child.service';\r\nimport { LossTheftDamageDetailViewService } from '../services/loss-theft-damage-child-detail.service';\r\n\r\n@Directive()\r\nexport abstract class AbstractLossTheftDamageComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(LossTheftDamageViewService);\r\n  public readonly serviceDetail = inject(LossTheftDamageDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected isActionButtonVisible: boolean | null = null;\r\n\r\n  @Input() title = 'AssetManagementSystem::LossTheftDamages';\r\n  @Input() assetId: string;\r\n\r\n  incidentTypeOptions = incidentTypeOptions;\r\n\r\n  ngOnInit() {\r\n    this.serviceDetail.assetId = this.assetId;\r\n    this.service.hookToQuery(this.assetId);\r\n    this.checkActionButtonVisibility();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: LossTheftDamageWithNavigationPropertiesDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: LossTheftDamageWithNavigationPropertiesDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.LossTheftDamages.Edit',\r\n    );\r\n    const canDelete = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.LossTheftDamages.Delete',\r\n    );\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  NgbDateAdapter,\r\n  NgbCollapseModule,\r\n  NgbDatepickerModule,\r\n  NgbDropdownModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { ListService, CoreModule, UtcToLocalPipe } from '@abp/ng.core';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { LossTheftDamageViewService } from '../services/loss-theft-damage-child.service';\r\nimport { LossTheftDamageDetailViewService } from '../services/loss-theft-damage-child-detail.service';\r\nimport { LossTheftDamageDetailModalComponent } from './loss-theft-damage-child-detail.component';\r\nimport { AbstractLossTheftDamageComponent } from './loss-theft-damage-child.abstract.component';\r\n\r\n@Component({\r\n  selector: 'lib-loss-theft-damage',\r\n  imports: [\r\n    NgbCollapseModule,\r\n    NgbDatepickerModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    CoreModule,\r\n    UtcToLocalPipe ,\r\n    PageModule,\r\n    ThemeSharedModule,\r\n    LossTheftDamageDetailModalComponent,\r\n    CommercialUiModule,\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: NgbDateAdapter, useClass: DateAdapter },\r\n    ListService,\r\n    LossTheftDamageViewService,\r\n    LossTheftDamageDetailViewService,\r\n  ],\r\n  templateUrl: './loss-theft-damage-child.component.html',\r\n})\r\nexport class LossTheftDamageComponent extends AbstractLossTheftDamageComponent {}\r\n","<div class=\"text-lg-end py-1\">\r\n  <!--<suite-custom-code-block-0>-->\r\n  <!--</suite-custom-code-block-0>-->\r\n  <button *abpPermission=\"'AssetManagementSystem.LossTheftDamages.Create'\"\r\n          class=\"btn btn-primary btn-sm\"\r\n          type=\"button\"\r\n          (click)=\"create()\">\r\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n    {{ 'AssetManagementSystem::NewLossTheftDamage' | abpLocalization }}\r\n  </button>\r\n  <!--<suite-custom-code-block-1>-->\r\n  <!--</suite-custom-code-block-1>-->\r\n</div>\r\n<!--<suite-custom-code-block-2>-->\r\n<!--</suite-custom-code-block-2>-->\r\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\r\n  @if (isActionButtonVisible) {\r\n  <ngx-datatable-column [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n                        [maxWidth]=\"150\"\r\n                        [width]=\"150\"\r\n                        [sortable]=\"false\">\r\n    <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n      <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n        <button class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n                data-toggle=\"dropdown\"\r\n                aria-haspopup=\"true\"\r\n                ngbDropdownToggle>\r\n          <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n          {{ 'AbpUi::Actions' | abpLocalization }}\r\n        </button>\r\n\r\n        <div ngbDropdownMenu>\r\n          <button ngbDropdownItem\r\n                  *abpPermission=\"'AssetManagementSystem.LossTheftDamages.Edit'\"\r\n                  (click)=\"update(row)\">\r\n            {{ 'AbpUi::Edit' | abpLocalization }}\r\n          </button>\r\n\r\n          <button ngbDropdownItem\r\n                  *abpPermission=\"'AssetManagementSystem.LossTheftDamages.Delete'\"\r\n                  (click)=\"delete(row)\">\r\n            {{ 'AbpUi::Delete' | abpLocalization }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n\r\n    <!--<suite-custom-code-block-3>-->\r\n    <!--</suite-custom-code-block-3>-->\r\n  </ngx-datatable-column>\r\n  }\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::ReportedDate' | abpLocalization }}\"\r\n                        prop=\"lossTheftDamage.reportedDate\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.lossTheftDamage.reportedDate | abpUtcToLocal: 'date' }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::IncidentType' | abpLocalization }}\"\r\n                        prop=\"lossTheftDamage.incidentType\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{\r\n        row.lossTheftDamage.incidentType !== null\r\n          ? ('AssetManagementSystem::Enum:IncidentType.' + row.lossTheftDamage.incidentType\r\n            | abpLocalization)\r\n          : ''\r\n      }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::LossTheftIdentityUser' | abpLocalization }}\"\r\n                        prop=\"reportedByUser.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      <span *ngIf=\"row.reportedByUser?.name && row.reportedByUser?.surname; else fallback\">\r\n        {{ (row.reportedByUser.name + ' ' + row.reportedByUser.surname) | titlecase }}\r\n      </span>\r\n      <ng-template #fallback>\r\n        {{ row.reportedByUser?.name| titlecase }}\r\n      </ng-template>\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Status' | abpLocalization }}\"\r\n                        prop=\"status.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.status?.name }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <!--<suite-custom-code-block-4>-->\r\n  <!--</suite-custom-code-block-4>-->\r\n</ngx-datatable>\r\n\r\n<!--<suite-custom-code-block-5>-->\r\n<!--</suite-custom-code-block-5>-->\r\n@defer (when serviceDetail.isVisible) {\r\n  @if (serviceDetail.isVisible) {\r\n<lib-loss-theft-damage-detail-modal />\r\n  }\r\n}\r\n","import { inject, ChangeDetectorRef } from '@angular/core';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\r\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\r\nimport type {\r\n  GetAssetHistoryListInput,\r\n  AssetHistoryWithNavigationPropertiesDto,\r\n} from '../../../proxy/asset-histories/models';\r\nimport { AssetHistoryService } from '../../../proxy/asset-histories/asset-history.service';\r\n\r\nexport abstract class AbstractAssetHistoryViewService {\r\n  protected readonly cdr = inject(ChangeDetectorRef);\r\n  protected readonly proxyService = inject(AssetHistoryService);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly list = inject(ListService);\r\n\r\n  data: PagedResultDto<AssetHistoryWithNavigationPropertiesDto> = {\r\n    items: [],\r\n    totalCount: 0,\r\n  };\r\n\r\n  delete(record: AssetHistoryWithNavigationPropertiesDto) {\r\n    this.confirmationService\r\n      .warn(\r\n        'AssetManagementSystem::DeleteConfirmationMessage',\r\n        'AssetManagementSystem::AreYouSure',\r\n        { messageLocalizationParams: [] },\r\n      )\r\n      .pipe(\r\n        filter(status => status === Confirmation.Status.confirm),\r\n        switchMap(() => this.proxyService.delete(record.assetHistory.id)),\r\n      )\r\n      .subscribe(this.list.get);\r\n  }\r\n\r\n  hookToQuery(assetId: string) {\r\n    const getData = (query: ABP.PageQueryParams) =>\r\n      this.proxyService.getListWithNavigationPropertiesByAssetId({\r\n        ...(query as GetAssetHistoryListInput),\r\n        assetId,\r\n      });\r\n\r\n    const setData = (list: PagedResultDto<AssetHistoryWithNavigationPropertiesDto>) =>\r\n      (this.data = list);\r\n\r\n    this.list.hookToQuery(getData).subscribe(list => {\r\n      setData(list);\r\n      this.cdr.markForCheck();\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractAssetHistoryViewService } from './asset-history-child.abstract.service';\r\n\r\n@Injectable()\r\nexport class AssetHistoryViewService extends AbstractAssetHistoryViewService {}\r\n","import { inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ListService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\nimport { AssetEventType, assetEventTypeOptions } from '../../../proxy/enum/asset-event-type.enum';\r\nimport type { AssetHistoryWithNavigationPropertiesDto } from '../../../proxy/asset-histories/models';\r\nimport { AssetHistoryService } from '../../../proxy/asset-histories/asset-history.service';\r\n\r\nexport abstract class AbstractAssetHistoryDetailViewService {\r\n  protected readonly fb = inject(FormBuilder);\r\n  protected readonly track = inject(TrackByService);\r\n\r\n  public readonly proxyService = inject(AssetHistoryService);\r\n  public readonly list = inject(ListService);\r\n\r\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\r\n\r\n  public readonly getOfficeLookup = this.proxyService.getOfficeLookup;\r\n\r\n  assetEventTypeOptions = assetEventTypeOptions;\r\n\r\n  assetId: string;\r\n\r\n  isBusy = false;\r\n  isVisible = false;\r\n  selected = {} as any;\r\n  form: FormGroup | undefined;\r\n\r\n  protected createRequest() {\r\n    if (this.selected) {\r\n      return this.proxyService.update(this.selected.id, this.form.value);\r\n    }\r\n    return this.proxyService.create(this.form.value);\r\n  }\r\n\r\n  buildForm() {\r\n    const { fromUserId, toUserId, fromOfficeId, toOfficeId, eventDate, assetEventType, details } =\r\n      this.selected || {};\r\n\r\n    this.form = this.fb.group({\r\n      assetId: [this.assetId],\r\n      fromUserId: [fromUserId ?? null, [Validators.required]],\r\n      toUserId: [toUserId ?? null, []],\r\n      fromOfficeId: [fromOfficeId ?? null, []],\r\n      toOfficeId: [toOfficeId ?? null, []],\r\n      eventDate: [eventDate ?? null, [Validators.required]],\r\n      assetEventType: [assetEventType ?? AssetEventType.Assigned, [Validators.required]],\r\n      details: [details ?? null, []],\r\n    });\r\n  }\r\n\r\n  showForm() {\r\n    this.buildForm();\r\n    this.isVisible = true;\r\n  }\r\n\r\n  create() {\r\n    this.selected = undefined;\r\n    this.showForm();\r\n  }\r\n\r\n  update(record: AssetHistoryWithNavigationPropertiesDto) {\r\n    this.selected = record.assetHistory;\r\n    this.showForm();\r\n  }\r\n\r\n  hideForm() {\r\n    this.isVisible = false;\r\n  }\r\n\r\n  submitForm() {\r\n    if (this.form.invalid) return;\r\n\r\n    this.isBusy = true;\r\n\r\n    const request = this.createRequest().pipe(\r\n      finalize(() => (this.isBusy = false)),\r\n      tap(() => this.hideForm()),\r\n    );\r\n\r\n    request.subscribe(this.list.get);\r\n  }\r\n\r\n  changeVisible(isVisible: boolean) {\r\n    this.isVisible = isVisible;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractAssetHistoryDetailViewService } from './asset-history-child-detail.abstract.service';\r\n\r\n@Injectable()\r\nexport class AssetHistoryDetailViewService extends AbstractAssetHistoryDetailViewService {}\r\n","import { Directive, OnInit, inject, Input } from '@angular/core';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport { assetEventTypeOptions } from '../../../proxy/enum/asset-event-type.enum';\r\nimport type { AssetHistoryWithNavigationPropertiesDto } from '../../../proxy/asset-histories/models';\r\nimport { AssetHistoryViewService } from '../services/asset-history-child.service';\r\nimport { AssetHistoryDetailViewService } from '../services/asset-history-child-detail.service';\r\n\r\n@Directive()\r\nexport abstract class AbstractAssetHistoryComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(AssetHistoryViewService);\r\n  public readonly serviceDetail = inject(AssetHistoryDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected isActionButtonVisible: boolean | null = null;\r\n\r\n  @Input() title = 'AssetManagementSystem::AssetHistories';\r\n  @Input() assetId: string;\r\n\r\n  assetEventTypeOptions = assetEventTypeOptions;\r\n\r\n  ngOnInit() {\r\n    this.serviceDetail.assetId = this.assetId;\r\n    this.service.hookToQuery(this.assetId);\r\n    this.checkActionButtonVisibility();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: AssetHistoryWithNavigationPropertiesDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: AssetHistoryWithNavigationPropertiesDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.AssetHistories.Edit',\r\n    );\r\n    const canDelete = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.AssetHistories.Delete',\r\n    );\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  NgbDateAdapter,\r\n  NgbCollapseModule,\r\n  NgbDatepickerModule,\r\n  NgbDropdownModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { ListService, CoreModule, UtcToLocalPipe } from '@abp/ng.core';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { AssetHistoryViewService } from '../services/asset-history-child.service';\r\nimport { AssetHistoryDetailViewService } from '../services/asset-history-child-detail.service';\r\nimport { AssetHistoryDetailModalComponent } from './asset-history-child-detail.component';\r\nimport { AbstractAssetHistoryComponent } from './asset-history-child.abstract.component';\r\n\r\n@Component({\r\n  selector: 'lib-asset-history',\r\n  imports: [\r\n    NgbCollapseModule,\r\n    NgbDatepickerModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    CoreModule,\r\n    PageModule,\r\n     UtcToLocalPipe ,\r\n    ThemeSharedModule,\r\n    AssetHistoryDetailModalComponent,\r\n    CommercialUiModule,\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    { provide: NgbDateAdapter, useClass: DateAdapter },\r\n    ListService,\r\n    AssetHistoryViewService,\r\n    AssetHistoryDetailViewService,\r\n  ],\r\n  templateUrl: './asset-history-child.component.html',\r\n})\r\nexport class AssetHistoryComponent extends AbstractAssetHistoryComponent {}\r\n","<div class=\"text-lg-end py-1\">\r\n  <button *abpPermission=\"'AssetManagementSystem.AssetHistories.Create'\"\r\n          class=\"btn btn-primary btn-sm\"\r\n          type=\"button\"\r\n          (click)=\"create()\">\r\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n    {{ 'AssetManagementSystem::NewAssetHistory' | abpLocalization }}\r\n  </button>\r\n</div>\r\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\r\n  @if (isActionButtonVisible) {\r\n  <ngx-datatable-column [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n                        [maxWidth]=\"150\"\r\n                        [width]=\"150\"\r\n                        [sortable]=\"false\">\r\n    <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n      <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n        <button class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n                data-toggle=\"dropdown\"\r\n                aria-haspopup=\"true\"\r\n                ngbDropdownToggle>\r\n          <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n          {{ 'AbpUi::Actions' | abpLocalization }}\r\n        </button>\r\n\r\n        <div ngbDropdownMenu>\r\n          <button ngbDropdownItem\r\n                  *abpPermission=\"'AssetManagementSystem.AssetHistories.Edit'\"\r\n                  (click)=\"update(row)\">\r\n            {{ 'AbpUi::Edit' | abpLocalization }}\r\n          </button>\r\n\r\n          <button ngbDropdownItem\r\n                  *abpPermission=\"'AssetManagementSystem.AssetHistories.Delete'\"\r\n                  (click)=\"delete(row)\">\r\n            {{ 'AbpUi::Delete' | abpLocalization }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  }\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::EventDate' | abpLocalization }}\"\r\n                        prop=\"assetHistory.eventDate\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.assetHistory.eventDate | abpUtcToLocal: 'date' }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssetEventType' | abpLocalization }}\"\r\n                        prop=\"assetHistory.assetEventType\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{\r\n        row.assetHistory.assetEventType !== null\r\n          ? ('AssetManagementSystem::Enum:AssetEventType.' + row.assetHistory.assetEventType\r\n            | abpLocalization)\r\n          : ''\r\n      }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssetHistoryFromIdentityUser' | abpLocalization }}\" prop=\"fromUser.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      <span *ngIf=\"row.fromUser?.name && row.fromUser?.surname; else fallback\">\r\n        {{ (row.fromUser.name + ' ' + row.fromUser.surname) | titlecase }}\r\n      </span>\r\n      <ng-template #fallback>\r\n        {{ row.fromUser?.name| titlecase }}\r\n      </ng-template>\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssetHistoryToIdentityUser' | abpLocalization }}\" prop=\"toUser.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      <span *ngIf=\"row.toUser?.name && row.toUser?.surname; else fallback\">\r\n        {{ (row.toUser.name + ' ' + row.toUser.surname) | titlecase }}\r\n      </span>\r\n      <ng-template #fallback>\r\n        {{ row.toUser?.name| titlecase }}\r\n      </ng-template>\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::FromOffice' | abpLocalization }}\"\r\n                        prop=\"office.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.fromOffice?.name }}\r\n    </ng-template>\r\n  </ngx-datatable-column>\r\n  <ngx-datatable-column name=\"{{ 'AssetManagementSystem::ToOffice' | abpLocalization }}\"\r\n                        prop=\"office.id\">\r\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n      {{ row.toOffice?.name }}\r\n    </ng-template>\r\n  </ngx-datatable-column> \r\n</ngx-datatable>\r\n@defer (when serviceDetail.isVisible) {\r\n  @if (serviceDetail.isVisible) {\r\n<lib-asset-history-detail-modal />\r\n  }\r\n}\r\n","import { Directive, OnInit, inject, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n  NgbNav,\r\n  NgbNavItem,\r\n  NgbNavLink,\r\n  NgbNavContent,\r\n  NgbNavOutlet,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport type { AssetWithNavigationPropertiesDto } from '../../../proxy/assets/models';\r\nimport { AssetViewService } from '../services/asset.service';\r\nimport { AssetDetailViewService } from '../services/asset-detail.service';\r\nimport { MaintenanceComponent } from '../../maintenance/components/maintenance-child.component';\r\n\r\nimport { LossTheftDamageComponent } from '../../loss-theft-damage/components/loss-theft-damage-child.component';\r\n\r\nimport { AssetHistoryComponent } from '../../asset-history/components/asset-history-child.component';\r\n\r\nexport const ChildTabDependencies = [NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, NgbNavOutlet];\r\n\r\nexport const ChildComponentDependencies = [\r\n  MaintenanceComponent,\r\n\r\n  LossTheftDamageComponent,\r\n\r\n  AssetHistoryComponent,\r\n];\r\n\r\n@Directive()\r\nexport abstract class AbstractAssetComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(AssetViewService);\r\n  public readonly serviceDetail = inject(AssetDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected title = 'AssetManagementSystem::Assets';\r\n  protected isActionButtonVisible: boolean | null = null;\r\n  protected isChildEntitiesPermitted: boolean | null = null;\r\n\r\n  @ViewChild('assetTable') table: any;\r\n\r\n  ngOnInit() {\r\n    this.service.hookToQuery();\r\n    this.checkActionButtonVisibility();\r\n    this.checkChildEntityPermissions();\r\n  }\r\n\r\n  clearFilters() {\r\n    this.service.clearFilters();\r\n  }\r\n\r\n  showForm() {\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: AssetWithNavigationPropertiesDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: AssetWithNavigationPropertiesDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  exportToExcel() {\r\n    this.service.exportToExcel();\r\n  }\r\n\r\n  toggleExpandRow(row) {\r\n    this.table.rowDetail.toggleExpandRow(row);\r\n  }\r\n\r\n  checkChildEntityPermissions() {\r\n    if (this.isChildEntitiesPermitted !== null) {\r\n      return;\r\n    }\r\n\r\n    const childPermissions = [\r\n      'AssetManagementSystem.Maintenances',\r\n\r\n      'AssetManagementSystem.LossTheftDamages',\r\n\r\n      'AssetManagementSystem.AssetHistories',\r\n    ];\r\n    this.isChildEntitiesPermitted = childPermissions.some(permission =>\r\n      this.permissionService.getGrantedPolicy(permission),\r\n    );\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy('AssetManagementSystem.Assets.Edit');\r\n    const canDelete = this.permissionService.getGrantedPolicy(\r\n      'AssetManagementSystem.Assets.Delete',\r\n    );\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }isOverdue(dueDate: string | Date | null | undefined): boolean {\r\n  if (!dueDate) return false;\r\n\r\n  const due = new Date(dueDate);\r\n  const now = new Date();\r\n\r\n  // Optional: Strip time for strict date-only comparison\r\n  due.setHours(0, 0, 0, 0);\r\n  now.setHours(0, 0, 0, 0);\r\n\r\n  return due < now;\r\n}\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport {\r\n  NgbDateAdapter,\r\n  NgbTimeAdapter,\r\n  NgbCollapseModule,\r\n  NgbDatepickerModule,\r\n  NgbTimepickerModule,\r\n  NgbDropdownModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { ListService, CoreModule, UtcToLocalPipe } from '@abp/ng.core';\r\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { AssetViewService } from '../services/asset.service';\r\nimport { AssetDetailViewService } from '../services/asset-detail.service';\r\nimport { AssetDetailModalComponent } from './asset-detail.component';\r\nimport {\r\n  AbstractAssetComponent,\r\n  ChildTabDependencies,\r\n  ChildComponentDependencies,\r\n} from './asset.abstract.component';\r\n\r\n@Component({\r\n  selector: 'lib-asset',\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  imports: [\r\n    ...ChildTabDependencies,\r\n    NgbCollapseModule,\r\n    NgbDatepickerModule,\r\n    NgbTimepickerModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    UtcToLocalPipe ,\r\n    PageModule,\r\n    CoreModule,\r\n    ThemeSharedModule,\r\n    CommercialUiModule,\r\n    AssetDetailModalComponent,\r\n    ...ChildComponentDependencies,\r\n  ],\r\n  providers: [\r\n    ListService,\r\n    AssetViewService,\r\n    AssetDetailViewService,\r\n    { provide: NgbDateAdapter, useClass: DateAdapter },\r\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\r\n  ],\r\n  templateUrl: './asset.component.html',\r\n  styles: `\r\n    ::ng-deep.datatable-row-detail {\r\n      background: transparent !important;\r\n    }\r\n  `,\r\n})\r\nexport class AssetComponent extends AbstractAssetComponent {}\r\n","<abp-page [title]=\"title | abpLocalization\">\r\n  <abp-page-toolbar-container class=\"col\">\r\n    <!--<suite-custom-code-block-0>-->\r\n    <!--</suite-custom-code-block-0>-->\r\n    <div class=\"text-lg-end pt-2\">\r\n      <!--<suite-custom-code-block-1>-->\r\n      <!--</suite-custom-code-block-1>-->\r\n\r\n      <button\r\n        class=\"btn btn-primary btn-sm mx-2\"\r\n        type=\"button\"\r\n        [disabled]=\"service.isExportToExcelBusy\"\r\n        (click)=\"exportToExcel()\"\r\n      >\r\n        {{ 'AssetManagementSystem::ExportToExcel' | abpLocalization }}\r\n      </button>\r\n\r\n      <button\r\n        *abpPermission=\"'AssetManagementSystem.Assets.Create'\"\r\n        class=\"btn btn-primary btn-sm\"\r\n        type=\"button\"\r\n        (click)=\"create()\"\r\n      >\r\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n        {{ 'AssetManagementSystem::NewAsset' | abpLocalization }}\r\n      </button>\r\n      <!--<suite-custom-code-block-2>-->\r\n      <!--</suite-custom-code-block-2>-->\r\n    </div>\r\n  </abp-page-toolbar-container>\r\n\r\n  <abp-advanced-entity-filters localizationSourceName=\"AssetManagementSystem\" [list]=\"list\">\r\n    @if (service.filters; as filters) {\r\n      <abp-advanced-entity-filters-form>\r\n        <form #filterForm (keyup.enter)=\"list.get()\">\r\n          <!--<suite-custom-code-block-3>-->\r\n          <!--</suite-custom-code-block-3>-->\r\n          <div class=\"row\">\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"nameFilter\">\r\n                  {{ 'AssetManagementSystem::Name' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"nameFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.name\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"serialNumberFilter\">\r\n                  {{ 'AssetManagementSystem::SerialNumber' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"serialNumberFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.serialNumber\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"minPurchaseDate\">\r\n                  {{ 'AssetManagementSystem::MinPurchaseDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"minPurchaseDate\"\r\n                    class=\"form-control\"\r\n                    #minPurchaseDateInput\r\n                    #minPurchaseDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"minPurchaseDate\"\r\n                    ngbDatepicker\r\n                    container=\"body\"\r\n                    readonly\r\n                    (click)=\"minPurchaseDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"minPurchaseDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.purchaseDateMin\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (minPurchaseDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          minPurchaseDateDatepicker.writeValue(null);\r\n                          minPurchaseDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"maxPurchaseDate\">\r\n                  {{ 'AssetManagementSystem::MaxPurchaseDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"maxPurchaseDate\"\r\n                    class=\"form-control\"\r\n                    #maxPurchaseDateInput\r\n                    #maxPurchaseDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"maxPurchaseDate\"\r\n                    ngbDatepicker\r\n                    readonly\r\n                    (click)=\"maxPurchaseDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"maxPurchaseDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.purchaseDateMax\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (maxPurchaseDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          maxPurchaseDateDatepicker.writeValue(null);\r\n                          maxPurchaseDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"minWarrantyUntil\">\r\n                  {{ 'AssetManagementSystem::MinWarrantyUntil' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"minWarrantyUntil\"\r\n                    class=\"form-control\"\r\n                    #minWarrantyUntilInput\r\n                    #minWarrantyUntilDatepicker=\"ngbDatepicker\"\r\n                    name=\"minWarrantyUntil\"\r\n                    ngbDatepicker\r\n                    container=\"body\"\r\n                    readonly\r\n                    (click)=\"minWarrantyUntilDatepicker.toggle()\"\r\n                    (keyup.space)=\"minWarrantyUntilDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.warrantyUntilMin\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (minWarrantyUntilInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          minWarrantyUntilDatepicker.writeValue(null);\r\n                          minWarrantyUntilDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"maxWarrantyUntil\">\r\n                  {{ 'AssetManagementSystem::MaxWarrantyUntil' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"maxWarrantyUntil\"\r\n                    class=\"form-control\"\r\n                    #maxWarrantyUntilInput\r\n                    #maxWarrantyUntilDatepicker=\"ngbDatepicker\"\r\n                    name=\"maxWarrantyUntil\"\r\n                    ngbDatepicker\r\n                    readonly\r\n                    (click)=\"maxWarrantyUntilDatepicker.toggle()\"\r\n                    (keyup.space)=\"maxWarrantyUntilDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.warrantyUntilMax\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (maxWarrantyUntilInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          maxWarrantyUntilDatepicker.writeValue(null);\r\n                          maxWarrantyUntilDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"minCost\">\r\n                  {{ 'AssetManagementSystem::MinCost' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"minCost\"\r\n                  type=\"number\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.costMin\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"maxCost\">\r\n                  {{ 'AssetManagementSystem::MaxCost' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"maxCost\"\r\n                  type=\"number\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.costMax\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"minAssignedDate\">\r\n                  {{ 'AssetManagementSystem::MinAssignedDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"minAssignedDate\"\r\n                    class=\"form-control\"\r\n                    #minAssignedDateInput\r\n                    #minAssignedDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"minAssignedDate\"\r\n                    ngbDatepicker\r\n                    container=\"body\"\r\n                    readonly\r\n                    (click)=\"minAssignedDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"minAssignedDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.assignedDateMin\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (minAssignedDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          minAssignedDateDatepicker.writeValue(null);\r\n                          minAssignedDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"maxAssignedDate\">\r\n                  {{ 'AssetManagementSystem::MaxAssignedDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"maxAssignedDate\"\r\n                    class=\"form-control\"\r\n                    #maxAssignedDateInput\r\n                    #maxAssignedDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"maxAssignedDate\"\r\n                    ngbDatepicker\r\n                    readonly\r\n                    (click)=\"maxAssignedDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"maxAssignedDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.assignedDateMax\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (maxAssignedDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          maxAssignedDateDatepicker.writeValue(null);\r\n                          maxAssignedDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"minReturnDate\">\r\n                  {{ 'AssetManagementSystem::MinReturnDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"minReturnDate\"\r\n                    class=\"form-control\"\r\n                    #minReturnDateInput\r\n                    #minReturnDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"minReturnDate\"\r\n                    ngbDatepicker\r\n                    container=\"body\"\r\n                    readonly\r\n                    (click)=\"minReturnDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"minReturnDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.returnDateMin\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (minReturnDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          minReturnDateDatepicker.writeValue(null);\r\n                          minReturnDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"maxReturnDate\">\r\n                  {{ 'AssetManagementSystem::MaxReturnDate' | abpLocalization }}\r\n                </label>\r\n\r\n                <div class=\"input-group\" validationTarget>\r\n                  <input\r\n                    id=\"maxReturnDate\"\r\n                    class=\"form-control\"\r\n                    #maxReturnDateInput\r\n                    #maxReturnDateDatepicker=\"ngbDatepicker\"\r\n                    name=\"maxReturnDate\"\r\n                    ngbDatepicker\r\n                    readonly\r\n                    (click)=\"maxReturnDateDatepicker.toggle()\"\r\n                    (keyup.space)=\"maxReturnDateDatepicker.toggle()\"\r\n                    [(ngModel)]=\"filters.returnDateMax\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  />\r\n                  @if (maxReturnDateInput.value) {\r\n                    <div class=\"input-group-append\">\r\n                      <button\r\n                        class=\"btn btn-link px-2\"\r\n                        type=\"button\"\r\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n                        (click)=\"\r\n                          maxReturnDateDatepicker.writeValue(null);\r\n                          maxReturnDateDatepicker.manualDateChange(null, true)\r\n                        \"\r\n                      >\r\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                      </button>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"conditionOnReturnFilter\">\r\n                  {{ 'AssetManagementSystem::ConditionOnReturn' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"conditionOnReturnFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.conditionOnReturn\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"assetTypeIdFilter\">\r\n                  {{ 'AssetManagementSystem::AssetType' | abpLocalization }}\r\n                </label>\r\n                <abp-lookup-select\r\n                  cid=\"assetTypeIdFilter\"\r\n                  [getFn]=\"serviceDetail.getAssetTypeLookup\"\r\n                  [(ngModel)]=\"filters.assetTypeId\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                ></abp-lookup-select>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"statusIdFilter\">\r\n                  {{ 'AssetManagementSystem::Status' | abpLocalization }}\r\n                </label>\r\n                <abp-lookup-select\r\n                  cid=\"statusIdFilter\"\r\n                  [getFn]=\"serviceDetail.getStatusLookup\"\r\n                  [(ngModel)]=\"filters.statusId\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                ></abp-lookup-select>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"vendorIdFilter\">\r\n                  {{ 'AssetManagementSystem::Vendor' | abpLocalization }}\r\n                </label>\r\n                <abp-lookup-select\r\n                  cid=\"vendorIdFilter\"\r\n                  [getFn]=\"serviceDetail.getVendorLookup\"\r\n                  [(ngModel)]=\"filters.vendorId\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                ></abp-lookup-select>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"userIdFilter\">\r\n                  {{ 'AssetManagementSystem::AssetIdentityUser' | abpLocalization }}\r\n                </label>\r\n                <abp-lookup-select\r\n                  cid=\"userIdFilter\"\r\n                  [getFn]=\"serviceDetail.getIdentityUserLookup\"\r\n                  [(ngModel)]=\"filters.userId\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                ></abp-lookup-select>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n              <div class=\"row\">\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>         \r\n        </form>\r\n      </abp-advanced-entity-filters-form>\r\n    }\r\n  </abp-advanced-entity-filters>  \r\n  <div class=\"card\">\r\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n      @if (service.selectedCount() > 0) {\r\n        <h4 class=\"card-title\">\r\n          {{\r\n            'AssetManagementSystem::AllItemsAreSelected'\r\n              | abpLocalization\r\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\r\n          }}\r\n        </h4>\r\n\r\n        <div>\r\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\r\n            @if (service.allSelected()) {\r\n              {{ 'AssetManagementSystem::ClearSelection' | abpLocalization }}\r\n            } @else {\r\n              {{\r\n                'AssetManagementSystem::SelectAllItems' | abpLocalization: service.data.totalCount\r\n              }}\r\n            }\r\n          </button>\r\n\r\n          <button\r\n            *abpPermission=\"'AssetManagementSystem.Assets.Delete'\"\r\n            class=\"btn btn-danger btn-sm mx-1\"\r\n            (click)=\"service.bulkDelete()\"\r\n          >\r\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\r\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\r\n          </button>\r\n        </div>\r\n      }\r\n    </div>  \r\n    <div class=\"card-body\">      \r\n      <ngx-datatable #assetTable\r\n                     default\r\n                     [rows]=\"service.data.items\"\r\n                     [count]=\"service.data.totalCount\"\r\n                     [list]=\"list\"\r\n                     [selected]=\"service.selected()\"\r\n                     [selectionType]=\"service.selectionType.checkbox\"\r\n                     (select)=\"service.onSelect($event)\">      \r\n\r\n        <ngx-datatable-column [width]=\"40\"\r\n                              [sortable]=\"false\"\r\n                              [canAutoResize]=\"false\"\r\n                              [draggable]=\"false\"\r\n                              [resizeable]=\"false\">\r\n          <ng-template ngx-datatable-header-template\r\n                       let-value=\"value\"\r\n                       let-allRowsSelected=\"allRowsSelected\"\r\n                       let-selectFn=\"selectFn\">\r\n            @if (service.data.items.length > 0) {\r\n            <input type=\"checkbox\"\r\n                   class=\"form-check-input\"\r\n                   [checked]=\"allRowsSelected\"\r\n                   (change)=\"selectFn(!allRowsSelected)\" />\r\n            }\r\n          </ng-template>\r\n          <ng-template ngx-datatable-cell-template\r\n                       let-value=\"value\"\r\n                       let-isSelected=\"isSelected\"\r\n                       let-onCheckboxChangeFn=\"onCheckboxChangeFn\">\r\n            <input class=\"form-check-input\"\r\n                   type=\"checkbox\"\r\n                   [checked]=\"isSelected\"\r\n                   (change)=\"onCheckboxChangeFn($event)\" />\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n\r\n      \r\n        <ngx-datatable-row-detail rowHeight=\"100%\">\r\n          <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\r\n            <ul id=\"asset-nav-tabs mb-0\" ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n              <li *abpPermission=\"'AssetManagementSystem.Maintenances'\"\r\n                  id=\"maintenance-informations\"\r\n                  ngbNavItem>\r\n                <a ngbNavLink>{{ 'AssetManagementSystem::Maintenance' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-maintenance [assetId]=\"row.asset.id\" />\r\n                </ng-template>\r\n              </li>\r\n\r\n              <li *abpPermission=\"'AssetManagementSystem.LossTheftDamages'\"\r\n                  id=\"loss-theft-damage-informations\"\r\n                  ngbNavItem>\r\n                <a ngbNavLink>{{ 'AssetManagementSystem::LossTheftDamage' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-loss-theft-damage [assetId]=\"row.asset.id\" />\r\n                </ng-template>\r\n              </li>\r\n\r\n              <li *abpPermission=\"'AssetManagementSystem.AssetHistories'\"\r\n                  id=\"asset-history-informations\"\r\n                  ngbNavItem>\r\n                <a ngbNavLink>{{ 'AssetManagementSystem::AssetHistory' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-asset-history [assetId]=\"row.asset.id\" />\r\n                </ng-template>\r\n              </li>\r\n            </ul>\r\n\r\n            <div [ngbNavOutlet]=\"nav\" class=\"m-0 fade-in-top\"></div>\r\n          </ng-template>\r\n        </ngx-datatable-row-detail>\r\n        @if (isChildEntitiesPermitted) {\r\n        <ngx-datatable-column [width]=\"50\"\r\n                              [resizeable]=\"false\"\r\n                              [sortable]=\"false\"\r\n                              [draggable]=\"false\"\r\n                              [canAutoResize]=\"false\">\r\n          <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\r\n            <a href=\"javascript:void(0)\"\r\n               class=\"ngx-datatable-toggle text-decoration-none text-muted fa\"\r\n               [class.fa-angle-down]=\"!expanded\"\r\n               [class.fa-angle-up]=\"expanded\"\r\n               title=\"Expand/Collapse Row\"\r\n               (click)=\"toggleExpandRow(row)\">\r\n            </a>\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        }\r\n\r\n        @if (isActionButtonVisible) {\r\n        <ngx-datatable-column [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n                              [maxWidth]=\"150\"\r\n                              [width]=\"150\"\r\n                              [sortable]=\"false\">\r\n          <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n            <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n              <button class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n                      data-toggle=\"dropdown\"\r\n                      aria-haspopup=\"true\"\r\n                      ngbDropdownToggle>\r\n                <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n                {{ 'AbpUi::Actions' | abpLocalization }}\r\n              </button>\r\n\r\n              <div ngbDropdownMenu>\r\n                <button ngbDropdownItem\r\n                        *abpPermission=\"'AssetManagementSystem.Assets.Edit'\"\r\n                        (click)=\"update(row)\">\r\n                  {{ 'AbpUi::Edit' | abpLocalization }}\r\n                </button>\r\n\r\n                <button ngbDropdownItem\r\n                        *abpPermission=\"'AssetManagementSystem.Assets.Delete'\"\r\n                        (click)=\"delete(row)\">\r\n                  {{ 'AbpUi::Delete' | abpLocalization }}\r\n                </button>\r\n              </div>\r\n            </div>\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        }\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Name' | abpLocalization }}\"\r\n                              prop=\"asset.name\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.name }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Manufacturer' | abpLocalization }}\"\r\n                              prop=\"asset.manufacturer\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.manufacturer }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Model' | abpLocalization }}\"\r\n                              prop=\"asset.model\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.model }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::SerialNumber' | abpLocalization }}\"\r\n                              prop=\"asset.serialNumber\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.serialNumber }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::PurchaseDate' | abpLocalization }}\"\r\n                              prop=\"asset.purchaseDate\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.purchaseDate | abpUtcToLocal: 'date' }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::WarrantyUntil' | abpLocalization }}\"\r\n                              prop=\"asset.warrantyUntil\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.warrantyUntil | abpUtcToLocal: 'date' }}\r\n\r\n            <span \r\n  *ngIf=\"isOverdue(row.asset.warrantyUntil)\"\r\n  class=\"badge bg-danger\"\r\n  ngbTooltip=\"Key Indicator: Warranty is overdue\"\r\n  role=\"alert\"\r\n  aria-live=\"polite\"\r\n>\r\n  <i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"></i>\r\n *\r\n</span>\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Cost' | abpLocalization }}\"\r\n                              prop=\"asset.cost\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.cost | currency:'INR':'symbol':'1.2-2' }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssignedDate' | abpLocalization }}\"\r\n                              prop=\"asset.assignedDate\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.assignedDate | abpUtcToLocal: 'date' }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::ReturnDate' | abpLocalization }}\"\r\n                              prop=\"asset.returnDate\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.returnDate | abpUtcToLocal: 'date' }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::ConditionOnReturn' | abpLocalization }}\"\r\n                              prop=\"asset.conditionOnReturn\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.asset.conditionOnReturn }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::IsActive' | abpLocalization }}\"\r\n                              prop=\"asset.isActive\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            <ng-template [ngIf]=\"row.asset.isActive\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n            <ng-template #yes>\r\n              <div class=\"text-success\">\r\n                <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n                  <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n                </span>\r\n              </div>\r\n            </ng-template>\r\n\r\n            <ng-template #no>\r\n              <div class=\"text-danger\">\r\n                <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n                  <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n                </span>\r\n              </div>\r\n            </ng-template>\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssetType' | abpLocalization }}\"\r\n                              prop=\"assetType.name\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.assetType?.name }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Status' | abpLocalization }}\"\r\n                              prop=\"status.name\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.status?.name }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::Vendor' | abpLocalization }}\"\r\n                              prop=\"vendor.name\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.vendor?.name }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column name=\"{{ 'AssetManagementSystem::AssetIdentityUser' | abpLocalization }}\" prop=\"user.id\">\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            <span *ngIf=\"row.user?.name && row.user?.surname; else fallback\">\r\n              {{ (row.user.name + ' ' + row.user.surname) | titlecase }}\r\n            </span>\r\n            <ng-template #fallback>\r\n              {{ row.user?.name| titlecase }}\r\n            </ng-template>\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n       \r\n      </ngx-datatable>\r\n    \r\n    </div>\r\n  </div>\r\n \r\n</abp-page>\r\n\r\n\r\n@defer (when serviceDetail.isVisible) {\r\n  @if (serviceDetail.isVisible) {\r\n    <lib-asset-detail-modal />\r\n  }\r\n}\r\n","import { authGuard, permissionGuard } from '@abp/ng.core';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AssetComponent } from './components/asset.component';\r\n\r\nexport const routes: Routes = [\r\n  {\r\n    path: '',\r\n    component: AssetComponent,\r\n    canActivate: [authGuard, permissionGuard],\r\n  },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class AssetRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { AssetComponent } from './components/asset.component';\r\nimport { AssetRoutingModule } from './asset-routing.module';\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [AssetComponent, AssetRoutingModule],\r\n})\r\nexport class AssetModule {}\r\n\r\nexport function loadAssetModuleAsChild() {\r\n  return Promise.resolve(AssetModule);\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AssetManagementSystemComponent } from './components/asset-management-system.component';\r\nimport { assetManagementSystemExtensionsResolver } from './resolvers';\r\nimport { loadOfficeModuleAsChild } from './offices/office/office.module';\r\nimport { loadAssetTypeModuleAsChild } from './asset-types/asset-type/asset-type.module';\r\nimport { loadStatusModuleAsChild } from './statuses/status/status.module';\r\nimport { loadVendorModuleAsChild } from './vendors/vendor/vendor.module';\r\nimport { loadAssetModuleAsChild } from './assets/asset/asset.module';\r\n\r\nconst routes: Routes = [\r\n  {\r\n    path: '',\r\n    pathMatch: 'full',\r\n    component: AssetManagementSystemComponent,\r\n    resolve: [assetManagementSystemExtensionsResolver],\r\n  },\r\n  { path: 'offices', loadChildren: loadOfficeModuleAsChild },\r\n  { path: 'asset-types', loadChildren: loadAssetTypeModuleAsChild },\r\n  { path: 'statuses', loadChildren: loadStatusModuleAsChild },\r\n  { path: 'vendors', loadChildren: loadVendorModuleAsChild },\r\n  { path: 'assets', loadChildren: loadAssetModuleAsChild },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class AssetManagementSystemRoutingModule {}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { AssetManagementSystemComponent } from './components/asset-management-system.component';\nimport { AssetManagementSystemRoutingModule } from './asset-management-system-routing.module';\nimport { AssetManagementSystemConfigOptions } from './models/config-options';\nimport { PageModule } from '@abp/ng.components/page';\nimport { ExtensibleModule } from '@abp/ng.components/extensible';\nimport {\n  ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS,\n  ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS,\n} from './tokens/extensions.token';\n\n@NgModule({\n  declarations: [AssetManagementSystemComponent],\n  imports: [\n    CoreModule,\n    ThemeSharedModule,\n    AssetManagementSystemRoutingModule,\n    PageModule,\n    ExtensibleModule,\n  ],\n  exports: [AssetManagementSystemComponent],\n})\nexport class AssetManagementSystemModule {\n  static forChild(\n    options: AssetManagementSystemConfigOptions = {}\n  ): ModuleWithProviders<AssetManagementSystemModule> {\n    return {\n      ngModule: AssetManagementSystemModule,\n      providers: [\n        {\n          provide: ASSET_MANAGEMENT_SYSTEM_ENTITY_ACTION_CONTRIBUTORS,\n          useValue: options.entityActionContributors,\n        },\n        {\n          provide: ASSET_MANAGEMENT_SYSTEM_TOOLBAR_ACTION_CONTRIBUTORS,\n          useValue: options.toolbarActionContributors,\n        },\n      ],\n    };\n  }\n\n  static forLazy(options?: AssetManagementSystemConfigOptions): LazyModuleFactory<AssetManagementSystemModule> {\n    return new LazyModuleFactory(AssetManagementSystemModule.forChild(options));\n  }\n}\n","/*\n * Public API Surface of asset-management-system\n */\n\nexport * from './lib/components/asset-management-system.component';\nexport * from './lib/services/asset-management-system.service';\nexport * from './lib/asset-management-system.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","tap","ChildTabDependencies","i7","routes","ChildComponentDependencies","AssetService","i6","i9","i10.MaintenanceComponent","i11.LossTheftDamageComponent","i12.AssetHistoryComponent"],"mappings":"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"}