@acorex-platform/module-asset-management-client 0.0.69 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-B7YXKaeh.mjs → acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-BGF5UnLv.mjs} +6 -6
- package/fesm2022/{acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-B7YXKaeh.mjs.map → acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-BGF5UnLv.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-asset-usage-values-widget-edit.component-qauvpIMv.mjs → acorex-platform-module-asset-management-client-asset-usage-values-widget-edit.component-Da7eu5ZQ.mjs} +11 -8
- package/fesm2022/acorex-platform-module-asset-management-client-asset-usage-values-widget-edit.component-Da7eu5ZQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-asset-management-client-asset-usage-values-widget-view.component-5psJebph.mjs → acorex-platform-module-asset-management-client-asset-usage-values-widget-view.component-DSGfqZeL.mjs} +12 -9
- package/fesm2022/acorex-platform-module-asset-management-client-asset-usage-values-widget-view.component-DSGfqZeL.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entities-asset-type.mjs +5 -0
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entities-asset-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entities-asset.mjs +19 -14
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entities-asset.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-acorex-platform-module-asset-management-client-contracts-entity-catalog-CnuEulTO.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-acorex-platform-module-asset-management-client-contracts-entity-catalog-DKT9si68.mjs} +9 -9
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-acorex-platform-module-asset-management-client-contracts-entity-catalog-CnuEulTO.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-acorex-platform-module-asset-management-client-contracts-entity-catalog-DKT9si68.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-rental-history.entity-Cy6qssiv.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-rental-history.entity-CMOTBare.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-rental-history.entity-Cy6qssiv.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-rental-history.entity-CMOTBare.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-assignment.entity-BvXjVaqK.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-assignment.entity-C--mzHfv.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-assignment.entity-BvXjVaqK.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-assignment.entity-C--mzHfv.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-type.entity-DanmgSHH.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-type.entity-BsBULEtw.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-type.entity-DanmgSHH.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system-type.entity-BsBULEtw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system.entity-BO2GQu2_.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system.entity-U0E378Kp.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system.entity-BO2GQu2_.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-system.entity-U0E378Kp.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section-component.entity-DumWQV-O.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section-component.entity-IIFjvZhm.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section-component.entity-DumWQV-O.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section-component.entity-IIFjvZhm.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section.entity-B5Z8s8_4.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section.entity-DCRV6Hw1.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section.entity-B5Z8s8_4.mjs.map → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type-section.entity-DCRV6Hw1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type.entity-BO3otOO_.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type.entity-D8QHs2bd.mjs} +7 -3
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type.entity-D8QHs2bd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.entity-CvCBkNVZ.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.entity-B1kZuGxF.mjs} +21 -17
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.entity-B1kZuGxF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.interval-kind-nMKvWqpx.mjs → acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.interval-kind-SA7OYpBO.mjs} +2 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.interval-kind-SA7OYpBO.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts.mjs +1 -0
- package/fesm2022/acorex-platform-module-asset-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-RGXS9fI1.mjs → acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-jPhKrf_o.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-RGXS9fI1.mjs.map → acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-jPhKrf_o.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-asset-management-client.mjs +1 -1
- package/i18n/en-AU/asset-management.json +5 -1
- package/i18n/en-US/asset-management.json +5 -1
- package/i18n/fa-IR/asset-management.json +5 -1
- package/package.json +2 -2
- package/types/acorex-platform-module-asset-management-client-contracts.d.ts +3 -0
- package/fesm2022/acorex-platform-module-asset-management-client-asset-usage-values-widget-edit.component-qauvpIMv.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-asset-management-client-asset-usage-values-widget-view.component-5psJebph.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type.entity-BO3otOO_.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.entity-CvCBkNVZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-asset-management-client-contracts-entity-catalog-asset.interval-kind-nMKvWqpx.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-asset-management-client-contracts.mjs","sources":["../../../../libs/modules/asset-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/asset-management/contracts/src/commands.keys.ts","../../../../libs/modules/asset-management/contracts/src/features.keys.ts","../../../../libs/modules/asset-management/contracts/src/menu.keys.ts","../../../../libs/modules/asset-management/contracts/src/permission.keys.ts","../../../../libs/modules/asset-management/contracts/src/ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/asset-management/contracts/src/AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY.ts","../../../../libs/modules/asset-management/contracts/src/AXM_ASSET_STATUS_DEFINITION_KEY.ts","../../../../libs/modules/asset-management/contracts/src/asset-rental-history.actions.ts","../../../../libs/modules/asset-management/contracts/src/asset-rental-history.status.ts","../../../../libs/modules/asset-management/contracts/src/asset-type-section-builder.types.ts","../../../../libs/modules/asset-management/contracts/src/asset.status.ts","../../../../libs/modules/asset-management/contracts/src/asset.lifecycle.ts","../../../../libs/modules/asset-management/contracts/src/asset.interval-kind.ts","../../../../libs/modules/asset-management/contracts/src/asset.interval-unit.ts","../../../../libs/modules/asset-management/contracts/src/asset.usage-value.ts","../../../../libs/modules/asset-management/contracts/src/root-config.ts","../../../../libs/modules/asset-management/contracts/src/manifest.ts","../../../../libs/modules/asset-management/contracts/src/index.ts","../../../../libs/modules/asset-management/contracts/src/acorex-platform-module-asset-management-client-contracts.ts"],"sourcesContent":["/** Asset booking catalog scope for questionnaires, question bank items, and workflow definitions. */\nexport const ASSET_CATALOG_SCOPE_BOOKING = 'asset-management.booking';\n","//#region ---- Command keys ----\n\nexport const AXMAssetManagementCommandKeys = {\n AssetRentalHistory: {\n RentFrom: 'AssetManagement.AssetRentalHistory:RentFrom',\n RentTo: 'AssetManagement.AssetRentalHistory:RentTo',\n },\n WorkflowActivity: {\n RecalculateOperationalStatus: 'workflow-activity:recalculate-asset-operational-status',\n },\n} as const;\n\n//#endregion\n","export const AXMAssetManagementFeatureKeys = {\n AssetManagement: 'AssetManagement:Feature:Management',\n AdvancedMaintenance: 'AssetManagement:Feature:Advanced.Maintenance',\n MaintenanceScheduling: 'AssetManagement:Feature:Maintenance.Scheduling',\n InspectionWorkflow: 'AssetManagement:Feature:Inspection.Workflow',\n} as const;\n","export const AXMAssetManagementMenuKeys = {\n Root: 'AssetManagement:Menu',\n MainPlanEquipmentAssetsMaintenanceDivider: 'AssetManagement:Menu:MainPlanEquipment:AssetsMaintenanceDivider',\n PlanEquipmentAssets: 'AssetManagement:Menu:PlantEquipment:Assets',\n PlanEquipmentAssetsMaintenanceDivider: 'AssetManagement:Menu:PlantEquipment:AssetsMaintenanceDivider',\n Assets: 'AssetManagement:Menu:Assets',\n AssetSystems: 'AssetManagement:Menu:AssetSystems',\n AssetTypes: 'AssetManagement:Menu:AssetTypes',\n AssetSystemTypes: 'AssetManagement:Menu:AssetSystemTypes',\n AssetTypeSections: 'AssetManagement:Menu:AssetTypeSections',\n} as const;\n","/**\n * Assets & Maintenance capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAssetsMaintenancePermissionKeys = {\n Access: 'AssetsMaintenance:Permission:Access',\n MaintainAssets: 'AssetsMaintenance:Permission:MaintainAssets',\n MaintainMaintenance: 'AssetsMaintenance:Permission:MaintainMaintenance',\n Setup: 'AssetsMaintenance:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAssetsMaintenancePermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMAssetManagementPermissionKeys = {\n AssetManagement: {\n Management: AXPAssetsMaintenancePermissionKeys.Access,\n Asset: {\n Management: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n View: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Create: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Update: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Delete: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n },\n },\n} as const;\n","/** Registry key for the asset type Components custom page tab. */\nexport const ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY = 'asset-type-components-page';\n","/** Status provider key for `lifecycleStatusId` on AssetManagement.Asset (lifecycle status). */\nexport const AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY = 'asset-management.status.asset-lifecycle';\n","/** Status provider key for `statusId` on AssetManagement.Asset (operational status). */\nexport const AXM_ASSET_STATUS_DEFINITION_KEY = 'asset-management.status.asset';\n","import { AXPSystemActionType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityAction, AXPEntityCommandScope, entityMasterCrudActions } from '@acorex-platform/framework-shared/entity';\n\nimport { AXMAssetManagementCommandKeys } from './commands.keys';\n\n//#region ---- Rent list actions ----\n\n/** Type-level create actions for rent-from / rent-to (list and asset related-entity). */\nexport const assetRentalHistoryRentActions: AXPEntityAction[] = [\n {\n name: 'rent-from',\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.actions.rent-from.title',\n command: {\n name: AXMAssetManagementCommandKeys.AssetRentalHistory.RentFrom,\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: { assetId: '{{context.eval(\"id\")}}' },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n name: 'rent-to',\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.actions.rent-to.title',\n command: {\n name: AXMAssetManagementCommandKeys.AssetRentalHistory.RentTo,\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: { assetId: '{{context.eval(\"id\")}}' },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n ...entityMasterCrudActions({ create: false, view: false }),\n];\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetRentalHistoryStatus {\n Draft = 'draft',\n Active = 'active',\n Returned = 'returned',\n Overdue = 'overdue',\n Cancelled = 'cancelled',\n}\n\n//#endregion\n","import type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Asset type section builder value types ----\n\nexport interface AXMAssetTypeSectionBuilderItemValue {\n id: string;\n assetTypeSectionId: string;\n /**\n * Original source component id when a section item is expanded to multiple\n * assignment slots (based on count) in asset-link mode.\n */\n assetTypeSectionComponentId?: string;\n assetTypeId: string;\n assetTypeSection?: {\n id: string;\n code: number;\n title: string;\n description?: string;\n };\n assetType: {\n id: string;\n name: string | AXPMultiLanguageString;\n };\n count: number;\n roleName: string | AXPMultiLanguageString;\n hasMaintenance: boolean;\n /**\n * Selected asset link for this slot in asset-link mode.\n */\n assetId?: string;\n asset?: {\n id: string;\n code?: string;\n title?: string | AXPMultiLanguageString;\n };\n}\n\nexport interface AXMAssetTypeSectionBuilderSectionValue {\n id: string;\n code: number;\n title: string | AXPMultiLanguageString;\n assetTypeId: string;\n description?: string | AXPMultiLanguageString;\n items: AXMAssetTypeSectionBuilderItemValue[];\n}\n\nexport interface AXMAssetTypeSectionBuilderValue {\n sections: AXMAssetTypeSectionBuilderSectionValue[];\n}\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetStatus {\n Available = 'available',\n Assigned = 'assigned',\n UnderMaintenanceInspection = 'underMaintenanceInspection',\n OutOfService = 'outOfService',\n Lost = 'lost',\n}\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetLifecycleStatus {\n Created = 'created',\n Active = 'active',\n Retired = 'retired',\n Disposed = 'disposed',\n}\n","//#region ---- Interval kind ----\n\n/** Measurement capabilities an asset type can use for maintenance intervals. Combinations are multiple values, not extra enum members. */\nexport enum AXMAssetIntervalKind {\n Date = 'date',\n Distance = 'distance',\n OperatingHours = 'operating-hours',\n OperationCount = 'operation-count',\n}\n\nconst ASSET_INTERVAL_KINDS = new Set<string>(Object.values(AXMAssetIntervalKind));\n\nexport function isAXMAssetIntervalKind(value: string): value is AXMAssetIntervalKind {\n return ASSET_INTERVAL_KINDS.has(value);\n}\n\n/**\n * Reads `supportedIntervalKinds` from a stored row or a select-editor value.\n * Missing or empty input is `[]`. A non-array, or any item that is not a known kind, is invalid.\n * Select rows `{ id }` are accepted and reduced to the id.\n */\nexport function resolveSupportedIntervalKinds(value: unknown): {\n kinds: AXMAssetIntervalKind[];\n invalid: boolean;\n} {\n if (value == null || value === '') {\n return { kinds: [], invalid: false };\n }\n\n if (!Array.isArray(value)) {\n return { kinds: [], invalid: true };\n }\n\n const kinds: AXMAssetIntervalKind[] = [];\n for (const item of value) {\n const raw =\n typeof item === 'string'\n ? item\n : item && typeof item === 'object' && 'id' in item && typeof (item as { id: unknown }).id === 'string'\n ? (item as { id: string }).id\n : '';\n\n if (!isAXMAssetIntervalKind(raw)) {\n return { kinds: [], invalid: true };\n }\n\n if (!kinds.includes(raw)) {\n kinds.push(raw);\n }\n }\n\n return { kinds, invalid: false };\n}\n\n//#endregion\n","//#region ----- Interval unit -----\n\n/** Unit stored on an asset usage reading. Same stored strings as maintenance interval units. */\nexport enum AXMAssetIntervalUnit {\n Kilometer = 'kilometer',\n Mile = 'mile',\n Hour = 'hour',\n Operation = 'operation',\n}\n\nconst ASSET_INTERVAL_UNITS = new Set<string>(Object.values(AXMAssetIntervalUnit));\n\nexport function isAXMAssetIntervalUnit(value: string): value is AXMAssetIntervalUnit {\n return ASSET_INTERVAL_UNITS.has(value);\n}\n\n//#endregion\n","import { AXMAssetIntervalKind } from './asset.interval-kind';\nimport { AXMAssetIntervalUnit, isAXMAssetIntervalUnit } from './asset.interval-unit';\n\n//#region ----- Types -----\n\n/** Meter kinds that can store a current cumulative reading. Date is calendar-only. */\nexport type AXMAssetUsageKind =\n | AXMAssetIntervalKind.Distance\n | AXMAssetIntervalKind.OperatingHours\n | AXMAssetIntervalKind.OperationCount;\n\nexport interface AXMAssetUsageValue {\n kind: AXMAssetUsageKind;\n currentValue: number;\n unit: AXMAssetIntervalUnit;\n /** ISO timestamp of the reading. */\n lastReadingAt?: string;\n}\n\nexport type AXMAssetUsageWriteIssue =\n | 'invalid'\n | 'date-kind'\n | 'negative'\n | 'not-integer'\n | 'unit'\n | 'unsupported-kind'\n | 'decreased'\n | 'unit-changed'\n | 'invalid-reading-at';\n\nexport interface AXMAssetUsageWriteResult {\n values: AXMAssetUsageValue[];\n issue: AXMAssetUsageWriteIssue | null;\n}\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Entity widget that edits and displays `usageValues`. */\nexport const AXM_ASSET_USAGE_VALUES_WIDGET = 'asset-usage-values-editor';\n\nconst I18N = '@asset-management:assets.entities.asset.fields.usage-values.validation';\n\nexport const AXM_ASSET_USAGE_WRITE_ERRORS: Record<AXMAssetUsageWriteIssue, { message: string; code: string }> = {\n invalid: { message: `${I18N}.invalid`, code: 'ASSET_USAGE_VALUE_INVALID' },\n 'date-kind': { message: `${I18N}.date-kind`, code: 'ASSET_USAGE_VALUE_DATE_KIND' },\n negative: { message: `${I18N}.negative`, code: 'ASSET_USAGE_VALUE_NEGATIVE' },\n 'not-integer': { message: `${I18N}.not-integer`, code: 'ASSET_USAGE_VALUE_NOT_INTEGER' },\n unit: { message: `${I18N}.unit`, code: 'ASSET_USAGE_VALUE_UNIT' },\n 'unsupported-kind': { message: `${I18N}.unsupported-kind`, code: 'ASSET_USAGE_VALUE_UNSUPPORTED_KIND' },\n decreased: { message: `${I18N}.decreased`, code: 'ASSET_USAGE_VALUE_DECREASED' },\n 'unit-changed': { message: `${I18N}.unit-changed`, code: 'ASSET_USAGE_VALUE_UNIT_CHANGED' },\n 'invalid-reading-at': { message: `${I18N}.invalid-reading-at`, code: 'ASSET_USAGE_VALUE_READING_AT' },\n};\n\n//#endregion\n\n//#region ----- Kind and unit -----\n\nexport function isAXMAssetUsageKind(value: string): value is AXMAssetUsageKind {\n return (\n value === AXMAssetIntervalKind.Distance ||\n value === AXMAssetIntervalKind.OperatingHours ||\n value === AXMAssetIntervalKind.OperationCount\n );\n}\n\nexport function isAXMAssetUsageUnitForKind(kind: AXMAssetUsageKind, unit: AXMAssetIntervalUnit): boolean {\n switch (kind) {\n case AXMAssetIntervalKind.Distance:\n return unit === AXMAssetIntervalUnit.Kilometer || unit === AXMAssetIntervalUnit.Mile;\n case AXMAssetIntervalKind.OperatingHours:\n return unit === AXMAssetIntervalUnit.Hour;\n case AXMAssetIntervalKind.OperationCount:\n return unit === AXMAssetIntervalUnit.Operation;\n }\n}\n\nfunction supportedUsageKinds(kinds: readonly string[]): Set<AXMAssetUsageKind> {\n const set = new Set<AXMAssetUsageKind>();\n for (const kind of kinds) {\n if (isAXMAssetUsageKind(kind)) {\n set.add(kind);\n }\n }\n return set;\n}\n\n//#endregion\n\n//#region ----- Read -----\n\nfunction toIsoTimestamp(value: unknown): string | null {\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value.toISOString();\n }\n if (typeof value !== 'string' || value.trim().length === 0) {\n return null;\n }\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed.toISOString();\n}\n\nfunction readOne(item: unknown): AXMAssetUsageValue | null {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return null;\n }\n const record = item as Record<string, unknown>;\n const kind = record['kind'];\n if (typeof kind !== 'string' || !isAXMAssetUsageKind(kind)) {\n return null;\n }\n const currentValue = record['currentValue'];\n if (typeof currentValue !== 'number' || !Number.isFinite(currentValue) || currentValue < 0) {\n return null;\n }\n if (kind === AXMAssetIntervalKind.OperationCount && !Number.isInteger(currentValue)) {\n return null;\n }\n const unit = record['unit'];\n if (typeof unit !== 'string' || !isAXMAssetIntervalUnit(unit) || !isAXMAssetUsageUnitForKind(kind, unit)) {\n return null;\n }\n const value: AXMAssetUsageValue = { kind, currentValue, unit };\n if (record['lastReadingAt'] != null) {\n const lastReadingAt = toIsoTimestamp(record['lastReadingAt']);\n if (!lastReadingAt) {\n return null;\n }\n value.lastReadingAt = lastReadingAt;\n }\n return value;\n}\n\n/** Missing, invalid, or date readings become `[]` or are dropped. The last item of a kind wins. */\nexport function readAssetUsageValues(value: unknown): AXMAssetUsageValue[] {\n if (!Array.isArray(value)) {\n return [];\n }\n const byKind = new Map<AXMAssetUsageKind, AXMAssetUsageValue>();\n for (const item of value) {\n const reading = readOne(item);\n if (reading) {\n byKind.set(reading.kind, reading);\n }\n }\n return [...byKind.values()];\n}\n\n//#endregion\n\n//#region ----- Write -----\n\nfunction parseOne(item: unknown): { value: AXMAssetUsageValue } | { issue: AXMAssetUsageWriteIssue } {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return { issue: 'invalid' };\n }\n const record = item as Record<string, unknown>;\n const kind = record['kind'];\n if (kind === AXMAssetIntervalKind.Date) {\n return { issue: 'date-kind' };\n }\n if (typeof kind !== 'string' || !isAXMAssetUsageKind(kind)) {\n return { issue: 'invalid' };\n }\n const currentValue = record['currentValue'];\n if (typeof currentValue !== 'number' || !Number.isFinite(currentValue)) {\n return { issue: 'invalid' };\n }\n if (currentValue < 0) {\n return { issue: 'negative' };\n }\n if (kind === AXMAssetIntervalKind.OperationCount && !Number.isInteger(currentValue)) {\n return { issue: 'not-integer' };\n }\n const unit = record['unit'];\n if (typeof unit !== 'string' || !isAXMAssetIntervalUnit(unit) || !isAXMAssetUsageUnitForKind(kind, unit)) {\n return { issue: 'unit' };\n }\n const value: AXMAssetUsageValue = { kind, currentValue, unit };\n if (record['lastReadingAt'] != null) {\n const lastReadingAt = toIsoTimestamp(record['lastReadingAt']);\n if (!lastReadingAt) {\n return { issue: 'invalid-reading-at' };\n }\n value.lastReadingAt = lastReadingAt;\n }\n return { value };\n}\n\n/**\n * Normalizes a create/update payload.\n * One item per kind; a later item replaces the earlier one.\n * On update, kinds omitted from the payload stay. A lower value or a unit change is rejected.\n */\nexport function resolveAssetUsageWrite(\n value: unknown,\n options: {\n supportedKinds: readonly string[];\n previous?: unknown;\n mergeWithPrevious: boolean;\n },\n): AXMAssetUsageWriteResult {\n const previous = options.mergeWithPrevious ? readAssetUsageValues(options.previous) : [];\n const previousByKind = new Map(previous.map((item) => [item.kind, item]));\n\n if (value == null) {\n return { values: previous, issue: null };\n }\n if (!Array.isArray(value)) {\n return { values: [], issue: 'invalid' };\n }\n\n const incoming = new Map<AXMAssetUsageKind, AXMAssetUsageValue>();\n for (const item of value) {\n const parsed = parseOne(item);\n if ('issue' in parsed) {\n return { values: [], issue: parsed.issue };\n }\n incoming.set(parsed.value.kind, parsed.value);\n }\n\n const supported = supportedUsageKinds(options.supportedKinds);\n for (const reading of incoming.values()) {\n if (!supported.has(reading.kind)) {\n return { values: [], issue: 'unsupported-kind' };\n }\n const stored = previousByKind.get(reading.kind);\n if (!stored) {\n continue;\n }\n if (stored.unit !== reading.unit) {\n return { values: [], issue: 'unit-changed' };\n }\n if (reading.currentValue < stored.currentValue) {\n return { values: [], issue: 'decreased' };\n }\n }\n\n const merged = new Map(previousByKind);\n for (const [kind, reading] of incoming) {\n merged.set(kind, reading);\n }\n\n return { values: [...merged.values()], issue: null };\n}\n\n//#endregion\n","//#region ---- Root Configuration ----\n\nconst config = {\n i18n: 'asset-management',\n module: 'AssetManagement',\n route: 'asset-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: config.route,\n name: config.module,\n title: '@asset-management:module.title',\n icon: 'fa-light fa-industry',\n },\n entities: {\n assetRentalHistory: {\n name: 'AssetRentalHistory',\n source: `${config.module}.AssetRentalHistory`,\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.title',\n titlePlural: '@asset-management:assetRentalHistories.entities.assetRentalHistory.plural',\n icon: 'fa-light fa-file-contract',\n },\n assetSystemAssignment: {\n name: 'AssetSystemAssignment',\n source: `${config.module}.AssetSystemAssignment`,\n title: '@asset-management:assetSystemAssignments.entities.assetSystemAssignment.title',\n titlePlural: '@asset-management:assetSystemAssignments.entities.assetSystemAssignment.plural',\n icon: 'fa-light fa-link',\n },\n asset: {\n name: 'Asset',\n source: `${config.module}.Asset`,\n title: '@asset-management:assets.entities.asset.title',\n titlePlural: '@asset-management:assets.entities.asset.plural',\n icon: 'fa-light fa-box',\n },\n assetType: {\n name: 'AssetType',\n source: `${config.module}.AssetType`,\n title: '@asset-management:assetTypes.entities.assetType.title',\n titlePlural: '@asset-management:assetTypes.entities.assetType.plural',\n icon: 'fa-light fa-cubes',\n },\n assetTypeSection: {\n name: 'AssetTypeSection',\n source: `${config.module}.AssetTypeSection`,\n title: '@asset-management:assetTypeSections.entities.assetTypeSection.title',\n titlePlural: '@asset-management:assetTypeSections.entities.assetTypeSection.plural',\n icon: 'fa-light fa-layer-group',\n },\n assetTypeSectionComponent: {\n name: 'AssetTypeSectionComponent',\n source: `${config.module}.AssetTypeSectionComponent`,\n title: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.title',\n titlePlural: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.plural',\n icon: 'fa-light fa-puzzle-piece',\n },\n assetSystemType: {\n name: 'AssetSystemType',\n source: `${config.module}.AssetSystemType`,\n title: '@asset-management:assetSystemTypes.entities.assetSystemType.title',\n titlePlural: '@asset-management:assetSystemTypes.entities.assetSystemType.plural',\n icon: 'fa-light fa-diagram-subtask',\n },\n assetSystem: {\n name: 'AssetSystem',\n source: `${config.module}.AssetSystem`,\n title: 'Asset System',\n titlePlural: 'Asset Systems',\n icon: 'fa-light fa-diagram-project',\n },\n manualAssetCategory: {\n name: 'ManualAssetCategory',\n source: `${config.module}.ManualAssetCategory`,\n title: '@asset-management:asset-categories.entities.asset-category.title',\n titlePlural: '@asset-management:asset-categories.entities.asset-category.plural',\n icon: 'fa-light fa-tags',\n },\n // inspection: {\n // name: 'Inspection',\n // source: `${config.module}.Inspection`,\n // title: '@asset-management:inspections.entities.inspection.title',\n // titlePlural: '@asset-management:inspections.entities.inspection.plural',\n // icon: 'fa-light fa-clipboard-check',\n // },\n // assetStatus: {\n // name: 'AssetStatus',\n // source: `${config.module}.AssetStatus`,\n // title: '@asset-management:asset-statuses.entities.asset-status.title',\n // titlePlural: '@asset-management:asset-statuses.entities.asset-status.plural',\n // icon: 'fa-light fa-signal',\n // },\n },\n queries: {\n reports: {\n getAssetsByStatus: `${config.module}:Reports:GetAssetsByStatus`,\n getRentalUtilization: `${config.module}:Reports:GetRentalUtilization`,\n },\n },\n} as const;\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Asset Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const AssetManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'domain',\n domain: 'asset-maintenance',\n required: false,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY';\nexport * from './AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY';\nexport * from './AXM_ASSET_STATUS_DEFINITION_KEY';\nexport * from './asset-rental-history.actions';\nexport * from './asset-rental-history.status';\nexport * from './asset-type-section-builder.types';\nexport * from './asset.status';\nexport * from './asset.lifecycle';\nexport * from './asset.interval-kind';\nexport * from './asset.interval-unit';\nexport * from './asset.usage-value';\n\nexport * from './root-config';\nexport * from './manifest';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-asset-management-client-contracts.mjs","sources":["../../../../libs/modules/asset-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/asset-management/contracts/src/commands.keys.ts","../../../../libs/modules/asset-management/contracts/src/features.keys.ts","../../../../libs/modules/asset-management/contracts/src/menu.keys.ts","../../../../libs/modules/asset-management/contracts/src/permission.keys.ts","../../../../libs/modules/asset-management/contracts/src/ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/asset-management/contracts/src/AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY.ts","../../../../libs/modules/asset-management/contracts/src/AXM_ASSET_STATUS_DEFINITION_KEY.ts","../../../../libs/modules/asset-management/contracts/src/asset-rental-history.actions.ts","../../../../libs/modules/asset-management/contracts/src/asset-rental-history.status.ts","../../../../libs/modules/asset-management/contracts/src/asset-type-section-builder.types.ts","../../../../libs/modules/asset-management/contracts/src/asset.status.ts","../../../../libs/modules/asset-management/contracts/src/asset.lifecycle.ts","../../../../libs/modules/asset-management/contracts/src/asset.interval-kind.ts","../../../../libs/modules/asset-management/contracts/src/asset.interval-unit.ts","../../../../libs/modules/asset-management/contracts/src/asset.usage-value.ts","../../../../libs/modules/asset-management/contracts/src/root-config.ts","../../../../libs/modules/asset-management/contracts/src/manifest.ts","../../../../libs/modules/asset-management/contracts/src/index.ts","../../../../libs/modules/asset-management/contracts/src/acorex-platform-module-asset-management-client-contracts.ts"],"sourcesContent":["/** Asset booking catalog scope for questionnaires, question bank items, and workflow definitions. */\nexport const ASSET_CATALOG_SCOPE_BOOKING = 'asset-management.booking';\n","//#region ---- Command keys ----\n\nexport const AXMAssetManagementCommandKeys = {\n AssetRentalHistory: {\n RentFrom: 'AssetManagement.AssetRentalHistory:RentFrom',\n RentTo: 'AssetManagement.AssetRentalHistory:RentTo',\n },\n WorkflowActivity: {\n RecalculateOperationalStatus: 'workflow-activity:recalculate-asset-operational-status',\n },\n} as const;\n\n//#endregion\n","export const AXMAssetManagementFeatureKeys = {\n AssetManagement: 'AssetManagement:Feature:Management',\n AdvancedMaintenance: 'AssetManagement:Feature:Advanced.Maintenance',\n MaintenanceScheduling: 'AssetManagement:Feature:Maintenance.Scheduling',\n InspectionWorkflow: 'AssetManagement:Feature:Inspection.Workflow',\n} as const;\n","export const AXMAssetManagementMenuKeys = {\n Root: 'AssetManagement:Menu',\n MainPlanEquipmentAssetsMaintenanceDivider: 'AssetManagement:Menu:MainPlanEquipment:AssetsMaintenanceDivider',\n PlanEquipmentAssets: 'AssetManagement:Menu:PlantEquipment:Assets',\n PlanEquipmentAssetsMaintenanceDivider: 'AssetManagement:Menu:PlantEquipment:AssetsMaintenanceDivider',\n Assets: 'AssetManagement:Menu:Assets',\n AssetSystems: 'AssetManagement:Menu:AssetSystems',\n AssetTypes: 'AssetManagement:Menu:AssetTypes',\n AssetSystemTypes: 'AssetManagement:Menu:AssetSystemTypes',\n AssetTypeSections: 'AssetManagement:Menu:AssetTypeSections',\n} as const;\n","/**\n * Assets & Maintenance capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAssetsMaintenancePermissionKeys = {\n Access: 'AssetsMaintenance:Permission:Access',\n MaintainAssets: 'AssetsMaintenance:Permission:MaintainAssets',\n MaintainMaintenance: 'AssetsMaintenance:Permission:MaintainMaintenance',\n Setup: 'AssetsMaintenance:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAssetsMaintenancePermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMAssetManagementPermissionKeys = {\n AssetManagement: {\n Management: AXPAssetsMaintenancePermissionKeys.Access,\n Asset: {\n Management: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n View: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Create: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Update: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n Delete: AXPAssetsMaintenancePermissionKeys.MaintainAssets,\n },\n },\n} as const;\n","/** Registry key for the asset type Components custom page tab. */\nexport const ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY = 'asset-type-components-page';\n","/** Status provider key for `lifecycleStatusId` on AssetManagement.Asset (lifecycle status). */\nexport const AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY = 'asset-management.status.asset-lifecycle';\n","/** Status provider key for `statusId` on AssetManagement.Asset (operational status). */\nexport const AXM_ASSET_STATUS_DEFINITION_KEY = 'asset-management.status.asset';\n","import { AXPSystemActionType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityAction, AXPEntityCommandScope, entityMasterCrudActions } from '@acorex-platform/framework-shared/entity';\n\nimport { AXMAssetManagementCommandKeys } from './commands.keys';\n\n//#region ---- Rent list actions ----\n\n/** Type-level create actions for rent-from / rent-to (list and asset related-entity). */\nexport const assetRentalHistoryRentActions: AXPEntityAction[] = [\n {\n name: 'rent-from',\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.actions.rent-from.title',\n command: {\n name: AXMAssetManagementCommandKeys.AssetRentalHistory.RentFrom,\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: { assetId: '{{context.eval(\"id\")}}' },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n name: 'rent-to',\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.actions.rent-to.title',\n command: {\n name: AXMAssetManagementCommandKeys.AssetRentalHistory.RentTo,\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: { assetId: '{{context.eval(\"id\")}}' },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n ...entityMasterCrudActions({ create: false, view: false }),\n];\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetRentalHistoryStatus {\n Draft = 'draft',\n Active = 'active',\n Returned = 'returned',\n Overdue = 'overdue',\n Cancelled = 'cancelled',\n}\n\n//#endregion\n","import type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Asset type section builder value types ----\n\nexport interface AXMAssetTypeSectionBuilderItemValue {\n id: string;\n assetTypeSectionId: string;\n /**\n * Original source component id when a section item is expanded to multiple\n * assignment slots (based on count) in asset-link mode.\n */\n assetTypeSectionComponentId?: string;\n assetTypeId: string;\n assetTypeSection?: {\n id: string;\n code: number;\n title: string;\n description?: string;\n };\n assetType: {\n id: string;\n name: string | AXPMultiLanguageString;\n };\n count: number;\n roleName: string | AXPMultiLanguageString;\n hasMaintenance: boolean;\n /**\n * Selected asset link for this slot in asset-link mode.\n */\n assetId?: string;\n asset?: {\n id: string;\n code?: string;\n title?: string | AXPMultiLanguageString;\n };\n}\n\nexport interface AXMAssetTypeSectionBuilderSectionValue {\n id: string;\n code: number;\n title: string | AXPMultiLanguageString;\n assetTypeId: string;\n description?: string | AXPMultiLanguageString;\n items: AXMAssetTypeSectionBuilderItemValue[];\n}\n\nexport interface AXMAssetTypeSectionBuilderValue {\n sections: AXMAssetTypeSectionBuilderSectionValue[];\n}\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetStatus {\n Available = 'available',\n Assigned = 'assigned',\n UnderMaintenanceInspection = 'underMaintenanceInspection',\n OutOfService = 'outOfService',\n Lost = 'lost',\n}\n\n//#endregion\n","//#region ---- Status enum ----\n\nexport enum AXMAssetLifecycleStatus {\n Created = 'created',\n Active = 'active',\n Retired = 'retired',\n Disposed = 'disposed',\n}\n","//#region ---- Interval kind ----\n\n/** Measurement capabilities an asset type can use for maintenance intervals. Combinations are multiple values, not extra enum members. */\nexport enum AXMAssetIntervalKind {\n Schedule = 'schedule',\n Date = 'date',\n Distance = 'distance',\n OperatingHours = 'operating-hours',\n OperationCount = 'operation-count',\n}\n\nconst ASSET_INTERVAL_KINDS = new Set<string>(Object.values(AXMAssetIntervalKind));\n\nexport function isAXMAssetIntervalKind(value: string): value is AXMAssetIntervalKind {\n return ASSET_INTERVAL_KINDS.has(value);\n}\n\n/**\n * Reads `supportedIntervalKinds` from a stored row or a select-editor value.\n * Missing or empty input is `[]`. A non-array, or any item that is not a known kind, is invalid.\n * Select rows `{ id }` are accepted and reduced to the id.\n */\nexport function resolveSupportedIntervalKinds(value: unknown): {\n kinds: AXMAssetIntervalKind[];\n invalid: boolean;\n} {\n if (value == null || value === '') {\n return { kinds: [], invalid: false };\n }\n\n if (!Array.isArray(value)) {\n return { kinds: [], invalid: true };\n }\n\n const kinds: AXMAssetIntervalKind[] = [];\n for (const item of value) {\n const raw =\n typeof item === 'string'\n ? item\n : item && typeof item === 'object' && 'id' in item && typeof (item as { id: unknown }).id === 'string'\n ? (item as { id: string }).id\n : '';\n\n if (!isAXMAssetIntervalKind(raw)) {\n return { kinds: [], invalid: true };\n }\n\n if (!kinds.includes(raw)) {\n kinds.push(raw);\n }\n }\n\n return { kinds, invalid: false };\n}\n\n//#endregion\n","//#region ----- Interval unit -----\n\n/** Unit stored on an asset usage reading. Same stored strings as maintenance interval units. */\nexport enum AXMAssetIntervalUnit {\n Kilometer = 'kilometer',\n Mile = 'mile',\n Hour = 'hour',\n Operation = 'operation',\n}\n\nconst ASSET_INTERVAL_UNITS = new Set<string>(Object.values(AXMAssetIntervalUnit));\n\nexport function isAXMAssetIntervalUnit(value: string): value is AXMAssetIntervalUnit {\n return ASSET_INTERVAL_UNITS.has(value);\n}\n\n//#endregion\n","import { AXMAssetIntervalKind } from './asset.interval-kind';\nimport { AXMAssetIntervalUnit, isAXMAssetIntervalUnit } from './asset.interval-unit';\n\n//#region ----- Types -----\n\n/** Meter kinds that can store a current cumulative reading. Date is calendar-only. */\nexport type AXMAssetUsageKind =\n | AXMAssetIntervalKind.Distance\n | AXMAssetIntervalKind.OperatingHours\n | AXMAssetIntervalKind.OperationCount;\n\nexport interface AXMAssetUsageValue {\n kind: AXMAssetUsageKind;\n currentValue: number;\n unit: AXMAssetIntervalUnit;\n /** ISO timestamp of the reading. */\n lastReadingAt?: string;\n}\n\nexport type AXMAssetUsageWriteIssue =\n | 'invalid'\n | 'date-kind'\n | 'negative'\n | 'not-integer'\n | 'unit'\n | 'unsupported-kind'\n | 'decreased'\n | 'unit-changed'\n | 'invalid-reading-at';\n\nexport interface AXMAssetUsageWriteResult {\n values: AXMAssetUsageValue[];\n issue: AXMAssetUsageWriteIssue | null;\n}\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Entity widget that edits and displays `usageValues`. */\nexport const AXM_ASSET_USAGE_VALUES_WIDGET = 'asset-usage-values-editor';\n\nconst I18N = '@asset-management:assets.entities.asset.fields.usage-values.validation';\n\nexport const AXM_ASSET_USAGE_WRITE_ERRORS: Record<AXMAssetUsageWriteIssue, { message: string; code: string }> = {\n invalid: { message: `${I18N}.invalid`, code: 'ASSET_USAGE_VALUE_INVALID' },\n 'date-kind': { message: `${I18N}.date-kind`, code: 'ASSET_USAGE_VALUE_DATE_KIND' },\n negative: { message: `${I18N}.negative`, code: 'ASSET_USAGE_VALUE_NEGATIVE' },\n 'not-integer': { message: `${I18N}.not-integer`, code: 'ASSET_USAGE_VALUE_NOT_INTEGER' },\n unit: { message: `${I18N}.unit`, code: 'ASSET_USAGE_VALUE_UNIT' },\n 'unsupported-kind': { message: `${I18N}.unsupported-kind`, code: 'ASSET_USAGE_VALUE_UNSUPPORTED_KIND' },\n decreased: { message: `${I18N}.decreased`, code: 'ASSET_USAGE_VALUE_DECREASED' },\n 'unit-changed': { message: `${I18N}.unit-changed`, code: 'ASSET_USAGE_VALUE_UNIT_CHANGED' },\n 'invalid-reading-at': { message: `${I18N}.invalid-reading-at`, code: 'ASSET_USAGE_VALUE_READING_AT' },\n};\n\n//#endregion\n\n//#region ----- Kind and unit -----\n\nexport function isAXMAssetUsageKind(value: string): value is AXMAssetUsageKind {\n return (\n value === AXMAssetIntervalKind.Distance ||\n value === AXMAssetIntervalKind.OperatingHours ||\n value === AXMAssetIntervalKind.OperationCount\n );\n}\n\nexport function isAXMAssetUsageUnitForKind(kind: AXMAssetUsageKind, unit: AXMAssetIntervalUnit): boolean {\n switch (kind) {\n case AXMAssetIntervalKind.Distance:\n return unit === AXMAssetIntervalUnit.Kilometer || unit === AXMAssetIntervalUnit.Mile;\n case AXMAssetIntervalKind.OperatingHours:\n return unit === AXMAssetIntervalUnit.Hour;\n case AXMAssetIntervalKind.OperationCount:\n return unit === AXMAssetIntervalUnit.Operation;\n }\n}\n\nfunction supportedUsageKinds(kinds: readonly string[]): Set<AXMAssetUsageKind> {\n const set = new Set<AXMAssetUsageKind>();\n for (const kind of kinds) {\n if (isAXMAssetUsageKind(kind)) {\n set.add(kind);\n }\n }\n return set;\n}\n\n//#endregion\n\n//#region ----- Read -----\n\nfunction toIsoTimestamp(value: unknown): string | null {\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value.toISOString();\n }\n if (typeof value !== 'string' || value.trim().length === 0) {\n return null;\n }\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed.toISOString();\n}\n\nfunction readOne(item: unknown): AXMAssetUsageValue | null {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return null;\n }\n const record = item as Record<string, unknown>;\n const kind = record['kind'];\n if (typeof kind !== 'string' || !isAXMAssetUsageKind(kind)) {\n return null;\n }\n const currentValue = record['currentValue'];\n if (typeof currentValue !== 'number' || !Number.isFinite(currentValue) || currentValue < 0) {\n return null;\n }\n if (kind === AXMAssetIntervalKind.OperationCount && !Number.isInteger(currentValue)) {\n return null;\n }\n const unit = record['unit'];\n if (typeof unit !== 'string' || !isAXMAssetIntervalUnit(unit) || !isAXMAssetUsageUnitForKind(kind, unit)) {\n return null;\n }\n const value: AXMAssetUsageValue = { kind, currentValue, unit };\n if (record['lastReadingAt'] != null) {\n const lastReadingAt = toIsoTimestamp(record['lastReadingAt']);\n if (!lastReadingAt) {\n return null;\n }\n value.lastReadingAt = lastReadingAt;\n }\n return value;\n}\n\n/** Missing, invalid, or date readings become `[]` or are dropped. The last item of a kind wins. */\nexport function readAssetUsageValues(value: unknown): AXMAssetUsageValue[] {\n if (!Array.isArray(value)) {\n return [];\n }\n const byKind = new Map<AXMAssetUsageKind, AXMAssetUsageValue>();\n for (const item of value) {\n const reading = readOne(item);\n if (reading) {\n byKind.set(reading.kind, reading);\n }\n }\n return [...byKind.values()];\n}\n\n//#endregion\n\n//#region ----- Write -----\n\nfunction parseOne(item: unknown): { value: AXMAssetUsageValue } | { issue: AXMAssetUsageWriteIssue } {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return { issue: 'invalid' };\n }\n const record = item as Record<string, unknown>;\n const kind = record['kind'];\n if (kind === AXMAssetIntervalKind.Date) {\n return { issue: 'date-kind' };\n }\n if (typeof kind !== 'string' || !isAXMAssetUsageKind(kind)) {\n return { issue: 'invalid' };\n }\n const currentValue = record['currentValue'];\n if (typeof currentValue !== 'number' || !Number.isFinite(currentValue)) {\n return { issue: 'invalid' };\n }\n if (currentValue < 0) {\n return { issue: 'negative' };\n }\n if (kind === AXMAssetIntervalKind.OperationCount && !Number.isInteger(currentValue)) {\n return { issue: 'not-integer' };\n }\n const unit = record['unit'];\n if (typeof unit !== 'string' || !isAXMAssetIntervalUnit(unit) || !isAXMAssetUsageUnitForKind(kind, unit)) {\n return { issue: 'unit' };\n }\n const value: AXMAssetUsageValue = { kind, currentValue, unit };\n if (record['lastReadingAt'] != null) {\n const lastReadingAt = toIsoTimestamp(record['lastReadingAt']);\n if (!lastReadingAt) {\n return { issue: 'invalid-reading-at' };\n }\n value.lastReadingAt = lastReadingAt;\n }\n return { value };\n}\n\n/**\n * Normalizes a create/update payload.\n * One item per kind; a later item replaces the earlier one.\n * On update, kinds omitted from the payload stay. A lower value or a unit change is rejected.\n */\nexport function resolveAssetUsageWrite(\n value: unknown,\n options: {\n supportedKinds: readonly string[];\n previous?: unknown;\n mergeWithPrevious: boolean;\n },\n): AXMAssetUsageWriteResult {\n const previous = options.mergeWithPrevious ? readAssetUsageValues(options.previous) : [];\n const previousByKind = new Map(previous.map((item) => [item.kind, item]));\n\n if (value == null) {\n return { values: previous, issue: null };\n }\n if (!Array.isArray(value)) {\n return { values: [], issue: 'invalid' };\n }\n\n const incoming = new Map<AXMAssetUsageKind, AXMAssetUsageValue>();\n for (const item of value) {\n const parsed = parseOne(item);\n if ('issue' in parsed) {\n return { values: [], issue: parsed.issue };\n }\n incoming.set(parsed.value.kind, parsed.value);\n }\n\n const supported = supportedUsageKinds(options.supportedKinds);\n for (const reading of incoming.values()) {\n if (!supported.has(reading.kind)) {\n return { values: [], issue: 'unsupported-kind' };\n }\n const stored = previousByKind.get(reading.kind);\n if (!stored) {\n continue;\n }\n if (stored.unit !== reading.unit) {\n return { values: [], issue: 'unit-changed' };\n }\n if (reading.currentValue < stored.currentValue) {\n return { values: [], issue: 'decreased' };\n }\n }\n\n const merged = new Map(previousByKind);\n for (const [kind, reading] of incoming) {\n merged.set(kind, reading);\n }\n\n return { values: [...merged.values()], issue: null };\n}\n\n//#endregion\n","//#region ---- Root Configuration ----\n\nconst config = {\n i18n: 'asset-management',\n module: 'AssetManagement',\n route: 'asset-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: config.route,\n name: config.module,\n title: '@asset-management:module.title',\n icon: 'fa-light fa-industry',\n },\n entities: {\n assetRentalHistory: {\n name: 'AssetRentalHistory',\n source: `${config.module}.AssetRentalHistory`,\n title: '@asset-management:assetRentalHistories.entities.assetRentalHistory.title',\n titlePlural: '@asset-management:assetRentalHistories.entities.assetRentalHistory.plural',\n icon: 'fa-light fa-file-contract',\n },\n assetSystemAssignment: {\n name: 'AssetSystemAssignment',\n source: `${config.module}.AssetSystemAssignment`,\n title: '@asset-management:assetSystemAssignments.entities.assetSystemAssignment.title',\n titlePlural: '@asset-management:assetSystemAssignments.entities.assetSystemAssignment.plural',\n icon: 'fa-light fa-link',\n },\n asset: {\n name: 'Asset',\n source: `${config.module}.Asset`,\n title: '@asset-management:assets.entities.asset.title',\n titlePlural: '@asset-management:assets.entities.asset.plural',\n icon: 'fa-light fa-box',\n },\n assetType: {\n name: 'AssetType',\n source: `${config.module}.AssetType`,\n title: '@asset-management:assetTypes.entities.assetType.title',\n titlePlural: '@asset-management:assetTypes.entities.assetType.plural',\n icon: 'fa-light fa-cubes',\n },\n assetTypeSection: {\n name: 'AssetTypeSection',\n source: `${config.module}.AssetTypeSection`,\n title: '@asset-management:assetTypeSections.entities.assetTypeSection.title',\n titlePlural: '@asset-management:assetTypeSections.entities.assetTypeSection.plural',\n icon: 'fa-light fa-layer-group',\n },\n assetTypeSectionComponent: {\n name: 'AssetTypeSectionComponent',\n source: `${config.module}.AssetTypeSectionComponent`,\n title: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.title',\n titlePlural: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.plural',\n icon: 'fa-light fa-puzzle-piece',\n },\n assetSystemType: {\n name: 'AssetSystemType',\n source: `${config.module}.AssetSystemType`,\n title: '@asset-management:assetSystemTypes.entities.assetSystemType.title',\n titlePlural: '@asset-management:assetSystemTypes.entities.assetSystemType.plural',\n icon: 'fa-light fa-diagram-subtask',\n },\n assetSystem: {\n name: 'AssetSystem',\n source: `${config.module}.AssetSystem`,\n title: 'Asset System',\n titlePlural: 'Asset Systems',\n icon: 'fa-light fa-diagram-project',\n },\n manualAssetCategory: {\n name: 'ManualAssetCategory',\n source: `${config.module}.ManualAssetCategory`,\n title: '@asset-management:asset-categories.entities.asset-category.title',\n titlePlural: '@asset-management:asset-categories.entities.asset-category.plural',\n icon: 'fa-light fa-tags',\n },\n // inspection: {\n // name: 'Inspection',\n // source: `${config.module}.Inspection`,\n // title: '@asset-management:inspections.entities.inspection.title',\n // titlePlural: '@asset-management:inspections.entities.inspection.plural',\n // icon: 'fa-light fa-clipboard-check',\n // },\n // assetStatus: {\n // name: 'AssetStatus',\n // source: `${config.module}.AssetStatus`,\n // title: '@asset-management:asset-statuses.entities.asset-status.title',\n // titlePlural: '@asset-management:asset-statuses.entities.asset-status.plural',\n // icon: 'fa-light fa-signal',\n // },\n },\n queries: {\n reports: {\n getAssetsByStatus: `${config.module}:Reports:GetAssetsByStatus`,\n getRentalUtilization: `${config.module}:Reports:GetRentalUtilization`,\n },\n },\n} as const;\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Asset Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const AssetManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'domain',\n domain: 'asset-maintenance',\n required: false,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY';\nexport * from './AXM_ASSET_LIFECYCLE_STATUS_DEFINITION_KEY';\nexport * from './AXM_ASSET_STATUS_DEFINITION_KEY';\nexport * from './asset-rental-history.actions';\nexport * from './asset-rental-history.status';\nexport * from './asset-type-section-builder.types';\nexport * from './asset.status';\nexport * from './asset.lifecycle';\nexport * from './asset.interval-kind';\nexport * from './asset.interval-unit';\nexport * from './asset.usage-value';\n\nexport * from './root-config';\nexport * from './manifest';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { isString } from 'lodash';
|
|
4
|
-
import { A as AXMAssetOperationalStatusService } from './acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-
|
|
4
|
+
import { A as AXMAssetOperationalStatusService } from './acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-BGF5UnLv.mjs';
|
|
5
5
|
|
|
6
6
|
//#endregion
|
|
7
7
|
/**
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
59
59
|
}] });
|
|
60
60
|
|
|
61
61
|
export { RecalculateAssetOperationalStatusActivity };
|
|
62
|
-
//# sourceMappingURL=acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-
|
|
62
|
+
//# sourceMappingURL=acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-jPhKrf_o.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-asset-management-client-recalculate-asset-operational-status.activity-jPhKrf_o.mjs","sources":["../../../../libs/modules/asset-management/client/src/lib/features/workflows/recalculate-asset-operational-status.activity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { isString } from 'lodash';\n\nimport { AXMAssetOperationalStatusService } from '../../services/asset-operational-status.service';\nimport type {\n AXMAssetOperationalStatusRecalculateResult,\n AXMAssetOperationalStatusTrigger,\n} from '../../services/asset-operational-status.types';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface RecalculateAssetOperationalStatusInput {\n assetId: string;\n trigger: AXMAssetOperationalStatusTrigger;\n workOrderId?: string;\n maintenanceTypeId?: string;\n}\n\n//#endregion\n\n/**\n * Workflow activity wrapper for {@link AXMAssetOperationalStatusService.recalculate}.\n */\n@Injectable({ providedIn: 'root' })\nexport class RecalculateAssetOperationalStatusActivity\n implements AXPCommand<RecalculateAssetOperationalStatusInput, AXMAssetOperationalStatusRecalculateResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly assetOperationalStatusService = inject(AXMAssetOperationalStatusService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: RecalculateAssetOperationalStatusInput,\n ): AXPCommandExecuteResultPromise<AXMAssetOperationalStatusRecalculateResult> {\n const assetId = input?.assetId?.trim();\n const trigger = input?.trigger;\n\n if (!assetId) {\n return {\n success: false,\n message: { text: 'assetId is required' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n if (trigger !== 'work-started' && trigger !== 'work-completed' && trigger !== 'work-signed-off') {\n return {\n success: false,\n message: { text: 'trigger must be work-started, work-completed, or work-signed-off' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n try {\n const result = await this.assetOperationalStatusService.recalculate(assetId, trigger, {\n workOrderId: isString(input.workOrderId) ? input.workOrderId.trim() : undefined,\n maintenanceTypeId: isString(input.maintenanceTypeId) ? input.maintenanceTypeId.trim() : undefined,\n });\n\n return { success: true, kind: 'object',\n data: result,\n metadata: { outcome: 'Done' },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Recalculate failed';\n return {\n success: false,\n message: { text: message },\n metadata: { outcome: 'Failed' },\n };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;AAwBA;AAEA;;AAEG;MAEU,yCAAyC,CAAA;AADtD,IAAA,WAAA,GAAA;;AAMmB,QAAA,IAAA,CAAA,6BAA6B,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAiD1F,IAAA;;;IA3CC,MAAM,OAAO,CACX,KAA6C,EAAA;QAE7C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;QAE9B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;AACxC,gBAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;aAChC;QACH;AAEA,QAAA,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,KAAK,iBAAiB,EAAE;YAC/F,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,kEAAkE,EAAE;AACrF,gBAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;aAChC;QACH;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AACpF,gBAAA,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,SAAS;AAC/E,gBAAA,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,SAAS;AAClG,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpC,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;aAC9B;QACH;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oBAAoB;YAC7E,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1B,gBAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;aAChC;QACH;IACF;8GAnDW,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAD5B,MAAM,EAAA,CAAA,CAAA;;2FACnB,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBADrD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { d as ASSET_TYPE_COMPONENTS_SAVE_COMMAND, e as AXMAssetManagementAssetStatusProvider, f as AXMAssetManagementFeatureDefinitionProvider, g as AXMAssetManagementMenuProvider, h as AXMAssetManagementModule, j as AXMAssetManagementPermissionDefinitionProvider, k as AXMAssetManagementSearchCommandProvider, A as AXMAssetOperationalStatusService, l as AXMAssetTypeComponentsPageComponentProvider, m as AXMAssetTypeSectionBuilderComponent, n as AXMAssetTypeSectionBuilderPageComponent, p as AXMCreateAssetRentalHistoryRentFromCommand, q as AXMCreateAssetRentalHistoryRentToCommand, s as AXMSaveAssetTypeComponentsCommand, t as assertRentalPartyForDirection, u as createAssetTypeSectionBuilderDefaultValue, v as normalizeAssetTypeBuilderLocalizedField, w as normalizeAssetTypeSectionBuilderValue } from './acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-
|
|
1
|
+
export { d as ASSET_TYPE_COMPONENTS_SAVE_COMMAND, e as AXMAssetManagementAssetStatusProvider, f as AXMAssetManagementFeatureDefinitionProvider, g as AXMAssetManagementMenuProvider, h as AXMAssetManagementModule, j as AXMAssetManagementPermissionDefinitionProvider, k as AXMAssetManagementSearchCommandProvider, A as AXMAssetOperationalStatusService, l as AXMAssetTypeComponentsPageComponentProvider, m as AXMAssetTypeSectionBuilderComponent, n as AXMAssetTypeSectionBuilderPageComponent, p as AXMCreateAssetRentalHistoryRentFromCommand, q as AXMCreateAssetRentalHistoryRentToCommand, s as AXMSaveAssetTypeComponentsCommand, t as assertRentalPartyForDirection, u as createAssetTypeSectionBuilderDefaultValue, v as normalizeAssetTypeBuilderLocalizedField, w as normalizeAssetTypeSectionBuilderValue } from './acorex-platform-module-asset-management-client-acorex-platform-module-asset-management-client-BGF5UnLv.mjs';
|
|
2
2
|
export * from '@acorex-platform/module-asset-management-client/contracts';
|
|
3
3
|
//# sourceMappingURL=acorex-platform-module-asset-management-client.mjs.map
|
|
@@ -157,6 +157,9 @@
|
|
|
157
157
|
"license-type-id": {
|
|
158
158
|
"title": "License Type"
|
|
159
159
|
},
|
|
160
|
+
"schedule": {
|
|
161
|
+
"title": "Schedule"
|
|
162
|
+
},
|
|
160
163
|
"usage-values": {
|
|
161
164
|
"title": "Usage Values",
|
|
162
165
|
"description": "Current cumulative readings for the asset.",
|
|
@@ -421,13 +424,14 @@
|
|
|
421
424
|
"title": "Supported Maintenance Intervals",
|
|
422
425
|
"gridTitle": "Supported Maintenance Intervals",
|
|
423
426
|
"options": {
|
|
427
|
+
"schedule": "Schedule",
|
|
424
428
|
"date": "Date",
|
|
425
429
|
"distance": "Distance",
|
|
426
430
|
"operating-hours": "Operating Hours",
|
|
427
431
|
"operation-count": "Operation Count"
|
|
428
432
|
},
|
|
429
433
|
"validation": {
|
|
430
|
-
"invalid": "Choose only Date, Distance, Operating Hours, or Operation Count."
|
|
434
|
+
"invalid": "Choose only Schedule, Date, Distance, Operating Hours, or Operation Count."
|
|
431
435
|
}
|
|
432
436
|
}
|
|
433
437
|
},
|
|
@@ -157,6 +157,9 @@
|
|
|
157
157
|
"license-type-id": {
|
|
158
158
|
"title": "License Type"
|
|
159
159
|
},
|
|
160
|
+
"schedule": {
|
|
161
|
+
"title": "Schedule"
|
|
162
|
+
},
|
|
160
163
|
"usage-values": {
|
|
161
164
|
"title": "Usage Values",
|
|
162
165
|
"description": "Current cumulative readings for the asset.",
|
|
@@ -421,13 +424,14 @@
|
|
|
421
424
|
"title": "Supported Maintenance Intervals",
|
|
422
425
|
"gridTitle": "Supported Maintenance Intervals",
|
|
423
426
|
"options": {
|
|
427
|
+
"schedule": "Schedule",
|
|
424
428
|
"date": "Date",
|
|
425
429
|
"distance": "Distance",
|
|
426
430
|
"operating-hours": "Operating Hours",
|
|
427
431
|
"operation-count": "Operation Count"
|
|
428
432
|
},
|
|
429
433
|
"validation": {
|
|
430
|
-
"invalid": "Choose only Date, Distance, Operating Hours, or Operation Count."
|
|
434
|
+
"invalid": "Choose only Schedule, Date, Distance, Operating Hours, or Operation Count."
|
|
431
435
|
}
|
|
432
436
|
}
|
|
433
437
|
},
|
|
@@ -162,6 +162,9 @@
|
|
|
162
162
|
"license-type-id": {
|
|
163
163
|
"title": "نوع مجوز"
|
|
164
164
|
},
|
|
165
|
+
"schedule": {
|
|
166
|
+
"title": "زمانبندی"
|
|
167
|
+
},
|
|
165
168
|
"usage-values": {
|
|
166
169
|
"title": "مقادیر کارکرد",
|
|
167
170
|
"description": "مقادیر تجمعی فعلی کارکرد دارایی.",
|
|
@@ -844,13 +847,14 @@
|
|
|
844
847
|
"title": "بازههای نگهداری پشتیبانیشده",
|
|
845
848
|
"gridTitle": "بازههای نگهداری پشتیبانیشده",
|
|
846
849
|
"options": {
|
|
850
|
+
"schedule": "زمانبندی",
|
|
847
851
|
"date": "تاریخ",
|
|
848
852
|
"distance": "مسافت",
|
|
849
853
|
"operating-hours": "ساعت کارکرد",
|
|
850
854
|
"operation-count": "تعداد عملیات"
|
|
851
855
|
},
|
|
852
856
|
"validation": {
|
|
853
|
-
"invalid": "فقط تاریخ، مسافت، ساعت کارکرد یا تعداد عملیات را انتخاب کنید."
|
|
857
|
+
"invalid": "فقط زمانبندی، تاریخ، مسافت، ساعت کارکرد یا تعداد عملیات را انتخاب کنید."
|
|
854
858
|
}
|
|
855
859
|
},
|
|
856
860
|
"hasInspection": {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex-platform/module-asset-management-client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.70",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@acorex-platform/module-data-management-client": "0.0.
|
|
6
|
+
"@acorex-platform/module-data-management-client": "0.0.70",
|
|
7
7
|
"@angular/common": "^21.0.0 || ^22.0.0",
|
|
8
8
|
"@angular/core": "^21.0.0 || ^22.0.0"
|
|
9
9
|
},
|
|
@@ -142,6 +142,7 @@ declare enum AXMAssetLifecycleStatus {
|
|
|
142
142
|
|
|
143
143
|
/** Measurement capabilities an asset type can use for maintenance intervals. Combinations are multiple values, not extra enum members. */
|
|
144
144
|
declare enum AXMAssetIntervalKind {
|
|
145
|
+
Schedule = "schedule",
|
|
145
146
|
Date = "date",
|
|
146
147
|
Distance = "distance",
|
|
147
148
|
OperatingHours = "operating-hours",
|
|
@@ -383,6 +384,8 @@ interface AXMAssetManagementAssetEntityModel {
|
|
|
383
384
|
/** Linked child assets for slots defined on the asset type (`components` template). */
|
|
384
385
|
assetComponents?: AXMAssetManagementAssetComponentEntityModel[];
|
|
385
386
|
licenseTypeId?: string;
|
|
387
|
+
/** Recurring calendar configuration. Stored by the scheduler picker. */
|
|
388
|
+
schedule?: Record<string, unknown> | null;
|
|
386
389
|
/** Current cumulative meter readings. Missing records are treated as `[]`. */
|
|
387
390
|
usageValues?: AXMAssetUsageValue[];
|
|
388
391
|
licenseType?: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-asset-management-client-asset-usage-values-widget-edit.component-qauvpIMv.mjs","sources":["../../../../libs/modules/asset-management/client/src/lib/features/asset-usage-values/asset-usage-values.component.ts","../../../../libs/modules/asset-management/client/src/lib/features/asset-usage-values/asset-usage-values.component.html","../../../../libs/modules/asset-management/client/src/lib/features/asset-usage-values/asset-usage-values-widget-edit.component.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport {\n AXMAssetIntervalKind,\n AXMAssetIntervalUnit,\n isAXMAssetUsageUnitForKind,\n readAssetUsageValues,\n type AXMAssetUsageKind,\n type AXMAssetUsageValue,\n} from '@acorex-platform/module-asset-management-client/contracts';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n AXM_ASSET_USAGE_I18N,\n USAGE_KIND_LABEL_KEYS,\n USAGE_METER_KIND_ORDER,\n USAGE_UNIT_LABEL_KEYS,\n isUsageMeterKind,\n} from './asset-usage-values.kinds';\n\n//#endregion\n\n//#region ----- Types -----\n\ninterface UsageDraftItem {\n currentValue: number | null;\n unit: AXMAssetIntervalUnit;\n lastReadingAt?: string;\n unitLocked: boolean;\n baseline: number | null;\n}\n\ninterface UsageField {\n kind: AXMAssetUsageKind;\n labelKey: string;\n currentValue: number | null;\n unit: AXMAssetIntervalUnit;\n unitSelectable: boolean;\n minValue: number;\n decimals: number;\n unitLabelKey: string;\n}\n\ninterface UsageChoice {\n id: string;\n text: string;\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction defaultUnit(kind: AXMAssetUsageKind): AXMAssetIntervalUnit {\n switch (kind) {\n case AXMAssetIntervalKind.Distance:\n return AXMAssetIntervalUnit.Kilometer;\n case AXMAssetIntervalKind.OperatingHours:\n return AXMAssetIntervalUnit.Hour;\n case AXMAssetIntervalKind.OperationCount:\n return AXMAssetIntervalUnit.Operation;\n }\n}\n\nfunction stable(value: unknown): string {\n return JSON.stringify(value);\n}\n\nfunction readChoiceId(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return readChoiceId(value[0]);\n }\n if (value && typeof value === 'object' && 'id' in value && typeof (value as { id: unknown }).id === 'string') {\n return (value as { id: string }).id;\n }\n return '';\n}\n\nfunction kindsToShow(supported: readonly string[], stored: readonly AXMAssetUsageValue[]): AXMAssetUsageKind[] {\n const supportedMeters = USAGE_METER_KIND_ORDER.filter((kind) => supported.includes(kind));\n if (supportedMeters.length > 0) {\n return supportedMeters;\n }\n return USAGE_METER_KIND_ORDER.filter((kind) => stored.some((item) => item.kind === kind));\n}\n\nfunction buildDraft(kinds: readonly AXMAssetUsageKind[], stored: readonly AXMAssetUsageValue[]): Record<string, UsageDraftItem> {\n const byKind = new Map(stored.map((item) => [item.kind, item]));\n const draft: Record<string, UsageDraftItem> = {};\n for (const kind of kinds) {\n const existing = byKind.get(kind);\n draft[kind] = {\n currentValue: existing?.currentValue ?? null,\n unit: existing?.unit ?? defaultUnit(kind),\n lastReadingAt: existing?.lastReadingAt,\n unitLocked: existing != null,\n baseline: existing?.currentValue ?? null,\n };\n }\n return draft;\n}\n\nfunction toUsageValues(draft: Record<string, UsageDraftItem>): AXMAssetUsageValue[] {\n const values: AXMAssetUsageValue[] = [];\n for (const kind of USAGE_METER_KIND_ORDER) {\n const item = draft[kind];\n if (!item || item.currentValue == null || !Number.isFinite(item.currentValue)) {\n continue;\n }\n const currentValue =\n kind === AXMAssetIntervalKind.OperationCount ? Math.trunc(item.currentValue) : item.currentValue;\n if (currentValue < 0 || (item.baseline != null && currentValue < item.baseline)) {\n continue;\n }\n const reading: AXMAssetUsageValue = { kind, currentValue, unit: item.unit };\n const changed = item.baseline == null || currentValue !== item.baseline;\n if (changed) {\n reading.lastReadingAt = new Date().toISOString();\n } else if (item.lastReadingAt) {\n reading.lastReadingAt = item.lastReadingAt;\n }\n values.push(reading);\n }\n return values;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-asset-usage-values',\n templateUrl: './asset-usage-values.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n FormsModule,\n AXTranslationModule,\n AXLabelComponent,\n AXNumberBoxModule,\n AXSelectionListModule,\n ],\n host: { class: 'block' },\n})\nexport class AXMAssetUsageValuesComponent {\n //#region ----- Inputs -----\n\n readonly supportedIntervalKinds = input<readonly string[]>([]);\n readonly value = input<AXMAssetUsageValue[] | null | undefined>(undefined);\n readonly disabled = input(false);\n /** Existing assets keep the stored unit. Create can still choose kilometre or mile. */\n readonly lockUnits = input(false);\n\n //#endregion\n\n //#region ----- Outputs -----\n\n readonly valueChange = output<AXMAssetUsageValue[]>();\n\n //#endregion\n\n //#region ----- Constants -----\n\n protected readonly emptyKey = `${AXM_ASSET_USAGE_I18N}.empty`;\n protected readonly dateNoteKey = `${AXM_ASSET_USAGE_I18N}.date-note`;\n protected readonly distanceUnits: UsageChoice[] = [\n { id: AXMAssetIntervalUnit.Kilometer, text: USAGE_UNIT_LABEL_KEYS[AXMAssetIntervalUnit.Kilometer] },\n { id: AXMAssetIntervalUnit.Mile, text: USAGE_UNIT_LABEL_KEYS[AXMAssetIntervalUnit.Mile] },\n ];\n\n //#endregion\n\n //#region ----- State Signals -----\n\n private readonly draft = signal<Record<string, UsageDraftItem>>({});\n private lastEmitted = '';\n private lastSupportedKey = '';\n private lastHydrated = '';\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly showDateNote = computed(() => this.supportedIntervalKinds().includes(AXMAssetIntervalKind.Date));\n\n protected readonly fields = computed<UsageField[]>(() => {\n const draft = this.draft();\n const fields: UsageField[] = [];\n for (const kind of USAGE_METER_KIND_ORDER) {\n const item = draft[kind];\n if (!item) {\n continue;\n }\n fields.push({\n kind,\n labelKey: USAGE_KIND_LABEL_KEYS[kind],\n currentValue: item.currentValue,\n unit: item.unit,\n unitSelectable:\n kind === AXMAssetIntervalKind.Distance && !item.unitLocked && !this.lockUnits(),\n minValue: item.baseline ?? 0,\n decimals: kind === AXMAssetIntervalKind.OperationCount ? 0 : 2,\n unitLabelKey: USAGE_UNIT_LABEL_KEYS[item.unit],\n });\n }\n return fields;\n });\n\n protected readonly showEmpty = computed(() => this.fields().length === 0 && !this.showDateNote());\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n effect(() => {\n const supported = this.supportedIntervalKinds();\n const stored = readAssetUsageValues(this.value());\n const supportedKey = [...supported].sort().join('|');\n const token = `${supportedKey}::${stable(stored)}`;\n if (this.lastEmitted && stable(stored) === this.lastEmitted && supportedKey === this.lastSupportedKey) {\n return;\n }\n if (token === this.lastHydrated) {\n return;\n }\n this.lastHydrated = token;\n this.lastSupportedKey = supportedKey;\n this.draft.set(buildDraft(kindsToShow(supported, stored), stored));\n });\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onValue(kind: AXMAssetUsageKind, event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled() || !isUsageMeterKind(kind)) {\n return;\n }\n const currentValue = typeof event.value === 'number' && Number.isFinite(event.value) ? event.value : null;\n const draft = this.draft();\n const item = draft[kind];\n if (!item || item.currentValue === currentValue) {\n return;\n }\n this.commit({ ...draft, [kind]: { ...item, currentValue } });\n }\n\n protected onDistanceUnit(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction || this.disabled()) {\n return;\n }\n const unit = readChoiceId(event.value);\n if (!isAXMAssetUsageUnitForKind(AXMAssetIntervalKind.Distance, unit as AXMAssetIntervalUnit)) {\n return;\n }\n const draft = this.draft();\n const item = draft[AXMAssetIntervalKind.Distance];\n if (!item || item.unitLocked || this.lockUnits() || item.unit === unit) {\n return;\n }\n this.commit({\n ...draft,\n [AXMAssetIntervalKind.Distance]: { ...item, unit: unit as AXMAssetIntervalUnit },\n });\n }\n\n //#endregion\n\n //#region ----- Draft -----\n\n private commit(draft: Record<string, UsageDraftItem>): void {\n this.draft.set(draft);\n const values = toUsageValues(draft);\n this.lastEmitted = stable(values);\n this.valueChange.emit(values);\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- No meter kinds and no date interval on the asset type ----- -->\n@if (showEmpty()) {\n <p class=\"ax-text-muted\">{{ emptyKey | translate | async }}</p>\n}\n\n<!-- ----- Date is shown as a note because it is not stored on the asset ----- -->\n@if (showDateNote()) {\n <p class=\"ax-text-muted\">{{ dateNoteKey | translate | async }}</p>\n}\n\n@for (field of fields(); track field.kind) {\n <div class=\"mt-3 flex flex-col gap-2\">\n <ax-label>{{ field.labelKey | translate | async }}</ax-label>\n <div class=\"flex flex-wrap items-center gap-3\">\n <ax-number-box\n class=\"w-36\"\n [minValue]=\"field.minValue\"\n [decimals]=\"field.decimals\"\n [ngModel]=\"field.currentValue\"\n [disabled]=\"disabled()\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"onValue(field.kind, $event)\"\n ></ax-number-box>\n <!-- ----- Distance unit can be chosen only before a reading is stored ----- -->\n @if (field.unitSelectable) {\n <ax-selection-list\n [items]=\"distanceUnits\"\n [ngModel]=\"field.unit\"\n [disabled]=\"disabled()\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n (onValueChanged)=\"onDistanceUnit($event)\"\n >\n <ng-template #itemTemplate let-item>\n <span>{{ item.text | translate | async }}</span>\n </ng-template>\n </ax-selection-list>\n }\n <!-- ----- Saved or fixed unit stays beside the number and is not part of the input ----- -->\n @else {\n <span class=\"ax-text-muted\">({{ field.unitLabelKey | translate | async }})</span>\n }\n </div>\n </div>\n}\n","//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { readAssetUsageValues, type AXMAssetUsageValue } from '@acorex-platform/module-asset-management-client/contracts';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\nimport { AXMAssetUsageValuesComponent } from './asset-usage-values.component';\nimport { readAssetUsageIntervalKinds } from './asset-usage-values.kinds';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-asset-usage-values-widget-edit',\n template: `\n <axm-asset-usage-values\n [supportedIntervalKinds]=\"supportedKinds()\"\n [value]=\"currentValue()\"\n [disabled]=\"isDisabled()\"\n [lockUnits]=\"lockUnits()\"\n (valueChange)=\"onUsageValuesChange($event)\"\n />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMAssetUsageValuesComponent],\n})\nexport class AXMAssetUsageValuesWidgetEditComponent extends AXPValueWidgetComponent<AXMAssetUsageValue[] | null> {\n //#region ----- Computed Properties -----\n\n protected readonly supportedKinds = computed(() =>\n readAssetUsageIntervalKinds(this.options(), (path) => this.contextService.getValue(path)),\n );\n\n protected readonly currentValue = computed(() => readAssetUsageValues(this.getValue()));\n\n protected readonly isDisabled = computed(() => Boolean(this.options()['disabled']));\n\n protected readonly lockUnits = computed(() => {\n const id = this.contextService.getValue('id');\n return id != null && id !== '';\n });\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onUsageValuesChange(values: AXMAssetUsageValue[]): void {\n this.setValue(values);\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-asset-management-client-asset-usage-values-widget-view.component-5psJebph.mjs","sources":["../../../../libs/modules/asset-management/client/src/lib/features/asset-usage-values/asset-usage-values-widget-view.component.ts","../../../../libs/modules/asset-management/client/src/lib/features/asset-usage-values/asset-usage-values-widget-view.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXMAssetIntervalKind,\n readAssetUsageValues,\n type AXMAssetUsageValue,\n} from '@acorex-platform/module-asset-management-client/contracts';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\nimport {\n AXM_ASSET_USAGE_I18N,\n USAGE_KIND_LABEL_KEYS,\n USAGE_UNIT_LABEL_KEYS,\n orderedUsageMeterKinds,\n readAssetUsageIntervalKinds,\n} from './asset-usage-values.kinds';\n\n//#endregion\n\n//#region ----- Types -----\n\ninterface UsageViewRow {\n kind: string;\n labelKey: string;\n currentValue: number | null;\n unitKey: string;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-asset-usage-values-widget-view',\n templateUrl: './asset-usage-values-widget-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXTranslationModule, AXLabelComponent],\n})\nexport class AXMAssetUsageValuesWidgetViewComponent extends AXPValueWidgetComponent<AXMAssetUsageValue[] | null> {\n //#region ----- Constants -----\n\n protected readonly emptyKey = `${AXM_ASSET_USAGE_I18N}.empty`;\n protected readonly dateNoteKey = `${AXM_ASSET_USAGE_I18N}.date-note`;\n protected readonly noReadingKey = `${AXM_ASSET_USAGE_I18N}.no-reading`;\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n private readonly supportedKinds = computed(() =>\n readAssetUsageIntervalKinds(this.options(), (path) => this.contextService.getValue(path)),\n );\n\n protected readonly showDateNote = computed(() => this.supportedKinds().includes(AXMAssetIntervalKind.Date));\n\n protected readonly rows = computed<UsageViewRow[]>(() => {\n const stored = readAssetUsageValues(this.getValue());\n const byKind = new Map(stored.map((item) => [item.kind, item]));\n const supportedMeters = orderedUsageMeterKinds(this.supportedKinds());\n const kinds = supportedMeters.length > 0 ? supportedMeters : stored.map((item) => item.kind);\n return kinds.map((kind) => {\n const reading = byKind.get(kind);\n return {\n kind,\n labelKey: USAGE_KIND_LABEL_KEYS[kind] ?? '',\n currentValue: reading?.currentValue ?? null,\n unitKey: reading ? USAGE_UNIT_LABEL_KEYS[reading.unit] : '',\n };\n });\n });\n\n protected readonly showEmpty = computed(() => this.rows().length === 0 && !this.showDateNote());\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Asset type has no meter readings and no date interval ----- -->\n@if (showEmpty()) {\n <span class=\"ax-text-muted\">{{ emptyKey | translate | async }}</span>\n}\n\n<!-- ----- Date is a note because it is not stored on the asset ----- -->\n@if (showDateNote()) {\n <p class=\"ax-text-muted\">{{ dateNoteKey | translate | async }}</p>\n}\n\n@for (row of rows(); track row.kind) {\n <div class=\"mt-2\">\n <ax-label>{{ row.labelKey | translate | async }}</ax-label>\n <!-- ----- Stored cumulative reading ----- -->\n @if (row.currentValue != null) {\n <span class=\"ms-2\">{{ row.currentValue }}</span>\n <span class=\"ms-2 ax-text-muted\">({{ row.unitKey | translate | async }})</span>\n }\n <!-- ----- Supported kind with no reading yet ----- -->\n @else {\n <span class=\"ms-2 ax-text-muted\">{{ noReadingKey | translate | async }}</span>\n }\n </div>\n}\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-asset-management-client-contracts-entity-catalog-asset-type.entity-BO3otOO_.mjs","sources":["../../../../libs/modules/asset-management/contracts/src/entities/asset-type/asset-type.entity.ts"],"sourcesContent":["import {\n AXPSystemActionType,\n AXPWidgetsCatalog,\n} from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n createAllQueryView,\n entityDetailsCrudActions,\n entityDetailsSimpleCondition,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\nimport { AXMAssetIntervalKind } from '../../asset.interval-kind';\nimport { RootConfig } from '../../root-config';\nimport { ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY } from '../../ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY';\n\nconst supportedIntervalKindDataSource = [\n {\n id: AXMAssetIntervalKind.Date,\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.options.date',\n },\n {\n id: AXMAssetIntervalKind.Distance,\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.options.distance',\n },\n {\n id: AXMAssetIntervalKind.OperatingHours,\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.options.operating-hours',\n },\n {\n id: AXMAssetIntervalKind.OperationCount,\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.options.operation-count',\n },\n];\n\nconst maintenanceFieldVisible = `{{ [true, \"true\"].includes(context.eval(\"hasMaintenance\")) }}`;\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\n/**\n * Entity definition aligned with {@link AXMAssetManagementAssetTypeEntityModel}.\n * Categories use `categoryIds` (see category plugin `propertyName`). `maintenanceTypeIds` is shown when `hasMaintenance` is enabled.\n */\nexport async function factoryAssetType(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.assetType.name,\n title: RootConfig.entities.assetType.title,\n icon: RootConfig.entities.assetType.icon,\n searchTags: [\n 'asset-type',\n 'type',\n 'classification',\n 'category',\n 'template',\n 'maintenance',\n 'inspection',\n 'نوع دارایی',\n 'انواع دارایی',\n 'دستهبندی دارایی',\n 'قالب',\n 'نوع',\n 'تصنيف',\n ],\n plugins: [\n // { name: 'unique-fields', options: { fields: 'code', scope: 'global' } },\n { name: 'history' },\n {\n name: 'category',\n options: { appearance: { icon: true, color: true } },\n },\n {\n name: 'meta-data-builder',\n options: {\n display: 'page',\n order: 3,\n },\n },\n // { name: 'identifier', options: { field: 'code', rule: 'asset-type-code' } },\n { name: 'reports' },\n ],\n pages: [\n {\n componentKey: ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY,\n field: 'components',\n title:\n '@asset-management:assetTypes.entities.assetType.components.components.title',\n icon: 'fa-light fa-sitemap',\n layout: { order: 2, position: 'after' },\n options: { order: 2, allowEditSection: false },\n },\n ],\n relatedEntities: [\n {\n entity: 'MaintenanceManagement.ActivityTypeAssetType',\n title:\n '@asset-management:assetTypes.entities.assetType.related-entities.activity-type-asset-types.title',\n icon: 'fa-light fa-link',\n hidden: `{{ ![true, \"true\", 1, \"1\"].includes(context.eval(\"hasMaintenance\")) }}`,\n conditions: [entityDetailsSimpleCondition('assetTypeId')],\n actions: [...entityDetailsCrudActions('assetTypeId')],\n layout: { type: 'page-list', position: 'after', order: 4 },\n },\n {\n entity: 'MaintenanceManagement.MaintenanceTemplate',\n title:\n '@asset-management:assetTypes.entities.assetType.related-entities.maintenance-templates.title',\n icon: 'fa-light fa-clipboard-list',\n hidden: `{{ ![true, \"true\", 1, \"1\"].includes(context.eval(\"hasMaintenance\")) }}`,\n conditions: [entityDetailsSimpleCondition('assetTypeId')],\n actions: [\n {\n title: '@general:actions.create.title',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n assetTypeId: '{{ context.eval(\"id\") }}',\n assetType: {\n id: '{{ context.eval(\"id\") }}',\n title:\n '{{ context.eval(\"title\", { pipes: [\"translate\"] }) }}',\n maintenanceTypeIds:\n '{{ context.eval(\"maintenanceTypeIds\") }}',\n },\n },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n ...entityDetailsCrudActions('assetTypeId', { create: false }),\n ],\n layout: { type: 'page-list', position: 'after', order: 6 },\n },\n ],\n formats: {\n individual: RootConfig.entities.assetType.title,\n plural: RootConfig.entities.assetType.titlePlural,\n searchResult: { title: '{{ title }}' },\n displayName: '@general:terms.common.overview',\n },\n groups: [\n {\n id: 'basic-info',\n title:\n '@asset-management:assetTypes.entities.assetType.groups.basic-info',\n },\n {\n id: 'maintenance-info',\n title:\n '@asset-management:assetTypes.entities.assetType.groups.maintenance-info',\n },\n {\n id: 'components',\n title:\n '@asset-management:assetTypes.entities.assetType.groups.components',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n // {\n // name: 'code',\n // title: '@asset-management:assetTypes.entities.assetType.fields.code.title',\n // groupId: 'basic-info',\n // schema: {\n // dataType: 'string',\n // unique: { enabled: true },\n // interface: {\n // type: AXPWidgetsCatalog.text,\n // options: {\n // disabled: true,\n // },\n // },\n // },\n // options: {\n // sort: { enabled: true },\n // filter: { advance: { enabled: true }, inline: { enabled: true } },\n // },\n // validations: [{ rule: 'required' }],\n // },\n {\n name: 'name',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.name.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.title.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'hasMaintenance',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.hasMaintenance.title',\n groupId: 'maintenance-info',\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'maintenanceTypeIds',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.maintenanceTypeIds.title',\n groupId: 'maintenance-info',\n schema: {\n dataType: 'array',\n nullable: true,\n defaultValue: [],\n visible: maintenanceFieldVisible,\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: 'MaintenanceManagement.MaintenanceType',\n textField: 'title',\n valueField: 'id',\n look: 'drop-down',\n multiple: true,\n },\n },\n },\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n },\n {\n name: 'supportedIntervalKinds',\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.title',\n groupId: 'maintenance-info',\n schema: {\n dataType: 'array',\n nullable: true,\n defaultValue: [],\n visible: maintenanceFieldVisible,\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n multiple: true,\n allowSearch: false,\n dataSource: supportedIntervalKindDataSource,\n },\n },\n },\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n },\n {\n name: 'description',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.description.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.largeText,\n options: {\n rows: 4,\n },\n },\n },\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n },\n },\n {\n name: 'components',\n title:\n '@asset-management:assetTypes.entities.assetType.components.components.title',\n groupId: 'components',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'object',\n defaultValue: { sections: [] },\n visible: false,\n nullable: true,\n },\n },\n ],\n columns: [\n { name: 'name', options: { order: 1 } },\n { name: 'title', options: { order: 2 } },\n { name: 'description', options: { order: 3 } },\n {\n name: 'hasMaintenance',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.hasMaintenance.gridTitle',\n options: { order: 4 },\n },\n {\n name: 'maintenanceTypeIds',\n title:\n '@asset-management:assetTypes.entities.assetType.fields.maintenanceTypeIds.gridTitle',\n options: { order: 5 },\n },\n {\n name: 'supportedIntervalKinds',\n title: '@asset-management:assetTypes.entities.assetType.fields.supported-interval-kinds.gridTitle',\n options: { order: 6 },\n },\n ],\n queries: {},\n interfaces: {\n master: {\n create: {\n sections: [\n { id: 'basic-info', order: 1 },\n { id: 'maintenance-info', order: 2 },\n ],\n properties: [\n {\n name: 'name',\n layout: { positions: { lg: { colSpan: 6, order: 2 } } },\n },\n {\n name: 'title',\n layout: { positions: { lg: { colSpan: 6, order: 3 } } },\n },\n {\n name: 'description',\n layout: { positions: { lg: { colSpan: 12, order: 4 } } },\n },\n {\n name: 'hasMaintenance',\n layout: { positions: { lg: { colSpan: 12, order: 5 } } },\n },\n {\n name: 'maintenanceTypeIds',\n layout: { positions: { lg: { colSpan: 12, order: 6 } } },\n },\n {\n name: 'supportedIntervalKinds',\n layout: { positions: { lg: { colSpan: 12, order: 7 } } },\n },\n ],\n },\n update: {\n sections: [\n { id: 'basic-info', order: 1 },\n { id: 'maintenance-info', order: 2 },\n ],\n properties: [\n {\n name: 'name',\n layout: { positions: { lg: { colSpan: 6, order: 2 } } },\n },\n {\n name: 'title',\n layout: { positions: { lg: { colSpan: 6, order: 3 } } },\n },\n {\n name: 'description',\n layout: { positions: { lg: { colSpan: 12, order: 4 } } },\n },\n {\n name: 'hasMaintenance',\n layout: { positions: { lg: { colSpan: 12, order: 5 } } },\n },\n {\n name: 'maintenanceTypeIds',\n layout: { positions: { lg: { colSpan: 12, order: 6 } } },\n },\n {\n name: 'supportedIntervalKinds',\n layout: { positions: { lg: { colSpan: 12, order: 7 } } },\n },\n ],\n },\n single: {\n title: '{{ title }}',\n sections: [\n { id: 'basic-info', order: 1 },\n { id: 'maintenance-info', order: 2 },\n ],\n properties: [\n // { name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n {\n name: 'name',\n layout: { positions: { lg: { colSpan: 6, order: 2 } } },\n },\n {\n name: 'title',\n layout: { positions: { lg: { colSpan: 6, order: 3 } } },\n },\n {\n name: 'description',\n layout: { positions: { lg: { colSpan: 12, order: 4 } } },\n },\n {\n name: 'hasMaintenance',\n layout: { positions: { lg: { colSpan: 12, order: 5 } } },\n },\n {\n name: 'maintenanceTypeIds',\n layout: { positions: { lg: { colSpan: 12, order: 6 } } },\n },\n {\n name: 'supportedIntervalKinds',\n layout: { positions: { lg: { colSpan: 12, order: 7 } } },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({ sorts: [{ name: 'name', dir: 'asc' }] }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|